To migrate your existing CloudBees CI installation to Helm:
-
Ensure you have installed Helm, as documented in Setting up the Helm client.
-
Back up your operations center and
JENKINS_HOME
directory. -
Ensure that the
reclaim policy
of the Persistent Volume for your operations center is set toRetain
, and notDelete
. To check this, runkubectl get pv
and look under theRECLAIM POLICY
column for thejenkins-home-cjoc-0
claim$ kubectl get pv NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE pvc-6235d73e-4f47-4fff-905e-095c89e245fe 20Gi RWO Retain Bound default/jenkins-home-cjoc-0 standard 174m
If the
RECLAIM POLICY
isDelete
, change it toRetain
by following Changing the reclaim policy of a PersistentVolume -
Delete your existing operations center:
$ kubectl delete -f cloudbees-ci.yml (1)
1 Substitute the name of your most recently customized CloudBees CI YAML file for cloudbees-ci.yml
. -
Kubernetes does not delete Persistent Volume Claims (PVC)s, so the CloudBees CI Helm chart can reuse this existing PVC in the new installation. Retrieve the PVC name:
$ kubectl get pvc jenkins-home-cjoc-0 NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE jenkins-home-cjoc-0 Bound pvc-6d3b2db6-62b5-11e9-9b26-0e7bd6f0258e 20Gi RWO gp2 30d
-
Use the same
cjoc
statefulset name that was previously used. -
Using either a custom value file that you created before you started the migration or the
helm install --set
argument, set the value fieldPersistence.ExistingClaim
tojenkins-home-cjoc-0
for the PVC. -
Install the Helm chart using
helm install cloudbees-core cloudbees/cloudbees-core -f custom-values.yaml --namespace=cloudbees-core
-
Once your CloudBees CI migration has completed, log in to your operations center with your previous passwords.
-
The Kubernetes Pod for each of your controllers will now require a restart. This can be done using the Manage → Restart button in the operations center. Doing this ensures that the Kubernetes
ServiceAccount
and theSecret
that was re-created as part of this Helm migration is picked up by each controller, which is required for the controller to be able to create new Kubernetes build agents.
For more information on running CloudBees CI on Kubernetes, see the CloudBees CI on modern cloud platforms administration guide.