---
title: "Installing Jenkins on OVHcloud Managed Kubernetes"
description: "In this tutorial, we are going to guide you through the installation of Jenkins on your OVHcloud Managed Kubernetes Service."
url: https://docs.us.ovhcloud.com/en/public-cloud/managed-kubernetes/install-jenkins
lang: en
---
> For AI agents: the complete documentation index is available at https://docs.us.ovhcloud.com/en/llms.txt, the full documentation bundle is available at https://docs.us.ovhcloud.com/en/llms-full.txt.

# Installing Jenkins on OVHcloud Managed Kubernetes

In this tutorial, we are going to guide you through the installation of [Jenkins](https://jenkins.io/) on your OVHcloud Managed Kubernetes Service.

We are going to install Jenkins master and slave cluster utilizing the [Jenkins Kubernetes plugin](https://plugins.jenkins.io/kubernetes/).

 

## Before you begin

This tutorial presupposes that you already have a working OVHcloud Managed Kubernetes cluster and some basic knowledge of how to operate it. If you want to know more about those topics, please look at the [OVHcloud Managed Kubernetes Service Quickstart](https://docs.us.ovhcloud.com/en/public-cloud/managed-kubernetes/deploying-node-pool.md).

You also need to have [Helm](https://docs.helm.sh/) installed on your workstation and your cluster. Please refer to the [How to install Helm on OVHcloud Managed Kubernetes Service](https://docs.us.ovhcloud.com/en/public-cloud/managed-kubernetes/install-helm.md) tutorial.

 

## Pre-requisites

We (the OVHcloud Managed Kubernetes Service team) are working on a patch to be released in early 2022. In the meantime, please remove the default storage class and install the new one.

- Delete the concerned `StorageClass` that you are using by default

  ```
  kubectl delete storageclasses.storage.k8s.io csi-cinder-high-speed
  ```

  It will delete the existing `StorageClass`:

  ```
  $ kubectl delete storageclasses.storage.k8s.io csi-cinder-high-speed
  storageclass.storage.k8s.io "csi-cinder-high-speed" deleted
  ```

- Create a new `StorageClass` with the required fix

  ```
  kubectl apply -f https://raw.githubusercontent.com/ovh/docs/develop/pages/public_cloud/containers_orchestration/managed_kubernetes/fix-persistent-volumes-permissions/files/fixed-cinder-high-speed-storage-class.yaml
  ```

  It will apply the correct `StorageClass` YAML manifest:

  ```
  $ kubectl apply -f https://raw.githubusercontent.com/ovh/docs/develop/pages/public_cloud/containers_orchestration/managed_kubernetes/fix-persistent-volumes-permissions/files/fixed-cinder-high-speed-storage-class.yaml
  storageclass.storage.k8s.io/csi-cinder-high-speed created
  ```

 

## Instructions

### Installing the Jenkins Helm chart

**Warning:**

**NOTE:** As with Helm 2, the official Helm `stable` repository is currently deprecated. The Helm community is currently transitioning to a hub model, with a [Helm Hub](https://hub.helm.sh/), where charts can be searched using `helm search hub <keyword>`. As most charts from the Helm _stable_ repository have been transferred to the [Bitnami repository](https://github.com/bitnami/charts/), we are using it in the tutorial.

For this tutorial, we are using the [Jenkins Helm chart](https://github.com/bitnami/charts/tree/master/bitnami/jenkins) found on Bitnami Helm repositories.

The chart is fully configurable, but here we are using the default configuration.

**Note:**

**Customizing your install**

Maybe you would like your admin username to be different, or be able to set your admin password, or modify the resources allocated…

To customize your install, without having to leave the simplicity of using Helm and the Jenkins helm chart, you can simply set some of the [configurable parameters of the Jenkins chart](https://github.com/bitnami/charts/tree/master/bitnami/jenkins#parameters). Then you can add it to your `helm install` with the `--set` option (`--set param1=value1,param2=value2`)

```
helm install my-first-jenkins bitnami/jenkins
```

This will install your Jenkins master:

```
$ helm install my-first-jenkins bitnami/jenkins

NAME: my-first-jenkins
LAST DEPLOYED: Mon Dec 20 11:30:59 2021
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
CHART NAME: jenkins
CHART VERSION: 8.0.22
APP VERSION: 2.319.1

** Please be patient while the chart is being deployed **

1. Get the Jenkins URL by running:

** Please ensure an external IP is associated to the my-first-jenkins service before proceeding **
** Watch the status using: kubectl get svc --namespace default -w my-first-jenkins **

  export SERVICE_IP=$(kubectl get svc --namespace default my-first-jenkins --template "{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}")
  echo "Jenkins URL: http://$SERVICE_IP/"

2. Login with the following credentials

  echo Username: user
  echo Password: $(kubectl get secret --namespace default my-first-jenkins -o jsonpath="{.data.jenkins-password}" | base64 --decode)
```

As the instructions say, you will need to wait a few moments to get the `LoadBalancer` URL. You can test if the `LoadBalancer` is ready using:

```
kubectl get svc --namespace default -w my-first-jenkins
```

After some minutes, you will get the `LoadBalancer` URL:

```
$ kubectl get svc --namespace default -w my-first-jenkins
NAME               TYPE           CLUSTER-IP    EXTERNAL-IP     PORT(S)                      AGE
my-first-jenkins   LoadBalancer   10.3.227.29   <pending>       80:32198/TCP,443:32750/TCP   2m13s
my-first-jenkins   LoadBalancer   10.3.227.29   XXXXXXX.lb...   80:32198/TCP,443:32750/TCP   2m13s
```

The URL under `EXTERNAL-IP` is your Jenkins URL. You can follow the instructions on the Helm Chart to get the connection parameters. In my case:

```
$ export SERVICE_IP=$(kubectl get svc --namespace default my-first-jenkins --template "{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}")

$ echo "Jenkins URL: http://$SERVICE_IP/"
Jenkins URL: http://152.228.169.118/

$ echo Username: user
Username: user

$ echo Password: $(kubectl get secret --namespace default my-first-jenkins -o jsonpath="{.data.jenkins-password}" | base64 --decode)
Password: KMhUs53TJT
```

And putting the URL in your browser will take you to the new Jenkins:

Log in with the user `user` and the password you got before. And here you have your Jenkins:

You have a working Jenkins on your OVHcloud Managed Kubernetes Service, congratulations!

 

### Cleaning up

To clean up your cluster, simply use Helm to delete your Jenkins release.

```
helm delete my-first-jenkins
```

It will delete your Jenkins and its associated resources from your cluster:

```
$ helm delete my-first-jenkins
release "my-first-jenkins" uninstalled
```

 

## Go further

Browse all the [Managed Kubernetes Service (MKS) guides](https://docs.us.ovhcloud.com/en/public-cloud/managed-kubernetes/landing-page-managed-kubernetes.md).

Browse the rest of the [OVHcloud US documentation](https://docs.us.ovhcloud.com/en/index.md) for guides on our other products and services.

Learn more about [Managed Kubernetes](https://us.ovhcloud.com/public-cloud/kubernetes/) on the OVHcloud US website.

If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](https://us.ovhcloud.com/professional-services/) to get a quote and ask our Professional Services experts for a custom analysis of your project.
