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.

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