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.

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