Job hardware requirements

System requirements for Continuous Delivery for PE job hardware depend on the size of your Continuous Delivery for PE installation, the type of jobs you run, and how frequently you run them.

The size of the load placed on a job hardware server determines how robust the server's resources must be. Due to the number of variables involved in estimating this (such as the number of jobs running concurrently and the languages the jobs are written in), it's impossible to provide universal system requirements for job hardware.

Instead, we've created a sizing guide based on the estimated number of concurrent jobs you expect your job hardware server to handle regularly. While this guide represents our best estimates and understanding, it's only a starting point. Through testing and experience, you can fine-tune your job hardware and determine the optimum resource configuration for your Continuous Delivery for PE installation.

Estimated concurrent job load Memory Disk storage CPUs
2 - 4 concurrent spec tests 4 GB 100 GB 2
4 - 8 concurrent spec tests 8 GB 100 GB 4
6 - 12 concurrent spec tests 8 GB 100 GB 6
When setting up your job hardware, keep in mind:
  • Disk storage requirements are minimal and don't increase with added load. After a job run is complete, the job's log is passed to the object storage, and all data related to the job run is erased from the job hardware.
  • You can run more jobs concurrently without increasing CPUs, but the jobs run slower.

Job hardware requirements for Docker-based jobs

To run Docker-based jobs, your job hardware must have a modern version of Docker CE or Docker EE installed. The puppetlabs/docker module (from the Forge) is our recommended way to install Docker and keep it updated.

Job hardware used for Docker-based jobs also requires internet access. If you're working in an air-gapped environment, set up an internal Docker registry, as explained in the Docker documentation.

Global shared job hardware uses a shared Docker image set in the root console. The default image used for Docker-based jobs is puppet/puppet-dev-tools:4.x. You can find details on the available commands in the image documentation.