Add preinstall hook to rancher chart
This commit is contained in:
@@ -13,9 +13,9 @@ ingress:
|
|||||||
nginx.ingress.kubernetes.io/proxy-body-size: 10m
|
nginx.ingress.kubernetes.io/proxy-body-size: 10m
|
||||||
|
|
||||||
# cert-manager 사용시
|
# cert-manager 사용시
|
||||||
cert-manager.io/cluster-issuer: "selfsigned-issuer"
|
# cert-manager.io/cluster-issuer: "selfsigned-issuer"
|
||||||
cert-manager.io/duration: 8760h
|
# cert-manager.io/duration: 8760h
|
||||||
cert-manager.io/renew-before: 720h
|
# cert-manager.io/renew-before: 720h
|
||||||
|
|
||||||
|
|
||||||
# 사설 인증서 사용시 true
|
# 사설 인증서 사용시 true
|
||||||
@@ -38,3 +38,5 @@ resources:
|
|||||||
extraEnv:
|
extraEnv:
|
||||||
- name: TZ
|
- name: TZ
|
||||||
value: Asia/Seoul
|
value: Asia/Seoul
|
||||||
|
|
||||||
|
preinstallHook: true
|
||||||
|
|||||||
@@ -0,0 +1,19 @@
|
|||||||
|
{{- if .Values.preinstallHook }}
|
||||||
|
apiVersion: cert-manager.io/v1
|
||||||
|
kind: Certificate
|
||||||
|
metadata:
|
||||||
|
name: {{ .Values.ingress.tls.secretName }}
|
||||||
|
annotations:
|
||||||
|
"helm.sh/hook": pre-install
|
||||||
|
"helm.sh/hook-weight": "1" # Certificate 생성 후 실행되도록 우선순위 설정
|
||||||
|
"helm.sh/hook-delete-policy": before-hook-creation
|
||||||
|
spec:
|
||||||
|
secretName: {{ .Values.ingress.tls.secretName }}
|
||||||
|
duration: 8750h
|
||||||
|
renewBefore: 720h
|
||||||
|
issuerRef:
|
||||||
|
name: selfsigned-issuer
|
||||||
|
kind: ClusterIssuer
|
||||||
|
dnsNames:
|
||||||
|
- {{ .Values.hostname }}
|
||||||
|
{{- end }}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
{{- if .Values.preinstallHook }}
|
||||||
|
apiVersion: batch/v1
|
||||||
|
kind: Job
|
||||||
|
metadata:
|
||||||
|
name: create-tls-ca-job
|
||||||
|
annotations:
|
||||||
|
"helm.sh/hook": pre-install
|
||||||
|
"helm.sh/hook-weight": "2" # Certificate 생성 후 실행되도록 우선순위 설정
|
||||||
|
"helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded,hook-failed
|
||||||
|
spec:
|
||||||
|
backoffLimit: 4
|
||||||
|
template:
|
||||||
|
spec:
|
||||||
|
serviceAccountName: create-tls-ca-sa
|
||||||
|
containers:
|
||||||
|
- name: create-secret
|
||||||
|
image: bitnami/kubectl:latest
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
command:
|
||||||
|
- /bin/sh
|
||||||
|
- -c
|
||||||
|
- |
|
||||||
|
echo "Waiting for rancher-tls-secret to be created..."
|
||||||
|
while [ $(kubectl get secret {{ .Values.ingress.tls.secretName }} -n {{ .Release.Namespace }} --ignore-not-found | wc -l) -lt 2 ]; do
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
echo "Creating new secret with custom key..."
|
||||||
|
RANCHER_CA_CERT=$(kubectl get secret {{ .Values.ingress.tls.secretName }} -o jsonpath='{.data.ca\.crt}' -n {{ .Release.Namespace }} | base64 -d)
|
||||||
|
kubectl create secret generic tls-ca --from-literal=cacerts\.pem="${RANCHER_CA_CERT}" -n {{ .Release.Namespace }}
|
||||||
|
restartPolicy: OnFailure
|
||||||
|
{{- end }}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
{{- if .Values.preinstallHook }}
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: Role
|
||||||
|
metadata:
|
||||||
|
name: create-tls-ca-role
|
||||||
|
annotations:
|
||||||
|
"helm.sh/hook": pre-install
|
||||||
|
"helm.sh/hook-weight": "-2"
|
||||||
|
"helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded,hook-failed
|
||||||
|
rules:
|
||||||
|
- apiGroups: [""]
|
||||||
|
resources: ["secrets"]
|
||||||
|
verbs: ["get", "create", "update", "patch", "list"]
|
||||||
|
{{- end }}
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
{{- if .Values.preinstallHook }}
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: RoleBinding
|
||||||
|
metadata:
|
||||||
|
name: create-tls-ca-rolebinding
|
||||||
|
annotations:
|
||||||
|
"helm.sh/hook": pre-install
|
||||||
|
"helm.sh/hook-weight": "-1"
|
||||||
|
"helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded,hook-failed
|
||||||
|
subjects:
|
||||||
|
- kind: ServiceAccount
|
||||||
|
name: create-tls-ca-sa
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
|
roleRef:
|
||||||
|
kind: Role
|
||||||
|
name: create-tls-ca-role
|
||||||
|
{{- end }}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
{{- if .Values.preinstallHook }}
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ServiceAccount
|
||||||
|
metadata:
|
||||||
|
name: create-tls-ca-sa
|
||||||
|
annotations:
|
||||||
|
"helm.sh/hook": pre-install
|
||||||
|
"helm.sh/hook-weight": "-3"
|
||||||
|
"helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded,hook-failed
|
||||||
|
{{- end }}
|
||||||
@@ -197,3 +197,5 @@ webhook: ""
|
|||||||
# helm values to use when installing the fleet chart.
|
# helm values to use when installing the fleet chart.
|
||||||
# helm values set here will override all other global values used when installing the fleet chart.
|
# helm values set here will override all other global values used when installing the fleet chart.
|
||||||
fleet: ""
|
fleet: ""
|
||||||
|
|
||||||
|
preinstallHook: false
|
||||||
|
|||||||
Reference in New Issue
Block a user