1## @section Common parameters
3## @param kubeVersion Override Kubernetes version
6## @param nameOverride String to partially override sealed-secrets.fullname
9## @param fullnameOverride String to fully override sealed-secrets.fullname
12## @param namespace Namespace where to deploy the Sealed Secrets controller
15## @param extraDeploy [array] Array of extra objects to deploy with the release
18## @param commonAnnotations [object] Annotations to add to all deployed resources
19## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
22## @param commonLabels [object] Labels to add to all deployed resources
23## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
26## @section Sealed Secrets Parameters
28## Sealed Secrets image
29## ref: https://hub.docker.com/r/bitnami/sealed-secrets-controller/tags
30## @param image.registry Sealed Secrets image registry
31## @param image.repository Sealed Secrets image repository
32## @param image.tag Sealed Secrets image tag (immutable tags are recommended)
33## @param image.pullPolicy Sealed Secrets image pull policy
34## @param image.pullSecrets [array] Sealed Secrets image pull secrets
38 repository: scratch-images/test-tmp/sealed-secrets-controller-fips
39 tag: 0.39.1-r3@sha256:631873a540314f9e01bf80ee3e605e2ea5911207c2a26086dd21c833d751acea
40 ## Specify a imagePullPolicy
41 ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
42 ## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images
44 pullPolicy: IfNotPresent
45 ## Optionally specify an array of imagePullSecrets.
46 ## Secrets must be manually created in the namespace.
47 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
50 ## - myRegistryKeySecretName
53## @param revisionHistoryLimit Number of old history to retain to allow rollback (If not set, default Kubernetes value is set to 10)
55revisionHistoryLimit: ""
56## @param createController Specifies whether the Sealed Secrets controller should be created
59## @param secretName The name of an existing TLS secret containing the key used to encrypt secrets
61secretName: "sealed-secrets-key"
62## @param updateStatus Specifies whether the Sealed Secrets controller should update the status subresource
65## @param skipRecreate Specifies whether the Sealed Secrets controller should skip recreating removed secrets
66## Setting it to true allows to optionally restore backward compatibility in low priviledge
67## environments when old versions of the controller did not require watch permissions on secrets
68## for secret re-creation.
71## @param keyrenewperiod Specifies key renewal period. Default 30 days
73## keyrenewperiod: "720h30m"
74## To disable use "0", with quotes!
77## @param keyttl Specifies the certificate validity duration. Default 10 years.
79## keyttl: "8760h00m00s"
82## @param keycutofftime Specifies a date at which the controller should generate a new certificate. Useful in early key renewal scenarios.
83## Takes a date formated according to RFC1123. Can be obtained with the 'date -R' command on a unix system.
85## keycutofftime: "Mon, 14 Oct 2024 21:45:30 +0200"
88## @param rateLimit Number of allowed sustained request per second for verify endpoint
91## @param rateLimitBurst Number of requests allowed to exceed the rate limit per second for verify endpoint
94## @param additionalNamespaces List of namespaces used to manage the Sealed Secrets
96additionalNamespaces: []
97## @param privateKeyAnnotations Map of annotations to be set on the sealing keypairs
99privateKeyAnnotations: {}
100## @param privateKeyLabels Map of labels to be set on the sealing keypairs
103## @param logInfoStdout Specifies whether the Sealed Secrets controller will log info to stdout
106## @param logLevel Specifies log level of controller (INFO,ERROR)
109## @param logFormat Specifies log format (text,json)
112## @param maxRetries Number of maximum retries
115## @param watchForSecrets Specifies whether the Sealed Secrets controller will watch for new secrets
117watchForSecrets: false
118## @param kubeClientQPS Kubeclient QPS (negative value disables ratelimiting)
121## @param kubeClientBurst Kubeclient Burst
124## @param command Override default container command
127## @param args Override default container args
130## Configure extra options for Sealed Secret containers' liveness, readiness and startup probes
131## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
132## @param livenessProbe.enabled Enable livenessProbe on Sealed Secret containers
133## @param livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
134## @param livenessProbe.periodSeconds Period seconds for livenessProbe
135## @param livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
136## @param livenessProbe.failureThreshold Failure threshold for livenessProbe
137## @param livenessProbe.successThreshold Success threshold for livenessProbe
141 initialDelaySeconds: 0
146## @param readinessProbe.enabled Enable readinessProbe on Sealed Secret containers
147## @param readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
148## @param readinessProbe.periodSeconds Period seconds for readinessProbe
149## @param readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
150## @param readinessProbe.failureThreshold Failure threshold for readinessProbe
151## @param readinessProbe.successThreshold Success threshold for readinessProbe
155 initialDelaySeconds: 0
160## @param startupProbe.enabled Enable startupProbe on Sealed Secret containers
161## @param startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
162## @param startupProbe.periodSeconds Period seconds for startupProbe
163## @param startupProbe.timeoutSeconds Timeout seconds for startupProbe
164## @param startupProbe.failureThreshold Failure threshold for startupProbe
165## @param startupProbe.successThreshold Success threshold for startupProbe
169 initialDelaySeconds: 0
174## @param customLivenessProbe Custom livenessProbe that overrides the default one
176customLivenessProbe: {}
177## @param customReadinessProbe Custom readinessProbe that overrides the default one
179customReadinessProbe: {}
180## @param customStartupProbe Custom startupProbe that overrides the default one
182customStartupProbe: {}
183## Sealed Secret resource requests and limits
184## ref: http://kubernetes.io/docs/user-guide/compute-resources/
185## @param resources.limits [object] The resources limits for the Sealed Secret containers
186## @param resources.requests [object] The requested resources for the Sealed Secret containers
191## Configure Pods Security Context
192## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
193## @param podSecurityContext.enabled Enabled Sealed Secret pods' Security Context
194## @param podSecurityContext.fsGroup Set Sealed Secret pod's Security Context fsGroup
195## @param podSecurityContext.seccompProfile.type Set Sealed Secret pod's Security Context seccomp profile type
202## Configure Container Security Context
203## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
204## @param containerSecurityContext.enabled Enabled Sealed Secret containers' Security Context
205## @param containerSecurityContext.readOnlyRootFilesystem Whether the Sealed Secret container has a read-only root filesystem
206## @param containerSecurityContext.runAsNonRoot Indicates that the Sealed Secret container must run as a non-root user
207## @param containerSecurityContext.runAsUser Set Sealed Secret containers' Security Context runAsUser
208## @param containerSecurityContext.allowPrivilegeEscalation Set Sealed Secret containers' privilege escalation
209## @extra containerSecurityContext.capabilities Adds and removes POSIX capabilities from running containers (see `values.yaml`)
210## @skip containerSecurityContext.capabilities.drop
212containerSecurityContext:
214 readOnlyRootFilesystem: true
217 allowPrivilegeEscalation: false
221## @param hostUsers Specifies whether or not host or namespaced users should be used
222## ref: https://kubernetes.io/docs/concepts/workloads/pods/user-namespaces/
225## @param podLabels [object] Extra labels for Sealed Secret pods
226## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
229## @param podAnnotations [object] Annotations for Sealed Secret pods
230## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
233## @param priorityClassName Sealed Secret pods' priorityClassName
236## @param runtimeClassName Sealed Secret pods' runtimeClassName
239## @param affinity [object] Affinity for Sealed Secret pods assignment
240## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
243## @param nodeSelector [object] Node labels for Sealed Secret pods assignment
244## ref: https://kubernetes.io/docs/user-guide/node-selection/
247## @param tolerations [array] Tolerations for Sealed Secret pods assignment
248## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
251## @param additionalVolumes [object] Extra Volumes for the Sealed Secrets Controller Deployment
252## ref: https://kubernetes.io/docs/concepts/storage/volumes/
255## @param additionalVolumeMounts [object] Extra volumeMounts for the Sealed Secrets Controller container
256## ref: https://kubernetes.io/docs/concepts/storage/volumes/
258additionalVolumeMounts: []
259## @param hostNetwork Sealed Secrets pods' hostNetwork
261## Sealed Secrets controller ports to open
262## If hostNetwork true: the hostPort is set identical to the containerPort
263## @param containerPorts.http Controller HTTP Port on the Host and Container
264## @param containerPorts.metrics Metrics HTTP Port on the Host and Container
269## Sealed Secrets controller ports to be exposed as hostPort
270## If hostNetwork is false, only the ports specified here will be exposed (or not if set to an empty string)
271## @param hostPorts.http Controller HTTP Port on the Host
272## @param hostPorts.metrics Metrics HTTP Port on the Host
277## @param dnsPolicy Sealed Secrets pods' dnsPolicy
279## @section Traffic Exposure Parameters
281## Sealed Secret service parameters
284 ## @param service.type Sealed Secret service type
287 ## @param service.loadBalancerClass Sealed Secret service loadBalancerClass
289 loadBalancerClass: ""
290 ## @param service.port Sealed Secret service HTTP port
293 ## @param service.nodePort Node port for HTTP
294 ## Specify the nodePort value for the LoadBalancer and NodePort service types
295 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
296 ## NOTE: choose port between <30000-32767>
299 ## @param service.annotations [object] Additional custom annotations for Sealed Secret service
302## Sealed Secret ingress parameters
303## ref: http://kubernetes.io/docs/user-guide/ingress/
306 ## @param ingress.enabled Enable ingress record generation for Sealed Secret
309 ## @param ingress.pathType Ingress path type
311 pathType: ImplementationSpecific
312 ## @param ingress.apiVersion Force Ingress API version (automatically detected if not set)
315 ## @param ingress.ingressClassName IngressClass that will be be used to implement the Ingress
316 ## This is supported in Kubernetes 1.18+ and required if you have more than one IngressClass marked as the default for your cluster.
317 ## ref: https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/
320 ## @param ingress.hostname Default host for the ingress record
322 hostname: sealed-secrets.local
323 ## @param ingress.path Default path for the ingress record
326 ## @param ingress.annotations [object] Additional annotations for the Ingress resource. To enable certificate autogeneration, place here your cert-manager annotations.
327 ## Use this parameter to set the required annotations for cert-manager, see
328 ## ref: https://cert-manager.io/docs/usage/ingress/#supported-annotations
331 ## kubernetes.io/ingress.class: nginx
332 ## cert-manager.io/cluster-issuer: cluster-issuer-name
335 ## @param ingress.tls Enable TLS configuration for the host defined at `ingress.hostname` parameter
336 ## TLS certificates will be retrieved from a TLS secret with name: `{{- printf "%s-tls" .Values.ingress.hostname }}`
338 ## - Use the `ingress.secrets` parameter to create this TLS secret
339 ## - Relay on cert-manager to create it by setting the corresponding annotations
340 ## - Relay on Helm to create self-signed certificates by setting `ingress.selfSigned=true`
343 ## @param ingress.selfSigned Create a TLS secret for this ingress record using self-signed certificates generated by Helm
346 ## @param ingress.extraHosts [array] An array with additional hostname(s) to be covered with the ingress record
349 ## - name: sealed-secrets.local
353 ## @param ingress.extraPaths [array] An array with additional arbitrary paths that may need to be added to the ingress under the main host
358 ## serviceName: ssl-redirect
359 ## servicePort: use-annotation
362 ## @param ingress.extraTls [array] TLS configuration for additional hostname(s) to be covered with this ingress record
363 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls
367 ## - sealed-secrets.local
368 ## secretName: sealed-secrets.local-tls
371 ## @param ingress.secrets [array] Custom TLS certificates as secrets
372 ## NOTE: 'key' and 'certificate' are expected in PEM format
373 ## NOTE: 'name' should line up with a 'secretName' set further up
374 ## If it is not set and you're using cert-manager, this is unneeded, as it will create a secret for you with valid certificates
375 ## If it is not set and you're NOT using cert-manager either, self-signed certificates will be created valid for 365 days
376 ## It is also possible to create and manage the certificates outside of this helm chart
377 ## Please see README.md for more information
380 ## - name: sealed-secrets.local-tls
382 ## -----BEGIN RSA PRIVATE KEY-----
384 ## -----END RSA PRIVATE KEY-----
386 ## -----BEGIN CERTIFICATE-----
388 ## -----END CERTIFICATE-----
392## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
395 ## @param networkPolicy.enabled Specifies whether a NetworkPolicy should be created
398 ## NetworkPolicy Egress configuration
401 ## @param networkPolicy.egress.enabled Specifies wheter a egress is set in the NetworkPolicy
404 ## @param networkPolicy.egress.kubeapiCidr Specifies the kubeapiCidr, which is the only egress allowed. If not set, kubeapiCidr will be found using Helm lookup
407 ## @param networkPolicy.egress.kubeapiPort Specifies the kubeapiPort, which is the only egress allowed. If not set, kubeapiPort will be found using Helm lookup
410## @section Other Parameters
412## ServiceAccount configuration
415 ## @param serviceAccount.annotations [object] Annotations for Sealed Secret service account
416 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
419 ## @param serviceAccount.create Specifies whether a ServiceAccount should be created
422 ## @param serviceAccount.labels Extra labels to be added to the ServiceAccount
425 ## @param serviceAccount.name The name of the ServiceAccount to use.
426 ## If not set and create is true, a name is generated using the sealed-secrets.fullname template
432 ## @param rbac.create Specifies whether RBAC resources should be created
435 ## @param rbac.clusterRole Specifies whether the Cluster Role resource should be created
438 ## @param rbac.clusterRoleName Specifies the name for the Cluster Role resource
440 clusterRoleName: "secrets-unsealer"
441 ## @param rbac.namespacedRoles Specifies whether the namespaced Roles should be created (in each of the specified additionalNamespaces)
443 namespacedRoles: false
444 ## @param rbac.namespacedRolesName Specifies the name for the namespaced Role resource
446 namespacedRolesName: "secrets-unsealer"
447 ## @param rbac.labels Extra labels to be added to RBAC resources
450 ## @param rbac.pspEnabled PodSecurityPolicy
453 ## "Proxier" RBAC Role configuration
456 ## @param rbac.serviceProxier.create Specifies whether to create the "proxier" role, to allow external users to access the SealedSecret API
459 ## @param rbac.serviceProxier.bind Specifies whether to create a RoleBinding for the "proxier" role
462 ## @param rbac.serviceProxier.subjects Specifies the RBAC subjects to grant the "proxier" role to, in the created RoleBinding
463 ## It is best to change this to something narrower, as the default binding gives `system:authenticated` access, which is very broad
466 - apiGroup: rbac.authorization.k8s.io
468 name: system:authenticated
469## @section Metrics parameters
472 ## @param metrics.prometheusRule.enabled Specify if a PrometheusRule will be deployed for Prometheus Operator
475 ## @param metrics.prometheusRule.namespace Namespace where Prometheus Operator is running in
478 ## @param metrics.prometheusRule.labels Extra labels for the PrometheusRule
481 ## @param metrics.prometheusRule.annotations Extra annotations for the PrometheusRule
484 ## @param metrics.prometheusRule.groups Prometheus alerting rule groups
487 - name: sealed-secrets-controller.rules
489 - alert: SealedSecretsControllerNotReady
491 sealed_secrets_controller_condition_info != 1
496 summary: "Sealed Secrets controller is not Synced"
497 description: "At least one SealedSecret is in a non-synced state (0 or -1). Check controller logs and secret reconciliation status."
498 ## Prometheus Operator ServiceMonitor configuration
501 ## @param metrics.serviceMonitor.enabled Specify if a ServiceMonitor will be deployed for Prometheus Operator
504 ## @param metrics.serviceMonitor.namespace Namespace where Prometheus Operator is running in
507 ## @param metrics.serviceMonitor.labels Extra labels for the ServiceMonitor
510 ## @param metrics.serviceMonitor.annotations Extra annotations for the ServiceMonitor
513 ## @param metrics.serviceMonitor.interval How frequently to scrape metrics
518 ## @param metrics.serviceMonitor.scrapeTimeout Timeout after which the scrape is ended
520 ## scrapeTimeout: 10s
523 ## @param metrics.serviceMonitor.honorLabels Specify if ServiceMonitor endPoints will honor labels
526 ## @param metrics.serviceMonitor.metricRelabelings [array] Specify additional relabeling of metrics
528 metricRelabelings: []
529 ## @param metrics.serviceMonitor.relabelings [array] Specify general relabeling
532 ## Grafana dashboards configuration
535 ## @param metrics.dashboards.create Specifies whether a ConfigMap with a Grafana dashboard configuration should be created
536 ## ref https://github.com/helm/charts/tree/master/stable/grafana#configuration
539 ## @param metrics.dashboards.labels Extra labels to be added to the Grafana dashboard ConfigMap
542 ## @param metrics.dashboards.annotations Annotations to be added to the Grafana dashboard ConfigMap
545 ## @param metrics.dashboards.namespace Namespace where Grafana dashboard ConfigMap is deployed
548 ## Sealed Secret Metrics service parameters
551 ## @param metrics.service.type Sealed Secret Metrics service type
554 ## @param metrics.service.loadBalancerClass Sealed Secret Metrics service loadBalancerClass
556 loadBalancerClass: ""
557 ## @param metrics.service.port Sealed Secret service Metrics HTTP port
560 ## @param metrics.service.nodePort Node port for HTTP
561 ## Specify the nodePort value for the LoadBalancer and NodePort service types
562 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
563 ## NOTE: choose port between <30000-32767>
566 ## @param metrics.service.annotations [object] Additional custom annotations for Sealed Secret Metrics service
569## @section PodDisruptionBudget Parameters
571 ## @param pdb.create Specifies whether a PodDisruptionBudget should be created
574 ## @param pdb.minAvailable The minimum number of pods (non number to omit)
577 ## @param pdb.maxUnavailable The maximum number of unavailable pods (non number to omit)