You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by rh...@apache.org on 2022/06/16 22:49:29 UTC

[geode] branch develop updated: Fixes for cleaning GCP resources from pipelines (#7759)

This is an automated email from the ASF dual-hosted git repository.

rhoughton pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git


The following commit(s) were added to refs/heads/develop by this push:
     new 1e2e34781a Fixes for cleaning GCP resources from pipelines (#7759)
1e2e34781a is described below

commit 1e2e34781a3abe004aa0ca5b712df857c158d77e
Author: Robert Houghton <rh...@pivotal.io>
AuthorDate: Thu Jun 16 15:49:24 2022 -0700

    Fixes for cleaning GCP resources from pipelines (#7759)
    
    * Fixes for cleaning GCP resources from pipelines
    
    * Use meta.properties to feed pipeline cleanup script
    
    * Add comments on use case for this script.
---
 ci/pipelines/clean_fork_pipeline.sh  | 110 +++++++++++++++++++++++++++++++++++
 ci/pipelines/clean_fork_pipelines.sh |  76 ------------------------
 2 files changed, 110 insertions(+), 76 deletions(-)

diff --git a/ci/pipelines/clean_fork_pipeline.sh b/ci/pipelines/clean_fork_pipeline.sh
new file mode 100755
index 0000000000..5ca11ceadb
--- /dev/null
+++ b/ci/pipelines/clean_fork_pipeline.sh
@@ -0,0 +1,110 @@
+#!/usr/bin/env bash
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you 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.
+
+## This script deletes a given Concoure pipeline, and deletes the associated Google Compute Images and Google Container
+## Images. Tokens like fork-name and pipeline-name are read from ./ci/pipelines/meta/meta.properties(.local). Branch-
+## name may be passed in on the CLI, or else the current branch is assumed.
+##
+## usage: ./clean_fork_pipeline.sh [branch-name]
+##
+
+set -eu
+SOURCE="${BASH_SOURCE[0]}"
+while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
+  SCRIPTDIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
+  SOURCE="$(readlink "$SOURCE")"
+  [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
+done
+SCRIPTDIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
+
+META_PROPERTIES=${SCRIPTDIR}/meta/meta.properties
+LOCAL_META_PROPERTIES=${SCRIPTDIR}/meta/meta.properties.local
+
+## Load default properties
+echo "**************************************************"
+echo "Default Environment variables for this deployment:"
+cat ${META_PROPERTIES} | grep -v "^#"
+source ${META_PROPERTIES}
+
+## Load local overrides properties file
+if [[ -f ${LOCAL_META_PROPERTIES} ]]; then
+  echo "Local Environment overrides for this deployment:"
+  cat ${LOCAL_META_PROPERTIES} | grep -v "^#"
+  source ${LOCAL_META_PROPERTIES}
+  echo "**************************************************"
+fi
+
+CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
+GEODE_BRANCH=${1:-${CURRENT_BRANCH}}
+
+. ${SCRIPTDIR}/shared/utilities.sh
+SANITIZED_GEODE_BRANCH=$(getSanitizedBranch ${GEODE_BRANCH})
+SANITIZED_GEODE_FORK=$(getSanitizedFork ${GEODE_FORK})
+
+if [[ -z "${GEODE_FORK}" ]]; then
+  echo "No fork provided!"
+  exit 1
+fi
+
+if [[ "${GEODE_FORK}" == "apache" ]]; then
+  echo "This utility is not for primary (Apache) pipelines."
+  exit 1
+fi
+
+TARGET=${CONCOURSE_HOST}-${CONCOURSE_TEAM}
+CONCOURSE_URL="https://${CONCOURSE_HOST}"
+CONCOURSE_TEAM="${CONCOURSE_TEAM:-main}"
+
+fly -t "${TARGET}" status || \
+fly -t "${TARGET}" login \
+  --team-name "${CONCOURSE_TEAM}" \
+  --concourse-url="${CONCOURSE_URL}"
+
+echo "Fork is ${GEODE_FORK}"
+echo "Branch is ${GEODE_BRANCH}"
+echo "GCP Project is ${GCP_PROJECT}"
+
+echo "Deleting meta pipeline if it exists..."
+META_PIPELINE="${SANITIZED_GEODE_FORK}-${SANITIZED_GEODE_BRANCH}-meta"
+fly -t "${TARGET}" destroy-pipeline --non-interactive -p "${META_PIPELINE}"
+
+echo "Deleting images pipeline if it exists..."
+IMAGES_PIPELINE="${SANITIZED_GEODE_FORK}-${SANITIZED_GEODE_BRANCH}-images"
+fly -t "${TARGET}" destroy-pipeline --non-interactive -p "${IMAGES_PIPELINE}"
+
+echo "Deleting reaper pipeline if it exists..."
+REAPER_PIPELINE="${SANITIZED_GEODE_FORK}-${SANITIZED_GEODE_BRANCH}-reaper"
+fly -t "${TARGET}" destroy-pipeline --non-interactive -p "${REAPER_PIPELINE}"
+
+echo "Deleting build pipeline if it exists..."
+BUILD_PIPELINE="${SANITIZED_GEODE_FORK}-${SANITIZED_GEODE_BRANCH}-main"
+fly -t "${TARGET}" destroy-pipeline --non-interactive -p "${BUILD_PIPELINE}"
+
+gcloud --project="${GCP_PROJECT}" container images list | grep "${SANITIZED_GEODE_FORK}-${SANITIZED_GEODE_BRANCH}" | while IFS= read -r line; do
+  echo "Deleting image: ${line}"
+  gcloud --project="${GCP_PROJECT}" container images delete ${line}:latest --quiet
+  gcloud --project="${GCP_PROJECT}" container images list-tags ${line} --filter='-tags:*'  --format='get(digest)' | while IFS= read -r line2; do
+  echo "Deleting image: ${line2}"
+  gcloud --project="${GCP_PROJECT}" container images delete ${line}@${line2} --quiet
+  done
+done
+set -x
+gcloud --project="${GCP_PROJECT}" compute images list --filter="family ~ ${SANITIZED_GEODE_FORK}-${SANITIZED_GEODE_BRANCH}" --format='value(name)' | while IFS= read -r line; do
+  echo "Deleting image: ${line}"
+  gcloud --project="${GCP_PROJECT}" compute images delete ${line} --quiet
+done
+
diff --git a/ci/pipelines/clean_fork_pipelines.sh b/ci/pipelines/clean_fork_pipelines.sh
deleted file mode 100755
index c02ad57dc9..0000000000
--- a/ci/pipelines/clean_fork_pipelines.sh
+++ /dev/null
@@ -1,76 +0,0 @@
-#!/usr/bin/env bash
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you 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.
-SOURCE="${BASH_SOURCE[0]}"
-while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
-  SCRIPTDIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
-  SOURCE="$(readlink "$SOURCE")"
-  [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
-done
-SCRIPTDIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
-
-TARGET=geode
-GEODE_FORK=${1}
-CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
-GEODE_BRANCH=${2:-${CURRENT_BRANCH}}
-
-. ${SCRIPTDIR}/shared/utilities.sh
-SANITIZED_GEODE_BRANCH=$(getSanitizedBranch ${GEODE_BRANCH})
-SANITIZED_GEODE_FORK=$(getSanitizedFork ${GEODE_FORK})
-
-if [[ -z "${GEODE_FORK}" ]]; then
-  echo "No fork provided!"
-  exit 1
-fi
-
-if [[ "${GEODE_FORK}" == "apache" ]]; then
-  echo "This utility is not for primary pipelines."
-  exit 1
-fi
-
-echo "Fork is ${GEODE_FORK}"
-echo "Branch is ${GEODE_BRANCH}"
-
-echo "Deleting meta pipeline if it exists..."
-META_PIPELINE="${SANITIZED_GEODE_FORK}-${SANITIZED_GEODE_BRANCH}-meta"
-fly -t ${TARGET} destroy-pipeline --non-interactive -p ${META_PIPELINE}
-
-echo "Deleting images pipeline if it exists..."
-IMAGES_PIPELINE="${SANITIZED_GEODE_FORK}-${SANITIZED_GEODE_BRANCH}-images"
-fly -t ${TARGET} destroy-pipeline --non-interactive -p ${IMAGES_PIPELINE}
-
-echo "Deleting reaper pipeline if it exists..."
-REAPER_PIPELINE="${SANITIZED_GEODE_FORK}-${SANITIZED_GEODE_BRANCH}-reaper"
-fly -t ${TARGET} destroy-pipeline --non-interactive -p ${REAPER_PIPELINE}
-
-echo "Deleting build pipeline if it exists..."
-BUILD_PIPELINE="${SANITIZED_GEODE_FORK}-${SANITIZED_GEODE_BRANCH}-main"
-fly -t ${TARGET} destroy-pipeline --non-interactive -p ${BUILD_PIPELINE}
-
-gcloud container images list | grep "${SANITIZED_GEODE_FORK}-${SANITIZED_GEODE_BRANCH}" | while IFS= read -r line; do
-  echo "Deleting image: ${line}"
-  gcloud container images delete ${line}:latest --quiet
-  gcloud container images list-tags ${line} --filter='-tags:*'  --format='get(digest)' | while IFS= read -r line2; do
-    echo "Deleting image: ${line2}"
-    gcloud container images delete ${line}@${line2} --quiet
-  done
-done
-
-gcloud compute images list | awk "/^${SANITIZED_GEODE_FORK}-${SANITIZED_GEODE_BRANCH}/ {print \$1}" | while IFS= read -r line; do
-  echo "Deleting image: ${line}"
-  gcloud compute images delete ${line} --quiet
-done
-