#kubernetes #kubernetes-helm
Вопрос:
Я пытаюсь использовать sha256sum для обнаружения изменений в конфигурационной карте и запуска перезапуска модуля. Конфигурационная карта развертывается родительской диаграммой в кластере. Все работает нормально в разделе env, но есть проблема со второй контрольной суммой. Я не понимал, как должен выглядеть правильный путь.
развертывание.ямл подкарты:
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "test-project.fullname" . }}
labels:
app.kubernetes.io/name: {{ include "test-project.name" . }}
helm.sh/chart: {{ include "test-project.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
spec:
replicas: {{ .Values.replicaCount }}
strategy:
rollingUpdate:
maxUnavailable: 0
maxSurge: 1
selector:
matchLabels:
app.kubernetes.io/name: {{ include "test-project.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
template:
metadata:
labels:
app.kubernetes.io/name: {{ include "test-project.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
annotations:
checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}
checksum/config1: {{ include (print $.Files.Get "configmaps/myproduct.yaml") . | sha256sum }} //error line
spec:
containers:
- name: {{ .Chart.Name }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
ports:
{{- if not .Values.security.useSSLConnection }}
- name: http
containerPort: {{ .Values.springboot.server.port | default 8080 }}
protocol: TCP
{{- else }}
- name: https
containerPort: {{ .Values.springboot.server.port | default 8080 }}
protocol: TCP
{{- end }}
readinessProbe:
httpGet:
path: {{ .Values.readiness.path | default "/actuator/ready" }}
port: {{ .Values.springboot.actuator.port | default "http" }}
scheme: HTTP{{ if $.Values.security.useSSLConnection }}S{{ end }}
initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds | default 10 }}
periodSeconds: {{ .Values.readiness.periodSeconds | default 10 }}
timeoutSeconds: {{ .Values.readiness.timeoutSeconds | default 1 }}
successThreshold: {{ .Values.readiness.successThreshold | default 1 }}
failureThreshold: {{ .Values.readiness.failureThreshold | default 3 }}
livenessProbe:
httpGet:
path: {{ .Values.liveness.path | default "/actuator/alive" }}
port: {{ .Values.springboot.actuator.port | default "http" }}
scheme: HTTP{{ if $.Values.security.useSSLConnection }}S{{ end }}
initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds | default 300 }}
periodSeconds: {{ .Values.liveness.periodSeconds | default 10 }}
timeoutSeconds: {{ .Values.liveness.timeoutSeconds | default 1 }}
successThreshold: {{ .Values.liveness.successThreshold | default 1 }}
failureThreshold: {{ .Values.liveness.failureThreshold | default 3 }}
env:
- name: MY_PRODJECT
valueFrom:
configMapKeyRef:
name: my-product
key: prj-version
- name: ACTUATOR_PORT
value: "{{ .Values.springboot.actuator.port }}"
- name: USE_SSL
value: "{{ .Values.security.useSSLConnection }}"
- name: CRL_ENABLED
value: "{{ .Values.security.CRLEnabled }}"
Конфигурационная карта myproduct.yaml из родительской диаграммы:
apiVersion: v1
kind: ConfigMap
metadata:
name: my-product
namespace: {{ .Release.Namespace }}
data:
prj-version: "0.3"