This repository contains the deployment files and documentation relating to the Jenkins instance we use to automate non-Windows packaging for BYOND. The general concept here is to deploy Jenkins as a kubernetes service that is able to package BYOND into distribution specific packages, verify them, and publish them.
To deploy the service or update it, you need to have kubectl
available configured for your cluster, with a new enough version to support kustomize. The deployment assumes the following:
- The cluster has a default StorageClass available.
- The cluster has an IngressController.
- The hostname routes to the the node(s) the IngressController is running on.
Assuming these prerequisites are met, then you can create/update the Jenkins instance by running kubectl apply -k .
from the jenkins.byondlabs.io
folder, or your kustomized overlay folder. For this overlay, it assumes the following:
- The cluster has cert-manager with configuration for
letsencrypt-prod
. - The hostname
jenkins.byondlabs.io
routes to the the node(s) the IngressController is running on. - A secret
jenkins-admin-account
has been created in thejenkins
namespace, containing the key-value pairpassword=somePass
to set the admin password.
Customisations can be placed into the docker
folder, which can be built with something like docker build -t packaging-jenkins-config:latest docker/
.