Wpis z mikrobloga

Mirki, jak w Terraformie podac wyniki output do drugiego srodowiska z kompletnie innym terraform state?
Mam dwa odzielnne srodowiska /aws/ i /azure/ i chce podac do /azure/main.tf zmienna z /aws/outputs.tf. W Internecie podaja przyklady z uzyciem modulow i data ale nie moge nic znalezc kiedy sa oddzielne foldery i srodowiska. #devops #terraform
  • 9
@Djelon: ok dzieki ale jak w takim razie tego uzyc i wskazac na ten output? W /aws/output wyciagam vpc_id i jak rozumiem w /azure/main.tf daje data {}?
@ksos: nie.

Konfiguruje sobie dwóch providerow w swoim kodzie i działasz na obu cloudach na raz. Potem za pomocą data szukasz po nazwach albo tagach w AWS i wykorzystujesz to do Azure.
@ksos: inna opcja to wypluwasz output jako json, a potem z cli zapisujesz go do bloba w azurze i czytasz go z kodu azure albo z shella+jq i podajeez jako varsy
@Djelon: moglbys mi pomoc jak to ma wygladac bo mecze sie z tym juz 2 dzien ;)
Moj modul z ktorego chce wyciagnac vpcid:
/aws/main.tf
resource "aws
vpc" "xc-vpc" {
cidrblock = "172.16.0.0/16"
}

/aws/output.tf
output "
VPCID" {
value = aws
vpc.xc-vpc.id
}

i teraz jak ta data ma wygladac w /azure/main.tf?
Probowalem:
data "awsvpc" "xc-vpc" {
name = var.aws
vpc.xc-vpc.id
}
Ale nie dziala
@Djelon: dobra zrobilem to:
/azure/main.tf

data "terraformremotestate" "vpc" {
backend = "local"
config = {
path = "../aws/terraform.tfstate"
}
}

i samo dogrzebanie sie do tego:
vpcid = data.terraformremotestate.vpc.outputs.vpcid
@ksos: nie o tym pisalem ( ͡ ͜ʖ ͡)

Grzebanie w innym tfstate ogólnie jest zła praktyką. A jak masz go w pliku lokalnym to już w ogóle masakra.

Miałem na myśli że z tego samego kodu gadasz zarówno z Azure (resources) jak i z AWS (data)