This page covers installation and deployment configurations for CloudBees CD/RO on Kubernetes. These configurations include optimizing CloudBees CD/RO for large-scale deployments, integrating with existing databases, customizing image sources, and managing Helm chart settings. Use these procedures to tailor your CloudBees CD/RO installation to meet specific infrastructure requirements and operational needs.
Configure CloudBees CD/RO for very large Helm deployments
A very large Helm deployment of CloudBees CD/RO is:
-
~ 100K jobs per day
-
~ 2000 running pipelines per day
-
~ 5M job steps per day
Active customers and partners can refer to the CloudBees CD/RO Level 2: Helm for Very Large Kubernetes Deployments training course for details.
The following tables summarize the changes to the default Helm chart for very large deployments:
CloudBees CD/RO server values
For information about default CloudBees CD/RO Helm charts, refer to CloudBees CD/RO server values. You can find these cloudbees-flow values referenced in the values.yaml under the Flow server configuration section.
| Name | Value |
|---|---|
server.replicas |
4 |
server.ecconfigure |
"--serverInitMemory=70 --serverMaxMemory=85" |
server.resources.limits.cpu |
16 |
server.resources.limits.memory |
128Gi |
server.resources.requests.cpu |
4 |
server.resources.requests.memory |
16Gi |
CloudBees CD/RO web server values
For the default CloudBees CD/RO Helm charts, refer to CloudBees CD/RO web server values. You can find these cloudbees-flow values referenced in the values.yaml under the Flow web server configuration section.
| Name | Value |
|---|---|
web.replicas |
2 |
Repository values
For the default CloudBees CD/RO Helm charts, refer to Repository values. You can find these cloudbees-flow values referenced in the values.yaml under the Flow repository configuration section.
| Name | Value |
|---|---|
repository.resources.requests.memory |
768Mi |
CloudBees Analytics server values
For the default CloudBees CD/RO Helm charts, refer to CloudBees Analytics server values. You can find these cloudbees-flow values referenced in the values.yaml under the Analytics server configuration section.
| Name | Value |
|---|---|
analytics.replicas |
|
analytics.esMinMasterNodes |
|
analytics.heapSize |
|
analytics.resources.limits.cpu |
|
analytics.resources.limits.memory |
|
analytics.resources.requests.cpu |
|
analytics.resources.requests.memory |
|
CloudBees CD/RO agent values
For the default CloudBees CD/RO Helm charts, refer to CloudBees CD/RO agent configuration values. You can find these cloudbees-flow-agent values referenced in the agent values.yaml.
| Name | Value |
|---|---|
replicas |
|
Set global values in CloudBees CD/RO Helm charts
Starting with v2023.10.0, you can configure global values for image settings to use for all CloudBees CD/RO components. In v2023.10.0 and later cloudbees-flow values files, you can find these configurations by searching for Global configurations section.
When you set a global image, it is applied to the following components:
-
server -
web -
repository -
analytics -
analytics.backup -
boundAgent -
zookeeper -
internalGatewayAgent -
externalGatewayAgent
This option improves usability and enables you to set and update chart values for these components in a single location, instead of for each component individually. However, this setting is optional, and you can still configure CloudBees CD/RO components individually to pull specific images.
|
The following sections do not apply values from the global section and must be individually configured:
For information on setting custom images, refer to [configure-custom-images] |
Set global chart values
Setting global values for image settings is an optional configuration for CloudBees CD/RO v2023.10.0 and later, meant to improve usability and maintainability of your Helm charts. Global chart values allow you to set a value in one location that, where applicable, is applied to all CloudBees CD/RO components.
|
Global-level chart values override component-level chart values. This means, if you have both a global-level value set and component-level value set, the global value is taken. Before setting any global-level value, CloudBees strongly suggests to ensure the global value is valid and correct for all instances where it will be applied. |
The following is an example of setting a global image value:
-
In your v2023.10.0 and later values file, navigate to the Global configurations section.
-
Provide values for:
-
global.cloudbees.imageRegistry -
global.cloudbees.imageTag -
(OPTIONAL)
global.cloudbees.imagePullSecretsYou must enable
imagePullSecretsif you are using a private registry. Secrets must be manually created or already exist in the namespace.
-
-
(OPTIONAL) For CloudBees CD/RO component values that have a
global.<value>set, remove the<component>.<value>.Global-level configurations override component-level configurations. However, from a troubleshooting point of view, having two different values configured in different locations in your values file may cause some confusion. Because of this, CloudBees suggests removing the component-level configuration for values already set at the global level.
You are now able to update the global image to use for all CloudBees CD/RO components in a single location in your values file.
Install CloudBees CD/RO on Kubernetes using an existing database
You can install CloudBees CD/RO using your existing database, if you are:
-
Performing an initial installation of CloudBees CD/RO.
-
Migrating from a traditional CloudBees CD/RO installation to Kubernetes.
-
Spinning up an additional testing or production environment.
-
Upgrading between CloudBees CD/RO versions.
The procedures to install your existing database with CloudBees CD/RO are nearly the same for each of these scenarios. However, if this is your initial installation, it may be easier to install CloudBees CD/RO using the instructions found in Install CloudBees CD/RO production server, and then update your installation with the steps listed here.
| If you only want to find the values needed to configure your existing database as part of the Helm chart customization process, you can also refer to Database values. |
Before you start
-
Ensure the CloudBees CD/RO version you are installing or upgrading to supports the database you want to integrate. For more information on which databases are supported by each CloudBees CD/RO release, refer to Supported platforms for CloudBees CD/RO on Kubernetes.
-
Always make backups of your project-specific resources prior to installing or upgrading your CloudBees CD/RO version. These backups may be vital to recovering your data if critical errors occur during upgrades.
-
Always perform adequate and thorough testing in a development environment before releasing any version installation or upgrade into your production environment.
-
To see an example of a complete CloudBees CD/RO installation (not upgrade) using an existing database, refer to Example installation of CloudBees CD/RO using an existing database.
If you do not already have a myvalues.yaml, refer to CloudBees CD/RO default Helm charts to set yours up before continuing these steps.
|
Install CloudBees CD/RO with your existing database
To install your existing database:
-
Make backups of your deployment and database. These backups may be necessary to recover data if critical errors occurs during the upgrade process.
-
Set the variables for the current release’s name, its namespace, and version you want to install/upgrade to:
releaseName="<your-current-release>" namespace="<your-current-release-namespace>" # Example upgradeVersion value: "2.21.0" upgradeVersion="<version-of-upgrade-release>" -
Save the values from your current release to a values file by running:
helm get values $releaseName --namespace $namespace > old-values.yamlIf this is your initial installation, this step is not needed, you can continue and use the same steps for your myvalues.yamlas described forold-values.yaml. -
Ensure your
old-values.yamlcontains values, or set the values, for the following parameters:-
database.externalEndpoint -
database.dbPort -
database.dbType -
database.dbName -
database.dbUser -
database.dbPassword -
flowLicense -
flowCredentials.adminPasswordWhen using the helm installcommand, you can use the--setoption to specify these values.
-
-
If your
old-values.yamluses theimages.tag, you must update it with the image tag of the new CloudBees CD/RO release you want to upgrade to.If this is your initial installation, and you downloaded the latest version of the values file from SonaType Nexus, your values file already contains this information unless you removed it during customization. If you do not update the images.tagor update it with an incorrect value, your installation/upgrade will not succeed.
After you have performed these steps, set any additional values you need in your old-values.yaml for the CloudBees CD/RO installation. For more information refer to configuration.adoc.
| Once you have your values file ready for installation, ensure the network connection between your database instance and Kubernetes cluster is active before continuing. |
Next, you need your flow-server passkey and keystore files from your existing CloudBees CD/RO installation and to convert them to base64 format:
-
Copy and save your
flow-serverpasskey:# Get the flow-server pod name cdServerPod=$(kubectl get pod -l app=flow-server -o \ jsonpath='{.items[*].metadata.name}' -n $namespace); echo $cdServerPod # Get the passkey file name passkey=$(kubectl -n $namespace exec $cdServerPod -- ls /tmp/ | grep passkey); echo $passkey # Copy the passkey file from the flow-server pod to the local machine kubectl -n $namespace cp $cdServerPod:/tmp/$passkey ./passkey # Ensure the passkey file has been copied ls -l | grep passkey -
Convert your passkey to
base64format:base64 -i passkey -o passkey.b64 -
Copy and store the
flow-serverkeystore files:# Get the keystore file name keystore=$(kubectl -n $namespace exec $cdServerPod -- ls /tmp/ | grep keystore); echo $keystore # Copy the keystore file from flow-server pod to your local machine kubectl -n $namespace cp $cdServerPod:/tmp/$keystore ./keystore # Ensure the keystore file has been copied ls -l | grep keystore -
Convert your keystore to
base64format:base64 -i keystore -o keystore.b64 -
Install CloudBees CD/RO using your
old-values.yaml, passkey, keystore, andlicense.xml(if required):helm install $releaseName cloudbees/cloudbees-flow --namespace $namespace \ --values old-values.yaml \ --set-file server.customConfig.passkey\\.b64=passkey.b64 \ --set-file server.customConfig.keystore\\.b64=keystore.b64 \ # Helm upgrades exit when all tasks are complete, regardless of timeout. # However, if your database is very large, the timeout may need to be increased to prevent returning a FAILED status. # For instance: --timeout 10800s --timeout 4200s \ # If required include your license.xml --set-file flowLicense.licenseData=license.xmlIf you are installing a CloudBees CD/RO instance with an external database, do not use the --waitoption. Theflow-server-init-jobcannot be started if--waitis used.
Example installation of CloudBees CD/RO using an existing database
For your reference, the following shows a complete installation example of CloudBees CD/RO using an existing database:
Example CloudBees CD/RO installation using existing database
dbType=sqlserver dbEndpoint=mssql.k8s.xyz dbPort=1433 dbUser=dbadmin dbPass=mySecretDbPassword dbName=myexistingdb flowPassword=mySecretFlowPassword analyticsPassword=mySecretAnalyticsPassword licenseFile=path/to/license.xml passkeyFile=path/to/passkey keystoreFile=path/to/keystore storageClass=nfs-client hostname=flow-server.k8s.xyz namespace=test-existing-db release=cloudbees-flow releaseVersion=2.21 base64 -i $passkeyFile -o passkey.b64 base64 -i $keystoreFile -o keystore.b64 kubectl create namespace $namespace kubectl -n $namespace create secret \ generic $release-cloudbees-flow-credentials \ --from-literal CBF_SERVER_ADMIN_PASSWORD=$flowPassword kubectl -n $namespace create secret \ generic $release-cloudbees-flow-analytics \ --from-literal CBF_ANALYTICS_ADMIN_PASSWORD=$flowPassword \ --from-literal CBF_ANALYTICS_PASSWORD=$analyticsPassword helm repo add cloudbees https://charts.cloudbees.com/public/cloudbees helm repo update helm search repo cloudbees/cloudbees-flow --versions helm install $release cloudbees/cloudbees-flow --version $releaseVersion \ --namespace $namespace \ --set storage.volumes.serverPlugins.storageClass=$storageClass \ --set storage.volumes.repositoryStorage.storageClass=$storageClass \ --set storage.volumes.analyticsStorage.storageClass=$storageClass \ --set database.externalEndpoint=$dbEndpoint \ --set database.dbPort=$dbPort \ --set database.dbType=$dbType \ --set database.dbName=$dbName \ --set database.dbUser=$dbUser \ --set database.dbPassword=$dbPass \ --set flowCredentials.existingSecret=$release-cloudbees-flow-credentials \ --set analytics.credentials.existingSecret=$release-cloudbees-flow-analytics \ --set serverName=$hostname \ --set ingress.host=$hostname \ --set ingress.class=$release-nginx \ --set ingress-nginx.controller.ingressClassResource.name=$release-nginx \ --set ingress-nginx.controller.ingressClassResource.enabled=true \ --set ingress-nginx.controller.ingressClassResource.default=false \ --set ingress-nginx.controller.ingressClassResource.controllerValue="k8s.io/$release-ingress-nginx" \ --set-file flowLicense.licenseData=$licenseFile \ --set-file server.customConfig.passkey\\.b64=passkey.b64 \ --set-file server.customConfig.keystore\\.b64=keystore.b64 \ --timeout 4200s
Configure the URL for Oracle databases
CloudBees CD/RO supports configuring Oracle databases as a custom alternative to the built-in database. When configuring your Oracle database, CloudBees CD/RO expects the database URL to be configured in values.database.customDatabaseUrl field using either the System Identifier (SID) or service name. The following sections explain using both.
Use Oracle database SID
How to use Oracle database SID for values.database.customDatabaseUrl
When using the SID to configure your database, the required format for the values.database.customDatabaseUrl value is:
customDatabaseUrl: "jdbc:oracle:<driver>:@<serviceName>.<namespace>.svc.cluster.local:<portNumber>:<SID_NAME>"
customDatabaseUrl: "jdbc:oracle:thin:@oracle-service.default.svc.cluster.local:1521:MYDB"
Where:
-
jdbc:oracle:<driver>:@: The identifier for Oracle databases and driver. In the Example, thethindriver is used. -
<serviceName>: The Kubernetes service name of the database service. In the Example, theoracle-serviceis the service name. -
<namespace>: The Kubernetes namespace. In the Example,defaultis the namespace. -
.svc.cluster.local: The default location of services in a Kubernetes deployment. -
<portNumber>: The port assigned to the Oracle database in the environment. In the Example,1521is the port. -
<SID_NAME>: The SID name assigned to the database when it was created. In the Example,MYDBis the SID name.
This section describes how to convert your clustered Oracle database service name to the required SID.
-
If you do not already have the service name and port of your database, run the following to list the service details in your namespace:
CommandExamplekubectl get services -n <namespace>NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE oracle-service ClusterIP 10.0.0.1 <none> 1521/TCP 3dWhere
oracle-serviceis the service name, and the port is1521. -
If you do not already have your SID, it can be found in your
listener.oraon your Oracle server.
Once you have the required information for the Oracle customDatabaseUrl configuration either:
-
Set the
customDatabaseUrlas part of yourhelm installorhelm upgradecommand using--set customDatabaseUrl="<YOUR-DB-SID-URL>".When using this method, if you do not update customDatabaseUrlin your values file before your next upgrade, this value will be overwritten by the one present in the values file on the next upgrade. -
Update your values file:
-
Open your values file, and navigate to
values.database. -
Locate the
customDatabaseUrlfield. -
Add your SID URL using the format (as explained above):
customDatabaseUrl: "jdbc:oracle:<driver>:@<service-name>.<namespace>.svc.cluster.local:<port>:<SID_NAME>" -
After you save your file, install or upgrade CloudBees CD/RO.
If you have not done so, include the other databasevalues for your environment in the Helm chart.
-
Your Oracle database has now been configured to connect with CloudBees CD/RO.
Use Oracle database service name
How to use Oracle database service name for values.database.customDatabaseUrl
When using the service name to configure your database, the required format for the values.database.customDatabaseUrl value is:
customDatabaseUrl: "jdbc:oracle:<driver>:@//<hostName>:<portNumber>/<serviceName>"
customDatabaseUrl: "jdbc:oracle:thin:@dbserver.example.com:1521/mydbservice"
Where:
-
jdbc:oracle:<driver>:@//: The identifier for Oracle databases and driver. In the Example, thethindriver is used.The @//is required when using the service name. -
<hostName>: The hostname or IP address of the Oracle database server. In the Example,dbserver.example.comis the hostname. -
<port>: The port assigned to the Oracle database in the environment. In the Example,1521is the port. -
<serviceName>: The service name assigned to the database in the Kubernetes deployment. In the Example,mydbserviceis the service name.
This section describes how to convert your clustered Oracle database service name to required format.
-
If you do not already have the service name and port of your database, run the following to list the service details in your namespace:
CommandExamplekubectl get services -n <namespace>NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE oracle-service ClusterIP 10.0.0.1 <none> 1521/TCP 3dWhere
oracle-serviceis the service name, and the port is1521.
Once you have the required information for the Oracle customDatabaseUrl configuration either:
-
Set the
customDatabaseUrlas part of yourhelm installorhelm upgradecommand using--set customDatabaseUrl="<your-DB-serviceName-URL>".When using this method, if you do not update customDatabaseUrlin your values file before your next upgrade, this value will be overwritten by the one present in the values file on the next upgrade. -
Update your values file:
-
Open your values file, and navigate to
values.database. -
Locate the
customDatabaseUrlfield. -
Add your service name URL using the format (as explained above):
customDatabaseUrl: "jdbc:oracle:<driver>:@//<hostName>:<portNumber>/<serviceName>" -
After you save your file, install or upgrade CloudBees CD/RO.
If you have not done so, include the other databasevalues for your environment in the Helm chart.
-
Your Oracle database has now been configured to connect with CloudBees CD/RO.
Configure a MySQL database
Use these instructions to use CloudBees CD/RO with a MySQL database.
-
Configure the following database parameters in your Helm chart values file:
database.clusterEndpoint
Use this option if your database is residing in the same Kubernetes cluster as CloudBees CD/RO. The notation is
db-service.namespace. If deploying into the same namespace, the.namespacecomponent can be omitted.Default: null
database.externalEndpoint
The database endpoint residing outside the CloudBees CD/RO Kubernetes cluster; this can be the DNS for a cloud hosted database service. The
databaseorschemaprincipal must have full read/write access on that schema.Default: null
database.dbName
The database instance name.
Default: null
database.dbPassword
The database password.
Default: null
database.dbPort
The port on which the database server is listening.
Default: null
database.dbType
The database type with which CloudBees CD/RO persistence works. For MySQL, use
mysql.Default: null
database.dbUser
Username that the CloudBees CD/RO server uses to access the database on the database server.
Default: null
database.existingSecret
Use this option if you have or are planning to deploy the credential’s secret yourself. The layout has to be the same as that of
server-secrets.yaml::dbSecretDefault: null
-
Make the MySQL connector jar available during a Helm install or upgrade:
--set database.mysqlConnector.externalUrl="<connector-url>" --set database.mysqlConnector.enabled=trueAlternatively, place the following configuration into your Helm chart values file:
mysqlConnector: enabled: true/false externalUrl: <connector url>
Install custom CloudBees Analytics init container images
CloudBees CD/RO supports integrations using custom CloudBees Analytics init container images. In your values file, the analytics.sysctlInitContainer.imageRepository and analytics.sysctlInitContainer.imageTag values are used to configure the CloudBees Analytics image to include during installations and upgrades. To set these values:
-
Open your values file, and navigate to
analytics.sysctlInitContainer. -
Replace the
imageRepositoryvalue with your init container image repository. -
Replace
imageTagvalue with your init container image tag. -
Ensure the YAML is well-formed and save.
Now that you have updated your values file with your custom CloudBees Analytics init container image, update your CloudBees CD/RO environment to apply your image. For more information, refer to Update CloudBees CD/RO production servers.
| Always ensure you perform sufficient testing in your development environment before applying your changes to production environments. |
Configure custom images for CloudBees CD/RO
If you need to use custom images for individual components in your project, you can configure the image information in your myvalues.yaml. The following sections describe how to set custom images for:
|
If you set a Before configuring custom images for bound agents, ensure you do not have images configured for |
Configure custom bound agent images
This section is intended for use with v2023.10.0 and later Helm charts. For CloudBees CD/RO Helm charts v2023.08.0 and earlier, the boundAgent included image configuration fields in the Helm chart by default.
|
-
Add a custom
boundAgentimage to Helm chartIn CloudBees CD/RO v2023.10.0 and above Helm charts, global image configurations were implemented in the
cloudbees-flowvalues file,values.global.cloudbees. As part of this change, bound agents were reconfigured to use thecloudbees-flow-agent.values.imagevalues. Additionally, theboundAgent.imageRegistryvalues were removed from thecloudbees-flowvalues file.If your project uses custom images for bound agents, you must make the following changes to CloudBees CD/RO v2023.10.0 and above Helm charts before starting the upgrade:
-
In your
cloudbees-flowmyvalues.yaml, ensure novalues.global.cloudbeesimage value is set.If you set both a values.global.cloudbeesimage value and any component-level image values in yourmyvalues.yaml, thevalues.global.cloudbeesimage value overrides all component-level image values. -
In the
boundAgentsection of yourcloudbees-flowvalues file, add the following chart configuration:images: ## Image registry to pull CloudBees CD/RO boundAgent images from. ## Example: registry: "123456789012.dkr.ecr.us-east-1.amazonaws.com" registry: "<YOUR-IMAGE-REGISTRY>" ## The `imageRepository` in the `images.registry` to pull the bound agent image from. imageRepository: "<YOUR-IMAGE-REPO>" ## CloudBees CD/RO bound agent image tag to pull. tag: "<YOUR-IMAGE-TAG>"-
For example, if your project uses an internal registry called
internal.registry.example/cloudbees::images: ## Image registry to pull CloudBees CD/RO boundAgent images from. ## Example: registry: "123456789012.dkr.ecr.us-east-1.amazonaws.com" registry: "internal.registry.example/cloudbees" ## The `imageRepository` in the `images.registry` to pull the bound agent image from. imageRepository: "cbflow-boundagent" ## CloudBees CD/RO bound agent image tag to pull. tag: "1.0"You can now upgrade to CloudBees CD/RO v2023.10.0 and above using your custom bound agent image.
-
Configure custom ingress-nginx images
Add a custom ingress-nginx image to Helm chart
If your project uses custom images for ingress-nginx, you must make the following image changes to the CloudBees CD/RO Helm charts in your myvalues.yaml before starting the upgrade.
In the ingress-nginx section of your cloudbees-flow values file, add the following chart configuration:
controller: image: registry: <YOUR-IMAGE-REGISTRY> image: <YOUR-IMAGE> ## For backward compatibility, consider setting the full image URL via the repository value below. ## Use *either* the current default registry/image or the repository format. Otherwise, installing the chart by providing the `values.yaml` will fail. # repository: tag: "<YOUR-IMAGE-TAG>" digest: <YOUR-DIGEST-HASH> admissionWebhooks: patch: registry: <YOUR-IMAGE-REGISTRY> image: <YOUR-IMAGE> ## For backward compatibility, consider setting the full image URL via the repository value below. ## Use *either* the current default registry/image or the repository format. Otherwise, installing the chart by providing the `values.yaml` will fail. # repository: tag: "<YOUR-IMAGE-TAG>" digest: <YOUR-DIGEST-HASH> ## Set images if enabled defaultBackend: enabled: false image: registry: <YOUR-IMAGE-REGISTRY> image: <YOUR-IMAGE> ## For backward compatibility, consider setting the full image URL via the repository value below. ## Use *either* the current default registry/image or the repository format or installing the chart by providing the `values.yaml` will fail. # repository: tag: "<YOUR-IMAGE-TAG>"
For example, if your project uses an internal registry called internal.registry.example/ingress-nginx:
controller: image: registry: internal.registry.example/ingress-nginx image: controller ## For backward compatibility, consider setting the full image URL via the repository value below. ## Use *either* the current default registry/image or the repository format or installing the chart by providing the `values.yaml` will fail. # repository: tag: "v1.1.0" digest: sha256:f766669fdcf3dc26347ed273a55e754b427eb4411ee075a53f30718b4499076a admissionWebhooks: patch: registry: internal.registry.example/ingress-nginx image: kube-webhook-certgen ## For backward compatibility, consider setting the full image URL via the repository value below. ## Use *either* the current default registry/image or the repository format or installing the chart by providing the `values.yaml` will fail. # repository: tag: "v1.1.1" digest: sha256:64d8c73dca984af206adf9d6d7e46aa550362b1d7a01f3a0a91b20cc67868660 ## Set images if enabled defaultBackend: enabled: false image: registry: internal.registry.example/ingress-nginx image: defaultbackend-amd64 ## For backward compatibility, consider setting the full image URL via the repository value below. ## Use *either* the current default registry/image or the repository format or installing the chart by providing the `values.yaml` will fail. # repository: tag: "1.5"
You can now upgrade CloudBees CD/RO to use your custom ingress-nginx image.
=== Configure custom CloudBees sidecar injector images
If your project uses custom images for a CloudBees sidecar injector, you must make the following images changes to the CloudBees CD/RO Helm charts in your myvalues.yaml before starting the upgrade.
In the cloudbees sidecar injector (cdsidecarinjector) section of your cloudbees-flow values file, add the following chart configuration:
enabled=true hub=<YOUR-IMAGE-REGISTRY> image=<YOUR-IMAGE> tag="<YOUR-IMAGE-TAG>" requestCert: image=<YOUR-IMAGE> tag="<YOUR-IMAGE-TAG>"
-
For example, if your project uses an internal registry called
internal.registry.example/cloudbees:enabled=true hub=internal.registry.example/cloudbees image=test-sidecar-injector tag="2.2.1" requestCert: image=test-cert-requester tag="2.2.1"
You can now upgrade CloudBees CD/RO to use your custom cloudbees-sidecar-injector image.
Configure custom MariaDB images
Add a custom MariaDB image to Helm chart
If your project uses custom images for MariaDB, you must make the following images changes to the CloudBees CD/RO Helm charts in your myvalues.yaml before starting the upgrade.
In the mariadb section of your cloudbees-flow values file, add the following chart configuration:
image: registry: <YOUR-IMAGE-REGISTRY> repository: <YOUR-IMAGE-REPO> tag: <YOUR-IMAGE-TAG>
For example, if your project uses an internal registry called internal.registry.example/cloudbees:
image: registry: internal.registry.example/cloudbees repository: mariadb tag: 10.3.20-debian-9-r0
You can now upgrade CloudBees CD/RO to use your custom MariaDB image.
=== Configure custom ZooKeeper images
If your project uses custom images for ZooKeeper, and has global values set, you must make the following images changes to the CloudBees CD/RO Helm charts in your myvalues.yaml before starting the upgrade:
-
In your
cloudbees-flowmyvalues.yaml, ensure thevalues.global.cloudbees.imageRegistryandvalues.global.cloudbees.imageTagimage values are set.Ensure your ZooKeeper image is located in the values.global.cloudbees.imageRegistry, and it set with thevalues.global.cloudbees.imageTag. If it is not, your ZooKeeper image will fail to load. If your project is not using these values, refer to Add a custom ZooKeeper image to Helm chart with no global image set. -
In the
zookeepersection of yourcloudbees-flowvalues file, add the following chart configuration:image: imageRepository: <YOUR-IMAGE-REPO>-
For example, if your project uses a global registry called
global-images-registry.examplewith image tags set toglobal-image-tag, and your ZooKeeper image was in thezookeeper-imagerepository, your values file should have the following configurations:global: cloudbees: imageRegistry: global-images-registry.example imageTag: global-image-tag .... zookeeper: image: imageRepository: zookeeper-image
-
You can now upgrade CloudBees CD/RO to use your custom ZooKeeper image.
Add a custom ZooKeeper image to Helm chart with no global image set
Add a custom ZooKeeper image to Helm chart with no global image set
If your project uses custom images for ZooKeeper, and has no global image values set, you must make the following images changes to the CloudBees CD/RO Helm charts in your myvalues.yaml before starting the upgrade:
-
In your
cloudbees-flowmyvalues.yaml, ensure novalues.global.cloudbeesimage value is set.If you have values.global.cloudbees.imageRegistryandvalues.global.cloudbees.imageTag, your ZooKeeper image will fail to load using the following configuration. If you are using these values, refer to [zookeeper-custom-image-with-global-values]. -
In the
zookeepersection of yourcloudbees-flowvalues file, add the following chart configuration:image: repository: <YOUR-IMAGE-REGISTRY>/<YOUR-IMAGE-REPO> tag: "<YOUR-IMAGE-TAG>"-
For example, if your project uses an internal registry called
internal.registry.example/with image repository calledzookeeper-image:image: ## Container repository to pull ZooKeeper image from. repository: internal.registry.example/zookeeper-image ## Zookeeper image tag to pull. tag: "2023.08.0.167214_3.2.51_20230809"You can now upgrade CloudBees CD/RO to use your custom ZooKeeper image.
-