blob: 3f12e1d28e208aa343444e3b7c7a5a3ffd25958b [file] [log] [blame]
Oleksandr Kozachenkob0093492023-09-06 21:43:47 +02001# Copyright VMware, Inc.
2# SPDX-License-Identifier: APACHE-2.0
3
4## @section Global parameters
5## Global Docker image parameters
6## Please, note that this will override the image parameters, including dependencies, configured to use the global value
7## Current available global Docker image parameters: imageRegistry, imagePullSecrets and storageClass
8##
9
10## @param global.imageRegistry Global Docker image registry
11## @param global.imagePullSecrets Global Docker registry secret names as an array
12## @param global.storageClass Global StorageClass for Persistent Volume(s)
13##
14global:
15 imageRegistry: ""
16 ## E.g.
17 ## imagePullSecrets:
18 ## - myRegistryKeySecretName
19 ##
20 imagePullSecrets: []
21 storageClass: ""
22
23## @section Common parameters
24##
25
26## @param kubeVersion Force target Kubernetes version (using Helm capabilities if not set)
27##
28kubeVersion: ""
29## @param nameOverride String to partially override common.names.fullname
30##
31nameOverride: ""
32## @param fullnameOverride String to fully override common.names.fullname
33##
34fullnameOverride: ""
35## @param namespaceOverride String to fully override common.names.namespace
36##
37namespaceOverride: ""
38## @param commonLabels Labels to add to all deployed objects
39##
40commonLabels: {}
41## @param enableServiceLinks If set to false, disable Kubernetes service links in the pod spec
42## Ref: https://kubernetes.io/docs/tutorials/services/connect-applications-service/#accessing-the-service
43##
44enableServiceLinks: true
45## @param commonAnnotations Annotations to add to all deployed objects
46##
47commonAnnotations: {}
48## @param dnsPolicy DNS Policy for pod
49## ref: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/
50## E.g.
51## dnsPolicy: ClusterFirst
52dnsPolicy: ""
53## @param dnsConfig DNS Configuration pod
54## ref: https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/
55## E.g.
56## dnsConfig:
57## options:
58## - name: ndots
59## value: "4"
60dnsConfig: {}
61## @param clusterDomain Default Kubernetes cluster domain
62##
63clusterDomain: cluster.local
64## @param extraDeploy Array of extra objects to deploy with the release
65##
66extraDeploy: []
67## Enable diagnostic mode in the statefulset
68##
69diagnosticMode:
70 ## @param diagnosticMode.enabled Enable diagnostic mode (all probes will be disabled and the command will be overridden)
71 ##
72 enabled: false
73 ## @param diagnosticMode.command Command to override all containers in the the statefulset
74 ##
75 command:
76 - sleep
77 ## @param diagnosticMode.args Args to override all containers in the the statefulset
78 ##
79 args:
80 - infinity
81
82## @section Keycloak parameters
83
84## Bitnami Keycloak image version
85## ref: https://hub.docker.com/r/bitnami/keycloak/tags/
86## @param image.registry Keycloak image registry
87## @param image.repository Keycloak image repository
88## @param image.tag Keycloak image tag (immutable tags are recommended)
89## @param image.digest Keycloak image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
90## @param image.pullPolicy Keycloak image pull policy
91## @param image.pullSecrets Specify docker-registry secret names as an array
92## @param image.debug Specify if debug logs should be enabled
93##
94image:
95 registry: docker.io
96 repository: bitnami/keycloak
97 tag: 22.0.1-debian-11-r4
98 digest: ""
99 ## Specify a imagePullPolicy
100 ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
101 ## ref: https://kubernetes.io/docs/user-guide/images/#pre-pulling-images
102 ##
103 pullPolicy: IfNotPresent
104 ## Optionally specify an array of imagePullSecrets.
105 ## Secrets must be manually created in the namespace.
106 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
107 ## Example:
108 ## pullSecrets:
109 ## - myRegistryKeySecretName
110 ##
111 pullSecrets: []
112 ## Set to true if you would like to see extra information on logs
113 ##
114 debug: false
115## Keycloak authentication parameters
116## ref: https://github.com/bitnami/containers/tree/main/bitnami/keycloak#admin-credentials
117##
118auth:
119 ## @param auth.adminUser Keycloak administrator user
120 ##
121 adminUser: user
122 ## @param auth.adminPassword Keycloak administrator password for the new user
123 ##
124 adminPassword: ""
125 ## @param auth.existingSecret Existing secret containing Keycloak admin password
126 ##
127 existingSecret: ""
128 ## @param auth.passwordSecretKey Key where the Keycloak admin password is being stored inside the existing secret.
129 ##
130 passwordSecretKey: ""
131
132## HTTPS settings
133## ref: https://github.com/bitnami/containers/tree/main/bitnami/keycloak#tls-encryption
134##
135tls:
136 ## @param tls.enabled Enable TLS encryption. Required for HTTPs traffic.
137 ##
138 enabled: false
139 ## @param tls.autoGenerated Generate automatically self-signed TLS certificates. Currently only supports PEM certificates
140 ##
141 autoGenerated: false
142 ## @param tls.existingSecret Existing secret containing the TLS certificates per Keycloak replica
143 ## Create this secret following the steps below:
144 ## 1) Generate your truststore and keystore files (more info at https://www.keycloak.org/docs/latest/server_installation/#_setting_up_ssl)
145 ## 2) Rename your truststore to `keycloak.truststore.jks` or use a different name overwriting the value 'tls.truststoreFilename'.
146 ## 3) Rename your keystores to `keycloak.keystore.jks` or use a different name overwriting the value 'tls.keystoreFilename'.
147 ## 4) Run the command below where SECRET_NAME is the name of the secret you want to create:
148 ## kubectl create secret generic SECRET_NAME --from-file=./keycloak.truststore.jks --from-file=./keycloak.keystore.jks
149 ## NOTE: If usePem enabled, make sure the PEM key and cert are named 'tls.key' and 'tls.crt' respectively.
150 ##
151 existingSecret: ""
152 ## @param tls.usePem Use PEM certificates as input instead of PKS12/JKS stores
153 ## If "true", the Keycloak chart will look for the files keycloak.key and keycloak.crt inside the secret provided with 'existingSecret'.
154 ##
155 usePem: false
156 ## @param tls.truststoreFilename Truststore filename inside the existing secret
157 ##
158 truststoreFilename: "keycloak.truststore.jks"
159 ## @param tls.keystoreFilename Keystore filename inside the existing secret
160 ##
161 keystoreFilename: "keycloak.keystore.jks"
162 ## @param tls.keystorePassword Password to access the keystore when it's password-protected
163 ##
164 keystorePassword: ""
165 ## @param tls.truststorePassword Password to access the truststore when it's password-protected
166 ##
167 truststorePassword: ""
168 ## @param tls.passwordsSecret Secret containing the Keystore and Truststore passwords.
169 ##
170 passwordsSecret: ""
171
172## SPI TLS settings
173## ref: https://www.keycloak.org/server/keycloak-truststore
174##
175spi:
176 ## @param spi.existingSecret Existing secret containing the Keycloak truststore for SPI connection over HTTPS/TLS
177 ## Create this secret following the steps below:
178 ## 1) Rename your truststore to `keycloak-spi.truststore.jks` or use a different name overwriting the value 'spi.truststoreFilename'.
179 ## 2) Run the command below where SECRET_NAME is the name of the secret you want to create:
180 ## kubectl create secret generic SECRET_NAME --from-file=./keycloak-spi.truststore.jks --from-file=./keycloak.keystore.jks
181 ##
182 existingSecret: ""
183 ## @param spi.truststorePassword Password to access the truststore when it's password-protected
184 ##
185 truststorePassword: ""
186 ## @param spi.truststoreFilename Truststore filename inside the existing secret
187 ##
188 truststoreFilename: "keycloak-spi.truststore.jks"
189 ## @param spi.passwordsSecret Secret containing the SPI Truststore passwords.
190 ##
191 passwordsSecret: ""
192 ## @param spi.hostnameVerificationPolicy Verify the hostname of the server’s certificate. Allowed values: "ANY", "WILDCARD", "STRICT".
193 ##
194 hostnameVerificationPolicy: ""
195
196## @param production Run Keycloak in production mode. TLS configuration is required except when using proxy=edge.
197##
198production: false
199## @param proxy reverse Proxy mode edge, reencrypt, passthrough or none
200## ref: https://www.keycloak.org/server/reverseproxy
201##
202proxy: passthrough
203## @param httpRelativePath Set the path relative to '/' for serving resources. Useful if you are migrating from older version which were using '/auth/'
204## ref: https://www.keycloak.org/migration/migrating-to-quarkus#_default_context_path_changed
205##
206httpRelativePath: "/"
207## Keycloak Service Discovery settings
208## ref: https://github.com/bitnami/containers/tree/main/bitnami/keycloak#cluster-configuration
209##
210## @param configuration Keycloak Configuration. Auto-generated based on other parameters when not specified
211## Specify content for keycloak.conf
212## NOTE: This will override configuring Keycloak based on environment variables (including those set by the chart)
213## The keycloak.conf is auto-generated based on other parameters when this parameter is not specified
214##
215## Example:
216## configuration: |-
217## foo: bar
218## baz:
219##
220configuration: ""
221## @param existingConfigmap Name of existing ConfigMap with Keycloak configuration
222## NOTE: When it's set the configuration parameter is ignored
223##
224existingConfigmap: ""
225## @param extraStartupArgs Extra default startup args
226##
227extraStartupArgs: ""
228## @param initdbScripts Dictionary of initdb scripts
229## Specify dictionary of scripts to be run at first boot
230## ref: https://github.com/bitnami/containers/tree/main/bitnami/keycloak#initializing-a-new-instance
231## Example:
232## initdbScripts:
233## my_init_script.sh: |
234## #!/bin/bash
235## echo "Do something."
236##
237initdbScripts: {}
238## @param initdbScriptsConfigMap ConfigMap with the initdb scripts (Note: Overrides `initdbScripts`)
239##
240initdbScriptsConfigMap: ""
241## @param command Override default container command (useful when using custom images)
242##
243command: []
244## @param args Override default container args (useful when using custom images)
245##
246args: []
247## @param extraEnvVars Extra environment variables to be set on Keycloak container
248## Example:
249## extraEnvVars:
250## - name: FOO
251## value: "bar"
252##
253extraEnvVars: []
254## @param extraEnvVarsCM Name of existing ConfigMap containing extra env vars
255##
256extraEnvVarsCM: ""
257## @param extraEnvVarsSecret Name of existing Secret containing extra env vars
258##
259extraEnvVarsSecret: ""
260
261## @section Keycloak statefulset parameters
262
263## @param replicaCount Number of Keycloak replicas to deploy
264##
265replicaCount: 1
266## @param containerPorts.http Keycloak HTTP container port
267## @param containerPorts.https Keycloak HTTPS container port
268## @param containerPorts.infinispan Keycloak infinispan container port
269##
270containerPorts:
271 http: 8080
272 https: 8443
273 infinispan: 7800
274## @param extraContainerPorts Optionally specify extra list of additional port-mappings for Keycloak container
275##
276extraContainerPorts: []
277
278## Keycloak pods' SecurityContext
279## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
280## @param podSecurityContext.enabled Enabled Keycloak pods' Security Context
281## @param podSecurityContext.fsGroup Set Keycloak pod's Security Context fsGroup
282##
283podSecurityContext:
284 enabled: true
285 fsGroup: 1001
286## Keycloak containers' Security Context
287## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
288## @param containerSecurityContext.enabled Enabled Keycloak containers' Security Context
289## @param containerSecurityContext.runAsUser Set Keycloak container's Security Context runAsUser
290## @param containerSecurityContext.runAsNonRoot Set Keycloak container's Security Context runAsNonRoot
291##
292containerSecurityContext:
293 enabled: true
294 runAsUser: 1001
295 runAsNonRoot: true
296## Keycloak resource requests and limits
297## ref: https://kubernetes.io/docs/user-guide/compute-resources/
298## @param resources.limits The resources limits for the Keycloak containers
299## @param resources.requests The requested resources for the Keycloak containers
300##
301resources:
302 limits: {}
303 requests: {}
304## Configure extra options for Keycloak containers' liveness, readiness and startup probes
305## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
306## @param livenessProbe.enabled Enable livenessProbe on Keycloak containers
307## @param livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
308## @param livenessProbe.periodSeconds Period seconds for livenessProbe
309## @param livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
310## @param livenessProbe.failureThreshold Failure threshold for livenessProbe
311## @param livenessProbe.successThreshold Success threshold for livenessProbe
312##
313livenessProbe:
314 enabled: true
315 initialDelaySeconds: 300
316 periodSeconds: 1
317 timeoutSeconds: 5
318 failureThreshold: 3
319 successThreshold: 1
320## @param readinessProbe.enabled Enable readinessProbe on Keycloak containers
321## @param readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
322## @param readinessProbe.periodSeconds Period seconds for readinessProbe
323## @param readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
324## @param readinessProbe.failureThreshold Failure threshold for readinessProbe
325## @param readinessProbe.successThreshold Success threshold for readinessProbe
326##
327readinessProbe:
328 enabled: true
329 initialDelaySeconds: 30
330 periodSeconds: 10
331 timeoutSeconds: 1
332 failureThreshold: 3
333 successThreshold: 1
334## When enabling this, make sure to set initialDelaySeconds to 0 for livenessProbe and readinessProbe
335## @param startupProbe.enabled Enable startupProbe on Keycloak containers
336## @param startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
337## @param startupProbe.periodSeconds Period seconds for startupProbe
338## @param startupProbe.timeoutSeconds Timeout seconds for startupProbe
339## @param startupProbe.failureThreshold Failure threshold for startupProbe
340## @param startupProbe.successThreshold Success threshold for startupProbe
341##
342startupProbe:
343 enabled: false
344 initialDelaySeconds: 30
345 periodSeconds: 5
346 timeoutSeconds: 1
347 failureThreshold: 60
348 successThreshold: 1
349## @param customLivenessProbe Custom Liveness probes for Keycloak
350##
351customLivenessProbe: {}
352## @param customReadinessProbe Custom Rediness probes Keycloak
353##
354customReadinessProbe: {}
355## @param customStartupProbe Custom Startup probes for Keycloak
356##
357customStartupProbe: {}
358## @param lifecycleHooks LifecycleHooks to set additional configuration at startup
359##
360lifecycleHooks: {}
361## @param hostAliases Deployment pod host aliases
362## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
363##
364hostAliases: []
365## @param podLabels Extra labels for Keycloak pods
366## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
367##
368podLabels: {}
369## @param podAnnotations Annotations for Keycloak pods
370## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
371##
372podAnnotations: {}
373## @param podAffinityPreset Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
374## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
375##
376podAffinityPreset: ""
377## @param podAntiAffinityPreset Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
378## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
379##
380podAntiAffinityPreset: soft
381## Node affinity preset
382## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
383##
384nodeAffinityPreset:
385 ## @param nodeAffinityPreset.type Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
386 ##
387 type: ""
388 ## @param nodeAffinityPreset.key Node label key to match. Ignored if `affinity` is set.
389 ## E.g.
390 ## key: "kubernetes.io/e2e-az-name"
391 ##
392 key: ""
393 ## @param nodeAffinityPreset.values Node label values to match. Ignored if `affinity` is set.
394 ## E.g.
395 ## values:
396 ## - e2e-az1
397 ## - e2e-az2
398 ##
399 values: []
400## @param affinity Affinity for pod assignment
401## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
402##
403affinity: {}
404## @param nodeSelector Node labels for pod assignment
405## ref: https://kubernetes.io/docs/user-guide/node-selection/
406##
407nodeSelector: {}
408## @param tolerations Tolerations for pod assignment
409## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
410##
411tolerations: []
412## @param topologySpreadConstraints Topology Spread Constraints for pod assignment spread across your cluster among failure-domains. Evaluated as a template
413## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
414##
415topologySpreadConstraints: []
416## @param podManagementPolicy Pod management policy for the Keycloak statefulset
417##
418podManagementPolicy: Parallel
419## @param priorityClassName Keycloak pods' Priority Class Name
420## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
421##
422priorityClassName: ""
423## @param schedulerName Use an alternate scheduler, e.g. "stork".
424## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
425##
426schedulerName: ""
427## @param terminationGracePeriodSeconds Seconds Keycloak pod needs to terminate gracefully
428## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
429##
430terminationGracePeriodSeconds: ""
431## @param updateStrategy.type Keycloak statefulset strategy type
432## @param updateStrategy.rollingUpdate Keycloak statefulset rolling update configuration parameters
433## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
434##
435updateStrategy:
436 type: RollingUpdate
437 rollingUpdate: {}
438## @param extraVolumes Optionally specify extra list of additional volumes for Keycloak pods
439##
440extraVolumes: []
441## @param extraVolumeMounts Optionally specify extra list of additional volumeMounts for Keycloak container(s)
442##
443extraVolumeMounts: []
444## @param initContainers Add additional init containers to the Keycloak pods
445## Example:
446## initContainers:
447## - name: your-image-name
448## image: your-image
449## imagePullPolicy: Always
450## ports:
451## - name: portname
452## containerPort: 1234
453##
454initContainers: []
455## @param sidecars Add additional sidecar containers to the Keycloak pods
456## Example:
457## sidecars:
458## - name: your-image-name
459## image: your-image
460## imagePullPolicy: Always
461## ports:
462## - name: portname
463## containerPort: 1234
464##
465sidecars: []
466
467## @section Exposure parameters
468##
469
470## Service configuration
471##
472service:
473 ## @param service.type Kubernetes service type
474 ##
475 type: ClusterIP
476 ## @param service.http.enabled Enable http port on service
477 ##
478 http:
479 enabled: true
480 ## @param service.ports.http Keycloak service HTTP port
481 ## @param service.ports.https Keycloak service HTTPS port
482 ##
483 ports:
484 http: 80
485 https: 443
486 ## @param service.nodePorts [object] Specify the nodePort values for the LoadBalancer and NodePort service types.
487 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
488 ##
489 nodePorts:
490 http: ""
491 https: ""
492 ## @param service.sessionAffinity Control where client requests go, to the same pod or round-robin
493 ## Values: ClientIP or None
494 ## ref: https://kubernetes.io/docs/user-guide/services/
495 ##
496 sessionAffinity: None
497 ## @param service.sessionAffinityConfig Additional settings for the sessionAffinity
498 ## sessionAffinityConfig:
499 ## clientIP:
500 ## timeoutSeconds: 300
501 ##
502 sessionAffinityConfig: {}
503 ## @param service.clusterIP Keycloak service clusterIP IP
504 ## e.g:
505 ## clusterIP: None
506 ##
507 clusterIP: ""
508 ## @param service.loadBalancerIP loadBalancerIP for the SuiteCRM Service (optional, cloud specific)
509 ## ref: https://kubernetes.io/docs/user-guide/services/#type-loadbalancer
510 ##
511 loadBalancerIP: ""
512 ## @param service.loadBalancerSourceRanges Address that are allowed when service is LoadBalancer
513 ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
514 ## Example:
515 ## loadBalancerSourceRanges:
516 ## - 10.10.10.0/24
517 ##
518 loadBalancerSourceRanges: []
519 ## @param service.externalTrafficPolicy Enable client source IP preservation
520 ## ref https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
521 ##
522 externalTrafficPolicy: Cluster
523 ## @param service.annotations Additional custom annotations for Keycloak service
524 ##
525 annotations: {}
526 ## @param service.extraPorts Extra port to expose on Keycloak service
527 ##
528 extraPorts: []
529 # DEPRECATED service.extraHeadlessPorts will be removed in a future release, please use service.headless.extraPorts instead
530 ## @param service.extraHeadlessPorts Extra ports to expose on Keycloak headless service
531 ##
532 extraHeadlessPorts: []
533 ## Headless service properties
534 ##
535 headless:
536 ## @param service.headless.annotations Annotations for the headless service.
537 ##
538 annotations: {}
539 ## @param service.headless.extraPorts Extra ports to expose on Keycloak headless service
540 ##
541 extraPorts: []
542## Keycloak ingress parameters
543## ref: https://kubernetes.io/docs/user-guide/ingress/
544##
545ingress:
546 ## @param ingress.enabled Enable ingress record generation for Keycloak
547 ##
548 enabled: false
549 ## @param ingress.ingressClassName IngressClass that will be be used to implement the Ingress (Kubernetes 1.18+)
550 ## This is supported in Kubernetes 1.18+ and required if you have more than one IngressClass marked as the default for your cluster .
551 ## ref: https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/
552 ##
553 ingressClassName: ""
554 ## @param ingress.pathType Ingress path type
555 ##
556 pathType: ImplementationSpecific
557 ## @param ingress.apiVersion Force Ingress API version (automatically detected if not set)
558 ##
559 apiVersion: ""
560 ## @param ingress.hostname Default host for the ingress record (evaluated as template)
561 ##
562 hostname: keycloak.local
563 ## @param ingress.path [string] Default path for the ingress record (evaluated as template)
564 ##
565 path: "{{ .Values.httpRelativePath }}"
566 ## @param ingress.servicePort Backend service port to use
567 ## Default is http. Alternative is https.
568 ##
569 servicePort: http
570 ## @param ingress.annotations [object] Additional annotations for the Ingress resource. To enable certificate autogeneration, place here your cert-manager annotations.
571 ## Use this parameter to set the required annotations for cert-manager, see
572 ## ref: https://cert-manager.io/docs/usage/ingress/#supported-annotations
573 ## e.g:
574 ## annotations:
575 ## kubernetes.io/ingress.class: nginx
576 ## cert-manager.io/cluster-issuer: cluster-issuer-name
577 ##
578 annotations: {}
579 ## @param ingress.labels Additional labels for the Ingress resource.
580 ## e.g:
581 ## labels:
582 ## app: keycloak
583 ##
584 labels: {}
585 ## @param ingress.tls Enable TLS configuration for the host defined at `ingress.hostname` parameter
586 ## TLS certificates will be retrieved from a TLS secret with name: `{{- printf "%s-tls" (tpl .Values.ingress.hostname .) }}`
587 ## You can:
588 ## - Use the `ingress.secrets` parameter to create this TLS secret
589 ## - Rely on cert-manager to create it by setting the corresponding annotations
590 ## - Rely on Helm to create self-signed certificates by setting `ingress.selfSigned=true`
591 ##
592 tls: false
593 ## @param ingress.selfSigned Create a TLS secret for this ingress record using self-signed certificates generated by Helm
594 ##
595 selfSigned: false
596 ## @param ingress.extraHosts An array with additional hostname(s) to be covered with the ingress record
597 ## e.g:
598 ## extraHosts:
599 ## - name: keycloak.local
600 ## path: /
601 ##
602 extraHosts: []
603 ## @param ingress.extraPaths Any additional arbitrary paths that may need to be added to the ingress under the main host.
604 ## For example: The ALB ingress controller requires a special rule for handling SSL redirection.
605 ## extraPaths:
606 ## - path: /*
607 ## backend:
608 ## serviceName: ssl-redirect
609 ## servicePort: use-annotation
610 ##
611 extraPaths: []
612 ## @param ingress.extraTls The tls configuration for additional hostnames to be covered with this ingress record.
613 ## see: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls
614 ## extraTls:
615 ## - hosts:
616 ## - keycloak.local
617 ## secretName: keycloak.local-tls
618 ##
619 extraTls: []
620 ## @param ingress.secrets If you're providing your own certificates, please use this to add the certificates as secrets
621 ## key and certificate should start with -----BEGIN CERTIFICATE----- or
622 ## -----BEGIN RSA PRIVATE KEY-----
623 ##
624 ## name should line up with a tlsSecret set further up
625 ## If you're using cert-manager, this is unneeded, as it will create the secret for you if it is not set
626 ##
627 ## It is also possible to create and manage the certificates outside of this helm chart
628 ## Please see README.md for more information
629 ## e.g:
630 ## - name: keycloak.local-tls
631 ## key:
632 ## certificate:
633 ##
634 secrets: []
635 ## @param ingress.extraRules Additional rules to be covered with this ingress record
636 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-rules
637 ## e.g:
638 ## extraRules:
639 ## - host: airflow.local
640 ## http:
641 ## path: /
642 ## backend:
643 ## service:
644 ## name: airflow-svc
645 ## port:
646 ## name: http
647 ##
648 extraRules: []
649
650## Network Policy configuration
651## ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
652##
653networkPolicy:
654 ## @param networkPolicy.enabled Enable the default NetworkPolicy policy
655 ##
656 enabled: false
657 ## @param networkPolicy.allowExternal Don't require client label for connections
658 ## The Policy model to apply. When set to false, only pods with the correct
659 ## client label will have network access to the ports Keycloak is listening
660 ## on. When true, Keycloak will accept connections from any source
661 ## (with the correct destination port).
662 ##
663 allowExternal: true
664 ## @param networkPolicy.additionalRules Additional NetworkPolicy rules
665 ## Note that all rules are OR-ed.
666 ## Example:
667 ## additionalRules:
668 ## - matchLabels:
669 ## - role: frontend
670 ## - matchExpressions:
671 ## - key: role
672 ## operator: In
673 ## values:
674 ## - frontend
675 ##
676 additionalRules: {}
677
678## @section RBAC parameter
679## Specifies whether a ServiceAccount should be created
680##
681serviceAccount:
682 ## @param serviceAccount.create Enable the creation of a ServiceAccount for Keycloak pods
683 ##
684 create: true
685 ## @param serviceAccount.name Name of the created ServiceAccount
686 ## If not set and create is true, a name is generated using the fullname template
687 ##
688 name: ""
689 ## @param serviceAccount.automountServiceAccountToken Auto-mount the service account token in the pod
690 ##
691 automountServiceAccountToken: true
692 ## @param serviceAccount.annotations Additional custom annotations for the ServiceAccount
693 ##
694 annotations: {}
695 ## @param serviceAccount.extraLabels Additional labels for the ServiceAccount
696 ##
697 extraLabels: {}
698## Specifies whether RBAC resources should be created
699##
700rbac:
701 ## @param rbac.create Whether to create and use RBAC resources or not
702 ##
703 create: false
704 ## @param rbac.rules Custom RBAC rules
705 ## Example:
706 ## rules:
707 ## - apiGroups:
708 ## - ""
709 ## resources:
710 ## - pods
711 ## verbs:
712 ## - get
713 ## - list
714 ##
715 rules: []
716
717## @section Other parameters
718##
719
720## Keycloak Pod Disruption Budget configuration
721## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
722##
723pdb:
724 ## @param pdb.create Enable/disable a Pod Disruption Budget creation
725 ##
726 create: false
727 ## @param pdb.minAvailable Minimum number/percentage of pods that should remain scheduled
728 ##
729 minAvailable: 1
730 ## @param pdb.maxUnavailable Maximum number/percentage of pods that may be made unavailable
731 ##
732 maxUnavailable: ""
733## Keycloak Autoscaling configuration
734## @param autoscaling.enabled Enable autoscaling for Keycloak
735## @param autoscaling.minReplicas Minimum number of Keycloak replicas
736## @param autoscaling.maxReplicas Maximum number of Keycloak replicas
737## @param autoscaling.targetCPU Target CPU utilization percentage
738## @param autoscaling.targetMemory Target Memory utilization percentage
739##
740autoscaling:
741 enabled: false
742 minReplicas: 1
743 maxReplicas: 11
744 targetCPU: ""
745 targetMemory: ""
746
747## @section Metrics parameters
748##
749
750## Metrics configuration
751##
752metrics:
753 ## @param metrics.enabled Enable exposing Keycloak statistics
754 ## ref: https://github.com/bitnami/containers/tree/main/bitnami/keycloak#enabling-statistics
755 ##
756 enabled: false
757 ## Keycloak metrics service parameters
758 ##
759 service:
760 ## @param metrics.service.ports.http Metrics service HTTP port
761 ##
762 ports:
763 http: 8080
764 ## @param metrics.service.annotations [object] Annotations for enabling prometheus to access the metrics endpoints
765 ##
766 annotations:
767 prometheus.io/scrape: "true"
768 prometheus.io/port: "{{ .Values.metrics.service.ports.http }}"
769 ## Prometheus Operator ServiceMonitor configuration
770 ##
771 serviceMonitor:
772 ## @param metrics.serviceMonitor.enabled Create ServiceMonitor Resource for scraping metrics using PrometheusOperator
773 ##
774 enabled: false
775 ## @param metrics.serviceMonitor.port Metrics service HTTP port
776 ##
777 port: http
778 ## @param metrics.serviceMonitor.endpoints [array] The endpoint configuration of the ServiceMonitor. Path is mandatory. Interval, timeout and labellings can be overwritten.
779 ##
780 endpoints:
781 - path: '{{ include "keycloak.httpPath" . }}metrics'
782 - path: '{{ include "keycloak.httpPath" . }}realms/master/metrics'
783 ## @param metrics.serviceMonitor.path Metrics service HTTP path. Deprecated: Use @param metrics.serviceMonitor.endpoints instead
784 ##
785 path: ""
786 ## @param metrics.serviceMonitor.namespace Namespace which Prometheus is running in
787 ##
788 namespace: ""
789 ## @param metrics.serviceMonitor.interval Interval at which metrics should be scraped
790 ##
791 interval: 30s
792 ## @param metrics.serviceMonitor.scrapeTimeout Specify the timeout after which the scrape is ended
793 ## e.g:
794 ## scrapeTimeout: 30s
795 ##
796 scrapeTimeout: ""
797 ## @param metrics.serviceMonitor.labels Additional labels that can be used so ServiceMonitor will be discovered by Prometheus
798 ##
799 labels: {}
800 ## @param metrics.serviceMonitor.selector Prometheus instance selector labels
801 ## ref: https://github.com/bitnami/charts/tree/main/bitnami/prometheus-operator#prometheus-configuration
802 ##
803 selector: {}
804 ## @param metrics.serviceMonitor.relabelings RelabelConfigs to apply to samples before scraping
805 ##
806 relabelings: []
807 ## @param metrics.serviceMonitor.metricRelabelings MetricRelabelConfigs to apply to samples before ingestion
808 ##
809 metricRelabelings: []
810 ## @param metrics.serviceMonitor.honorLabels honorLabels chooses the metric's labels on collisions with target labels
811 ##
812 honorLabels: false
813 ## @param metrics.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus.
814 ##
815 jobLabel: ""
816 ## Prometheus Operator alert rules configuration
817 ##
818 prometheusRule:
819 ## @param metrics.prometheusRule.enabled Create PrometheusRule Resource for scraping metrics using PrometheusOperator
820 ##
821 enabled: false
822 ## @param metrics.prometheusRule.namespace Namespace which Prometheus is running in
823 ##
824 namespace: ""
825 ## @param metrics.prometheusRule.labels Additional labels that can be used so PrometheusRule will be discovered by Prometheus
826 ##
827 labels: {}
828 ## @param metrics.prometheusRule.groups Groups, containing the alert rules.
829 ## Example:
830 ## groups:
831 ## - name: Keycloak
832 ## rules:
833 ## - alert: KeycloakInstanceNotAvailable
834 ## annotations:
835 ## message: "Keycloak instance in namespace {{ `{{` }} $labels.namespace {{ `}}` }} has not been available for the last 5 minutes."
836 ## expr: |
837 ## absent(kube_pod_status_ready{namespace="{{ include "common.names.namespace" . }}", condition="true"} * on (pod) kube_pod_labels{pod=~"{{ include "common.names.fullname" . }}-\\d+", namespace="{{ include "common.names.namespace" . }}"}) != 0
838 ## for: 5m
839 ## labels:
840 ## severity: critical
841 groups: []
842
843## @section keycloak-config-cli parameters
844
845## Configuration for keycloak-config-cli
846## ref: https://github.com/adorsys/keycloak-config-cli
847##
848keycloakConfigCli:
849 ## @param keycloakConfigCli.enabled Whether to enable keycloak-config-cli job
850 ##
851 enabled: false
852 ## Bitnami keycloak-config-cli image
853 ## ref: https://hub.docker.com/r/bitnami/keycloak-config-cli/tags/
854 ## @param keycloakConfigCli.image.registry keycloak-config-cli container image registry
855 ## @param keycloakConfigCli.image.repository keycloak-config-cli container image repository
856 ## @param keycloakConfigCli.image.tag keycloak-config-cli container image tag
857 ## @param keycloakConfigCli.image.digest keycloak-config-cli container image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
858 ## @param keycloakConfigCli.image.pullPolicy keycloak-config-cli container image pull policy
859 ## @param keycloakConfigCli.image.pullSecrets keycloak-config-cli container image pull secrets
860 ##
861 image:
862 registry: docker.io
863 repository: bitnami/keycloak-config-cli
864 tag: 5.8.0-debian-11-r5
865 digest: ""
866 ## Specify a imagePullPolicy
867 ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
868 ## ref: https://kubernetes.io/docs/user-guide/images/#pre-pulling-images
869 ##
870 pullPolicy: IfNotPresent
871 ## Optionally specify an array of imagePullSecrets.
872 ## Secrets must be manually created in the namespace.
873 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
874 ## e.g:
875 ## pullSecrets:
876 ## - myRegistryKeySecretName
877 ##
878 pullSecrets: []
879 ## @param keycloakConfigCli.annotations [object] Annotations for keycloak-config-cli job
880 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
881 ##
882 annotations:
883 helm.sh/hook: "post-install,post-upgrade,post-rollback"
884 helm.sh/hook-delete-policy: "hook-succeeded,before-hook-creation"
885 helm.sh/hook-weight: "5"
886 ## @param keycloakConfigCli.command Command for running the container (set to default if not set). Use array form
887 ##
888 command: []
889 ## @param keycloakConfigCli.args Args for running the container (set to default if not set). Use array form
890 ##
891 args: []
892 ## @param keycloakConfigCli.hostAliases Job pod host aliases
893 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
894 ##
895 hostAliases: []
896 ## Keycloak config CLI resource requests and limits
897 ## ref: https://kubernetes.io/docs/user-guide/compute-resources/
898 ## @param keycloakConfigCli.resources.limits The resources limits for the keycloak-config-cli container
899 ## @param keycloakConfigCli.resources.requests The requested resources for the keycloak-config-cli container
900 ##
901 resources:
902 limits: {}
903 requests: {}
904 ## keycloak-config-cli containers' Security Context
905 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
906 ## @param keycloakConfigCli.containerSecurityContext.enabled Enabled keycloak-config-cli containers' Security Context
907 ## @param keycloakConfigCli.containerSecurityContext.runAsUser Set keycloak-config-cli container's Security Context runAsUser
908 ## @param keycloakConfigCli.containerSecurityContext.runAsNonRoot Set keycloak-config-cli container's Security Context runAsNonRoot
909 ##
910 containerSecurityContext:
911 enabled: true
912 runAsUser: 1001
913 runAsNonRoot: true
914 ## keycloak-config-cli pods' Security Context
915 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
916 ## @param keycloakConfigCli.podSecurityContext.enabled Enabled keycloak-config-cli pods' Security Context
917 ## @param keycloakConfigCli.podSecurityContext.fsGroup Set keycloak-config-cli pod's Security Context fsGroup
918 ##
919 podSecurityContext:
920 enabled: true
921 fsGroup: 1001
922 ## @param keycloakConfigCli.backoffLimit Number of retries before considering a Job as failed
923 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/job/#pod-backoff-failure-policy
924 ##
925 backoffLimit: 1
926 ## @param keycloakConfigCli.podLabels Pod extra labels
927 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
928 ##
929 podLabels: {}
930 ## @param keycloakConfigCli.podAnnotations Annotations for job pod
931 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
932 ##
933 podAnnotations: {}
934 ## @param keycloakConfigCli.extraEnvVars Additional environment variables to set
935 ## Example:
936 ## extraEnvVars:
937 ## - name: FOO
938 ## value: "bar"
939 ##
940 ## @param keycloakConfigCli.nodeSelector Node labels for pod assignment
941 ## ref: https://kubernetes.io/docs/user-guide/node-selection/
942 ##
943 nodeSelector: {}
944 ##
945 ## @param keycloakConfigCli.podTolerations Tolerations for job pod assignment
946 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
947 ##
948 podTolerations: []
949 extraEnvVars: []
950 ## @param keycloakConfigCli.extraEnvVarsCM ConfigMap with extra environment variables
951 ##
952 extraEnvVarsCM: ""
953 ## @param keycloakConfigCli.extraEnvVarsSecret Secret with extra environment variables
954 ##
955 extraEnvVarsSecret: ""
956 ## @param keycloakConfigCli.extraVolumes Extra volumes to add to the job
957 ##
958 extraVolumes: []
959 ## @param keycloakConfigCli.extraVolumeMounts Extra volume mounts to add to the container
960 ##
961 extraVolumeMounts: []
962 ## @param keycloakConfigCli.initContainers Add additional init containers to the Keycloak config cli pod
963 ## Example:
964 ## initContainers:
965 ## - name: your-image-name
966 ## image: your-image
967 ## imagePullPolicy: Always
968 ## ports:
969 ## - name: portname
970 ## containerPort: 1234
971 ##
972 initContainers: []
973 ## @param keycloakConfigCli.sidecars Add additional sidecar containers to the Keycloak config cli pod
974 ## Example:
975 ## sidecars:
976 ## - name: your-image-name
977 ## image: your-image
978 ## imagePullPolicy: Always
979 ## ports:
980 ## - name: portname
981 ## containerPort: 1234
982 ##
983 sidecars: []
984 ## @param keycloakConfigCli.configuration keycloak-config-cli realms configuration
985 ## NOTE: nil keys will be considered files to import locally
986 ## Example:
987 ## configuration:
988 ## realm1.json: |
989 ## {
990 ## "realm": "realm1",
991 ## "clients": []
992 ## }
993 ## realm2.yaml: |
994 ## realm: realm2
995 ## clients: []
996 ##
997 configuration: {}
998 ## @param keycloakConfigCli.existingConfigmap ConfigMap with keycloak-config-cli configuration. This will override `keycloakConfigCli.config`
999 ## NOTE: This will override keycloakConfigCli.configuration
1000 ##
1001 existingConfigmap: ""
1002 ## Automatic Cleanup for Finished Jobs
1003 ## @param keycloakConfigCli.cleanupAfterFinished.enabled Enables Cleanup for Finished Jobs
1004 ## @param keycloakConfigCli.cleanupAfterFinished.seconds Sets the value of ttlSecondsAfterFinished
1005 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/ttlafterfinished/
1006 ##
1007 cleanupAfterFinished:
1008 enabled: false
1009 seconds: 600
1010
1011## @section Database parameters
1012
1013## PostgreSQL chart configuration
1014## ref: https://github.com/bitnami/charts/blob/main/bitnami/postgresql/values.yaml
1015## @param postgresql.enabled Switch to enable or disable the PostgreSQL helm chart
1016## @param postgresql.auth.postgresPassword Password for the "postgres" admin user. Ignored if `auth.existingSecret` with key `postgres-password` is provided
1017## @param postgresql.auth.username Name for a custom user to create
1018## @param postgresql.auth.password Password for the custom user to create
1019## @param postgresql.auth.database Name for a custom database to create
1020## @param postgresql.auth.existingSecret Name of existing secret to use for PostgreSQL credentials
1021## @param postgresql.architecture PostgreSQL architecture (`standalone` or `replication`)
1022##
1023postgresql:
1024 enabled: true
1025 auth:
1026 postgresPassword: ""
1027 username: bn_keycloak
1028 password: ""
1029 database: bitnami_keycloak
1030 existingSecret: ""
1031 architecture: standalone
1032## External PostgreSQL configuration
1033## All of these values are only used when postgresql.enabled is set to false
1034## @param externalDatabase.host Database host
1035## @param externalDatabase.port Database port number
1036## @param externalDatabase.user Non-root username for Keycloak
1037## @param externalDatabase.password Password for the non-root username for Keycloak
1038## @param externalDatabase.database Keycloak database name
1039## @param externalDatabase.existingSecret Name of an existing secret resource containing the database credentials
1040## @param externalDatabase.existingSecretHostKey Name of an existing secret key containing the database host name
1041## @param externalDatabase.existingSecretPortKey Name of an existing secret key containing the database port
1042## @param externalDatabase.existingSecretUserKey Name of an existing secret key containing the database user
1043## @param externalDatabase.existingSecretDatabaseKey Name of an existing secret key containing the database name
1044## @param externalDatabase.existingSecretPasswordKey Name of an existing secret key containing the database credentials
1045##
1046externalDatabase:
1047 host: ""
1048 port: 5432
1049 user: bn_keycloak
1050 database: bitnami_keycloak
1051 password: ""
1052 existingSecret: ""
1053 existingSecretHostKey: ""
1054 existingSecretPortKey: ""
1055 existingSecretUserKey: ""
1056 existingSecretDatabaseKey: ""
1057 existingSecretPasswordKey: ""
1058
1059## @section Keycloak Cache parameters
1060
1061## Keycloak cache configuration
1062## ref: https://www.keycloak.org/server/caching
1063## @param cache.enabled Switch to enable or disable the keycloak distributed cache for kubernetes.
1064## NOTE: Set to false to use 'local' cache (only supported when replicaCount=1).
1065## @param cache.stackName Set infinispan cache stack to use
1066## @param cache.stackFile Set infinispan cache stack filename to use
1067##
1068cache:
1069 enabled: true
1070 stackName: kubernetes
1071 stackFile: ""
1072
1073## @section Keycloak Logging parameters
1074
1075## Keycloak logging configuration
1076## ref: https://www.keycloak.org/server/logging
1077## @param logging.output Alternates between the default log output format or json format
1078## @param logging.level Allowed values as documented: FATAL, ERROR, WARN, INFO, DEBUG, TRACE, ALL, OFF
1079##
1080logging:
1081 output: default
1082 level: INFO