Enable WebHooks
How to enable webhooks if you are on-premises
NOTE
Ensure you are logged into GitHub else you will get a 404 error when clicking the links below
If you are using kubernetes we highly recommend you use one of the managed cloud providers as this comes with lots of additional features like:
However sometimes you need to run kubernetes on your premises. Longer term we hope the cloud providers can run their managed kubernetes and associated infrastructure on your premises too so you get to reuse the same storage + IAM anywhere. But until then, this guide is intended to get you started installing Jenkins X on a vanilla kubernetes cluster on-premises.
The following are the prerequisites of your on-premises kubernetes cluster:
We obviously need a working kubernetes cluster. There are many approaches to setting up on-premises clusters obviously the easiest approach is to use the cloud.
You need to be able to connect to your kubernetes cluster via kubectl so that you can run commands like:
kubectl get ns
kubectl get node
To view the namespaces and nodes respectively.
To use Jenkins X we need ingress to work. This means being able to create a kubernetes Ingress
resource with a domain name which can be resolved outside of kubernetes to network into kubernetes services.
Jenkins X installs nginx
which has a LoadBalancer
kubernetes Service
to implement ingress. But the underlying kubernetes platform needs to implement the load balancing network and infrastructure. This comes out of the box on all public clouds.
With an on-premises kubernetes cluster you need to install something like MetalLB
If you are on bare metal you could try these instructions
We need your kubernetes cluster to have a default storage class so that PersistentVolumeClaim
resources in helm charts get resolved to PersistentVolume
resources so that persistent disks can be used.
You may find these instructions useful
This is our current recommended quickstart for on-premises kubernetes:
Create the cluster Git Repository based on the jx3-gitops-repositories/jx3-kubernetes template
git clone
the new repository via HTTPS and cd
into the git clone directory
find out what your ingress domain is for your cluster then modify the jx-requirements.yml
file and modify the ingress.domain
section…
cluster:
---
ingress:
domain: mydomain.com
verify your cluster does not already have an nginx installation. If it does then please remove the nginx
line from your helmfile.yaml
file and remove the helmfiles/nginx
files. If you are using a custom nginx installation then you will need to figure out your domain by hand and won’t be able to let Jenkins X detect the load balancer IP from its included nginx installation.
git add, commit and push your changes:
git add *
git commit -a -m "fix: added domain"
git push origin main
kubectl get ns
kubectl get node
Install the git operator from inside a git clone of the git repository you created above.
switch to the jx
namespace
jx ns jx
How to enable webhooks if you are on-premises
How to use an on-premises kubernetes cluster with vault
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.