values.yaml 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874
  1. image:
  2. repository: ghcr.io/mastodon/mastodon
  3. # https://github.com/mastodon/mastodon/pkgs/container/mastodon
  4. #
  5. # alternatively, use `latest` for the latest release or `edge` for the image
  6. # built from the most recent commit
  7. #
  8. # tag: latest
  9. tag: ""
  10. # use `Always` when using `latest` tag
  11. pullPolicy: IfNotPresent
  12. mastodon:
  13. # Labels added to every Mastodon-related object
  14. labels: {}
  15. # Labes added to every deployed mastodon pod
  16. podLabels: {}
  17. # -- create an initial administrator user; the password is autogenerated and will
  18. # have to be reset
  19. createAdmin:
  20. # @ignored
  21. enabled: false
  22. # @ignored
  23. username: not_gargron
  24. # @ignored
  25. email: not@example.com
  26. hooks:
  27. # Whether to perform DB schema creation on `helm install`.
  28. # Please note that this does not work when using the included database
  29. # (postgresql.enabled=true).
  30. # NOTE: When using certain GitOps solutions such as Argo CD, this should be
  31. # disabled, as these apps do not necessarily differentiate between `pre-install`
  32. # and `pre-upgrade`.
  33. dbPrepare:
  34. enabled: true
  35. # Whether to perform DB migrations on `helm upgrade`.
  36. dbMigrate:
  37. enabled: true
  38. # WARNING: deploySearch is potentially a very expensive job!
  39. # Only enable this once at a time, when you deploy elasticsearch or when
  40. # the upgrade notes for a new mastodon version request rebuilding search.
  41. # Recommended use is via `-f mastodon.hooks.deploySearch.enabled=true`
  42. # to ensure the job is only dispatched for a single upgrade when required.
  43. # This job may take days to run on very large instances. Even small
  44. # instances may take long enough to trigger helm's completion timeout, so
  45. # DO NOT PANIC if helm complains; simply verify the job is still running.
  46. #
  47. # Builds or rebuilds the elasticsearch indices via `tootctl deploy search`
  48. # with timing hooks to ensure the job runs immediately after install/upgrade
  49. # and will be restarted if another, corrective upgrade is triggered.
  50. # Please check the tootctl documentation and upgrade notes to pick values.
  51. #
  52. # NOTE: The resource stanza set below is intentionally very conservative.
  53. # Consider assigning a liberal chunk of your cluster's typical headroom.
  54. deploySearch:
  55. enabled: false
  56. resetChewy: true
  57. # one index name. Possible values: instances, accounts, tags, statuses, public_statuses
  58. only: ""
  59. concurrency: 5
  60. resources: # this accepts any keys in a full container resources stanza.
  61. requests:
  62. cpu: 250m
  63. memory: 256Mi
  64. limits:
  65. cpu: 500m
  66. # Upload website assets to S3 before deploying using rclone.
  67. # Whenever there is an update to Mastodon, sometimes there are assets files
  68. # that are renamed. As the pods are getting redeployed, and old/new pods are
  69. # present simultaneously, there is a chance that old asset files are
  70. # requested from pods that don't have them anymore, or new asset files are
  71. # requested from old pods. Uploading asset files to S3 in this manner solves
  72. # this potential conflict.
  73. # Note that you will need to CDN/proxy to send all requests to /assets and
  74. # /packs to this bucket.
  75. s3Upload:
  76. enabled: false
  77. endpoint:
  78. bucket:
  79. acl: public-read
  80. secretRef:
  81. name:
  82. keys:
  83. accesKeyId: acces-key-id
  84. secretAccessKey: secret-access-key
  85. rclone:
  86. # Any additional environment variables to pass to rclone.
  87. env: {}
  88. # Custom labels to add to kubernetes resources
  89. #labels:
  90. # -- deploy search to elastsicsearch. Requires .elasticsearch.enabled = true
  91. cron:
  92. # -- run `tootctl media remove` every week
  93. removeMedia:
  94. # @ignored
  95. enabled: true
  96. # @ignored
  97. schedule: "0 0 * * 0"
  98. # -- available locales: https://github.com/mastodon/mastodon/blob/main/config/application.rb#L71
  99. locale: en
  100. local_domain: mastodon.local
  101. # -- Use of WEB_DOMAIN requires careful consideration: https://docs.joinmastodon.org/admin/config/#federation
  102. # You must redirect the path LOCAL_DOMAIN/.well-known/ to WEB_DOMAIN/.well-known/ as described
  103. # Example: mastodon.example.com
  104. web_domain: null
  105. # -- If you have multiple domains pointed at your Mastodon server, this setting will allow Mastodon to recognize
  106. # itself when users are addressed using those other domains.
  107. alternate_domains: []
  108. # -- Comma-separated list of public IP addresses of trusted reverse proxy servers reaching Mastodon web and streaming servers
  109. # Specifying overrides default list. More info: https://docs.joinmastodon.org/admin/config/#trusted_proxy_ip
  110. # trusted_proxy_ip:
  111. # -- If set to true, the frontpage of your Mastodon server will always redirect to the first profile in the database and registrations will be disabled.
  112. singleUserMode: false
  113. # -- Enables "Secure Mode" for more details see: https://docs.joinmastodon.org/admin/config/#authorized_fetch
  114. authorizedFetch: false
  115. # -- Enables "Limited Federation Mode" for more details see: https://docs.joinmastodon.org/admin/config/#limited_federation_mode
  116. limitedFederationMode: false
  117. persistence:
  118. assets:
  119. # -- ReadWriteOnce is more widely supported than ReadWriteMany, but limits
  120. # scalability, since it requires the Rails and Sidekiq pods to run on the
  121. # same node.
  122. accessMode: ReadWriteOnce
  123. resources:
  124. requests:
  125. storage: 10Gi
  126. # -- name of existing persistent volume claim to use for assets
  127. existingClaim:
  128. system:
  129. accessMode: ReadWriteOnce
  130. resources:
  131. requests:
  132. storage: 100Gi
  133. # -- name of existing persistent volume claim to use for system
  134. existingClaim:
  135. s3:
  136. enabled: false
  137. access_key: ""
  138. access_secret: ""
  139. # -- you can also specify the name of an existing Secret
  140. # with keys AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY
  141. existingSecret: ""
  142. bucket: ""
  143. endpoint: ""
  144. hostname: ""
  145. region: ""
  146. permission: ""
  147. # -- If you have a caching proxy, enter its base URL here.
  148. alias_host: ""
  149. # When uploading data to S3, if the number of bytes to send exceedes
  150. # multipart_threshold then a multi part session is automatically started
  151. # and the data is sent up in chunks. Defaults to 16777216 (16MB).
  152. multipart_threshold: ""
  153. # -- Set this to true if the storage provider uses domain style 'bucket.endpoint' naming
  154. # override_path_style: "true"
  155. deepl:
  156. enabled: false
  157. plan:
  158. apiKeySecretRef:
  159. name:
  160. key:
  161. hcaptcha:
  162. enabled: false
  163. siteId:
  164. secretKeySecretRef:
  165. name:
  166. key:
  167. # these must be set manually; autogenerated keys are rotated on each upgrade
  168. secrets:
  169. secret_key_base: ""
  170. otp_secret: ""
  171. vapid:
  172. private_key: ""
  173. public_key: ""
  174. activeRecordEncryption:
  175. primaryKey: ""
  176. deterministicKey: ""
  177. keyDerivationSalt: ""
  178. # -- you can also specify the name of an existing Secret
  179. # with keys:
  180. # - SECRET_KEY_BASE
  181. # - OTP_SECRET
  182. # - VAPID_PRIVATE_KEY
  183. # - VAPID_PUBLIC_KEY
  184. # - ACTIVE_RECORD_ENCRYPTION_PRIMARY_KEY
  185. # - ACTIVE_RECORD_ENCRYPTION_DETERMINISTIC_KEY
  186. # - ACTIVE_RECORD_ENCRYPTION_KEY_DERIVATION_SALT
  187. existingSecret: ""
  188. # -- The number of old revisions to keep for each Deployment in Kubernetes.
  189. # See https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#clean-up-policy
  190. revisionHistoryLimit: 2
  191. sidekiq:
  192. # -- Pod security context for all Sidekiq Pods, overwrites .Values.podSecurityContext
  193. podSecurityContext: {}
  194. # -- (Sidekiq Container) Security Context for all Pods, overwrites .Values.securityContext
  195. securityContext: {}
  196. # -- Resources for all Sidekiq Deployments unless overwritten
  197. resources: {}
  198. # -- Affinity for all Sidekiq Deployments unless overwritten, overwrites .Values.affinity
  199. affinity: {}
  200. # -- Annotations to apply to the deployment object(s) for sidekiq.
  201. # -- These are applied in addition to deploymentAnnotations.
  202. annotations: {}
  203. # -- Labels to apply to the deployment object(s) for sidekiq.
  204. # -- These are applied in addition to mastodon.labels.
  205. labels: {}
  206. # -- Annotations to apply to the sidekiq pods.
  207. # -- These are applied in addition to the global podAnnotations.
  208. podAnnotations: {}
  209. # -- Labels to apply to the sidekiq pods.
  210. # -- These are applied in addition to mastodon.labels.
  211. podLabels: {}
  212. # Rollout strategy to use when updating pods.
  213. # Recreate will help reduce the number of retried jobs when updating when
  214. # the code introduces a new job as the pods are all replaced immediately.
  215. # RollingUpdate can help with larger clusters if job retries aren't an
  216. # issue, as it will reduce strain by replacing pods more slowly. It is
  217. # strongly recommended to enable the readinessProbe when using RollingUpdate.
  218. # ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
  219. updateStrategy:
  220. type: Recreate
  221. # Readiness probe configuration
  222. # NOTE: Readiness probe will only work on versions of Mastodon built after 2024-07-10.
  223. readinessProbe:
  224. enabled: false
  225. path: /opt/mastodon/tmp/sidekiq_process_has_started_and_will_begin_processing_jobs
  226. initialDelaySeconds: 10
  227. periodSeconds: 2
  228. successThreshold: 1
  229. timeoutSeconds: 1
  230. # -- Topology spread constraints for Sidekiq Pods, overwrites .Values.topologySpreadConstraints
  231. topologySpreadConstraints: {}
  232. # limits:
  233. # cpu: "1"
  234. # memory: 768Mi
  235. # requests:
  236. # cpu: 250m
  237. # memory: 512Mi
  238. # Open Telemetry configuration for sidekiq pods. Overrides global settings.
  239. otel:
  240. enabled:
  241. exporterUri:
  242. namePrefix:
  243. nameSeparator:
  244. workers:
  245. - name: all-queues
  246. # -- Number of threads / parallel sidekiq jobs that are executed per Pod
  247. concurrency: 25
  248. # -- Number of Pod replicas deployed by the Deployment
  249. replicas: 1
  250. # -- Resources for this specific deployment to allow optimised scaling, overwrites .Values.mastodon.sidekiq.resources
  251. resources: {}
  252. # -- Affinity for this specific deployment, overwrites .Values.affinity and .Values.mastodon.sidekiq.affinity
  253. affinity: {}
  254. # -- Topology spread constraints for this specific deployment, overwrites .Values.topologySpreadConstraints and .Values.mastodon.sidekiq.topologySpreadConstraints
  255. topologySpreadConstraints: {}
  256. # -- Sidekiq queues for Mastodon that are handled by this worker. See https://docs.joinmastodon.org/admin/scaling/#concurrency
  257. # See https://github.com/mperham/sidekiq/wiki/Advanced-Options#queues for how to weight queues as argument
  258. queues:
  259. - default,8
  260. - push,6
  261. - ingress,4
  262. - mailers,2
  263. - pull
  264. - scheduler # Make sure the scheduler queue only exists once and with a worker that has 1 replica.
  265. image:
  266. repository:
  267. tag:
  268. # allows you to mount a custom database.yml from a configmap
  269. # please note that we do not advise using a read-only replica for sidekiq workers
  270. customDatabaseConfigYml:
  271. configMapRef:
  272. name:
  273. key:
  274. #- name: push-pull
  275. # concurrency: 50
  276. # resources: {}
  277. # replicas: 2
  278. # queues:
  279. # - push
  280. # - pull
  281. #- name: mailers
  282. # concurrency: 25
  283. # replicas: 2
  284. # queues:
  285. # - mailers
  286. #- name: default
  287. # concurrency: 25
  288. # replicas: 2
  289. # queues:
  290. # - default
  291. smtp:
  292. auth_method: plain
  293. ca_file: /etc/ssl/certs/ca-certificates.crt
  294. delivery_method: smtp
  295. domain:
  296. enable_starttls: "auto"
  297. from_address: notifications@example.com
  298. return_path:
  299. openssl_verify_mode: peer
  300. port: 587
  301. reply_to:
  302. server: smtp.mailgun.org
  303. tls: false
  304. login:
  305. password:
  306. # -- Instead of defining login/password above, you can specify the name of an existing secret here. Login and
  307. # password must be located in keys named `login` and `password` respectively.
  308. existingSecret:
  309. streaming:
  310. image:
  311. # streaming image split in Mastodon v4.3.0
  312. repository: ghcr.io/mastodon/mastodon-streaming
  313. # other options: `latest` for the latest release or `edge` for most recent commit
  314. tag: ""
  315. port: 4000
  316. # -- this should be set manually since os.cpus() returns the number of CPUs on
  317. # the node running the pod, which is unrelated to the resources allocated to
  318. # the pod by k8s
  319. workers: 1
  320. # -- The base url for streaming can be set if the streaming API is deployed to
  321. # a different domain/subdomain.
  322. base_url: null
  323. # -- Number of Streaming Pods running
  324. replicas: 1
  325. # -- Affinity for Streaming Pods, overwrites .Values.affinity
  326. affinity: {}
  327. # -- Annotations to apply to the deployment object for streaming.
  328. # -- These are applied in addition to deploymentAnnotations.
  329. annotations: {}
  330. # -- Labels to apply to the deployment object for streaming.
  331. # -- These are applied in addition to mastodon.labels.
  332. labels: {}
  333. # -- Annotations to apply to the streaming pods.
  334. # -- These are applied in addition to the global podAnnotations.
  335. podAnnotations: {}
  336. # -- Labels to apply to the streaming pods.
  337. # -- These are applied in addition to mastodon.labels.
  338. podLabels: {}
  339. # Rollout strategy to use when updating pods
  340. # ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
  341. updateStrategy:
  342. type: RollingUpdate
  343. rollingUpdate:
  344. maxSurge: 10%
  345. maxUnavailable: 25%
  346. # -- Topology spread constraints for Streaming Pods, overwrites .Values.topologySpreadConstraints
  347. topologySpreadConstraints: {}
  348. # -- Pod Security Context for Streaming Pods, overwrites .Values.podSecurityContext
  349. podSecurityContext: {}
  350. # -- (Streaming Container) Security Context for Streaming Pods, overwrites .Values.securityContext
  351. securityContext: {}
  352. # -- (Streaming Container) Resources for Streaming Pods, overwrites .Values.resources
  353. resources: {}
  354. # limits:
  355. # cpu: "500m"
  356. # memory: 512Mi
  357. # requests:
  358. # cpu: 250m
  359. # memory: 128Mi
  360. # -- PodDisruptionBudget configuration - See https://kubernetes.io/docs/tasks/run-application/configure-pdb/
  361. pdb:
  362. enable: false
  363. # minAvailable: 1
  364. # maxUnavailable: 1
  365. # -- Puma-specific options. Below values are based on default behavior in
  366. # config/puma.rb when no custom values are provided.
  367. # -- Self-signed certificate(s) the (Node.js) needs to trust to connect to e.g. the database
  368. extraCerts: {}
  369. # -- Secret containing a key "ca.crt" holding one or more root certificates in PEM format
  370. # existingSecret:
  371. # -- Optional volume name for mounting the .crt file, defaults to "extra-certs"
  372. # name:
  373. # -- Optional sslMode setting. See nodejs's SSL_MODE. Consider "no-verify"
  374. # sslMode:
  375. # Specify extra environment variables to be added to streaming pods.
  376. extraEnvVars: {}
  377. web:
  378. port: 3000
  379. # -- Number of Web Pods running
  380. replicas: 1
  381. # -- Affinity for Web Pods, overwrites .Values.affinity
  382. affinity: {}
  383. # -- Annotations to apply to the deployment object for web.
  384. # -- These are applied in addition to deploymentAnnotations.
  385. annotations: {}
  386. # -- Labels to apply to the deployment object for web.
  387. # -- These are applied in addition to mastodon.labels.
  388. labels: {}
  389. # -- Annotations to apply to the web pods.
  390. # -- These are applied in addition to the global podAnnotations.
  391. podAnnotations: {}
  392. # -- Labels to apply to the web pods.
  393. # -- These are applied in addition to mastodon.labels.
  394. podLabels: {}
  395. # Rollout strategy to use when updating pods
  396. # ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
  397. updateStrategy:
  398. type: RollingUpdate
  399. rollingUpdate:
  400. maxSurge: 10%
  401. maxUnavailable: 25%
  402. # -- Topology spread constraints for Web Pods, overwrites .Values.topologySpreadConstraints
  403. topologySpreadConstraints: {}
  404. # -- Pod Security Context for Web Pods, overwrites .Values.podSecurityContext
  405. podSecurityContext: {}
  406. # -- (Web Container) Security Context for Web Pods, overwrites .Values.securityContext
  407. securityContext: {}
  408. # -- (Web Container) Resources for Web Pods, overwrites .Values.resources
  409. resources: {}
  410. # limits:
  411. # cpu: "1"
  412. # memory: 1280Mi
  413. # requests:
  414. # cpu: 250m
  415. # memory: 768Mi
  416. # -- PodDisruptionBudget configuration - See https://kubernetes.io/docs/tasks/run-application/configure-pdb/
  417. pdb:
  418. enable: false
  419. # minAvailable: 1
  420. # maxUnavailable: 1
  421. # -- Puma-specific options. Below values are based on default behavior in
  422. # config/puma.rb when no custom values are provided.
  423. minThreads: "5"
  424. maxThreads: "5"
  425. workers: "2"
  426. persistentTimeout: "20"
  427. image:
  428. repository:
  429. tag:
  430. # allows you to mount a custom database.yml from a configmap
  431. # for example if you want to use a read-only replica
  432. customDatabaseConfigYml:
  433. configMapRef:
  434. name:
  435. key:
  436. # Open Telemetry configuration for web pods. Overrides global settings.
  437. otel:
  438. enabled:
  439. exporterUri:
  440. namePrefix:
  441. nameSeparator:
  442. # HTTP cache buster configuration.
  443. # See the documentation for more information about this feature:
  444. # https://docs.joinmastodon.org/admin/config/#http-cache-buster
  445. cacheBuster:
  446. enabled: false
  447. httpMethod: "GET"
  448. # If the cache service requires authentication, specify the header name and
  449. # secret/token here.
  450. authHeader:
  451. authToken:
  452. existingSecret:
  453. metrics:
  454. statsd:
  455. # -- Enable statsd publishing via STATSD_ADDR environment variable
  456. address: ""
  457. # -- Alternatively, you can use this to have a statsd_exporter sidecar container running along all Mastodon containers and exposing metrics in OpenMetric/Prometheus format on each pod
  458. # Please note the exporter will not be enabled if metrics.statsd.address is not empty
  459. exporter:
  460. enabled: false
  461. port: 9102
  462. # Settings for Prometheus metrics. NOTE: Only available in Mastodon v4.4.
  463. # For more information, see:
  464. # https://docs.joinmastodon.org/admin/config/#prometheus
  465. prometheus:
  466. enabled: false
  467. # Port for the exporter to listen on
  468. port: 9394
  469. # Prometheus for web pods
  470. web:
  471. # Collect per-controller/action metrics for every request
  472. detailed: false
  473. # Prometheus for sidekiq pods
  474. sidekiq:
  475. # Collect per-job metrics for every job
  476. detailed: false
  477. # Open Telemetry configuration for all deployments. Component-specific
  478. # configuration will override these values.
  479. otel:
  480. enabled: false
  481. exporterUri:
  482. namePrefix: mastodon
  483. nameSeparator: "-"
  484. # Sets the PREPARED_STATEMENTS environment variable: https://docs.joinmastodon.org/admin/config/#prepared_statements
  485. preparedStatements: true
  486. # Specify extra environment variables to be added to all Mastodon pods.
  487. # These can be used for configuration not included in this chart (including configuration for Mastodon varietals.)
  488. extraEnvVars: {}
  489. # Alternatively specify extra environment variables stored in a ConfigMap.
  490. # The specified ConfigMap should contain the additional environment variables in key-value format.
  491. # extraEnvFrom: <config-map-name>
  492. ingress:
  493. enabled: true
  494. annotations:
  495. # For choosing an ingress ingressClassName is preferred over annotations
  496. # kubernetes.io/ingress.class: nginx
  497. #
  498. # To automatically request TLS certificates use one of the following
  499. # kubernetes.io/tls-acme: "true"
  500. # cert-manager.io/cluster-issuer: "letsencrypt"
  501. #
  502. # ensure that NGINX's upload size matches Mastodon's
  503. # for the K8s ingress controller:
  504. # nginx.ingress.kubernetes.io/proxy-body-size: 40m
  505. # for the NGINX ingress controller:
  506. # nginx.org/client-max-body-size: 40m
  507. # -- you can specify the ingressClassName if it differs from the default
  508. ingressClassName:
  509. hosts:
  510. - host: mastodon.local
  511. paths:
  512. - path: "/"
  513. tls:
  514. - secretName: mastodon-tls
  515. hosts:
  516. - mastodon.local
  517. # This allows you to have a separate ingress for streaming
  518. # When enabled, the main ingress will no longer handle streaming requests.
  519. # You will also need to configure mastodon.streaming.base_url accordingly
  520. streaming:
  521. enabled: false
  522. annotations:
  523. ingressClassName:
  524. hosts:
  525. - host: streaming.mastodon.local
  526. paths:
  527. - path: "/"
  528. tls:
  529. - secretName: mastodon-tls
  530. hosts:
  531. - streaming.mastodon.local
  532. # Configuration for Elasticsearch.
  533. # When enabled, the bitnami helm chart is used for Elasticsearch deployment, and
  534. # all values here correspond to their values file. Please see the bitnami chart
  535. # documentation:
  536. # https://github.com/bitnami/charts/tree/master/bitnami/elasticsearch#parameters
  537. #
  538. # Please note that we recommend using your own deployment for better management.
  539. elasticsearch:
  540. # Elasticsearch is powering full-text search. It is optional.
  541. # `false` will not install Elasticsearch as part of this chart
  542. #
  543. # if you enable ES after the initial install, you will need to manually run
  544. # RAILS_ENV=production bundle exec rake chewy:sync
  545. # (https://docs.joinmastodon.org/admin/optional/elasticsearch/)
  546. enabled: true
  547. # @ignored
  548. image:
  549. tag: 7
  550. # If you are using an external ES cluster, use `enabled: false` and set the hostname, port,
  551. # and whether the cluster uses TLS.
  552. # hostname:
  553. # port: 9200
  554. # tls: true
  555. # preset: single_node_cluster
  556. # This is optional, use it if you ES cluster requires authentication
  557. # user:
  558. # Name of an existing secret with a password key
  559. # existingSecret:
  560. # Configuration for PostgreSQL.
  561. # When enabled, the bitnami helm chart is used for PostgreSQL deployment, and
  562. # all values here correspond to their values file. Please see the bitnami chart
  563. # documentation:
  564. # https://github.com/bitnami/charts/tree/master/bitnami/postgresql#parameters
  565. #
  566. # Please note that we recommend using your own deployment for better management.
  567. postgresql:
  568. # -- disable if you want to use an existing db; in which case the values below
  569. # must match those of that external postgres instance.
  570. # Please note that certain features do not work when enabling the included
  571. # database, namely automatic schema creation when the app is first installed.
  572. enabled: true
  573. # postgresqlHostname: preexisting-postgresql
  574. # postgresqlPort: 5432
  575. # If using a connection pooler such as pgbouncer, please specify a hostname/IP
  576. # that serves as a "direct" connection to the database, rather than going
  577. # through the connection pooler. This is required for migrations to work
  578. # properly.
  579. direct:
  580. hostname:
  581. port:
  582. database:
  583. auth:
  584. database: mastodon_production
  585. username: mastodon
  586. # you must set a password; the password generated by the postgresql chart will
  587. # be rotated on each upgrade:
  588. # https://github.com/bitnami/charts/tree/master/bitnami/postgresql#upgrade
  589. password: ""
  590. # Set the password for the "postgres" admin user
  591. # set this to the same value as above if you've previously installed
  592. # this chart and you're having problems getting mastodon to connect to the DB
  593. # postgresPassword: ""
  594. # you can also specify the name of an existing Secret
  595. # with a key of password set to the password you want
  596. existingSecret: ""
  597. # Options for a read-only replica.
  598. # If enabled, mastodon uses existing defaults for postgres for these values as well.
  599. # NOTE: This feature is only available on Mastodon v4.2+
  600. # Documentation for more information on this feature:
  601. # https://docs.joinmastodon.org/admin/scaling/#read-replicas
  602. readReplica:
  603. hostname:
  604. port:
  605. auth:
  606. database:
  607. username:
  608. password:
  609. existingSecret:
  610. # Configuration for Redis.
  611. # When enabled, the bitnami helm chart used for Redis deployment, and all values
  612. # here correspond to their values file. Please see the bitnami chart
  613. # documentation:
  614. # https://github.com/bitnami/charts/tree/master/bitnami/redis#parameters
  615. #
  616. # Please note that we recommend using your own deployment for better management.
  617. redis:
  618. # disable if you want to use an existing redis instance; in which case the
  619. # values below must match those of that external redis instance
  620. enabled: true
  621. hostname: ""
  622. port: 6379
  623. auth:
  624. # -- you must set a password; the password generated by the redis chart will be
  625. # rotated on each upgrade:
  626. password: ""
  627. # setting password for an existing redis instance will store it in a new Secret
  628. # you can also specify the name of an existing Secret
  629. # with a key of redis-password set to the password you want
  630. # existingSecret: ""
  631. replica:
  632. replicaCount: 0
  633. # Configuration for a separate redis instance only for sidekiq processing.
  634. # If enabled, any values not specified will be copied from the base config.
  635. # If set to false, the main redis instance will be used, and all values will
  636. # be ignored.
  637. sidekiq:
  638. enabled: false
  639. hostname: ""
  640. port: 6379
  641. auth:
  642. password: ""
  643. # you can also specify the name of an existing Secret
  644. # with a key of redis-password set to the password you want
  645. existingSecret: ""
  646. # Configuration for a separate redis instance only for cache.
  647. # If enabled, any values not specified will be copied from the base config.
  648. # If set to false, the main redis instance will be used, and all values will
  649. # be ignored.
  650. cache:
  651. enabled: false
  652. hostname: ""
  653. port: 6379
  654. auth:
  655. password: ""
  656. # you can also specify the name of an existing Secret
  657. # with a key of redis-password set to the password you want
  658. existingSecret: ""
  659. # @ignored
  660. service:
  661. type: ClusterIP
  662. port: 80
  663. externalAuth:
  664. oidc:
  665. # -- OpenID Connect support is proposed in PR #16221 and awaiting merge.
  666. enabled: false
  667. # display_name: "example-label"
  668. # issuer: https://login.example.space/auth/realms/example-space
  669. # discovery: true
  670. # scope: "openid,profile"
  671. # uid_field: uid
  672. # client_id: mastodon
  673. # client_secret: SECRETKEY
  674. # redirect_uri: https://example.com/auth/auth/openid_connect/callback
  675. # assume_email_is_verified: true
  676. # client_auth_method:
  677. # response_type:
  678. # response_mode:
  679. # display:
  680. # prompt:
  681. # send_nonce:
  682. # send_scope_to_token_endpoint:
  683. # idp_logout_redirect_uri:
  684. # http_scheme:
  685. # host:
  686. # port:
  687. # jwks_uri:
  688. # auth_endpoint:
  689. # token_endpoint:
  690. # user_info_endpoint:
  691. # end_session_endpoint:
  692. saml:
  693. enabled: false
  694. # acs_url: http://mastodon.example.com/auth/auth/saml/callback
  695. # issuer: mastodon
  696. # idp_sso_target_url: https://login.example.com/auth/realms/example/protocol/saml
  697. # idp_cert: '-----BEGIN CERTIFICATE-----[your_cert_content]-----END CERTIFICATE-----'
  698. # idp_cert_fingerprint:
  699. # name_identifier_format: urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified
  700. # cert:
  701. # private_key:
  702. # want_assertion_signed: true
  703. # want_assertion_encrypted: true
  704. # assume_email_is_verified: true
  705. # uid_attribute: "urn:oid:0.9.2342.19200300.100.1.1"
  706. # attributes_statements:
  707. # uid: "urn:oid:0.9.2342.19200300.100.1.1"
  708. # email: "urn:oid:1.3.6.1.4.1.5923.1.1.1.6"
  709. # full_name: "urn:oid:2.16.840.1.113730.3.1.241"
  710. # first_name: "urn:oid:2.5.4.42"
  711. # last_name: "urn:oid:2.5.4.4"
  712. # verified:
  713. # verified_email:
  714. oauth_global:
  715. # -- Automatically redirect to OIDC, CAS or SAML, and don't use local account authentication when clicking on Sign-In
  716. omniauth_only: false
  717. cas:
  718. enabled: false
  719. # url: https://sso.myserver.com
  720. # host: sso.myserver.com
  721. # port: 443
  722. # ssl: true
  723. # validate_url:
  724. # callback_url:
  725. # logout_url:
  726. # login_url:
  727. # uid_field: 'user'
  728. # ca_path:
  729. # disable_ssl_verification: false
  730. # assume_email_is_verified: true
  731. # keys:
  732. # uid: 'user'
  733. # name: 'name'
  734. # email: 'email'
  735. # nickname: 'nickname'
  736. # first_name: 'firstname'
  737. # last_name: 'lastname'
  738. # location: 'location'
  739. # image: 'image'
  740. # phone: 'phone'
  741. pam:
  742. enabled: false
  743. # email_domain: example.com
  744. # default_service: rpam
  745. # controlled_service: rpam
  746. ldap:
  747. enabled: false
  748. # host: myservice.namespace.svc
  749. # port: 636
  750. # method: simple_tls
  751. # tls_no_verify: true
  752. # base:
  753. # bind_dn:
  754. # password:
  755. # uid: cn
  756. # mail: mail
  757. # search_filter: "(|(%{uid}=%{email})(%{mail}=%{email}))"
  758. # uid_conversion:
  759. # enabled: true
  760. # search: "., -"
  761. # replace: _
  762. # -- https://github.com/mastodon/mastodon/blob/main/Dockerfile#L75
  763. #
  764. # if you manually change the UID/GID environment variables, ensure these values
  765. # match:
  766. podSecurityContext:
  767. runAsUser: 991
  768. runAsGroup: 991
  769. fsGroup: 991
  770. # @ignored
  771. securityContext: {}
  772. serviceAccount:
  773. # -- Specifies whether a service account should be created
  774. create: true
  775. # -- Annotations to add to the service account
  776. annotations: {}
  777. # -- The name of the service account to use.
  778. # If not set and create is true, a name is generated using the fullname template
  779. name: ""
  780. # Custom annotations to apply to all created mastodon deployment objects. These
  781. # can be used to help mastodon interact with other services in the cluster.
  782. deploymentAnnotations: {}
  783. # -- Kubernetes manages pods for jobs and pods for deployments differently, so you might
  784. # need to apply different annotations to the two different sets of pods. The annotations
  785. # set with podAnnotations will be added to all mastodon deployment-managed pods.
  786. podAnnotations: {}
  787. # If set to true, an annotation with the current chart release number will be added to all mastodon pods. This will
  788. # cause all pods to be recreated every `helm upgrade` regardless of whether their config or spec changes.
  789. revisionPodAnnotation: true
  790. # The annotations set with jobAnnotations will be added to all mastodon job pods
  791. jobAnnotations: {}
  792. # -- Default resources for all mastodon Deployments and jobs unless overwritten
  793. resources:
  794. {}
  795. # We usually recommend not to specify default resources and to leave this as a conscious
  796. # choice for the user. This also increases chances charts run on environments with little
  797. # resources, such as Minikube. If you do want to specify resources, uncomment the following
  798. # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
  799. # limits:
  800. # cpu: 100m
  801. # memory: 128Mi
  802. # requests:
  803. # cpu: 100m
  804. # memory: 128Mi
  805. # @ignored
  806. nodeSelector: {}
  807. # @ignored
  808. tolerations: []
  809. # -- Affinity for all mastodon pods unless overwritten
  810. affinity: {}
  811. # -- Timezone for all mastodon pods unless overwritten
  812. timezone: UTC
  813. # -- Topology Spread Constraints for all mastodon pods unless overwritten
  814. # Please note that you need to use `matchLabelKeys` (Kubernetes 1.25+) if you
  815. # want to spread each deployment independently, or override topologySpreadConstraints
  816. # for each deployment
  817. topologySpreadConstraints: {}
  818. # Default volume mounts for all mastodon pods
  819. volumeMounts: []
  820. # Default volumes for all mastodon pods
  821. volumes: []