| export PROJECT_ID=skia-public |
| export BUCKET_ID=skia-secrets |
| export KEY="projects/${PROJECT_ID}/locations/global/keyRings/berglas/cryptoKeys/berglas-key" |
| export ACCESS_CONTROL="--member group:skia-root@google.com" |
| |
| # Converts a cluster common name, e.g. "skia-public", into the value that would |
| # get returned by `kubectl config current-context`. Needed because those are |
| # very different names under GKE. |
| # |
| # $1 - The common name of the cluster, e.g. "skia-public". |
| function cluster_long_name() { |
| if [ "$1" == "skia-public" ]; then |
| echo "gke_skia-public_us-central1-a_skia-public" |
| elif [ "$1" == "skia-corp" ]; then |
| echo "gke_google.com:skia-corp_us-central1-a_skia-corp" |
| else |
| echo $1 |
| fi |
| } |
| |
| # Confirms that we are currently talking to the desired cluster. |
| # |
| # $1 - The common name of the cluster, e.g. "skia-public". |
| function confirm_cluster() { |
| K8S_CLUSTER=$(kubectl config current-context) |
| if [ "$K8S_CLUSTER" != "$(cluster_long_name $1)" ]; then |
| echo "Wrong cluster, must be run in $CLUSTER." |
| exit 1 |
| fi |
| } |
| |
| # Derives a GCP secret name from a project and service account name by adding |
| # the project name (without "google.com:") as a prefix and "-sa-key" as suffix. |
| function service_account_secret_name() { |
| if [ $# -ne 2 ]; then |
| echo "service_account_secret_name <project id> <service-account-name>" >&2 |
| exit 1 |
| fi |
| PROJECT="$1" |
| SA_NAME="$2" |
| echo "${PROJECT#"google.com:"}-${SA_NAME}-sa-key" |
| } |
| |
| # Converts a berglas secret path of the form $cluster/$secret to a GCP secret name. |
| function berglas_to_gcp_secret_name() { |
| srcSecretName="$(echo "$line" | awk '{print $1;}')" |
| cluster="$(echo $srcSecretName | cut -d "/" -f 1)" |
| srcSecretBaseName="$(echo $srcSecretName | cut -d "/" -f 2)" |
| |
| dstSecretName="${srcSecretBaseName%-service-account}" |
| if [ -z "${dstSecretName##*-token}" ] || [ -z "${dstSecretName##*-secret}" ] || [ -z "${dstSecretName##*-secrets}" ]; then |
| dstSecretName="${dstSecretName}" |
| else |
| dstSecretName="${dstSecretName}-sa-key" |
| fi |
| if [[ "$dstSecretName" == $cluster-* ]] || [[ "$cluster" == "etc" ]]; then |
| dstSecretName="$dstSecretName" |
| else |
| dstSecretName="$cluster-$dstSecretName" |
| fi |
| echo "$dstSecretName" |
| } |