Install CloudBees CI on modern cloud platforms on EKS

2 minute read

The following steps describe a public setup using HTTPS with a domain name.

Prerequisites

These prerequisites require access to AWS with administrative privileges as they involve IAM work.

  1. Follow the steps from AWS Load Balancer Controller to install the AWS Load Balancer controller in the EKS cluster.

    Since CloudBees CI on modern cloud platforms 2.277.4.2, networking/v1 Ingress is used when supported. Consequently, if you use EKS version 1.19 or later, the AWS Load Balancer Controller 2.2.0 or later is required.

    Since CloudBees CI on modern cloud platforms 2.319.2.5, the attribute .spec.ingressClassName is added to Ingresses objects when networking/v1 is supported. Consequently, if you use EKS version 1.19 or later, the AWS Load Balancer Controller requires that an IngressClass be created but its deployment does not automatically provide one. Use AWS Load Balancer Controller version 2.3.0 or later with the helm value createIngressClassResource: true to make sure an IngressClass is automatically created.

  2. Create a certificate in AWS Certificate Manager for the required domain name. For cloudbees-core.example.com, we recommend creating a certificate for *.cloudbees-core.example.com when setting up CloudBees CI on modern cloud platforms using Subdomain: true.

  3. Set up External-DNS. Read the tutorial to set it up on AWS.

Configure your environment

Complete the following steps to configure your environment for the CloudBees CI on modern cloud platforms installation. You must have access to the EKS cluster.

CloudBees CI on modern cloud platforms uses Docker containers to run a cluster of computers within the Kubernetes container management system. You can optionally verify the CloudBees CI on modern cloud platforms Docker images to ensure their origin and authenticity.

  1. Add the CloudBees Helm chart repository as follows:

    helm repo add cloudbees https://public-charts.artifacts.cloudbees.com/repository/public/ helm repo update
  2. Before initiating an installation, type the following commands to create a namespace:

    kubectl create namespace cloudbees-core kubectl config set-context $(kubectl config current-context) --namespace=cloudbees-core
In August 2020, the Jenkins project voted to replace the term master with controller. We have taken a pragmatic approach to cleaning these up, ensuring the least amount of downstream impact as possible. CloudBees is committed to ensuring a culture and environment of inclusiveness and acceptance - this includes ensuring the changes are not just cosmetic ones, but pervasive. As this change happens, please note that the term master has been replaced through the latest versions of the CloudBees documentation with controller (as in managed controller, client controller, team controller) except when still used in the UI or in code.