Buildroot jobs really benefit from having a persistent workspace volume instead of an ephemeral one. This way, only the packages, etc. that have changed since the last build need to be built, instead of the whole toolchain and operating system. |
||
---|---|---|
.. | ||
ssh-host-keys | ||
.gitignore | ||
README.md | ||
iscsi-migrate.yaml | ||
iscsi.yaml | ||
jenkins.yaml | ||
kustomization.yaml | ||
secrets.yaml | ||
workspace-volume.yaml |
README.md
Jenkins in Kubernetes
Kubernetes Setup
Configure Jenkins resources:
ln imagepull-gitea jenkins/.dockerconfigjson
kubectl apply -k jenkins
Jenkins Setup
Install Kubernetes plugin.
Set TCP port for inbound agents setting (Manage Jenkins → Configure Global
Security) to Fixed and enter 40414
.
Configure Kubernetes (Manage Jenkins → Manage Nodes and Clouds → Configure Clouds:
- Add a new cloud → Kubernetes
- Enter a name
- Kubernetes Cloud details...
- Kubernetes URL: (leave blank; will use Kubernetes service discovery)
- Kubernetes Namespace:
jenkins-jobs
- Credentials:
- none -
(will use Service Account token) - Jenkins tunnel:
jenkins.jenkins.svc.cluster.local:
(trailing colon!)
iSCSI Persistent Volume
Because of the large size of the Jenkins volume, it does not work well managed by Longhorn. Instead, we use a pre-provisioned iSCSI volume on the Synology NAS. This improves performance and avoids keeping multiple replicas of the Jenkins data, while still benefiting from snapshots, etc.