Refer to the following sections for requirements and recommendations:
Not all combinations of server version and agent version are supported. This is because of an ectool/Perl API communication incompatibility as well as a Diffie-Hellman key size incompatibility.
CloudBees CD/RO server requirements on Kubernetes
CloudBees recommends the following guidelines for servers in a Kubernetes installation, based on deployment size.
The following guidelines are a recommended starting point. You may need to scale up, based on your environment and needs. |
Small to mid-range deployments | Large deployments | Very large deployments | CloudBees Analytics for CloudBees CI |
---|---|---|---|
|
|
|
|
CloudBees CD/RO server hardware specifications |
|||
Processor (CPU) per instance: 2 CPUs Default number of replicas: 1 |
Processor (CPU) per instance: 4 CPUs Default number of replicas: 3 |
Processor (CPU) per instance: 16 CPUs Default number of replicas: 3 |
Processor (CPU) per instance: 2 CPUs Default number of replicas: 1 |
Available RAM per replica: 16 GB (minimum) 32 GB (recommended) Max JVM Heap size: 85%* |
Available RAM per replica: 32 GB (minimum) 64 GB (recommended) Max JVM Heap size: 85%* |
Available RAM per replica: 64 GB (minimum) 128 GB (recommended) Max JVM Heap size: 85%* |
Available RAM per replica: 8 GB (minimum) 16 GB (recommended) Max JVM Heap size: 85%* |
Local storage per replica: 20 GB |
Local storage per replica: 40 GB |
Local storage per replica: 60 GB |
Local storage per replica: 10-20 GB (learn more here) |
Instances in cluster: 1 for non-clustered 2-3 recommended for high availability (HA) |
Instances in cluster: 3 instances |
Instances in cluster: 3 or more instances |
Instances in cluster: 1 for non-clustered 2-3 recommended for HA (MariaDB is not supported in a clustered deployment.) |
*The maximum JVM heap size specified in wrapper.conf, expressed in percentage of total available memory.
CloudBees CD/RO minimum requirements for CloudBees Analytics
If you intend on using a Kubernetes deployment of CloudBees Analytics only for CloudBees CI reporting, you still must install CloudBees CD/RO, as it provides the CloudBees Analytics interface. When installing CloudBees CD/RO for this type of use case, the following components are required:
-
CloudBees CD/RO server
-
CloudBees CD/RO web server
-
CloudBees CD/RO bound agent
It is assumed that no CloudBees CD/RO jobs will be run for this use case, which makes the CloudBees CD/RO bound agent sufficient without the need to install separate CloudBees CD/RO agents. -
ZooKeeper
-
Built-in MariaDB database
If you only have the CloudBees Analytics license, you are not able to install an external database. The built-in MariaDB is not adequate for CloudBees CD/RO production environments. For more information on CloudBees CD/RO licenses, refer to Licenses types or contact your CloudBees sales representative.
The following are the minimum cluster requirements for this CloudBees CD/RO use case:
-
Processors (CPU) per instance: 3 CPUs
-
Available RAM per instance: 16 GB (minimum)
-
Local storage per replica:
-
20 GiB for required components
-
25 GiB if using persistent storage for ZooKeeper (5 GiB for ZooKeeper and 20 GiB for required components)
-
In this scenario, it is assumed that you will not run jobs on CloudBees CD/RO, except those needed to collect CloudBees CI data. If you intend on running jobs on CloudBees CD/RO, refer to CloudBees CD/RO server and agent requirements for specific deployment specifications. |
The following are minimum requirements per component:
Component | CloudBees CD/RO web server | CloudBees CD/RO bound agent | ZooKeeper | MariaDB database |
---|---|---|---|---|
CPUs |
0.25 CPUs |
0.25 CPUs |
0.25 CPUs |
Included with CloudBees CD/RO server. |
Memory |
256 MiB |
512 MiB (Memory assigned to Agent JVM: 256 MiB) |
1 GiB |
Included with CloudBees CD/RO server. |
CloudBees CD/RO server requirements for traditional installations
CloudBees recommends the following guidelines for servers in a traditional installation, based on deployment size.
The following guidelines are a recommended starting point. You may need to scale up, based on your environment and needs. |
Small to mid-range deployments | Large deployments | Very large deployments | CloudBees Analytics for CloudBees CI |
---|---|---|---|
|
|
|
|
CloudBees CD/RO server hardware specifications |
|||
Processor (CPU) per instance: 4 CPUs |
Processor (CPU) per instance: 8 CPUs |
Processor (CPU) per instance: 16 CPUs |
Processor (CPU) per instance:
|
Available RAM per instance: 16 GB (minimum) 64 GB (recommended) Max JVM Heap size: 40%* |
Available RAM per instance: 64 GB (minimum) 128 GB (recommended) Max JVM Heap size: 60%* |
Available RAM per instance: 64 GB (minimum) 256 GB (recommended) Max JVM Heap size: 70%* |
Available RAM per instance: 16 GB (minimum) 32 GB (recommended) Max JVM Heap size: 40%* |
Disk Space: 20 GB |
Disk Space: 30 GB or more |
Disk Space: 50 GB or more |
Disk Space: 10-20 GB (learn more here) |
Instances in cluster: 1 for non-clustered 2-3 recommended for HA |
Instances in cluster: 3 instances |
Instances in cluster: 3-4 instances |
Instances in cluster: 1 for non-clustered 2-3 recommended for HA (MariaDB is not supported in a clustered deployment.) |
*The maximum JVM heap size specified in wrapper.conf, expressed in percentage of total available memory.
CloudBees CD/RO agent requirements
These requirements are applicable to both traditional and Kubernetes installations.
These requirements are not applicable for CloudBees Analytics for CloudBees CI installations. |
-
Processor (CPU) per instance: 1 CPU processor from set of cores
-
Disk Space: 5 GB
-
Memory Requirements
-
JVM heap size per stand-alone agent: 16 MiB (minimum), 64 MiB (recommended)
-
JVM heap size when shared with other CloudBees CD/RO components: 256 MiB (minimum), 512 MiB (recommended)
Agent memory is required to run all job workloads. The actual memory requirements for an agent depend heavily on the type of commands and the number of concurrent steps within your jobs.
This is particularly important for
ec-groovy
-based steps, which run in separate JVM instances. The JVM memory settings mentioned above do not apply to these separately launched JVM instances. The memory required for anec-groovy
-based step depends on the specific tasks performed by the step. This is especially significant for jobs that contain multiple steps executed by CloudBees CD/RO plugins, as many plugins areec-groovy
-based.CloudBees recommends a
256 MiB
JVM heap size to ensure reasonable performance on agents regularly used to runec-groovy
-based steps. However, there is no system setting to configure heap size specifically for steps. This means you must ensure sufficient physical memory is available on the system to meet this recommendation. As a general guideline,1 GB
of physical memory should be allocated to accommodate this recommendation.In environments with many jobs running numerous
ec-groovy
-based steps concurrently, if you encounter OOM errors, it may still be necessary to increase this recommendation further. -
ZooKeeper requirements
ZooKeeper is a centralized service used in CloudBees CD/RO to store configuration data and synchronize group services. Your clients must be compatible with the CloudBees CD/RO ZooKeeper server version. CloudBees CD/RO currently uses ZooKeeper v3.9.3.
|
The following requirements apply to CloudBees CD/RO versions:
-
CloudBees CD/RO v2024.06.0 and later uses v3.8.4. Your platform must be compatible with ZooKeeper server v3.8.4.
-
CloudBees CD/RO v2023.12.0 to v2024.03.0 uses v3.8.3. Your platform must be compatible with ZooKeeper server v3.8.3.
-
CloudBees CD/RO server v10.5.0 to v2023.10.0 is only compatible with ZooKeeper server v3.8.0.
ZooKeeper has specific OS limitations and JDK version requirements. For more information, refer to Apache ZooKeeper. |
Diffie-Hellman key size requirement
To enable the CloudBees CD/RO server version 10.0 and later to configure Diffie-Hellman cipher suites properly, agent versions 10.0 or later can only connect to external applications that require SSL with a minimum key size of 2048 bits.
Diffie-Hellman key size requirement for legacy CloudBees CD/RO versions
To enable the CloudBees CD/RO server versions 7.0 - 9.2 to configure Diffie-Hellman cipher suites properly, CloudBees CD/RO uses OpenSSL-1.0.1T or newer versions with SSLv2 enabled. Because of OpenSSL and JRE changes, the minimum Diffie-Hellman key size requirement is increased to 1024 bits (from 768 bits) as of version 7.0. Server versions 7.0 or newer use Jetty (a Java HTTP server), which listens on the 8000 (unsecure) and 8443 (secure) ports. Server versions 7.0 or newer use Java 1.8.0_66, in which the ephemeral DH key size defaults to 1024 bits during SSL/TLS handshaking in the SunJSSE provider. For details on the increase of the key size requirement as of Java 1.6-u101, refer to the Java 6u101 b31 release notes. For details as of Java 1.7-u85, refer to the Java 7u79 release notes. Because their minimum key size is 1024 bits, agent versions 7.0 or newer can connect only to:
However, CloudBees CD/RO Automation Platform agents of versions 5.0.6, 5.3, or 5.4 and CloudBees CD/RO agent versions 6.0.1 or 6.5 or newer can connect to all CloudBees CD/RO server versions (including 7.0 or newer) via ectool and ec-perl. CloudBees CD/RO Automation Platform server versions 5.0.6 or 5.3 or newer can run jobs using all agent versions (including 7.0 or newer). CloudBees CD/RO server versions 7.0 or newer can run jobs using CloudBees CD/RO Automation Platform agent versions 5.0.6 or 5.3 or newer. |