Skip to content
Snippets Groups Projects
Commit 99a9bb56 authored by Oleksandr Kosse (EPAM)'s avatar Oleksandr Kosse (EPAM)
Browse files

Merge branch 'Cleanup-script-does-not-delete-DF-created-service-accounts' into 'master'

Cleanup-script-does-not-delete-DF-created-service-accounts

See merge request !1703
parents 8d3c02c9 7b0765c6
No related branches found
No related tags found
1 merge request!1703Cleanup-script-does-not-delete-DF-created-service-accounts
Pipeline #297992 passed
Pipeline: GC Infrastructure code

#297993

    ...@@ -377,32 +377,39 @@ clean_service_accounts() { ...@@ -377,32 +377,39 @@ clean_service_accounts() {
    # Cleanup Service Accounts and associated IAM bindings # Cleanup Service Accounts and associated IAM bindings
    while [ $retries -lt $max_retries ]; do while [ $retries -lt $max_retries ]; do
    if [[ -n $service_account_for_script ]]; then if [[ -n $service_account_for_script ]]; then
    service_account_list=$(gcloud iam service-accounts list --format 'value(email)' --filter="(email:iam.gserviceaccount.com AND -email:$service_account_for_script)") service_account_list=$(gcloud iam service-accounts list --format 'value(email)' --filter="(email:iam.gserviceaccount.com AND -email:$service_account_for_script)" | \
    awk '{print $1}')
    else else
    if [[ $destroy_all ]]; then if [[ $destroy_all ]]; then
    service_account_list=$(gcloud iam service-accounts list --format 'value(email)' --filter email:"iam.gserviceaccount.com") service_account_list=$(gcloud iam service-accounts list --format 'value(email)' --filter email:"iam.gserviceaccount.com" | \
    awk '{print $1}')
    else else
    service_account_list=$(gcloud iam service-accounts list --format="value(email)" --filter email:"iam.gserviceaccount.com" | \ service_account_list=$(gcloud iam service-accounts list --format="value(email)" --filter email:"iam.gserviceaccount.com" | \
    grep -E 'datafier|gke-cluster-node-pool-sa|airflow-sa|wi-' | \ grep -E 'datafier|gke-cluster-node-pool-sa|airflow-sa|wi-' | \
    awk '{print $1}') awk '{print $1}')
    fi fi
    fi fi
    if [ -n "$service_account_list" ]; then if [ -n "$service_account_list" ]; then
    for service_account in $service_account_list; do for service_account in $service_account_list; do
    service_account_role_list=$(gcloud projects get-iam-policy "$project" --flatten=bindings[].members --filter bindings.members:"$service_account" --format 'value(bindings.role)') service_account_role_list=$(gcloud projects get-iam-policy "$project" \
    --flatten=bindings[].members \
    for service_account_role in $service_account_role_list; do --filter bindings.members:"$service_account" \
    gcloud projects remove-iam-policy-binding "$project" \ --format 'value(bindings.members, bindings.role)')
    --member serviceAccount:"$service_account" \
    --role "$service_account_role" \ while read -r member role; do
    if [[ -n "$member" && -n "$role" ]]; then
    echo "Removing role $role from member $member"
    gcloud projects remove-iam-policy-binding "$project" \
    --member="$member" \
    --role="$role" \
    --quiet \
    --no-user-output-enabled --no-user-output-enabled
    done fi
    done <<< "$service_account_role_list"
    gcloud iam service-accounts delete "$service_account" --quiet gcloud iam service-accounts delete "$service_account" --quiet
    echo "Deleted Service Account: $service_account" echo "Deleted Service Account: $service_account"
    done done
    echo "Service accounts cleanup finished." echo "Service accounts cleanup finished."
    return return
    else else
    ...@@ -411,7 +418,6 @@ clean_service_accounts() { ...@@ -411,7 +418,6 @@ clean_service_accounts() {
    sleep 5 sleep 5
    fi fi
    done done
    echo "Service accounts cleanup skipped after $max_retries attempts." echo "Service accounts cleanup skipped after $max_retries attempts."
    } }
    ......
    0% Loading or .
    You are about to add 0 people to the discussion. Proceed with caution.
    Finish editing this message first!
    Please register or to comment