# Jenkins in Kubernetes ## Kubernetes Setup Configure Jenkins resources: ```sh ln imagepull-gitea jenkins/.dockerconfigjson kubectl apply -k jenkins ``` ## Jenkins Setup Install [Kubernetes plugin][0]. 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*: 1. *Add a new cloud* → *Kubernetes* 2. Enter a name 3. *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!) [0]: https://plugins.jenkins.io/kubernetes/ ## 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.