values.yaml 34 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019
  1. ---
  2. global:
  3. nodeSelector: {}
  4. tolerations: []
  5. topologySpreadConstraints: []
  6. # - maxSkew: 1
  7. # topologyKey: topology.kubernetes.io/zone
  8. # whenUnsatisfiable: ScheduleAnyway
  9. # matchLabelKeys:
  10. # - pod-template-hash
  11. # - maxSkew: 1
  12. # topologyKey: kubernetes.io/hostname
  13. # whenUnsatisfiable: DoNotSchedule
  14. # matchLabelKeys:
  15. # - pod-template-hash
  16. affinity: {}
  17. # -- Global hostAliases to be applied to all deployments
  18. hostAliases: []
  19. # -- Global pod labels to be applied to all deployments
  20. podLabels: {}
  21. # -- Global pod annotations to be applied to all deployments
  22. podAnnotations: {}
  23. # -- Global imagePullSecrets to be applied to all deployments
  24. imagePullSecrets: []
  25. # -- Global image repository to be applied to all deployments
  26. repository: ""
  27. compatibility:
  28. openshift:
  29. # -- Manages the securityContext properties to make them compatible with OpenShift.
  30. # Possible values:
  31. # auto - Apply configurations if it is detected that OpenShift is the target platform.
  32. # force - Always apply configurations.
  33. # disabled - No modification applied.
  34. adaptSecurityContext: auto
  35. replicaCount: 1
  36. bitwarden-sdk-server:
  37. enabled: false
  38. namespaceOverride: ""
  39. # -- Specifies the amount of historic ReplicaSets k8s should keep (see https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#clean-up-policy)
  40. revisionHistoryLimit: 10
  41. image:
  42. repository: ghcr.io/external-secrets/external-secrets
  43. pullPolicy: IfNotPresent
  44. # -- The image tag to use. The default is the chart appVersion.
  45. tag: ""
  46. # -- The flavour of tag you want to use
  47. # There are different image flavours available, like distroless and ubi.
  48. # Please see GitHub release notes for image tags for these flavors.
  49. # By default, the distroless image is used.
  50. flavour: ""
  51. # -- If set, install and upgrade CRDs through helm chart.
  52. installCRDs: true
  53. crds:
  54. # -- If true, create CRDs for Cluster External Secret. If set to false you must also set processClusterExternalSecret: false.
  55. createClusterExternalSecret: true
  56. # -- If true, create CRDs for Cluster Secret Store. If set to false you must also set processClusterStore: false.
  57. createClusterSecretStore: true
  58. # -- If true, create CRDs for Secret Store. If set to false you must also set processSecretStore: false.
  59. createSecretStore: true
  60. # -- If true, create CRDs for Cluster Generator. If set to false you must also set processClusterGenerator: false.
  61. createClusterGenerator: true
  62. # -- If true, create CRDs for Cluster Push Secret. If set to false you must also set processClusterPushSecret: false.
  63. createClusterPushSecret: true
  64. # -- If true, create CRDs for Push Secret. If set to false you must also set processPushSecret: false.
  65. createPushSecret: true
  66. annotations: {}
  67. conversion:
  68. # -- Conversion is disabled by default as we stopped supporting v1alpha1.
  69. enabled: false
  70. # -- If true, enable v1beta1 API version serving for ExternalSecret, ClusterExternalSecret, SecretStore, and ClusterSecretStore CRDs.
  71. # v1beta1 is deprecated. Only enable this for backward compatibility if you have existing v1beta1 resources.
  72. # Warning: This flag will be removed on 2026.05.01.
  73. unsafeServeV1Beta1: false
  74. imagePullSecrets: []
  75. nameOverride: ""
  76. fullnameOverride: ""
  77. namespaceOverride: ""
  78. # -- Additional labels added to all helm chart resources.
  79. commonLabels: {}
  80. # -- If true, external-secrets will perform leader election between instances to ensure no more
  81. # than one instance of external-secrets operates at a time.
  82. leaderElect: false
  83. # -- ID of the lease object used for leader election.
  84. # Leave empty to use the default ('external-secrets-controller').
  85. # Set to a unique value when running multiple independent ESO deployments in the same namespace.
  86. # @default -- "external-secrets-controller"
  87. leaderElectionID: ""
  88. # -- Duration that non-leader candidates will wait to force acquire leadership.
  89. # Increase this along with renewDeadline to tolerate a busy or briefly unavailable API server
  90. # (for example during control plane maintenance) without churning leadership.
  91. # Leave empty to use the controller default ('15s').
  92. # @default -- "15s"
  93. leaderElectionLeaseDuration: ""
  94. # -- Duration that the acting leader will retry refreshing leadership before giving up.
  95. # Must be less than leaderElectionLeaseDuration.
  96. # Leave empty to use the controller default ('10s').
  97. # @default -- "10s"
  98. leaderElectionRenewDeadline: ""
  99. # -- Duration the leader election client waits between tries of actions.
  100. # Leave empty to use the controller default ('2s').
  101. # @default -- "2s"
  102. leaderElectionRetryPeriod: ""
  103. # -- If set external secrets will filter matching
  104. # Secret Stores with the appropriate controller values.
  105. controllerClass: ""
  106. # -- If true external secrets will use recommended kubernetes
  107. # annotations as prometheus metric labels.
  108. extendedMetricLabels: false
  109. # -- If set external secrets are only reconciled in the
  110. # provided namespace
  111. scopedNamespace: ""
  112. # -- If true, create scoped RBAC roles and implicitly disable cluster-scoped
  113. # controllers. Scoped to scopedNamespace if set, otherwise to .Release.Namespace.
  114. scopedRBAC: false
  115. # -- If true the OpenShift finalizer permissions will be added to RBAC
  116. openshiftFinalizers: true
  117. # -- If true the system:auth-delegator ClusterRole will be added to RBAC
  118. systemAuthDelegator: false
  119. # -- if true, the operator will process cluster external secret. Else, it will ignore them.
  120. # When enabled, this adds update/patch permissions on namespaces to handle finalizers for proper
  121. # cleanup during namespace deletion, preventing race conditions with ExternalSecrets.
  122. processClusterExternalSecret: true
  123. # -- if true, the operator will process cluster push secret. Else, it will ignore them.
  124. processClusterPushSecret: true
  125. # -- if true, the operator will process cluster store. Else, it will ignore them.
  126. processClusterStore: true
  127. # -- if true, the operator will process secret store. Else, it will ignore them.
  128. processSecretStore: true
  129. # -- Default time duration between reconciling (Cluster)SecretStores.
  130. storeRequeueInterval: ""
  131. # -- if true, the operator will process cluster generator. Else, it will ignore them.
  132. processClusterGenerator: true
  133. # -- if true, the operator will process push secret. Else, it will ignore them.
  134. processPushSecret: true
  135. # -- Enable support for generic targets (ConfigMaps, Custom Resources).
  136. # Warning: Using generic target. Make sure access policies and encryption are properly configured.
  137. # When enabled, this grants the controller permissions to create/update/delete
  138. # ConfigMaps and optionally other resource types specified in generic.resources.
  139. genericTargets:
  140. # -- Enable generic target support
  141. enabled: false
  142. # -- List of additional resource types to grant permissions for.
  143. # Each entry should specify apiGroup, resources, and verbs.
  144. # Example:
  145. # resources:
  146. # - apiGroup: "argoproj.io"
  147. # resources: ["applications"]
  148. # verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
  149. resources: []
  150. # -- Specifies whether an external secret operator deployment be created.
  151. createOperator: true
  152. # -- if true, HTTP2 will be enabled for the services created by all controllers, curently metrics and webhook.
  153. enableHTTP2: false
  154. # -- TLS security profile settings applied to all controller, webhook, and certController deployments.
  155. # These can be overridden per-component via webhook.tls and certController.tls.
  156. tls:
  157. # -- Minimum TLS version supported (e.g. "1.2" or "1.3"). If empty, the Go CLI default applies.
  158. # +docs:property
  159. minVersion: ""
  160. # -- Comma-separated list of TLS cipher suites (TLS_CIPHER_SUITE names).
  161. # Does not apply to TLS 1.3. If empty, Go defaults apply.
  162. # +docs:property
  163. ciphers: ""
  164. # -- Ordered list of TLS key exchange curves (e.g. X25519, CurveP256, or decimal CurveID).
  165. # If empty, Go defaults apply.
  166. # +docs:property
  167. curvePreferences: []
  168. # -- Vault token cache configuration
  169. vault:
  170. # -- Enable Vault token cache. External secrets will reuse the Vault token without creating a new one on each request.
  171. enableTokenCache: false
  172. # -- Maximum size of Vault token cache. Only used if enableTokenCache is true.
  173. tokenCacheSize: 262144
  174. # -- Specifies the number of concurrent ExternalSecret Reconciles external-secret executes at
  175. # a time.
  176. concurrent: 1
  177. # -- Specifies Log Params to the External Secrets Operator
  178. log:
  179. level: info
  180. timeEncoding: epoch
  181. service:
  182. # -- Set the ip family policy to configure dual-stack see [Configure dual-stack](https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services)
  183. ipFamilyPolicy: ""
  184. # -- Sets the families that should be supported and the order in which they should be applied to ClusterIP as well. Can be IPv4 and/or IPv6.
  185. ipFamilies: []
  186. serviceAccount:
  187. # -- Specifies whether a service account should be created.
  188. create: true
  189. # -- Automounts the service account token in all containers of the pod
  190. automount: true
  191. # -- Annotations to add to the service account.
  192. annotations: {}
  193. # -- Extra Labels to add to the service account.
  194. extraLabels: {}
  195. # -- The name of the service account to use.
  196. # If not set and create is true, a name is generated using the fullname template.
  197. name: ""
  198. rbac:
  199. # -- Specifies whether role and rolebinding resources should be created.
  200. create: true
  201. # -- Specifies whether the serviceaccounts/token create permission is included in the controller RBAC.
  202. # When set to false, users must create per-ServiceAccount Role/RoleBinding with resourceNames constraint
  203. # to grant ESO token creation for specific ServiceAccounts referenced in SecretStore specs.
  204. serviceAccountTokenCreate: true
  205. servicebindings:
  206. # -- Specifies whether a clusterrole to give servicebindings read access should be created.
  207. create: true
  208. # -- Specifies whether permissions are aggregated to the view ClusterRole
  209. aggregateToView: true
  210. # -- Specifies whether permissions are aggregated to the edit ClusterRole
  211. aggregateToEdit: true
  212. # -- Specifies whether permissions are aggregated to the admin ClusterRole
  213. aggregateToAdmin: true
  214. ## -- Extra environment variables to add to container.
  215. extraEnv: []
  216. ## -- Map of extra arguments to pass to container.
  217. extraArgs: {}
  218. ## -- Extra volumes to pass to pod.
  219. extraVolumes: []
  220. ## -- Extra Kubernetes objects to deploy with the helm chart
  221. extraObjects: []
  222. ## -- Extra volumes to mount to the container.
  223. extraVolumeMounts: []
  224. ## -- Extra init containers to add to the pod.
  225. extraInitContainers: []
  226. ## -- Extra containers to add to the pod.
  227. extraContainers: []
  228. # -- Annotations to add to Deployment
  229. deploymentAnnotations: {}
  230. # -- Set deployment strategy
  231. strategy: {}
  232. # -- Annotations to add to Pod
  233. podAnnotations: {}
  234. podLabels: {}
  235. podSecurityContext:
  236. enabled: true
  237. # fsGroup: 2000
  238. securityContext:
  239. allowPrivilegeEscalation: false
  240. capabilities:
  241. drop:
  242. - ALL
  243. enabled: true
  244. readOnlyRootFilesystem: true
  245. runAsNonRoot: true
  246. runAsUser: 1000
  247. seccompProfile:
  248. type: RuntimeDefault
  249. resources: {}
  250. # requests:
  251. # cpu: 10m
  252. # memory: 32Mi
  253. serviceMonitor:
  254. # -- Specifies whether to create a ServiceMonitor resource for collecting Prometheus metrics
  255. enabled: false
  256. # -- How should we react to missing CRD "`monitoring.coreos.com/v1/ServiceMonitor`"
  257. #
  258. # Possible values:
  259. # - `skipIfMissing`: Only render ServiceMonitor resources if CRD is present, skip if missing.
  260. # - `failIfMissing`: Fail Helm install if CRD is not present.
  261. # - `alwaysRender` : Always render ServiceMonitor resources, do not check for CRD.
  262. # @schema
  263. # enum:
  264. # - skipIfMissing
  265. # - failIfMissing
  266. # - alwaysRender
  267. # @schema
  268. renderMode: skipIfMissing # @schema enum: [skipIfMissing, failIfMissing, alwaysRender]
  269. # -- namespace where you want to install ServiceMonitors
  270. namespace: ""
  271. # -- Additional labels
  272. additionalLabels: {}
  273. # -- Interval to scrape metrics
  274. interval: 30s
  275. # -- Timeout if metrics can't be retrieved in given time interval
  276. scrapeTimeout: 25s
  277. # -- Let prometheus add an exported_ prefix to conflicting labels
  278. honorLabels: false
  279. # -- Metric relabel configs to apply to samples before ingestion. [Metric Relabeling](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs)
  280. metricRelabelings: []
  281. # - action: replace
  282. # regex: (.*)
  283. # replacement: $1
  284. # sourceLabels:
  285. # - exported_namespace
  286. # targetLabel: namespace
  287. # -- Relabel configs to apply to samples before ingestion. [Relabeling](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config)
  288. relabelings: []
  289. # - sourceLabels: [__meta_kubernetes_pod_node_name]
  290. # separator: ;
  291. # regex: ^(.*)$
  292. # targetLabel: nodename
  293. # replacement: $1
  294. # action: replace
  295. metrics:
  296. listen:
  297. port: 8080
  298. auth:
  299. # -- Enable Kubernetes RBAC-based authentication for metrics endpoint. Requires metrics.listen.secure to be true. Default value is false.
  300. enabled: false
  301. secure:
  302. enabled: false
  303. # -- if those are not set or invalid, self-signed certs will be generated
  304. # -- TLS cert directory path
  305. certDir: /etc/tls
  306. # -- TLS cert file path
  307. certFile: /etc/tls/tls.crt
  308. # -- TLS key file path
  309. keyFile: /etc/tls/tls.key
  310. service:
  311. # -- Enable if you use another monitoring tool than Prometheus to scrape the metrics
  312. enabled: false
  313. # -- Metrics service port to scrape
  314. port: 8080
  315. # -- Additional service annotations
  316. annotations: {}
  317. grafanaDashboard:
  318. # -- If true creates a Grafana dashboard.
  319. enabled: false
  320. # -- Label that ConfigMaps should have to be loaded as dashboards.
  321. sidecarLabel: "grafana_dashboard"
  322. # -- Label value that ConfigMaps should have to be loaded as dashboards.
  323. sidecarLabelValue: "1"
  324. # -- Annotations that ConfigMaps can have to get configured in Grafana,
  325. # See: sidecar.dashboards.folderAnnotation for specifying the dashboard folder.
  326. # https://github.com/grafana/helm-charts/tree/main/charts/grafana
  327. annotations: {}
  328. # -- Extra labels to add to the Grafana dashboard ConfigMap.
  329. extraLabels: {}
  330. livenessProbe:
  331. # -- Enabled determines if the liveness probe should be used or not. By default it's disabled.
  332. enabled: false
  333. # -- The body of the liveness probe settings.
  334. spec:
  335. # -- Bind address for the health server used by both liveness and readiness probes (--live-addr flag).
  336. address: ""
  337. # -- Port for the health server used by both liveness and readiness probes (--live-addr flag).
  338. port: 8082
  339. # -- Specify the maximum amount of time to wait for a probe to respond before considering it fails.
  340. timeoutSeconds: 5
  341. # -- Number of consecutive probe failures that should occur before considering the probe as failed.
  342. failureThreshold: 5
  343. # -- Period in seconds for K8s to start performing probes.
  344. periodSeconds: 10
  345. # -- Number of successful probes to mark probe successful.
  346. successThreshold: 1
  347. # -- Delay in seconds for the container to start before performing the initial probe.
  348. initialDelaySeconds: 10
  349. # -- Handler for liveness probe.
  350. httpGet:
  351. # -- Set this value to 'live' (for named port) or an an integer for liveness probes.
  352. # @schema type: [string, integer]
  353. port: live
  354. # -- Path for liveness probe.
  355. path: /healthz
  356. readinessProbe:
  357. # -- Determines whether the readiness probe is enabled. Disabled by default. Enabling this will auto-start the health server (--live-addr) even if livenessProbe is disabled. Health server address/port are configured via livenessProbe.spec.address and livenessProbe.spec.port.
  358. enabled: false
  359. # -- The body of the readiness probe settings (standard Kubernetes probe spec).
  360. spec:
  361. # -- Specify the maximum amount of time to wait for a probe to respond before considering it fails.
  362. timeoutSeconds: 5
  363. # -- Number of consecutive probe failures that should occur before considering the probe as failed.
  364. failureThreshold: 3
  365. # -- Period in seconds for K8s to start performing probes.
  366. periodSeconds: 10
  367. # -- Number of successful probes to mark probe successful.
  368. successThreshold: 1
  369. # -- Delay in seconds for the container to start before performing the initial probe.
  370. initialDelaySeconds: 10
  371. # -- Handler for readiness probe.
  372. httpGet:
  373. # -- Set this value to 'live' (for named port) or an integer for readiness probes.
  374. # @schema type: [string, integer]
  375. port: live
  376. # -- Path for readiness probe.
  377. path: /readyz
  378. nodeSelector: {}
  379. tolerations: []
  380. topologySpreadConstraints: []
  381. affinity: {}
  382. # -- Pod priority class name.
  383. priorityClassName: ""
  384. # -- Pod scheduler name.
  385. schedulerName: ""
  386. # -- Pod runtime class name.
  387. runtimeClassName: ""
  388. # -- Pod disruption budget - for more details see https://kubernetes.io/docs/concepts/workloads/pods/disruptions/
  389. podDisruptionBudget:
  390. enabled: false
  391. minAvailable: 1 # @schema type:[integer, string]
  392. nameOverride: ""
  393. # maxUnavailable: "50%"
  394. # -- Run the controller on the host network
  395. hostNetwork: false
  396. # -- (bool) Specifies if controller pod should use hostUsers or not. If hostNetwork is true, hostUsers should be too. Only available in Kubernetes ≥ 1.33.
  397. # @schema type: [boolean, null]
  398. hostUsers:
  399. # -- Setup a networkPolicy for external-secrets
  400. networkPolicy:
  401. # -- Specifies whether the networkPolicy should be created.
  402. enabled: false
  403. # -- The ingress traffic
  404. # Should match the health and (optionally) metrics port
  405. ingress:
  406. - ports:
  407. - protocol: TCP
  408. # @schema type: [string, integer]
  409. port: 8080 # metrics port
  410. - protocol: TCP
  411. # @schema type: [string, integer]
  412. port: 8082 # health port
  413. # -- The egress traffic
  414. # The minimum egress ports required to function are:
  415. # DNS (53/udp, 53/tcp)
  416. # API server (80/tcp, 443/tcp, or 6443/tcp)
  417. # You will need to customize this value to meet your needs
  418. egress: []
  419. webhook:
  420. # -- Annotations to place on validating webhook configuration.
  421. annotations: {}
  422. # -- Specifies whether a webhook deployment be created. If set to false, crds.conversion.enabled should also be set to false otherwise the kubeapi will be hammered because the conversion is looking for a webhook endpoint.
  423. create: true
  424. # -- Specifies the time to check if the cert is valid
  425. certCheckInterval: "5m"
  426. # -- Specifies the lookaheadInterval for certificate validity
  427. lookaheadInterval: ""
  428. replicaCount: 1
  429. # -- Specifies Log Params to the Webhook
  430. log:
  431. level: info
  432. timeEncoding: epoch
  433. # -- Specifies the amount of historic ReplicaSets k8s should keep (see https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#clean-up-policy)
  434. revisionHistoryLimit: 10
  435. certDir: /tmp/certs
  436. # -- Webhook-specific TLS security profile overrides.
  437. # When set, these override the global tls.* values for the webhook deployment.
  438. tls:
  439. # -- Minimum TLS version supported (e.g. "1.2" or "1.3"). If empty, the global tls.minVersion is used.
  440. # +docs:property
  441. minVersion: ""
  442. # -- Comma-separated list of TLS cipher suites. If empty, the global tls.ciphers is used.
  443. # +docs:property
  444. ciphers: ""
  445. # -- Ordered list of TLS key exchange curves. If empty, the global tls.curvePreferences is used.
  446. # +docs:property
  447. curvePreferences: []
  448. # -- Specifies whether validating webhooks should be created with failurePolicy: Fail or Ignore
  449. failurePolicy: Fail
  450. # -- Specifies if webhook pod should use hostNetwork or not.
  451. hostNetwork: false
  452. # -- (bool) Specifies if webhook pod should use hostUsers or not. If hostNetwork is true, hostUsers should be too. Only available in Kubernetes ≥ 1.33.
  453. # @schema type: [boolean, null]
  454. hostUsers:
  455. # -- Setup a networkPolicy for external-secrets webhook
  456. networkPolicy:
  457. # -- Specifies whether the networkPolicy should be created.
  458. enabled: false
  459. # -- The ingress traffic
  460. # Should match the webhook, health, and (optionally) metrics port
  461. ingress:
  462. - ports:
  463. - protocol: TCP
  464. # @schema type: [string, integer]
  465. port: 8080 # metrics port
  466. - protocol: TCP
  467. # @schema type: [string, integer]
  468. port: 8081 # health port
  469. - protocol: TCP
  470. # @schema type: [string, integer]
  471. port: 10250 # webhook port
  472. # -- The egress traffic
  473. # The minimum egress ports required to function are:
  474. # DNS (53/udp, 53/tcp)
  475. # API server (80/tcp, 443/tcp, or 6443/tcp)
  476. # You will need to customize this value to meet your needs
  477. egress: []
  478. image:
  479. repository: ghcr.io/external-secrets/external-secrets
  480. pullPolicy: IfNotPresent
  481. # -- The image tag to use. The default is the chart appVersion.
  482. tag: ""
  483. # -- The flavour of tag you want to use
  484. flavour: ""
  485. imagePullSecrets: []
  486. # -- The port the webhook will listen to
  487. port: 10250
  488. serviceAccount:
  489. # -- Specifies whether a service account should be created.
  490. create: true
  491. # -- Automounts the service account token in all containers of the pod
  492. automount: true
  493. # -- Annotations to add to the service account.
  494. annotations: {}
  495. # -- Extra Labels to add to the service account.
  496. extraLabels: {}
  497. # -- The name of the service account to use.
  498. # If not set and create is true, a name is generated using the fullname template.
  499. name: ""
  500. nodeSelector: {}
  501. # -- Specifies `hostAliases` to webhook deployment
  502. hostAliases: []
  503. certManager:
  504. # -- Enabling cert-manager support will disable the built in secret and
  505. # switch to using cert-manager (installed separately) to automatically issue
  506. # and renew the webhook certificate. This chart does not install
  507. # cert-manager for you, See https://cert-manager.io/docs/
  508. enabled: false
  509. # -- Automatically add the cert-manager.io/inject-ca-from annotation to the
  510. # webhooks and CRDs. As long as you have the cert-manager CA Injector
  511. # enabled, this will automatically setup your webhook's CA to the one used
  512. # by cert-manager. See https://cert-manager.io/docs/concepts/ca-injector
  513. addInjectorAnnotations: true
  514. cert:
  515. # -- Create a certificate resource within this chart. See
  516. # https://cert-manager.io/docs/usage/certificate/
  517. create: true
  518. # -- For the Certificate created by this chart, setup the issuer. See
  519. # https://cert-manager.io/docs/reference/api-docs/#cert-manager.io/v1.IssuerSpec
  520. issuerRef:
  521. group: cert-manager.io
  522. kind: "Issuer"
  523. name: "my-issuer"
  524. # -- Set the requested duration (i.e. lifetime) of the Certificate. See
  525. # https://cert-manager.io/docs/reference/api-docs/#cert-manager.io/v1.CertificateSpec
  526. # One year by default.
  527. duration: "8760h0m0s"
  528. # -- Set the revisionHistoryLimit on the Certificate. See
  529. # https://cert-manager.io/docs/reference/api-docs/#cert-manager.io/v1.CertificateSpec
  530. # Defaults to 0 (ignored).
  531. revisionHistoryLimit: 0
  532. # -- How long before the currently issued certificate’s expiry
  533. # cert-manager should renew the certificate. See
  534. # https://cert-manager.io/docs/reference/api-docs/#cert-manager.io/v1.CertificateSpec
  535. # Note that renewBefore should be greater than .webhook.lookaheadInterval
  536. # since the webhook will check this far in advance that the certificate is
  537. # valid.
  538. renewBefore: ""
  539. # -- Specific settings on the privateKey and its generation
  540. privateKey: {}
  541. # rotationPolicy: Always
  542. # algorithm: RSA
  543. # size: 2048
  544. # -- Specific settings on the signatureAlgorithm used on the cert.
  545. # signatureAlgorithm is only valid for cert-manager v1.18.0+
  546. signatureAlgorithm: ""
  547. # -- Add extra annotations to the Certificate resource.
  548. annotations: {}
  549. tolerations: []
  550. topologySpreadConstraints: []
  551. affinity: {}
  552. # -- Set deployment strategy
  553. strategy: {}
  554. # -- Pod priority class name.
  555. priorityClassName: ""
  556. # -- Pod scheduler name.
  557. schedulerName: ""
  558. # -- Pod runtime class name.
  559. runtimeClassName: ""
  560. # -- Pod disruption budget - for more details see https://kubernetes.io/docs/concepts/workloads/pods/disruptions/
  561. podDisruptionBudget:
  562. enabled: false
  563. minAvailable: 1 # @schema type:[integer, string]
  564. nameOverride: ""
  565. # maxUnavailable: "50%"
  566. metrics:
  567. listen:
  568. port: 8080
  569. auth:
  570. # -- Enable Kubernetes RBAC-based authentication for webhook's metrics endpoint. Requires webhook.metrics.listen.secure to be true. Default value is false.
  571. enabled: false
  572. secure:
  573. enabled: false
  574. # -- if those are not set or invalid, self-signed certs will be generated
  575. # -- TLS cert directory path
  576. certDir: /etc/tls
  577. # -- TLS cert file path
  578. certFile: /etc/tls/tls.crt
  579. # -- TLS key file path
  580. keyFile: /etc/tls/tls.key
  581. service:
  582. # -- Enable if you use another monitoring tool than Prometheus to scrape the metrics
  583. enabled: false
  584. # -- Metrics service port to scrape
  585. port: 8080
  586. # -- Additional service annotations
  587. annotations: {}
  588. livenessProbe:
  589. enabled: false
  590. # -- Set this value to 'live' (for named port) or an integer for liveness probes.
  591. # @schema type: [string, integer]
  592. port: 8081
  593. timeoutSeconds: 5
  594. failureThreshold: 5
  595. periodSeconds: 10
  596. successThreshold: 1
  597. initialDelaySeconds: 10
  598. readinessProbe:
  599. enabled: true
  600. address: ""
  601. # -- Set this value to 'ready' (for named port) or an integer for readiness probes.
  602. # @schema type: [string, integer]
  603. port: 8081
  604. timeoutSeconds: 5
  605. failureThreshold: 3
  606. periodSeconds: 5
  607. successThreshold: 1
  608. initialDelaySeconds: 20
  609. startupProbe:
  610. # -- Enabled determines if the startup probe should be used or not. By default it's disabled.
  611. enabled: false
  612. # -- Number of seconds after the container has started before the startup probe is initiated.
  613. initialDelaySeconds: 10
  614. # -- How often (in seconds) to perform the startup probe.
  615. periodSeconds: 10
  616. # -- Number of consecutive failures before the container is restarted. The startup window is initialDelaySeconds + failureThreshold * periodSeconds.
  617. failureThreshold: 30
  618. ## -- Extra environment variables to add to container.
  619. extraEnv: []
  620. ## -- Map of extra arguments to pass to container.
  621. extraArgs: {}
  622. ## -- Extra init containers to add to the pod.
  623. extraInitContainers: []
  624. ## -- Extra volumes to pass to pod.
  625. extraVolumes: []
  626. ## -- Extra volumes to mount to the container.
  627. extraVolumeMounts: []
  628. # -- Annotations to add to Secret
  629. secretAnnotations: {}
  630. # -- Annotations to add to Deployment
  631. deploymentAnnotations: {}
  632. # -- Annotations to add to Pod
  633. podAnnotations: {}
  634. podLabels: {}
  635. podSecurityContext:
  636. enabled: true
  637. # fsGroup: 2000
  638. securityContext:
  639. allowPrivilegeEscalation: false
  640. capabilities:
  641. drop:
  642. - ALL
  643. enabled: true
  644. readOnlyRootFilesystem: true
  645. runAsNonRoot: true
  646. runAsUser: 1000
  647. seccompProfile:
  648. type: RuntimeDefault
  649. resources: {}
  650. # requests:
  651. # cpu: 10m
  652. # memory: 32Mi
  653. # -- Manage the service through which the webhook is reached.
  654. service:
  655. # -- Whether the service object should be enabled or not (it is expected to exist).
  656. enabled: true
  657. # -- Custom annotations for the webhook service.
  658. annotations: {}
  659. # -- Custom labels for the webhook service.
  660. labels: {}
  661. # -- The service type of the webhook service.
  662. type: ClusterIP
  663. # -- If the webhook service type is LoadBalancer, you can assign a specific load balancer IP here.
  664. # Check the documentation of your load balancer provider to see if/how this should be used.
  665. loadBalancerIP: ""
  666. certController:
  667. # -- Specifies whether a certificate controller deployment be created.
  668. create: true
  669. requeueInterval: "5m"
  670. replicaCount: 1
  671. # -- Restrict the cert controller's informer cache to CustomResourceDefinitions and
  672. # ValidatingWebhookConfigurations carrying the `external-secrets.io/component` label.
  673. # Disable this only if the CRDs it manages were installed without that label.
  674. enablePartialCache: true
  675. # -- Specifies Log Params to the Certificate Controller
  676. log:
  677. level: info
  678. timeEncoding: epoch
  679. # -- Specifies the amount of historic ReplicaSets k8s should keep (see https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#clean-up-policy)
  680. revisionHistoryLimit: 10
  681. # -- CertController-specific TLS security profile overrides.
  682. # When set, these override the global tls.* values for the cert-controller deployment.
  683. tls:
  684. # -- Minimum TLS version supported (e.g. "1.2" or "1.3"). If empty, the global tls.minVersion is used.
  685. # +docs:property
  686. minVersion: ""
  687. # -- Comma-separated list of TLS cipher suites. If empty, the global tls.ciphers is used.
  688. # +docs:property
  689. ciphers: ""
  690. # -- Ordered list of TLS key exchange curves. If empty, the global tls.curvePreferences is used.
  691. # +docs:property
  692. curvePreferences: []
  693. image:
  694. repository: ghcr.io/external-secrets/external-secrets
  695. pullPolicy: IfNotPresent
  696. tag: ""
  697. flavour: ""
  698. imagePullSecrets: []
  699. rbac:
  700. # -- Specifies whether role and rolebinding resources should be created.
  701. create: true
  702. serviceAccount:
  703. # -- Specifies whether a service account should be created.
  704. create: true
  705. # -- Automounts the service account token in all containers of the pod
  706. automount: true
  707. # -- Annotations to add to the service account.
  708. annotations: {}
  709. # -- Extra Labels to add to the service account.
  710. extraLabels: {}
  711. # -- The name of the service account to use.
  712. # If not set and create is true, a name is generated using the fullname template.
  713. name: ""
  714. nodeSelector: {}
  715. # -- Specifies `hostAliases` to cert-controller deployment
  716. hostAliases: []
  717. tolerations: []
  718. topologySpreadConstraints: []
  719. affinity: {}
  720. # -- Set deployment strategy
  721. strategy: {}
  722. # -- Run the certController on the host network
  723. hostNetwork: false
  724. # -- (bool) Specifies if certController pod should use hostUsers or not. If hostNetwork is true, hostUsers should be too. Only available in Kubernetes ≥ 1.33.
  725. # @schema type: [boolean, null]
  726. hostUsers:
  727. # -- Setup a networkPolicy for external-secrets certController
  728. networkPolicy:
  729. # -- Specifies whether the networkPolicy should be created.
  730. enabled: false
  731. # -- The ingress traffic
  732. # Should match the health and (optionally) metrics port
  733. ingress:
  734. - ports:
  735. - protocol: TCP
  736. # @schema type: [string, integer]
  737. port: 8080 # metrics port
  738. - protocol: TCP
  739. # @schema type: [string, integer]
  740. port: 8081 # health port
  741. # -- The egress traffic
  742. # The minimum egress ports required to function are:
  743. # DNS (53/udp, 53/tcp)
  744. # API server (80/tcp, 443/tcp, or 6443/tcp)
  745. # You will need to customize this value to meet your needs
  746. egress: []
  747. # -- Pod priority class name.
  748. priorityClassName: ""
  749. # -- Pod scheduler name.
  750. schedulerName: ""
  751. # -- Pod runtime class name.
  752. runtimeClassName: ""
  753. # -- Pod disruption budget - for more details see https://kubernetes.io/docs/concepts/workloads/pods/disruptions/
  754. podDisruptionBudget:
  755. enabled: false
  756. minAvailable: 1 # @schema type:[integer, string]
  757. nameOverride: ""
  758. # maxUnavailable: "50%"
  759. metrics:
  760. listen:
  761. port: 8080
  762. auth:
  763. # -- Enable Kubernetes RBAC-based authentication for certController's metrics endpoint. Requires certController.metrics.listen.secure to be true. Default value is false.
  764. enabled: false
  765. secure:
  766. enabled: false
  767. # -- if those are not set or invalid, self-signed certs will be generated
  768. # -- TLS cert directory path
  769. certDir: /etc/tls
  770. # -- TLS cert file path
  771. certFile: /etc/tls/tls.crt
  772. # -- TLS key file path
  773. keyFile: /etc/tls/tls.key
  774. service:
  775. # -- Enable if you use another monitoring tool than Prometheus to scrape the metrics
  776. enabled: false
  777. # -- Metrics service port to scrape
  778. port: 8080
  779. # -- Additional service annotations
  780. annotations: {}
  781. livenessProbe:
  782. enabled: false
  783. # -- Set this value to 'live' (for named port) or an integer for liveness probes.
  784. # @schema type: [string, integer]
  785. port: 8081
  786. timeoutSeconds: 5
  787. failureThreshold: 5
  788. periodSeconds: 10
  789. successThreshold: 1
  790. initialDelaySeconds: 10
  791. readinessProbe:
  792. enabled: true
  793. address: ""
  794. # -- Set this value to 'ready' (for named port) or an integer for readiness probes.
  795. # @schema type: [string, integer]
  796. port: 8081
  797. timeoutSeconds: 5
  798. failureThreshold: 3
  799. periodSeconds: 5
  800. successThreshold: 1
  801. initialDelaySeconds: 20
  802. startupProbe:
  803. # -- Enabled determines if the startup probe should be used or not. By default it's disabled.
  804. enabled: false
  805. # -- Number of seconds after the container has started before the startup probe is initiated.
  806. initialDelaySeconds: 10
  807. # -- How often (in seconds) to perform the startup probe.
  808. periodSeconds: 10
  809. # -- Number of consecutive failures before the container is restarted. The startup window is initialDelaySeconds + failureThreshold * periodSeconds.
  810. failureThreshold: 30
  811. ## -- Extra environment variables to add to container.
  812. extraEnv: []
  813. ## -- Map of extra arguments to pass to container.
  814. extraArgs: {}
  815. ## -- Extra init containers to add to the pod.
  816. extraInitContainers: []
  817. ## -- Extra volumes to pass to pod.
  818. extraVolumes: []
  819. ## -- Extra volumes to mount to the container.
  820. extraVolumeMounts: []
  821. # -- Annotations to add to Deployment
  822. deploymentAnnotations: {}
  823. # -- Annotations to add to Pod
  824. podAnnotations: {}
  825. podLabels: {}
  826. podSecurityContext:
  827. enabled: true
  828. # fsGroup: 2000
  829. securityContext:
  830. allowPrivilegeEscalation: false
  831. capabilities:
  832. drop:
  833. - ALL
  834. enabled: true
  835. readOnlyRootFilesystem: true
  836. runAsNonRoot: true
  837. runAsUser: 1000
  838. seccompProfile:
  839. type: RuntimeDefault
  840. resources: {}
  841. # requests:
  842. # cpu: 10m
  843. # memory: 32Mi
  844. # -- Specifies `dnsPolicy` to deployment
  845. dnsPolicy: ClusterFirst
  846. # -- Specifies `dnsOptions` to deployment
  847. dnsConfig: {}
  848. # -- Specifies `hostAliases` to deployment
  849. hostAliases: []
  850. # -- Any extra pod spec on the deployment
  851. podSpecExtra: {}