Migrating Confluence to Kubernetes
This document explains the process of migrating an existing Confluence installation to Kubernetes.
đź’ˇ
Confluence 8.5.17 to 9.2.5
Pre-configured resources
- Rook ceph(Block, Filesystem)
- cert-manager
- Nginx ingress controller
- DB(PostgreSQL)
Helm Chart
Version: v3.17.3(GoVersion: go1.23.7)
Add the Helm chart repository
helm repo add atlassian-data-center \
https://atlassian.github.io/data-center-helm-charts
Check Atlassian product version with chart version
helm search repo atlassian-data-center/confluence
Get values.yaml
command
helm show values altassian-data-center/confluence --version 1.22.0 > values.yaml
Editing values.yaml
Modify according to your configuration.
Create namespace
kubectl create ns atlassian
Deploy helm chart
Confluence version: 8.5.17
helm install confluence \
atlassian-data-center/confluence \
-f values.yaml \
-n atlassian \
--version 1.22.0
Check deployment
đź’ˇ
The purpose of this initial startup is to intentionally enter an invalid database URL in order to create an empty Persistent Volume (PV) for Confluence data(application-data, shared-home) migration.
Data Migration
Process for importing existing application data and using it in the existing environment
Migration strategy
- Confluence deploy(replicas=1) with empty data(application-data, shared-home)
- Get application-data directory from as-is confluence instance(Rsync in to-be confluence pod)
- Get shared-home directory from as-is confluence instance(Rsync in to-be confluence pod)
- Confluence pod delete for restart
- Check confluence data
- Scale the Confluence pod from 1 to 2
Upgrade
Upgrade strategy
- replicas 0(shutdown all Confluence pod)
- Helm chart upgrade
Shutdown all Confluence pod
kubectl scale statefulset --replicas 0 -n atlassian confluence
For a Rolling upgrade, adjusting the replicas is not necessary.
Helm chart
Confluence version: 8.5.17 → 9.2.5
helm upgrade confluence \
atlassian-data-center/confluence \
--version 2.0.2 \
-f values.yaml \
-n atlassian
🗒️
DuringÂ
The previousÂ
helm upgrade
, pods are created based on the replicaCount
 in values.yaml
, and the first pod performs the upgrade task.The previousÂ
--replicas 0
 setting is ignored.Reference
Products upgrade - Atlassian DC Helm Charts