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.

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