Add uninstall app hook
This commit is contained in:
		| @@ -23,25 +23,30 @@ kubernetes: | ||||
| EOF | ||||
| else | ||||
|   export $(jq -r .[0].object.data.vars $BINDING_CONTEXT_PATH) | ||||
|   export SP_CUSTOMER_ID=$(jq -r .[0].object.metadata.namespace $BINDING_CONTEXT_PATH) | ||||
|   export SP_CONFIG_NAME=$(jq -r .[0].object.metadata.name $BINDING_CONTEXT_PATH) | ||||
|   export NAMESPACE=$(jq -r .[0].object.metadata.namespace $BINDING_CONTEXT_PATH) | ||||
|   export NAME=$(jq -r .[0].object.metadata.name $BINDING_CONTEXT_PATH) | ||||
|   export SP_APPLICATION=$(jq -r '.[0].object.data."values.yaml"' $BINDING_CONTEXT_PATH | base64 -d | yq '.helm.release') | ||||
|   export SP_ENVIRONMENT_ID=$(jq -r .[0].object.metadata.labels.environment $BINDING_CONTEXT_PATH) | ||||
|  | ||||
|   kubectl patch configmap -n ${SP_CUSTOMER_ID} ${SP_ENVIRONMENT} \ | ||||
|     -p '{"metadata":{"finalizers":["softplayer.net/bootstrapped"]}}' --type=merge  | ||||
|  | ||||
|   flux create source helm $SP_APPLICATION \ | ||||
|     --namespace=$SP_CUSTOMER_ID \ | ||||
|     --namespace=$NAMESPACE \ | ||||
|     --url=oci://registry.badhouseplants.net/softplayer/helm | ||||
|  | ||||
|   flux create helmrelease $SP_APPLICATION \ | ||||
|     --source=HelmRepository/$SP_APPLICATION \ | ||||
|     --namespace=$SP_CUSTOMER_ID \ | ||||
|     --namespace=$NAMESPACE \ | ||||
|     --chart=helmrelease \ | ||||
|     --values-from Secret/$SP_CONFIG_NAME \ | ||||
|     --values-from Secret/$NAME \ | ||||
|     --kubeconfig-secret-ref=$SP_ENVIRONMENT_ID-config \ | ||||
|     --target-namespace=default --export \ | ||||
|     | yq '.spec.storageNamespace="helm-installations"' \ | ||||
|     | kubectl apply -f - | ||||
|   flux reconcile helmrelease --namespace=$SP_CUSTOMER_ID $SP_APPLICATION | ||||
|    | ||||
|  | ||||
|   flux reconcile helmrelease --namespace=$NAMESPACE $SP_APPLICATION | ||||
|  | ||||
| fi | ||||
|  | ||||
|   | ||||
							
								
								
									
										41
									
								
								hooks/uninstall-application.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										41
									
								
								hooks/uninstall-application.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,41 @@ | ||||
| #!/usr/bin/env bash | ||||
| # --------------------------------------------------------------------- | ||||
| # This script should bootstrap a new environment, or update  | ||||
| # existing ones | ||||
| # Get the configmap name and namespace to prepare the  | ||||
| # --------------------------------------------------------------------- | ||||
|  | ||||
| if [[ $1 == "--config" ]] ; then | ||||
|   cat <<EOF | ||||
| configVersion: v1 | ||||
| kubernetes: | ||||
| - name: Watch application configmaps getting created | ||||
|   apiVersion: v1 | ||||
|   kind: Secret | ||||
|   executeHookOnSynchronization: false | ||||
|   executeHookOnEvent: ["Modified"] | ||||
|   jqFilter: ".metadata.deletionTimestamp" | ||||
|   labelSelector: | ||||
|     matchExpressions: | ||||
|     - key: "component" | ||||
|       operator: "In" | ||||
|       values: ["install"] | ||||
| EOF | ||||
| else | ||||
|   export $(jq -r .[0].object.data.vars $BINDING_CONTEXT_PATH) | ||||
|   export NAMESPACE=$(jq -r .[0].object.metadata.namespace $BINDING_CONTEXT_PATH) | ||||
|   export NAME=$(jq -r .[0].object.metadata.name $BINDING_CONTEXT_PATH) | ||||
|   export SP_APPLICATION=$(jq -r '.[0].object.data."values.yaml"' $BINDING_CONTEXT_PATH | base64 -d | yq '.helm.release') | ||||
|   export SP_ENVIRONMENT_ID=$(jq -r .[0].object.metadata.labels.environment $BINDING_CONTEXT_PATH) | ||||
|  | ||||
|   flux delete source helm $SP_APPLICATION \ | ||||
|     --namespace=$NAMESPACE \ | ||||
|  | ||||
|   flux delete helmrelease $SP_APPLICATION \ | ||||
|     --namespace=$NAMESPACE | ||||
|  | ||||
|   kubectl patch configmap -n ${SP_CUSTOMER_ID} ${SP_ENVIRONMENT} \ | ||||
|     -p '{"metadata":{"finalizers":null}}' --type=merge | ||||
|  | ||||
| fi | ||||
|  | ||||
		Reference in New Issue
	
	Block a user