improve image tag handling on the default helm way.
with usage of appVersion from:
0995dc4822/helm/dendrite/Chart.yaml (L4)
maybe you like to review @S7evinK ?
### Pull Request Checklist
<!-- Please read
https://matrix-org.github.io/dendrite/development/contributing before
submitting your pull request -->
* [x] I have added Go unit tests or [Complement integration
tests](https://github.com/matrix-org/complement) for this PR _or_ I have
justified why this PR doesn't need tests
* [x] Pull request includes a [sign off below using a legally
identifiable
name](https://matrix-org.github.io/dendrite/development/contributing#sign-off)
_or_ I have already signed off privately
Signed-off-by: `Geno <geno+dev@fireorbit.de>`
100 lines
2.8 KiB
YAML
100 lines
2.8 KiB
YAML
{{ if and .Values.signing_key.create (not .Values.signing_key.existingSecret ) }}
|
|
{{ $name := (print ( include "dendrite.fullname" . ) "-signing-key") }}
|
|
{{ $secretName := (print ( include "dendrite.fullname" . ) "-signing-key") }}
|
|
---
|
|
apiVersion: v1
|
|
kind: ServiceAccount
|
|
metadata:
|
|
name: {{ $name }}
|
|
labels:
|
|
app.kubernetes.io/component: signingkey-job
|
|
{{- include "dendrite.labels" . | nindent 4 }}
|
|
---
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: Role
|
|
metadata:
|
|
name: {{ $name }}
|
|
labels:
|
|
app.kubernetes.io/component: signingkey-job
|
|
{{- include "dendrite.labels" . | nindent 4 }}
|
|
rules:
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- secrets
|
|
resourceNames:
|
|
- {{ $secretName }}
|
|
verbs:
|
|
- get
|
|
- update
|
|
- patch
|
|
---
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: RoleBinding
|
|
metadata:
|
|
name: {{ $name }}
|
|
labels:
|
|
app.kubernetes.io/component: signingkey-job
|
|
{{- include "dendrite.labels" . | nindent 4 }}
|
|
roleRef:
|
|
apiGroup: rbac.authorization.k8s.io
|
|
kind: Role
|
|
name: {{ $name }}
|
|
subjects:
|
|
- kind: ServiceAccount
|
|
name: {{ $name }}
|
|
namespace: {{ .Release.Namespace }}
|
|
---
|
|
apiVersion: batch/v1
|
|
kind: Job
|
|
metadata:
|
|
name: generate-signing-key
|
|
labels:
|
|
{{- include "dendrite.labels" . | nindent 4 }}
|
|
spec:
|
|
template:
|
|
spec:
|
|
restartPolicy: "Never"
|
|
serviceAccount: {{ $name }}
|
|
containers:
|
|
- name: upload-key
|
|
image: bitnami/kubectl
|
|
command:
|
|
- sh
|
|
- -c
|
|
- |
|
|
# check if key already exists
|
|
key=$(kubectl get secret {{ $secretName }} -o jsonpath="{.data['signing\.key']}" 2> /dev/null)
|
|
[ $? -ne 0 ] && echo "Failed to get existing secret" && exit 1
|
|
[ -n "$key" ] && echo "Key already created, exiting." && exit 0
|
|
# wait for signing key
|
|
while [ ! -f /etc/dendrite/signing-key.pem ]; do
|
|
echo "Waiting for signing key.."
|
|
sleep 5;
|
|
done
|
|
# update secret
|
|
kubectl patch secret {{ $secretName }} -p "{\"data\":{\"signing.key\":\"$(base64 /etc/dendrite/signing-key.pem | tr -d '\n')\"}}"
|
|
[ $? -ne 0 ] && echo "Failed to update secret." && exit 1
|
|
echo "Signing key successfully created."
|
|
volumeMounts:
|
|
- mountPath: /etc/dendrite/
|
|
name: signing-key
|
|
readOnly: true
|
|
- name: generate-key
|
|
{{- include "image.name" . | nindent 8 }}
|
|
command:
|
|
- sh
|
|
- -c
|
|
- |
|
|
/usr/bin/generate-keys -private-key /etc/dendrite/signing-key.pem
|
|
chown 1001:1001 /etc/dendrite/signing-key.pem
|
|
volumeMounts:
|
|
- mountPath: /etc/dendrite/
|
|
name: signing-key
|
|
volumes:
|
|
- name: signing-key
|
|
emptyDir: {}
|
|
parallelism: 1
|
|
completions: 1
|
|
backoffLimit: 1
|
|
{{ end }} |