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