Create an app
This commit is contained in:
		
							
								
								
									
										0
									
								
								hooks/cleanup-pipelineruns.sh
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										0
									
								
								hooks/cleanup-pipelineruns.sh
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
								
								
									
										33
									
								
								hooks/install-application.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										33
									
								
								hooks/install-application.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,33 @@
 | 
				
			|||||||
 | 
					#!/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: ConfigMap
 | 
				
			||||||
 | 
					  executeHookOnSynchronization: false
 | 
				
			||||||
 | 
					  executeHookOnEvent: ["Added", "Modified"]
 | 
				
			||||||
 | 
					  jqFilter: ".data"
 | 
				
			||||||
 | 
					  labelSelector:
 | 
				
			||||||
 | 
					    matchExpressions:
 | 
				
			||||||
 | 
					    - key: "component"
 | 
				
			||||||
 | 
					      operator: "In"
 | 
				
			||||||
 | 
					      values: ["install"]
 | 
				
			||||||
 | 
					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_ENVIRONMENT=$(jq -r .[0].object.metadata.name $BINDING_CONTEXT_PATH)
 | 
				
			||||||
 | 
					  export SP_APPLICATION=$(jq -r .[0].object.data.values $BINDING_CONTEXT_PATH | base64 -d | yq '.helm.release')
 | 
				
			||||||
 | 
					  envsubst < /tpls/flux-create.yaml | kubectl create -f -
 | 
				
			||||||
 | 
					  kubectl patch configmap -n ${SP_CUSTOMER_ID} ${SP_ENVIRONMENT} \
 | 
				
			||||||
 | 
					    -p '{"metadata":{"finalizers":["softplayer.net/bootstrapped"]}}' --type=merge 
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										27
									
								
								tpls/flux-create.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								tpls/flux-create.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,27 @@
 | 
				
			|||||||
 | 
					apiVersion: tekton.dev/v1beta1
 | 
				
			||||||
 | 
					kind: PipelineRun
 | 
				
			||||||
 | 
					metadata:
 | 
				
			||||||
 | 
					  generateName: install-app
 | 
				
			||||||
 | 
					  labels:
 | 
				
			||||||
 | 
					    softplayer.net/env_name: "${SP_TEKTON_RUNTIME_NS}"
 | 
				
			||||||
 | 
					    softplayer.net/user-uuid: "${SP_CUSTOMER_ID}"
 | 
				
			||||||
 | 
					    tekton.dev/pipeline: hetzner-k3sf9p5s
 | 
				
			||||||
 | 
					  namespace: "${SP_TEKTON_RUNTIME_NS}"
 | 
				
			||||||
 | 
					spec:
 | 
				
			||||||
 | 
					  params:
 | 
				
			||||||
 | 
					  - name: namespace
 | 
				
			||||||
 | 
					    value: "${SP_CUSTOMER_ID}"
 | 
				
			||||||
 | 
					  - name: environment
 | 
				
			||||||
 | 
					    value: "${SP_ENVIRONMENT}"
 | 
				
			||||||
 | 
					  - name: application
 | 
				
			||||||
 | 
					    value: "${SP_APPLICATION}" 
 | 
				
			||||||
 | 
					  pipelineRef:
 | 
				
			||||||
 | 
					    params:
 | 
				
			||||||
 | 
					    - name: kind
 | 
				
			||||||
 | 
					      value: pipeline
 | 
				
			||||||
 | 
					    - name: name
 | 
				
			||||||
 | 
					      value: install-app
 | 
				
			||||||
 | 
					    - name: namespace
 | 
				
			||||||
 | 
					      value: tekton-pipelines
 | 
				
			||||||
 | 
					    resolver: cluster
 | 
				
			||||||
 | 
					  serviceAccountName: secret-manager
 | 
				
			||||||
		Reference in New Issue
	
	Block a user