1# This file has been modified by Chainguard, Inc.
3# Copyright Chainguard, Inc. All Rights Reserved.
4# Chainguard, Inc. modifications are subject to the license
5# available at: https://www.chainguard.dev/legal/software-license-agreement
7# Copyright Broadcom, Inc. All Rights Reserved.
8# SPDX-License-Identifier: APACHE-2.0
10## @section Global parameters
11## Global Docker image parameters
12## Please, note that this will override the image parameters, including dependencies, configured to use the global value
13## Current available global Docker image parameters: imageRegistry, imagePullSecrets and storageClass
16## @param global.imageRegistry Global Docker image registry
17## @param global.imagePullSecrets Global Docker registry secret names as an array
18## @param global.defaultStorageClass Global default StorageClass for Persistent Volume(s)
24 ## - myRegistryKeySecretName
27 defaultStorageClass: ""
28 ## Security parameters
31 ## @param global.security.allowInsecureImages Allows skipping image verification
32 allowInsecureImages: false
33 ## Compatibility adaptations for Kubernetes platforms
36 ## Compatibility adaptations for Openshift
39 ## @param global.compatibility.openshift.adaptSecurityContext Adapt the securityContext sections of the deployment to make them compatible with Openshift restricted-v2 SCC: remove runAsUser, runAsGroup and fsGroup and let the platform use their allowed default IDs. Possible values: auto (apply if the detected running cluster is Openshift), force (perform the adaptation always), disabled (do not perform adaptation)
41 adaptSecurityContext: auto
43## @section Common parameters
46## @param kubeVersion Override Kubernetes version
49## @param nameOverride String to partially override common.names.name
52## @param fullnameOverride String to fully override common.names.fullname
55## @param namespaceOverride String to fully override common.names.namespace
58## @param commonLabels Labels to add to all deployed objects
61## @param commonAnnotations Annotations to add to all deployed objects
64## @param clusterDomain Kubernetes cluster domain name
66clusterDomain: cluster.local
67## @param extraDeploy Array of extra objects to deploy with the release
71## @param diagnosticMode.enabled Enable diagnostic mode (all probes will be disabled and the command will be overridden)
72## @param diagnosticMode.command Command to override all containers in the chart release
73## @param diagnosticMode.args Args to override all containers in the chart release
81## Iamguarded SeaweedFS image
82## @param image.registry [default: REGISTRY_NAME] SeaweedFS image registry
83## @param image.repository [default: REPOSITORY_NAME/seaweedfs] SeaweedFS image repository
84## @skip image.tag SeaweedFS image tag (immutable tags are recommended)
85## @param image.digest SeaweedFS image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag image tag (immutable tags are recommended)
86## @param image.pullPolicy SeaweedFS image pull policy
87## @param image.pullSecrets SeaweedFS image pull secrets
88## @param image.debug Enable SeaweedFS image debug mode
92 repository: chainguard-private/seaweedfs-iamguarded
95 ## Specify a imagePullPolicy
96 ## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
98 pullPolicy: IfNotPresent
99 ## Optionally specify an array of imagePullSecrets.
100 ## Secrets must be manually created in the namespace.
101 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
104 ## - myRegistryKeySecretName
108## Security parameters
111 ## @param security.enabled Enable Security settings
114 ## @param security.corsAllowedOrigins CORS allowed origins
116 corsAllowedOrigins: "*"
117 ## JWT authz parameters
118 ## ref: https://github.com/seaweedfs/seaweedfs/wiki/Security-Overview#securing-volume-servers
119 ## ref: https://github.com/seaweedfs/seaweedfs/wiki/Security-Overview#securing-filer-http-with-jwt
120 ## @param security.jwtSigning.volumeWrite Enable JWT signing for volume write operations
121 ## @param security.jwtSigning.volumeRead Enable JWT signing for volume read operations
122 ## @param security.jwtSigning.filerWrite Enable JWT signing for filer write operations
123 ## @param security.jwtSigning.filerRead Enable JWT signing for filer read operations
130 ## Mutual TLS for gRPC communications
131 ## ref: https://github.com/seaweedfs/seaweedfs/wiki/Security-Overview#securing-grpc-operations
134 ## @param security.mTLS.enabled Enable mTLS for gRPC communications
137 ## @param security.mTLS.autoGenerated.enabled Enable automatic generation of certificates for mTLS
138 ## @param security.mTLS.autoGenerated.engine Mechanism to generate the certificates (allowed values: helm, cert-manager)
142 ## @param security.mTLS.autoGenerated.certManager.existingIssuer The name of an existing Issuer to use for generating the certificates (only for `cert-manager` engine)
143 ## @param security.mTLS.autoGenerated.certManager.existingIssuerKind Existing Issuer kind, defaults to Issuer (only for `cert-manager` engine)
144 ## @param security.mTLS.autoGenerated.certManager.keyAlgorithm Key algorithm for the certificates (only for `cert-manager` engine)
145 ## @param security.mTLS.autoGenerated.certManager.keySize Key size for the certificates (only for `cert-manager` engine)
146 ## @param security.mTLS.autoGenerated.certManager.duration Duration for the certificates (only for `cert-manager` engine)
147 ## @param security.mTLS.autoGenerated.certManager.renewBefore Renewal period for the certificates (only for `cert-manager` engine)
150 existingIssuerKind: ""
155 ## @param security.mTLS.ca CA certificate for mTLS. Ignored if `security.mTLS.existingCASecret` is set
156 ## @param security.mTLS.existingCASecret The name of an existing Secret containing the CA certificate for mTLS
157 ## @param security.mTLS.master.cert Master Server certificate for mTLS. Ignored if `security.mTLS.master.existingSecret` is set
158 ## @param security.mTLS.master.key Master Server key for mTLS. Ignored if `security.mTLS.master.existingSecret` is set
159 ## @param security.mTLS.master.existingSecret The name of an existing Secret containing the Master Server certificates for mTLS
160 ## @param security.mTLS.volume.cert Volume Server certificate for mTLS. Ignored if `security.mTLS.volume.existingSecret` is set
161 ## @param security.mTLS.volume.key Volume Server key for mTLS. Ignored if `security.mTLS.volume.existingSecret` is set
162 ## @param security.mTLS.volume.existingSecret The name of an existing Secret containing the Volume Server certificates for mTLS
163 ## @param security.mTLS.filer.cert Filer certificate for mTLS. Ignored if `security.mTLS.filer.existingSecret` is set
164 ## @param security.mTLS.filer.key Filer key for mTLS. Ignored if `security.mTLS.filer.existingSecret` is set
165 ## @param security.mTLS.filer.existingSecret The name of an existing Secret containing the Filer certificates for mTLS
166 ## @param security.mTLS.client.cert Client certificate for mTLS. Ignored if `security.mTLS.client.existingSecret` is set
167 ## @param security.mTLS.client.key Client key for mTLS. Ignored if `security.mTLS.client.existingSecret` is set
168 ## @param security.mTLS.client.existingSecret The name of an existing Secret containing the Client certificates for mTLS
187## @param clusterDefault Default SeaweedFS cluster name
190## @section Master Server Parameters
193 ## @param master.replicaCount Number of Master Server replicas to deploy
196 ## @param master.containerPorts.http Master Server HTTP container port
197 ## @param master.containerPorts.grpc Master Server GRPC container port
198 ## @param master.containerPorts.metrics Master Server metrics container port
204 ## @param master.extraContainerPorts Optionally specify extra list of additional ports for Master Server containers
206 ## extraContainerPorts:
208 ## containerPort: 9090
210 extraContainerPorts: []
211 ## Configure extra options for Master Server containers' liveness and readiness probes
212 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
213 ## @param master.livenessProbe.enabled Enable livenessProbe on Master Server containers
214 ## @param master.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
215 ## @param master.livenessProbe.periodSeconds Period seconds for livenessProbe
216 ## @param master.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
217 ## @param master.livenessProbe.failureThreshold Failure threshold for livenessProbe
218 ## @param master.livenessProbe.successThreshold Success threshold for livenessProbe
222 initialDelaySeconds: 30
227 ## @param master.readinessProbe.enabled Enable readinessProbe on Master Server containers
228 ## @param master.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
229 ## @param master.readinessProbe.periodSeconds Period seconds for readinessProbe
230 ## @param master.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
231 ## @param master.readinessProbe.failureThreshold Failure threshold for readinessProbe
232 ## @param master.readinessProbe.successThreshold Success threshold for readinessProbe
236 initialDelaySeconds: 30
241 ## @param master.startupProbe.enabled Enable startupProbe on Master Server containers
242 ## @param master.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
243 ## @param master.startupProbe.periodSeconds Period seconds for startupProbe
244 ## @param master.startupProbe.timeoutSeconds Timeout seconds for startupProbe
245 ## @param master.startupProbe.failureThreshold Failure threshold for startupProbe
246 ## @param master.startupProbe.successThreshold Success threshold for startupProbe
250 initialDelaySeconds: 5
255 ## @param master.customLivenessProbe Custom livenessProbe that overrides the default one
257 customLivenessProbe: {}
258 ## @param master.customReadinessProbe Custom readinessProbe that overrides the default one
260 customReadinessProbe: {}
261 ## @param master.customStartupProbe Custom startupProbe that overrides the default one
263 customStartupProbe: {}
264 ## Master Server resource requests and limits
265 ## ref: http://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
266 ## @param master.resourcesPreset Set Master Server container resources according to one common preset (allowed values: none, nano, small, medium, large, xlarge, 2xlarge). This is ignored if master.resources is set (master.resources is recommended for production).
268 resourcesPreset: "nano"
269 ## @param master.resources Set Master Server container requests and limits for different resources like CPU or memory (essential for production workloads)
280 ## Configure Pods Security Context
281 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
282 ## @param master.podSecurityContext.enabled Enable Master Server pods' Security Context
283 ## @param master.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy for Master Server pods
284 ## @param master.podSecurityContext.sysctls Set kernel settings using the sysctl interface for Master Server pods
285 ## @param master.podSecurityContext.supplementalGroups Set filesystem extra groups for Master Server pods
286 ## @param master.podSecurityContext.fsGroup Set fsGroup in Master Server pods' Security Context
290 fsGroupChangePolicy: Always
292 supplementalGroups: []
294 ## Configure Container Security Context
295 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
296 ## @param master.containerSecurityContext.enabled Enabled Master Server container' Security Context
297 ## @param master.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in Master Server container
298 ## @param master.containerSecurityContext.runAsUser Set runAsUser in Master Server container' Security Context
299 ## @param master.containerSecurityContext.runAsGroup Set runAsGroup in Master Server container' Security Context
300 ## @param master.containerSecurityContext.runAsNonRoot Set runAsNonRoot in Master Server container' Security Context
301 ## @param master.containerSecurityContext.readOnlyRootFilesystem Set readOnlyRootFilesystem in Master Server container' Security Context
302 ## @param master.containerSecurityContext.privileged Set privileged in Master Server container' Security Context
303 ## @param master.containerSecurityContext.allowPrivilegeEscalation Set allowPrivilegeEscalation in Master Server container' Security Context
304 ## @param master.containerSecurityContext.capabilities.drop List of capabilities to be dropped in Master Server container
305 ## @param master.containerSecurityContext.seccompProfile.type Set seccomp profile in Master Server container
307 containerSecurityContext:
313 readOnlyRootFilesystem: true
315 allowPrivilegeEscalation: false
319 type: "RuntimeDefault"
320 ## @param master.logLevel Master Server log level (0, 1, 2, 3, or 4)
323 ## @param master.bindAddress Master Server bind address
326 ## @param master.volumeSizeLimitMB Limit (in MB) to stop directing writes to oversized volumes
328 volumeSizeLimitMB: 1000
329 ## @param master.config Master Server configuration
330 ## Specify content for master.toml
333 ## @param master.existingConfigmap The name of an existing ConfigMap with your custom configuration for Master Server
335 existingConfigmap: ""
336 ## @param master.command Override default Master Server container command (useful when using custom images)
339 ## @param master.args Override default Master Server container args (useful when using custom images)
342 ## @param master.automountServiceAccountToken Mount Service Account token in Master Server pods
344 automountServiceAccountToken: false
345 ## @param master.hostAliases Master Server pods host aliases
346 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
349 ## @param master.statefulsetAnnotations Annotations for Master Server StatefulSet
350 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
352 statefulsetAnnotations: {}
353 ## @param master.podLabels Extra labels for Master Server pods
354 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
357 ## @param master.podAnnotations Annotations for Master Server pods
358 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
361 ## @param master.podAffinityPreset Pod affinity preset. Ignored if `master.affinity` is set. Allowed values: `soft` or `hard`
362 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
364 podAffinityPreset: ""
365 ## @param master.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `master.affinity` is set. Allowed values: `soft` or `hard`
366 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
368 podAntiAffinityPreset: soft
369 ## Node master.affinity preset
370 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
373 ## @param master.nodeAffinityPreset.type Node affinity preset type. Ignored if `master.affinity` is set. Allowed values: `soft` or `hard`
376 ## @param master.nodeAffinityPreset.key Node label key to match. Ignored if `master.affinity` is set
379 ## @param master.nodeAffinityPreset.values Node label values to match. Ignored if `master.affinity` is set
386 ## @param master.affinity Affinity for Master Server pods assignment
387 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
388 ## NOTE: `master.podAffinityPreset`, `master.podAntiAffinityPreset`, and `master.nodeAffinityPreset` will be ignored when it's set
391 ## @param master.nodeSelector Node labels for Master Server pods assignment
392 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
395 ## @param master.tolerations Tolerations for Master Server pods assignment
396 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
399 ## @param master.updateStrategy.type Master Server StatefulSet strategy type
400 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
403 ## Can be set to RollingUpdate or OnDelete
406 ## @param master.podManagementPolicy Pod management policy for Master Server StatefulSet
407 ## Ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
409 podManagementPolicy: Parallel
410 ## @param master.priorityClassName Master Server pods' priorityClassName
412 priorityClassName: ""
413 ## @param master.topologySpreadConstraints Topology Spread Constraints for Master Server pod assignment spread across your cluster among failure-domains
414 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
416 topologySpreadConstraints: []
417 ## @param master.schedulerName Name of the k8s scheduler (other than default) for Master Server pods
418 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
421 ## @param master.terminationGracePeriodSeconds Seconds Master Server pods need to terminate gracefully
422 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
424 terminationGracePeriodSeconds: ""
425 ## @param master.lifecycleHooks for Master Server containers to automate configuration before or after startup
428 ## @param master.extraEnvVars Array with extra environment variables to add to Master Server containers
435 ## @param master.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for Master Server containers
438 ## @param master.extraEnvVarsSecret Name of existing Secret containing extra env vars for Master Server containers
440 extraEnvVarsSecret: ""
441 ## @param master.extraVolumes Optionally specify extra list of additional volumes for the Master Server pods
444 ## @param master.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Master Server containers
446 extraVolumeMounts: []
447 ## @param master.sidecars Add additional sidecar containers to the Master Server pods
450 ## - name: your-image-name
452 ## imagePullPolicy: Always
455 ## containerPort: 1234
458 ## @param master.initContainers Add additional init containers to the Master Server pods
459 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
462 ## - name: your-image-name
464 ## imagePullPolicy: Always
465 ## command: ['sh', '-c', 'echo "hello world"']
468 ## Pod Disruption Budget configuration
469 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb
470 ## @param master.pdb.create Enable/disable a Pod Disruption Budget creation
471 ## @param master.pdb.minAvailable Minimum number/percentage of pods that should remain scheduled
472 ## @param master.pdb.maxUnavailable Maximum number/percentage of pods that may be made unavailable. Defaults to `1` if both `master.pdb.minAvailable` and `master.pdb.maxUnavailable` are empty.
478 ## Autoscaling configuration
479 ## ref: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/
480 ## @param master.autoscaling.enabled Enable autoscaling for master
481 ## @param master.autoscaling.minReplicas Minimum number of master replicas
482 ## @param master.autoscaling.maxReplicas Maximum number of master replicas
483 ## @param master.autoscaling.targetCPU Target CPU utilization percentage
484 ## @param master.autoscaling.targetMemory Target Memory utilization percentage
492 ## @section Master Server Traffic Exposure Parameters
495 ## Master Server service parameters
498 ## @param master.service.type Master Server service type
501 ## @param master.service.ports.http Master Server service HTTP port
502 ## @param master.service.ports.grpc Master Server service GRPC port
507 ## Node ports to expose
508 ## @param master.service.nodePorts.http Node port for HTTP
509 ## @param master.service.nodePorts.grpc Node port for GRPC
510 ## NOTE: choose port between <30000-32767>
515 ## @param master.service.clusterIP Master Server service Cluster IP
520 ## @param master.service.loadBalancerIP Master Server service Load Balancer IP
521 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
524 ## @param master.service.loadBalancerSourceRanges Master Server service Load Balancer sources
525 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
527 ## loadBalancerSourceRanges:
530 loadBalancerSourceRanges: []
531 ## @param master.service.externalTrafficPolicy Master Server service external traffic policy
532 ## ref http://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
534 externalTrafficPolicy: Cluster
535 ## @param master.service.annotations Additional custom annotations for Master Server service
538 ## @param master.service.extraPorts Extra ports to expose in Master Server service (normally used with the `sidecars` value)
541 ## @param master.service.sessionAffinity Control where client requests go, to the same pod or round-robin
542 ## Values: ClientIP or None
543 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/
545 sessionAffinity: None
546 ## @param master.service.sessionAffinityConfig Additional settings for the sessionAffinity
547 ## sessionAffinityConfig:
549 ## timeoutSeconds: 300
551 sessionAffinityConfig: {}
552 ## Headless service properties
555 ## @param master.service.headless.annotations Annotations for the headless service.
558 ## Network Policies for Master Server
559 ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
562 ## @param master.networkPolicy.enabled Specifies whether a NetworkPolicy should be created for Master Server
565 ## @param master.networkPolicy.allowExternal Don't require server label for connections
566 ## The Policy model to apply. When set to false, only pods with the correct
567 ## server label will have network access to the ports server is listening
568 ## on. When true, server will accept connections from any source
569 ## (with the correct destination port).
572 ## @param master.networkPolicy.allowExternalEgress Allow the Master Server pods to access any range of port and all destinations.
574 allowExternalEgress: true
575 ## @param master.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
585 ## - matchExpressions:
591 ## @param master.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy (ignored if allowExternalEgress=true)
601 ## - matchExpressions:
608 ## @param master.networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
609 ## @param master.networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
611 ingressNSMatchLabels: {}
612 ingressNSPodMatchLabels: {}
613 ## Master Server ingress parameters
614 ## ref: http://kubernetes.io/docs/concepts/services-networking/ingress/
617 ## @param master.ingress.enabled Enable ingress record generation for Master Server
620 ## @param master.ingress.pathType Ingress path type
622 pathType: ImplementationSpecific
623 ## @param master.ingress.apiVersion Force Ingress API version (automatically detected if not set)
626 ## @param master.ingress.hostname Default host for the ingress record
628 hostname: master.seaweedfs.local
629 ## @param master.ingress.ingressClassName IngressClass that will be be used to implement the Ingress (Kubernetes 1.18+)
630 ## This is supported in Kubernetes 1.18+ and required if you have more than one IngressClass marked as the default for your cluster .
631 ## ref: https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/
634 ## @param master.ingress.path Default path for the ingress record
635 ## NOTE: You may need to set this to '/*' in order to use this with ALB ingress controllers
638 ## @param master.ingress.annotations Additional annotations for the Ingress resource. To enable certificate autogeneration, place here your cert-manager annotations.
639 ## Use this parameter to set the required annotations for cert-manager, see
640 ## ref: https://cert-manager.io/docs/usage/ingress/#supported-annotations
643 ## kubernetes.io/ingress.class: nginx
644 ## cert-manager.io/cluster-issuer: cluster-issuer-name
647 ## @param master.ingress.tls Enable TLS configuration for the host defined at `ingress.hostname` parameter
648 ## TLS certificates will be retrieved from a TLS secret with name: `{{- printf "%s-tls" .Values.ingress.hostname }}`
650 ## - Use the `ingress.secrets` parameter to create this TLS secret
651 ## - Rely on cert-manager to create it by setting the corresponding annotations
652 ## - Rely on Helm to create self-signed certificates by setting `ingress.selfSigned=true`
655 ## @param master.ingress.selfSigned Create a TLS secret for this ingress record using self-signed certificates generated by Helm
658 ## @param master.ingress.extraHosts An array with additional hostname(s) to be covered with the ingress record
661 ## - name: master.seaweedfs.local
665 ## @param master.ingress.extraPaths An array with additional arbitrary paths that may need to be added to the ingress under the main host
670 ## serviceName: ssl-redirect
671 ## servicePort: use-annotation
674 ## @param master.ingress.extraTls TLS configuration for additional hostname(s) to be covered with this ingress record
675 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls
679 ## - master.seaweedfs.local
680 ## secretName: master.seaweedfs.local-tls
683 ## @param master.ingress.secrets Custom TLS certificates as secrets
684 ## NOTE: 'key' and 'certificate' are expected in PEM format
685 ## NOTE: 'name' should line up with a 'secretName' set further up
686 ## 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
687 ## If it is not set and you're NOT using cert-manager either, self-signed certificates will be created valid for 365 days
688 ## It is also possible to create and manage the certificates outside of this helm chart
689 ## Please see README.md for more information
692 ## - name: master.seaweedfs.local-tls
694 ## -----BEGIN RSA PRIVATE KEY-----
696 ## -----END RSA PRIVATE KEY-----
698 ## -----BEGIN CERTIFICATE-----
700 ## -----END CERTIFICATE-----
703 ## @param master.ingress.extraRules Additional rules to be covered with this ingress record
704 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-rules
707 ## - host: example.local
717 ## @section Master Server Persistence Parameters
720 ## Enable Master data persistence using Persistent Volume Claims
721 ## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
724 ## @param master.persistence.enabled Enable data persistence on Master Server using Persistent Volume Claims
727 ## @param master.persistence.mountPath Path to mount the volume at.
730 ## @param master.persistence.subPath The subdirectory of the volume to mount to, useful in dev environments and one PV for multiple services
733 ## @param master.persistence.storageClass Storage class of backing PVC
734 ## If defined, storageClassName: <storageClass>
735 ## If set to "-", storageClassName: "", which disables dynamic provisioning
736 ## If undefined (the default) or set to null, no storageClassName spec is
737 ## set, choosing the default provisioner. (gp2 on AWS, standard on
738 ## GKE, AWS & OpenStack)
741 ## @param master.persistence.annotations Persistent Volume Claim annotations
744 ## @param master.persistence.accessModes Persistent Volume Access Modes
748 ## @param master.persistence.size Size of data volume
751 ## @param master.persistence.existingClaim The name of an existing PVC to use for data persistence
754 ## @param master.persistence.selector Selector to match an existing Persistent Volume for data PVC
755 ## If set, the PVC can't have a PV dynamically provisioned for it
762 ## @param master.persistence.dataSource Custom PVC data source
765 ## Enable Master logs persistence using Persistent Volume Claims
766 ## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
769 ## @param master.logPersistence.enabled Enable logs persistence on Master Server using Persistent Volume Claims
772 ## @param master.logPersistence.mountPath Path to mount the volume at.
775 ## @param master.logPersistence.subPath The subdirectory of the volume to mount to, useful in dev environments and one PV for multiple services
778 ## @param master.logPersistence.storageClass Storage class of backing PVC
779 ## If defined, storageClassName: <storageClass>
780 ## If set to "-", storageClassName: "", which disables dynamic provisioning
781 ## If undefined (the default) or set to null, no storageClassName spec is
782 ## set, choosing the default provisioner. (gp2 on AWS, standard on
783 ## GKE, AWS & OpenStack)
786 ## @param master.logPersistence.annotations Persistent Volume Claim annotations
789 ## @param master.logPersistence.accessModes Persistent Volume Access Modes
793 ## @param master.logPersistence.size Size of logs volume
796 ## @param master.logPersistence.existingClaim The name of an existing PVC to use for logs persistence
799 ## @param master.logPersistence.selector Selector to match an existing Persistent Volume for logs PVC
800 ## If set, the PVC can't have a PV dynamically provisioned for it
807 ## @param master.logPersistence.dataSource Custom PVC data source
810 ## persistentVolumeClaimRetentionPolicy
811 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention
812 ## @param master.persistentVolumeClaimRetentionPolicy.enabled Controls if and how PVCs are deleted during the lifecycle of the Master Server StatefulSet
813 ## @param master.persistentVolumeClaimRetentionPolicy.whenScaled Volume retention behavior when the replica count of the StatefulSet is reduced
814 ## @param master.persistentVolumeClaimRetentionPolicy.whenDeleted Volume retention behavior that applies when the StatefulSet is deleted
816 persistentVolumeClaimRetentionPolicy:
820 ## @section Master Server Metrics Parameters
823 ## @param master.metrics.enabled Enable the export of Prometheus metrics
826 ## Metrics service properties
829 ## @param master.metrics.service.port Metrics service port
832 ## @param master.metrics.service.annotations Annotations for the metrics service.
835 ## Prometheus Operator ServiceMonitor configuration
838 ## @param master.metrics.serviceMonitor.enabled if `true`, creates a Prometheus Operator ServiceMonitor (also requires `metrics.enabled` to be `true`)
841 ## @param master.metrics.serviceMonitor.namespace Namespace in which Prometheus is running
844 ## @param master.metrics.serviceMonitor.annotations Additional custom annotations for the ServiceMonitor
847 ## @param master.metrics.serviceMonitor.labels Extra labels for the ServiceMonitor
850 ## @param master.metrics.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in Prometheus
853 ## @param master.metrics.serviceMonitor.honorLabels honorLabels chooses the metric's labels on collisions with target labels
856 ## @param master.metrics.serviceMonitor.interval Interval at which metrics should be scraped.
857 ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
862 ## @param master.metrics.serviceMonitor.scrapeTimeout Timeout after which the scrape is ended
863 ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
865 ## scrapeTimeout: 10s
868 ## @param master.metrics.serviceMonitor.metricRelabelings Specify additional relabeling of metrics
870 metricRelabelings: []
871 ## @param master.metrics.serviceMonitor.relabelings Specify general relabeling
874 ## @param master.metrics.serviceMonitor.selector Prometheus instance selector labels
876 ## prometheus: my-prometheus
879## @section Volume Server Parameters
882 ## @param volume.replicaCount Number of Volume Server replicas to deploy
885 ## @param volume.containerPorts.http Volume Server HTTP container port
886 ## @param volume.containerPorts.grpc Volume Server GRPC container port
887 ## @param volume.containerPorts.metrics Volume Server metrics container port
893 ## @param volume.extraContainerPorts Optionally specify extra list of additional ports for Volume Server containers
895 ## extraContainerPorts:
897 ## containerPort: 9090
899 extraContainerPorts: []
900 ## Configure extra options for Volume Server containers' liveness and readiness probes
901 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
902 ## @param volume.livenessProbe.enabled Enable livenessProbe on Volume Server containers
903 ## @param volume.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
904 ## @param volume.livenessProbe.periodSeconds Period seconds for livenessProbe
905 ## @param volume.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
906 ## @param volume.livenessProbe.failureThreshold Failure threshold for livenessProbe
907 ## @param volume.livenessProbe.successThreshold Success threshold for livenessProbe
911 initialDelaySeconds: 30
916 ## @param volume.readinessProbe.enabled Enable readinessProbe on Volume Server containers
917 ## @param volume.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
918 ## @param volume.readinessProbe.periodSeconds Period seconds for readinessProbe
919 ## @param volume.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
920 ## @param volume.readinessProbe.failureThreshold Failure threshold for readinessProbe
921 ## @param volume.readinessProbe.successThreshold Success threshold for readinessProbe
925 initialDelaySeconds: 30
930 ## @param volume.startupProbe.enabled Enable startupProbe on Volume Server containers
931 ## @param volume.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
932 ## @param volume.startupProbe.periodSeconds Period seconds for startupProbe
933 ## @param volume.startupProbe.timeoutSeconds Timeout seconds for startupProbe
934 ## @param volume.startupProbe.failureThreshold Failure threshold for startupProbe
935 ## @param volume.startupProbe.successThreshold Success threshold for startupProbe
939 initialDelaySeconds: 5
944 ## @param volume.customLivenessProbe Custom livenessProbe that overrides the default one
946 customLivenessProbe: {}
947 ## @param volume.customReadinessProbe Custom readinessProbe that overrides the default one
949 customReadinessProbe: {}
950 ## @param volume.customStartupProbe Custom startupProbe that overrides the default one
952 customStartupProbe: {}
953 ## Volume Server resource requests and limits
954 ## ref: http://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
955 ## @param volume.resourcesPreset Set Volume Server container resources according to one common preset (allowed values: none, nano, small, medium, large, xlarge, 2xlarge). This is ignored if volume.resources is set (volume.resources is recommended for production).
957 resourcesPreset: "nano"
958 ## @param volume.resources Set Volume Server container requests and limits for different resources like CPU or memory (essential for production workloads)
969 ## Configure Pods Security Context
970 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
971 ## @param volume.podSecurityContext.enabled Enable Volume Server pods' Security Context
972 ## @param volume.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy for Volume Server pods
973 ## @param volume.podSecurityContext.sysctls Set kernel settings using the sysctl interface for Volume Server pods
974 ## @param volume.podSecurityContext.supplementalGroups Set filesystem extra groups for Volume Server pods
975 ## @param volume.podSecurityContext.fsGroup Set fsGroup in Volume Server pods' Security Context
979 fsGroupChangePolicy: Always
981 supplementalGroups: []
983 ## Configure Container Security Context
984 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
985 ## @param volume.containerSecurityContext.enabled Enabled Volume Server container' Security Context
986 ## @param volume.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in Volume Server container
987 ## @param volume.containerSecurityContext.runAsUser Set runAsUser in Volume Server container' Security Context
988 ## @param volume.containerSecurityContext.runAsGroup Set runAsGroup in Volume Server container' Security Context
989 ## @param volume.containerSecurityContext.runAsNonRoot Set runAsNonRoot in Volume Server container' Security Context
990 ## @param volume.containerSecurityContext.readOnlyRootFilesystem Set readOnlyRootFilesystem in Volume Server container' Security Context
991 ## @param volume.containerSecurityContext.privileged Set privileged in Volume Server container' Security Context
992 ## @param volume.containerSecurityContext.allowPrivilegeEscalation Set allowPrivilegeEscalation in Volume Server container' Security Context
993 ## @param volume.containerSecurityContext.capabilities.drop List of capabilities to be dropped in Volume Server container
994 ## @param volume.containerSecurityContext.seccompProfile.type Set seccomp profile in Volume Server container
996 containerSecurityContext:
1002 readOnlyRootFilesystem: true
1004 allowPrivilegeEscalation: false
1008 type: "RuntimeDefault"
1009 ## @param volume.logLevel Volume Server log level (0, 1, 2, 3, or 4)
1012 ## @param volume.bindAddress Volume Server bind address
1014 bindAddress: 0.0.0.0
1015 ## @param volume.publicUrl Volume Server public URL
1018 ## @param volume.config Volume Server configuration
1019 ## Specify content for volume.toml
1022 ## @param volume.existingConfigmap The name of an existing ConfigMap with your custom configuration for Volume Server
1024 existingConfigmap: ""
1025 ## @param volume.command Override default Volume Server container command (useful when using custom images)
1028 ## @param volume.args Override default Volume Server container args (useful when using custom images)
1031 ## @param volume.automountServiceAccountToken Mount Service Account token in Volume Server pods
1033 automountServiceAccountToken: false
1034 ## @param volume.hostAliases Volume Server pods host aliases
1035 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
1038 ## @param volume.statefulsetAnnotations Annotations for Volume Server StatefulSet
1039 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
1041 statefulsetAnnotations: {}
1042 ## @param volume.podLabels Extra labels for Volume Server pods
1043 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
1046 ## @param volume.podAnnotations Annotations for Volume Server pods
1047 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
1050 ## @param volume.podAffinityPreset Pod affinity preset. Ignored if `volume.affinity` is set. Allowed values: `soft` or `hard`
1051 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
1053 podAffinityPreset: ""
1054 ## @param volume.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `volume.affinity` is set. Allowed values: `soft` or `hard`
1055 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
1057 podAntiAffinityPreset: soft
1058 ## Node volume.affinity preset
1059 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
1062 ## @param volume.nodeAffinityPreset.type Node affinity preset type. Ignored if `volume.affinity` is set. Allowed values: `soft` or `hard`
1065 ## @param volume.nodeAffinityPreset.key Node label key to match. Ignored if `volume.affinity` is set
1068 ## @param volume.nodeAffinityPreset.values Node label values to match. Ignored if `volume.affinity` is set
1075 ## @param volume.affinity Affinity for Volume Server pods assignment
1076 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
1077 ## NOTE: `volume.podAffinityPreset`, `volume.podAntiAffinityPreset`, and `volume.nodeAffinityPreset` will be ignored when it's set
1080 ## @param volume.nodeSelector Node labels for Volume Server pods assignment
1081 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
1084 ## @param volume.tolerations Tolerations for Volume Server pods assignment
1085 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
1088 ## @param volume.updateStrategy.type Volume Server StatefulSet strategy type
1089 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
1092 ## Can be set to RollingUpdate or OnDelete
1095 ## @param volume.podManagementPolicy Pod management policy for Volume Server StatefulSet
1096 ## Ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
1098 podManagementPolicy: Parallel
1099 ## @param volume.priorityClassName Volume Server pods' priorityClassName
1101 priorityClassName: ""
1102 ## @param volume.topologySpreadConstraints Topology Spread Constraints for Volume Server pod assignment spread across your cluster among failure-domains
1103 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
1105 topologySpreadConstraints: []
1106 ## @param volume.schedulerName Name of the k8s scheduler (other than default) for Volume Server pods
1107 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
1110 ## @param volume.terminationGracePeriodSeconds Seconds Volume Server pods need to terminate gracefully
1111 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
1113 terminationGracePeriodSeconds: ""
1114 ## @param volume.lifecycleHooks for Volume Server containers to automate configuration before or after startup
1117 ## @param volume.extraEnvVars Array with extra environment variables to add to Volume Server containers
1124 ## @param volume.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for Volume Server containers
1127 ## @param volume.extraEnvVarsSecret Name of existing Secret containing extra env vars for Volume Server containers
1129 extraEnvVarsSecret: ""
1130 ## @param volume.extraVolumes Optionally specify extra list of additional volumes for the Volume Server pods
1133 ## @param volume.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Volume Server containers
1135 extraVolumeMounts: []
1136 ## @param volume.sidecars Add additional sidecar containers to the Volume Server pods
1139 ## - name: your-image-name
1140 ## image: your-image
1141 ## imagePullPolicy: Always
1144 ## containerPort: 1234
1147 ## @param volume.initContainers Add additional init containers to the Volume Server pods
1148 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
1151 ## - name: your-image-name
1152 ## image: your-image
1153 ## imagePullPolicy: Always
1154 ## command: ['sh', '-c', 'echo "hello world"']
1157 ## Pod Disruption Budget configuration
1158 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb
1159 ## @param volume.pdb.create Enable/disable a Pod Disruption Budget creation
1160 ## @param volume.pdb.minAvailable Minimum number/percentage of pods that should remain scheduled
1161 ## @param volume.pdb.maxUnavailable Maximum number/percentage of pods that may be made unavailable. Defaults to `1` if both `volume.pdb.minAvailable` and `volume.pdb.maxUnavailable` are empty.
1167 ## Autoscaling configuration
1168 ## ref: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/
1169 ## @param volume.autoscaling.enabled Enable autoscaling for volume
1170 ## @param volume.autoscaling.minReplicas Minimum number of volume replicas
1171 ## @param volume.autoscaling.maxReplicas Maximum number of volume replicas
1172 ## @param volume.autoscaling.targetCPU Target CPU utilization percentage
1173 ## @param volume.autoscaling.targetMemory Target Memory utilization percentage
1181 ## @section Volume Server Traffic Exposure Parameters
1184 ## Volume Server service parameters
1187 ## @param volume.service.type Volume Server service type
1190 ## @param volume.service.ports.http Volume Server service HTTP port
1191 ## @param volume.service.ports.grpc Volume Server service GRPC port
1196 ## Node ports to expose
1197 ## @param volume.service.nodePorts.http Node port for HTTP
1198 ## @param volume.service.nodePorts.grpc Node port for GRPC
1199 ## NOTE: choose port between <30000-32767>
1204 ## @param volume.service.clusterIP Volume Server service Cluster IP
1209 ## @param volume.service.loadBalancerIP Volume Server service Load Balancer IP
1210 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
1213 ## @param volume.service.loadBalancerSourceRanges Volume Server service Load Balancer sources
1214 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
1216 ## loadBalancerSourceRanges:
1219 loadBalancerSourceRanges: []
1220 ## @param volume.service.externalTrafficPolicy Volume Server service external traffic policy
1221 ## ref http://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
1223 externalTrafficPolicy: Cluster
1224 ## @param volume.service.annotations Additional custom annotations for Volume Server service
1227 ## @param volume.service.extraPorts Extra ports to expose in Volume Server service (normally used with the `sidecars` value)
1230 ## @param volume.service.sessionAffinity Control where client requests go, to the same pod or round-robin
1231 ## Values: ClientIP or None
1232 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/
1234 sessionAffinity: None
1235 ## @param volume.service.sessionAffinityConfig Additional settings for the sessionAffinity
1236 ## sessionAffinityConfig:
1238 ## timeoutSeconds: 300
1240 sessionAffinityConfig: {}
1241 ## Headless service properties
1244 ## @param volume.service.headless.annotations Annotations for the headless service.
1247 ## Network Policies for Volume Server
1248 ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
1251 ## @param volume.networkPolicy.enabled Specifies whether a NetworkPolicy should be created for Volume Server
1254 ## @param volume.networkPolicy.allowExternal Don't require server label for connections
1255 ## The Policy model to apply. When set to false, only pods with the correct
1256 ## server label will have network access to the ports server is listening
1257 ## on. When true, server will accept connections from any source
1258 ## (with the correct destination port).
1261 ## @param volume.networkPolicy.allowExternalEgress Allow the Volume Server pods to access any range of port and all destinations.
1263 allowExternalEgress: true
1264 ## @param volume.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
1274 ## - matchExpressions:
1280 ## @param volume.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy (ignored if allowExternalEgress=true)
1290 ## - matchExpressions:
1297 ## @param volume.networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
1298 ## @param volume.networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
1300 ingressNSMatchLabels: {}
1301 ingressNSPodMatchLabels: {}
1302 ## Volume Server ingress parameters
1303 ## ref: http://kubernetes.io/docs/concepts/services-networking/ingress/
1306 ## @param volume.ingress.enabled Enable ingress record generation for Volume Server
1309 ## @param volume.ingress.pathType Ingress path type
1311 pathType: ImplementationSpecific
1312 ## @param volume.ingress.apiVersion Force Ingress API version (automatically detected if not set)
1315 ## @param volume.ingress.hostname Default host for the ingress record
1317 hostname: volume.seaweedfs.local
1318 ## @param volume.ingress.ingressClassName IngressClass that will be be used to implement the Ingress (Kubernetes 1.18+)
1319 ## This is supported in Kubernetes 1.18+ and required if you have more than one IngressClass marked as the default for your cluster .
1320 ## ref: https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/
1322 ingressClassName: ""
1323 ## @param volume.ingress.path Default path for the ingress record
1324 ## NOTE: You may need to set this to '/*' in order to use this with ALB ingress controllers
1327 ## @param volume.ingress.annotations Additional annotations for the Ingress resource. To enable certificate autogeneration, place here your cert-manager annotations.
1328 ## Use this parameter to set the required annotations for cert-manager, see
1329 ## ref: https://cert-manager.io/docs/usage/ingress/#supported-annotations
1332 ## kubernetes.io/ingress.class: nginx
1333 ## cert-manager.io/cluster-issuer: cluster-issuer-name
1336 ## @param volume.ingress.tls Enable TLS configuration for the host defined at `ingress.hostname` parameter
1337 ## TLS certificates will be retrieved from a TLS secret with name: `{{- printf "%s-tls" .Values.ingress.hostname }}`
1339 ## - Use the `ingress.secrets` parameter to create this TLS secret
1340 ## - Rely on cert-manager to create it by setting the corresponding annotations
1341 ## - Rely on Helm to create self-signed certificates by setting `ingress.selfSigned=true`
1344 ## @param volume.ingress.selfSigned Create a TLS secret for this ingress record using self-signed certificates generated by Helm
1347 ## @param volume.ingress.extraHosts An array with additional hostname(s) to be covered with the ingress record
1350 ## - name: volume.seaweedfs.local
1354 ## @param volume.ingress.extraPaths An array with additional arbitrary paths that may need to be added to the ingress under the main host
1359 ## serviceName: ssl-redirect
1360 ## servicePort: use-annotation
1363 ## @param volume.ingress.extraTls TLS configuration for additional hostname(s) to be covered with this ingress record
1364 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls
1368 ## - volume.seaweedfs.local
1369 ## secretName: volume.seaweedfs.local-tls
1372 ## @param volume.ingress.secrets Custom TLS certificates as secrets
1373 ## NOTE: 'key' and 'certificate' are expected in PEM format
1374 ## NOTE: 'name' should line up with a 'secretName' set further up
1375 ## 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
1376 ## If it is not set and you're NOT using cert-manager either, self-signed certificates will be created valid for 365 days
1377 ## It is also possible to create and manage the certificates outside of this helm chart
1378 ## Please see README.md for more information
1381 ## - name: volume.seaweedfs.local-tls
1383 ## -----BEGIN RSA PRIVATE KEY-----
1385 ## -----END RSA PRIVATE KEY-----
1387 ## -----BEGIN CERTIFICATE-----
1389 ## -----END CERTIFICATE-----
1392 ## @param volume.ingress.extraRules Additional rules to be covered with this ingress record
1393 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-rules
1396 ## - host: example.local
1401 ## name: example-svc
1406 ## @section Volume Server Persistence Parameters
1409 - ## @param volume.dataVolumes[0].name Name of the data volume
1412 ## @param volume.dataVolumes[0].mountPath Path to mount the volume at.
1415 ## @param volume.dataVolumes[0].subPath The subdirectory of the volume to mount to, useful in dev environments and one PV for multiple services
1418 ## @param volume.dataVolumes[0].maxVolumes Max number of SeaweedFS volumes this data volume can be divided into. If set to 0, the limit will be auto configured as free disk space divided by default volume size (30GB)
1419 ## ref: https://github.com/seaweedfs/seaweedfs/wiki/FAQ#how-many-volumes-do-i-need
1420 ## ref: https://github.com/seaweedfs/seaweedfs/blob/master/weed/util/constants_4bytes.go#L8
1423 ## Enable persistence using Persistent Volume Claims
1424 ## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
1427 ## @param volume.dataVolumes[0].persistence.enabled Enable persistence on Volume Server using Persistent Volume Claims
1430 ## @param volume.dataVolumes[0].persistence.storageClass Storage class of backing PVC
1431 ## If defined, storageClassName: <storageClass>
1432 ## If set to "-", storageClassName: "", which disables dynamic provisioning
1433 ## If undefined (the default) or set to null, no storageClassName spec is
1434 ## set, choosing the default provisioner. (gp2 on AWS, standard on
1435 ## GKE, AWS & OpenStack)
1438 ## @param volume.dataVolumes[0].persistence.annotations Persistent Volume Claim annotations
1441 ## @param volume.dataVolumes[0].persistence.accessModes Persistent Volume Access Modes
1445 ## @param volume.dataVolumes[0].persistence.size Size of data volume
1448 ## @param volume.dataVolumes[0].persistence.existingClaim The name of an existing PVC to use for persistence
1451 ## @param volume.dataVolumes[0].persistence.selector Selector to match an existing Persistent Volume for data PVC
1452 ## If set, the PVC can't have a PV dynamically provisioned for it
1459 ## @param volume.dataVolumes[0].persistence.dataSource Custom PVC data source
1462 ## Enable Volume logs persistence using Persistent Volume Claims
1463 ## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
1466 ## @param volume.logPersistence.enabled Enable logs persistence on Volume Server using Persistent Volume Claims
1469 ## @param volume.logPersistence.mountPath Path to mount the volume at.
1472 ## @param volume.logPersistence.subPath The subdirectory of the volume to mount to, useful in dev environments and one PV for multiple services
1475 ## @param volume.logPersistence.storageClass Storage class of backing PVC
1476 ## If defined, storageClassName: <storageClass>
1477 ## If set to "-", storageClassName: "", which disables dynamic provisioning
1478 ## If undefined (the default) or set to null, no storageClassName spec is
1479 ## set, choosing the default provisioner. (gp2 on AWS, standard on
1480 ## GKE, AWS & OpenStack)
1483 ## @param volume.logPersistence.annotations Persistent Volume Claim annotations
1486 ## @param volume.logPersistence.accessModes Persistent Volume Access Modes
1490 ## @param volume.logPersistence.size Size of logs volume
1493 ## @param volume.logPersistence.existingClaim The name of an existing PVC to use for logs persistence
1496 ## @param volume.logPersistence.selector Selector to match an existing Persistent Volume for logs PVC
1497 ## If set, the PVC can't have a PV dynamically provisioned for it
1504 ## @param volume.logPersistence.dataSource Custom PVC data source
1507 ## persistentVolumeClaimRetentionPolicy
1508 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention
1509 ## @param volume.persistentVolumeClaimRetentionPolicy.enabled Controls if and how PVCs are deleted during the lifecycle of the Volume Server StatefulSet
1510 ## @param volume.persistentVolumeClaimRetentionPolicy.whenScaled Volume retention behavior when the replica count of the StatefulSet is reduced
1511 ## @param volume.persistentVolumeClaimRetentionPolicy.whenDeleted Volume retention behavior that applies when the StatefulSet is deleted
1513 persistentVolumeClaimRetentionPolicy:
1517 ## @section Volume Server Metrics Parameters
1520 ## @param volume.metrics.enabled Enable the export of Prometheus metrics
1523 ## Metrics service properties
1526 ## @param volume.metrics.service.port Metrics service port
1529 ## @param volume.metrics.service.annotations Annotations for the metrics service.
1532 ## Prometheus Operator ServiceMonitor configuration
1535 ## @param volume.metrics.serviceMonitor.enabled if `true`, creates a Prometheus Operator ServiceMonitor (also requires `metrics.enabled` to be `true`)
1538 ## @param volume.metrics.serviceMonitor.namespace Namespace in which Prometheus is running
1541 ## @param volume.metrics.serviceMonitor.annotations Additional custom annotations for the ServiceMonitor
1544 ## @param volume.metrics.serviceMonitor.labels Extra labels for the ServiceMonitor
1547 ## @param volume.metrics.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in Prometheus
1550 ## @param volume.metrics.serviceMonitor.honorLabels honorLabels chooses the metric's labels on collisions with target labels
1553 ## @param volume.metrics.serviceMonitor.interval Interval at which metrics should be scraped.
1554 ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
1559 ## @param volume.metrics.serviceMonitor.scrapeTimeout Timeout after which the scrape is ended
1560 ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
1562 ## scrapeTimeout: 10s
1565 ## @param volume.metrics.serviceMonitor.metricRelabelings Specify additional relabeling of metrics
1567 metricRelabelings: []
1568 ## @param volume.metrics.serviceMonitor.relabelings Specify general relabeling
1571 ## @param volume.metrics.serviceMonitor.selector Prometheus instance selector labels
1573 ## prometheus: my-prometheus
1576## @section Filer Server Parameters
1579 ## @param filer.enabled Enable Filer Server deployment
1582 ## @param filer.replicaCount Number of Filer Server replicas to deploy
1585 ## @param filer.containerPorts.http Filer Server HTTP container port
1586 ## @param filer.containerPorts.grpc Filer Server GRPC container port
1587 ## @param filer.containerPorts.metrics Filer Server metrics container port
1593 ## @param filer.extraContainerPorts Optionally specify extra list of additional ports for Filer Server containers
1595 ## extraContainerPorts:
1596 ## - name: myservice
1597 ## containerPort: 9090
1599 extraContainerPorts: []
1600 ## Configure extra options for Filer Server containers' liveness and readiness probes
1601 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
1602 ## @param filer.livenessProbe.enabled Enable livenessProbe on Filer Server containers
1603 ## @param filer.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
1604 ## @param filer.livenessProbe.periodSeconds Period seconds for livenessProbe
1605 ## @param filer.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
1606 ## @param filer.livenessProbe.failureThreshold Failure threshold for livenessProbe
1607 ## @param filer.livenessProbe.successThreshold Success threshold for livenessProbe
1611 initialDelaySeconds: 30
1616 ## @param filer.readinessProbe.enabled Enable readinessProbe on Filer Server containers
1617 ## @param filer.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
1618 ## @param filer.readinessProbe.periodSeconds Period seconds for readinessProbe
1619 ## @param filer.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
1620 ## @param filer.readinessProbe.failureThreshold Failure threshold for readinessProbe
1621 ## @param filer.readinessProbe.successThreshold Success threshold for readinessProbe
1625 initialDelaySeconds: 30
1630 ## @param filer.startupProbe.enabled Enable startupProbe on Filer Server containers
1631 ## @param filer.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
1632 ## @param filer.startupProbe.periodSeconds Period seconds for startupProbe
1633 ## @param filer.startupProbe.timeoutSeconds Timeout seconds for startupProbe
1634 ## @param filer.startupProbe.failureThreshold Failure threshold for startupProbe
1635 ## @param filer.startupProbe.successThreshold Success threshold for startupProbe
1639 initialDelaySeconds: 5
1642 failureThreshold: 15
1644 ## @param filer.customLivenessProbe Custom livenessProbe that overrides the default one
1646 customLivenessProbe: {}
1647 ## @param filer.customReadinessProbe Custom readinessProbe that overrides the default one
1649 customReadinessProbe: {}
1650 ## @param filer.customStartupProbe Custom startupProbe that overrides the default one
1652 customStartupProbe: {}
1653 ## Filer Server resource requests and limits
1654 ## ref: http://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
1655 ## @param filer.resourcesPreset Set Filer Server container resources according to one common preset (allowed values: none, nano, small, medium, large, xlarge, 2xlarge). This is ignored if filer.resources is set (filer.resources is recommended for production).
1657 resourcesPreset: "nano"
1658 ## @param filer.resources Set Filer Server container requests and limits for different resources like CPU or memory (essential for production workloads)
1669 ## Configure Pods Security Context
1670 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
1671 ## @param filer.podSecurityContext.enabled Enable Filer Server pods' Security Context
1672 ## @param filer.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy for Filer Server pods
1673 ## @param filer.podSecurityContext.sysctls Set kernel settings using the sysctl interface for Filer Server pods
1674 ## @param filer.podSecurityContext.supplementalGroups Set filesystem extra groups for Filer Server pods
1675 ## @param filer.podSecurityContext.fsGroup Set fsGroup in Filer Server pods' Security Context
1679 fsGroupChangePolicy: Always
1681 supplementalGroups: []
1683 ## Configure Container Security Context
1684 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
1685 ## @param filer.containerSecurityContext.enabled Enabled Filer Server container' Security Context
1686 ## @param filer.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in Filer Server container
1687 ## @param filer.containerSecurityContext.runAsUser Set runAsUser in Filer Server container' Security Context
1688 ## @param filer.containerSecurityContext.runAsGroup Set runAsGroup in Filer Server container' Security Context
1689 ## @param filer.containerSecurityContext.runAsNonRoot Set runAsNonRoot in Filer Server container' Security Context
1690 ## @param filer.containerSecurityContext.readOnlyRootFilesystem Set readOnlyRootFilesystem in Filer Server container' Security Context
1691 ## @param filer.containerSecurityContext.privileged Set privileged in Filer Server container' Security Context
1692 ## @param filer.containerSecurityContext.allowPrivilegeEscalation Set allowPrivilegeEscalation in Filer Server container' Security Context
1693 ## @param filer.containerSecurityContext.capabilities.drop List of capabilities to be dropped in Filer Server container
1694 ## @param filer.containerSecurityContext.seccompProfile.type Set seccomp profile in Filer Server container
1696 containerSecurityContext:
1702 readOnlyRootFilesystem: true
1704 allowPrivilegeEscalation: false
1708 type: "RuntimeDefault"
1709 ## @param filer.logLevel Filer Server log level (0, 1, 2, 3, or 4)
1712 ## @param filer.bindAddress Filer Server bind address
1714 bindAddress: 0.0.0.0
1715 ## @param filer.config Filer Server configuration
1716 ## Specify content for filer.toml
1721 ## @param filer.existingConfigmap The name of an existing ConfigMap with your custom configuration for Filer Server
1723 existingConfigmap: ""
1724 ## @param filer.notificationConfig Filer Server notification configuration
1725 ## Specify content for custom notification.toml
1727 notificationConfig: ""
1728 ## @param filer.existingNotificationConfigmap The name of an existing ConfigMap with your custom notification configuration for Filer Server
1730 existingNotificationConfigmap: ""
1731 ## @param filer.command Override default Filer Server container command (useful when using custom images)
1734 ## @param filer.args Override default Filer Server container args (useful when using custom images)
1737 ## @param filer.automountServiceAccountToken Mount Service Account token in Filer Server pods
1739 automountServiceAccountToken: false
1740 ## @param filer.hostAliases Filer Server pods host aliases
1741 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
1744 ## @param filer.statefulsetAnnotations Annotations for Filer Server StatefulSet
1745 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
1747 statefulsetAnnotations: {}
1748 ## @param filer.podLabels Extra labels for Filer Server pods
1749 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
1752 ## @param filer.podAnnotations Annotations for Filer Server pods
1753 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
1756 ## @param filer.podAffinityPreset Pod affinity preset. Ignored if `filer.affinity` is set. Allowed values: `soft` or `hard`
1757 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
1759 podAffinityPreset: ""
1760 ## @param filer.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `filer.affinity` is set. Allowed values: `soft` or `hard`
1761 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
1763 podAntiAffinityPreset: soft
1764 ## Node filer.affinity preset
1765 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
1768 ## @param filer.nodeAffinityPreset.type Node affinity preset type. Ignored if `filer.affinity` is set. Allowed values: `soft` or `hard`
1771 ## @param filer.nodeAffinityPreset.key Node label key to match. Ignored if `filer.affinity` is set
1774 ## @param filer.nodeAffinityPreset.values Node label values to match. Ignored if `filer.affinity` is set
1781 ## @param filer.affinity Affinity for Filer Server pods assignment
1782 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
1783 ## NOTE: `filer.podAffinityPreset`, `filer.podAntiAffinityPreset`, and `filer.nodeAffinityPreset` will be ignored when it's set
1786 ## @param filer.nodeSelector Node labels for Filer Server pods assignment
1787 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
1790 ## @param filer.tolerations Tolerations for Filer Server pods assignment
1791 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
1794 ## @param filer.updateStrategy.type Filer Server StatefulSet strategy type
1795 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
1798 ## Can be set to RollingUpdate or OnDelete
1801 ## @param filer.podManagementPolicy Pod management policy for Filer Server StatefulSet
1802 ## Ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
1804 podManagementPolicy: Parallel
1805 ## @param filer.priorityClassName Filer Server pods' priorityClassName
1807 priorityClassName: ""
1808 ## @param filer.topologySpreadConstraints Topology Spread Constraints for Filer Server pod assignment spread across your cluster among failure-domains
1809 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
1811 topologySpreadConstraints: []
1812 ## @param filer.schedulerName Name of the k8s scheduler (other than default) for Filer Server pods
1813 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
1816 ## @param filer.terminationGracePeriodSeconds Seconds Filer Server pods need to terminate gracefully
1817 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
1819 terminationGracePeriodSeconds: ""
1820 ## @param filer.lifecycleHooks for Filer Server containers to automate configuration before or after startup
1823 ## @param filer.extraEnvVars Array with extra environment variables to add to Filer Server containers
1830 ## @param filer.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for Filer Server containers
1833 ## @param filer.extraEnvVarsSecret Name of existing Secret containing extra env vars for Filer Server containers
1835 extraEnvVarsSecret: ""
1836 ## @param filer.extraVolumes Optionally specify extra list of additional volumes for the Filer Server pods
1839 ## @param filer.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Filer Server containers
1841 extraVolumeMounts: []
1842 ## @param filer.sidecars Add additional sidecar containers to the Filer Server pods
1845 ## - name: your-image-name
1846 ## image: your-image
1847 ## imagePullPolicy: Always
1850 ## containerPort: 1234
1853 ## @param filer.initContainers Add additional init containers to the Filer Server pods
1854 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
1857 ## - name: your-image-name
1858 ## image: your-image
1859 ## imagePullPolicy: Always
1860 ## command: ['sh', '-c', 'echo "hello world"']
1863 ## Pod Disruption Budget configuration
1864 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb
1865 ## @param filer.pdb.create Enable/disable a Pod Disruption Budget creation
1866 ## @param filer.pdb.minAvailable Minimum number/percentage of pods that should remain scheduled
1867 ## @param filer.pdb.maxUnavailable Maximum number/percentage of pods that may be made unavailable. Defaults to `1` if both `filer.pdb.minAvailable` and `filer.pdb.maxUnavailable` are empty.
1873 ## Autoscaling configuration
1874 ## ref: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/
1875 ## @param filer.autoscaling.enabled Enable autoscaling for filer
1876 ## @param filer.autoscaling.minReplicas Minimum number of filer replicas
1877 ## @param filer.autoscaling.maxReplicas Maximum number of filer replicas
1878 ## @param filer.autoscaling.targetCPU Target CPU utilization percentage
1879 ## @param filer.autoscaling.targetMemory Target Memory utilization percentage
1887 ## @section Filer Server Traffic Exposure Parameters
1890 ## Filer Server service parameters
1893 ## @param filer.service.type Filer Server service type
1896 ## @param filer.service.ports.http Filer Server service HTTP port
1897 ## @param filer.service.ports.grpc Filer Server service GRPC port
1902 ## Node ports to expose
1903 ## @param filer.service.nodePorts.http Node port for HTTP
1904 ## @param filer.service.nodePorts.grpc Node port for GRPC
1905 ## NOTE: choose port between <30000-32767>
1910 ## @param filer.service.clusterIP Filer Server service Cluster IP
1915 ## @param filer.service.loadBalancerIP Filer Server service Load Balancer IP
1916 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
1919 ## @param filer.service.loadBalancerSourceRanges Filer Server service Load Balancer sources
1920 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
1922 ## loadBalancerSourceRanges:
1925 loadBalancerSourceRanges: []
1926 ## @param filer.service.externalTrafficPolicy Filer Server service external traffic policy
1927 ## ref http://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
1929 externalTrafficPolicy: Cluster
1930 ## @param filer.service.annotations Additional custom annotations for Filer Server service
1933 ## @param filer.service.extraPorts Extra ports to expose in Filer Server service (normally used with the `sidecars` value)
1936 ## @param filer.service.sessionAffinity Control where client requests go, to the same pod or round-robin
1937 ## Values: ClientIP or None
1938 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/
1940 sessionAffinity: None
1941 ## @param filer.service.sessionAffinityConfig Additional settings for the sessionAffinity
1942 ## sessionAffinityConfig:
1944 ## timeoutSeconds: 300
1946 sessionAffinityConfig: {}
1947 ## Headless service properties
1950 ## @param filer.service.headless.annotations Annotations for the headless service.
1953 ## Network Policies for Filer Server
1954 ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
1957 ## @param filer.networkPolicy.enabled Specifies whether a NetworkPolicy should be created for Filer Server
1960 ## @param filer.networkPolicy.allowExternal Don't require server label for connections
1961 ## The Policy model to apply. When set to false, only pods with the correct
1962 ## server label will have network access to the ports server is listening
1963 ## on. When true, server will accept connections from any source
1964 ## (with the correct destination port).
1967 ## @param filer.networkPolicy.allowExternalEgress Allow the Filer Server pods to access any range of port and all destinations.
1969 allowExternalEgress: true
1970 ## @param filer.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
1980 ## - matchExpressions:
1986 ## @param filer.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy (ignored if allowExternalEgress=true)
1996 ## - matchExpressions:
2003 ## @param filer.networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
2004 ## @param filer.networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
2006 ingressNSMatchLabels: {}
2007 ingressNSPodMatchLabels: {}
2008 ## Filer Server ingress parameters
2009 ## ref: http://kubernetes.io/docs/concepts/services-networking/ingress/
2012 ## @param filer.ingress.enabled Enable ingress record generation for Filer Server
2015 ## @param filer.ingress.pathType Ingress path type
2017 pathType: ImplementationSpecific
2018 ## @param filer.ingress.apiVersion Force Ingress API version (automatically detected if not set)
2021 ## @param filer.ingress.hostname Default host for the ingress record
2023 hostname: filer.seaweedfs.local
2024 ## @param filer.ingress.ingressClassName IngressClass that will be be used to implement the Ingress (Kubernetes 1.18+)
2025 ## This is supported in Kubernetes 1.18+ and required if you have more than one IngressClass marked as the default for your cluster .
2026 ## ref: https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/
2028 ingressClassName: ""
2029 ## @param filer.ingress.path Default path for the ingress record
2030 ## NOTE: You may need to set this to '/*' in order to use this with ALB ingress controllers
2033 ## @param filer.ingress.annotations Additional annotations for the Ingress resource. To enable certificate autogeneration, place here your cert-manager annotations.
2034 ## Use this parameter to set the required annotations for cert-manager, see
2035 ## ref: https://cert-manager.io/docs/usage/ingress/#supported-annotations
2038 ## kubernetes.io/ingress.class: nginx
2039 ## cert-manager.io/cluster-issuer: cluster-issuer-name
2042 ## @param filer.ingress.tls Enable TLS configuration for the host defined at `ingress.hostname` parameter
2043 ## TLS certificates will be retrieved from a TLS secret with name: `{{- printf "%s-tls" .Values.ingress.hostname }}`
2045 ## - Use the `ingress.secrets` parameter to create this TLS secret
2046 ## - Rely on cert-manager to create it by setting the corresponding annotations
2047 ## - Rely on Helm to create self-signed certificates by setting `ingress.selfSigned=true`
2050 ## @param filer.ingress.selfSigned Create a TLS secret for this ingress record using self-signed certificates generated by Helm
2053 ## @param filer.ingress.extraHosts An array with additional hostname(s) to be covered with the ingress record
2056 ## - name: filer.seaweedfs.local
2060 ## @param filer.ingress.extraPaths An array with additional arbitrary paths that may need to be added to the ingress under the main host
2065 ## serviceName: ssl-redirect
2066 ## servicePort: use-annotation
2069 ## @param filer.ingress.extraTls TLS configuration for additional hostname(s) to be covered with this ingress record
2070 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls
2074 ## - filer.seaweedfs.local
2075 ## secretName: filer.seaweedfs.local-tls
2078 ## @param filer.ingress.secrets Custom TLS certificates as secrets
2079 ## NOTE: 'key' and 'certificate' are expected in PEM format
2080 ## NOTE: 'name' should line up with a 'secretName' set further up
2081 ## 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
2082 ## If it is not set and you're NOT using cert-manager either, self-signed certificates will be created valid for 365 days
2083 ## It is also possible to create and manage the certificates outside of this helm chart
2084 ## Please see README.md for more information
2087 ## - name: filer.seaweedfs.local-tls
2089 ## -----BEGIN RSA PRIVATE KEY-----
2091 ## -----END RSA PRIVATE KEY-----
2093 ## -----BEGIN CERTIFICATE-----
2095 ## -----END CERTIFICATE-----
2098 ## @param filer.ingress.extraRules Additional rules to be covered with this ingress record
2099 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-rules
2102 ## - host: example.local
2107 ## name: example-svc
2112 ## @section Filer Server Persistence Parameters
2115 ## Enable Filer logs persistence using Persistent Volume Claims
2116 ## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
2119 ## @param filer.logPersistence.enabled Enable logs persistence on Filer Server using Persistent Volume Claims
2122 ## @param filer.logPersistence.mountPath Path to mount the volume at.
2125 ## @param filer.logPersistence.subPath The subdirectory of the volume to mount to, useful in dev environments and one PV for multiple services
2128 ## @param filer.logPersistence.storageClass Storage class of backing PVC
2129 ## If defined, storageClassName: <storageClass>
2130 ## If set to "-", storageClassName: "", which disables dynamic provisioning
2131 ## If undefined (the default) or set to null, no storageClassName spec is
2132 ## set, choosing the default provisioner. (gp2 on AWS, standard on
2133 ## GKE, AWS & OpenStack)
2136 ## @param filer.logPersistence.annotations Persistent Volume Claim annotations
2139 ## @param filer.logPersistence.accessModes Persistent Volume Access Modes
2143 ## @param filer.logPersistence.size Size of logs volume
2146 ## @param filer.logPersistence.existingClaim The name of an existing PVC to use for logs persistence
2149 ## @param filer.logPersistence.selector Selector to match an existing Persistent Volume for logs PVC
2150 ## If set, the PVC can't have a PV dynamically provisioned for it
2157 ## @param filer.logPersistence.dataSource Custom PVC data source
2160 ## persistentVolumeClaimRetentionPolicy
2161 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention
2162 ## @param filer.persistentVolumeClaimRetentionPolicy.enabled Controls if and how PVCs are deleted during the lifecycle of the Master Server StatefulSet
2163 ## @param filer.persistentVolumeClaimRetentionPolicy.whenScaled Volume retention behavior when the replica count of the StatefulSet is reduced
2164 ## @param filer.persistentVolumeClaimRetentionPolicy.whenDeleted Volume retention behavior that applies when the StatefulSet is deleted
2166 persistentVolumeClaimRetentionPolicy:
2170 ## @section Filer Server Metrics Parameters
2173 ## @param filer.metrics.enabled Enable the export of Prometheus metrics
2176 ## Metrics service properties
2179 ## @param filer.metrics.service.port Metrics service port
2182 ## @param filer.metrics.service.annotations Annotations for the metrics service.
2185 ## Prometheus Operator ServiceMonitor configuration
2188 ## @param filer.metrics.serviceMonitor.enabled if `true`, creates a Prometheus Operator ServiceMonitor (also requires `metrics.enabled` to be `true`)
2191 ## @param filer.metrics.serviceMonitor.namespace Namespace in which Prometheus is running
2194 ## @param filer.metrics.serviceMonitor.annotations Additional custom annotations for the ServiceMonitor
2197 ## @param filer.metrics.serviceMonitor.labels Extra labels for the ServiceMonitor
2200 ## @param filer.metrics.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in Prometheus
2203 ## @param filer.metrics.serviceMonitor.honorLabels honorLabels chooses the metric's labels on collisions with target labels
2206 ## @param filer.metrics.serviceMonitor.interval Interval at which metrics should be scraped.
2207 ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
2212 ## @param filer.metrics.serviceMonitor.scrapeTimeout Timeout after which the scrape is ended
2213 ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
2215 ## scrapeTimeout: 10s
2218 ## @param filer.metrics.serviceMonitor.metricRelabelings Specify additional relabeling of metrics
2220 metricRelabelings: []
2221 ## @param filer.metrics.serviceMonitor.relabelings Specify general relabeling
2224 ## @param filer.metrics.serviceMonitor.selector Prometheus instance selector labels
2226 ## prometheus: my-prometheus
2229## @section Amazon S3 API Parameters
2232 ## @param s3.enabled Enable Amazon S3 API deployment
2235 ## @param s3.replicaCount Number of Amazon S3 API replicas to deploy
2238 ## @param s3.containerPorts.http Amazon S3 API HTTP container port
2239 ## @param s3.containerPorts.grpc Amazon S3 API GRPC container port
2240 ## @param s3.containerPorts.metrics Amazon S3 API metrics container port
2246 ## @param s3.extraContainerPorts Optionally specify extra list of additional ports for Amazon S3 API containers
2248 ## extraContainerPorts:
2249 ## - name: myservice
2250 ## containerPort: 9090
2252 extraContainerPorts: []
2253 ## Configure extra options for Amazon S3 API containers' liveness and readiness probes
2254 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
2255 ## @param s3.livenessProbe.enabled Enable livenessProbe on Amazon S3 API containers
2256 ## @param s3.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
2257 ## @param s3.livenessProbe.periodSeconds Period seconds for livenessProbe
2258 ## @param s3.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
2259 ## @param s3.livenessProbe.failureThreshold Failure threshold for livenessProbe
2260 ## @param s3.livenessProbe.successThreshold Success threshold for livenessProbe
2264 initialDelaySeconds: 30
2269 ## @param s3.readinessProbe.enabled Enable readinessProbe on Amazon S3 API containers
2270 ## @param s3.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
2271 ## @param s3.readinessProbe.periodSeconds Period seconds for readinessProbe
2272 ## @param s3.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
2273 ## @param s3.readinessProbe.failureThreshold Failure threshold for readinessProbe
2274 ## @param s3.readinessProbe.successThreshold Success threshold for readinessProbe
2278 initialDelaySeconds: 30
2283 ## @param s3.startupProbe.enabled Enable startupProbe on Amazon S3 API containers
2284 ## @param s3.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
2285 ## @param s3.startupProbe.periodSeconds Period seconds for startupProbe
2286 ## @param s3.startupProbe.timeoutSeconds Timeout seconds for startupProbe
2287 ## @param s3.startupProbe.failureThreshold Failure threshold for startupProbe
2288 ## @param s3.startupProbe.successThreshold Success threshold for startupProbe
2292 initialDelaySeconds: 5
2295 failureThreshold: 15
2297 ## @param s3.customLivenessProbe Custom livenessProbe that overrides the default one
2299 customLivenessProbe: {}
2300 ## @param s3.customReadinessProbe Custom readinessProbe that overrides the default one
2302 customReadinessProbe: {}
2303 ## @param s3.customStartupProbe Custom startupProbe that overrides the default one
2305 customStartupProbe: {}
2306 ## Amazon S3 API resource requests and limits
2307 ## ref: http://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
2308 ## @param s3.resourcesPreset Set Amazon S3 API container resources according to one common preset (allowed values: none, nano, small, medium, large, xlarge, 2xlarge). This is ignored if s3.resources is set (s3.resources is recommended for production).
2310 resourcesPreset: "nano"
2311 ## @param s3.resources Set Amazon S3 API container requests and limits for different resources like CPU or memory (essential for production workloads)
2322 ## Configure Pods Security Context
2323 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
2324 ## @param s3.podSecurityContext.enabled Enable Amazon S3 API pods' Security Context
2325 ## @param s3.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy for Amazon S3 API pods
2326 ## @param s3.podSecurityContext.sysctls Set kernel settings using the sysctl interface for Amazon S3 API pods
2327 ## @param s3.podSecurityContext.supplementalGroups Set filesystem extra groups for Amazon S3 API pods
2328 ## @param s3.podSecurityContext.fsGroup Set fsGroup in Amazon S3 API pods' Security Context
2332 fsGroupChangePolicy: Always
2334 supplementalGroups: []
2336 ## Configure Container Security Context
2337 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
2338 ## @param s3.containerSecurityContext.enabled Enabled Amazon S3 API container' Security Context
2339 ## @param s3.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in Amazon S3 API container
2340 ## @param s3.containerSecurityContext.runAsUser Set runAsUser in Amazon S3 API container' Security Context
2341 ## @param s3.containerSecurityContext.runAsGroup Set runAsGroup in Amazon S3 API container' Security Context
2342 ## @param s3.containerSecurityContext.runAsNonRoot Set runAsNonRoot in Amazon S3 API container' Security Context
2343 ## @param s3.containerSecurityContext.readOnlyRootFilesystem Set readOnlyRootFilesystem in Amazon S3 API container' Security Context
2344 ## @param s3.containerSecurityContext.privileged Set privileged in Amazon S3 API container' Security Context
2345 ## @param s3.containerSecurityContext.allowPrivilegeEscalation Set allowPrivilegeEscalation in Amazon S3 API container' Security Context
2346 ## @param s3.containerSecurityContext.capabilities.drop List of capabilities to be dropped in Amazon S3 API container
2347 ## @param s3.containerSecurityContext.seccompProfile.type Set seccomp profile in Amazon S3 API container
2349 containerSecurityContext:
2355 readOnlyRootFilesystem: true
2357 allowPrivilegeEscalation: false
2361 type: "RuntimeDefault"
2362 ## @param s3.logLevel Amazon S3 API log level (0, 1, 2, 3, or 4)
2365 ## @param s3.bindAddress Amazon S3 API bind address
2367 bindAddress: 0.0.0.0
2368 ## @param s3.allowEmptyFolder Allow empty folders in Amazon S3 API
2369 allowEmptyFolder: true
2370 ## S3 Authentication
2371 ## ref: https://github.com/seaweedfs/seaweedfs/wiki/Amazon-S3-API#s3-authentication
2372 ## @param s3.auth.enabled Enable Amazon S3 API authentication
2373 ## @param s3.auth.existingSecret Existing secret with Amazon S3 API authentication configuration
2374 ## @param s3.auth.existingSecretConfigKey Key of the above existing secret with S3 API authentication configuration, defaults to `config.json`
2375 ## @param s3.auth.adminAccessKeyId Amazon S3 API access key with admin privileges. Ignored if `s3.auth.existingSecret` is set
2376 ## @param s3.auth.adminSecretAccessKey Amazon S3 API secret key with admin privileges. Ignored if `s3.auth.existingSecret` is set
2377 ## @param s3.auth.readAccessKeyId Amazon S3 API read access key with read-only privileges. Ignored if `s3.auth.existingSecret` is set
2378 ## @param s3.auth.readSecretAccessKey Amazon S3 API read secret key with read-only privileges. Ignored if `s3.auth.existingSecret` is set
2383 existingSecretConfigKey: ""
2384 adminAccessKeyId: ""
2385 adminSecretAccessKey: ""
2387 readSecretAccessKey: ""
2388 ## @param s3.command Override default Amazon S3 API container command (useful when using custom images)
2391 ## @param s3.args Override default Amazon S3 API container args (useful when using custom images)
2394 ## @param s3.automountServiceAccountToken Mount Service Account token in Amazon S3 API pods
2396 automountServiceAccountToken: false
2397 ## @param s3.hostAliases Amazon S3 API pods host aliases
2398 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
2401 ## @param s3.statefulsetAnnotations Annotations for Amazon S3 API statefulset
2402 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
2404 statefulsetAnnotations: {}
2405 ## @param s3.podLabels Extra labels for Amazon S3 API pods
2406 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
2409 ## @param s3.podAnnotations Annotations for Amazon S3 API pods
2410 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
2413 ## @param s3.podAffinityPreset Pod affinity preset. Ignored if `s3.affinity` is set. Allowed values: `soft` or `hard`
2414 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
2416 podAffinityPreset: ""
2417 ## @param s3.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `s3.affinity` is set. Allowed values: `soft` or `hard`
2418 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
2420 podAntiAffinityPreset: soft
2421 ## Node s3.affinity preset
2422 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
2425 ## @param s3.nodeAffinityPreset.type Node affinity preset type. Ignored if `s3.affinity` is set. Allowed values: `soft` or `hard`
2428 ## @param s3.nodeAffinityPreset.key Node label key to match. Ignored if `s3.affinity` is set
2431 ## @param s3.nodeAffinityPreset.values Node label values to match. Ignored if `s3.affinity` is set
2438 ## @param s3.affinity Affinity for Amazon S3 API pods assignment
2439 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
2440 ## NOTE: `s3.podAffinityPreset`, `s3.podAntiAffinityPreset`, and `s3.nodeAffinityPreset` will be ignored when it's set
2443 ## @param s3.nodeSelector Node labels for Amazon S3 API pods assignment
2444 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
2447 ## @param s3.tolerations Tolerations for Amazon S3 API pods assignment
2448 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
2451 ## @param s3.updateStrategy.type Amazon S3 API deployment strategy type
2452 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
2455 ## Can be set to RollingUpdate or Recreate
2458 ## @param s3.priorityClassName Amazon S3 API pods' priorityClassName
2460 priorityClassName: ""
2461 ## @param s3.topologySpreadConstraints Topology Spread Constraints for Amazon S3 API pod assignment spread across your cluster among failure-domains
2462 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
2464 topologySpreadConstraints: []
2465 ## @param s3.schedulerName Name of the k8s scheduler (other than default) for Amazon S3 API pods
2466 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
2469 ## @param s3.terminationGracePeriodSeconds Seconds Amazon S3 API pods need to terminate gracefully
2470 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
2472 terminationGracePeriodSeconds: ""
2473 ## @param s3.lifecycleHooks for Amazon S3 API containers to automate configuration before or after startup
2476 ## @param s3.extraEnvVars Array with extra environment variables to add to Amazon S3 API containers
2483 ## @param s3.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for Amazon S3 API containers
2486 ## @param s3.extraEnvVarsSecret Name of existing Secret containing extra env vars for Amazon S3 API containers
2488 extraEnvVarsSecret: ""
2489 ## @param s3.extraVolumes Optionally specify extra list of additional volumes for the Amazon S3 API pods
2492 ## @param s3.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Amazon S3 API containers
2494 extraVolumeMounts: []
2495 ## @param s3.sidecars Add additional sidecar containers to the Amazon S3 API pods
2498 ## - name: your-image-name
2499 ## image: your-image
2500 ## imagePullPolicy: Always
2503 ## containerPort: 1234
2506 ## @param s3.initContainers Add additional init containers to the Amazon S3 API pods
2507 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
2510 ## - name: your-image-name
2511 ## image: your-image
2512 ## imagePullPolicy: Always
2513 ## command: ['sh', '-c', 'echo "hello world"']
2516 ## Pod Disruption Budget configuration
2517 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb
2518 ## @param s3.pdb.create Enable/disable a Pod Disruption Budget creation
2519 ## @param s3.pdb.minAvailable Minimum number/percentage of pods that should remain scheduled
2520 ## @param s3.pdb.maxUnavailable Maximum number/percentage of pods that may be made unavailable. Defaults to `1` if both `s3.pdb.minAvailable` and `s3.pdb.maxUnavailable` are empty.
2526 ## Autoscaling configuration
2527 ## ref: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/
2528 ## @param s3.autoscaling.enabled Enable autoscaling for s3
2529 ## @param s3.autoscaling.minReplicas Minimum number of s3 replicas
2530 ## @param s3.autoscaling.maxReplicas Maximum number of s3 replicas
2531 ## @param s3.autoscaling.targetCPU Target CPU utilization percentage
2532 ## @param s3.autoscaling.targetMemory Target Memory utilization percentage
2540 ## @section Amazon S3 API Traffic Exposure Parameters
2543 ## Amazon S3 API service parameters
2546 ## @param s3.service.type Amazon S3 API service type
2549 ## @param s3.service.ports.http Amazon S3 API service HTTP port
2550 ## @param s3.service.ports.grpc Amazon S3 API service GRPC port
2555 ## Node ports to expose
2556 ## @param s3.service.nodePorts.http Node port for HTTP
2557 ## @param s3.service.nodePorts.grpc Node port for GRPC
2558 ## NOTE: choose port between <30000-32767>
2563 ## @param s3.service.clusterIP Amazon S3 API service Cluster IP
2568 ## @param s3.service.loadBalancerIP Amazon S3 API service Load Balancer IP
2569 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
2572 ## @param s3.service.loadBalancerSourceRanges Amazon S3 API service Load Balancer sources
2573 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
2575 ## loadBalancerSourceRanges:
2578 loadBalancerSourceRanges: []
2579 ## @param s3.service.externalTrafficPolicy Amazon S3 API service external traffic policy
2580 ## ref http://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
2582 externalTrafficPolicy: Cluster
2583 ## @param s3.service.annotations Additional custom annotations for Amazon S3 API service
2586 ## @param s3.service.extraPorts Extra ports to expose in Amazon S3 API service (normally used with the `sidecars` value)
2589 ## @param s3.service.sessionAffinity Control where client requests go, to the same pod or round-robin
2590 ## Values: ClientIP or None
2591 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/
2593 sessionAffinity: None
2594 ## @param s3.service.sessionAffinityConfig Additional settings for the sessionAffinity
2595 ## sessionAffinityConfig:
2597 ## timeoutSeconds: 300
2599 sessionAffinityConfig: {}
2600 ## Headless service properties
2603 ## @param s3.service.headless.annotations Annotations for the headless service.
2606 ## Network Policies for Amazon S3 API
2607 ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
2610 ## @param s3.networkPolicy.enabled Specifies whether a NetworkPolicy should be created for Amazon S3 API
2613 ## @param s3.networkPolicy.allowExternal Don't require server label for connections
2614 ## The Policy model to apply. When set to false, only pods with the correct
2615 ## server label will have network access to the ports server is listening
2616 ## on. When true, server will accept connections from any source
2617 ## (with the correct destination port).
2620 ## @param s3.networkPolicy.allowExternalEgress Allow the Amazon S3 API pods to access any range of port and all destinations.
2622 allowExternalEgress: true
2623 ## @param s3.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
2633 ## - matchExpressions:
2639 ## @param s3.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy (ignored if allowExternalEgress=true)
2649 ## - matchExpressions:
2656 ## @param s3.networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
2657 ## @param s3.networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
2659 ingressNSMatchLabels: {}
2660 ingressNSPodMatchLabels: {}
2661 ## Amazon S3 API ingress parameters
2662 ## ref: http://kubernetes.io/docs/concepts/services-networking/ingress/
2665 ## @param s3.ingress.enabled Enable ingress record generation for Amazon S3 API
2668 ## @param s3.ingress.pathType Ingress path type
2670 pathType: ImplementationSpecific
2671 ## @param s3.ingress.apiVersion Force Ingress API version (automatically detected if not set)
2674 ## @param s3.ingress.hostname Default host for the ingress record
2676 hostname: s3.seaweedfs.local
2677 ## @param s3.ingress.ingressClassName IngressClass that will be be used to implement the Ingress (Kubernetes 1.18+)
2678 ## This is supported in Kubernetes 1.18+ and required if you have more than one IngressClass marked as the default for your cluster .
2679 ## ref: https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/
2681 ingressClassName: ""
2682 ## @param s3.ingress.path Default path for the ingress record
2683 ## NOTE: You may need to set this to '/*' in order to use this with ALB ingress controllers
2686 ## @param s3.ingress.annotations Additional annotations for the Ingress resource. To enable certificate autogeneration, place here your cert-manager annotations.
2687 ## Use this parameter to set the required annotations for cert-manager, see
2688 ## ref: https://cert-manager.io/docs/usage/ingress/#supported-annotations
2691 ## kubernetes.io/ingress.class: nginx
2692 ## cert-manager.io/cluster-issuer: cluster-issuer-name
2695 ## @param s3.ingress.tls Enable TLS configuration for the host defined at `ingress.hostname` parameter
2696 ## TLS certificates will be retrieved from a TLS secret with name: `{{- printf "%s-tls" .Values.ingress.hostname }}`
2698 ## - Use the `ingress.secrets` parameter to create this TLS secret
2699 ## - Rely on cert-manager to create it by setting the corresponding annotations
2700 ## - Rely on Helm to create self-signed certificates by setting `ingress.selfSigned=true`
2703 ## @param s3.ingress.selfSigned Create a TLS secret for this ingress record using self-signed certificates generated by Helm
2706 ## @param s3.ingress.extraHosts An array with additional hostname(s) to be covered with the ingress record
2709 ## - name: s3.seaweedfs.local
2713 ## @param s3.ingress.extraPaths An array with additional arbitrary paths that may need to be added to the ingress under the main host
2718 ## serviceName: ssl-redirect
2719 ## servicePort: use-annotation
2722 ## @param s3.ingress.extraTls TLS configuration for additional hostname(s) to be covered with this ingress record
2723 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls
2727 ## - s3.seaweedfs.local
2728 ## secretName: s3.seaweedfs.local-tls
2731 ## @param s3.ingress.secrets Custom TLS certificates as secrets
2732 ## NOTE: 'key' and 'certificate' are expected in PEM format
2733 ## NOTE: 'name' should line up with a 'secretName' set further up
2734 ## 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
2735 ## If it is not set and you're NOT using cert-manager either, self-signed certificates will be created valid for 365 days
2736 ## It is also possible to create and manage the certificates outside of this helm chart
2737 ## Please see README.md for more information
2740 ## - name: s3.seaweedfs.local-tls
2742 ## -----BEGIN RSA PRIVATE KEY-----
2744 ## -----END RSA PRIVATE KEY-----
2746 ## -----BEGIN CERTIFICATE-----
2748 ## -----END CERTIFICATE-----
2751 ## @param s3.ingress.extraRules Additional rules to be covered with this ingress record
2752 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-rules
2755 ## - host: example.local
2760 ## name: example-svc
2765 ## @section Amazon S3 API Metrics Parameters
2768 ## @param s3.metrics.enabled Enable the export of Prometheus metrics
2771 ## Metrics service properties
2774 ## @param s3.metrics.service.port Metrics service port
2777 ## @param s3.metrics.service.annotations Annotations for the metrics service.
2780 ## Prometheus Operator ServiceMonitor configuration
2783 ## @param s3.metrics.serviceMonitor.enabled if `true`, creates a Prometheus Operator ServiceMonitor (also requires `metrics.enabled` to be `true`)
2786 ## @param s3.metrics.serviceMonitor.namespace Namespace in which Prometheus is running
2789 ## @param s3.metrics.serviceMonitor.annotations Additional custom annotations for the ServiceMonitor
2792 ## @param s3.metrics.serviceMonitor.labels Extra labels for the ServiceMonitor
2795 ## @param s3.metrics.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in Prometheus
2798 ## @param s3.metrics.serviceMonitor.honorLabels honorLabels chooses the metric's labels on collisions with target labels
2801 ## @param s3.metrics.serviceMonitor.interval Interval at which metrics should be scraped.
2802 ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
2807 ## @param s3.metrics.serviceMonitor.scrapeTimeout Timeout after which the scrape is ended
2808 ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
2810 ## scrapeTimeout: 10s
2813 ## @param s3.metrics.serviceMonitor.metricRelabelings Specify additional relabeling of metrics
2815 metricRelabelings: []
2816 ## @param s3.metrics.serviceMonitor.relabelings Specify general relabeling
2819 ## @param s3.metrics.serviceMonitor.selector Prometheus instance selector labels
2821 ## prometheus: my-prometheus
2824## @section WebDAV Parameters
2827 ## @param webdav.enabled Enable WebDAV deployment
2830 ## @param webdav.replicaCount Number of WebDAV replicas to deploy
2833 ## @param webdav.containerPorts.http WebDAV HTTP container port (HTTPS if `webdav.tls.enabled` is `true`)
2837 ## @param webdav.extraContainerPorts Optionally specify extra list of additional ports for WebDAV containers
2839 ## extraContainerPorts:
2840 ## - name: myservice
2841 ## containerPort: 9090
2843 extraContainerPorts: []
2844 ## Configure extra options for WebDAV containers' liveness and readiness probes
2845 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
2846 ## @param webdav.livenessProbe.enabled Enable livenessProbe on WebDAV containers
2847 ## @param webdav.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
2848 ## @param webdav.livenessProbe.periodSeconds Period seconds for livenessProbe
2849 ## @param webdav.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
2850 ## @param webdav.livenessProbe.failureThreshold Failure threshold for livenessProbe
2851 ## @param webdav.livenessProbe.successThreshold Success threshold for livenessProbe
2855 initialDelaySeconds: 30
2860 ## @param webdav.readinessProbe.enabled Enable readinessProbe on WebDAV containers
2861 ## @param webdav.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
2862 ## @param webdav.readinessProbe.periodSeconds Period seconds for readinessProbe
2863 ## @param webdav.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
2864 ## @param webdav.readinessProbe.failureThreshold Failure threshold for readinessProbe
2865 ## @param webdav.readinessProbe.successThreshold Success threshold for readinessProbe
2869 initialDelaySeconds: 30
2874 ## @param webdav.startupProbe.enabled Enable startupProbe on WebDAV containers
2875 ## @param webdav.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
2876 ## @param webdav.startupProbe.periodSeconds Period seconds for startupProbe
2877 ## @param webdav.startupProbe.timeoutSeconds Timeout seconds for startupProbe
2878 ## @param webdav.startupProbe.failureThreshold Failure threshold for startupProbe
2879 ## @param webdav.startupProbe.successThreshold Success threshold for startupProbe
2883 initialDelaySeconds: 5
2886 failureThreshold: 15
2888 ## @param webdav.customLivenessProbe Custom livenessProbe that overrides the default one
2890 customLivenessProbe: {}
2891 ## @param webdav.customReadinessProbe Custom readinessProbe that overrides the default one
2893 customReadinessProbe: {}
2894 ## @param webdav.customStartupProbe Custom startupProbe that overrides the default one
2896 customStartupProbe: {}
2897 ## WebDAV resource requests and limits
2898 ## ref: http://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
2899 ## @param webdav.resourcesPreset Set WebDAV container resources according to one common preset (allowed values: none, nano, small, medium, large, xlarge, 2xlarge). This is ignored if webdav.resources is set (webdav.resources is recommended for production).
2901 resourcesPreset: "nano"
2902 ## @param webdav.resources Set WebDAV container requests and limits for different resources like CPU or memory (essential for production workloads)
2913 ## Configure Pods Security Context
2914 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
2915 ## @param webdav.podSecurityContext.enabled Enable WebDAV pods' Security Context
2916 ## @param webdav.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy for WebDAV pods
2917 ## @param webdav.podSecurityContext.sysctls Set kernel settings using the sysctl interface for WebDAV pods
2918 ## @param webdav.podSecurityContext.supplementalGroups Set filesystem extra groups for WebDAV pods
2919 ## @param webdav.podSecurityContext.fsGroup Set fsGroup in WebDAV pods' Security Context
2923 fsGroupChangePolicy: Always
2925 supplementalGroups: []
2927 ## Configure Container Security Context
2928 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
2929 ## @param webdav.containerSecurityContext.enabled Enabled WebDAV container' Security Context
2930 ## @param webdav.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in WebDAV container
2931 ## @param webdav.containerSecurityContext.runAsUser Set runAsUser in WebDAV container' Security Context
2932 ## @param webdav.containerSecurityContext.runAsGroup Set runAsGroup in WebDAV container' Security Context
2933 ## @param webdav.containerSecurityContext.runAsNonRoot Set runAsNonRoot in WebDAV container' Security Context
2934 ## @param webdav.containerSecurityContext.readOnlyRootFilesystem Set readOnlyRootFilesystem in WebDAV container' Security Context
2935 ## @param webdav.containerSecurityContext.privileged Set privileged in WebDAV container' Security Context
2936 ## @param webdav.containerSecurityContext.allowPrivilegeEscalation Set allowPrivilegeEscalation in WebDAV container' Security Context
2937 ## @param webdav.containerSecurityContext.capabilities.drop List of capabilities to be dropped in WebDAV container
2938 ## @param webdav.containerSecurityContext.seccompProfile.type Set seccomp profile in WebDAV container
2940 containerSecurityContext:
2946 readOnlyRootFilesystem: true
2948 allowPrivilegeEscalation: false
2952 type: "RuntimeDefault"
2953 ## @param webdav.logLevel WebDAV log level (0, 1, 2, 3, or 4)
2956 ## TLS configuration for WebDAV
2959 ## @param webdav.tls.enabled Enable TLS transport for WebDAV
2962 ## @param webdav.tls.autoGenerated.enabled Enable automatic generation of certificates for TLS
2963 ## @param webdav.tls.autoGenerated.engine Mechanism to generate the certificates (allowed values: helm, cert-manager)
2967 ## @param webdav.tls.autoGenerated.certManager.existingIssuer The name of an existing Issuer to use for generating the certificates (only for `cert-manager` engine)
2968 ## @param webdav.tls.autoGenerated.certManager.existingIssuerKind Existing Issuer kind, defaults to Issuer (only for `cert-manager` engine)
2969 ## @param webdav.tls.autoGenerated.certManager.keyAlgorithm Key algorithm for the certificates (only for `cert-manager` engine)
2970 ## @param webdav.tls.autoGenerated.certManager.keySize Key size for the certificates (only for `cert-manager` engine)
2971 ## @param webdav.tls.autoGenerated.certManager.duration Duration for the certificates (only for `cert-manager` engine)
2972 ## @param webdav.tls.autoGenerated.certManager.renewBefore Renewal period for the certificates (only for `cert-manager` engine)
2975 existingIssuerKind: ""
2980 ## @param webdav.tls.existingSecret The name of an existing Secret containing the certificates for TLS
2981 ## @param webdav.tls.cert Volume Server certificate for TLS. Ignored if `webdav.tls.existingSecret` is set
2982 ## @param webdav.tls.key Volume Server key for TLS. Ignored if `webdav.tls.existingSecret` is set
2987 ## @param webdav.command Override default WebDAV container command (useful when using custom images)
2990 ## @param webdav.args Override default WebDAV container args (useful when using custom images)
2993 ## @param webdav.automountServiceAccountToken Mount Service Account token in WebDAV pods
2995 automountServiceAccountToken: false
2996 ## @param webdav.hostAliases WebDAV pods host aliases
2997 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
3000 ## @param webdav.statefulsetAnnotations Annotations for WebDAV statefulset
3001 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
3003 statefulsetAnnotations: {}
3004 ## @param webdav.podLabels Extra labels for WebDAV pods
3005 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
3008 ## @param webdav.podAnnotations Annotations for WebDAV pods
3009 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
3012 ## @param webdav.podAffinityPreset Pod affinity preset. Ignored if `webdav.affinity` is set. Allowed values: `soft` or `hard`
3013 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
3015 podAffinityPreset: ""
3016 ## @param webdav.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `webdav.affinity` is set. Allowed values: `soft` or `hard`
3017 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
3019 podAntiAffinityPreset: soft
3020 ## Node webdav.affinity preset
3021 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
3024 ## @param webdav.nodeAffinityPreset.type Node affinity preset type. Ignored if `webdav.affinity` is set. Allowed values: `soft` or `hard`
3027 ## @param webdav.nodeAffinityPreset.key Node label key to match. Ignored if `webdav.affinity` is set
3030 ## @param webdav.nodeAffinityPreset.values Node label values to match. Ignored if `webdav.affinity` is set
3037 ## @param webdav.affinity Affinity for WebDAV pods assignment
3038 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
3039 ## NOTE: `webdav.podAffinityPreset`, `webdav.podAntiAffinityPreset`, and `webdav.nodeAffinityPreset` will be ignored when it's set
3042 ## @param webdav.nodeSelector Node labels for WebDAV pods assignment
3043 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
3046 ## @param webdav.tolerations Tolerations for WebDAV pods assignment
3047 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
3050 ## @param webdav.updateStrategy.type WebDAV deployment strategy type
3051 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
3054 ## Can be set to RollingUpdate or Recreate
3057 ## @param webdav.priorityClassName WebDAV pods' priorityClassName
3059 priorityClassName: ""
3060 ## @param webdav.topologySpreadConstraints Topology Spread Constraints for WebDAV pod assignment spread across your cluster among failure-domains
3061 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
3063 topologySpreadConstraints: []
3064 ## @param webdav.schedulerName Name of the k8s scheduler (other than default) for WebDAV pods
3065 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
3068 ## @param webdav.terminationGracePeriodSeconds Seconds WebDAV pods need to terminate gracefully
3069 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
3071 terminationGracePeriodSeconds: ""
3072 ## @param webdav.lifecycleHooks for WebDAV containers to automate configuration before or after startup
3075 ## @param webdav.extraEnvVars Array with extra environment variables to add to WebDAV containers
3082 ## @param webdav.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for WebDAV containers
3085 ## @param webdav.extraEnvVarsSecret Name of existing Secret containing extra env vars for WebDAV containers
3087 extraEnvVarsSecret: ""
3088 ## @param webdav.extraVolumes Optionally specify extra list of additional volumes for the WebDAV pods
3091 ## @param webdav.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the WebDAV containers
3093 extraVolumeMounts: []
3094 ## @param webdav.sidecars Add additional sidecar containers to the WebDAV pods
3097 ## - name: your-image-name
3098 ## image: your-image
3099 ## imagePullPolicy: Always
3102 ## containerPort: 1234
3105 ## @param webdav.initContainers Add additional init containers to the WebDAV pods
3106 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
3109 ## - name: your-image-name
3110 ## image: your-image
3111 ## imagePullPolicy: Always
3112 ## command: ['sh', '-c', 'echo "hello world"']
3115 ## Pod Disruption Budget configuration
3116 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb
3117 ## @param webdav.pdb.create Enable/disable a Pod Disruption Budget creation
3118 ## @param webdav.pdb.minAvailable Minimum number/percentage of pods that should remain scheduled
3119 ## @param webdav.pdb.maxUnavailable Maximum number/percentage of pods that may be made unavailable. Defaults to `1` if both `webdav.pdb.minAvailable` and `webdav.pdb.maxUnavailable` are empty.
3125 ## Autoscaling configuration
3126 ## ref: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/
3127 ## @param webdav.autoscaling.enabled Enable autoscaling for webdav
3128 ## @param webdav.autoscaling.minReplicas Minimum number of webdav replicas
3129 ## @param webdav.autoscaling.maxReplicas Maximum number of webdav replicas
3130 ## @param webdav.autoscaling.targetCPU Target CPU utilization percentage
3131 ## @param webdav.autoscaling.targetMemory Target Memory utilization percentage
3139 ## @section WebDAV Traffic Exposure Parameters
3142 ## WebDAV service parameters
3145 ## @param webdav.service.type WebDAV service type
3148 ## @param webdav.service.ports.http WebDAV service HTTP port (HTTPS if `webdav.tls.enabled` is `true`)
3152 ## Node ports to expose
3153 ## @param webdav.service.nodePorts.http Node port for HTTP (HTTPS if `webdav.tls.enabled` is `true`)
3154 ## NOTE: choose port between <30000-32767>
3158 ## @param webdav.service.clusterIP WebDAV service Cluster IP
3163 ## @param webdav.service.loadBalancerIP WebDAV service Load Balancer IP
3164 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
3167 ## @param webdav.service.loadBalancerSourceRanges WebDAV service Load Balancer sources
3168 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
3170 ## loadBalancerSourceRanges:
3173 loadBalancerSourceRanges: []
3174 ## @param webdav.service.externalTrafficPolicy WebDAV service external traffic policy
3175 ## ref http://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
3177 externalTrafficPolicy: Cluster
3178 ## @param webdav.service.annotations Additional custom annotations for WebDAV service
3181 ## @param webdav.service.extraPorts Extra ports to expose in WebDAV service (normally used with the `sidecars` value)
3184 ## @param webdav.service.sessionAffinity Control where client requests go, to the same pod or round-robin
3185 ## Values: ClientIP or None
3186 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/
3188 sessionAffinity: None
3189 ## @param webdav.service.sessionAffinityConfig Additional settings for the sessionAffinity
3190 ## sessionAffinityConfig:
3192 ## timeoutSeconds: 300
3194 sessionAffinityConfig: {}
3195 ## Headless service properties
3198 ## @param webdav.service.headless.annotations Annotations for the headless service.
3201 ## Network Policies for WebDAV
3202 ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
3205 ## @param webdav.networkPolicy.enabled Specifies whether a NetworkPolicy should be created for WebDAV
3208 ## @param webdav.networkPolicy.allowExternal Don't require server label for connections
3209 ## The Policy model to apply. When set to false, only pods with the correct
3210 ## server label will have network access to the ports server is listening
3211 ## on. When true, server will accept connections from any source
3212 ## (with the correct destination port).
3215 ## @param webdav.networkPolicy.allowExternalEgress Allow the WebDAV pods to access any range of port and all destinations.
3217 allowExternalEgress: true
3218 ## @param webdav.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
3228 ## - matchExpressions:
3234 ## @param webdav.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy (ignored if allowExternalEgress=true)
3244 ## - matchExpressions:
3251 ## @param webdav.networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
3252 ## @param webdav.networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
3254 ingressNSMatchLabels: {}
3255 ingressNSPodMatchLabels: {}
3256 ## WebDAV ingress parameters
3257 ## ref: http://kubernetes.io/docs/concepts/services-networking/ingress/
3260 ## @param webdav.ingress.enabled Enable ingress record generation for WebDAV
3263 ## @param webdav.ingress.pathType Ingress path type
3265 pathType: ImplementationSpecific
3266 ## @param webdav.ingress.apiVersion Force Ingress API version (automatically detected if not set)
3269 ## @param webdav.ingress.hostname Default host for the ingress record
3271 hostname: webdav.seaweedfs.local
3272 ## @param webdav.ingress.ingressClassName IngressClass that will be be used to implement the Ingress (Kubernetes 1.18+)
3273 ## This is supported in Kubernetes 1.18+ and required if you have more than one IngressClass marked as the default for your cluster .
3274 ## ref: https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/
3276 ingressClassName: ""
3277 ## @param webdav.ingress.path Default path for the ingress record
3278 ## NOTE: You may need to set this to '/*' in order to use this with ALB ingress controllers
3281 ## @param webdav.ingress.annotations Additional annotations for the Ingress resource. To enable certificate autogeneration, place here your cert-manager annotations.
3282 ## Use this parameter to set the required annotations for cert-manager, see
3283 ## ref: https://cert-manager.io/docs/usage/ingress/#supported-annotations
3286 ## kubernetes.io/ingress.class: nginx
3287 ## cert-manager.io/cluster-issuer: cluster-issuer-name
3290 ## @param webdav.ingress.tls Enable TLS configuration for the host defined at `ingress.hostname` parameter
3291 ## TLS certificates will be retrieved from a TLS secret with name: `{{- printf "%s-tls" .Values.ingress.hostname }}`
3293 ## - Use the `ingress.secrets` parameter to create this TLS secret
3294 ## - Rely on cert-manager to create it by setting the corresponding annotations
3295 ## - Rely on Helm to create self-signed certificates by setting `ingress.selfSigned=true`
3298 ## @param webdav.ingress.selfSigned Create a TLS secret for this ingress record using self-signed certificates generated by Helm
3301 ## @param webdav.ingress.extraHosts An array with additional hostname(s) to be covered with the ingress record
3304 ## - name: webdav.seaweedfs.local
3308 ## @param webdav.ingress.extraPaths An array with additional arbitrary paths that may need to be added to the ingress under the main host
3313 ## serviceName: ssl-redirect
3314 ## servicePort: use-annotation
3317 ## @param webdav.ingress.extraTls TLS configuration for additional hostname(s) to be covered with this ingress record
3318 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls
3322 ## - webdav.seaweedfs.local
3323 ## secretName: webdav.seaweedfs.local-tls
3326 ## @param webdav.ingress.secrets Custom TLS certificates as secrets
3327 ## NOTE: 'key' and 'certificate' are expected in PEM format
3328 ## NOTE: 'name' should line up with a 'secretName' set further up
3329 ## 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
3330 ## If it is not set and you're NOT using cert-manager either, self-signed certificates will be created valid for 365 days
3331 ## It is also possible to create and manage the certificates outside of this helm chart
3332 ## Please see README.md for more information
3335 ## - name: webdav.seaweedfs.local-tls
3337 ## -----BEGIN RSA PRIVATE KEY-----
3339 ## -----END RSA PRIVATE KEY-----
3341 ## -----BEGIN CERTIFICATE-----
3343 ## -----END CERTIFICATE-----
3346 ## @param webdav.ingress.extraRules Additional rules to be covered with this ingress record
3347 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-rules
3350 ## - host: example.local
3355 ## name: example-svc
3360## @section IAM Parameters
3363 ## @param iam.enabled Enable IAM deployment
3366 ## @param iam.replicaCount Number of IAM replicas to deploy
3369 ## @param iam.containerPorts.http IAM HTTP container port
3373 ## Configure extra options for IAM containers' liveness and readiness probes
3374 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
3375 ## @param iam.livenessProbe.enabled Enable livenessProbe on IAM containers
3376 ## @param iam.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
3377 ## @param iam.livenessProbe.periodSeconds Period seconds for livenessProbe
3378 ## @param iam.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
3379 ## @param iam.livenessProbe.failureThreshold Failure threshold for livenessProbe
3380 ## @param iam.livenessProbe.successThreshold Success threshold for livenessProbe
3384 initialDelaySeconds: 30
3389 ## @param iam.readinessProbe.enabled Enable readinessProbe on IAM containers
3390 ## @param iam.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
3391 ## @param iam.readinessProbe.periodSeconds Period seconds for readinessProbe
3392 ## @param iam.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
3393 ## @param iam.readinessProbe.failureThreshold Failure threshold for readinessProbe
3394 ## @param iam.readinessProbe.successThreshold Success threshold for readinessProbe
3398 initialDelaySeconds: 30
3403 ## @param iam.startupProbe.enabled Enable startupProbe on IAM containers
3404 ## @param iam.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
3405 ## @param iam.startupProbe.periodSeconds Period seconds for startupProbe
3406 ## @param iam.startupProbe.timeoutSeconds Timeout seconds for startupProbe
3407 ## @param iam.startupProbe.failureThreshold Failure threshold for startupProbe
3408 ## @param iam.startupProbe.successThreshold Success threshold for startupProbe
3412 initialDelaySeconds: 5
3415 failureThreshold: 15
3417 ## IAM resource requests and limits
3418 ## ref: http://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
3419 ## @param iam.resourcesPreset Set IAM container resources according to one common preset (allowed values: none, nano, small, medium, large, xlarge, 2xlarge). This is ignored if webdav.resources is set (webdav.resources is recommended for production).
3421 resourcesPreset: "nano"
3422 ## @param iam.resources Set IAM container requests and limits for different resources like CPU or memory (essential for production workloads)
3433 ## Configure Pods Security Context
3434 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
3435 ## @param iam.podSecurityContext.enabled Enable IAM pods' Security Context
3436 ## @param iam.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy for IAM pods
3437 ## @param iam.podSecurityContext.sysctls Set kernel settings using the sysctl interface for IAM pods
3438 ## @param iam.podSecurityContext.supplementalGroups Set filesystem extra groups for IAM pods
3439 ## @param iam.podSecurityContext.fsGroup Set fsGroup in IAM pods' Security Context
3443 fsGroupChangePolicy: Always
3445 supplementalGroups: []
3447 ## Configure Container Security Context
3448 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
3449 ## @param iam.containerSecurityContext.enabled Enabled IAM container' Security Context
3450 ## @param iam.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in IAM container
3451 ## @param iam.containerSecurityContext.runAsUser Set runAsUser in IAM container' Security Context
3452 ## @param iam.containerSecurityContext.runAsGroup Set runAsGroup in IAM container' Security Context
3453 ## @param iam.containerSecurityContext.runAsNonRoot Set runAsNonRoot in IAM container' Security Context
3454 ## @param iam.containerSecurityContext.readOnlyRootFilesystem Set readOnlyRootFilesystem in IAM container' Security Context
3455 ## @param iam.containerSecurityContext.privileged Set privileged in IAM container' Security Context
3456 ## @param iam.containerSecurityContext.allowPrivilegeEscalation Set allowPrivilegeEscalation in IAM container' Security Context
3457 ## @param iam.containerSecurityContext.capabilities.drop List of capabilities to be dropped in IAM container
3458 ## @param iam.containerSecurityContext.seccompProfile.type Set seccomp profile in IAM container
3460 containerSecurityContext:
3466 readOnlyRootFilesystem: true
3468 allowPrivilegeEscalation: false
3472 type: "RuntimeDefault"
3473 ## @param iam.logLevel IAM log level (0, 1, 2, 3, or 4)
3476 ## @param iam.command Override default IAM container command (useful when using custom images)
3479 ## @param iam.args Override default IAM container args (useful when using custom images)
3482 ## @param iam.automountServiceAccountToken Mount Service Account token in IAM pods
3484 automountServiceAccountToken: false
3485 ## @param iam.hostAliases IAM pods host aliases
3486 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
3489 ## @param iam.statefulsetAnnotations Annotations for IAM statefulset
3490 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
3492 statefulsetAnnotations: {}
3493 ## @param iam.podLabels Extra labels for IAM pods
3494 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
3497 ## @param iam.podAnnotations Annotations for IAM pods
3498 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
3501 ## @param iam.podAffinityPreset Pod affinity preset. Ignored if `iam.affinity` is set. Allowed values: `soft` or `hard`
3502 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
3504 podAffinityPreset: ""
3505 ## @param iam.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `iam.affinity` is set. Allowed values: `soft` or `hard`
3506 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
3508 podAntiAffinityPreset: soft
3509 ## Node iam.affinity preset
3510 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
3513 ## @param iam.nodeAffinityPreset.type Node affinity preset type. Ignored if `iam.affinity` is set. Allowed values: `soft` or `hard`
3516 ## @param iam.nodeAffinityPreset.key Node label key to match. Ignored if `iam.affinity` is set
3519 ## @param iam.nodeAffinityPreset.values Node label values to match. Ignored if `iam.affinity` is set
3526 ## @param iam.affinity Affinity for IAM pods assignment
3527 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
3528 ## NOTE: `iam.podAffinityPreset`, `iam.podAntiAffinityPreset`, and `iam.nodeAffinityPreset` will be ignored when it's set
3531 ## @param iam.nodeSelector Node labels for IAM pods assignment
3532 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
3535 ## @param iam.tolerations Tolerations for IAM pods assignment
3536 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
3539 ## @param iam.updateStrategy.type IAM deployment strategy type
3540 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
3543 ## Can be set to RollingUpdate or Recreate
3546 ## @param iam.priorityClassName IAM pods' priorityClassName
3548 priorityClassName: ""
3549 ## @param iam.topologySpreadConstraints Topology Spread Constraints for IAM pod assignment spread across your cluster among failure-domains
3550 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
3552 topologySpreadConstraints: []
3553 ## @param iam.schedulerName Name of the k8s scheduler (other than default) for IAM pods
3554 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
3557 ## @param iam.terminationGracePeriodSeconds Seconds IAM pods need to terminate gracefully
3558 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
3560 terminationGracePeriodSeconds: ""
3561 ## @param iam.lifecycleHooks for IAM containers to automate configuration before or after startup
3564 ## @param iam.extraEnvVars Array with extra environment variables to add to IAM containers
3571 ## @param iam.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for IAM containers
3574 ## @param iam.extraEnvVarsSecret Name of existing Secret containing extra env vars for IAM containers
3576 extraEnvVarsSecret: ""
3577 ## @param iam.extraVolumes Optionally specify extra list of additional volumes for the IAM pods
3580 ## @param iam.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the IAM containers
3582 extraVolumeMounts: []
3583 ## @param iam.sidecars Add additional sidecar containers to the IAM pods
3586 ## - name: your-image-name
3587 ## image: your-image
3588 ## imagePullPolicy: Always
3591 ## containerPort: 1234
3594 ## @param iam.initContainers Add additional init containers to the IAM pods
3595 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
3598 ## - name: your-image-name
3599 ## image: your-image
3600 ## imagePullPolicy: Always
3601 ## command: ['sh', '-c', 'echo "hello world"']
3604 ## Pod Disruption Budget configuration
3605 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb
3606 ## @param iam.pdb.create Enable/disable a Pod Disruption Budget creation
3607 ## @param iam.pdb.minAvailable Minimum number/percentage of pods that should remain scheduled
3608 ## @param iam.pdb.maxUnavailable Maximum number/percentage of pods that may be made unavailable. Defaults to `1` if both `iam.pdb.minAvailable` and `iam.pdb.maxUnavailable` are empty.
3614 ## @section IAM Traffic Exposure Parameters
3617 ## IAM service parameters
3620 ## @param iam.service.type IAM service type
3623 ## @param iam.service.ports.http IAM service HTTP port (HTTPS if `iam.tls.enabled` is `true`)
3627 ## Node ports to expose
3628 ## @param iam.service.nodePorts.http Node port for HTTP (HTTPS if `iam.tls.enabled` is `true`)
3629 ## NOTE: choose port between <30000-32767>
3633 ## @param iam.service.clusterIP IAM service Cluster IP
3638 ## @param iam.service.loadBalancerIP IAM service Load Balancer IP
3639 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
3642 ## @param iam.service.loadBalancerSourceRanges IAM service Load Balancer sources
3643 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
3645 ## loadBalancerSourceRanges:
3648 loadBalancerSourceRanges: []
3649 ## @param iam.service.externalTrafficPolicy IAM service external traffic policy
3650 ## ref http://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
3652 externalTrafficPolicy: Cluster
3653 ## @param iam.service.annotations Additional custom annotations for IAM service
3656 ## @param iam.service.extraPorts Extra ports to expose in IAM service (normally used with the `sidecars` value)
3659 ## @param iam.service.sessionAffinity Control where client requests go, to the same pod or round-robin
3660 ## Values: ClientIP or None
3661 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/
3663 sessionAffinity: None
3664 ## @param iam.service.sessionAffinityConfig Additional settings for the sessionAffinity
3665 ## sessionAffinityConfig:
3667 ## timeoutSeconds: 300
3669 sessionAffinityConfig: {}
3670 ## Headless service properties
3672 ## Network Policies for IAM
3673 ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
3675## @section Init Container Parameters
3678## 'volumePermissions' init container parameters
3679## Changes the owner and group of the persistent volume mount point to runAsUser:fsGroup values
3680## based on the *podSecurityContext/*containerSecurityContext parameters
3683 ## @param volumePermissions.enabled Enable init container that changes the owner/group of the PV mount point to `runAsUser:fsGroup`
3686 ## OS Shell + Utility image
3687 ## @param volumePermissions.image.registry [default: REGISTRY_NAME] OS Shell + Utility image registry
3688 ## @param volumePermissions.image.repository [default: REPOSITORY_NAME/os-shell] OS Shell + Utility image repository
3689 ## @skip volumePermissions.image.tag OS Shell + Utility image tag (immutable tags are recommended)
3690 ## @param volumePermissions.image.pullPolicy OS Shell + Utility image pull policy
3691 ## @param volumePermissions.image.pullSecrets OS Shell + Utility image pull secrets
3695 repository: chainguard-private/os-shell-iamguarded
3697 pullPolicy: IfNotPresent
3698 ## Optionally specify an array of imagePullSecrets.
3699 ## Secrets must be manually created in the namespace.
3700 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
3703 ## - myRegistryKeySecretName
3706 ## Init container's resource requests and limits
3707 ## ref: http://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
3708 ## @param volumePermissions.resourcesPreset Set init container resources according to one common preset (allowed values: none, nano, small, medium, large, xlarge, 2xlarge). This is ignored if volumePermissions.resources is set (volumePermissions.resources is recommended for production).
3710 resourcesPreset: "nano"
3711 ## @param volumePermissions.resources Set init container requests and limits for different resources like CPU or memory (essential for production workloads)
3722 ## Init container Container Security Context
3723 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
3724 ## @param volumePermissions.containerSecurityContext.enabled Enabled init container' Security Context
3725 ## @param volumePermissions.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in init container
3726 ## @param volumePermissions.containerSecurityContext.runAsUser Set init container's Security Context runAsUser
3727 ## NOTE: when runAsUser is set to special value "auto", init container will try to chown the
3728 ## data folder to auto-determined user&group, using commands: `id -u`:`id -G | cut -d" " -f2`
3729 ## "auto" is especially useful for OpenShift which has scc with dynamic user ids (and 0 is not allowed)
3731 containerSecurityContext:
3735## @section Other Parameters
3738## ServiceAccount configuration
3741 ## @param serviceAccount.create Specifies whether a ServiceAccount should be created
3744 ## @param serviceAccount.name The name of the ServiceAccount to use.
3745 ## If not set and create is true, a name is generated using the common.names.fullname template
3748 ## @param serviceAccount.annotations Additional Service Account annotations (evaluated as a template)
3751 ## @param serviceAccount.automountServiceAccountToken Automount service account token for the server service account
3753 automountServiceAccountToken: false
3754## @section Database Parameters
3757## MariaDB chart configuration
3760 ## @param mariadb.enabled Deploy a MariaDB server to satisfy the Filer server database requirements
3761 ## To use an external database set this to false and configure the `externalDatabase.*` parameters
3764 ## Iamguarded MariaDB image
3765 ## @param mariadb.image.registry [default: REGISTRY_NAME] MariaDB image registry
3766 ## @param mariadb.image.repository [default: REPOSITORY_NAME/mariadb] MariaDB image repository
3767 ## @skip mariadb.image.tag MariaDB image tag (immutable tags are recommended)
3768 ## @param mariadb.image.digest MariaDB image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
3769 ## @param mariadb.image.pullPolicy MariaDB image pull policy
3770 ## @param mariadb.image.pullSecrets Specify docker-registry secret names as an array
3774 repository: chainguard-private/mariadb-iamguarded
3775 tag: 12.0.2-debian-12-r0
3777 ## Specify a imagePullPolicy
3778 ## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
3780 pullPolicy: IfNotPresent
3781 ## Optionally specify an array of imagePullSecrets (secrets must be manually created in the namespace)
3782 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
3785 ## - myRegistryKeySecretName
3788 ## @param mariadb.architecture MariaDB architecture. Allowed values: `standalone` or `replication`
3790 architecture: standalone
3791 ## MariaDB Authentication parameters
3792 ## @param mariadb.auth.rootPassword MariaDB root password
3793 ## @param mariadb.auth.database MariaDB custom database
3794 ## @param mariadb.auth.username MariaDB custom user name
3795 ## @param mariadb.auth.password MariaDB custom user password
3799 database: iamguarded_seaweedfs
3800 username: bn_seaweedfs
3802 ## @param mariadb.initdbScripts [object] Specify dictionary of scripts to be run at first boot
3806 USE iamguarded_seaweedfs;
3807 CREATE TABLE IF NOT EXISTS filemeta (
3808 `dirhash` BIGINT NOT NULL COMMENT 'first 64 bits of MD5 hash value of directory field',
3809 `name` VARCHAR(766) NOT NULL COMMENT 'directory or file name',
3810 `directory` TEXT NOT NULL COMMENT 'full path to parent directory',
3812 PRIMARY KEY (`dirhash`, `name`)
3813 ) DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
3814 ## MariaDB Primary configuration
3817 ## MariaDB Primary Persistence parameters
3818 ## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
3819 ## @param mariadb.primary.persistence.enabled Enable persistence on MariaDB using PVC(s)
3820 ## @param mariadb.primary.persistence.storageClass Persistent Volume storage class
3821 ## @param mariadb.primary.persistence.accessModes [array] Persistent Volume access modes
3822 ## @param mariadb.primary.persistence.size Persistent Volume size
3830 ## MariaDB primary container's resource requests and limits
3831 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
3832 ## We usually recommend not to specify default resources and to leave this as a conscious
3833 ## choice for the user. This also increases chances charts run on environments with little
3834 ## resources, such as Minikube. If you do want to specify resources, uncomment the following
3835 ## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
3836 ## @param mariadb.primary.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, small, medium, large, xlarge, 2xlarge). This is ignored if primary.resources is set (primary.resources is recommended for production).
3838 resourcesPreset: "micro"
3839 ## @param mariadb.primary.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
3850## PostgresSQL chart configuration
3853 ## @param postgresql.enabled Deploy a PostgresSQL server to satisfy the Filer server database requirements
3854 ## To use an external database set this to false and configure the `externalDatabase.*` parameters
3857 ## Iamguarded PostgreSQL image version
3858 ## @param postgresql.image.registry [default: REGISTRY_NAME] PostgreSQL image registry
3859 ## @param postgresql.image.repository [default: REPOSITORY_NAME/postgresql] PostgreSQL image repository
3860 ## @skip postgresql.image.tag PostgreSQL image tag (immutable tags are recommended)
3861 ## @param postgresql.image.digest PostgreSQL image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
3862 ## @param postgresql.image.pullPolicy PostgreSQL image pull policy
3863 ## @param postgresql.image.pullSecrets Specify image pull secrets
3867 repository: chainguard-private/postgres-iamguarded
3868 tag: 17.6.0-debian-12-r4
3870 ## Specify a imagePullPolicy
3871 ## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
3873 pullPolicy: IfNotPresent
3874 ## Optionally specify an array of imagePullSecrets.
3875 ## Secrets must be manually created in the namespace.
3876 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
3879 ## - myRegistryKeySecretName
3882 ## @param postgresql.architecture PostgreSQL architecture (`standalone` or `replication`)
3884 architecture: standalone
3885 ## @param postgresql.auth.postgresPassword Password for the "postgres" admin user. Ignored if `auth.existingSecret` with key `postgres-password` is provided
3886 ## @param postgresql.auth.database Name for a custom database to create
3887 ## @param postgresql.auth.username Name for a custom user to create
3888 ## @param postgresql.auth.password Password for the custom user to create
3889 ## @param postgresql.auth.existingSecret Name of existing secret to use for PostgreSQL credentials
3890 ## @param postgresql.auth.secretKeys.userPasswordKey Name of key in existing secret to use for PostgreSQL credentials. Only used when `auth.existingSecret` is set.
3892 postgresPassword: ""
3893 database: iamguarded_seaweedfs
3894 username: bn_seaweedfs
3895 password: some-password
3898 userPasswordKey: password
3899 ## PostgreSQL Primary configuration
3902 ## PostgreSQL Primary resource requests and limits
3903 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
3904 ## @param postgresql.primary.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if postgresql.primary.resources is set (postgresql.primary.resources is recommended for production).
3906 resourcesPreset: "nano"
3907 ## @param postgresql.primary.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
3918 ## @param postgresql.primary.initdb.scripts [object] Dictionary of initdb scripts
3923 \c iamguarded_seaweedfs;
3924 CREATE TABLE IF NOT EXISTS filemeta (
3926 name VARCHAR(65535),
3927 directory VARCHAR(65535),
3929 PRIMARY KEY (dirhash, name)
3931 ## PostgreSQL Primary Persistence parameters
3932 ## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
3933 ## @param postgresql.primary.persistence.enabled Enable PostgreSQL Primary data persistence using PVC(s)
3934 ## @param postgresql.primary.persistence.storageClass Persistent Volume storage class
3935 ## @param postgresql.primary.persistence.accessModes [array] Persistent Volume access modes
3936 ## @param postgresql.primary.persistence.size Persistent Volume size
3944## External Database Configuration
3945## All of these values are only used if `mariadb.enabled=false` and `externalDatabase.enabled=true`.
3948 ## @param externalDatabase.enabled Enable external database support
3951 ## @param externalDatabase.store Database store (mariadb, postgresql)
3954 ## @param externalDatabase.host External Database server host
3957 ## @param externalDatabase.port External Database server port
3960 ## @param externalDatabase.user External Database username
3963 ## @param externalDatabase.password External Database user password
3966 ## @param externalDatabase.database External Database database name
3968 database: iamguarded_seaweedfs
3969 ## @param externalDatabase.existingSecret The name of an existing secret with database credentials. Evaluated as a template
3970 ## NOTE: Must contain key `mariadb-password` for mariadb or 'postgres-password' for postgres
3971 ## NOTE: When it's set, the `externalDatabase.password` parameter is ignored
3974 ## @param externalDatabase.waitForDatabaseEnabled Whether to check for external database before starting seaweedfs containers
3976 waitForDatabaseEnabled: true
3978 ## Init external database job
3981 ## @param externalDatabase.initDatabaseJob.enabled Enable the init external database job
3984 ## @param externalDatabase.initDatabaseJob.labels Extra labels for the init external database job
3987 ## @param externalDatabase.initDatabaseJob.annotations [object] Extra annotations for the init external database job
3990 helm.sh/hook: post-install
3991 helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
3992 ## @param externalDatabase.initDatabaseJob.backoffLimit Set backoff limit of the init external database job
3995 ## Configure Container Security Context
3996 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
3997 ## @param externalDatabase.initDatabaseJob.containerSecurityContext.enabled Enabled init external database job containers' Security Context
3998 ## @param externalDatabase.initDatabaseJob.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
3999 ## @param externalDatabase.initDatabaseJob.containerSecurityContext.runAsUser Set init external database job containers' Security Context runAsUser
4000 ## @param externalDatabase.initDatabaseJob.containerSecurityContext.runAsGroup Set init external database job containers' Security Context runAsGroup
4001 ## @param externalDatabase.initDatabaseJob.containerSecurityContext.runAsNonRoot Set init external database job containers' Security Context runAsNonRoot
4002 ## @param externalDatabase.initDatabaseJob.containerSecurityContext.privileged Set init external database job containers' Security Context privileged
4003 ## @param externalDatabase.initDatabaseJob.containerSecurityContext.readOnlyRootFilesystem Set init external database job containers' Security Context readOnlyRootFilesystem
4004 ## @param externalDatabase.initDatabaseJob.containerSecurityContext.allowPrivilegeEscalation Set init external database job containers' Security Context allowPrivilegeEscalation
4005 ## @param externalDatabase.initDatabaseJob.containerSecurityContext.capabilities.drop List of capabilities to be dropped
4006 ## @param externalDatabase.initDatabaseJob.containerSecurityContext.seccompProfile.type Set init external database job containers' Security Context seccomp profile
4008 containerSecurityContext:
4015 readOnlyRootFilesystem: true
4016 allowPrivilegeEscalation: false
4020 type: "RuntimeDefault"
4021 ## Configure Pods Security Context
4022 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
4023 ## @param externalDatabase.initDatabaseJob.podSecurityContext.enabled Enabled init external database job pods' Security Context
4024 ## @param externalDatabase.initDatabaseJob.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
4025 ## @param externalDatabase.initDatabaseJob.podSecurityContext.sysctls Set kernel settings using the sysctl interface
4026 ## @param externalDatabase.initDatabaseJob.podSecurityContext.supplementalGroups Set filesystem extra groups
4027 ## @param externalDatabase.initDatabaseJob.podSecurityContext.fsGroup Set init external database job pod's Security Context fsGroup
4031 fsGroupChangePolicy: Always
4033 supplementalGroups: []
4035 ## Container resource requests and limits
4036 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
4037 ## @param externalDatabase.initDatabaseJob.resourcesPreset Set init external database job container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if externalDatabase.initDatabaseJob.resources is set (externalDatabase.initDatabaseJob.resources is recommended for production).
4039 resourcesPreset: "micro"
4040 ## @param externalDatabase.initDatabaseJob.resources Set init external database job container requests and limits for different resources like CPU or memory (essential for production workloads)
4051 ## @param externalDatabase.initDatabaseJob.automountServiceAccountToken Mount Service Account token in external database job pod
4053 automountServiceAccountToken: false