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.

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