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.

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