From 8554f2f1b7a34e1818f7328fe11723c2dfef4e00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20B=C3=A9jean?= <nicolas@bejean.fr> Date: Sat, 29 Jan 2022 15:06:15 +0100 Subject: [PATCH] feat: Add all step --- .gitlab-ci.yml | 420 ++++++++++++++++++++++++------------------------- 1 file changed, 210 insertions(+), 210 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f85a9de..a264ef4 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -55,215 +55,215 @@ check-gke: - ${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 -# 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 > gcp-sa.json -# script: -# - | -# gitlab-terraform init -# gitlab-terraform apply -auto-approve -# -#gcloud-psc: -# stage: psc -# needs: -# - apply-gke -# tags: -# - docker -# - cache -# image: -# name: google/cloud-sdk:slim -# entrypoint: [""] -# variables: -# GCP_PROJECT_ID: $GCP_PROJECT_ID -# GCP_SA: $GCP_SA -# GCP_REGION: $GCP_REGION -# GCP_NETWORK_NAME: $GCP_NETWORK_NAME -# GCP_SUBNETWORK_NAME: $GCP_SUBNETWORK_NAME -# GCP_INTERNAL_IP_NAME: $GCP_INTERNAL_IP_NAME -# GCP_PSC_NAME: $GCP_PSC_NAME -# GCP_DNS_ZONE_GKE_ELASTIC: $GCP_DNS_ZONE_GKE_ELASTIC -# EC_SERVICE_ATTACHMENT_URI: $EC_SERVICE_ATTACHMENT_URI -# EC_DNS_ZONE: $EC_DNS_ZONE -# before_script: -# - | -# echo $GCP_SA > gcp-sa.json -# gcloud auth activate-service-account --key-file gcp-sa.json -# echo "Activate Service Account: OK" -# gcloud config set project $GCP_PROJECT_ID -# echo "Set Project: OK" -# cd $GCLOUD_ROOT_PSC -# script: -# - | -# chmod +x ./setting-psc.sh -# ./setting-psc.sh -# artifacts: -# paths: -# - ${CI_PROJECT_DIR}/pscConnectionId.env -# -#check-elastic: -# stage: elastic -# tags: -# - docker -# - cache -# needs: -# - gcloud-psc -# 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/elastic -# TF_VAR_ec_apikey: $EC_API_KEY -# TF_var_ec_version: $EC_VERSION -# before_script: -# - | -# export TF_VAR_psc_connection_id=$(cat ${CI_PROJECT_DIR}/pscConnectionId.env | grep GCP_PSC_CONNECTION_ID | cut -d = -f2) -# cd $TF_ROOT_ELASTIC -# script: -# - | -# gitlab-terraform init -# gitlab-terraform validate -# gitlab-terraform fmt -check -# gitlab-terraform plan -# gitlab-terraform plan-json -# artifacts: -# name: plan -# paths: -# - ${TF_ROOT_ELASTIC}/plan.cache -# reports: -# terraform: ${TF_ROOT_ELASTIC}/plan.json -# -#apply-elastic: -# stage: elastic -# needs: -# - check-elastic -# 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/elastic -# TF_VAR_ec_apikey: $EC_API_KEY -# before_script: -# - | -# export TF_VAR_psc_connection_id=$(cat ${CI_PROJECT_DIR}/pscConnectionId.env | grep GCP_PSC_CONNECTION_ID | cut -d = -f2) -# cd $TF_ROOT_ELASTIC -# script: -# - | -# gitlab-terraform init -# gitlab-terraform apply -auto-approve -# -#sleep: -# stage: sleep -# needs: -# - apply-elastic -# script: -# - | -# sleep 1m -#destroy-psc: -# stage: destroy -# needs: -# - sleep -# tags: -# - docker -# - cache -# image: -# name: google/cloud-sdk:slim -# entrypoint: [""] -# variables: -# GCP_PROJECT_ID: $GCP_PROJECT_ID -# GCP_REGION: $GCP_REGION -# GCP_NETWORK_NAME: $GCP_NETWORK_NAME -# GCP_SUBNETWORK_NAME: $GCP_SUBNETWORK_NAME -# GCP_INTERNAL_IP_NAME: $GCP_INTERNAL_IP_NAME -# GCP_PSC_NAME: $GCP_PSC_NAME -# GCP_DNS_ZONE_GKE_ELASTIC: $GCP_DNS_ZONE_GKE_ELASTIC -# EC_SERVICE_ATTACHMENT_URI: $EC_SERVICE_ATTACHMENT_URI -# EC_DNS_ZONE: $EC_DNS_ZONE -# GCP_SA: $GCP_SA -# before_script: -# - | -# echo $GCP_SA | base64 -d > gcp-sa.json -# gcloud auth activate-service-account --key-file gcp-sa.json -# echo "Activate Service Account: OK" -# gcloud config set project $GCP_PROJECT_ID -# echo "Set Project: OK" -# cd $GCLOUD_ROOT_PSC -# script: -# - | -# chmod +x ./destroy-psc.sh -# ./destroy-psc.sh -# artifacts: -# paths: -# - ${CI_PROJECT_DIR}/pscConnectionId.env +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 + 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 apply -auto-approve + +gcloud-psc: + stage: psc + needs: + - apply-gke + tags: + - docker + - cache + image: + name: google/cloud-sdk:slim + entrypoint: [""] + variables: + GCP_PROJECT_ID: $GCP_PROJECT_ID + GCP_SA: $GCP_SA + GCP_REGION: $GCP_REGION + GCP_NETWORK_NAME: $GCP_NETWORK_NAME + GCP_SUBNETWORK_NAME: $GCP_SUBNETWORK_NAME + GCP_INTERNAL_IP_NAME: $GCP_INTERNAL_IP_NAME + GCP_PSC_NAME: $GCP_PSC_NAME + GCP_DNS_ZONE_GKE_ELASTIC: $GCP_DNS_ZONE_GKE_ELASTIC + EC_SERVICE_ATTACHMENT_URI: $EC_SERVICE_ATTACHMENT_URI + EC_DNS_ZONE: $EC_DNS_ZONE + before_script: + - | + echo $GCP_SA | base64 -d > gcp-sa.json + gcloud auth activate-service-account --key-file gcp-sa.json + echo "Activate Service Account: OK" + gcloud config set project $GCP_PROJECT_ID + echo "Set Project: OK" + cd $GCLOUD_ROOT_PSC + script: + - | + chmod +x ./setting-psc.sh + ./setting-psc.sh + artifacts: + paths: + - ${CI_PROJECT_DIR}/pscConnectionId.env + +check-elastic: + stage: elastic + tags: + - docker + - cache + needs: + - gcloud-psc + 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/elastic + TF_VAR_ec_apikey: $EC_API_KEY + TF_var_ec_version: $EC_VERSION + before_script: + - | + export TF_VAR_psc_connection_id=$(cat ${CI_PROJECT_DIR}/pscConnectionId.env | grep GCP_PSC_CONNECTION_ID | cut -d = -f2) + cd $TF_ROOT_ELASTIC + script: + - | + gitlab-terraform init + gitlab-terraform validate + gitlab-terraform fmt -check + gitlab-terraform plan + gitlab-terraform plan-json + artifacts: + name: plan + paths: + - ${TF_ROOT_ELASTIC}/plan.cache + reports: + terraform: ${TF_ROOT_ELASTIC}/plan.json + +apply-elastic: + stage: elastic + needs: + - check-elastic + 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/elastic + TF_VAR_ec_apikey: $EC_API_KEY + before_script: + - | + export TF_VAR_psc_connection_id=$(cat ${CI_PROJECT_DIR}/pscConnectionId.env | grep GCP_PSC_CONNECTION_ID | cut -d = -f2) + cd $TF_ROOT_ELASTIC + script: + - | + gitlab-terraform init + gitlab-terraform apply -auto-approve + +sleep: + stage: sleep + needs: + - apply-elastic + script: + - | + sleep 1m + +destroy-psc: + stage: destroy + needs: + - sleep + tags: + - docker + - cache + image: + name: google/cloud-sdk:slim + entrypoint: [""] + variables: + GCP_PROJECT_ID: $GCP_PROJECT_ID + GCP_REGION: $GCP_REGION + GCP_NETWORK_NAME: $GCP_NETWORK_NAME + GCP_SUBNETWORK_NAME: $GCP_SUBNETWORK_NAME + GCP_INTERNAL_IP_NAME: $GCP_INTERNAL_IP_NAME + GCP_PSC_NAME: $GCP_PSC_NAME + GCP_DNS_ZONE_GKE_ELASTIC: $GCP_DNS_ZONE_GKE_ELASTIC + EC_SERVICE_ATTACHMENT_URI: $EC_SERVICE_ATTACHMENT_URI + EC_DNS_ZONE: $EC_DNS_ZONE + GCP_SA: $GCP_SA + before_script: + - | + echo $GCP_SA | base64 -d > gcp-sa.json + gcloud auth activate-service-account --key-file gcp-sa.json + echo "Activate Service Account: OK" + gcloud config set project $GCP_PROJECT_ID + echo "Set Project: OK" + cd $GCLOUD_ROOT_PSC + script: + - | + chmod +x ./destroy-psc.sh + ./destroy-psc.sh + artifacts: + paths: + - ${CI_PROJECT_DIR}/pscConnectionId.env -#destroy-elastic: -# stage: destroy -# needs: -# - destroy-psc -# 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/elastic -# TF_VAR_ec_apikey: $EC_API_KEY -# before_script: -# - | -# export TF_VAR_psc_connection_id=$(cat ${CI_PROJECT_DIR}/pscConnectionId.env | grep GCP_PSC_CONNECTION_ID | cut -d = -f2) -# cd $TF_ROOT_ELASTIC -# script: -# - | -# gitlab-terraform init -# gitlab-terraform destroy -auto-approve -# -#destroy-gke: -# stage: destroy -# needs: -# - destroy-psc -# 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 destroy -auto-approve +destroy-elastic: + stage: destroy + needs: + - destroy-psc + 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/elastic + TF_VAR_ec_apikey: $EC_API_KEY + before_script: + - | + export TF_VAR_psc_connection_id=$(cat ${CI_PROJECT_DIR}/pscConnectionId.env | grep GCP_PSC_CONNECTION_ID | cut -d = -f2) + cd $TF_ROOT_ELASTIC + script: + - | + gitlab-terraform init + gitlab-terraform destroy -auto-approve + +destroy-gke: + stage: destroy + needs: + - destroy-psc + 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 destroy -auto-approve -- GitLab