.gitlab-ci.yml 6.78 KiB
# docs: https://docs.gitlab.com/ee/user/infrastructure/iac/terraform_state.html#get-started-using-gitlab-ci
image: busybox:latest
stages:
- gke
- psc
- elastic
- sleep
- destroy
variables:
TF_ROOT_ELASTIC: ${CI_PROJECT_DIR}/manifests/elastic
TF_ROOT_GKE: ${CI_PROJECT_DIR}/manifests/gke
GCLOUD_ROOT_PSC: ${CI_PROJECT_DIR}/manifests/psc
cache:
- key: elastic
paths:
- ${TF_ROOT_ELASTIC}/.terraform
- key: gke
paths:
- ${TF_ROOT_GKE}/.terraform
#check-gke:
# stage: gke
# tags:
# - docker
# - cache
# image:
# name: registry.gitlab.com/gitlab-org/terraform-images/stable:latest
# entrypoint: [""]
# variables:
# TF_ADDRESS: ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/terraform/state/gke
# TF_VAR_ec_apikey: $EC_API_KEY
# TF_VAR_project_id: $GCP_PROJECT_ID
# TF_VAR_region: $GCP_REGION
# TF_VAR_vpc_network_name: $GCP_NETWORK_NAME
# TF_VAR_vpc_subnetwork_name: $GCP_SUBNETWORK_NAME
# GCP_SA: $GCP_SA
# before_script:
# - |
# cd $TF_ROOT_GKE
# echo $GCP_SA | base64 -d > gcp-sa.json
# script:
# - |
# gitlab-terraform init
# gitlab-terraform validate
# gitlab-terraform fmt -check
# gitlab-terraform plan
# gitlab-terraform plan-json
# artifacts:
# name: plan
# paths:
# - ${TF_ROOT_GKE}/plan.cache
# reports:
# terraform: ${TF_ROOT_GKE}/plan.json
#
#apply-gke:
# stage: gke
# needs:
# - check-gke
# tags:
# - docker
# - cache
# image:
# name: registry.gitlab.com/gitlab-org/terraform-images/stable:latest
# entrypoint: [""]
# variables:
# TF_ADDRESS: ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/terraform/state/gke