You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

473 lines
15 KiB

3 years ago
4 years ago
  1. # Available parameters and their default values for the SeaweedFS chart.
  2. global:
  3. registry: ""
  4. repository: ""
  5. imageName: chrislusf/seaweedfs
  6. imagePullPolicy: IfNotPresent
  7. imagePullSecrets: imagepullsecret
  8. restartPolicy: Always
  9. loggingLevel: 1
  10. enableSecurity: false
  11. monitoring:
  12. enabled: false
  13. gatewayHost: null
  14. gatewayPort: null
  15. # if enabled will use global.replicationPlacment and override master & filer defaultReplicaPlacement config
  16. enableReplication: false
  17. # replication type is XYZ:
  18. # X number of replica in other data centers
  19. # Y number of replica in other racks in the same data center
  20. # Z number of replica in other servers in the same rack
  21. replicationPlacment: "001"
  22. extraEnvironmentVars:
  23. WEED_CLUSTER_DEFAULT: "sw"
  24. WEED_CLUSTER_SW_MASTER: "seaweedfs-master:9333"
  25. WEED_CLUSTER_SW_FILER: "seaweedfs-filer-client:8888"
  26. image:
  27. registry: ""
  28. repository: ""
  29. master:
  30. enabled: true
  31. repository: null
  32. imageName: null
  33. imageTag: null
  34. imageOverride: null
  35. restartPolicy: null
  36. replicas: 1
  37. port: 9333
  38. grpcPort: 19333
  39. ipBind: "0.0.0.0"
  40. volumePreallocate: false
  41. volumeSizeLimitMB: 1000
  42. loggingOverrideLevel: null
  43. #number of seconds between heartbeats, default 5
  44. pulseSeconds: null
  45. #threshold to vacuum and reclaim spaces, default 0.3 (30%)
  46. garbageThreshold: null
  47. #Prometheus push interval in seconds, default 15
  48. metricsIntervalSec: 15
  49. # replication type is XYZ:
  50. # X number of replica in other data centers
  51. # Y number of replica in other racks in the same data center
  52. # Z number of replica in other servers in the same rack
  53. defaultReplication: "000"
  54. # Disable http request, only gRpc operations are allowed
  55. disableHttp: false
  56. # can use ANY storage-class , example with local-path-provisioner
  57. # data:
  58. # type: "persistentVolumeClaim"
  59. # size: "24Ti"
  60. # storageClass: "local-path-provisioner"
  61. data:
  62. type: "hostPath"
  63. size: ""
  64. storageClass: ""
  65. logs:
  66. type: "hostPath"
  67. size: ""
  68. storageClass: ""
  69. initContainers: ""
  70. extraVolumes: ""
  71. extraVolumeMounts: ""
  72. # Resource requests, limits, etc. for the master cluster placement. This
  73. # should map directly to the value of the resources field for a PodSpec,
  74. # formatted as a multi-line string. By default no direct resource request
  75. # is made.
  76. resources: null
  77. # updatePartition is used to control a careful rolling update of SeaweedFS
  78. # masters.
  79. updatePartition: 0
  80. # Affinity Settings
  81. # Commenting out or setting as empty the affinity variable, will allow
  82. # deployment to single node services such as Minikube
  83. affinity: |
  84. podAntiAffinity:
  85. requiredDuringSchedulingIgnoredDuringExecution:
  86. - labelSelector:
  87. matchLabels:
  88. app: {{ template "seaweedfs.name" . }}
  89. release: "{{ .Release.Name }}"
  90. component: master
  91. topologyKey: kubernetes.io/hostname
  92. # Toleration Settings for master pods
  93. # This should be a multi-line string matching the Toleration array
  94. # in a PodSpec.
  95. tolerations: ""
  96. # nodeSelector labels for master pod assignment, formatted as a muli-line string.
  97. # ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector
  98. # Example:
  99. # nodeSelector: |
  100. # beta.kubernetes.io/arch: amd64
  101. nodeSelector: |
  102. sw-backend: "true"
  103. # used to assign priority to master pods
  104. # ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
  105. priorityClassName: ""
  106. ingress:
  107. enabled: false
  108. className: "nginx"
  109. annotations:
  110. nginx.ingress.kubernetes.io/auth-type: "basic"
  111. nginx.ingress.kubernetes.io/auth-secret: "default/ingress-basic-auth-secret"
  112. nginx.ingress.kubernetes.io/auth-realm: 'Authentication Required - SW-Master'
  113. nginx.ingress.kubernetes.io/service-upstream: "true"
  114. nginx.ingress.kubernetes.io/rewrite-target: /$1
  115. nginx.ingress.kubernetes.io/use-regex: "true"
  116. nginx.ingress.kubernetes.io/enable-rewrite-log: "true"
  117. nginx.ingress.kubernetes.io/ssl-redirect: "false"
  118. nginx.ingress.kubernetes.io/force-ssl-redirect: "false"
  119. nginx.ingress.kubernetes.io/configuration-snippet: |
  120. sub_filter '<head>' '<head> <base href="/sw-master/">'; #add base url
  121. sub_filter '="/' '="./'; #make absolute paths to relative
  122. sub_filter '=/' '=./';
  123. sub_filter '/seaweedfsstatic' './seaweedfsstatic';
  124. sub_filter_once off;
  125. extraEnvironmentVars:
  126. WEED_MASTER_VOLUME_GROWTH_COPY_1: 7
  127. WEED_MASTER_VOLUME_GROWTH_COPY_2: 6
  128. WEED_MASTER_VOLUME_GROWTH_COPY_3: 3
  129. WEED_MASTER_VOLUME_GROWTH_COPY_OTHER: 1
  130. volume:
  131. enabled: true
  132. repository: null
  133. imageName: null
  134. imageTag: null
  135. imageOverride: null
  136. restartPolicy: null
  137. port: 8080
  138. grpcPort: 18080
  139. metricsPort: 9327
  140. ipBind: "0.0.0.0"
  141. replicas: 1
  142. loggingOverrideLevel: null
  143. # number of seconds between heartbeats, must be smaller than or equal to the master's setting
  144. pulseSeconds: null
  145. # Choose [memory|leveldb|leveldbMedium|leveldbLarge] mode for memory~performance balance., default memory
  146. index: null
  147. # limit file size to avoid out of memory, default 256mb
  148. fileSizeLimitMB: null
  149. # minimum free disk space(in percents). If free disk space lower this value - all volumes marks as ReadOnly
  150. minFreeSpacePercent: 7
  151. # can use ANY storage-class , example with local-path-provisioner
  152. # data:
  153. # type: "persistentVolumeClaim"
  154. # size: "24Ti"
  155. # storageClass: "local-path-provisioner"
  156. data:
  157. type: "hostPath"
  158. size: ""
  159. storageClass: ""
  160. idx:
  161. type: "hostPath"
  162. size: ""
  163. storageClass: ""
  164. logs:
  165. type: "hostPath"
  166. size: ""
  167. storageClass: ""
  168. # limit background compaction or copying speed in mega bytes per second
  169. compactionMBps: "50"
  170. # Directories to store data files. dir[,dir]... (default "/tmp")
  171. dir: "/data"
  172. # Directories to store index files. dir[,dir]... (default is the same as "dir")
  173. dir_idx: null
  174. # Maximum numbers of volumes, count[,count]...
  175. # If set to zero on non-windows OS, the limit will be auto configured. (default "7")
  176. maxVolumes: "0"
  177. # Volume server's rack name
  178. rack: null
  179. # Volume server's data center name
  180. dataCenter: null
  181. # Redirect moved or non-local volumes. (default proxy)
  182. readMode: proxy
  183. # Comma separated Ip addresses having write permission. No limit if empty.
  184. whiteList: null
  185. # Adjust jpg orientation when uploading.
  186. imagesFixOrientation: false
  187. initContainers: ""
  188. extraVolumes: ""
  189. extraVolumeMounts: ""
  190. # Affinity Settings
  191. # Commenting out or setting as empty the affinity variable, will allow
  192. # deployment to single node services such as Minikube
  193. affinity: |
  194. podAntiAffinity:
  195. requiredDuringSchedulingIgnoredDuringExecution:
  196. - labelSelector:
  197. matchLabels:
  198. app: {{ template "seaweedfs.name" . }}
  199. release: "{{ .Release.Name }}"
  200. component: volume
  201. topologyKey: kubernetes.io/hostname
  202. # Resource requests, limits, etc. for the server cluster placement. This
  203. # should map directly to the value of the resources field for a PodSpec,
  204. # formatted as a multi-line string. By default no direct resource request
  205. # is made.
  206. resources: null
  207. # Toleration Settings for server pods
  208. # This should be a multi-line string matching the Toleration array
  209. # in a PodSpec.
  210. tolerations: ""
  211. # nodeSelector labels for server pod assignment, formatted as a muli-line string.
  212. # ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector
  213. # Example:
  214. # nodeSelector: |
  215. # beta.kubernetes.io/arch: amd64
  216. nodeSelector: |
  217. sw-volume: "true"
  218. # used to assign priority to server pods
  219. # ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
  220. priorityClassName: ""
  221. filer:
  222. enabled: true
  223. repository: null
  224. imageName: null
  225. imageTag: null
  226. imageOverride: null
  227. restartPolicy: null
  228. replicas: 1
  229. port: 8888
  230. grpcPort: 18888
  231. metricsPort: 9327
  232. loggingOverrideLevel: null
  233. # replication type is XYZ:
  234. # X number of replica in other data centers
  235. # Y number of replica in other racks in the same data center
  236. # Z number of replica in other servers in the same rack
  237. defaultReplicaPlacement: "000"
  238. # turn off directory listing
  239. disableDirListing: false
  240. # split files larger than the limit, default 32
  241. maxMB: null
  242. # encrypt data on volume servers
  243. encryptVolumeData: false
  244. # Whether proxy or redirect to volume server during file GET request
  245. redirectOnRead: false
  246. # Limit sub dir listing size (default 100000)
  247. dirListLimit: 100000
  248. # Disable http request, only gRpc operations are allowed
  249. disableHttp: false
  250. # DEPRECATE: enablePVC, storage, storageClass
  251. # Consider replacing with filer.data section below instead.
  252. # Settings for configuring stateful storage of filer pods.
  253. # enablePVC will create a pvc for filer for data persistence.
  254. enablePVC: false
  255. # storage should be set to the disk size of the attached volume.
  256. storage: 25Gi
  257. # storageClass is the class of storage which defaults to null (the Kube cluster will pick the default).
  258. storageClass: null
  259. # can use ANY storage-class , example with local-path-provisioner
  260. # data:
  261. # type: "persistentVolumeClaim"
  262. # size: "24Ti"
  263. # storageClass: "local-path-provisioner"
  264. data:
  265. type: "hostPath"
  266. size: ""
  267. storageClass: ""
  268. logs:
  269. type: "hostPath"
  270. size: ""
  271. storageClass: ""
  272. initContainers: ""
  273. extraVolumes: ""
  274. extraVolumeMounts: ""
  275. # Affinity Settings
  276. # Commenting out or setting as empty the affinity variable, will allow
  277. # deployment to single node services such as Minikube
  278. affinity: |
  279. podAntiAffinity:
  280. requiredDuringSchedulingIgnoredDuringExecution:
  281. - labelSelector:
  282. matchLabels:
  283. app: {{ template "seaweedfs.name" . }}
  284. release: "{{ .Release.Name }}"
  285. component: filer
  286. topologyKey: kubernetes.io/hostname
  287. # updatePartition is used to control a careful rolling update of SeaweedFS
  288. # masters.
  289. updatePartition: 0
  290. # Resource requests, limits, etc. for the server cluster placement. This
  291. # should map directly to the value of the resources field for a PodSpec,
  292. # formatted as a multi-line string. By default no direct resource request
  293. # is made.
  294. resources: null
  295. # Toleration Settings for server pods
  296. # This should be a multi-line string matching the Toleration array
  297. # in a PodSpec.
  298. tolerations: ""
  299. # nodeSelector labels for server pod assignment, formatted as a muli-line string.
  300. # ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector
  301. # Example:
  302. # nodeSelector: |
  303. # beta.kubernetes.io/arch: amd64
  304. nodeSelector: |
  305. sw-backend: "true"
  306. # used to assign priority to server pods
  307. # ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
  308. priorityClassName: ""
  309. ingress:
  310. enabled: false
  311. className: "nginx"
  312. annotations:
  313. nginx.ingress.kubernetes.io/auth-type: "basic"
  314. nginx.ingress.kubernetes.io/auth-secret: "default/ingress-basic-auth-secret"
  315. nginx.ingress.kubernetes.io/auth-realm: 'Authentication Required - SW-Filer'
  316. nginx.ingress.kubernetes.io/service-upstream: "true"
  317. nginx.ingress.kubernetes.io/rewrite-target: /$1
  318. nginx.ingress.kubernetes.io/use-regex: "true"
  319. nginx.ingress.kubernetes.io/enable-rewrite-log: "true"
  320. nginx.ingress.kubernetes.io/ssl-redirect: "false"
  321. nginx.ingress.kubernetes.io/force-ssl-redirect: "false"
  322. nginx.ingress.kubernetes.io/configuration-snippet: |
  323. sub_filter '<head>' '<head> <base href="/sw-filer/">'; #add base url
  324. sub_filter '="/' '="./'; #make absolute paths to relative
  325. sub_filter '=/' '=./';
  326. sub_filter '/seaweedfsstatic' './seaweedfsstatic';
  327. sub_filter_once off;
  328. # extraEnvVars is a list of extra enviroment variables to set with the stateful set.
  329. extraEnvironmentVars:
  330. WEED_MYSQL_ENABLED: "true"
  331. WEED_MYSQL_HOSTNAME: "mysql-db-host"
  332. WEED_MYSQL_PORT: "3306"
  333. WEED_MYSQL_DATABASE: "sw_database"
  334. WEED_MYSQL_CONNECTION_MAX_IDLE: "5"
  335. WEED_MYSQL_CONNECTION_MAX_OPEN: "75"
  336. # "refresh" connection every 10 minutes, eliminating mysql closing "old" connections
  337. WEED_MYSQL_CONNECTION_MAX_LIFETIME_SECONDS: "600"
  338. # enable usage of memsql as filer backend
  339. WEED_MYSQL_INTERPOLATEPARAMS: "true"
  340. # if you want to use leveldb2, then should enable "enablePVC". or you may lose your data.
  341. WEED_LEVELDB2_ENABLED: "false"
  342. # with http DELETE, by default the filer would check whether a folder is empty.
  343. # recursive_delete will delete all sub folders and files, similar to "rm -Rf"
  344. WEED_FILER_OPTIONS_RECURSIVE_DELETE: "false"
  345. # directories under this folder will be automatically creating a separate bucket
  346. WEED_FILER_BUCKETS_FOLDER: "/buckets"
  347. s3:
  348. enabled: true
  349. port: 8333
  350. #allow empty folders
  351. allowEmptyFolder: false
  352. # Suffix of the host name, {bucket}.{domainName}
  353. domainName: ""
  354. # enable user & permission to s3 (need to inject to all services)
  355. enableAuth: false
  356. skipAuthSecretCreation: false
  357. auditLogConfig: {}
  358. s3:
  359. enabled: false
  360. repository: null
  361. imageName: null
  362. imageTag: null
  363. restartPolicy: null
  364. replicas: 1
  365. port: 8333
  366. metricsPort: 9327
  367. loggingOverrideLevel: null
  368. #allow empty folders
  369. allowEmptyFolder: true
  370. # enable user & permission to s3 (need to inject to all services)
  371. enableAuth: false
  372. skipAuthSecretCreation: false
  373. auditLogConfig: {}
  374. # Suffix of the host name, {bucket}.{domainName}
  375. domainName: ""
  376. initContainers: ""
  377. extraVolumes: ""
  378. extraVolumeMounts: ""
  379. # Resource requests, limits, etc. for the server cluster placement. This
  380. # should map directly to the value of the resources field for a PodSpec,
  381. # formatted as a multi-line string. By default no direct resource request
  382. # is made.
  383. resources: null
  384. # Toleration Settings for server pods
  385. # This should be a multi-line string matching the Toleration array
  386. # in a PodSpec.
  387. tolerations: ""
  388. # nodeSelector labels for server pod assignment, formatted as a muli-line string.
  389. # ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector
  390. # Example:
  391. # nodeSelector: |
  392. # beta.kubernetes.io/arch: amd64
  393. nodeSelector: |
  394. sw-backend: "true"
  395. # used to assign priority to server pods
  396. # ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
  397. priorityClassName: ""
  398. logs:
  399. type: "hostPath"
  400. size: ""
  401. storageClass: ""
  402. certificates:
  403. commonName: "SeaweedFS CA"
  404. ipAddresses: []
  405. keyAlgorithm: rsa
  406. keySize: 2048
  407. duration: 2160h # 90d
  408. renewBefore: 360h # 15d