CloudBees CI
Let's see how to run CloudBees CI (GitHub) in a Kubernetes cluster.
Configuration
We'll use the official Helm chart:
Deployment
bash
# adds Helm chart repository
helm repo add cloudbees https://public-charts.artifacts.cloudbees.com/repository/public/
helm repo update
# installs
helm upgrade --install cloudbees-ci cloudbees/cloudbees-core --namespace cloudbees --create-namespace
# checks everything is ok
kubectl get pod -n cloudbees
# uninstalls
helm uninstall cloudbees-ci -n cloudbees
kubectl delete ns cloudbeesExamples
NGINX, sslip.io, cert-manager & Let's Encrypt
bash
# gets ingress controller public IP
NGINX_PUBLIC_IP=`kubectl get service -n ingress-nginx ingress-nginx-controller --output jsonpath='{.status.loadBalancer.ingress[0].ip}'`
# applies the manifest
helm upgrade --install cloudbees-ci cloudbees/cloudbees-core --namespace cloudbees --create-namespace \
--set cloudbees-core.OperationsCenter.HostName=cloudbees-ci.${NGINX_PUBLIC_IP}.sslip.io \
--set 'cloudbees-core.OperationsCenter.Ingress.Annotations.cert-manager\.io/cluster-issuer=selfsigned-cluster-issuer' \
--set cloudbees-core.OperationsCenter.Ingress.tls.Enable=true \
--set cloudbees-core.OperationsCenter.Ingress.tls.SecretName=cloudbees-ci-tls