4# (eg. disable helm hook delete policy)
7# Custom Service account management
9 # Whether to create service account or not
11 # Name of the service account.
13 # If `create: true` defaults to temporal.fullname, otherwise uses the namespace's default serviceAccount.
15 # extraAnnotations would let users add additional annotations
17additionalAnnotations: {}
19# Array of extra K8s manifests to deploy
24 repository: cgr.dev/chainguard-private/temporal-server-fips
25 tag: 1.31.3@sha256:f56bb8346582f212e3520c1fdf726348f5281ee124b0ea84386b16fb5ca12eb1
26 pullPolicy: IfNotPresent
27 # Global default settings (can be overridden per service)
30 # A value replaces the built-in tcpSocket probe whole.
33 # Annotate pods and services directly with the following Prometheus annotations.
36 # prometheus.io/scheme
37 # prometheus.io/scrape
40 # Enable Prometheus ServiceMonitor
41 # Use this if you installed the Prometheus Operator (https://github.com/coreos/prometheus-operator).
45 # Set additional lables to all the ServiceMonitor resources
49 # Set Prometheus metric_relabel_configs via ServiceMonitor
50 # Use metricRelabelings to adjust metric and label names as needed
54 # - exported_namespace
55 # targetLabel: temporal_namespace
57 # regex: service_errors_(.+)
61 # targetLabel: temporal_error_kind
63 # regex: service_errors_.+
64 # replacement: temporal_service_errors
67 # targetLabel: __name__
69 deploymentAnnotations: {}
70 deploymentStrategy: {}
76 # We usually recommend not to specify default resources and to leave this as a conscious
77 # choice for the user. This also increases chances charts run on environments with little
78 # resources, such as Minikube. If you do want to specify resources, uncomment the following
79 # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
89 # Default scheduling values for all server services. Each service can override these below.
94 terminationGracePeriodSeconds: null
96 additionalVolumeMounts: []
98 additionalEnvSecretName: ""
99 additionalEnvConfigMapName: ""
100 # Wire TLS for the Temporal server without hand-writing volumes, mounts and
101 # config.tls. Point each section at an existing kubernetes.io/tls secret
102 # (tls.crt + tls.key, plus ca.crt for verification). The secret can come from
103 # cert-manager, external-secrets, or be created by hand; the chart does not
104 # create it. Enabling a section mounts the secret and generates the matching
105 # `server.config.tls` block. Anything you set under `server.config.tls` is
106 # deep-merged on top, so individual fields remain overridable.
110 # Existing secret with tls.crt, tls.key and ca.crt for internode traffic.
112 # Where the secret is mounted in the server containers.
113 mountPath: /etc/temporal/tls/internode
114 # Require and verify client certificates on internode connections.
115 requireClientAuth: true
116 # DNS name clients expect in the server certificate (a SAN on the cert).
117 # Host verification is always on for internode, so this is required when
118 # internode.enabled is true.
123 mountPath: /etc/temporal/tls/frontend
124 # Require and verify client certificates on frontend connections (mutual
125 # TLS). The chart's own CLI pods (admintools, namespace job, health check)
126 # and the Web UI present a client certificate automatically; the internal
127 # server components present the internode certificate, so enable
128 # server.tls.internode and issue every certificate from a CA the frontend
129 # trusts when turning this on.
130 requireClientAuth: false
131 # DNS name clients expect in the frontend certificate (a SAN on the cert).
132 # Required when frontend.enabled is true.
134 # for sidecar containers, add containers here with restartPolicy: Always
135 additionalInitContainers: []
136 # publicClientHostPort: "temporal-frontend.example.svc:7233"
141 logLevel: "debug,info"
142 # Define your TLS configuration here. See https://docs.temporal.io/references/configuration#tls
143 # for configuration options. For most setups prefer the `server.tls` stanza
144 # above, which mounts the certificates and generates this block for you; use
145 # this only for advanced fields or to override what `server.tls` generates.
146 # If you configure TLS here directly you must also use
147 # `server.additionalVolumeMounts` and `server.additionalVolumes` to mount the
148 # certificates to the paths you reference below.
152 # certFile: /path/to/internode/cert/file
153 # keyFile: /path/to/internode/key/file
154 # requireClientAuth: true
156 # - /path/to/internode/serverCa
158 # serverName: dnsSanInInternodeCertificate
160 # - /path/to/internode/serverCa
163 # certFile: /path/to/frontend/cert/file
164 # keyFile: /path/to/frontend/key/file
165 # requireClientAuth: true
167 # - /path/to/internode/serverCa
168 # - /path/to/sdkClientPool1/ca
169 # - /path/to/sdkClientPool2/ca
171 # serverName: dnsSanInFrontendCertificate
173 # - /path/to/frontend/serverCa
174 # Define your Authorizer and ClaimMapper configuration here. See https://docs.temporal.io/self-hosted-guide/security#authorization
178 # - http://localhost:/jwks.json
179 # refreshInterval: 1m
180 # permissionsClaimName: permissions
181 # authorizer: default
182 # claimMapper: default
184 defaultStore: default
185 visibilityStore: visibility
186 # Important: numHistoryShards cannot be changed after the initial deployment.
187 numHistoryShards: 512
188 # Persistence configuration follows the raw Temporal server config format.
189 # Driver is determined by which top-level key is present (cassandra vs sql).
190 # For SQL stores, you can use either connectAddr: "host:port" or separate host/port fields.
191 # Helm-specific fields (existingSecret, secretKey) are stripped before rendering to server config.
194 # Example SQL configuration:
196 # createDatabase: false
197 # manageSchema: false
198 # pluginName: mysql8 # or postgres12, postgres12_pgx
200 # databaseName: temporal
201 # connectAddr: "mysql.example.com:3306" # preferred format
202 # connectProtocol: "tcp"
203 # # OR use separate host/port:
204 # # host: mysql.example.com
206 # user: temporal_user
207 # password: "" # optional, use existingSecret instead
208 # existingSecret: temporal-db-secret # Helm-specific, stripped before rendering
209 # secretKey: password # Helm-specific, default: password
210 # # Server v1.31+ alternative to password/existingSecret (SQL datastores
211 # # only). When set, no password Secret is created and no SQL_PASSWORD
212 # # env is wired; the server invokes the command per new connection.
214 # command: my-token-helper
219 # maxConnLifetime: "1h"
221 # tx_isolation: "READ-COMMITTED"
224 # caFile: /path/to/ca.pem
225 # Example Cassandra configuration:
227 # createDatabase: false
228 # manageSchema: false
229 # hosts: "host1,host2"
232 # user: cassandra_user
233 # password: "" # optional, use existingSecret instead
234 # existingSecret: temporal-cassandra-secret
235 # secretKey: password
236 # replicationFactor: 3
239 # consistency: "local_quorum"
240 # serialConsistency: "local_serial"
242 # Example SQL configuration (same structure as default.sql):
244 # createDatabase: false
245 # manageSchema: false
248 # databaseName: temporal_visibility
249 # connectAddr: "mysql.example.com:3306"
250 # connectProtocol: "tcp"
251 # user: temporal_user
252 # existingSecret: temporal-db-secret
253 # secretKey: password
254 # Example Elasticsearch configuration:
259 # host: "elasticsearch:9200"
262 # existingSecret: temporal-es-secret
263 # secretKey: password
266 # visibility: temporal_visibility_v1
269 # caFile: /path/to/ca.crt
270 # certFile: /path/to/client.crt
271 # keyFile: /path/to/client.key
272 # serverName: elasticsearch.internal
273 # enableHostVerification: true
274 # aws-request-signing:
275 # credentialProvider: environment # static, environment, or aws-sdk-default
279 # secretAccessKey: ""
281 # Additional stores can be added here and will pass through directly
284 # pluginName: postgres12
287 # Additional tags to be added to Prometheus metrics
289 # ... All other fields from https://github.com/temporalio/temporal/blob/main/common/metrics/config.go
295 listenAddress: "0.0.0.0:9090"
297 # Enable this to create namespaces
299 # The namespace-setup job is a one-off admin tools invocation. Like the
300 # admin tools (see admintools.useExternalFrontend) it connects to the
301 # internal-frontend when that is enabled, which grants admin without an
302 # external Authorizer. Set this to true to route it through the external
303 # frontend instead (e.g. when the frontend has an Authorizer and you can
304 # authenticate the job rather than relying on the internal-frontend bypass).
305 useExternalFrontend: false
306 # Use Helm hooks to ensure namespace creation runs as a post-install/post-upgrade step,
307 # after the frontend is created, and is cleaned up automatically on the next release.
308 # Set to false if using Flux, Rancher or Terraform.
316 # Evaluated as template
322 membershipAppProtocol: tcp
324 httpAppProtocol: http
325 # Defaults to a tcpSocket probe; uncomment below for a gRPC probe.
326 # gRPC probes don't yet support TLS (kubernetes/enhancements#4939), so opt in only when TLS is off.
332 # service: temporal.api.workflowservice.v1.WorkflowService
337 # kubernetes.io/ingress.class: traefik
338 # ingress.kubernetes.io/ssl-redirect: "false"
339 # traefik.frontend.rule.type: PathPrefix
345 # - secretName: chart-example-tls
347 # - chart-example.local
354 # timerType: histogram
356 deploymentAnnotations: {}
357 deploymentStrategy: {}
366 containerSecurityContext: {}
367 topologySpreadConstraints: []
370 priorityClassName: ""
371 podDisruptionBudget: {}
375 # name: "frontend-service-account"
376 # extraAnnotations: {}
378 # Enable this to create internal-frontend
381 # Evaluated as template
387 membershipAppProtocol: tcp
389 httpAppProtocol: http
390 # Defaults to a tcpSocket probe; uncomment below for a gRPC probe.
391 # gRPC probes don't yet support TLS (kubernetes/enhancements#4939), so opt in only when TLS is off.
397 # service: temporal.api.workflowservice.v1.WorkflowService
404 # timerType: histogram
406 deploymentAnnotations: {}
407 deploymentStrategy: {}
416 containerSecurityContext: {}
417 topologySpreadConstraints: []
420 priorityClassName: ""
421 podDisruptionBudget: {}
430 membershipAppProtocol: tcp
439 # timerType: histogram
441 deploymentAnnotations: {}
442 deploymentStrategy: {}
451 containerSecurityContext: {}
452 topologySpreadConstraints: []
455 priorityClassName: ""
456 podDisruptionBudget: {}
465 membershipAppProtocol: tcp
474 # timerType: histogram
476 deploymentAnnotations: {}
477 deploymentStrategy: {}
486 containerSecurityContext: {}
487 topologySpreadConstraints: []
490 priorityClassName: ""
491 podDisruptionBudget: {}
500 membershipAppProtocol: tcp
509 # timerType: histogram
511 deploymentAnnotations: {}
512 deploymentStrategy: {}
521 containerSecurityContext: {}
522 topologySpreadConstraints: []
525 priorityClassName: ""
526 podDisruptionBudget: {}
530 # By default the admin tools connect to the internal-frontend when it is
531 # enabled, which grants admin access without an external Authorizer. Set this
532 # to true to connect through the external frontend instead (e.g. when the
533 # frontend has an Authorizer and you supply credentials via additionalEnv). If
534 # server TLS is enabled the chart mounts the matching certificate (internode
535 # for the internal-frontend, frontend for the external frontend) and sets the
536 # TEMPORAL_TLS_* env; this is skipped when a custom temporalAddress is set.
537 useExternalFrontend: false
539 repository: cgr.dev/chainguard-private/temporal-admin-tools-fips
540 tag: 1.31.3@sha256:8513b8f0b5e3467c4b665710594987dfb8b6004be905abdeb9bb04e6704c4b06
541 pullPolicy: IfNotPresent
547 deploymentAnnotations: {}
548 deploymentStrategy: {}
556 priorityClassName: ""
557 additionalVolumes: []
558 additionalVolumeMounts: []
560 additionalEnvSecretName: ""
561 additionalEnvConfigMapName: ""
562 # temporalAddress: "localhost:7233"
563 # for sidecar containers, add containers here with restartPolicy: Always
564 additionalInitContainers: []
566 containerSecurityContext: {}
569 podDisruptionBudget: {}
572 # additionalInitContainers: []
576 repository: cgr.dev/chainguard-private/temporal-ui-server-fips
577 tag: 2.54.1@sha256:fbc8c799eb6b40982434f6158aa47728755fd295f88583ed3f6b7142cefea013
578 pullPolicy: IfNotPresent
580 # set type to NodePort if access to web needs access from outside the cluster
581 # for more info see https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types
583 # The below clusterIP setting can be set to "None" to make the temporal-web service headless.
584 # Note that this requires the web.service.type to be the default ClusterIP value.
590 # Override the address the UI uses to connect to the Temporal frontend.
591 # Defaults to <fullname>-frontend.<namespace>.svc:<server.frontend.service.port>.
592 # Useful when running a proxy sidecar that intercepts gRPC traffic.
593 # temporalAddress: "localhost:7233"
595 initialDelaySeconds: 10
603 # kubernetes.io/ingress.class: traefik
604 # ingress.kubernetes.io/ssl-redirect: "false"
605 # traefik.frontend.rule.type: PathPrefix
611 # - secretName: chart-example-tls
613 # - chart-example.local
615 deploymentAnnotations: {}
616 deploymentStrategy: {}
620 # We usually recommend not to specify default resources and to leave this as a conscious
621 # choice for the user. This also increases chances charts run on environments with little
622 # resources, such as Minikube. If you do want to specify resources, uncomment the following
623 # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
633 additionalVolumes: []
634 additionalVolumeMounts: []
635 # Wire TLS for the connection from the Web UI to the frontend. Point at an
636 # existing kubernetes.io/tls secret; the chart mounts it and sets the
637 # TEMPORAL_TLS_* environment variables. The secret needs ca.crt to verify the
638 # frontend, plus tls.crt + tls.key when the frontend requires client
639 # certificates (server.tls.frontend.requireClientAuth: true).
643 mountPath: /etc/temporal/tls
644 # DNS name expected in the frontend server certificate. Required when
645 # enableHostVerification is true.
647 # Verify the frontend certificate against serverName.
648 enableHostVerification: false
649 # Adjust Web UI config with environment variables:
650 # https://docs.temporal.io/references/web-ui-environment-variables
652 additionalEnvSecretName: ""
653 additionalEnvConfigMapName: ""
654 containerSecurityContext: {}
656 topologySpreadConstraints: []
659 priorityClassName: ""
661 podDisruptionBudget: {}
664 # Use Helm hooks to ensure schema setup completes before server pods start.
665 # Set to false if using Flux, Rancher or Terraform.
668 activeDeadlineSeconds: null
669 ttlSecondsAfterFinished: 86400
674 containerSecurityContext: {}
678 # Enable compatibility with Temporal 1.29 images. Set to true if using Temporal 1.29.
680 # Enable compatibility with Temporal 1.29 images. Set to true if using Temporal 1.29.
681 elasticsearchTool: false