builds/infra_terraform_destroy.yaml (52 lines of code) (raw):
# Copyright 2022 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
timeout: 14400s # 2hr
substitutions:
_PROJECT_ID: ${PROJECT_ID}
_DESTROY_STATE_BUCKET: "false"
_DESTROY_VPC: "false"
tags:
- infra-destroy-terraform
steps:
# Destroy configuration installed in GKE clusters through ACM and the MCI feature
- name: "gcr.io/cloud-builders/gcloud"
id: "infra-destroy-ACM-config"
entrypoint: bash
args:
- -c
- |
exec gcloud builds submit --config builds/infra-destroy-features-mesh-gateways.yaml --substitutions=_PROJECT_ID=${_PROJECT_ID}
# Destroy GKE clusters
- name: "gcr.io/cloud-builders/gcloud"
id: "infra-destroy-gke"
entrypoint: bash
args:
- -c
- |
exec gcloud builds submit --config builds/terraform/infra-destroy-gke.yaml --substitutions=_PROJECT_ID=${_PROJECT_ID}
# Destroy VPC
- name: "gcr.io/cloud-builders/gcloud"
id: "infra-destroy-vpc"
entrypoint: bash
args:
- -c
- |
[[ "${_DESTROY_VPC}" == "false" ]] && exit 0
exec gcloud builds submit --config builds/terraform/infra-destroy-vpc.yaml --substitutions=_PROJECT_ID=${_PROJECT_ID}
# Destroy ACM Repo
- name: "gcr.io/cloud-builders/gcloud"
id: "infra-destroy-acm-repo"
entrypoint: bash
args:
- -c
- |
exec gcloud builds submit --config builds/terraform/infra-destroy-repos.yaml --substitutions=_PROJECT_ID=${_PROJECT_ID}
# Disable APIs
- name: "gcr.io/cloud-builders/gcloud"
id: "infra-disable-apis"
entrypoint: bash
args:
- -c
- |
exec gcloud builds submit --config builds/terraform/infra-disable-apis.yaml --substitutions=_PROJECT_ID=${_PROJECT_ID}
# Destroy GCS storage bucket for TF state, project files, vars.sh etc
# This step deletes the GCS storage bucket in the project with the name of project ID.
- name: "gcr.io/cloud-builders/gcloud"
id: "infra-delete-gcs"
entrypoint: bash
args:
- -c
- |
[[ "${_DESTROY_STATE_BUCKET}" == "false" ]] && exit 0
exec gcloud builds submit --config builds/terraform/infra-destroy-gcs.yaml --substitutions=_PROJECT_ID=${_PROJECT_ID}