Bruk av Terraform
For applikasjoner anbefaler vi å bruke Argo CD til utrulling av containere til Kubernetes. Terraform kan brukes til annen infrastruktur i Google Cloud eller on-prem.
Lagring av state
Terraform bruker state for å kontrollere og sammenlikne den nåværende konfigurasjonen mot det som kjører, staten må lagres lokalt eller ekstern. På SKIP bruker vi Google Cloud Storage til å lagre state, og oppsettet for dette kan man se under.
State bucket opprettes i repoet https://github.com/kartverket/gcp-service-accounts.
terraform {
backend "gcs" {
bucket = "terraform_state_foobar_1e8e"
prefix = "foobar-frontend"
}
}
For at backend-konfigurasjonen over skal kunne nå denne bucketen, må servicekontoen den kjører som være autentisert mot Google Cloud med riktige tilganger. Dette gjøres i byggeløypa før Terraform blir kjørt. Se avsnittet under for hvordan man autentiserer med Google Cloud som en del av GitHub Actions.
Kjøre Terraform i GitHub Actions
Se https://github.com/kartverket/github-workflows for hvordan man bruker Terraform som en del av GitHub Actions.