Prerequisites for using Helm to install CloudBees CI on modern cloud platforms

2 minute read

Setting up a Kubernetes namespace

CloudBees recommends using Kubernetes namespaces when you install CloudBees CI.

When combined with Kubernetes RBAC security, Kubernetes namespaces help a Kubernetes administrator restrict who has access to a namespace and its data.

To set up a Kubernetes namespace:

  1. Type the following commands:

$ kubectl create namespace cloudbees-core
$ kubectl config set-context $(kubectl config current-context) --namespace=cloudbees-core
The open-source tools kubectx and kubens make changing Kubernetes context or namespace easier. See the kubectx project for more details.

About setting up an administration workstation

The administrator should choose which computer will be used to install, update, and maintain CloudBees CI.

This administration workstation may be either the CloudBees CI administrative workstation or a Kubernetes administrative workstation. It must be a workstation on which you have full command privileges for the following utilities:

If you intend to use the Helm template option instead of install, after installing the Helm client, you can skip to Using the Helm template command to install CloudBees CI.

Adding the CloudBees Helm Chart Repository

CloudBees hosts the Helm chart on CloudBees' public Helm Chart Repository. Before you can use the CloudBees repository you must add it to your Helm environment with the helm repo add command.

To add the CloudBees Public Helm Chart Repository to your Helm environment:

$ helm repo add cloudbees (1)
$ helm repo update (2)
1The helm repo add adds a new Helm Chart Repository to your Helm installation.
2The helm repo update updates your local Helm Chart Repository cache. Your local Helm Chart Repository cache is used by Helm commands like helm search to improve performance.
Always run helm repo update before you execute a Helm search using helm search. This ensures your cache is up to date.

(Optional) Setting up an NGINX Ingress Controller

CloudBees CI requires an NGINX Ingress Controller.

You can skip this section if:

  • You already have an NGINX Ingress Controller installed. CloudBees CI can utilize an existing controller.

  • You plan to install a new NGINX Ingress Controller as part of installing the CloudBees CI Helm chart. Using the Helm chart from CloudBees guarantees that the NGINX Ingress Controller meets CloudBees CI’s requirements.

If you do not already have an NGINX Ingress Controller installed and you do not want to install it while you are installing CloudBees CI, follow the steps below.

Creating an NGINX Ingress Controller

  1. Create a file values.yaml with the following content, assuming cloudbees-core is the namespace where CloudBees CI is deployed:

      ingressClass: "nginx"
        externalTrafficPolicy: "Local"
  2. Deploy the configuration:

    helm repo add ingress-nginx
    helm repo update
    helm upgrade ingress-nginx \
                 ingress-nginx/ingress-nginx \
                 --install \
                 --namespace ingress-nginx \
                 --values values.yaml \
                 --version 3.3.0

Creating a DNS record

Create a DNS record for the domain you want to use for CloudBees CI, pointing to your NGINX Ingress Controller load balancer.

You can retrieve the IP of the load balancer using

kubectl get -n ingress-nginx services ingress-nginx-controller --output jsonpath='{.status.loadBalancer.ingress[0].ip}'