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 ## Filer Server 'wait-for-db' init container configuration
1672 ## 'wait-for-db' init container resource requests and limits
1673 ## ref: http://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
1674 ## @param filer.waitForDatabase.resourcesPreset Set 'wait-for-db' init container resources according to one common preset (allowed values: none, nano, small, medium, large, xlarge, 2xlarge). This is ignored if filer.waitForDatabase.resources is set (filer.waitForDatabase.resources is recommended for production).
1676 resourcesPreset: "nano"
1677 ## @param filer.waitForDatabase.resources Set 'wait-for-db' init container requests and limits for different resources like CPU or memory (essential for production workloads)
1688 ## Configure Pods Security Context
1689 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
1690 ## @param filer.podSecurityContext.enabled Enable Filer Server pods' Security Context
1691 ## @param filer.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy for Filer Server pods
1692 ## @param filer.podSecurityContext.sysctls Set kernel settings using the sysctl interface for Filer Server pods
1693 ## @param filer.podSecurityContext.supplementalGroups Set filesystem extra groups for Filer Server pods
1694 ## @param filer.podSecurityContext.fsGroup Set fsGroup in Filer Server pods' Security Context
1698 fsGroupChangePolicy: Always
1700 supplementalGroups: []
1702 ## Configure Container Security Context
1703 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
1704 ## @param filer.containerSecurityContext.enabled Enabled Filer Server container' Security Context
1705 ## @param filer.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in Filer Server container
1706 ## @param filer.containerSecurityContext.runAsUser Set runAsUser in Filer Server container' Security Context
1707 ## @param filer.containerSecurityContext.runAsGroup Set runAsGroup in Filer Server container' Security Context
1708 ## @param filer.containerSecurityContext.runAsNonRoot Set runAsNonRoot in Filer Server container' Security Context
1709 ## @param filer.containerSecurityContext.readOnlyRootFilesystem Set readOnlyRootFilesystem in Filer Server container' Security Context
1710 ## @param filer.containerSecurityContext.privileged Set privileged in Filer Server container' Security Context
1711 ## @param filer.containerSecurityContext.allowPrivilegeEscalation Set allowPrivilegeEscalation in Filer Server container' Security Context
1712 ## @param filer.containerSecurityContext.capabilities.drop List of capabilities to be dropped in Filer Server container
1713 ## @param filer.containerSecurityContext.seccompProfile.type Set seccomp profile in Filer Server container
1715 containerSecurityContext:
1721 readOnlyRootFilesystem: true
1723 allowPrivilegeEscalation: false
1727 type: "RuntimeDefault"
1728 ## @param filer.logLevel Filer Server log level (0, 1, 2, 3, or 4)
1731 ## @param filer.bindAddress Filer Server bind address
1733 bindAddress: 0.0.0.0
1734 ## @param filer.config Filer Server configuration
1735 ## Specify content for filer.toml
1740 ## @param filer.existingConfigmap The name of an existing ConfigMap with your custom configuration for Filer Server
1742 existingConfigmap: ""
1743 ## @param filer.notificationConfig Filer Server notification configuration
1744 ## Specify content for custom notification.toml
1746 notificationConfig: ""
1747 ## @param filer.existingNotificationConfigmap The name of an existing ConfigMap with your custom notification configuration for Filer Server
1749 existingNotificationConfigmap: ""
1750 ## @param filer.command Override default Filer Server container command (useful when using custom images)
1753 ## @param filer.args Override default Filer Server container args (useful when using custom images)
1756 ## @param filer.automountServiceAccountToken Mount Service Account token in Filer Server pods
1758 automountServiceAccountToken: false
1759 ## @param filer.hostAliases Filer Server pods host aliases
1760 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
1763 ## @param filer.statefulsetAnnotations Annotations for Filer Server StatefulSet
1764 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
1766 statefulsetAnnotations: {}
1767 ## @param filer.podLabels Extra labels for Filer Server pods
1768 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
1771 ## @param filer.podAnnotations Annotations for Filer Server pods
1772 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
1775 ## @param filer.podAffinityPreset Pod affinity preset. Ignored if `filer.affinity` is set. Allowed values: `soft` or `hard`
1776 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
1778 podAffinityPreset: ""
1779 ## @param filer.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `filer.affinity` is set. Allowed values: `soft` or `hard`
1780 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
1782 podAntiAffinityPreset: soft
1783 ## Node filer.affinity preset
1784 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
1787 ## @param filer.nodeAffinityPreset.type Node affinity preset type. Ignored if `filer.affinity` is set. Allowed values: `soft` or `hard`
1790 ## @param filer.nodeAffinityPreset.key Node label key to match. Ignored if `filer.affinity` is set
1793 ## @param filer.nodeAffinityPreset.values Node label values to match. Ignored if `filer.affinity` is set
1800 ## @param filer.affinity Affinity for Filer Server pods assignment
1801 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
1802 ## NOTE: `filer.podAffinityPreset`, `filer.podAntiAffinityPreset`, and `filer.nodeAffinityPreset` will be ignored when it's set
1805 ## @param filer.nodeSelector Node labels for Filer Server pods assignment
1806 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
1809 ## @param filer.tolerations Tolerations for Filer Server pods assignment
1810 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
1813 ## @param filer.updateStrategy.type Filer Server StatefulSet strategy type
1814 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
1817 ## Can be set to RollingUpdate or OnDelete
1820 ## @param filer.podManagementPolicy Pod management policy for Filer Server StatefulSet
1821 ## Ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
1823 podManagementPolicy: Parallel
1824 ## @param filer.priorityClassName Filer Server pods' priorityClassName
1826 priorityClassName: ""
1827 ## @param filer.topologySpreadConstraints Topology Spread Constraints for Filer Server pod assignment spread across your cluster among failure-domains
1828 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
1830 topologySpreadConstraints: []
1831 ## @param filer.schedulerName Name of the k8s scheduler (other than default) for Filer Server pods
1832 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
1835 ## @param filer.terminationGracePeriodSeconds Seconds Filer Server pods need to terminate gracefully
1836 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
1838 terminationGracePeriodSeconds: ""
1839 ## @param filer.lifecycleHooks for Filer Server containers to automate configuration before or after startup
1842 ## @param filer.extraEnvVars Array with extra environment variables to add to Filer Server containers
1849 ## @param filer.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for Filer Server containers
1852 ## @param filer.extraEnvVarsSecret Name of existing Secret containing extra env vars for Filer Server containers
1854 extraEnvVarsSecret: ""
1855 ## @param filer.extraVolumes Optionally specify extra list of additional volumes for the Filer Server pods
1858 ## @param filer.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Filer Server containers
1860 extraVolumeMounts: []
1861 ## @param filer.sidecars Add additional sidecar containers to the Filer Server pods
1864 ## - name: your-image-name
1865 ## image: your-image
1866 ## imagePullPolicy: Always
1869 ## containerPort: 1234
1872 ## @param filer.initContainers Add additional init containers to the Filer Server pods
1873 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
1876 ## - name: your-image-name
1877 ## image: your-image
1878 ## imagePullPolicy: Always
1879 ## command: ['sh', '-c', 'echo "hello world"']
1882 ## Pod Disruption Budget configuration
1883 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb
1884 ## @param filer.pdb.create Enable/disable a Pod Disruption Budget creation
1885 ## @param filer.pdb.minAvailable Minimum number/percentage of pods that should remain scheduled
1886 ## @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.
1892 ## Autoscaling configuration
1893 ## ref: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/
1894 ## @param filer.autoscaling.enabled Enable autoscaling for filer
1895 ## @param filer.autoscaling.minReplicas Minimum number of filer replicas
1896 ## @param filer.autoscaling.maxReplicas Maximum number of filer replicas
1897 ## @param filer.autoscaling.targetCPU Target CPU utilization percentage
1898 ## @param filer.autoscaling.targetMemory Target Memory utilization percentage
1906 ## @section Filer Server Traffic Exposure Parameters
1909 ## Filer Server service parameters
1912 ## @param filer.service.type Filer Server service type
1915 ## @param filer.service.ports.http Filer Server service HTTP port
1916 ## @param filer.service.ports.grpc Filer Server service GRPC port
1921 ## Node ports to expose
1922 ## @param filer.service.nodePorts.http Node port for HTTP
1923 ## @param filer.service.nodePorts.grpc Node port for GRPC
1924 ## NOTE: choose port between <30000-32767>
1929 ## @param filer.service.clusterIP Filer Server service Cluster IP
1934 ## @param filer.service.loadBalancerIP Filer Server service Load Balancer IP
1935 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
1938 ## @param filer.service.loadBalancerSourceRanges Filer Server service Load Balancer sources
1939 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
1941 ## loadBalancerSourceRanges:
1944 loadBalancerSourceRanges: []
1945 ## @param filer.service.externalTrafficPolicy Filer Server service external traffic policy
1946 ## ref http://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
1948 externalTrafficPolicy: Cluster
1949 ## @param filer.service.annotations Additional custom annotations for Filer Server service
1952 ## @param filer.service.extraPorts Extra ports to expose in Filer Server service (normally used with the `sidecars` value)
1955 ## @param filer.service.sessionAffinity Control where client requests go, to the same pod or round-robin
1956 ## Values: ClientIP or None
1957 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/
1959 sessionAffinity: None
1960 ## @param filer.service.sessionAffinityConfig Additional settings for the sessionAffinity
1961 ## sessionAffinityConfig:
1963 ## timeoutSeconds: 300
1965 sessionAffinityConfig: {}
1966 ## Headless service properties
1969 ## @param filer.service.headless.annotations Annotations for the headless service.
1972 ## Network Policies for Filer Server
1973 ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
1976 ## @param filer.networkPolicy.enabled Specifies whether a NetworkPolicy should be created for Filer Server
1979 ## @param filer.networkPolicy.allowExternal Don't require server label for connections
1980 ## The Policy model to apply. When set to false, only pods with the correct
1981 ## server label will have network access to the ports server is listening
1982 ## on. When true, server will accept connections from any source
1983 ## (with the correct destination port).
1986 ## @param filer.networkPolicy.allowExternalEgress Allow the Filer Server pods to access any range of port and all destinations.
1988 allowExternalEgress: true
1989 ## @param filer.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
1999 ## - matchExpressions:
2005 ## @param filer.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy (ignored if allowExternalEgress=true)
2015 ## - matchExpressions:
2022 ## @param filer.networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
2023 ## @param filer.networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
2025 ingressNSMatchLabels: {}
2026 ingressNSPodMatchLabels: {}
2027 ## Filer Server ingress parameters
2028 ## ref: http://kubernetes.io/docs/concepts/services-networking/ingress/
2031 ## @param filer.ingress.enabled Enable ingress record generation for Filer Server
2034 ## @param filer.ingress.pathType Ingress path type
2036 pathType: ImplementationSpecific
2037 ## @param filer.ingress.apiVersion Force Ingress API version (automatically detected if not set)
2040 ## @param filer.ingress.hostname Default host for the ingress record
2042 hostname: filer.seaweedfs.local
2043 ## @param filer.ingress.ingressClassName IngressClass that will be be used to implement the Ingress (Kubernetes 1.18+)
2044 ## This is supported in Kubernetes 1.18+ and required if you have more than one IngressClass marked as the default for your cluster .
2045 ## ref: https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/
2047 ingressClassName: ""
2048 ## @param filer.ingress.path Default path for the ingress record
2049 ## NOTE: You may need to set this to '/*' in order to use this with ALB ingress controllers
2052 ## @param filer.ingress.annotations Additional annotations for the Ingress resource. To enable certificate autogeneration, place here your cert-manager annotations.
2053 ## Use this parameter to set the required annotations for cert-manager, see
2054 ## ref: https://cert-manager.io/docs/usage/ingress/#supported-annotations
2057 ## kubernetes.io/ingress.class: nginx
2058 ## cert-manager.io/cluster-issuer: cluster-issuer-name
2061 ## @param filer.ingress.tls Enable TLS configuration for the host defined at `ingress.hostname` parameter
2062 ## TLS certificates will be retrieved from a TLS secret with name: `{{- printf "%s-tls" .Values.ingress.hostname }}`
2064 ## - Use the `ingress.secrets` parameter to create this TLS secret
2065 ## - Rely on cert-manager to create it by setting the corresponding annotations
2066 ## - Rely on Helm to create self-signed certificates by setting `ingress.selfSigned=true`
2069 ## @param filer.ingress.selfSigned Create a TLS secret for this ingress record using self-signed certificates generated by Helm
2072 ## @param filer.ingress.extraHosts An array with additional hostname(s) to be covered with the ingress record
2075 ## - name: filer.seaweedfs.local
2079 ## @param filer.ingress.extraPaths An array with additional arbitrary paths that may need to be added to the ingress under the main host
2084 ## serviceName: ssl-redirect
2085 ## servicePort: use-annotation
2088 ## @param filer.ingress.extraTls TLS configuration for additional hostname(s) to be covered with this ingress record
2089 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls
2093 ## - filer.seaweedfs.local
2094 ## secretName: filer.seaweedfs.local-tls
2097 ## @param filer.ingress.secrets Custom TLS certificates as secrets
2098 ## NOTE: 'key' and 'certificate' are expected in PEM format
2099 ## NOTE: 'name' should line up with a 'secretName' set further up
2100 ## 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
2101 ## If it is not set and you're NOT using cert-manager either, self-signed certificates will be created valid for 365 days
2102 ## It is also possible to create and manage the certificates outside of this helm chart
2103 ## Please see README.md for more information
2106 ## - name: filer.seaweedfs.local-tls
2108 ## -----BEGIN RSA PRIVATE KEY-----
2110 ## -----END RSA PRIVATE KEY-----
2112 ## -----BEGIN CERTIFICATE-----
2114 ## -----END CERTIFICATE-----
2117 ## @param filer.ingress.extraRules Additional rules to be covered with this ingress record
2118 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-rules
2121 ## - host: example.local
2126 ## name: example-svc
2131 ## @section Filer Server Persistence Parameters
2134 ## Enable Filer logs persistence using Persistent Volume Claims
2135 ## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
2138 ## @param filer.logPersistence.enabled Enable logs persistence on Filer Server using Persistent Volume Claims
2141 ## @param filer.logPersistence.mountPath Path to mount the volume at.
2144 ## @param filer.logPersistence.subPath The subdirectory of the volume to mount to, useful in dev environments and one PV for multiple services
2147 ## @param filer.logPersistence.storageClass Storage class of backing PVC
2148 ## If defined, storageClassName: <storageClass>
2149 ## If set to "-", storageClassName: "", which disables dynamic provisioning
2150 ## If undefined (the default) or set to null, no storageClassName spec is
2151 ## set, choosing the default provisioner. (gp2 on AWS, standard on
2152 ## GKE, AWS & OpenStack)
2155 ## @param filer.logPersistence.annotations Persistent Volume Claim annotations
2158 ## @param filer.logPersistence.accessModes Persistent Volume Access Modes
2162 ## @param filer.logPersistence.size Size of logs volume
2165 ## @param filer.logPersistence.existingClaim The name of an existing PVC to use for logs persistence
2168 ## @param filer.logPersistence.selector Selector to match an existing Persistent Volume for logs PVC
2169 ## If set, the PVC can't have a PV dynamically provisioned for it
2176 ## @param filer.logPersistence.dataSource Custom PVC data source
2179 ## persistentVolumeClaimRetentionPolicy
2180 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention
2181 ## @param filer.persistentVolumeClaimRetentionPolicy.enabled Controls if and how PVCs are deleted during the lifecycle of the Master Server StatefulSet
2182 ## @param filer.persistentVolumeClaimRetentionPolicy.whenScaled Volume retention behavior when the replica count of the StatefulSet is reduced
2183 ## @param filer.persistentVolumeClaimRetentionPolicy.whenDeleted Volume retention behavior that applies when the StatefulSet is deleted
2185 persistentVolumeClaimRetentionPolicy:
2189 ## @section Filer Server Metrics Parameters
2192 ## @param filer.metrics.enabled Enable the export of Prometheus metrics
2195 ## Metrics service properties
2198 ## @param filer.metrics.service.port Metrics service port
2201 ## @param filer.metrics.service.annotations Annotations for the metrics service.
2204 ## Prometheus Operator ServiceMonitor configuration
2207 ## @param filer.metrics.serviceMonitor.enabled if `true`, creates a Prometheus Operator ServiceMonitor (also requires `metrics.enabled` to be `true`)
2210 ## @param filer.metrics.serviceMonitor.namespace Namespace in which Prometheus is running
2213 ## @param filer.metrics.serviceMonitor.annotations Additional custom annotations for the ServiceMonitor
2216 ## @param filer.metrics.serviceMonitor.labels Extra labels for the ServiceMonitor
2219 ## @param filer.metrics.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in Prometheus
2222 ## @param filer.metrics.serviceMonitor.honorLabels honorLabels chooses the metric's labels on collisions with target labels
2225 ## @param filer.metrics.serviceMonitor.interval Interval at which metrics should be scraped.
2226 ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
2231 ## @param filer.metrics.serviceMonitor.scrapeTimeout Timeout after which the scrape is ended
2232 ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
2234 ## scrapeTimeout: 10s
2237 ## @param filer.metrics.serviceMonitor.metricRelabelings Specify additional relabeling of metrics
2239 metricRelabelings: []
2240 ## @param filer.metrics.serviceMonitor.relabelings Specify general relabeling
2243 ## @param filer.metrics.serviceMonitor.selector Prometheus instance selector labels
2245 ## prometheus: my-prometheus
2248## @section Amazon S3 API Parameters
2251 ## @param s3.enabled Enable Amazon S3 API deployment
2254 ## @param s3.replicaCount Number of Amazon S3 API replicas to deploy
2257 ## @param s3.containerPorts.http Amazon S3 API HTTP container port
2258 ## @param s3.containerPorts.grpc Amazon S3 API GRPC container port
2259 ## @param s3.containerPorts.metrics Amazon S3 API metrics container port
2265 ## @param s3.extraContainerPorts Optionally specify extra list of additional ports for Amazon S3 API containers
2267 ## extraContainerPorts:
2268 ## - name: myservice
2269 ## containerPort: 9090
2271 extraContainerPorts: []
2272 ## Configure extra options for Amazon S3 API containers' liveness and readiness probes
2273 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
2274 ## @param s3.livenessProbe.enabled Enable livenessProbe on Amazon S3 API containers
2275 ## @param s3.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
2276 ## @param s3.livenessProbe.periodSeconds Period seconds for livenessProbe
2277 ## @param s3.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
2278 ## @param s3.livenessProbe.failureThreshold Failure threshold for livenessProbe
2279 ## @param s3.livenessProbe.successThreshold Success threshold for livenessProbe
2283 initialDelaySeconds: 30
2288 ## @param s3.readinessProbe.enabled Enable readinessProbe on Amazon S3 API containers
2289 ## @param s3.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
2290 ## @param s3.readinessProbe.periodSeconds Period seconds for readinessProbe
2291 ## @param s3.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
2292 ## @param s3.readinessProbe.failureThreshold Failure threshold for readinessProbe
2293 ## @param s3.readinessProbe.successThreshold Success threshold for readinessProbe
2297 initialDelaySeconds: 30
2302 ## @param s3.startupProbe.enabled Enable startupProbe on Amazon S3 API containers
2303 ## @param s3.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
2304 ## @param s3.startupProbe.periodSeconds Period seconds for startupProbe
2305 ## @param s3.startupProbe.timeoutSeconds Timeout seconds for startupProbe
2306 ## @param s3.startupProbe.failureThreshold Failure threshold for startupProbe
2307 ## @param s3.startupProbe.successThreshold Success threshold for startupProbe
2311 initialDelaySeconds: 5
2314 failureThreshold: 15
2316 ## @param s3.customLivenessProbe Custom livenessProbe that overrides the default one
2318 customLivenessProbe: {}
2319 ## @param s3.customReadinessProbe Custom readinessProbe that overrides the default one
2321 customReadinessProbe: {}
2322 ## @param s3.customStartupProbe Custom startupProbe that overrides the default one
2324 customStartupProbe: {}
2325 ## Amazon S3 API resource requests and limits
2326 ## ref: http://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
2327 ## @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).
2329 resourcesPreset: "nano"
2330 ## @param s3.resources Set Amazon S3 API container requests and limits for different resources like CPU or memory (essential for production workloads)
2341 ## Configure Pods Security Context
2342 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
2343 ## @param s3.podSecurityContext.enabled Enable Amazon S3 API pods' Security Context
2344 ## @param s3.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy for Amazon S3 API pods
2345 ## @param s3.podSecurityContext.sysctls Set kernel settings using the sysctl interface for Amazon S3 API pods
2346 ## @param s3.podSecurityContext.supplementalGroups Set filesystem extra groups for Amazon S3 API pods
2347 ## @param s3.podSecurityContext.fsGroup Set fsGroup in Amazon S3 API pods' Security Context
2351 fsGroupChangePolicy: Always
2353 supplementalGroups: []
2355 ## Configure Container Security Context
2356 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
2357 ## @param s3.containerSecurityContext.enabled Enabled Amazon S3 API container' Security Context
2358 ## @param s3.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in Amazon S3 API container
2359 ## @param s3.containerSecurityContext.runAsUser Set runAsUser in Amazon S3 API container' Security Context
2360 ## @param s3.containerSecurityContext.runAsGroup Set runAsGroup in Amazon S3 API container' Security Context
2361 ## @param s3.containerSecurityContext.runAsNonRoot Set runAsNonRoot in Amazon S3 API container' Security Context
2362 ## @param s3.containerSecurityContext.readOnlyRootFilesystem Set readOnlyRootFilesystem in Amazon S3 API container' Security Context
2363 ## @param s3.containerSecurityContext.privileged Set privileged in Amazon S3 API container' Security Context
2364 ## @param s3.containerSecurityContext.allowPrivilegeEscalation Set allowPrivilegeEscalation in Amazon S3 API container' Security Context
2365 ## @param s3.containerSecurityContext.capabilities.drop List of capabilities to be dropped in Amazon S3 API container
2366 ## @param s3.containerSecurityContext.seccompProfile.type Set seccomp profile in Amazon S3 API container
2368 containerSecurityContext:
2374 readOnlyRootFilesystem: true
2376 allowPrivilegeEscalation: false
2380 type: "RuntimeDefault"
2381 ## @param s3.logLevel Amazon S3 API log level (0, 1, 2, 3, or 4)
2384 ## @param s3.bindAddress Amazon S3 API bind address
2386 bindAddress: 0.0.0.0
2387 ## @param s3.allowEmptyFolder Allow empty folders in Amazon S3 API
2388 allowEmptyFolder: true
2389 ## S3 Authentication
2390 ## ref: https://github.com/seaweedfs/seaweedfs/wiki/Amazon-S3-API#s3-authentication
2391 ## @param s3.auth.enabled Enable Amazon S3 API authentication
2392 ## @param s3.auth.existingSecret Existing secret with Amazon S3 API authentication configuration
2393 ## @param s3.auth.existingSecretConfigKey Key of the above existing secret with S3 API authentication configuration, defaults to `config.json`
2394 ## @param s3.auth.adminAccessKeyId Amazon S3 API access key with admin privileges. Ignored if `s3.auth.existingSecret` is set
2395 ## @param s3.auth.adminSecretAccessKey Amazon S3 API secret key with admin privileges. Ignored if `s3.auth.existingSecret` is set
2396 ## @param s3.auth.readAccessKeyId Amazon S3 API read access key with read-only privileges. Ignored if `s3.auth.existingSecret` is set
2397 ## @param s3.auth.readSecretAccessKey Amazon S3 API read secret key with read-only privileges. Ignored if `s3.auth.existingSecret` is set
2402 existingSecretConfigKey: ""
2403 adminAccessKeyId: ""
2404 adminSecretAccessKey: ""
2406 readSecretAccessKey: ""
2407 ## @param s3.command Override default Amazon S3 API container command (useful when using custom images)
2410 ## @param s3.args Override default Amazon S3 API container args (useful when using custom images)
2413 ## @param s3.automountServiceAccountToken Mount Service Account token in Amazon S3 API pods
2415 automountServiceAccountToken: false
2416 ## @param s3.hostAliases Amazon S3 API pods host aliases
2417 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
2420 ## @param s3.statefulsetAnnotations Annotations for Amazon S3 API statefulset
2421 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
2423 statefulsetAnnotations: {}
2424 ## @param s3.podLabels Extra labels for Amazon S3 API pods
2425 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
2428 ## @param s3.podAnnotations Annotations for Amazon S3 API pods
2429 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
2432 ## @param s3.podAffinityPreset Pod affinity preset. Ignored if `s3.affinity` is set. Allowed values: `soft` or `hard`
2433 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
2435 podAffinityPreset: ""
2436 ## @param s3.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `s3.affinity` is set. Allowed values: `soft` or `hard`
2437 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
2439 podAntiAffinityPreset: soft
2440 ## Node s3.affinity preset
2441 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
2444 ## @param s3.nodeAffinityPreset.type Node affinity preset type. Ignored if `s3.affinity` is set. Allowed values: `soft` or `hard`
2447 ## @param s3.nodeAffinityPreset.key Node label key to match. Ignored if `s3.affinity` is set
2450 ## @param s3.nodeAffinityPreset.values Node label values to match. Ignored if `s3.affinity` is set
2457 ## @param s3.affinity Affinity for Amazon S3 API pods assignment
2458 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
2459 ## NOTE: `s3.podAffinityPreset`, `s3.podAntiAffinityPreset`, and `s3.nodeAffinityPreset` will be ignored when it's set
2462 ## @param s3.nodeSelector Node labels for Amazon S3 API pods assignment
2463 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
2466 ## @param s3.tolerations Tolerations for Amazon S3 API pods assignment
2467 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
2470 ## @param s3.updateStrategy.type Amazon S3 API deployment strategy type
2471 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
2474 ## Can be set to RollingUpdate or Recreate
2477 ## @param s3.priorityClassName Amazon S3 API pods' priorityClassName
2479 priorityClassName: ""
2480 ## @param s3.topologySpreadConstraints Topology Spread Constraints for Amazon S3 API pod assignment spread across your cluster among failure-domains
2481 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
2483 topologySpreadConstraints: []
2484 ## @param s3.schedulerName Name of the k8s scheduler (other than default) for Amazon S3 API pods
2485 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
2488 ## @param s3.terminationGracePeriodSeconds Seconds Amazon S3 API pods need to terminate gracefully
2489 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
2491 terminationGracePeriodSeconds: ""
2492 ## @param s3.lifecycleHooks for Amazon S3 API containers to automate configuration before or after startup
2495 ## @param s3.extraEnvVars Array with extra environment variables to add to Amazon S3 API containers
2502 ## @param s3.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for Amazon S3 API containers
2505 ## @param s3.extraEnvVarsSecret Name of existing Secret containing extra env vars for Amazon S3 API containers
2507 extraEnvVarsSecret: ""
2508 ## @param s3.extraVolumes Optionally specify extra list of additional volumes for the Amazon S3 API pods
2511 ## @param s3.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the Amazon S3 API containers
2513 extraVolumeMounts: []
2514 ## @param s3.sidecars Add additional sidecar containers to the Amazon S3 API pods
2517 ## - name: your-image-name
2518 ## image: your-image
2519 ## imagePullPolicy: Always
2522 ## containerPort: 1234
2525 ## @param s3.initContainers Add additional init containers to the Amazon S3 API pods
2526 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
2529 ## - name: your-image-name
2530 ## image: your-image
2531 ## imagePullPolicy: Always
2532 ## command: ['sh', '-c', 'echo "hello world"']
2535 ## Pod Disruption Budget configuration
2536 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb
2537 ## @param s3.pdb.create Enable/disable a Pod Disruption Budget creation
2538 ## @param s3.pdb.minAvailable Minimum number/percentage of pods that should remain scheduled
2539 ## @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.
2545 ## Autoscaling configuration
2546 ## ref: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/
2547 ## @param s3.autoscaling.enabled Enable autoscaling for s3
2548 ## @param s3.autoscaling.minReplicas Minimum number of s3 replicas
2549 ## @param s3.autoscaling.maxReplicas Maximum number of s3 replicas
2550 ## @param s3.autoscaling.targetCPU Target CPU utilization percentage
2551 ## @param s3.autoscaling.targetMemory Target Memory utilization percentage
2559 ## @section Amazon S3 API Traffic Exposure Parameters
2562 ## Amazon S3 API service parameters
2565 ## @param s3.service.type Amazon S3 API service type
2568 ## @param s3.service.ports.http Amazon S3 API service HTTP port
2569 ## @param s3.service.ports.grpc Amazon S3 API service GRPC port
2574 ## Node ports to expose
2575 ## @param s3.service.nodePorts.http Node port for HTTP
2576 ## @param s3.service.nodePorts.grpc Node port for GRPC
2577 ## NOTE: choose port between <30000-32767>
2582 ## @param s3.service.clusterIP Amazon S3 API service Cluster IP
2587 ## @param s3.service.loadBalancerIP Amazon S3 API service Load Balancer IP
2588 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
2591 ## @param s3.service.loadBalancerSourceRanges Amazon S3 API service Load Balancer sources
2592 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
2594 ## loadBalancerSourceRanges:
2597 loadBalancerSourceRanges: []
2598 ## @param s3.service.externalTrafficPolicy Amazon S3 API service external traffic policy
2599 ## ref http://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
2601 externalTrafficPolicy: Cluster
2602 ## @param s3.service.annotations Additional custom annotations for Amazon S3 API service
2605 ## @param s3.service.extraPorts Extra ports to expose in Amazon S3 API service (normally used with the `sidecars` value)
2608 ## @param s3.service.sessionAffinity Control where client requests go, to the same pod or round-robin
2609 ## Values: ClientIP or None
2610 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/
2612 sessionAffinity: None
2613 ## @param s3.service.sessionAffinityConfig Additional settings for the sessionAffinity
2614 ## sessionAffinityConfig:
2616 ## timeoutSeconds: 300
2618 sessionAffinityConfig: {}
2619 ## Headless service properties
2622 ## @param s3.service.headless.annotations Annotations for the headless service.
2625 ## Network Policies for Amazon S3 API
2626 ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
2629 ## @param s3.networkPolicy.enabled Specifies whether a NetworkPolicy should be created for Amazon S3 API
2632 ## @param s3.networkPolicy.allowExternal Don't require server label for connections
2633 ## The Policy model to apply. When set to false, only pods with the correct
2634 ## server label will have network access to the ports server is listening
2635 ## on. When true, server will accept connections from any source
2636 ## (with the correct destination port).
2639 ## @param s3.networkPolicy.allowExternalEgress Allow the Amazon S3 API pods to access any range of port and all destinations.
2641 allowExternalEgress: true
2642 ## @param s3.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
2652 ## - matchExpressions:
2658 ## @param s3.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy (ignored if allowExternalEgress=true)
2668 ## - matchExpressions:
2675 ## @param s3.networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
2676 ## @param s3.networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
2678 ingressNSMatchLabels: {}
2679 ingressNSPodMatchLabels: {}
2680 ## Amazon S3 API ingress parameters
2681 ## ref: http://kubernetes.io/docs/concepts/services-networking/ingress/
2684 ## @param s3.ingress.enabled Enable ingress record generation for Amazon S3 API
2687 ## @param s3.ingress.pathType Ingress path type
2689 pathType: ImplementationSpecific
2690 ## @param s3.ingress.apiVersion Force Ingress API version (automatically detected if not set)
2693 ## @param s3.ingress.hostname Default host for the ingress record
2695 hostname: s3.seaweedfs.local
2696 ## @param s3.ingress.ingressClassName IngressClass that will be be used to implement the Ingress (Kubernetes 1.18+)
2697 ## This is supported in Kubernetes 1.18+ and required if you have more than one IngressClass marked as the default for your cluster .
2698 ## ref: https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/
2700 ingressClassName: ""
2701 ## @param s3.ingress.path Default path for the ingress record
2702 ## NOTE: You may need to set this to '/*' in order to use this with ALB ingress controllers
2705 ## @param s3.ingress.annotations Additional annotations for the Ingress resource. To enable certificate autogeneration, place here your cert-manager annotations.
2706 ## Use this parameter to set the required annotations for cert-manager, see
2707 ## ref: https://cert-manager.io/docs/usage/ingress/#supported-annotations
2710 ## kubernetes.io/ingress.class: nginx
2711 ## cert-manager.io/cluster-issuer: cluster-issuer-name
2714 ## @param s3.ingress.tls Enable TLS configuration for the host defined at `ingress.hostname` parameter
2715 ## TLS certificates will be retrieved from a TLS secret with name: `{{- printf "%s-tls" .Values.ingress.hostname }}`
2717 ## - Use the `ingress.secrets` parameter to create this TLS secret
2718 ## - Rely on cert-manager to create it by setting the corresponding annotations
2719 ## - Rely on Helm to create self-signed certificates by setting `ingress.selfSigned=true`
2722 ## @param s3.ingress.selfSigned Create a TLS secret for this ingress record using self-signed certificates generated by Helm
2725 ## @param s3.ingress.extraHosts An array with additional hostname(s) to be covered with the ingress record
2728 ## - name: s3.seaweedfs.local
2732 ## @param s3.ingress.extraPaths An array with additional arbitrary paths that may need to be added to the ingress under the main host
2737 ## serviceName: ssl-redirect
2738 ## servicePort: use-annotation
2741 ## @param s3.ingress.extraTls TLS configuration for additional hostname(s) to be covered with this ingress record
2742 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls
2746 ## - s3.seaweedfs.local
2747 ## secretName: s3.seaweedfs.local-tls
2750 ## @param s3.ingress.secrets Custom TLS certificates as secrets
2751 ## NOTE: 'key' and 'certificate' are expected in PEM format
2752 ## NOTE: 'name' should line up with a 'secretName' set further up
2753 ## 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
2754 ## If it is not set and you're NOT using cert-manager either, self-signed certificates will be created valid for 365 days
2755 ## It is also possible to create and manage the certificates outside of this helm chart
2756 ## Please see README.md for more information
2759 ## - name: s3.seaweedfs.local-tls
2761 ## -----BEGIN RSA PRIVATE KEY-----
2763 ## -----END RSA PRIVATE KEY-----
2765 ## -----BEGIN CERTIFICATE-----
2767 ## -----END CERTIFICATE-----
2770 ## @param s3.ingress.extraRules Additional rules to be covered with this ingress record
2771 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-rules
2774 ## - host: example.local
2779 ## name: example-svc
2784 ## @section Amazon S3 API Metrics Parameters
2787 ## @param s3.metrics.enabled Enable the export of Prometheus metrics
2790 ## Metrics service properties
2793 ## @param s3.metrics.service.port Metrics service port
2796 ## @param s3.metrics.service.annotations Annotations for the metrics service.
2799 ## Prometheus Operator ServiceMonitor configuration
2802 ## @param s3.metrics.serviceMonitor.enabled if `true`, creates a Prometheus Operator ServiceMonitor (also requires `metrics.enabled` to be `true`)
2805 ## @param s3.metrics.serviceMonitor.namespace Namespace in which Prometheus is running
2808 ## @param s3.metrics.serviceMonitor.annotations Additional custom annotations for the ServiceMonitor
2811 ## @param s3.metrics.serviceMonitor.labels Extra labels for the ServiceMonitor
2814 ## @param s3.metrics.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in Prometheus
2817 ## @param s3.metrics.serviceMonitor.honorLabels honorLabels chooses the metric's labels on collisions with target labels
2820 ## @param s3.metrics.serviceMonitor.interval Interval at which metrics should be scraped.
2821 ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
2826 ## @param s3.metrics.serviceMonitor.scrapeTimeout Timeout after which the scrape is ended
2827 ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
2829 ## scrapeTimeout: 10s
2832 ## @param s3.metrics.serviceMonitor.metricRelabelings Specify additional relabeling of metrics
2834 metricRelabelings: []
2835 ## @param s3.metrics.serviceMonitor.relabelings Specify general relabeling
2838 ## @param s3.metrics.serviceMonitor.selector Prometheus instance selector labels
2840 ## prometheus: my-prometheus
2843## @section WebDAV Parameters
2846 ## @param webdav.enabled Enable WebDAV deployment
2849 ## @param webdav.replicaCount Number of WebDAV replicas to deploy
2852 ## @param webdav.containerPorts.http WebDAV HTTP container port (HTTPS if `webdav.tls.enabled` is `true`)
2856 ## @param webdav.extraContainerPorts Optionally specify extra list of additional ports for WebDAV containers
2858 ## extraContainerPorts:
2859 ## - name: myservice
2860 ## containerPort: 9090
2862 extraContainerPorts: []
2863 ## Configure extra options for WebDAV containers' liveness and readiness probes
2864 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
2865 ## @param webdav.livenessProbe.enabled Enable livenessProbe on WebDAV containers
2866 ## @param webdav.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
2867 ## @param webdav.livenessProbe.periodSeconds Period seconds for livenessProbe
2868 ## @param webdav.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
2869 ## @param webdav.livenessProbe.failureThreshold Failure threshold for livenessProbe
2870 ## @param webdav.livenessProbe.successThreshold Success threshold for livenessProbe
2874 initialDelaySeconds: 30
2879 ## @param webdav.readinessProbe.enabled Enable readinessProbe on WebDAV containers
2880 ## @param webdav.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
2881 ## @param webdav.readinessProbe.periodSeconds Period seconds for readinessProbe
2882 ## @param webdav.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
2883 ## @param webdav.readinessProbe.failureThreshold Failure threshold for readinessProbe
2884 ## @param webdav.readinessProbe.successThreshold Success threshold for readinessProbe
2888 initialDelaySeconds: 30
2893 ## @param webdav.startupProbe.enabled Enable startupProbe on WebDAV containers
2894 ## @param webdav.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
2895 ## @param webdav.startupProbe.periodSeconds Period seconds for startupProbe
2896 ## @param webdav.startupProbe.timeoutSeconds Timeout seconds for startupProbe
2897 ## @param webdav.startupProbe.failureThreshold Failure threshold for startupProbe
2898 ## @param webdav.startupProbe.successThreshold Success threshold for startupProbe
2902 initialDelaySeconds: 5
2905 failureThreshold: 15
2907 ## @param webdav.customLivenessProbe Custom livenessProbe that overrides the default one
2909 customLivenessProbe: {}
2910 ## @param webdav.customReadinessProbe Custom readinessProbe that overrides the default one
2912 customReadinessProbe: {}
2913 ## @param webdav.customStartupProbe Custom startupProbe that overrides the default one
2915 customStartupProbe: {}
2916 ## WebDAV resource requests and limits
2917 ## ref: http://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
2918 ## @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).
2920 resourcesPreset: "nano"
2921 ## @param webdav.resources Set WebDAV container requests and limits for different resources like CPU or memory (essential for production workloads)
2932 ## Configure Pods Security Context
2933 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
2934 ## @param webdav.podSecurityContext.enabled Enable WebDAV pods' Security Context
2935 ## @param webdav.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy for WebDAV pods
2936 ## @param webdav.podSecurityContext.sysctls Set kernel settings using the sysctl interface for WebDAV pods
2937 ## @param webdav.podSecurityContext.supplementalGroups Set filesystem extra groups for WebDAV pods
2938 ## @param webdav.podSecurityContext.fsGroup Set fsGroup in WebDAV pods' Security Context
2942 fsGroupChangePolicy: Always
2944 supplementalGroups: []
2946 ## Configure Container Security Context
2947 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
2948 ## @param webdav.containerSecurityContext.enabled Enabled WebDAV container' Security Context
2949 ## @param webdav.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in WebDAV container
2950 ## @param webdav.containerSecurityContext.runAsUser Set runAsUser in WebDAV container' Security Context
2951 ## @param webdav.containerSecurityContext.runAsGroup Set runAsGroup in WebDAV container' Security Context
2952 ## @param webdav.containerSecurityContext.runAsNonRoot Set runAsNonRoot in WebDAV container' Security Context
2953 ## @param webdav.containerSecurityContext.readOnlyRootFilesystem Set readOnlyRootFilesystem in WebDAV container' Security Context
2954 ## @param webdav.containerSecurityContext.privileged Set privileged in WebDAV container' Security Context
2955 ## @param webdav.containerSecurityContext.allowPrivilegeEscalation Set allowPrivilegeEscalation in WebDAV container' Security Context
2956 ## @param webdav.containerSecurityContext.capabilities.drop List of capabilities to be dropped in WebDAV container
2957 ## @param webdav.containerSecurityContext.seccompProfile.type Set seccomp profile in WebDAV container
2959 containerSecurityContext:
2965 readOnlyRootFilesystem: true
2967 allowPrivilegeEscalation: false
2971 type: "RuntimeDefault"
2972 ## @param webdav.logLevel WebDAV log level (0, 1, 2, 3, or 4)
2975 ## TLS configuration for WebDAV
2978 ## @param webdav.tls.enabled Enable TLS transport for WebDAV
2981 ## @param webdav.tls.autoGenerated.enabled Enable automatic generation of certificates for TLS
2982 ## @param webdav.tls.autoGenerated.engine Mechanism to generate the certificates (allowed values: helm, cert-manager)
2986 ## @param webdav.tls.autoGenerated.certManager.existingIssuer The name of an existing Issuer to use for generating the certificates (only for `cert-manager` engine)
2987 ## @param webdav.tls.autoGenerated.certManager.existingIssuerKind Existing Issuer kind, defaults to Issuer (only for `cert-manager` engine)
2988 ## @param webdav.tls.autoGenerated.certManager.keyAlgorithm Key algorithm for the certificates (only for `cert-manager` engine)
2989 ## @param webdav.tls.autoGenerated.certManager.keySize Key size for the certificates (only for `cert-manager` engine)
2990 ## @param webdav.tls.autoGenerated.certManager.duration Duration for the certificates (only for `cert-manager` engine)
2991 ## @param webdav.tls.autoGenerated.certManager.renewBefore Renewal period for the certificates (only for `cert-manager` engine)
2994 existingIssuerKind: ""
2999 ## @param webdav.tls.existingSecret The name of an existing Secret containing the certificates for TLS
3000 ## @param webdav.tls.cert Volume Server certificate for TLS. Ignored if `webdav.tls.existingSecret` is set
3001 ## @param webdav.tls.key Volume Server key for TLS. Ignored if `webdav.tls.existingSecret` is set
3006 ## @param webdav.command Override default WebDAV container command (useful when using custom images)
3009 ## @param webdav.args Override default WebDAV container args (useful when using custom images)
3012 ## @param webdav.automountServiceAccountToken Mount Service Account token in WebDAV pods
3014 automountServiceAccountToken: false
3015 ## @param webdav.hostAliases WebDAV pods host aliases
3016 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
3019 ## @param webdav.statefulsetAnnotations Annotations for WebDAV statefulset
3020 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
3022 statefulsetAnnotations: {}
3023 ## @param webdav.podLabels Extra labels for WebDAV pods
3024 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
3027 ## @param webdav.podAnnotations Annotations for WebDAV pods
3028 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
3031 ## @param webdav.podAffinityPreset Pod affinity preset. Ignored if `webdav.affinity` is set. Allowed values: `soft` or `hard`
3032 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
3034 podAffinityPreset: ""
3035 ## @param webdav.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `webdav.affinity` is set. Allowed values: `soft` or `hard`
3036 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
3038 podAntiAffinityPreset: soft
3039 ## Node webdav.affinity preset
3040 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
3043 ## @param webdav.nodeAffinityPreset.type Node affinity preset type. Ignored if `webdav.affinity` is set. Allowed values: `soft` or `hard`
3046 ## @param webdav.nodeAffinityPreset.key Node label key to match. Ignored if `webdav.affinity` is set
3049 ## @param webdav.nodeAffinityPreset.values Node label values to match. Ignored if `webdav.affinity` is set
3056 ## @param webdav.affinity Affinity for WebDAV pods assignment
3057 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
3058 ## NOTE: `webdav.podAffinityPreset`, `webdav.podAntiAffinityPreset`, and `webdav.nodeAffinityPreset` will be ignored when it's set
3061 ## @param webdav.nodeSelector Node labels for WebDAV pods assignment
3062 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
3065 ## @param webdav.tolerations Tolerations for WebDAV pods assignment
3066 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
3069 ## @param webdav.updateStrategy.type WebDAV deployment strategy type
3070 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
3073 ## Can be set to RollingUpdate or Recreate
3076 ## @param webdav.priorityClassName WebDAV pods' priorityClassName
3078 priorityClassName: ""
3079 ## @param webdav.topologySpreadConstraints Topology Spread Constraints for WebDAV pod assignment spread across your cluster among failure-domains
3080 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
3082 topologySpreadConstraints: []
3083 ## @param webdav.schedulerName Name of the k8s scheduler (other than default) for WebDAV pods
3084 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
3087 ## @param webdav.terminationGracePeriodSeconds Seconds WebDAV pods need to terminate gracefully
3088 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
3090 terminationGracePeriodSeconds: ""
3091 ## @param webdav.lifecycleHooks for WebDAV containers to automate configuration before or after startup
3094 ## @param webdav.extraEnvVars Array with extra environment variables to add to WebDAV containers
3101 ## @param webdav.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for WebDAV containers
3104 ## @param webdav.extraEnvVarsSecret Name of existing Secret containing extra env vars for WebDAV containers
3106 extraEnvVarsSecret: ""
3107 ## @param webdav.extraVolumes Optionally specify extra list of additional volumes for the WebDAV pods
3110 ## @param webdav.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the WebDAV containers
3112 extraVolumeMounts: []
3113 ## @param webdav.sidecars Add additional sidecar containers to the WebDAV pods
3116 ## - name: your-image-name
3117 ## image: your-image
3118 ## imagePullPolicy: Always
3121 ## containerPort: 1234
3124 ## @param webdav.initContainers Add additional init containers to the WebDAV pods
3125 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
3128 ## - name: your-image-name
3129 ## image: your-image
3130 ## imagePullPolicy: Always
3131 ## command: ['sh', '-c', 'echo "hello world"']
3134 ## Pod Disruption Budget configuration
3135 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb
3136 ## @param webdav.pdb.create Enable/disable a Pod Disruption Budget creation
3137 ## @param webdav.pdb.minAvailable Minimum number/percentage of pods that should remain scheduled
3138 ## @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.
3144 ## Autoscaling configuration
3145 ## ref: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/
3146 ## @param webdav.autoscaling.enabled Enable autoscaling for webdav
3147 ## @param webdav.autoscaling.minReplicas Minimum number of webdav replicas
3148 ## @param webdav.autoscaling.maxReplicas Maximum number of webdav replicas
3149 ## @param webdav.autoscaling.targetCPU Target CPU utilization percentage
3150 ## @param webdav.autoscaling.targetMemory Target Memory utilization percentage
3158 ## @section WebDAV Traffic Exposure Parameters
3161 ## WebDAV service parameters
3164 ## @param webdav.service.type WebDAV service type
3167 ## @param webdav.service.ports.http WebDAV service HTTP port (HTTPS if `webdav.tls.enabled` is `true`)
3171 ## Node ports to expose
3172 ## @param webdav.service.nodePorts.http Node port for HTTP (HTTPS if `webdav.tls.enabled` is `true`)
3173 ## NOTE: choose port between <30000-32767>
3177 ## @param webdav.service.clusterIP WebDAV service Cluster IP
3182 ## @param webdav.service.loadBalancerIP WebDAV service Load Balancer IP
3183 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
3186 ## @param webdav.service.loadBalancerSourceRanges WebDAV service Load Balancer sources
3187 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
3189 ## loadBalancerSourceRanges:
3192 loadBalancerSourceRanges: []
3193 ## @param webdav.service.externalTrafficPolicy WebDAV service external traffic policy
3194 ## ref http://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
3196 externalTrafficPolicy: Cluster
3197 ## @param webdav.service.annotations Additional custom annotations for WebDAV service
3200 ## @param webdav.service.extraPorts Extra ports to expose in WebDAV service (normally used with the `sidecars` value)
3203 ## @param webdav.service.sessionAffinity Control where client requests go, to the same pod or round-robin
3204 ## Values: ClientIP or None
3205 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/
3207 sessionAffinity: None
3208 ## @param webdav.service.sessionAffinityConfig Additional settings for the sessionAffinity
3209 ## sessionAffinityConfig:
3211 ## timeoutSeconds: 300
3213 sessionAffinityConfig: {}
3214 ## Headless service properties
3217 ## @param webdav.service.headless.annotations Annotations for the headless service.
3220 ## Network Policies for WebDAV
3221 ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
3224 ## @param webdav.networkPolicy.enabled Specifies whether a NetworkPolicy should be created for WebDAV
3227 ## @param webdav.networkPolicy.allowExternal Don't require server label for connections
3228 ## The Policy model to apply. When set to false, only pods with the correct
3229 ## server label will have network access to the ports server is listening
3230 ## on. When true, server will accept connections from any source
3231 ## (with the correct destination port).
3234 ## @param webdav.networkPolicy.allowExternalEgress Allow the WebDAV pods to access any range of port and all destinations.
3236 allowExternalEgress: true
3237 ## @param webdav.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
3247 ## - matchExpressions:
3253 ## @param webdav.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy (ignored if allowExternalEgress=true)
3263 ## - matchExpressions:
3270 ## @param webdav.networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
3271 ## @param webdav.networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
3273 ingressNSMatchLabels: {}
3274 ingressNSPodMatchLabels: {}
3275 ## WebDAV ingress parameters
3276 ## ref: http://kubernetes.io/docs/concepts/services-networking/ingress/
3279 ## @param webdav.ingress.enabled Enable ingress record generation for WebDAV
3282 ## @param webdav.ingress.pathType Ingress path type
3284 pathType: ImplementationSpecific
3285 ## @param webdav.ingress.apiVersion Force Ingress API version (automatically detected if not set)
3288 ## @param webdav.ingress.hostname Default host for the ingress record
3290 hostname: webdav.seaweedfs.local
3291 ## @param webdav.ingress.ingressClassName IngressClass that will be be used to implement the Ingress (Kubernetes 1.18+)
3292 ## This is supported in Kubernetes 1.18+ and required if you have more than one IngressClass marked as the default for your cluster .
3293 ## ref: https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/
3295 ingressClassName: ""
3296 ## @param webdav.ingress.path Default path for the ingress record
3297 ## NOTE: You may need to set this to '/*' in order to use this with ALB ingress controllers
3300 ## @param webdav.ingress.annotations Additional annotations for the Ingress resource. To enable certificate autogeneration, place here your cert-manager annotations.
3301 ## Use this parameter to set the required annotations for cert-manager, see
3302 ## ref: https://cert-manager.io/docs/usage/ingress/#supported-annotations
3305 ## kubernetes.io/ingress.class: nginx
3306 ## cert-manager.io/cluster-issuer: cluster-issuer-name
3309 ## @param webdav.ingress.tls Enable TLS configuration for the host defined at `ingress.hostname` parameter
3310 ## TLS certificates will be retrieved from a TLS secret with name: `{{- printf "%s-tls" .Values.ingress.hostname }}`
3312 ## - Use the `ingress.secrets` parameter to create this TLS secret
3313 ## - Rely on cert-manager to create it by setting the corresponding annotations
3314 ## - Rely on Helm to create self-signed certificates by setting `ingress.selfSigned=true`
3317 ## @param webdav.ingress.selfSigned Create a TLS secret for this ingress record using self-signed certificates generated by Helm
3320 ## @param webdav.ingress.extraHosts An array with additional hostname(s) to be covered with the ingress record
3323 ## - name: webdav.seaweedfs.local
3327 ## @param webdav.ingress.extraPaths An array with additional arbitrary paths that may need to be added to the ingress under the main host
3332 ## serviceName: ssl-redirect
3333 ## servicePort: use-annotation
3336 ## @param webdav.ingress.extraTls TLS configuration for additional hostname(s) to be covered with this ingress record
3337 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls
3341 ## - webdav.seaweedfs.local
3342 ## secretName: webdav.seaweedfs.local-tls
3345 ## @param webdav.ingress.secrets Custom TLS certificates as secrets
3346 ## NOTE: 'key' and 'certificate' are expected in PEM format
3347 ## NOTE: 'name' should line up with a 'secretName' set further up
3348 ## 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
3349 ## If it is not set and you're NOT using cert-manager either, self-signed certificates will be created valid for 365 days
3350 ## It is also possible to create and manage the certificates outside of this helm chart
3351 ## Please see README.md for more information
3354 ## - name: webdav.seaweedfs.local-tls
3356 ## -----BEGIN RSA PRIVATE KEY-----
3358 ## -----END RSA PRIVATE KEY-----
3360 ## -----BEGIN CERTIFICATE-----
3362 ## -----END CERTIFICATE-----
3365 ## @param webdav.ingress.extraRules Additional rules to be covered with this ingress record
3366 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-rules
3369 ## - host: example.local
3374 ## name: example-svc
3379## @section IAM Parameters
3382 ## @param iam.enabled Enable IAM deployment (DEPRECATED in SeaweedFS 4.x - IAM is now embedded in filer/s3)
3385 ## @param iam.replicaCount Number of IAM replicas to deploy
3388 ## @param iam.containerPorts.http IAM HTTP container port
3392 ## Configure extra options for IAM containers' liveness and readiness probes
3393 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
3394 ## @param iam.livenessProbe.enabled Enable livenessProbe on IAM containers
3395 ## @param iam.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
3396 ## @param iam.livenessProbe.periodSeconds Period seconds for livenessProbe
3397 ## @param iam.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
3398 ## @param iam.livenessProbe.failureThreshold Failure threshold for livenessProbe
3399 ## @param iam.livenessProbe.successThreshold Success threshold for livenessProbe
3403 initialDelaySeconds: 30
3408 ## @param iam.readinessProbe.enabled Enable readinessProbe on IAM containers
3409 ## @param iam.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
3410 ## @param iam.readinessProbe.periodSeconds Period seconds for readinessProbe
3411 ## @param iam.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
3412 ## @param iam.readinessProbe.failureThreshold Failure threshold for readinessProbe
3413 ## @param iam.readinessProbe.successThreshold Success threshold for readinessProbe
3417 initialDelaySeconds: 30
3422 ## @param iam.startupProbe.enabled Enable startupProbe on IAM containers
3423 ## @param iam.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
3424 ## @param iam.startupProbe.periodSeconds Period seconds for startupProbe
3425 ## @param iam.startupProbe.timeoutSeconds Timeout seconds for startupProbe
3426 ## @param iam.startupProbe.failureThreshold Failure threshold for startupProbe
3427 ## @param iam.startupProbe.successThreshold Success threshold for startupProbe
3431 initialDelaySeconds: 5
3434 failureThreshold: 15
3436 ## IAM resource requests and limits
3437 ## ref: http://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
3438 ## @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).
3440 resourcesPreset: "nano"
3441 ## @param iam.resources Set IAM container requests and limits for different resources like CPU or memory (essential for production workloads)
3452 ## Configure Pods Security Context
3453 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
3454 ## @param iam.podSecurityContext.enabled Enable IAM pods' Security Context
3455 ## @param iam.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy for IAM pods
3456 ## @param iam.podSecurityContext.sysctls Set kernel settings using the sysctl interface for IAM pods
3457 ## @param iam.podSecurityContext.supplementalGroups Set filesystem extra groups for IAM pods
3458 ## @param iam.podSecurityContext.fsGroup Set fsGroup in IAM pods' Security Context
3462 fsGroupChangePolicy: Always
3464 supplementalGroups: []
3466 ## Configure Container Security Context
3467 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
3468 ## @param iam.containerSecurityContext.enabled Enabled IAM container' Security Context
3469 ## @param iam.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in IAM container
3470 ## @param iam.containerSecurityContext.runAsUser Set runAsUser in IAM container' Security Context
3471 ## @param iam.containerSecurityContext.runAsGroup Set runAsGroup in IAM container' Security Context
3472 ## @param iam.containerSecurityContext.runAsNonRoot Set runAsNonRoot in IAM container' Security Context
3473 ## @param iam.containerSecurityContext.readOnlyRootFilesystem Set readOnlyRootFilesystem in IAM container' Security Context
3474 ## @param iam.containerSecurityContext.privileged Set privileged in IAM container' Security Context
3475 ## @param iam.containerSecurityContext.allowPrivilegeEscalation Set allowPrivilegeEscalation in IAM container' Security Context
3476 ## @param iam.containerSecurityContext.capabilities.drop List of capabilities to be dropped in IAM container
3477 ## @param iam.containerSecurityContext.seccompProfile.type Set seccomp profile in IAM container
3479 containerSecurityContext:
3485 readOnlyRootFilesystem: true
3487 allowPrivilegeEscalation: false
3491 type: "RuntimeDefault"
3492 ## @param iam.logLevel IAM log level (0, 1, 2, 3, or 4)
3495 ## @param iam.command Override default IAM container command (useful when using custom images)
3498 ## @param iam.args Override default IAM container args (useful when using custom images)
3501 ## @param iam.automountServiceAccountToken Mount Service Account token in IAM pods
3503 automountServiceAccountToken: false
3504 ## @param iam.hostAliases IAM pods host aliases
3505 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
3508 ## @param iam.statefulsetAnnotations Annotations for IAM statefulset
3509 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
3511 statefulsetAnnotations: {}
3512 ## @param iam.podLabels Extra labels for IAM pods
3513 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
3516 ## @param iam.podAnnotations Annotations for IAM pods
3517 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
3520 ## @param iam.podAffinityPreset Pod affinity preset. Ignored if `iam.affinity` is set. Allowed values: `soft` or `hard`
3521 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
3523 podAffinityPreset: ""
3524 ## @param iam.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `iam.affinity` is set. Allowed values: `soft` or `hard`
3525 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
3527 podAntiAffinityPreset: soft
3528 ## Node iam.affinity preset
3529 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
3532 ## @param iam.nodeAffinityPreset.type Node affinity preset type. Ignored if `iam.affinity` is set. Allowed values: `soft` or `hard`
3535 ## @param iam.nodeAffinityPreset.key Node label key to match. Ignored if `iam.affinity` is set
3538 ## @param iam.nodeAffinityPreset.values Node label values to match. Ignored if `iam.affinity` is set
3545 ## @param iam.affinity Affinity for IAM pods assignment
3546 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
3547 ## NOTE: `iam.podAffinityPreset`, `iam.podAntiAffinityPreset`, and `iam.nodeAffinityPreset` will be ignored when it's set
3550 ## @param iam.nodeSelector Node labels for IAM pods assignment
3551 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
3554 ## @param iam.tolerations Tolerations for IAM pods assignment
3555 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
3558 ## @param iam.updateStrategy.type IAM deployment strategy type
3559 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
3562 ## Can be set to RollingUpdate or Recreate
3565 ## @param iam.priorityClassName IAM pods' priorityClassName
3567 priorityClassName: ""
3568 ## @param iam.topologySpreadConstraints Topology Spread Constraints for IAM pod assignment spread across your cluster among failure-domains
3569 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
3571 topologySpreadConstraints: []
3572 ## @param iam.schedulerName Name of the k8s scheduler (other than default) for IAM pods
3573 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
3576 ## @param iam.terminationGracePeriodSeconds Seconds IAM pods need to terminate gracefully
3577 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
3579 terminationGracePeriodSeconds: ""
3580 ## @param iam.lifecycleHooks for IAM containers to automate configuration before or after startup
3583 ## @param iam.extraEnvVars Array with extra environment variables to add to IAM containers
3590 ## @param iam.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for IAM containers
3593 ## @param iam.extraEnvVarsSecret Name of existing Secret containing extra env vars for IAM containers
3595 extraEnvVarsSecret: ""
3596 ## @param iam.extraVolumes Optionally specify extra list of additional volumes for the IAM pods
3599 ## @param iam.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the IAM containers
3601 extraVolumeMounts: []
3602 ## @param iam.sidecars Add additional sidecar containers to the IAM pods
3605 ## - name: your-image-name
3606 ## image: your-image
3607 ## imagePullPolicy: Always
3610 ## containerPort: 1234
3613 ## @param iam.initContainers Add additional init containers to the IAM pods
3614 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
3617 ## - name: your-image-name
3618 ## image: your-image
3619 ## imagePullPolicy: Always
3620 ## command: ['sh', '-c', 'echo "hello world"']
3623 ## Pod Disruption Budget configuration
3624 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb
3625 ## @param iam.pdb.create Enable/disable a Pod Disruption Budget creation
3626 ## @param iam.pdb.minAvailable Minimum number/percentage of pods that should remain scheduled
3627 ## @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.
3633 ## @section IAM Traffic Exposure Parameters
3636 ## IAM service parameters
3639 ## @param iam.service.type IAM service type
3642 ## @param iam.service.ports.http IAM service HTTP port (HTTPS if `iam.tls.enabled` is `true`)
3646 ## Node ports to expose
3647 ## @param iam.service.nodePorts.http Node port for HTTP (HTTPS if `iam.tls.enabled` is `true`)
3648 ## NOTE: choose port between <30000-32767>
3652 ## @param iam.service.clusterIP IAM service Cluster IP
3657 ## @param iam.service.loadBalancerIP IAM service Load Balancer IP
3658 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
3661 ## @param iam.service.loadBalancerSourceRanges IAM service Load Balancer sources
3662 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
3664 ## loadBalancerSourceRanges:
3667 loadBalancerSourceRanges: []
3668 ## @param iam.service.externalTrafficPolicy IAM service external traffic policy
3669 ## ref http://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
3671 externalTrafficPolicy: Cluster
3672 ## @param iam.service.annotations Additional custom annotations for IAM service
3675 ## @param iam.service.extraPorts Extra ports to expose in IAM service (normally used with the `sidecars` value)
3678 ## @param iam.service.sessionAffinity Control where client requests go, to the same pod or round-robin
3679 ## Values: ClientIP or None
3680 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/
3682 sessionAffinity: None
3683 ## @param iam.service.sessionAffinityConfig Additional settings for the sessionAffinity
3684 ## sessionAffinityConfig:
3686 ## timeoutSeconds: 300
3688 sessionAffinityConfig: {}
3689 ## Headless service properties
3691 ## Network Policies for IAM
3692 ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
3694## @section Init Container Parameters
3697## 'volumePermissions' init container parameters
3698## Changes the owner and group of the persistent volume mount point to runAsUser:fsGroup values
3699## based on the *podSecurityContext/*containerSecurityContext parameters
3702 ## @param volumePermissions.enabled Enable init container that changes the owner/group of the PV mount point to `runAsUser:fsGroup`
3705 ## OS Shell + Utility image
3706 ## @param volumePermissions.image.registry [default: REGISTRY_NAME] OS Shell + Utility image registry
3707 ## @param volumePermissions.image.repository [default: REPOSITORY_NAME/os-shell] OS Shell + Utility image repository
3708 ## @skip volumePermissions.image.tag OS Shell + Utility image tag (immutable tags are recommended)
3709 ## @param volumePermissions.image.pullPolicy OS Shell + Utility image pull policy
3710 ## @param volumePermissions.image.pullSecrets OS Shell + Utility image pull secrets
3714 repository: chainguard-private/os-shell-iamguarded
3716 pullPolicy: IfNotPresent
3717 ## Optionally specify an array of imagePullSecrets.
3718 ## Secrets must be manually created in the namespace.
3719 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
3722 ## - myRegistryKeySecretName
3725 ## Init container's resource requests and limits
3726 ## ref: http://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
3727 ## @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).
3729 resourcesPreset: "nano"
3730 ## @param volumePermissions.resources Set init container requests and limits for different resources like CPU or memory (essential for production workloads)
3741 ## Init container Container Security Context
3742 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
3743 ## @param volumePermissions.containerSecurityContext.enabled Enabled init container' Security Context
3744 ## @param volumePermissions.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in init container
3745 ## @param volumePermissions.containerSecurityContext.runAsUser Set init container's Security Context runAsUser
3746 ## NOTE: when runAsUser is set to special value "auto", init container will try to chown the
3747 ## data folder to auto-determined user&group, using commands: `id -u`:`id -G | cut -d" " -f2`
3748 ## "auto" is especially useful for OpenShift which has scc with dynamic user ids (and 0 is not allowed)
3750 containerSecurityContext:
3754## @section Other Parameters
3757## ServiceAccount configuration
3760 ## @param serviceAccount.create Specifies whether a ServiceAccount should be created
3763 ## @param serviceAccount.name The name of the ServiceAccount to use.
3764 ## If not set and create is true, a name is generated using the common.names.fullname template
3767 ## @param serviceAccount.annotations Additional Service Account annotations (evaluated as a template)
3770 ## @param serviceAccount.automountServiceAccountToken Automount service account token for the server service account
3772 automountServiceAccountToken: false
3773## @section Database Parameters
3776## MariaDB chart configuration
3779 ## @param mariadb.enabled Deploy a MariaDB server to satisfy the Filer server database requirements
3780 ## To use an external database set this to false and configure the `externalDatabase.*` parameters
3783 ## Iamguarded MariaDB image
3784 ## @param mariadb.image.registry [default: REGISTRY_NAME] MariaDB image registry
3785 ## @param mariadb.image.repository [default: REPOSITORY_NAME/mariadb] MariaDB image repository
3786 ## @skip mariadb.image.tag MariaDB image tag (immutable tags are recommended)
3787 ## @param mariadb.image.digest MariaDB image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
3788 ## @param mariadb.image.pullPolicy MariaDB image pull policy
3789 ## @param mariadb.image.pullSecrets Specify docker-registry secret names as an array
3793 repository: chainguard-private/mariadb-iamguarded
3794 tag: 12.0.2-debian-12-r0
3796 ## Specify a imagePullPolicy
3797 ## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
3799 pullPolicy: IfNotPresent
3800 ## Optionally specify an array of imagePullSecrets (secrets must be manually created in the namespace)
3801 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
3804 ## - myRegistryKeySecretName
3807 ## @param mariadb.architecture MariaDB architecture. Allowed values: `standalone` or `replication`
3809 architecture: standalone
3810 ## MariaDB Authentication parameters
3811 ## @param mariadb.auth.rootPassword MariaDB root password
3812 ## @param mariadb.auth.database MariaDB custom database
3813 ## @param mariadb.auth.username MariaDB custom user name
3814 ## @param mariadb.auth.password MariaDB custom user password
3818 database: iamguarded_seaweedfs
3819 username: bn_seaweedfs
3821 ## @param mariadb.initdbScripts [object] Specify dictionary of scripts to be run at first boot
3825 USE iamguarded_seaweedfs;
3826 CREATE TABLE IF NOT EXISTS filemeta (
3827 `dirhash` BIGINT NOT NULL COMMENT 'first 64 bits of MD5 hash value of directory field',
3828 `name` VARCHAR(766) NOT NULL COMMENT 'directory or file name',
3829 `directory` TEXT NOT NULL COMMENT 'full path to parent directory',
3831 PRIMARY KEY (`dirhash`, `name`)
3832 ) DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
3833 ## MariaDB Primary configuration
3836 ## MariaDB Primary Persistence parameters
3837 ## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
3838 ## @param mariadb.primary.persistence.enabled Enable persistence on MariaDB using PVC(s)
3839 ## @param mariadb.primary.persistence.storageClass Persistent Volume storage class
3840 ## @param mariadb.primary.persistence.accessModes [array] Persistent Volume access modes
3841 ## @param mariadb.primary.persistence.size Persistent Volume size
3849 ## MariaDB primary container's resource requests and limits
3850 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
3851 ## We usually recommend not to specify default resources and to leave this as a conscious
3852 ## choice for the user. This also increases chances charts run on environments with little
3853 ## resources, such as Minikube. If you do want to specify resources, uncomment the following
3854 ## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
3855 ## @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).
3857 resourcesPreset: "micro"
3858 ## @param mariadb.primary.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
3869## PostgresSQL chart configuration
3872 ## @param postgresql.enabled Deploy a PostgresSQL server to satisfy the Filer server database requirements
3873 ## To use an external database set this to false and configure the `externalDatabase.*` parameters
3876 ## Iamguarded PostgreSQL image version
3877 ## @param postgresql.image.registry [default: REGISTRY_NAME] PostgreSQL image registry
3878 ## @param postgresql.image.repository [default: REPOSITORY_NAME/postgresql] PostgreSQL image repository
3879 ## @skip postgresql.image.tag PostgreSQL image tag (immutable tags are recommended)
3880 ## @param postgresql.image.digest PostgreSQL image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
3881 ## @param postgresql.image.pullPolicy PostgreSQL image pull policy
3882 ## @param postgresql.image.pullSecrets Specify image pull secrets
3886 repository: chainguard-private/postgres-iamguarded
3889 ## Specify a imagePullPolicy
3890 ## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
3892 pullPolicy: IfNotPresent
3893 ## Optionally specify an array of imagePullSecrets.
3894 ## Secrets must be manually created in the namespace.
3895 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
3898 ## - myRegistryKeySecretName
3901 ## @param postgresql.architecture PostgreSQL architecture (`standalone` or `replication`)
3903 architecture: standalone
3904 ## @param postgresql.auth.postgresPassword Password for the "postgres" admin user. Ignored if `auth.existingSecret` with key `postgres-password` is provided
3905 ## @param postgresql.auth.database Name for a custom database to create
3906 ## @param postgresql.auth.username Name for a custom user to create
3907 ## @param postgresql.auth.password Password for the custom user to create
3908 ## @param postgresql.auth.existingSecret Name of existing secret to use for PostgreSQL credentials
3909 ## @param postgresql.auth.secretKeys.userPasswordKey Name of key in existing secret to use for PostgreSQL credentials. Only used when `auth.existingSecret` is set.
3911 postgresPassword: ""
3912 database: iamguarded_seaweedfs
3913 username: bn_seaweedfs
3914 password: some-password
3917 userPasswordKey: password
3918 ## PostgreSQL Primary configuration
3921 ## PostgreSQL Primary resource requests and limits
3922 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
3923 ## @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).
3925 resourcesPreset: "nano"
3926 ## @param postgresql.primary.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
3937 ## @param postgresql.primary.initdb.scripts [object] Dictionary of initdb scripts
3942 \c iamguarded_seaweedfs;
3943 CREATE TABLE IF NOT EXISTS filemeta (
3945 name VARCHAR(65535),
3946 directory VARCHAR(65535),
3948 PRIMARY KEY (dirhash, name)
3950 ## PostgreSQL Primary Persistence parameters
3951 ## ref: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
3952 ## @param postgresql.primary.persistence.enabled Enable PostgreSQL Primary data persistence using PVC(s)
3953 ## @param postgresql.primary.persistence.storageClass Persistent Volume storage class
3954 ## @param postgresql.primary.persistence.accessModes [array] Persistent Volume access modes
3955 ## @param postgresql.primary.persistence.size Persistent Volume size
3963## External Database Configuration
3964## All of these values are only used if `mariadb.enabled=false` and `externalDatabase.enabled=true`.
3967 ## @param externalDatabase.enabled Enable external database support
3970 ## @param externalDatabase.store Database store (mariadb, postgresql)
3973 ## @param externalDatabase.host External Database server host
3976 ## @param externalDatabase.port External Database server port
3979 ## @param externalDatabase.user External Database username
3982 ## @param externalDatabase.password External Database user password
3985 ## @param externalDatabase.database External Database database name
3987 database: iamguarded_seaweedfs
3988 ## @param externalDatabase.existingSecret The name of an existing secret with database credentials. Evaluated as a template
3989 ## NOTE: Must contain key `mariadb-password` for mariadb or 'postgres-password' for postgres
3990 ## NOTE: When it's set, the `externalDatabase.password` parameter is ignored
3993 ## @param externalDatabase.waitForDatabaseEnabled Whether to check for external database before starting seaweedfs containers
3995 waitForDatabaseEnabled: true
3997 ## Init external database job
4000 ## @param externalDatabase.initDatabaseJob.enabled Enable the init external database job
4003 ## @param externalDatabase.initDatabaseJob.labels Extra labels for the init external database job
4006 ## @param externalDatabase.initDatabaseJob.annotations [object] Extra annotations for the init external database job
4009 helm.sh/hook: post-install
4010 helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
4011 ## @param externalDatabase.initDatabaseJob.backoffLimit Set backoff limit of the init external database job
4014 ## Configure Container Security Context
4015 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
4016 ## @param externalDatabase.initDatabaseJob.containerSecurityContext.enabled Enabled init external database job containers' Security Context
4017 ## @param externalDatabase.initDatabaseJob.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
4018 ## @param externalDatabase.initDatabaseJob.containerSecurityContext.runAsUser Set init external database job containers' Security Context runAsUser
4019 ## @param externalDatabase.initDatabaseJob.containerSecurityContext.runAsGroup Set init external database job containers' Security Context runAsGroup
4020 ## @param externalDatabase.initDatabaseJob.containerSecurityContext.runAsNonRoot Set init external database job containers' Security Context runAsNonRoot
4021 ## @param externalDatabase.initDatabaseJob.containerSecurityContext.privileged Set init external database job containers' Security Context privileged
4022 ## @param externalDatabase.initDatabaseJob.containerSecurityContext.readOnlyRootFilesystem Set init external database job containers' Security Context readOnlyRootFilesystem
4023 ## @param externalDatabase.initDatabaseJob.containerSecurityContext.allowPrivilegeEscalation Set init external database job containers' Security Context allowPrivilegeEscalation
4024 ## @param externalDatabase.initDatabaseJob.containerSecurityContext.capabilities.drop List of capabilities to be dropped
4025 ## @param externalDatabase.initDatabaseJob.containerSecurityContext.seccompProfile.type Set init external database job containers' Security Context seccomp profile
4027 containerSecurityContext:
4034 readOnlyRootFilesystem: true
4035 allowPrivilegeEscalation: false
4039 type: "RuntimeDefault"
4040 ## Configure Pods Security Context
4041 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
4042 ## @param externalDatabase.initDatabaseJob.podSecurityContext.enabled Enabled init external database job pods' Security Context
4043 ## @param externalDatabase.initDatabaseJob.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
4044 ## @param externalDatabase.initDatabaseJob.podSecurityContext.sysctls Set kernel settings using the sysctl interface
4045 ## @param externalDatabase.initDatabaseJob.podSecurityContext.supplementalGroups Set filesystem extra groups
4046 ## @param externalDatabase.initDatabaseJob.podSecurityContext.fsGroup Set init external database job pod's Security Context fsGroup
4050 fsGroupChangePolicy: Always
4052 supplementalGroups: []
4054 ## Container resource requests and limits
4055 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
4056 ## @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).
4058 resourcesPreset: "micro"
4059 ## @param externalDatabase.initDatabaseJob.resources Set init external database job container requests and limits for different resources like CPU or memory (essential for production workloads)
4070 ## @param externalDatabase.initDatabaseJob.automountServiceAccountToken Mount Service Account token in external database job pod
4072 automountServiceAccountToken: false