Guest User

confluence-values

a guest
Mar 23rd, 2022
321
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 37.08 KB | None | 0 0
  1. ## Atlassian Confluence Data Center Helm values
  2. #
  3. # HEADS UP!
  4. #
  5. # Data loss will occur if sections declared as 'REQUIRED' are not configured appropriately!
  6. # These sections are:
  7. # - database
  8. # - volumes
  9. #
  10. # Additional details on pre-provisioning these required resources can be found here:
  11. # https://atlassian.github.io/data-center-helm-charts/userguide/INSTALLATION/#3-configure-database
  12. # https://atlassian.github.io/data-center-helm-charts/userguide/INSTALLATION/#5-configure-persistent-storage
  13. #
  14. # To manage external access to the Confluence instance, an ingress resource can also be configured
  15. # under the 'ingress' stanza. This requires a pre-provisioned ingress controller to be present.
  16. #
  17. # Additional details on pre-provisioning an ingress controller can be found here:
  18. # https://atlassian.github.io/data-center-helm-charts/userguide/INSTALLATION/#4-configure-ingress
  19. #
  20. ##
  21.  
  22.  
  23. # -- The initial number of Confluence pods that should be started at deployment time.
  24. # Note that Confluence requires manual configuration via the browser post deployment
  25. # after the first pod is deployed. This configuration must be completed before
  26. # scaling up additional pods. As such this value should always be kept as 1,
  27. # but can be altered once manual configuration is complete.
  28. #
  29. replicaCount: 1
  30.  
  31. # Image configuration
  32. #
  33. image:
  34.  
  35. # -- The Confluence Docker image to use
  36. #
  37. repository: atlassian/confluence
  38.  
  39. # -- Image pull policy
  40. #
  41. pullPolicy: IfNotPresent
  42.  
  43. # -- The docker image tag to be used - defaults to the Chart appVersion
  44. #
  45. tag: "latest"
  46.  
  47. # K8s ServiceAccount configuration. Give fine-grained identity and authorization
  48. # to Pods
  49. #
  50. serviceAccount:
  51.  
  52. # -- Set to 'true' if a ServiceAccount should be created, or 'false' if it
  53. # already exists.
  54. #
  55. create: true
  56.  
  57. # -- The name of the ServiceAccount to be used by the pods. If not specified, but
  58. # the "serviceAccount.create" flag is set to 'true', then the ServiceAccount name
  59. # will be auto-generated, otherwise the 'default' ServiceAccount will be used.
  60. # https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#use-the-default-service-account-to-access-the-api-server
  61. #
  62. name:
  63.  
  64. # -- For Docker images hosted in private registries, define the list of image pull
  65. # secrets that should be utilized by the created ServiceAccount
  66. # https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod
  67. #
  68. imagePullSecrets:
  69. - name: alt-confluence-gitlab
  70. # - name: secretName
  71.  
  72. # -- Annotations to add to the ServiceAccount (if created)
  73. #
  74. annotations: {}
  75.  
  76. # Define permissions
  77. # https://kubernetes.io/docs/reference/access-authn-authz/rbac/#role-and-clusterrole
  78. #
  79. clusterRole:
  80.  
  81. # -- Set to 'true' if a ClusterRole should be created, or 'false' if it
  82. # already exists.
  83. #
  84. create: true
  85.  
  86. # -- The name of the ClusterRole to be used. If not specified, but
  87. # the "serviceAccount.clusterRole.create" flag is set to 'true',
  88. # then the ClusterRole name will be auto-generated.
  89. #
  90. name:
  91.  
  92. # Grant permissions defined in ClusterRole
  93. # https://kubernetes.io/docs/reference/access-authn-authz/rbac/#rolebinding-and-clusterrolebinding
  94. #
  95. clusterRoleBinding:
  96.  
  97. # -- Set to 'true' if a ClusterRoleBinding should be created, or 'false' if it
  98. # already exists.
  99. #
  100. create: true
  101.  
  102. # -- The name of the ClusterRoleBinding to be created. If not specified, but
  103. # the "serviceAccount.clusterRoleBinding.create" flag is set to 'true',
  104. # then the ClusterRoleBinding name will be auto-generated.
  105. #
  106. name:
  107.  
  108. # REQUIRED - Database configuration
  109. #
  110. # Confluence requires a backend database. The configuration below can be used to define the
  111. # database to use and its connection details.
  112. # https://atlassian.github.io/data-center-helm-charts/userguide/CONFIGURATION/#database-connectivity
  113. #
  114. database:
  115.  
  116. # -- The database type that should be used. If not specified, then it will need to be
  117. # provided via the browser during manual configuration post deployment. Valid values
  118. # include:
  119. # - 'postgresql'
  120. # - 'mysql'
  121. # - 'oracle'
  122. # - 'mssql'
  123. # https://atlassian.github.io/data-center-helm-charts/userguide/CONFIGURATION/#databasetype
  124. #
  125. type: postgresql
  126.  
  127. # -- The jdbc URL of the database. If not specified, then it will need to be provided
  128. # via the browser during manual configuration post deployment. Example URLs include:
  129. # - 'jdbc:postgresql://<dbhost>:5432/<dbname>'
  130. # - 'jdbc:mysql://<dbhost>/<dbname>'
  131. # - 'jdbc:sqlserver://<dbhost>:1433;databaseName=<dbname>'
  132. # - 'jdbc:oracle:thin:@<dbhost>:1521:<SID>'
  133. # https://atlassian.github.io/data-center-helm-charts/userguide/CONFIGURATION/#databaseurl
  134. #
  135. url: jdbc:postgresql://confluence-test-db:5432/confluence
  136.  
  137. # JDBC connection credentials
  138. #
  139. credentials:
  140.  
  141. # -- The name of the K8s Secret that contains the database login credentials.
  142. # If the secret is specified, then the credentials will be automatically utilised on
  143. # Confluence startup. If the secret is not provided, then the credentials will need to be
  144. # provided via the browser during manual configuration post deployment.
  145. #
  146. # Example of creating a database credentials K8s secret below:
  147. # 'kubectl create secret generic <secret-name> --from-literal=username=<username> \
  148. # --from-literal=password=<password>'
  149. # https://kubernetes.io/docs/concepts/configuration/secret/#opaque-secrets
  150. #
  151. secretName: confluence-test-creds
  152.  
  153. # -- The key ('username') in the Secret used to store the database login username
  154. #
  155. usernameSecretKey: username
  156.  
  157. # -- The key ('password') in the Secret used to store the database login password
  158. #
  159. passwordSecretKey: password
  160.  
  161. # REQUIRED - Volume configuration
  162. #
  163. # By default, the charts will configure the local-home, synchrony-home and shared-home as ephemeral
  164. # volumes i.e. 'emptyDir: {}'. This is fine for evaluation purposes but for production
  165. # deployments this is not ideal and so local-home, synchrony-home and shared-home should all be configured
  166. # appropriately.
  167. # https://atlassian.github.io/data-center-helm-charts/userguide/CONFIGURATION/#volumes
  168. #
  169. volumes:
  170.  
  171. # Each pod requires its own volume for 'local-home'. This is needed for key data
  172. # that help define how Confluence works.
  173. # https://confluence.atlassian.com/doc/confluence-home-and-other-important-directories-590259707.html
  174. #
  175. localHome:
  176.  
  177. # Dynamic provisioning of local-home using the K8s Storage Classes
  178. #
  179. # https://kubernetes.io/docs/concepts/storage/persistent-volumes/#dynamic
  180. # https://atlassian.github.io/data-center-helm-charts/examples/storage/aws/LOCAL_STORAGE/
  181. #
  182. persistentVolumeClaim:
  183.  
  184. # -- If 'true', then a 'PersistentVolume' and 'PersistentVolumeClaim' will be dynamically
  185. # created for each pod based on the 'StorageClassName' supplied below.
  186. #
  187. create: true
  188.  
  189. # -- Specify the name of the 'StorageClass' that should be used for the local-home
  190. # volume claim.
  191. #
  192. storageClassName: rook-nfs-share1
  193.  
  194. # -- Specifies the standard K8s resource requests for the local-home
  195. # volume claims.
  196. #
  197. resources:
  198. requests:
  199. storage: 1Gi
  200.  
  201. # -- Static provisioning of local-home using K8s PVs and PVCs
  202. #
  203. # NOTE: Due to the ephemeral nature of pods this approach to provisioning volumes for
  204. # pods is not recommended. Dynamic provisioning described above is the prescribed
  205. # approach.
  206. #
  207. # When 'persistentVolumeClaim.create' is 'false', then this value can be used to define
  208. # a standard K8s volume that will be used for the local-home volume(s). If not defined,
  209. # then an 'emptyDir' volume is utilised. Having provisioned a 'PersistentVolume', specify
  210. # the bound 'persistentVolumeClaim.claimName' for the 'customVolume' object.
  211. # https://kubernetes.io/docs/concepts/storage/persistent-volumes/#static
  212. #
  213. customVolume: {}
  214. # persistentVolumeClaim:
  215. # claimName: "<pvc>"
  216.  
  217. # -- Specifies the path in the Confluence container to which the local-home volume will be
  218. # mounted.
  219. #
  220. mountPath: "/var/atlassian/application-data/confluence"
  221.  
  222. # A volume for 'shared-home' is required by Confluence to effectively operate in multi-node
  223. # environment
  224. # https://confluence.atlassian.com/doc/set-up-a-confluence-data-center-cluster-982322030.html#SetupaConfluenceDataCentercluster-Setupandconfigureyourcluster
  225. #
  226. sharedHome:
  227.  
  228. # Dynamic provisioning of shared-home using the K8s Storage Class
  229. #
  230. # https://kubernetes.io/docs/concepts/storage/persistent-volumes/#dynamic
  231. #
  232. persistentVolumeClaim:
  233.  
  234. # -- If 'true', then a 'PersistentVolumeClaim' and 'PersistentVolume' will be dynamically
  235. # created for shared-home based on the 'StorageClassName' supplied below.
  236. #
  237. create: true
  238.  
  239. # -- Specify the name of the 'StorageClass' that should be used for the 'shared-home'
  240. # volume claim.
  241. #
  242. storageClassName: rook-nfs-share1
  243.  
  244. # -- Specifies the standard K8s resource requests limits for the shared-home
  245. # volume claims.
  246. #
  247. resources:
  248. requests:
  249. storage: 1Gi
  250.  
  251. # -- Static provisioning of shared-home using K8s PVs and PVCs
  252. #
  253. # When 'persistentVolumeClaim.create' is 'false', then this value can be used to define
  254. # a standard K8s volume that will be used for the shared-home volume. If not defined,
  255. # then an 'emptyDir' volume is utilised. Having provisioned a 'PersistentVolume', specify
  256. # the bound 'persistentVolumeClaim.claimName' for the 'customVolume' object.
  257. # https://kubernetes.io/docs/concepts/storage/persistent-volumes/#static
  258. # https://atlassian.github.io/data-center-helm-charts/examples/storage/aws/SHARED_STORAGE/
  259. #
  260. customVolume: {}
  261. # persistentVolumeClaim:
  262. # claimName: "<pvc>"
  263.  
  264. # -- Specifies the path in the Confluence container to which the shared-home volume will be
  265. # mounted.
  266. #
  267. mountPath: "/var/atlassian/application-data/shared-home"
  268.  
  269. # -- Specifies the sub-directory of the shared-home volume that will be mounted in to the
  270. # Confluence container.
  271. #
  272. subPath:
  273.  
  274. # Modify permissions on shared-home
  275. #
  276. nfsPermissionFixer:
  277.  
  278. # -- If 'true', this will alter the shared-home volume's root directory so that Confluence
  279. # can write to it. This is a workaround for a K8s bug affecting NFS volumes:
  280. # https://github.com/kubernetes/examples/issues/260
  281. #
  282. enabled: true
  283.  
  284. # -- The path in the K8s initContainer where the shared-home volume will be mounted
  285. #
  286. mountPath: "/shared-home"
  287.  
  288. # -- By default, the fixer will change the group ownership of the volume's root directory
  289. # to match the Confluence container's GID (2002), and then ensures the directory is
  290. # group-writeable. If this is not the desired behaviour, command used can be specified
  291. # here.
  292. #
  293. command: "chown -R 2002:2002 /shared-home; chmod g+rw /shared-home"
  294.  
  295. # Each synchrony pod needs its own volume for 'synchrony-home'. The Synchrony process will write logs to that location
  296. # and any configuration files can be placed there.
  297. #
  298. synchronyHome:
  299.  
  300. # Dynamic provisioning of synchrony-home using the K8s Storage Classes
  301. #
  302. # https://kubernetes.io/docs/concepts/storage/persistent-volumes/#dynamic
  303. # https://atlassian.github.io/data-center-helm-charts/examples/storage/aws/LOCAL_STORAGE/
  304. #
  305. persistentVolumeClaim:
  306.  
  307. # -- If 'true', then a 'PersistentVolume' and 'PersistentVolumeClaim' will be dynamically
  308. # created for each pod based on the 'StorageClassName' supplied below.
  309. #
  310. create: false
  311.  
  312. # -- Specify the name of the 'StorageClass' that should be used for the synchrony-home
  313. # volume claim.
  314. #
  315. storageClassName:
  316.  
  317. # -- Specifies the standard K8s resource requests for the synchrony-home
  318. # volume claims.
  319. #
  320. resources:
  321. requests:
  322. storage: 1Gi
  323.  
  324. # -- Static provisioning of synchrony-home using K8s PVs and PVCs
  325. #
  326. # NOTE: Due to the ephemeral nature of pods this approach to provisioning volumes for
  327. # pods is not recommended. Dynamic provisioning described above is the prescribed
  328. # approach.
  329. #
  330. # When 'persistentVolumeClaim.create' is 'false', then this value can be used to define
  331. # a standard K8s volume that will be used for the synchrony-home volume(s). If not defined,
  332. # then an 'emptyDir' volume is utilised. Having provisioned a 'PersistentVolume', specify
  333. # the bound 'persistentVolumeClaim.claimName' for the 'customVolume' object.
  334. # https://kubernetes.io/docs/concepts/storage/persistent-volumes/#static
  335. #
  336. customVolume: { }
  337. # persistentVolumeClaim:
  338. # claimName: "<pvc>"
  339.  
  340. # -- Specifies the path in the Synchrony container to which the synchrony-home volume will be
  341. # mounted.
  342. #
  343. mountPath: "/var/atlassian/application-data/confluence"
  344.  
  345. # -- Defines additional volumes that should be applied to all Confluence and Synchrony pods.
  346. # Note that this will not create any corresponding volume mounts;
  347. # those needs to be defined in confluence.additionalVolumeMounts
  348. #
  349. additional: []
  350.  
  351. # Ingress configuration
  352. #
  353. # To make the Atlassian product available from outside the K8s cluster an Ingress
  354. # Controller should be pre-provisioned. With this in place the configuration below
  355. # can be used to configure an appropriate Ingress Resource.
  356. # https://atlassian.github.io/data-center-helm-charts/userguide/CONFIGURATION/#ingress
  357. #
  358. ingress:
  359.  
  360. # -- Set to 'true' if an Ingress Resource should be created. This depends on a
  361. # pre-provisioned Ingress Controller being available.
  362. #
  363. create: true
  364.  
  365. # -- The class name used by the ingress controller if it's being used.
  366. #
  367. # Please follow documentation of your ingress controller. If the cluster
  368. # contains multiple ingress controllers, this setting allows you to control
  369. # which of them is used for Atlassian application traffic.
  370. #
  371. className: "nginx"
  372.  
  373. # -- Set to 'true' if the Ingress Resource is to use the K8s 'ingress-nginx'
  374. # controller.
  375. # https://kubernetes.github.io/ingress-nginx/
  376. #
  377. # This will populate the Ingress Resource with annotations that are specific to
  378. # the K8s ingress-nginx controller. Set to 'false' if a different controller is
  379. # to be used, in which case the appropriate annotations for that controller must
  380. # be specified below under 'ingress.annotations'.
  381. #
  382. nginx: true
  383.  
  384. # -- The max body size to allow. Requests exceeding this size will result
  385. # in an HTTP 413 error being returned to the client.
  386. #
  387. maxBodySize: 250m
  388.  
  389. # -- The fully-qualified hostname (FQDN) of the Ingress Resource. Traffic coming in on
  390. # this hostname will be routed by the Ingress Resource to the appropriate backend
  391. # Service.
  392. #
  393. host: "confluence-test.myhost"
  394.  
  395. # -- The base path for the Ingress Resource. For example '/confluence'. Based on a
  396. # 'ingress.host' value of 'company.k8s.com' this would result in a URL of
  397. # 'company.k8s.com/confluence'. Default value is 'confluence.service.contextPath'
  398. path:
  399.  
  400. # -- The custom annotations that should be applied to the Ingress Resource
  401. # when NOT using the K8s ingress-nginx controller.
  402. #
  403. annotations:
  404. cert-manager.io/cluster-issuer: cloudflare
  405. kubernetes.io/ingress.class: nginx
  406. kubernetes.io/tls-acme: "true"
  407. nginx.ingress.kubernetes.io/proxy-body-size: 15m
  408. nginx.ingress.kubernetes.io/affinity: "cookie"
  409. nginx.ingress.kubernetes.io/affinity-mode: "persistent"
  410. nginx.ingress.kubernetes.io/proxy-buffering: "on"
  411.  
  412. # -- Set to 'true' if browser communication with the application should be TLS
  413. # (HTTPS) enforced.
  414. #
  415. https: true
  416.  
  417. # -- The name of the K8s Secret that contains the TLS private key and corresponding
  418. # certificate. When utilised, TLS termination occurs at the ingress point where
  419. # traffic to the Service, and it's Pods is in plaintext.
  420. #
  421. # Usage is optional and depends on your use case. The Ingress Controller itself
  422. # can also be configured with a TLS secret for all Ingress Resources.
  423. # https://kubernetes.io/docs/concepts/configuration/secret/#tls-secrets
  424. # https://kubernetes.io/docs/concepts/services-networking/ingress/#tls
  425. #
  426. tlsSecretName:
  427.  
  428. # Confluence configuration
  429. #
  430. confluence:
  431.  
  432. # K8s Confluence Service configuration
  433. #
  434. service:
  435.  
  436. # -- The port on which the Confluence K8s Service will listen
  437. #
  438. port: 80
  439.  
  440. # -- The type of K8s service to use for Confluence
  441. #
  442. type: ClusterIP
  443.  
  444. # -- Use specific loadBalancerIP. Only applies to service type LoadBalancer.
  445. #
  446. loadBalancerIP:
  447.  
  448. # -- The Tomcat context path that Confluence will use. The ATL_TOMCAT_CONTEXTPATH
  449. # will be set automatically.
  450. #
  451. contextPath:
  452.  
  453. # -- Additional annotations to apply to the Service
  454. #
  455. annotations: {}
  456.  
  457. # Standard K8s field that holds pod-level security attributes and common container settings.
  458. # https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
  459. # Do not populate when deploying to OpenShift, unless anyuid policy is attached to a service account.
  460. #
  461. securityContext:
  462.  
  463. # -- The GID used by the Confluence docker image
  464. # If not supplied, will default to 2002
  465. # This is intended to ensure that the shared-home volume is group-writeable by the GID used by the Confluence container.
  466. # However, this doesn't appear to work for NFS volumes due to a K8s bug: https://github.com/kubernetes/examples/issues/260
  467. fsGroup: 2002
  468.  
  469. # -- Standard K8s field that holds security configurations that will be applied to a container.
  470. # https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
  471. #
  472. containerSecurityContext:
  473. # runAsUser: 2002
  474. runAsGroup: 2002
  475.  
  476. # -- The umask used by the Confluence process when it creates new files.
  477. # The default is 0022. This gives the new files:
  478. # - read/write permissions for the Confluence user
  479. # - read permissions for everyone else.
  480. #
  481. umask: "0022"
  482.  
  483. # -- Boolean to define whether to set local home directory permissions on startup
  484. # of Confluence container. Set to 'false' to disable this behaviour.
  485. #
  486. setPermissions: true
  487.  
  488. # Port definitions
  489. #
  490. ports:
  491.  
  492. # -- The port on which the Confluence container listens for HTTP traffic
  493. #
  494. http: 8090
  495.  
  496. # -- The port on which the Confluence container listens for Hazelcast traffic
  497. #
  498. hazelcast: 5701
  499.  
  500. # Confluence licensing details
  501. #
  502. license:
  503.  
  504. # -- The name of the K8s Secret that contains the Confluence license key. If specified, then
  505. # the license will be automatically populated during Confluence setup. Otherwise, it will
  506. # need to be provided via the browser after initial startup. An Example of creating
  507. # a K8s secret for the license below:
  508. # 'kubectl create secret generic <secret-name> --from-literal=license-key=<license>
  509. # https://kubernetes.io/docs/concepts/configuration/secret/#opaque-secrets
  510. #
  511. secretName:
  512.  
  513. # -- The key in the K8s Secret that contains the Confluence license key
  514. #
  515. secretKey: license-key
  516.  
  517. # Confirm that Confluence is up and running with a ReadinessProbe
  518. # https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-readiness-probes
  519. #
  520. readinessProbe:
  521.  
  522. # -- The initial delay (in seconds) for the Confluence container readiness probe,
  523. # after which the probe will start running.
  524. #
  525. initialDelaySeconds: 10
  526.  
  527. # -- How often (in seconds) the Confluence container readiness probe will run
  528. #
  529. periodSeconds: 5
  530.  
  531. # -- The number of consecutive failures of the Confluence container readiness probe
  532. # before the pod fails readiness checks.
  533. #
  534. failureThreshold: 6
  535.  
  536. # Confluence log configuration
  537. #
  538. accessLog:
  539.  
  540. # -- Set to 'true' if access logging should be enabled.
  541. #
  542. enabled: true
  543.  
  544. # -- The path within the Confluence container where the local-home volume should be
  545. # mounted in order to capture access logs.
  546. #
  547. mountPath: "/opt/atlassian/confluence/logs"
  548.  
  549. # -- The subdirectory within the local-home volume where access logs should be
  550. # stored.
  551. #
  552. localHomeSubPath: "logs"
  553.  
  554. # Data Center clustering
  555. #
  556. clustering:
  557.  
  558. # -- Set to 'true' if Data Center clustering should be enabled
  559. # This will automatically configure cluster peer discovery between cluster nodes.
  560. #
  561. enabled: true
  562.  
  563. # -- Set to 'true' if the K8s pod name should be used as the end-user-visible
  564. # name of the Data Center cluster node.
  565. #
  566. usePodNameAsClusterNodeName: true
  567.  
  568. # Confluence Pod resource requests
  569. #
  570. resources:
  571.  
  572. # JVM Memory / Heap Size definitions. The values below are based on the
  573. # defaults defined for the Confluence docker container.
  574. # https://bitbucket.org/atlassian-docker/docker-atlassian-confluence-server/src/master/#markdown-header-memory-heap-size
  575. #
  576. jvm:
  577.  
  578. # -- The maximum amount of heap memory that will be used by the Confluence JVM
  579. #
  580. maxHeap: "2g"
  581.  
  582. # -- The minimum amount of heap memory that will be used by the Confluence JVM
  583. #
  584. minHeap: "1g"
  585.  
  586. # -- The memory reserved for the Confluence JVM code cache
  587. #
  588. reservedCodeCache: "256m"
  589.  
  590. # Specifies the standard K8s resource requests and/or limits for the Confluence
  591. # container. It is important that if the memory resources are specified here,
  592. # they must allow for the size of the Confluence JVM. That means the maximum heap
  593. # size, the reserved code cache size, plus other JVM overheads, must be
  594. # accommodated. Allowing for (maxHeap+codeCache)*1.5 would be an example.
  595. #
  596. container:
  597.  
  598. requests:
  599. # -- Initial CPU request by Confluence pod.
  600. #
  601. cpu: "2"
  602.  
  603. # -- Initial Memory request by Confluence pod
  604. #
  605. memory: "2G"
  606. # limits:
  607. # cpu: "2"
  608. # memory: "2G"
  609.  
  610. shutdown:
  611.  
  612. # -- The termination grace period for pods during shutdown. This
  613. # should be set to the Confluence internal grace period (default 20
  614. # seconds), plus a small buffer to allow the JVM to fully terminate.
  615. #
  616. terminationGracePeriodSeconds: 25
  617.  
  618. # -- By default pods will be stopped via a [preStop hook](https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/),
  619. # using a script supplied by the Docker image. If any other
  620. # shutdown behaviour is needed it can be achieved by overriding
  621. # this value. Note that the shutdown command needs to wait for the
  622. # application shutdown completely before exiting; see [the default
  623. # command](https://bitbucket.org/atlassian-docker/docker-atlassian-confluence-server/src/master/shutdown-wait.sh)
  624. # for details.
  625. #
  626. command: "/shutdown-wait.sh"
  627.  
  628. # -- Specifies a list of additional arguments that can be passed to the Confluence JVM, e.g.
  629. # system properties.
  630. #
  631. additionalJvmArgs:
  632. - -Djava.awt.headless=true
  633. - -javaagent:/var/agent/atlassian-agent.jar
  634.  
  635. # -- Specifies a list of additional Java libraries that should be added to the
  636. # Confluence container. Each item in the list should specify the name of the volume
  637. # that contains the library, as well as the name of the library file within that
  638. # volume's root directory. Optionally, a subDirectory field can be included to
  639. # specify which directory in the volume contains the library file. Additional details:
  640. # https://atlassian.github.io/data-center-helm-charts/examples/external_libraries/EXTERNAL_LIBS/
  641. #
  642. additionalLibraries: []
  643. # - volumeName:
  644. # subDirectory:
  645. # fileName:
  646.  
  647. # -- Specifies a list of additional Confluence plugins that should be added to the
  648. # Confluence container. Note plugins installed via this method will appear as
  649. # bundled plugins rather than user plugins. These should be specified in the same
  650. # manner as the 'additionalLibraries' property. Additional details:
  651. # https://atlassian.github.io/data-center-helm-charts/examples/external_libraries/EXTERNAL_LIBS/
  652. #
  653. # NOTE: only .jar files can be loaded using this approach. OBR's can be extracted
  654. # (unzipped) to access the associated .jar
  655. #
  656. # An alternative to this method is to install the plugins via "Manage Apps" in the
  657. # product system administration UI.
  658. #
  659. additionalBundledPlugins: []
  660. # - volumeName:
  661. # subDirectory:
  662. # fileName:
  663.  
  664. # -- Defines any additional volumes mounts for the Confluence container. These
  665. # can refer to existing volumes, or new volumes can be defined via
  666. # 'volumes.additional'.
  667. #
  668. additionalVolumeMounts: []
  669.  
  670. # -- Defines any additional environment variables to be passed to the Confluence
  671. # container. See https://hub.docker.com/r/atlassian/confluence-server for
  672. # supported variables.
  673. #
  674. additionalEnvironmentVariables:
  675. - name: CONFLUENCE_LOG_STDOUT
  676. value: "true"
  677. - name: ATL_PROXY_NAME
  678. value: "confluence-test.myhost"
  679. - name: ATL_PROXY_PORT
  680. value: "443"
  681. - name: ATL_TOMCAT_SCHEME
  682. value: "https"
  683. # - name: ATL_CLUSTER_TYPE
  684. # value: "tcp_ip"
  685. # TODO: remove hard-coded
  686. # - name: ATL_CLUSTER_PEERS
  687. # value: ""
  688.  
  689. # -- Defines any additional ports for the Confluence container.
  690. #
  691. additionalPorts:
  692. - name: hazelcastconf
  693. containerPort: 5801
  694. protocol: TCP
  695.  
  696. # -- Defines additional volumeClaimTemplates that should be applied to the Confluence pod.
  697. # Note that this will not create any corresponding volume mounts;
  698. # those needs to be defined in confluence.additionalVolumeMounts
  699. #
  700. additionalVolumeClaimTemplates: []
  701. # - name: myadditionalvolumeclaim
  702. # storageClassName:
  703. # resources:
  704. # requests:
  705. # storage: 1Gi
  706.  
  707. # -- Defines topology spread constraints for Confluence pods. See details:
  708. # https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
  709. #
  710. topologySpreadConstraints: []
  711. # - maxSkew: 1
  712. # topologyKey: kubernetes.io/hostname
  713. # whenUnsatisfiable: ScheduleAnyway
  714. # labelSelector:
  715. # matchLabels:
  716. # app.kubernetes.io/name: confluence
  717.  
  718. # Debugging
  719. #
  720. jvmDebug:
  721.  
  722. # -- Set to 'true' for remote debugging. Confluence JVM will be started with debugging
  723. # port 5005 open.
  724. enabled: false
  725.  
  726. # Confluence Synchrony configuration
  727. # https://confluence.atlassian.com/doc/configuring-synchrony-858772125.html
  728. synchrony:
  729.  
  730. # -- Set to 'true' if Synchrony (i.e. collaborative editing) should be enabled.
  731. # This will result in a separate StatefulSet and Service to be created for Synchrony.
  732. # If disabled, then collaborative editing will be disabled in Confluence.
  733. enabled: false
  734.  
  735. # K8s Synchrony Service configuration
  736. #
  737. service:
  738.  
  739. # -- The port on which the Synchrony K8s Service will listen
  740. #
  741. port: 80
  742.  
  743. # -- The type of K8s service to use for Synchrony
  744. #
  745. type: ClusterIP
  746.  
  747. # -- Use specific loadBalancerIP. Only applies to service type LoadBalancer.
  748. #
  749. loadBalancerIP:
  750.  
  751. # -- Boolean to define whether to set synchrony home directory permissions on startup
  752. # of Synchrony container. Set to 'false' to disable this behaviour.
  753. #
  754. setPermissions: true
  755.  
  756. # Port definitions
  757. #
  758. ports:
  759.  
  760. # -- The port on which the Synchrony container listens for HTTP traffic
  761. #
  762. http: 8091
  763.  
  764. # -- The port on which the Synchrony container listens for Hazelcast traffic
  765. #
  766. hazelcast: 5701
  767.  
  768. hazelcastConf: 5801
  769.  
  770. # Confirm that Synchrony is up and running with a ReadinessProbe
  771. # https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-readiness-probes
  772. #
  773. readinessProbe:
  774.  
  775. # -- The initial delay (in seconds) for the Synchrony container readiness probe,
  776. # after which the probe will start running.
  777. #
  778. initialDelaySeconds: 5
  779.  
  780. # -- How often (in seconds) the Synchrony container readiness probe will run
  781. #
  782. periodSeconds: 1
  783.  
  784. # -- The number of consecutive failures of the Synchrony container readiness probe
  785. # before the pod fails readiness checks.
  786. #
  787. failureThreshold: 10
  788.  
  789. # Synchrony Pod resource requests
  790. #
  791. resources:
  792.  
  793. # JVM Memory / Heap Size definitions. The values below are based on the
  794. # defaults defined for the Synchrony docker container.
  795. #
  796. jvm:
  797.  
  798. # -- The maximum amount of heap memory that will be used by the Synchrony JVM
  799. #
  800. minHeap: "1g"
  801.  
  802. # -- The minimum amount of heap memory that will be used by the Synchrony JVM
  803. #
  804. maxHeap: "2g"
  805.  
  806. # -- The memory allocated for the Synchrony stack
  807. #
  808. stackSize: "2048k"
  809.  
  810. # Specifies the standard K8s resource requests and/or limits for the Synchrony
  811. # container. It is important that if the memory resources are specified here,
  812. # they must allow for the size of the Synchrony JVM. That means the maximum heap
  813. # size, the reserved code cache size, plus other JVM overheads, must be
  814. # accommodated. Allowing for (maxHeap+codeCache)*1.5 would be an example.
  815. #
  816. container:
  817. requests:
  818. # -- Initial CPU request by Synchrony pod
  819. #
  820. cpu: "2"
  821.  
  822. # -- Initial Memory request Synchrony pod
  823. #
  824. memory: "2.5G"
  825.  
  826. # -- Specifies a list of additional arguments that can be passed to the Synchrony JVM, e.g.
  827. # system properties.
  828. #
  829. additionalJvmArgs: {}
  830. #- -Dsynchrony.example.system.property=46
  831.  
  832. shutdown:
  833. # -- The termination grace period for pods during shutdown. This
  834. # should be set to the Synchrony internal grace period (default 20
  835. # seconds), plus a small buffer to allow the JVM to fully terminate.
  836. terminationGracePeriodSeconds: 25
  837.  
  838. # -- The base URL of the Synchrony service. This will be the URL that users' browsers will
  839. # be given to communicate with Synchrony, as well as the URL that the Confluence service
  840. # will use to communicate directly with Synchrony, so the URL must be resolvable both from
  841. # inside and outside the Kubernetes cluster.
  842. ingressUrl:
  843.  
  844. # -- Specifies a list of additional Java libraries that should be added to the
  845. # Synchrony container. Each item in the list should specify the name of the volume
  846. # that contains the library, as well as the name of the library file within that
  847. # volume's root directory. Optionally, a subDirectory field can be included to
  848. # specify which directory in the volume contains the library file. Additional details:
  849. # https://atlassian.github.io/data-center-helm-charts/examples/external_libraries/EXTERNAL_LIBS/
  850. #
  851. additionalLibraries: []
  852. # - volumeName:
  853. # subDirectory:
  854. # fileName:
  855.  
  856. # -- Defines any additional ports for the Synchrony container.
  857. #
  858. additionalPorts: []
  859. # - name: jmx
  860. # containerPort: 5555
  861. # protocol: TCP
  862.  
  863. # -- Defines topology spread constraints for Synchrony pods. See details:
  864. # https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
  865. #
  866. topologySpreadConstraints: []
  867. # - maxSkew: 1
  868. # topologyKey: kubernetes.io/hostname
  869. # whenUnsatisfiable: ScheduleAnyway
  870. # labelSelector:
  871. # matchLabels:
  872. # app.kubernetes.io/name: confluence-synchrony
  873.  
  874. # Fluentd configuration
  875. #
  876. # Confluence log collection and aggregation can be enabled using Fluentd. This config
  877. # assumes an existing ELK stack has been stood up and is available.
  878. # https://www.fluentd.org/
  879. #
  880. fluentd:
  881.  
  882. # -- Set to 'true' if the Fluentd sidecar (DaemonSet) should be added to each pod
  883. #
  884. enabled: false
  885.  
  886. # -- The Fluentd sidecar image
  887. #
  888. imageName: fluent/fluentd-kubernetes-daemonset:v1.11.5-debian-elasticsearch7-1.2
  889.  
  890. # -- The command used to start Fluentd. If not supplied the default command
  891. # will be used: "fluentd -c /fluentd/etc/fluent.conf -v"
  892. #
  893. # Note: The custom command can be free-form, however pay particular attention to
  894. # the process that should ultimately be left running in the container. This process
  895. # should be invoked with 'exec' so that signals are appropriately propagated to it,
  896. # for instance SIGTERM. An example of how such a command may look is:
  897. # "<command 1> && <command 2> && exec <primary command>"
  898. command:
  899.  
  900. # -- Set to 'true' if a custom config (see 'configmap-fluentd.yaml' for default)
  901. # should be used for Fluentd. If enabled this config must be supplied via the
  902. # 'fluentdCustomConfig' property below.
  903. #
  904. customConfigFile: false
  905.  
  906. # -- Custom fluent.conf file
  907. #
  908. fluentdCustomConfig: {}
  909. # fluent.conf: |
  910. # <source>
  911. # @type tail
  912. # <parse>
  913. # @type multiline
  914. # format_firstline /\d{4}-\d{1,2}-\d{1,2}/
  915. # </parse>
  916. # path /opt/atlassian/confluence/logs/access_log.*
  917. # pos_file /tmp/confluencelog.pos
  918. # tag confluence-access-logs
  919. # </source>
  920.  
  921. # -- The port on which the Fluentd sidecar will listen
  922. #
  923. httpPort: 9880
  924.  
  925. # Elasticsearch config based on your ELK stack
  926. #
  927. elasticsearch:
  928.  
  929. # -- Set to 'true' if Fluentd should send all log events to an Elasticsearch service.
  930. #
  931. enabled: true
  932.  
  933. # -- The hostname of the Elasticsearch service that Fluentd should send logs to.
  934. #
  935. hostname: elasticsearch
  936.  
  937. # -- The prefix of the Elasticsearch index name that will be used
  938. #
  939. indexNamePrefix: confluence
  940.  
  941. # -- Specify custom volumes to be added to Fluentd container (e.g. more log sources)
  942. #
  943. extraVolumes: []
  944. # - name: local-home
  945. # mountPath: /opt/atlassian/confluence/logs
  946. # subPath: log
  947. # readOnly: true
  948.  
  949.  
  950. # -- Custom annotations that will be applied to all Confluence pods
  951. #
  952. podAnnotations: {}
  953. # name: <value>
  954.  
  955. # -- Custom labels that will be applied to all Confluence pods
  956. #
  957. podLabels: {}
  958. # name: <value>
  959.  
  960. # -- Standard K8s node-selectors that will be applied to all Confluence pods
  961. #
  962. nodeSelector: {}
  963. # name: <value>
  964.  
  965. # -- Standard K8s tolerations that will be applied to all Confluence pods
  966. #
  967. tolerations: []
  968. # - effect: <name>
  969. # operator: <operator>
  970. # key: <key>
  971.  
  972. # -- Standard K8s affinities that will be applied to all Confluence pods
  973. #
  974. affinity: {}
  975. # name: <value>
  976.  
  977. # -- Standard K8s schedulerName that will be applied to all Confluence pods.
  978. # Check Kubernetes documentation on how to configure multiple schedulers:
  979. # https://kubernetes.io/docs/tasks/extend-kubernetes/configure-multiple-schedulers/#specify-schedulers-for-pods
  980. #
  981. schedulerName:
  982.  
  983. # -- Additional container definitions that will be added to all Confluence pods
  984. #
  985. additionalContainers: []
  986. # - name: <name>
  987. # image: <image>:<tag>
  988.  
  989. # -- Additional initContainer definitions that will be added to all Confluence pods
  990. #
  991. additionalInitContainers:
  992. - name: nfs-permission-fixer-2
  993. image: alpine
  994. imagePullPolicy: IfNotPresent
  995. securityContext:
  996. runAsUser: 0 # make sure we run as root so we get the ability to change the volume permissions
  997. volumeMounts:
  998. - name: local-home
  999. mountPath: "/logs"
  1000. subPath: "logs"
  1001. command: ["sh", "-c", "chown -R 2002:2002 /logs; chmod g+rw /logs"]
  1002. # - name: <name>
  1003. # image: <image>:<tag>
  1004.  
  1005. # -- Additional labels that should be applied to all resources
  1006. #
  1007. additionalLabels: {}
  1008. # name: <value>
  1009.  
  1010. # -- Additional existing ConfigMaps and Secrets not managed by Helm that should be
  1011. # mounted into service container. Configuration details below (camelCase is important!):
  1012. # 'name' - References existing ConfigMap or secret name.
  1013. # 'type' - 'configMap' or 'secret'
  1014. # 'key' - The file name.
  1015. # 'mountPath' - The destination directory in a container.
  1016. # VolumeMount and Volumes are added with this name and index position, for example;
  1017. # custom-config-0, keystore-2
  1018. #
  1019. additionalFiles:
  1020. # - name: custom-server-config
  1021. # type: configMap
  1022. # key: server.xml
  1023. # mountPath: /opt/atlassian/confluence/conf
  1024. # - name: custom-config
  1025. # type: configMap
  1026. # key: log4j.properties
  1027. # mountPath: /var/atlassian
  1028. # - name: custom-config
  1029. # type: configMap
  1030. # key: web.xml
  1031. # mountPath: /var/atlassian
  1032. # - name: keystore
  1033. # type: secret
  1034. # key: keystore.jks
  1035. # mountPath: /var/ssl
  1036.  
  1037. # -- Additional host aliases for each pod, equivalent to adding them to the /etc/hosts file.
  1038. # https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
  1039. additionalHosts: []
  1040. # - ip: "127.0.0.1"
  1041. # hostnames:
  1042. # - "foo.local"
  1043. # - "bar.local"
  1044.  
  1045.  
Advertisement
Add Comment
Please, Sign In to add comment