keycloak/.helm/templates/20-keycloak.yaml

107 lines
3.1 KiB
YAML
Raw Normal View History

2026-09-09 14:06:31 +00:00
{{- $nodeSelector := dig .Values.werf.env .Values.keycloak.nodeSelector._default .Values.keycloak.nodeSelector }}
{{- $tolerations := dig .Values.werf.env .Values.keycloak.tolerations._default .Values.keycloak.tolerations }}
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: {{ .Chart.Name }}
labels:
app: {{ .Chart.Name }}
spec:
replicas: {{ dig .Values.werf.env .Values.keycloak.replicaCount._default .Values.keycloak.replicaCount }}
serviceName: {{ .Chart.Name }}
selector:
matchLabels:
app: {{ .Chart.Name }}
template:
metadata:
labels:
app: {{ .Chart.Name }}
annotations:
checksum/secret-env: {{ include (print $.Template.BasePath "/04-secret-envs.yaml") . | sha256sum }}
checksum/config-env: {{ include (print $.Template.BasePath "/05-cm-envs.yaml") . | sha256sum }}
spec:
{{- if $nodeSelector }}
nodeSelector: {{ toYaml $nodeSelector | nindent 8 }}
{{- end }}
{{- if $tolerations }}
tolerations: {{ toYaml $tolerations | nindent 6 }}
{{- end }}
affinity:
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- podAffinityTerm:
labelSelector:
matchExpressions:
- key: app
operator: In
values:
- {{ .Chart.Name }}
topologyKey: kubernetes.io/hostname
weight: 100
imagePullSecrets:
- name: registrysecret
serviceAccountName: {{ .Chart.Name }}-{{ .Values.werf.env }}
containers:
- name: keycloak
image: {{ .Values.werf.image.keycloak }}
command: [ "/bin/bash","-c","/opt/keycloak/bin/kc.sh start -Djgroups.dns.query={{ .Chart.Name }}-headless.{{ .Values.werf.namespace }}.svc.cluster.local --legacy-observability-interface=true"]
envFrom:
- secretRef:
name: {{ .Chart.Name }}-env
- configMapRef:
name: {{ .Chart.Name }}-env
ports:
- name: http
containerPort: 8080
- name: health
containerPort: 9000
startupProbe:
httpGet:
path: /
port: 8080
initialDelaySeconds: 60
failureThreshold: 15
periodSeconds: 3
timeoutSeconds: 3
resources: {{ dig .Values.werf.env .Values.keycloak.resources._default .Values.keycloak.resources | toYaml | nindent 10 }}
securityContext:
allowPrivilegeEscalation: false
runAsUser: 0
---
apiVersion: v1
kind: Service
metadata:
name: {{ .Chart.Name }}
labels:
app: {{ .Chart.Name }}
spec:
ports:
- name: http
port: 8080
targetPort: 8080
- name: health
port: 9000
targetPort: 9000
selector:
app: {{ .Chart.Name }}
---
apiVersion: v1
kind: Service
metadata:
name: {{ .Chart.Name }}-headless
spec:
type: ClusterIP
clusterIP: None
ports:
- name: http
port: 8080
protocol: TCP
targetPort: 8080
- name: health
port: 9000
targetPort: 9000
publishNotReadyAddresses: true
selector:
app: {{ .Chart.Name }}