Cluster and storage requirements

  • Kubernetes cluster and Helm: see Kubernetes cluster requirements.

  • Database instance

    • For a production environment installation, see Database instance for details.

    • For a non-production environment installation, the CloudBees CD Helm chart automatically installs a MariaDB database instance as a built-in database.

Non-production environment

Cluster capacity

The table below specifies the default memory and CPU requested for each CloudBees CD component in a non-production environment.

CloudBees CD component/service CPU Memory

CloudBees CD Server

Per replica: 1.5 CPU, Default number of replicas: 1

Per replica: 6 GiB (Memory assigned to CloudBees CD JVM: 4 GiB)

Web Server

0.25 CPU

256 MiB

DevOps Insight Server

Per replica: 0.1 CPU, Default number of replicas: 1

Per replica: 2 GiB (Memory assigned to Elasticsearch JVM: 1 GiB)

Repository Server

0.25 CPU

512 MiB (Memory assigned to Repository JVM: 512 MiB)

CloudBees CD Agent (Bound)

0.25 CPU

512 MiB (Memory assigned to Agent JVM: 256 MiB)

Storage

Consult the table below for default storage requirements for a non-production environment.

CloudBees CD component/service Storage type Storage amount

CloudBees CD Server

ReadWriteOnce

5 GiB

DevOps Insight Server

ReadWriteOnce

10 GiB

Repository Server

ReadWriteOnce

10 GiB

Production environment

Cluster capacity

For current cluster capaccity and sizing specifications, see Kubernetes cluster requirements.

Separate database instance

You must configure a separate database for your installation of CloudBees CD before you initiate the installation. For current database server and sizing specifications, see Database server specifications.

Database configuration

The database can be installed inside or outside the cluster. Update the database section in the cloudbees-cd-defaults.yaml file that is specified when installing the cloudbees-flow chart. See the Database Values section in Configuration values.

Persistent Storage

CloudBees CD components need varying levels of persistent storage.

  • Non-shared storage: A disk or file system that cannot be shared between two pods or two nodes. Examples include AWS EBS, GCP Persistent Disk, and Azure Disk.

  • Shared storage: A disk or file system that can be shared between two pods or two nodes. Examples include AWS EFS, GCP NFS Server, and Azure Filestore.

Consult the table below for storage requirements.

CloudBees CD component/service Storage type Storage amount Mount point

Shared storage

CloudBees CD Server

CloudBees CD Agent (bound)

ReadWriteMany

5 GiB

/plugin-data

Repository Server

ReadWriteMany

20 GiB

/repository-data

Non-shared storage

DevOps Insight Server

ReadWriteOnce

Per replica: 4, 10 GiB Default number of replicas: 3

/elasticsearch-data

CloudBees CD Agent (worker)

ReadWriteMany

5GiB

/workspace

Zookeeper

/var/lib/zookeeper

CloudBees CD server persistent volume provisioning

Update the storage section in the cloudbees-cd-defaults.yaml file specified when installing the cloudbees-flow chart. See Storage values for details.

CloudBees CD agent persistent volume provisioning

Update the storage section in the cloudbees-cd-agent-defaults.yaml file specified when installing the cloudbees-flow-agent chart. See Storage values for details.

Creating persistent shared storage

Create persistent shared storage on Google Cloud Platform or Amazon EKS. To get started, clone the cloudbees-example repo and then use the follow instructions.

  • Google Cloud Platform: Use Filestore to create a fully-managed NFS file server on Google Cloud.

    Find information and scripts to provision a Google Cloud Filestore instance in the cloudbees-examples repo.

  • Amazon EKI: Use Amazon Elastic File System (EFS) to create fully-managed persistent storage.

    Find information and scripts to provision an EFS instance in the cloudbees-examples repo.