'Module with multiple providers

I have a question regarding the following.

I am using terraform with fortios provider

tree:

enter image description here

these are my providers in the root-prod:

provider "fortios" {
  hostname = "xxxxx"
  token    = "xxxxx"
  insecure = "true"
  vdom     = "PROD"
}

provider "fortios" {
  hostname = "xxxx"
  token    = "xxxx"
  insecure = "true"
  vdom     = "OPS"
  alias    = "isops"
}

I h got my root-module-prod:

module "AWS_xxx"{
  source = "../modules"
  name = "AWS_PROD"
  prefix_lists = local.aws_prod
  providers = { 
    fortios.dc1 = fortios
    fortios.dc2 = fortios.isops 
  } 
}

provider & resource within-child-modules:

terraform {
  required_providers {
    fortios = {
      source  = "fortinetdev/fortios"
      version = "1.13.1"
      configuration_aliases = [ fortios.dc1, fortios.dc2 ]
    }
  }
}

resource "fortios_router_prefixlist" "prefix_lists" {
  name   = var.name
  dynamic "rule" {
    for_each = var.prefix_lists
    content { 
      id     = rule.value["id"]
      action = rule.value["action"]
      prefix = rule.value["prefix"]
      ge     = rule.value["ge"]
      le     = rule.value["le"]
    }
  }
}

my goal is for the above module to create two instances of the resource, one in each of the declared providers.

My issue is that while the resource is created in the first provider PROD it doesn't crated in OPS.

Do you have any clue on this..?



Solution 1:[1]

Not really did not work through Terraform-multi-providers. In our case, I found a way through Jenkins Parallelism. We launch in parallel multiple envs with the credentials saved encrypted in Jenkins server.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 dim