Puncte:0

eroare de aplicare terraform dejaExistă pe resurse neatinse

drapel gy

Încep un nou proiect de terraform, urmând ghidul oficial:

https://learn.hashicorp.com/tutorials/terraform/gke?in=terraform/kubernetes&utm_source=WEBSITE&utm_medium=WEB_IO&utm_offer=ARTICLE_PAGE&utm_content=DOCS&_ga=2.91746777.2118895484691895484691893484691823484691893484691823484691894484691894484691893484691893483

Am reușit să-l fac să funcționeze. (Îl rulez ca parte a unei sarcini de compilare în cloud Google declanșată la comitere)

Cu toate acestea, dacă schimb ceva într-o resursă (de exemplu, am înlocuit implicit „gke_num_nodes” de la 2 la 1), când rulez se aplică terraform din nou, asta primesc:


Plan: 4 pentru a adăuga, 0 pentru a schimba, 0 pentru a distruge.

Modificări la ieșiri:
  + kubernetes_cluster_host = (cunoscut după aplicare)
  + kubernetes_cluster_name = "workspace-auto-gke"
  + project_id = "spațiu de lucru-auto"
  + regiune = "europe-west4"
google_compute_network.vpc: se creează...
â·
â Eroare: Eroare la crearea Rețelei: googleapi: Eroare 409: Resursa „projects/workspace-auto/global/networks/workspace-auto-vpc” există deja, deja există
â 
â cu google_compute_network.vpc,
â pe linia vpc.tf 15, în resursa „google_compute_network” „vpc”:
â 15: resursa „google_compute_network” „vpc” {
â 
âµ

Există o modalitate de a face ca acesta să nu încerce să recreeze resursele existente neatinse?

Ale mele cloudbuild.json este după cum urmează:

{
  „pasi”: [
    {
      "nume": "hashicorp/terraform",
      "punct de intrare": "/bin/sh",
      „args”: [
        „./cloudbuild/prepare-terraform.sh”
      ]
    }
  ],
  "logsBucket": "gs://my-bucket/logdir",
  „serviceAccount”: „projects/my-proj/serviceAccounts/[email protected]”
}

cu pregăti-terraform.sh fiind simplu

terraform init
plan de terraformă
terraform apply -auto-approve
Puncte:2
drapel cn

Dacă utilizați Terraform pentru a crea resurse, faceți NU modificați-le în afara Terraform.

Dacă schimbați ceva manual, Terraform va încerca să-l repune așa cum îl declară HCL și cum l-a salvat Terraform.

Aceasta se numește declarativ. Încercați să faceți Terraform dinamic, care învinge folosind Terraform în primul rând.

drapel gy
Modificarea pe care am făcut-o a fost în interiorul fișierelor terraform, nu în exterior. Pur și simplu, atunci când rulez planul de terraform / aplic, va încerca să creeze totul de la zero, indiferent dacă a fost neschimbat și va cauza eroarea
Puncte:1
drapel gy

Starea de terraform trebuie să fie stocată acolo unde este accesibilă pentru toate versiunile. De exemplu, într-o găleată Google Cloud, așa cum se vede aici: https://www.terraform.io/docs/language/settings/backends/gcs.html

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.