Files
kubernetes/jenkins/README.md
Dustin C. Hatch 404fadc68a jenkins: Run Jenkins in Kubernetes
Running Jenkins in Kubernetes is relatively straightforward.  The
Kubernetes plugin automatically discovers all the connection and
authentication configuration, so a `kubeconfig` file is no longer
necessary.  I did set the *Jenkins tunnel* option, though, so that
agents will connect directly to the Jenkins JNLP port instead of going
through the ingress controller.

Jobs now run in pods in the *jenkins-job* namespace instead of the
*jenkins* namespace.  The latter is now where the Jenkins controller
runs, and the controller should not have permission to modify its own
resources.
2022-11-25 13:38:10 -06:00

32 lines
821 B
Markdown

# 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/