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.

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