90 lines
2.9 KiB
YAML
90 lines
2.9 KiB
YAML
# Copyright 2024 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.
|
|
|
|
steps:
|
|
- id: "delete-k8s-resources"
|
|
name: "gcr.io/google.com/cloudsdktool/cloud-sdk"
|
|
entrypoint: "bash"
|
|
args:
|
|
- "-c"
|
|
- |
|
|
if gcloud container clusters describe ${_CLUSTER_NAME} \
|
|
--project=${PROJECT_ID} \
|
|
--region=${_REGION} --format="none" 2>/dev/null; then
|
|
gcloud container clusters get-credentials ${_CLUSTER_NAME} \
|
|
--project=${PROJECT_ID} \
|
|
--region=${_REGION}
|
|
|
|
# Delete namespace (this will delete all resources in it)
|
|
kubectl delete namespace ${_NAMESPACE} --ignore-not-found
|
|
fi
|
|
|
|
- id: "cleanup-iam"
|
|
name: "gcr.io/google.com/cloudsdktool/cloud-sdk"
|
|
waitFor: ["delete-k8s-resources"]
|
|
entrypoint: "bash"
|
|
args:
|
|
- "-c"
|
|
- |
|
|
# Remove IAM bindings
|
|
gcloud projects remove-iam-policy-binding ${PROJECT_ID} \
|
|
--member="serviceAccount:${_IAM_SA_NAME}@${PROJECT_ID}.iam.gserviceaccount.com" \
|
|
--role="roles/aiplatform.admin" \
|
|
--quiet || true
|
|
|
|
# Delete service account
|
|
gcloud iam service-accounts delete ${_IAM_SA_NAME}@${PROJECT_ID}.iam.gserviceaccount.com \
|
|
--project=${PROJECT_ID} \
|
|
--quiet || true
|
|
|
|
- id: "delete-cluster"
|
|
name: "gcr.io/google.com/cloudsdktool/cloud-sdk"
|
|
waitFor: ["cleanup-iam"]
|
|
entrypoint: "bash"
|
|
args:
|
|
- "-c"
|
|
- |
|
|
# Delete GKE cluster
|
|
echo "Deleting GKE cluster..."
|
|
gcloud container clusters delete ${_CLUSTER_NAME} \
|
|
--project=${PROJECT_ID} \
|
|
--region=${_REGION} \
|
|
--quiet || true
|
|
|
|
- id: "delete-registry"
|
|
name: "gcr.io/google.com/cloudsdktool/cloud-sdk"
|
|
waitFor: ["delete-cluster"]
|
|
entrypoint: "bash"
|
|
args:
|
|
- "-c"
|
|
- |
|
|
# Delete Artifact Registry repository
|
|
echo "Deleting Artifact Registry repository..."
|
|
gcloud artifacts repositories delete ${_ARTIFACT_REGISTRY_ID} \
|
|
--project=${PROJECT_ID} \
|
|
--location=${_REGION} \
|
|
--quiet || true
|
|
|
|
timeout: "1800s"
|
|
options:
|
|
logging: CLOUD_LOGGING_ONLY
|
|
dynamicSubstitutions: true
|
|
substitutions:
|
|
_REGION: us-east5
|
|
_CLUSTER_NAME: computer-use-demo-cluster
|
|
_NAMESPACE: computer-use-demo
|
|
_IAM_SA_NAME: computer-use-sa
|
|
_ARTIFACT_REGISTRY_ID: computer-use-ar-repo # Added this
|
|
tags: ["gke-cleanup", "${_CLUSTER_NAME}"]
|