Compare commits
	
		
			2 Commits
		
	
	
		
			3c141a2d40
			...
			a5e3c79d10
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| a5e3c79d10 | |||
| dcb3decbd3 | 
							
								
								
									
										25
									
								
								Dockerfile
									
									
									
									
									
								
							
							
						
						
									
										25
									
								
								Dockerfile
									
									
									
									
									
								
							| @@ -1,8 +1,27 @@ | ||||
| FROM node:lts-slim AS build | ||||
| FROM alpine:latest AS download | ||||
|  | ||||
| RUN npm install -g --omit=optional --omit=dev \ | ||||
|  RUN apk --update add --no-cache \ | ||||
|        curl \ | ||||
|        jq && \ | ||||
|      curl -L https://api.github.com/repos/helm/helm/releases/latest | \ | ||||
|        jq -r '.tag_name' | \ | ||||
|        xargs -I {} curl -L -o /tmp/helm.tar.gz https://get.helm.sh/helm-{}-linux-amd64.tar.gz && \ | ||||
|      tar -xzf /tmp/helm.tar.gz --strip-components=1 -C /tmp | ||||
|  | ||||
| FROM node:lts-slim | ||||
|  | ||||
| COPY --from=download /tmp/helm /usr/bin/helm | ||||
|  | ||||
| ENV LANG en_US.UTF-8 | ||||
| ENV LANGUAGE en_US:en | ||||
| ENV LC_ALL en_US.UTF-8 | ||||
|  | ||||
| RUN apt-get update && apt-get upgrade -y && apt-get install -y --no-install-recommends \ | ||||
|       jq \ && | ||||
|     npm install -g --omit=optional --omit=dev \ | ||||
|       json-server && \ | ||||
|     npm cache clean --force | ||||
|     npm cache clean --force && \ | ||||
|     rm -rf /var/lib/apt/lists/* | ||||
|  | ||||
| COPY init/entrypoint.sh /opt/entrypoint.sh | ||||
|  | ||||
|   | ||||
| @@ -54,6 +54,43 @@ data: | ||||
|         <script src="script.js"></script> | ||||
|       </body> | ||||
|     </html> | ||||
|   update.sh: | | ||||
|     #!/bin/sh | ||||
|  | ||||
|     while getopts u: flag | ||||
|     do | ||||
|       case "${flag}" in | ||||
|         u) URL=${OPTARG};; | ||||
|       esac | ||||
|     done | ||||
|  | ||||
|     [ $(curl -kLs -w "%{http_code}" -o /dev/null https://$URL) != 200 ] && { | ||||
|       echo 'Could not connect to' $URL | ||||
|       exit 1 | ||||
|     } | ||||
|  | ||||
|     echo '['$(date "+%Y-%m-%d %H:%M:%S")'] Started polling helm releases with 60 second interval' | ||||
|  | ||||
|     while sleep 60; | ||||
|     do | ||||
|       echo '['$(date "+%Y-%m-%d %H:%M:%S")']' $(curl -ks https://$URL/components | jq length) 'known releases in database' | ||||
|  | ||||
|       echo -n $(helm list --all-namespaces --output json | jq -c '.[]') | while IFS= read -r release; | ||||
|       do | ||||
|         APP_NAME=$(echo $release | jq -r '.name') | ||||
|         APP_ID=$(curl -ks https://$URL/components?name=$APP_NAME | jq -r '.[0].id') | ||||
|  | ||||
|         # Release is not yet in database | ||||
|         [ "$APP_ID" == null ] && { | ||||
|           curl -ks -X POST https://$URL/components -H 'Content-Type: application/json' --data "$release" | ||||
|         } | ||||
|         # Release is already in database | ||||
|         [ "$APP_ID" != null ] && { | ||||
|           curl -ks -X PATCH https://$URL/components/$APP_ID -H 'Content-Type: application/json' --data "$release" | ||||
|         } | ||||
|       done | ||||
|  | ||||
|     done | ||||
|   db.json: | | ||||
| {{ include "common.tplvalues.render" ( dict "value" .Values.jsonServer.seedData.configInline "context" $) | indent 4 }} | ||||
| {{- end -}} | ||||
|   | ||||
| @@ -62,7 +62,12 @@ spec: | ||||
|           command: | ||||
|           - /bin/sh | ||||
|           - -c | ||||
|           - sleep infinity | ||||
|           - "/opt/update.sh -u {{ .Values.sidecar.targetUrl }}" | ||||
|           volumeMounts: | ||||
|           - name: {{ .Release.Name }}-configmap | ||||
|             mountPath: /opt/update.sh | ||||
|             subPath: update.sh | ||||
|             defaultMode: 0744 | ||||
|       volumes: | ||||
|       - name: {{ .Release.Name }}-configmap | ||||
|         configMap: | ||||
|   | ||||
| @@ -13,10 +13,12 @@ jsonServer: | ||||
|     tag: {{ image_tag }} | ||||
|  | ||||
| sidecar: | ||||
|   targetUrl: metadata.example.org | ||||
|   image: | ||||
|     repository: alpine/helm | ||||
|     repository: bv11-cr01.bessems.eu/library/json-server | ||||
|     pullPolicy: IfNotPresent | ||||
|     tag: 3.12.1 | ||||
|     # Overrides the image tag whose default is the chart appVersion. | ||||
|     tag: {{ image_tag }} | ||||
|  | ||||
| replicaCount: 1 | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user