Loads of new features, including live updater
This commit is contained in:
parent
f25565dff5
commit
13b075660d
10
Chart.yaml
10
Chart.yaml
@ -6,3 +6,13 @@ description: A basic Helm chart for Kubernetes
|
|||||||
type: application
|
type: application
|
||||||
version: 0.1.0
|
version: 0.1.0
|
||||||
appVersion: "1.0.0"
|
appVersion: "1.0.0"
|
||||||
|
|
||||||
|
dependencies:
|
||||||
|
- name: postgresql
|
||||||
|
version: 15.5.0
|
||||||
|
repository: oci://registry-1.docker.io/bitnamicharts
|
||||||
|
condition: postgresql.enabled
|
||||||
|
- name: mysql
|
||||||
|
version: 11.1.19
|
||||||
|
repository: oci://registry-1.docker.io/bitnamicharts
|
||||||
|
condition: mysql.enabled
|
||||||
|
17
templates/NOTES.txt
Normal file
17
templates/NOTES.txt
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
{{- $releaseNamespace := {{ .Release.Namespace }} }}
|
||||||
|
{{- $secretName := {{ .Release.Name }}-webhook-secret }}
|
||||||
|
CHART NAME: {{ .Chart.Name }}
|
||||||
|
CHART VERSION: {{ .Chart.Version }}
|
||||||
|
APP VERSION: {{ .Chart.AppVersion }}
|
||||||
|
|
||||||
|
** Please be patient while the chart is being deployed **
|
||||||
|
|
||||||
|
To get the webhook identification run:
|
||||||
|
|
||||||
|
export WEBHOOK_SECRET=$(kubectl get secret --namespace {{ $releaseNamespace }} {{ $secretName }} -o jsonpath="{.data.WEBHOOK_SECRET}" | base64 -d)
|
||||||
|
export API_USERNAME=$(kubectl get secret --namespace {{ $releaseNamespace }} {{ $secretName }} -o jsonpath="{.data.API_USERNAME}" | base64 -d): {{ $apiUsername | b64enc }}
|
||||||
|
export API_PASSWORD=$(kubectl get secret --namespace {{ $releaseNamespace }} {{ $secretName }} -o jsonpath="{.data.API_PASSWORD}" | base64 -d): {{ $apiUsername | b64enc }}
|
||||||
|
|
||||||
|
To build the authentication header:
|
||||||
|
|
||||||
|
echo "Basic $(echo -n $API_USERNAME:$API_PASSWORD | base64)"
|
@ -14,6 +14,26 @@ spec:
|
|||||||
labels:
|
labels:
|
||||||
{{- include "basic-app.selectorLabels" . | nindent 8 }}
|
{{- include "basic-app.selectorLabels" . | nindent 8 }}
|
||||||
spec:
|
spec:
|
||||||
|
initContainers:
|
||||||
|
- name: git-cloner
|
||||||
|
image: "{{ .Values.updater.image.repository }}:{{ .Values.updater.image.tag }}"
|
||||||
|
imagePullPolicy: {{ .Values.updater.image.pullPolicy }}
|
||||||
|
volumeMounts:
|
||||||
|
- name: data
|
||||||
|
mountPath: "/web"
|
||||||
|
command:
|
||||||
|
- /bin/sh
|
||||||
|
- -ec
|
||||||
|
- |
|
||||||
|
cd /web
|
||||||
|
test -d .git && exit 0
|
||||||
|
git clone ${GIT_URL} .
|
||||||
|
mkdir lib/config
|
||||||
|
git lfs install
|
||||||
|
git lfs pull
|
||||||
|
env:
|
||||||
|
- name: GIT_URL
|
||||||
|
value: "{{ .Values.updater.url }}"
|
||||||
containers:
|
containers:
|
||||||
- name: {{ .Chart.Name }}
|
- name: {{ .Chart.Name }}
|
||||||
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
|
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
|
||||||
@ -21,9 +41,10 @@ spec:
|
|||||||
ports:
|
ports:
|
||||||
- containerPort: 80
|
- containerPort: 80
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
|
name: http-svc
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- name: data
|
- name: data
|
||||||
mountPath: /data
|
mountPath: /var/www/html
|
||||||
env:
|
env:
|
||||||
{{- with .Values.env.plain }}
|
{{- with .Values.env.plain }}
|
||||||
{{- toYaml . | nindent 12 }}
|
{{- toYaml . | nindent 12 }}
|
||||||
@ -54,15 +75,21 @@ spec:
|
|||||||
optional: {{ .optional | default false }}
|
optional: {{ .optional | default false }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
- name: {{ .Chart.PullName }}
|
- name: {{ .Chart.PullName }}
|
||||||
image: "{{ .Values.puller.image.repository }}:{{ .Values.puller.image.tag }}"
|
image: "{{ .Values.updater.image.repository }}:{{ .Values.updater.image.tag }}"
|
||||||
imagePullPolicy: {{ .Values.puller.image.pullPolicy }}
|
imagePullPolicy: {{ .Values.updater.image.pullPolicy }}
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 80
|
- containerPort: 8000
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
|
name: webhook-svc
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- name: data
|
- name: data
|
||||||
mountPath: /data
|
mountPath: /web
|
||||||
env:
|
env:
|
||||||
|
- name: "DATA_DIR"
|
||||||
|
value: "/web"
|
||||||
|
{{- with .Values.updater.env.plain }}
|
||||||
|
{{- toYaml . | nindent 12 }}
|
||||||
|
{{- end }}
|
||||||
{{- with .Values.env.plain }}
|
{{- with .Values.env.plain }}
|
||||||
{{- toYaml . | nindent 12 }}
|
{{- toYaml . | nindent 12 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
@ -86,6 +113,8 @@ spec:
|
|||||||
name: {{ .name }}
|
name: {{ .name }}
|
||||||
optional: {{ .optional | default false }}
|
optional: {{ .optional | default false }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
- secretRef:
|
||||||
|
name: {{ .Release.Name }}-webhook-secret
|
||||||
{{- range .Values.env.secretRefs }}
|
{{- range .Values.env.secretRefs }}
|
||||||
- secretRef:
|
- secretRef:
|
||||||
name: {{ .name }}
|
name: {{ .name }}
|
||||||
@ -94,5 +123,4 @@ spec:
|
|||||||
volumes:
|
volumes:
|
||||||
- name: data
|
- name: data
|
||||||
persistentVolumeClaim:
|
persistentVolumeClaim:
|
||||||
claimName: {{ .Release.Name }}-pvc
|
claimName: {{ .Release.Name }}-pvc
|
||||||
|
|
@ -24,15 +24,20 @@ spec:
|
|||||||
- host: {{ .host | quote }}
|
- host: {{ .host | quote }}
|
||||||
http:
|
http:
|
||||||
paths:
|
paths:
|
||||||
{{- range .paths }}
|
- path: /
|
||||||
- path: {{ .path }}
|
pathType: Prefix
|
||||||
pathType: {{ .pathType }}
|
|
||||||
backend:
|
backend:
|
||||||
service:
|
service:
|
||||||
name: {{ $.Release.Name }}
|
name: {{ $.Release.Name }}
|
||||||
port:
|
port:
|
||||||
number: {{ $.Values.service.port }}
|
number: 80
|
||||||
{{- end }}
|
- path: "/.webhook"
|
||||||
|
pathType: Prefix
|
||||||
|
backend:
|
||||||
|
service:
|
||||||
|
name: {{ $.Release.Name }}
|
||||||
|
port:
|
||||||
|
number: 8000
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
|
34
templates/secrets.yaml
Normal file
34
templates/secrets.yaml
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
|
||||||
|
|
||||||
|
{{- if and (not $webhook_secret) .Values.updater.webhook_secret }}
|
||||||
|
{{- $webhook_secret = .Values.updater.webhook_secret }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if not $webhook_secret }}
|
||||||
|
{{- $webhook_secret = randAlphaNum 10 }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{- if and (not $apiUsername) .Values.updater.apiUsername }}
|
||||||
|
{{- $apiUsername = .Values.updater.apiUsername }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if and (not $apiPassword) .Values.updater.apiPassword }}
|
||||||
|
{{- $apiPassword = .Values.updater.apiPassword }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{- if not $apiUsername}}
|
||||||
|
{{- $apiUsername = randAlphaNum 10 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if not $apiPassword}}
|
||||||
|
{{- $apiPassword = randAlphaNum 10 }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: {{ .Release.Name }}-webhook-secret
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
|
type: Opaque
|
||||||
|
data:
|
||||||
|
WEBHOOK_SECRET: {{ $webhook_secret | b64enc }}
|
||||||
|
API_USERNAME: {{ $apiUsername | b64enc }}
|
||||||
|
API_PASSWORD: {{ $apiPassword | b64enc }}
|
||||||
|
SCRIPT_NAME: "/.webhook"
|
@ -2,15 +2,19 @@ apiVersion: v1
|
|||||||
kind: Service
|
kind: Service
|
||||||
metadata:
|
metadata:
|
||||||
name: {{ .Release.Name }}
|
name: {{ .Release.Name }}
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
labels:
|
labels:
|
||||||
{{- include "basic-app.labels" . | nindent 4 }}
|
{{- include "basic-app.labels" . | nindent 4 }}
|
||||||
spec:
|
spec:
|
||||||
type: {{ .Values.service.type }}
|
type: {{ .Values.service.type }}
|
||||||
ports:
|
ports:
|
||||||
- port: {{ .Values.service.port }}
|
- port: 80
|
||||||
targetPort: 80
|
targetPort: http-svc
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
name: http
|
name: http
|
||||||
|
- port: 8000
|
||||||
|
targetPort: webhook-svc
|
||||||
|
protocol: TCP
|
||||||
|
name: webhook
|
||||||
selector:
|
selector:
|
||||||
{{- include "basic-app.selectorLabels" . | nindent 4 }}
|
{{- include "basic-app.selectorLabels" . | nindent 4 }}
|
||||||
|
|
||||||
|
22
values.yaml
22
values.yaml
@ -5,15 +5,21 @@ image:
|
|||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
tag: "latest"
|
tag: "latest"
|
||||||
|
|
||||||
puller:
|
mysql:
|
||||||
image:
|
enabled: false
|
||||||
repository: nginx
|
|
||||||
pullPolicy: IfNotPresent
|
|
||||||
tag: "latest"
|
|
||||||
|
|
||||||
service:
|
postgresql:
|
||||||
type: ClusterIP
|
enabled: false
|
||||||
port: 80
|
|
||||||
|
updater:
|
||||||
|
image:
|
||||||
|
repository: glvx/web-updater
|
||||||
|
pullPolicy: IfNotPresent
|
||||||
|
tag: "241120-1"
|
||||||
|
url: ""
|
||||||
|
webhook-secret: ""
|
||||||
|
apiUsername: ""
|
||||||
|
apiPassword: ""
|
||||||
|
|
||||||
ingress:
|
ingress:
|
||||||
enabled: true
|
enabled: true
|
||||||
|
Loading…
Reference in New Issue
Block a user