From 9457e612395597ad2bf35383c9328d2dd01274f1 Mon Sep 17 00:00:00 2001 From: Robert Choi Date: Wed, 6 Apr 2022 13:55:58 +0900 Subject: [PATCH 1/2] disable auto-sync & add CR deletion --- .../remove-lma-uniformed-wftpl.yaml | 53 ++++++++++++---- .../remove-servicemesh-all-wftpl.yaml | 62 ++++++++++++++++++- 2 files changed, 102 insertions(+), 13 deletions(-) diff --git a/templates/decapod-apps/remove-lma-uniformed-wftpl.yaml b/templates/decapod-apps/remove-lma-uniformed-wftpl.yaml index 0fd3f56..2c9c2ca 100644 --- a/templates/decapod-apps/remove-lma-uniformed-wftpl.yaml +++ b/templates/decapod-apps/remove-lma-uniformed-wftpl.yaml @@ -19,10 +19,10 @@ spec: templates: - name: process steps: - - - name: disableAutoSyncOfPrometheus + - - name: disableAutoSync template: disableAutoSync - # Delete prometheus CR first so that it doesn't hang + # Delete CRs first so that it doesn't hang # due to earlier service-account deletion # - - name: removePrometheusCR template: removePrometheusCR @@ -31,6 +31,14 @@ spec: - name: namespace value: "lma" + # This is for EFK option + - - name: removeFluentbitCR + template: removeFluentbitCR + arguments: + parameters: + - name: namespace + value: "lma" + # Remove argo CD apps - - name: removeLMA templateRef: @@ -57,20 +65,17 @@ spec: - /bin/bash - '-c' - | - PROM_APP_NAME="prometheus" - if [[ -n "{{workflow.parameters.app_prefix}}" ]]; then - PROM_APP_NAME="{{workflow.parameters.app_prefix}}-prometheus" - fi - echo "[temp] ARGO_SERVER: $ARGO_SERVER" - # Login to Argo CD server ./argocd login $ARGO_SERVER --plaintext --insecure --username $ARGO_USERNAME \ --password $ARGO_PASSWORD - echo "Disabling auto-sync of [$PROM_APP_NAME]' app.." - - # Disable auto-sync - ./argocd app set $PROM_APP_NAME --sync-policy none + app_list=$(./argocd app list -l {{workflow.parameters.filter}} --output name) + echo -e "app list:\n $app_list" + if [[ $? -eq 0 && -n $app_list ]]; then + # Disable auto-sync + echo "Disabling auto-sync of LMA app_group.." + echo "$app_list" | xargs -I '{}' ./argocd app set '{}' --sync-policy none + fi envFrom: - secretRef: name: "decapod-argocd-config" @@ -101,6 +106,30 @@ spec: kubectl $kube_params delete prometheus --all -n {{inputs.parameters.namespace}} kubectl $kube_params delete alertmanager --all -n {{inputs.parameters.namespace}} + - name: removeFluentbitCR + inputs: + parameters: + - name: namespace + container: + name: remove-fluentbit-cr + image: k8s.gcr.io/hyperkube:v1.18.6 + command: + - /bin/bash + - '-c' + - | + echo "Deleting fluentbit CR..." + + kube_params="" + + if [[ -n "{{workflow.parameters.cluster_id}}" ]]; then + kube_secret=$(kubectl get secret -n {{workflow.parameters.cluster_id}} {{workflow.parameters.cluster_id}}-kubeconfig -o jsonpath="{.data.value}" | base64 -d) + echo -e "kube_secret:\n$kube_secret" | head -n 5 + cat <<< "$kube_secret" > /etc/kubeconfig + + kube_params+="--kubeconfig=/etc/kubeconfig" + fi + + kubectl $kube_params delete fluentbit --all -n {{inputs.parameters.namespace}} || true - name: removeLeftoverResources inputs: diff --git a/templates/decapod-apps/remove-servicemesh-all-wftpl.yaml b/templates/decapod-apps/remove-servicemesh-all-wftpl.yaml index bd16077..7bea879 100644 --- a/templates/decapod-apps/remove-servicemesh-all-wftpl.yaml +++ b/templates/decapod-apps/remove-servicemesh-all-wftpl.yaml @@ -20,7 +20,19 @@ spec: #========================================================= - name: remove-start steps: - - - name: remove-service-mesh-app + - - name: disableAutoSync + template: disableAutoSync + + # Delete CRs first so that it doesn't hang + # due to earlier service-account deletion. + - - name: removeFluentbitCR + template: removeFluentbitCR + arguments: + parameters: + - name: namespace + value: "lma" + + - - name: remove-service-mesh-argocd-apps templateRef: name: delete-apps template: DeleteAppsByLabel @@ -39,6 +51,54 @@ spec: #========================================================= # Template Definition #========================================================= + - name: disableAutoSync + container: + name: disable-auto-sync + image: docker.io/sktcloud/argocd-cli:v2.2.5 + command: + - /bin/bash + - '-c' + - | + # Login to Argo CD server + ./argocd login $ARGO_SERVER --plaintext --insecure --username $ARGO_USERNAME \ + --password $ARGO_PASSWORD + + app_list=$(./argocd app list -l {{workflow.parameters.filter}} --output name) + echo -e "app list:\n $app_list" + if [[ $? -eq 0 && -n $app_list ]]; then + # Disable auto-sync + echo "Disabling auto-sync of service-mesh app_group.." + echo "$app_list" | xargs -I '{}' ./argocd app set '{}' --sync-policy none + fi + envFrom: + - secretRef: + name: "decapod-argocd-config" + + - name: removeFluentbitCR + inputs: + parameters: + - name: namespace + container: + name: remove-fluentbit-cr + image: k8s.gcr.io/hyperkube:v1.18.6 + command: + - /bin/bash + - '-c' + - | + echo "Deleting fluentbit CR..." + + kube_params="" + + if [[ -n "{{workflow.parameters.cluster_id}}" ]]; then + kube_secret=$(kubectl get secret -n {{workflow.parameters.cluster_id}} {{workflow.parameters.cluster_id}}-kubeconfig -o jsonpath="{.data.value}" | base64 -d) + echo -e "kube_secret:\n$kube_secret" | head -n 5 + cat <<< "$kube_secret" > /etc/kubeconfig + + kube_params+="--kubeconfig=/etc/kubeconfig" + fi + + kubectl $kube_params delete fluentbit --all -n {{inputs.parameters.namespace}} || true + - name: delete-argocd-app inputs: parameters: From bcb0f840216e6433449393f8d3aa9a7e20eec93b Mon Sep 17 00:00:00 2001 From: Robert Choi Date: Wed, 6 Apr 2022 14:13:04 +0900 Subject: [PATCH 2/2] also remove fluentbitconfig CR --- templates/decapod-apps/remove-lma-uniformed-wftpl.yaml | 1 + templates/decapod-apps/remove-servicemesh-all-wftpl.yaml | 1 + 2 files changed, 2 insertions(+) diff --git a/templates/decapod-apps/remove-lma-uniformed-wftpl.yaml b/templates/decapod-apps/remove-lma-uniformed-wftpl.yaml index 2c9c2ca..a2ae59b 100644 --- a/templates/decapod-apps/remove-lma-uniformed-wftpl.yaml +++ b/templates/decapod-apps/remove-lma-uniformed-wftpl.yaml @@ -130,6 +130,7 @@ spec: fi kubectl $kube_params delete fluentbit --all -n {{inputs.parameters.namespace}} || true + kubectl $kube_params delete fluentbitconfig --all -n {{inputs.parameters.namespace}} || true - name: removeLeftoverResources inputs: diff --git a/templates/decapod-apps/remove-servicemesh-all-wftpl.yaml b/templates/decapod-apps/remove-servicemesh-all-wftpl.yaml index 7bea879..c250152 100644 --- a/templates/decapod-apps/remove-servicemesh-all-wftpl.yaml +++ b/templates/decapod-apps/remove-servicemesh-all-wftpl.yaml @@ -98,6 +98,7 @@ spec: fi kubectl $kube_params delete fluentbit --all -n {{inputs.parameters.namespace}} || true + kubectl $kube_params delete fluentbitconfig --all -n {{inputs.parameters.namespace}} || true - name: delete-argocd-app inputs: