Configuring Helm charts

17 minute readReference

Within the Kubernetes environment, Helm charts are the primary method to configure CloudBees CD/RO components. From configuring your license information and database connections to autoscaling and platform specific implementation, these charts provide a central location to configure most aspects of CloudBees CD/RO installations.

CloudBees CD/RO releases include default Helm charts that provide the values for a basic environment you can configure into a project-specific production environment. After doing so in a project-specific myvalues.yaml, you can configure your CloudBees CD/RO Helm installation to use your values file with the helm install -f option.

For more information, including helm CLI commands for working with values files, refer to Helm values files.

CloudBees CD/RO default Helm charts

CloudBees provides server and agent Helm charts with CloudBees CD/RO default values for both demo and production installations.

CloudBees strongly recommends that you create copies of your Helm charts and place them under version control as a project-specific myvalues.yaml. This makes tracking updates and changes between releases much easier.

Demo installations

For demo installations, refer to the GitHub cloudbees-example public repository:

Production installations

A default values file (values.yaml) is released for each CloudBees CD/RO version that contains all default values for the CloudBees CD/RO server installation as part of the cloudbees-flow Helm chart. However, for production environments, there are many project-specific values that must be set in the cloudbees-flow Helm chart according to your project’s implementation.

Your project-specific values, which are only a subset of the default values, are normally set in a seperate myvalues.yaml. This has the major advantage of reducing the amount of overall configuration you must track and maintain.

During installation, you can specify your project-specific myvalues.yaml when running helm install. Doing so, overwrites the default values in the values.yaml with the project-specific values in your myvalues.yaml, while still using the default values for items you did not customize.

CloudBees provides two ways to get started with your myvalues.yaml:

Use the default values file to create your project-specific values file

To get started using the values.yaml to create your myvalues.yaml chart:

  1. Visit SonaType Nexus, find the latest release of cloudbees-flow, and download the package.

  2. Open the package and, in the top-level of the directory, locate the values.yaml.

    In the charts directory of the package, you can find charts for individual components within their subdirectory.
  3. Save the file as a project-specific myvalues.yaml.

  4. Go through your myvalues.yaml and update it to meet your project-specific needs. Specifically, configure your database, storage, license information, and CloudBees CD/RO credentials before installing it. For information on available configuration options, refer to cloudbees-flow chart configuration values.

    By default, the values.yaml includes a built-in database for testing. However, for production environments, you must configure CloudBees CD/RO to connect with your project-specific database. For information on supported databases, refer to Supported platforms for CloudBees CD/RO on Kubernetes.

    Using a project-specific database requires a CloudBees CD/RO enterprise license. To avoid installation errors, your CloudBees CD/RO server licence and database connections should both be configured in the same installation of the cloudbees-flow values chart in your project-specific myvaules.yaml. Failing to do so generates error messages about an unsupported configuration or a license requirement, depending on which is omitted.

    If CloudBees CD/RO is initially installed with the built-in database, you can reconfigure it to use a separate database at any time. For more information on configuring CloudBees CD/RO to use your external database, refer to Configuring CloudBees CD/RO to Use an Alternate Database.

    If your database connection fails, ensure the license is valid for CloudBees CD/RO, and the database configuration is correct. For information on configuring an external database for use by CloudBees CD/RO, refer to External database configuration.

  5. (Optional) If you are using a multi-node deployment for the CloudBees Analytics server, a common node certificate infrastructure is required. Refer to Configure CloudBees Analytics server certificates to learn how to configure common node certificate infrastructure in your project-specific values file.

  6. (Optional) Place your myvalues.yaml under version control. CloudBees strongly suggests you do this to track updates and compare changes between releases.

  7. (Optional) Any configurations not specified in your myvalues.yaml are automatically taken from the values.yaml during installation. This means, you can also delete any configuration options in your myvalues.yaml that are not specifically required by your project. This helps to reduce the overall configurations maintained in this file.

    While deleting unneeded configuration options, ensure you maintain valid tag nesting and syntax. Failing to do so may cause your installation to fail or produce unpredictable behavior on your platform.

After you have configured your myvalues.yaml, refer to Install CloudBees CD/RO production server.

Use an example production values file to create your project-specific values file

Preconfigured production Helm chart examples are available in the CloudBees examples repository to get you started. These files include:

Values file Description

cloudbees-cd-prod.yaml

File for use with production installations. You must configure your database, storage, and CloudBees CD/RO credentials in a local project-specific values file before it can be used. For information on available configuration options, refer to cloudbees-flow chart configuration values.

cloudbees-cd-defaults.yaml

File listing all Helm chart values along and their default value. Use as a reference when specifying additional configurations in your local project-specific values file. For information on available configuration options, refer to cloudbees-flow chart configuration values.

There are several platform versions of the production example Helm charts available in the CloudBees examples repository, each with prod in the YAML file name.

To create your myvalues.yaml based on the example production chart:

  1. Go to the CloudBees examples repository and save a copy of the example production chart you want to use as your project-specific myvalues.yaml.

  2. Go through your myvalues.yaml and update it to meet your project-specific needs. Specifically, configure your database, storage, license information, and CloudBees CD/RO credentials before installing it. For information on available configuration options, refer to cloudbees-flow chart configuration values.

    By default, the values.yaml includes a built-in database for testing. However, for production environments, you must configure CloudBees CD/RO to connect with your project-specific database. For information on supported databases, refer to Supported platforms for CloudBees CD/RO on Kubernetes.

    Using a project-specific database requires a CloudBees CD/RO enterprise license. To avoid installation errors, your CloudBees CD/RO server licence and database connections should both be configured in the same installation of the cloudbees-flow values chart in your project-specific myvaules.yaml. Failing to do so generates error messages about an unsupported configuration or a license requirement, depending on which is omitted.

    If CloudBees CD/RO is initially installed with the built-in database, you can reconfigure it to use a separate database at any time. For more information on configuring CloudBees CD/RO to use your external database, refer to Configuring CloudBees CD/RO to Use an Alternate Database.

    If your database connection fails, ensure the license is valid for CloudBees CD/RO, and the database configuration is correct. For information on configuring an external database for use by CloudBees CD/RO, refer to External database configuration.

  3. (Optional) If you are using a multi-node deployment for the CloudBees Analytics server, a common node certificate infrastructure is required. Refer to Configure CloudBees Analytics server certificates to learn how to configure common node certificate infrastructure in your project-specific values file.

  4. (Optional) Place your myvalues.yaml under version control. CloudBees strongly suggests you do this to track updates and compare changes between releases.

After you have configured your myvalues.yaml, refer to Install CloudBees CD/RO production server.

cloudbees-flow chart configuration values

The following tables list common configurable parameters of the cloudbees-flow chart and their default values.

Volume permissions values

For the default CloudBees CD/RO Helm charts, refer to CloudBees CD/RO default Helm charts. You can find these cloudbees-flow values referenced in the values.yaml under the Pods security context section.

Table 1. Volume permissions parameter descriptions and default values
Key Description/Default

volumePermissions.enabled

Enable/disable volume permissions for the attached PVC of CloudBees CD/RO components.

Default: true

Bound agent values

For the default CloudBees CD/RO Helm charts, refer to CloudBees CD/RO default Helm charts. You can find these cloudbees-flow values referenced in the values.yaml under the Flow bound agent configuration section.

Table 2. Bound agent parameter descriptions and default values
Key Description/Default

boundAgent.ecconfigure

String is interpreted as if passed to the ecconfigure utility within the container. For all available ecconfigure options, refer to ecconfigure.

Default: --agentInitMemoryMB=256 --agentMaxMemoryMB=256

boundAgent.imageName

Default: cbflow-agent

boundAgent.logLevel

Default: DEBUG

boundAgent.replicas

Default: 1

boundAgent.resources.limits.cpu

Default: 0.25

boundAgent.resources.limits.memory

Default: 1024Mi

boundAgent.resources.requests.cpu

Default: 0.25

boundAgent.resources.requests.memory

Default: 512Mi

boundAgent.volumesPermissions.enabled

Enable/disable volume permissions for the bound agent. Use to override the volumespermissions.enabled chart-level setting.

Default: true

Database values

For the default CloudBees CD/RO Helm charts, refer to CloudBees CD/RO default Helm charts. You can find these cloudbees-flow values referenced in the values.yaml under the Flow server database configuration section.

Table 3. Database parameter descriptions and default values
Key Description/Default

database.clusterEndpoint

Use this option if your database is residing in the same Kubernetes cluster as Flow. Notation is db-service.namespace If deploying into the same namespace, .namespace component can be omitted.

Default: null

database.externalEndpoint

Database endpoint, database or schema, principal that has full read/write access on that schema

Default: null

database.dbName

Default: null

database.dbPassword

Default: null

database.dbPort

Default: null

database.dbType

The database type with which CloudBees CD/RO persistence works. One of:

mysql —MYSQL

mariadb —MariaDB

sqlserver —MS SQLServer

oracle —Oracle

postgresql —PostgreSQL

Default: null

database.dbUser

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::dbSecret.

Default: null

demoMode

Default: false

CloudBees Analytics server values

For the default CloudBees CD/RO Helm charts, refer to CloudBees CD/RO default Helm charts. You can find these cloudbees-flow values referenced in the values.yaml under the Flow DevOps Insight configuration section.

Table 4. CloudBees Analytics server parameter descriptions and default values
Key Description/Default

dois.credentials.adminPassword dois.credentials.existingSecret

Credentials for administrative access to Elasticsearch data. It sets a password for the admin ` user with the corresponding rights. If the password is an empty string, then user `admin is not created and administrative access is not granted.

Default: null

dois.enabled

Flag that dictates whether this workload and its accompanying services are to be installed

Default: true

dois.esClusterName

Elasticsearch cluster name

Default: null

dois.esMinMasterNodes

Minimum number of master-eligible nodes that must be visible in order to form an Elasticsearch cluster.

Default: 1

dois.esNumberOfShards

The number of primary shards that an index must have.

Default: null

dois.esRam

Elasticsearch heap size in MB.

Default: 2048

dois.expose

Expose DevOps Insight as externally available services ingress needs two ports 9200 and 9500 to be open to the outer world.

Default: true

dois.imageName

Default: cbflow-dois

dois.lsInitRam

Default: 512

dois.lsMaxRam

Default: 1024

dois.replicas

Number of Elasticsearch nodes

Default: 1

dois.resources.limits.cpu

Default: 1

dois.resources.limits.memory

Default: 3.5Gi

dois.resources.requests.cpu

Default: 0.1

dois.resources.requests.memory

Default: 3.5Gi

dois.serverEndpoint

CloudBees CD/RO server endpoint. If installing in a different namespace, the server name must be in service-name.namespace format. Default: flow-server

dois.serviceEndpoint

The DevOps Insight server service endpoint to be configured on the remote CloudBees CD/RO server. It is assumed the remote CloudBees CD/RO server is located in the same Kubernetes cluster.

Default: flow-devopsinsight.{{ .Release.Namespace }}

dois.volumesPermissions.enabled

Enable/disable volume permissions for the {SDA ANALYTICS} server. Use to override the volumespermissions.enabled chart-level setting.

Default: true

CloudBees CD/RO credential values

For the default CloudBees CD/RO Helm charts, refer to CloudBees CD/RO default Helm charts. You can find these cloudbees-flow values referenced in the values.yaml under the Flow server credentials configuration section.

Table 5. CloudBees CD/RO credential parameter descriptions and default values
Key Description/Default

flowCredentials.adminPassword

Default: changeme

flowCredentials.existingSecret

Either specify the secret where the admin user password is stored under the CBF_SERVER_ADMIN_PASS key, recommended for production, or specify the adminPassword .

Default: null

CloudBees CD/RO server license values (optional)

For the default CloudBees CD/RO Helm charts, refer to CloudBees CD/RO default Helm charts. You can find these cloudbees-flow values referenced in the values.yaml under the Flow server license configuration section.

Table 6. CloudBees CD/RO server license parameter descriptions and default values (optional)
Key Description/Default

flowLicense.existingSecret

Default: null

flowLicense.licenseData

Default: null

Images values

For the default CloudBees CD/RO Helm charts, refer to CloudBees CD/RO default Helm charts. You can find these cloudbees-flow values referenced in the values.yaml under the Common images configurations section.

Table 7. Images parameter descriptions and default values
Key Description/Default

images.pullPolicy

Default: IfNotPresent

images.repository

Default: 547883162893.dkr.ecr.us-east-1.amazonaws.com

images.tag

The Helm chart image tag corresponding to a specific CloudBees CD/RO artifact.

Example: 10.0.1.143076_2.0.12_20200729

Default: tag associated with latest CloudBees CD/RO artifact, as listed in cloudbees-cd-defaults.yaml.

Sidecar injector additional container values

For the default CloudBees CD/RO Helm charts, refer to CloudBees CD/RO default Helm charts. You can find these cloudbees-flow values referenced in the values.yaml under the *.additionalContainers tag for the corresponding component.

Table 8. Sidecar injector additional container descriptions
Key Description/Default

server.additionalContainers

To add additional containers for the server, uncomment the name, image, and command in your values file.

server: additionalContainers: # additionalContainers: # - name: container-name # image: image:version # command: # - "/container-command"

web.additionalContainers

To add additional containers, uncomment the name, image, and command in your values file.

web: additionalContainers: # additionalContainers: # - name: container-name # image: image:version # command: # - "/container-command"

dois.additionalContainers

To add additional containers, uncomment the name, image, and command in your values file.

dois: additionalContainers: # additionalContainers: # - name: container-name # image: image:version # command: # - "/container-command"

repository.additionalContainers

To add additional containers, uncomment the name, image, and command in your values file.

repository: additionalContainers: # additionalContainers: # - name: container-name # image: image:version # command: # - "/container-command"

boundAgent.additionalContainers

To add additional containers, uncomment the name, image, and command in your values file.

boundAgent: additionalContainers: # additionalContainers: # - name: container-name # image: image:version # command: # - "/container-command"

Sidecar injector additional volume values

For the default CloudBees CD/RO Helm charts, refer to CloudBees CD/RO default Helm charts.You can find these cloudbees-flow values referenced in the values.yaml under the *.additionalVolume and *.additionalVolumeMounts tags for the corresponding component.

Table 9. Sidecar injector additional volume parameter descriptions and default values
Key Description/Default

server.additionalVolume

server.additionalVolumeMounts

You can use ConfigMaps, Secrets, and PersistentVolumeClaims as additional volumes. The example below uses PersistentVolumeClaims. To add an additional volume and mount for the server, update the settings in the myvalues.yaml file.

server: additionalVolumes: # - name: volume0 # persistentVolumeClaim: # claimName: volume0 additionalVolumeMounts: # - name: volume0 # mountPath: /tmp/volume0

web.additionalVolume

web.additionalVolumeMounts

To add an additional volume and mount, update the settings in the myvalues.yaml file.

web: additionalVolumes: # - name: volume0 # persistentVolumeClaim: # claimName: volume0 additionalVolumeMounts: # - name: volume0 # mountPath: /tmp/volume0

repository.additionalVolume

repository.additionalVolumeMounts

To add an additional volume and mount, update the settings in the myvalues.yaml file.

repository: additionalVolumes: # - name: volume0 # persistentVolumeClaim: # claimName: volume0 additionalVolumeMounts: # - name: volume0 # mountPath: /tmp/volume0

boundAgent.additionalVolume

boundAgent.additionalVolumeMounts

To add an additional volume and mount, update the settings in the myvalues.yaml file.

boundAgent: additionalVolumes: # - name: volume0 # persistentVolumeClaim: # claimName: volume0 additionalVolumeMounts: # - name: volume0 # mountPath: /tmp/volume0

Network isolation values

For the default CloudBees CD/RO Helm charts, refer to CloudBees CD/RO default Helm charts. You can find these cloudbees-flow values referenced in the values.yaml under the Network isolation configuration section.

Table 10. Network isolation parameter descriptions and default values
Key Description/Default

networkIsolation.allowFromCidr

The CIDR allowed to make connection to all exposed CloudBees CD/RO endpoints.

Default: 0.0.0.0/0

Nginx-ingress values (Kubernetes versions 1.21 and earlier)

For the default CloudBees CD/RO Helm charts, refer to CloudBees CD/RO default Helm charts. You can find these cloudbees-flow values referenced in the values.yaml under the Flow ingress configuration section.

Table 11. Nginx-ingress parameter descriptions and default values (Kubernetes versions 1.21 and earlier)
Key Description/Default

nginx-ingress.controller.ingressClass

Default: flow-ingress

nginx-ingress.controller.publishService.enabled

Default: true

nginx-ingress.controller.scope.enabled

Default: true

nginx-ingress.enabled

Default: true

nginx-ingress.tcp.61613

Default: {{ .Release.Namespace }}/flow-server:61613

nginx-ingress.tcp.8200

Default: {{ .Release.Namespace }}/flow-repository:8200

nginx-ingress.tcp.8443

Default: {{ .Release.Namespace }}/flow-server:8443

nginx-ingress.tcp.9200

Default: {{ .Release.Namespace }}/flow-devopsinsight:9200

nginx-ingress.tcp.9500

Default: {{ .Release.Namespace }}/flow-devopsinsight:9500

Ingress-nginx values (Kubernetes versions 1.22 and later)

For the default CloudBees CD/RO Helm charts, refer to CloudBees CD/RO default Helm charts. You can find these cloudbees-flow values referenced in the values.yaml under the Flow ingress configuration section.

Table 12. Ingress-nginx parameter descriptions and default values (Kubernetes versions 1.22 and later)
ingress-nginx.controller.ingressClass Default: flow-ingress

ingress-nginx.controller.publishService.enabled

Default: true

ingress-nginx.controller.scope.enabled

Default: true

ingress-nginx.enabled

Default: true

ingress-nginx.tcp.61613

Default: \{\{ .Release.Namespace }}/flow-server:61613

ingress-nginx.tcp.8200

Default: \{\{ .Release.Namespace }}/flow-repository:8200

ingress-nginx.tcp.8443

Default: \{\{ .Release.Namespace }}/flow-server:8443

ingress-nginx.tcp.9200

Default: \{\{ .Release.Namespace }}/flow-devopsinsight:9200

ingress-nginx.tcp.9500

Default: \{\{ .Release.Namespace }}/flow-devopsinsight:9500

Repository values

For the default CloudBees CD/RO Helm charts, refer to CloudBees CD/RO default Helm charts. You can find these cloudbees-flow values referenced in the values.yaml under the Flow repository configuration section.

Table 13. Repository parameter descriptions and default values
Key Description/Default

repository.ecconfigure

String to pass to ecconfigure utility. For all available ecconfigure options, refer to ecconfigure.

Default: --repositoryInitMemoryMB=256 --repositoryMaxMemoryMB=512

repository.enabled

Flag that dictates whether this workload and its accompanying services are to be installed

Default: true

repository.expose

Expose repository as an externally available service that ingress needs to port port 8200.

Default: true

repository.externalService.enabled

Expose flow-respoitory:8200 endpoint for platforms like OpenShift where Ingress isn’t supported or doesn’t support exposing non-web, TCP ports. Use with server.externalService.enabled. Refer to How external clients access CloudBees CD/RO components inside an OpenShift cluster for more details.

Default: false

repository.imageName

Default: cbflow-repository

repository.logLevel

Default: DEBUG

repository.replicas

Default: 1

repository.resources.limits.cpu

Default: 0.25

repository.resources.limits.memory

Default: 1024Mi

repository.resources.requests.cpu

Default: 0.25

repository.resources.requests.memory

Default: 512Mi

repository.volumesPermissions.enabled

Enable/disable volume permissions for the repository. Use to override the volumespermissions.enabled chart-level setting.

Default: true

repository.zoneName

The zone, assigned to the repository instance, created in the CloudBees CD/RO server to represent this repository instance. The zone must exist in CloudBees CD/RO server instance.

Default: null

CloudBees CD/RO server values

For the default CloudBees CD/RO Helm charts, refer to CloudBees CD/RO default Helm charts. You can find these cloudbees-flow values referenced in the values.yaml under the Flow server configuration section.

Table 14. CloudBees CD/RO server parameter descriptions and default values
Key Description/Default

server.ecconfigure

String to pass to the ecconfigure utility. For all available ecconfigure options, refer to ecconfigure.

Default: --serverInitMemoryMB=4096 --serverMaxMemoryMB=4096

server.enabled

Flag that dictates whether the web workload and its accompanying services are to be installed.

Default: true

server.expose

As CloudBees CD/RO requires repository to be exposed as externally available services, ingress needs two ports 8443 and 61613 to be open to the outer world.

Default: true

server.externalService.enabled

Expose flow-server:8443 endpoint for platforms like OpenShift where Ingress isn’t supported or doesn’t support exposing non-web, TCP ports. Use with repository.externalService.enabled. Refer to How external clients access CloudBees CD/RO components inside an OpenShift cluster for more details.

Default: false

server.imageName

Default: cbflow-server

server.logLevel

Master loglevel for com.electriccloud package

Default: INFO

server.replicas

Default: 1

server.resources.limits.cpu

Default: 4

server.resources.limits.memory

Default: 6Gi

server.resources.requests.cpu

Default: 1.5

server.resources.requests.memory

Default: 6Gi

server.volumesPermissions.enabled

Enable/disable volume permissions for the CloudBees CD/RO server. Use to override the volumespermissions.enabled chart-level setting.

Default: true

server.zk.host

Default: zookeeper

server.zk.port

Default: 2181

Server storage values

For the default CloudBees CD/RO Helm charts, refer to CloudBees CD/RO default Helm charts. You can find these cloudbees-flow values referenced in the values.yaml under the Flow storage configuration section.

Table 15. Server storage parameter descriptions and default values
Key Description/Default

storage.volumes.doisStorage.accessMode

Default: ReadWriteOnce

storage.volumes.doisStorage.name

Default: elasticsearch-data

storage.volumes.doisStorage.storage

Default: 10Gi

storage.volumes.repositoryStorage.accessMode

Default: ReadWriteOnce

storage.volumes.repositoryStorage.name

Default: flow-repo-artifacts

storage.volumes.repositoryStorage.storage

Default: 20Gi

storage.volumes.repositoryStorage.storageClass

Specify non-platform-default or custom storage class.

Default: null

storage.volumes.serverPlugins.accessMode

Default: ReadWriteMany

storage.volumes.serverPlugins.name

Default: flow-server-shared

storage.volumes.serverPlugins.storage

Default: 5Gi

storage.volumes.serverPlugins.storageClass

Storage class for plugins directory. Currently, it has to be shared across all server and web replicas and must be ReadWriteMany accessible.

Default: null

CloudBees CD/RO web server values

For the default CloudBees CD/RO Helm charts, refer to CloudBees CD/RO default Helm charts. You can find these cloudbees-flow values referenced in the values.yaml under the Flow web server configuration section.

Table 16. CloudBees CD/RO web server parameter descriptions and default values
Key Description/Default

web.ecconfigure

String to pass to the ecconfigure utility. For all available ecconfigure options, refer to ecconfigure.

web.enabled

Flag that dictates whether the web workload and its accompanying services are to be installed.

Default: true

web.imageName

Default: cbflow-web

web.ingress.annotations. kubernetes.io/ingress.class

Default: flow-ingress

web.ingress.annotations.nginx.ingress. kubernetes.io/affinity

Default: cookie

web.ingress.annotations.nginx.ingress. kubernetes.io/proxy-body-size

Default: 10GB

web.ingress.annotations.nginx.ingress. kubernetes.io/secure-backends

Default: false

web.ingress.annotations.nginx.ingress. kubernetes.io/session-cookie-hash

Default: sha1

web.ingress.annotations.nginx.ingress. kubernetes.io/session-cookie-name

Default: route

web.ingress.cert.crt web.ingress.cert.key

Certificates for WEB ingress. Normally should be set when helm install ` executes using: `--set-file web.ingress.cert.key=path/to/key ` `--set-file web.ingress.cert.crt=path/to/crt

This section is just an example that ingress can be configured with certs for TLS.

Default: null

web.ingress.enabled

Default: true

web.ingress.host

Default: fbapp.ecsaas.xyz

web.replicas

Default: 1

web.resources.limits.cpu

Default: 1

web.resources.limits.memory

Default: 512Mi

web.resources.requests.cpu

Default: 0.25

web.resources.requests.memory

Default: 256Mi

web.service.type

Default: ClusterIP

Zookeeper values

For the default CloudBees CD/RO Helm charts, refer to CloudBees CD/RO default Helm charts. You can find these cloudbees-flow values referenced in the values.yaml under the Zookeeper configuration section.

Table 17. Zookeeper parameter descriptions and default values
Key Description/Default

zookeeper.enabled

Default: true

zookeeper.fullnameOverride

Default: zookeeper

zookeeper.podLabels.mode

Default: private

zookeeper.podLabels.ownerApp

Default: cloudbees-flow

zookeeper.podLabels.role

Default: cluster-coordinator

zookeeper.replicaCount

Default: 3

zookeeper.resources.limits.cpu

Default: 250m

zookeeper.resources.limits.memory

Default: 1Gi

zookeeper.resources.requests.cpu

Default: 250m

zookeeper.resources.requests.memory

Default: 512Mi

cloudbees-flow-agent chart configuration values

The following tables list configurable parameters of the cloudbees-flow-agent chart and their default values.

The cloudbees-flow and cloudbees-flow-agent each have their own values.yaml. To get the latest cloudbees-flow-agent values file:

  1. Visit SonaType Nexus.

  2. Find the latest release of cloudbees-flow-agent and download the package.

  3. Open the package, and in the top-level of the directory, locate the values.yaml.

CloudBees CD/RO credential values

CloudBees CD/RO server credentials are used to register your agent as a resource on the CloudBees CD/RO server. The admin user is used by default. However, you may use a different user if desired. The user must have modify permissions on CloudBees CD/RO server resources.

You can find these cloudbees-flow-agent values referenced in the agent values.yaml.of the under the Flow server credentials configuration section.

Table 18. CloudBees CD/RO credential parameter descriptions and default values
Key Description/Default

flowCredentials.existingSecret

Default: null. Use for the Existing Secret Name of the secret containing the Flow user credentials to use. The data field must contain base64 encoded value for keys 'CBF_SERVER_USER' and 'CBF_SERVER_PASSWORD'.

flowCredentials.password

Default: changeme

flowCredentials.user

Default: admin

Image values

For the default CloudBees CD/RO Helm charts, refer to CloudBees CD/RO default Helm charts. You can find these cloudbees-flow-agent values referenced in the agent values.yaml in the top level of the file.

Table 19. Image parameter descriptions and default values
Key Description/Default

images.imageRepository

Default: cbflow-agent

images.pullPolicy

Default: IfNotPresent

images.registry

Default: 547883162893.dkr.ecr.us-east-1.amazonaws.com

images.tag

The Helm chart image tag corresponding to a specific CloudBees CD/RO agent artifact.

Example: 10.0.1.143076_2.0.12_20200729

Default: tag associated with the latest agent artifact, as listed in cloudbees-cd-agent-defaults.yaml. For the default agent Helm chart, refer to CloudBees CD/RO default Helm charts.

Resource values

For the default CloudBees CD/RO Helm charts, refer to CloudBees CD/RO default Helm charts. You can find these cloudbees-flow-agent values referenced in the agent values.yaml in the Flow agent storage and resources configuration section.

Table 20. Resource parameter descriptions and default values
Key Description/Default

resources.limits.cpu

Default: 1

resources.limits.memory

Default: 1024Mi

resources.requests.cpu

Default: 0.25

resources.requests.memory

Default: 512Mi

Agent storage values

For the default CloudBees CD/RO Helm charts, refer to CloudBees CD/RO default Helm charts. You can find these cloudbees-flow-agent values referenced in the agent values.yaml in the Flow agent storage and resources configuration section.

Table 21. Agent storage parameter descriptions and default values
Key Description/Default

storage.volumes.agentWorkspace.accessMode

Default: ReadWriteOnce

storage.volumes.agentWorkspace.storageClass

Use with any non platform-default or custom storage class.

Default: null

storage.volumes.agentWorkspace.name

Default: flow-agent-workspace

storage.volumes.agentWorkspace.storage

Default: 5Gi

storage.volumes.agentWorkspace.existingClaim

Whether to use the existing claim for a previously deployed agent to share its workspace.

Set to true to share the existing claim for storage.volumes.agentWorkspace.name.

storage.volumes.boundAgentStorage.enabled

Use to enable the ability to create and mount a persistent volume claim for bound agents. Optional.

Set to true to enable a persistent volume claim for bound agents.

Default: false

Miscellaneous agent values

For the default CloudBees CD/RO Helm charts, refer to CloudBees CD/RO default Helm charts. You can find these cloudbees-flow-agent values referenced in the agent values.yaml.

Table 22. Miscellaneous agent parameter descriptions and default values
Key Description/Default

ecconfigure

String to pass to ecconfigure utility.

Default: --agentInitMemoryMB=16 --agentMaxMemoryMB=64

additionalContainers

To add additional containers for sidecar injector, uncomment the name, image, and command in your values file.

additionalContainers: additionalContainers: # additionalContainers: # - name: container-name # image: image:version # command: # - "/container-command"

logLevel

Master loglevel for com.electriccloud package

Default: DEBUG

replicas

Default: 1

resourceName

CloudBees CD/RO resource name that agents of this deployment are assigned to. Refer to Agent resource name templates for more options.

Default: hostname

resourcePools

List of resource pools with which agents try to register upon coming up and registering with server.

Default: null

resourceType

Type of resource to create on the remote CloudBees CD/RO server. This argument is relevant only when the CloudBees CD/RO server is using a mixed-mode license (concurrent resources and registered hosts). Valid options for this value are concurrent or registered.

Default: null

serverEndpoint

Default: null

trustedAgent

Set to `true ` to configure the agent as a trusted agent, restricting the agent to one CloudBees CD/RO server deployment.

Default: false

workspaceName

The default workspace (must exist in CloudBees CD/RO server instance) for the resources created in the CloudBees CD/RO server for the agent(s).

Default: null

zoneName

The zone (must exist in CloudBees CD/RO server instance) for the resources created in the CloudBees CD/RO server for the agent(s).

Default: null

Agent resource name templates

Generally, you set the name for the agent resource with the value agent.resourceName , but this only works when the agent deployment has only one replica. If there are multiple replicas, then each of them tries to register itself using the same resource name. As a result, only one replica from the entire deployment will be registered as a resource.

The resource name defaults to hostname, but other template values are available to fully qualify the resource:

  • Ordinary Helm template values. For example: {{ .Release.Name }} , {{ .Release.Namespace }} , and so on.

  • In addition, two special template values are allowed :

    • {{ hostname }} –the actual resource hostname

    • {{ ordinalIndex }} –the serial replica index in the StatefulSet

For example:

resourceName: "myResource - {{ .Release.Name }} - {{ ordinalIndex }}"

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 the default CloudBees CD/RO Helm charts, refer to CloudBees CD/RO default Helm charts. You can find these cloudbees-flow values referenced in the values.yaml under the Flow server configuration section.

Table 23. CloudBees CD/RO server parameter descriptions and values for very large Helm deployments
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 default Helm charts. You can find these cloudbees-flow values referenced in the values.yaml under the Flow web server configuration section.

Table 24. CloudBees CD/RO web server parameter descriptions and values for very large Helm deployments
Name Value

web.replicas

2

Repository values

For the default CloudBees CD/RO Helm charts, refer to CloudBees CD/RO default Helm charts. You can find these cloudbees-flow values referenced in the values.yaml under the Flow repository configuration section.

Table 25. Repository parameter descriptions and values for very large Helm deployments
Name Value

repository.resources.requests.memory

768Mi

CloudBees Analytics server values

For the default CloudBees CD/RO Helm charts, refer to CloudBees CD/RO default Helm charts. You can find these cloudbees-flow values referenced in the values.yaml under the Flow DevOps Insight configuration section.

Table 26. CloudBees Analytics server parameter descriptions and values for very large Helm deployments
Name Value

dois.replicas

3

dois.esMinMasterNodes

2

dois.esRam

8192

dois.lsMaxRam

2048

dois.resources.limits.cpu

4

dois.resources.limits.memory

16Gi

dois.resources.requests.cpu

4

dois.resources.requests.memory

16Gi

CloudBees CD/RO agent values

For the default CloudBees CD/RO Helm charts, refer to CloudBees CD/RO default Helm charts. You can find these cloudbees-flow-agent values referenced in the agent values.yaml.

Table 27. CloudBees CD/RO agent parameter descriptions and values for very large Helm deployments
Name Value

replicas

2