123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483 |
- # Available parameters and their default values for the SeaweedFS chart.
- global:
- registry: ""
- repository: ""
- imageName: chrislusf/seaweedfs
- imagePullPolicy: IfNotPresent
- imagePullSecrets: imagepullsecret
- restartPolicy: Always
- loggingLevel: 1
- enableSecurity: false
- monitoring:
- enabled: false
- gatewayHost: null
- gatewayPort: null
- # if enabled will use global.replicationPlacment and override master & filer defaultReplicaPlacement config
- enableReplication: false
- # replication type is XYZ:
- # X number of replica in other data centers
- # Y number of replica in other racks in the same data center
- # Z number of replica in other servers in the same rack
- replicationPlacment: "001"
- extraEnvironmentVars:
- WEED_CLUSTER_DEFAULT: "sw"
- WEED_CLUSTER_SW_MASTER: "seaweedfs-master:9333"
- WEED_CLUSTER_SW_FILER: "seaweedfs-filer-client:8888"
- image:
- registry: ""
- repository: ""
- master:
- enabled: true
- repository: null
- imageName: null
- imageTag: null
- imageOverride: null
- restartPolicy: null
- replicas: 1
- port: 9333
- grpcPort: 19333
- metricsPort: 9327
- ipBind: "0.0.0.0"
- volumePreallocate: false
- volumeSizeLimitMB: 1000
- loggingOverrideLevel: null
- #number of seconds between heartbeats, default 5
- pulseSeconds: null
- #threshold to vacuum and reclaim spaces, default 0.3 (30%)
- garbageThreshold: null
- #Prometheus push interval in seconds, default 15
- metricsIntervalSec: 15
- # replication type is XYZ:
- # X number of replica in other data centers
- # Y number of replica in other racks in the same data center
- # Z number of replica in other servers in the same rack
- defaultReplication: "000"
- # Disable http request, only gRpc operations are allowed
- disableHttp: false
- # can use ANY storage-class , example with local-path-provisioner
- # data:
- # type: "persistentVolumeClaim"
- # size: "24Ti"
- # storageClass: "local-path-provisioner"
- data:
- type: "hostPath"
- size: ""
- storageClass: ""
- hostPathPrefix: /ssd
- logs:
- type: "hostPath"
- size: ""
- storageClass: ""
- hostPathPrefix: /storage
- initContainers: ""
- extraVolumes: ""
- extraVolumeMounts: ""
- # Resource requests, limits, etc. for the master cluster placement. This
- # should map directly to the value of the resources field for a PodSpec,
- # formatted as a multi-line string. By default no direct resource request
- # is made.
- resources: null
- # updatePartition is used to control a careful rolling update of SeaweedFS
- # masters.
- updatePartition: 0
- # Affinity Settings
- # Commenting out or setting as empty the affinity variable, will allow
- # deployment to single node services such as Minikube
- affinity: |
- podAntiAffinity:
- requiredDuringSchedulingIgnoredDuringExecution:
- - labelSelector:
- matchLabels:
- app: {{ template "seaweedfs.name" . }}
- release: "{{ .Release.Name }}"
- component: master
- topologyKey: kubernetes.io/hostname
- # Toleration Settings for master pods
- # This should be a multi-line string matching the Toleration array
- # in a PodSpec.
- tolerations: ""
- # nodeSelector labels for master pod assignment, formatted as a muli-line string.
- # ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector
- # Example:
- # nodeSelector: |
- # beta.kubernetes.io/arch: amd64
- nodeSelector: |
- sw-backend: "true"
- # used to assign priority to master pods
- # ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
- priorityClassName: ""
- ingress:
- enabled: false
- className: "nginx"
- annotations:
- nginx.ingress.kubernetes.io/auth-type: "basic"
- nginx.ingress.kubernetes.io/auth-secret: "default/ingress-basic-auth-secret"
- nginx.ingress.kubernetes.io/auth-realm: 'Authentication Required - SW-Master'
- nginx.ingress.kubernetes.io/service-upstream: "true"
- nginx.ingress.kubernetes.io/rewrite-target: /$1
- nginx.ingress.kubernetes.io/use-regex: "true"
- nginx.ingress.kubernetes.io/enable-rewrite-log: "true"
- nginx.ingress.kubernetes.io/ssl-redirect: "false"
- nginx.ingress.kubernetes.io/force-ssl-redirect: "false"
- nginx.ingress.kubernetes.io/configuration-snippet: |
- sub_filter '<head>' '<head> <base href="/sw-master/">'; #add base url
- sub_filter '="/' '="./'; #make absolute paths to relative
- sub_filter '=/' '=./';
- sub_filter '/seaweedfsstatic' './seaweedfsstatic';
- sub_filter_once off;
- extraEnvironmentVars:
- WEED_MASTER_VOLUME_GROWTH_COPY_1: 7
- WEED_MASTER_VOLUME_GROWTH_COPY_2: 6
- WEED_MASTER_VOLUME_GROWTH_COPY_3: 3
- WEED_MASTER_VOLUME_GROWTH_COPY_OTHER: 1
- volume:
- enabled: true
- repository: null
- imageName: null
- imageTag: null
- imageOverride: null
- restartPolicy: null
- port: 8080
- grpcPort: 18080
- metricsPort: 9327
- ipBind: "0.0.0.0"
- replicas: 1
- loggingOverrideLevel: null
- # number of seconds between heartbeats, must be smaller than or equal to the master's setting
- pulseSeconds: null
- # Choose [memory|leveldb|leveldbMedium|leveldbLarge] mode for memory~performance balance., default memory
- index: null
- # limit file size to avoid out of memory, default 256mb
- fileSizeLimitMB: null
- # minimum free disk space(in percents). If free disk space lower this value - all volumes marks as ReadOnly
- minFreeSpacePercent: 7
- # can use ANY storage-class , example with local-path-provisioner
- # data:
- # type: "persistentVolumeClaim"
- # size: "24Ti"
- # storageClass: "local-path-provisioner"
- data:
- type: "hostPath"
- size: ""
- storageClass: ""
- hostPathPrefix: /storage
- idx:
- type: "hostPath"
- size: ""
- storageClass: ""
- hostPathPrefix: /ssd
- logs:
- type: "hostPath"
- size: ""
- storageClass: ""
- hostPathPrefix: /storage
- # limit background compaction or copying speed in mega bytes per second
- compactionMBps: "50"
- # Directories to store data files. dir[,dir]... (default "/tmp")
- dir: "/data"
- # Directories to store index files. dir[,dir]... (default is the same as "dir")
- dir_idx: null
- # Maximum numbers of volumes, count[,count]...
- # If set to zero on non-windows OS, the limit will be auto configured. (default "7")
- maxVolumes: "0"
- # Volume server's rack name
- rack: null
- # Volume server's data center name
- dataCenter: null
- # Redirect moved or non-local volumes. (default proxy)
- readMode: proxy
- # Comma separated Ip addresses having write permission. No limit if empty.
- whiteList: null
- # Adjust jpg orientation when uploading.
- imagesFixOrientation: false
- initContainers: ""
- extraVolumes: ""
- extraVolumeMounts: ""
- # Affinity Settings
- # Commenting out or setting as empty the affinity variable, will allow
- # deployment to single node services such as Minikube
- affinity: |
- podAntiAffinity:
- requiredDuringSchedulingIgnoredDuringExecution:
- - labelSelector:
- matchLabels:
- app: {{ template "seaweedfs.name" . }}
- release: "{{ .Release.Name }}"
- component: volume
- topologyKey: kubernetes.io/hostname
- # Resource requests, limits, etc. for the server cluster placement. This
- # should map directly to the value of the resources field for a PodSpec,
- # formatted as a multi-line string. By default no direct resource request
- # is made.
- resources: null
- # Toleration Settings for server pods
- # This should be a multi-line string matching the Toleration array
- # in a PodSpec.
- tolerations: ""
- # nodeSelector labels for server pod assignment, formatted as a muli-line string.
- # ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector
- # Example:
- # nodeSelector: |
- # beta.kubernetes.io/arch: amd64
- nodeSelector: |
- sw-volume: "true"
- # used to assign priority to server pods
- # ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
- priorityClassName: ""
- filer:
- enabled: true
- repository: null
- imageName: null
- imageTag: null
- imageOverride: null
- restartPolicy: null
- replicas: 1
- port: 8888
- grpcPort: 18888
- metricsPort: 9327
- loggingOverrideLevel: null
- # replication type is XYZ:
- # X number of replica in other data centers
- # Y number of replica in other racks in the same data center
- # Z number of replica in other servers in the same rack
- defaultReplicaPlacement: "000"
- # turn off directory listing
- disableDirListing: false
- # split files larger than the limit, default 32
- maxMB: null
- # encrypt data on volume servers
- encryptVolumeData: false
- # Whether proxy or redirect to volume server during file GET request
- redirectOnRead: false
- # Limit sub dir listing size (default 100000)
- dirListLimit: 100000
- # Disable http request, only gRpc operations are allowed
- disableHttp: false
- # DEPRECATE: enablePVC, storage, storageClass
- # Consider replacing with filer.data section below instead.
- # Settings for configuring stateful storage of filer pods.
- # enablePVC will create a pvc for filer for data persistence.
- enablePVC: false
- # storage should be set to the disk size of the attached volume.
- storage: 25Gi
- # storageClass is the class of storage which defaults to null (the Kube cluster will pick the default).
- storageClass: null
- # can use ANY storage-class , example with local-path-provisioner
- # data:
- # type: "persistentVolumeClaim"
- # size: "24Ti"
- # storageClass: "local-path-provisioner"
- data:
- type: "hostPath"
- size: ""
- storageClass: ""
- hostPathPrefix: /storage
- logs:
- type: "hostPath"
- size: ""
- storageClass: ""
- hostPathPrefix: /storage
- initContainers: ""
- extraVolumes: ""
- extraVolumeMounts: ""
- # Affinity Settings
- # Commenting out or setting as empty the affinity variable, will allow
- # deployment to single node services such as Minikube
- affinity: |
- podAntiAffinity:
- requiredDuringSchedulingIgnoredDuringExecution:
- - labelSelector:
- matchLabels:
- app: {{ template "seaweedfs.name" . }}
- release: "{{ .Release.Name }}"
- component: filer
- topologyKey: kubernetes.io/hostname
- # updatePartition is used to control a careful rolling update of SeaweedFS
- # masters.
- updatePartition: 0
- # Resource requests, limits, etc. for the server cluster placement. This
- # should map directly to the value of the resources field for a PodSpec,
- # formatted as a multi-line string. By default no direct resource request
- # is made.
- resources: null
- # Toleration Settings for server pods
- # This should be a multi-line string matching the Toleration array
- # in a PodSpec.
- tolerations: ""
- # nodeSelector labels for server pod assignment, formatted as a muli-line string.
- # ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector
- # Example:
- # nodeSelector: |
- # beta.kubernetes.io/arch: amd64
- nodeSelector: |
- sw-backend: "true"
- # used to assign priority to server pods
- # ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
- priorityClassName: ""
- ingress:
- enabled: false
- className: "nginx"
- annotations:
- nginx.ingress.kubernetes.io/auth-type: "basic"
- nginx.ingress.kubernetes.io/auth-secret: "default/ingress-basic-auth-secret"
- nginx.ingress.kubernetes.io/auth-realm: 'Authentication Required - SW-Filer'
- nginx.ingress.kubernetes.io/service-upstream: "true"
- nginx.ingress.kubernetes.io/rewrite-target: /$1
- nginx.ingress.kubernetes.io/use-regex: "true"
- nginx.ingress.kubernetes.io/enable-rewrite-log: "true"
- nginx.ingress.kubernetes.io/ssl-redirect: "false"
- nginx.ingress.kubernetes.io/force-ssl-redirect: "false"
- nginx.ingress.kubernetes.io/configuration-snippet: |
- sub_filter '<head>' '<head> <base href="/sw-filer/">'; #add base url
- sub_filter '="/' '="./'; #make absolute paths to relative
- sub_filter '=/' '=./';
- sub_filter '/seaweedfsstatic' './seaweedfsstatic';
- sub_filter_once off;
- # extraEnvVars is a list of extra enviroment variables to set with the stateful set.
- extraEnvironmentVars:
- WEED_MYSQL_ENABLED: "true"
- WEED_MYSQL_HOSTNAME: "mysql-db-host"
- WEED_MYSQL_PORT: "3306"
- WEED_MYSQL_DATABASE: "sw_database"
- WEED_MYSQL_CONNECTION_MAX_IDLE: "5"
- WEED_MYSQL_CONNECTION_MAX_OPEN: "75"
- # "refresh" connection every 10 minutes, eliminating mysql closing "old" connections
- WEED_MYSQL_CONNECTION_MAX_LIFETIME_SECONDS: "600"
- # enable usage of memsql as filer backend
- WEED_MYSQL_INTERPOLATEPARAMS: "true"
- # if you want to use leveldb2, then should enable "enablePVC". or you may lose your data.
- WEED_LEVELDB2_ENABLED: "false"
- # with http DELETE, by default the filer would check whether a folder is empty.
- # recursive_delete will delete all sub folders and files, similar to "rm -Rf"
- WEED_FILER_OPTIONS_RECURSIVE_DELETE: "false"
- # directories under this folder will be automatically creating a separate bucket
- WEED_FILER_BUCKETS_FOLDER: "/buckets"
- s3:
- enabled: true
- port: 8333
- #allow empty folders
- allowEmptyFolder: false
- # Suffix of the host name, {bucket}.{domainName}
- domainName: ""
- # enable user & permission to s3 (need to inject to all services)
- enableAuth: false
- skipAuthSecretCreation: false
- auditLogConfig: {}
- s3:
- enabled: false
- repository: null
- imageName: null
- imageTag: null
- restartPolicy: null
- replicas: 1
- bindAddress: 0.0.0.0
- port: 8333
- metricsPort: 9327
- loggingOverrideLevel: null
- #allow empty folders
- allowEmptyFolder: true
- # enable user & permission to s3 (need to inject to all services)
- enableAuth: false
- skipAuthSecretCreation: false
- auditLogConfig: {}
- # Suffix of the host name, {bucket}.{domainName}
- domainName: ""
- initContainers: ""
- extraVolumes: ""
- extraVolumeMounts: ""
- # Resource requests, limits, etc. for the server cluster placement. This
- # should map directly to the value of the resources field for a PodSpec,
- # formatted as a multi-line string. By default no direct resource request
- # is made.
- resources: null
- # Toleration Settings for server pods
- # This should be a multi-line string matching the Toleration array
- # in a PodSpec.
- tolerations: ""
- # nodeSelector labels for server pod assignment, formatted as a muli-line string.
- # ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector
- # Example:
- # nodeSelector: |
- # beta.kubernetes.io/arch: amd64
- nodeSelector: |
- sw-backend: "true"
- # used to assign priority to server pods
- # ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
- priorityClassName: ""
- logs:
- type: "hostPath"
- size: ""
- storageClass: ""
- hostPathPrefix: /storage
- certificates:
- commonName: "SeaweedFS CA"
- ipAddresses: []
- keyAlgorithm: rsa
- keySize: 2048
- duration: 2160h # 90d
- renewBefore: 360h # 15d
|