Merge master (#620)
* Fix workflow for autogenerating docs (#592) * Use grep -c flag in check for changes step to fix case when more than 1 website file was modified * Configure bot for labelling new issues as needing triage (#597) * Configure bot for managing stale issues (#598) * Docs: explanation what is backed up and why (#599) * Explanation what's backed up and why * Auto-updated docs (#600) Co-authored-by: prryb <prryb@users.noreply.github.com> * Docs: clarification of description of get latest command in backup (#601) * Auto-updated docs (#602) Co-authored-by: Sig00rd <Sig00rd@users.noreply.github.com> * Bump seedjobs agent image version to 4.9-1 (#604) * Add GitLFS pull after checkout behaviour to SeedJob GroovyScript Template (#483) Add GitLFS pull after checkout behaviour to support also repositories which are relying on Git LFS Close #482 * Docs: minor fixes (#608) * Link to project's DockerHub in README's section on nightly builds, add paragraph about nightly builds in installation docs * Fix repositoryURL in sample seedJob configuration with SSH auth * Slightly expand on #348 * Fix formatting in docs on Jenkins' customization, update plugin versions * Add notes on Jenkins home Volume in Helm chart values.yaml and docs (#589) * Auto-updated docs (#610) Co-authored-by: Sig00rd <Sig00rd@users.noreply.github.com> * Add an issue template for documentation (#613) * Docs: add info on restricted volumeMounts other than jenkins-home(#612) * Update note in installation docs * Update Helm chart default values.yaml * Update schema * Auto-updated docs (#616) Co-authored-by: Sig00rd <Sig00rd@users.noreply.github.com> * Auto-updated docs (#617) Co-authored-by: Sig00rd <Sig00rd@users.noreply.github.com> * Helm Chart: Remove empty priorityClassName from Jenkins template (#618) Also bump Helm Chart version to v0.5.2 * Fix bad identation in chart/index.yaml (#619) Co-authored-by: Szymon Fugas <sz.fugas@gmail.com> Co-authored-by: Piotr Ryba <55996264+prryb@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: prryb <prryb@users.noreply.github.com> Co-authored-by: Sig00rd <Sig00rd@users.noreply.github.com> Co-authored-by: Cosnita Radu Viorel <radu.cosnita@gmail.com> Co-authored-by: Morten Birkelund <mbi@salecto.com> Co-authored-by: Ernestas <ernetas@gmail.com>
This commit is contained in:
parent
16a1ad8314
commit
3e5d80269d
|
|
@ -0,0 +1,4 @@
|
|||
# Configuration for devbots-needs-triage - https://devbots.xyz/documentation/needs-triage/
|
||||
|
||||
enabled: true
|
||||
label: "needs triage"
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
---
|
||||
name: "📚 Documentation issue"
|
||||
about: Suggest changes to project's documentation
|
||||
title: ''
|
||||
labels: 'documentation'
|
||||
projects: ''
|
||||
assignees: ''
|
||||
---
|
||||
|
||||
**Relevant links*
|
||||
Link(s) to the section(s) of documentation that are outdated or otherwise wrong
|
||||
|
||||
**Description**
|
||||
Description of the changes you would like to see
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
# Configuration for probot-stale - https://github.com/probot/stale
|
||||
|
||||
# Number of days of inactivity before an issue becomes stale
|
||||
daysUntilStale: 30
|
||||
|
||||
# Number of days of inactivity before a stale Issue or Pull Request is closed.
|
||||
# Set to false to disable. If disabled, issues still need to be closed manually, but will remain marked as stale.
|
||||
daysUntilClose: 60
|
||||
|
||||
# Issues with these labels will never be considered stale
|
||||
exemptLabels:
|
||||
- frozen
|
||||
|
||||
# Set to true to ignore issues in a milestone (defaults to false)
|
||||
exemptMilestones: true
|
||||
|
||||
# Label to use when marking an issue as stale
|
||||
staleLabel: stale
|
||||
|
||||
issues:
|
||||
# Comment to post when marking an issue as stale. Set to `false` to disable
|
||||
markComment: >
|
||||
This issue has been automatically marked as stale because it has not had recent activity.
|
||||
It will be closed if no further activity occurs.
|
||||
If this issue is still affecting you, just comment with any updates and we'll keep it open.
|
||||
Thank you for your contributions.
|
||||
|
||||
# Comment to post when closing a stale issue. Set to `false` to disable
|
||||
closeComment: >
|
||||
Closing this issue after a prolonged period of inactivity.
|
||||
If this issue is still present in the latest release, please create a new issue with up-to-date information. Thank you!
|
||||
|
||||
pulls:
|
||||
# Comment to post when marking a pull request as stale.
|
||||
markComment: >
|
||||
This pull request has been automatically marked as stale because it has not had recent activity.
|
||||
It will be closed if no further activity occurs.
|
||||
If this pull request is still relevant, just comment with any updates and we'll keep it open.
|
||||
Thank you for your contributions.
|
||||
|
||||
# Comment to post when closing a stale pull request. Set to `false` to disable
|
||||
closeComment: >
|
||||
Closing this pull request after a prolonged period of inactivity.
|
||||
If this issue is still present in the latest release, please ask for this pull request to be reopened. Thank you!
|
||||
|
||||
# Limit the number of actions per hour, from 1-30. Default is 30
|
||||
limitPerRun: 30
|
||||
|
|
@ -23,18 +23,15 @@ jobs:
|
|||
submodules: recursive # Fetch the Docsy theme
|
||||
fetch-depth: 0
|
||||
|
||||
# Checks out a copy of your repository on the ubuntu-latest machine
|
||||
# Checks if the previous commit introduced any changes to website files
|
||||
- name: Check for changes
|
||||
run: |
|
||||
if git diff --name-only ${{ github.event.before }} ${{ github.sha }} | grep -E "^website*"; then
|
||||
git diff --name-only ${{ github.event.before }} ${{ github.sha }} | grep -E "^website*"
|
||||
echo "IS_CHANGED=$(git diff --name-only ${{ github.event.before }} ${{ github.sha }} | grep -E "^website*")" >> $GITHUB_ENV
|
||||
else
|
||||
echo "IS_CHANGED=empty" >> $GITHUB_ENV
|
||||
fi
|
||||
IS_CHANGED=$(git diff --name-only ${{ github.event.before }} ${{ github.sha }} | grep -Ec "^website*" || :)
|
||||
[[ $IS_CHANGED -gt 0 ]] && echo "IS_CHANGED=true" >> $GITHUB_ENV || echo "IS_CHANGED=false" >> $GITHUB_ENV
|
||||
|
||||
# Sets up the appropriate version of Hugo
|
||||
- name: Setup Hugo
|
||||
if: env.IS_CHANGED != 'empty'
|
||||
if: env.IS_CHANGED == 'true'
|
||||
uses: peaceiris/actions-hugo@v2
|
||||
with:
|
||||
hugo-version: '0.62.2'
|
||||
|
|
@ -42,14 +39,14 @@ jobs:
|
|||
|
||||
# Sets up node - required by Hugo
|
||||
- name: Setup Node
|
||||
if: env.IS_CHANGED != 'empty'
|
||||
if: env.IS_CHANGED == 'true'
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: '12.x'
|
||||
|
||||
# Installs dependencies required by docsy theme
|
||||
- name: Install docsy dependencies
|
||||
if: env.IS_CHANGED != 'empty'
|
||||
if: env.IS_CHANGED == 'true'
|
||||
run: |
|
||||
cd website
|
||||
npm install
|
||||
|
|
@ -57,17 +54,18 @@ jobs:
|
|||
sudo npm install -D --save autoprefixer
|
||||
sudo npm install -D --save postcss-cli
|
||||
cd ../
|
||||
|
||||
# Runs makefile goal - checks changes to /website folder and generates docs
|
||||
- name: Run Makefile goal
|
||||
if: env.IS_CHANGED != 'empty'
|
||||
if: env.IS_CHANGED == 'true'
|
||||
env:
|
||||
DEFAULT_BRANCH: master
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: make generate-docs
|
||||
|
||||
# Create push request with generated docs
|
||||
# Creates pull request with generated docs
|
||||
- name: Create Pull Request
|
||||
if: env.IS_CHANGED != 'empty'
|
||||
if: env.IS_CHANGED == 'true'
|
||||
uses: peter-evans/create-pull-request@v3
|
||||
with:
|
||||
commit-message: Auto-updated docs
|
||||
|
|
|
|||
|
|
@ -64,12 +64,15 @@ Selected content:
|
|||
## Community
|
||||
|
||||
We have a dedicated channel called `#jenkins-operator` on [virtuslab-oss.slack.com](https://virtuslab-oss.slack.com)
|
||||
Fill out ([Invite form](https://forms.gle/X3X8qA1XMirdBuEH7)) and come say hi !
|
||||
Fill out ([Invite form](https://forms.gle/X3X8qA1XMirdBuEH7)) and come say hi!
|
||||
|
||||
## Snapshots between releases
|
||||
|
||||
We are trying our best to resolve issues quickly, but they have to wait to be released. If you can't wait for an official
|
||||
docker image release and acknowledge the risk, you can use our unofficial images, which are built nightly.
|
||||
|
||||
You can find the project's Docker Hub repository [here](https://hub.docker.com/r/virtuslab/jenkins-operator).
|
||||
|
||||
Look for the images with tag "{git-hash}", where {git-hash} is the hash of the master commit that interests you.
|
||||
|
||||
## Contribution
|
||||
|
|
|
|||
|
|
@ -1,6 +1,16 @@
|
|||
apiVersion: v1
|
||||
entries:
|
||||
jenkins-operator:
|
||||
- apiVersion: v2
|
||||
appVersion: 0.6.0
|
||||
created: "2021-06-11T13:50:32.677639006+02:00"
|
||||
description: Kubernetes native operator which fully manages Jenkins on Kubernetes
|
||||
digest: 48fbf15c3ffff7003623edcde0bec39dc37d0a62303f08066960d5fac799af90
|
||||
icon: https://raw.githubusercontent.com/jenkinsci/kubernetes-operator/master/assets/jenkins-operator-icon.png
|
||||
name: jenkins-operator
|
||||
urls:
|
||||
- https://raw.githubusercontent.com/jenkinsci/kubernetes-operator/master/chart/jenkins-operator/jenkins-operator-0.5.2.tgz
|
||||
version: 0.5.2
|
||||
- apiVersion: v2
|
||||
appVersion: 0.6.0
|
||||
created: "2021-06-11T13:50:32.677639006+02:00"
|
||||
|
|
|
|||
|
|
@ -2,5 +2,5 @@ apiVersion: v2
|
|||
appVersion: "0.6.0"
|
||||
description: Kubernetes native operator which fully manages Jenkins on Kubernetes
|
||||
name: jenkins-operator
|
||||
version: 0.5.1
|
||||
version: 0.5.2
|
||||
icon: https://raw.githubusercontent.com/jenkinsci/kubernetes-operator/master/assets/jenkins-operator-icon.png
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -100,8 +100,6 @@ spec:
|
|||
{{- end }}
|
||||
{{- if .Values.jenkins.priorityClassName }}
|
||||
priorityClassName: {{- .Values.jenkins.priorityClassName }}
|
||||
{{- else }}
|
||||
priorityClassName: ""
|
||||
{{- end }}
|
||||
disableCSRFProtection: {{ .Values.jenkins.disableCSRFProtection }}
|
||||
containers:
|
||||
|
|
|
|||
|
|
@ -124,6 +124,9 @@ jenkins:
|
|||
claimName: jenkins-backup
|
||||
|
||||
# volumeMounts are mounts for Jenkins pod
|
||||
# Note that attempting to overwrite default mount settings for restricted,
|
||||
# non-configurable volumeMounts will result in Operator error
|
||||
# See https://jenkinsci.github.io/kubernetes-operator/docs/installation/#note-on-restricted-jenkins-controller-pod-volumemounts for details
|
||||
volumeMounts: []
|
||||
|
||||
# defines authorization strategy of the operator for the Jenkins API
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@
|
|||
" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="https://jenkinsci.github.io/kubernetes-operator/docs/developer-guide/" />
|
||||
<meta property="og:updated_time" content="2021-06-10T00:00:00+00:00" /><meta property="og:site_name" content="Jenkins Operator" />
|
||||
<meta property="og:updated_time" content="2021-07-30T00:00:00+00:00" /><meta property="og:site_name" content="Jenkins Operator" />
|
||||
<meta itemprop="name" content="Developer Guide">
|
||||
<meta itemprop="description" content="Jenkins Operator for developers
|
||||
"><meta name="twitter:card" content="summary"/>
|
||||
|
|
@ -765,6 +765,7 @@
|
|||
<li><a href="#build-and-run-with-a-minikube">Build and run with a minikube</a>
|
||||
<ul>
|
||||
<li><a href="#debug-jenkins-operator">Debug Jenkins Operator</a></li>
|
||||
<li><a href="#stop-or-delete-minikube-cluster">Stop or delete minikube cluster</a></li>
|
||||
</ul></li>
|
||||
<li><a href="#build-and-run-with-a-remote-kubernetes-cluster">Build and run with a remote Kubernetes cluster</a></li>
|
||||
<li><a href="#testing">Testing</a>
|
||||
|
|
@ -996,6 +997,12 @@ jenkins-jenkins-example 1/1 Running <s
|
|||
seed-job-agent-jenkins-example-758cc7cc5c-82hbl 1/1 Running <span style="color:#0000cf;font-weight:bold">0</span> 21m</code></pre></div>
|
||||
<h3 id="debug-jenkins-operator">Debug Jenkins Operator</h3>
|
||||
<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">make run <span style="color:#000">OPERATOR_EXTRA_ARGS</span><span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#4e9a06">"--debug"</span></code></pre></div>
|
||||
<h3 id="stop-or-delete-minikube-cluster">Stop or delete minikube cluster</h3>
|
||||
|
||||
<p>To stop Kubernetes cluster running locally on minikube:</p>
|
||||
<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">minikube stop</code></pre></div>
|
||||
<p>To delete the cluster altogether:</p>
|
||||
<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">minikube delete</code></pre></div>
|
||||
<h2 id="build-and-run-with-a-remote-kubernetes-cluster">Build and run with a remote Kubernetes cluster</h2>
|
||||
|
||||
<p>You can also run the controller locally and make it listen to a remote Kubernetes server.</p>
|
||||
|
|
@ -1038,6 +1045,8 @@ kubectl get secret jenkins-operator-credentials-<cr_name> -o <span style="
|
|||
</a></p></li>
|
||||
|
||||
<li><p><a href="https://www.katacoda.com/openshift/courses/operatorframework">Operator Framework Training By OpenShift</a></p></li>
|
||||
|
||||
<li><p><a href="https://sdk.operatorframework.io/docs/building-operators/golang/tutorial/">Operator SDK Tutorial for Go</a></p></li>
|
||||
</ul>
|
||||
|
||||
<div class="section-index">
|
||||
|
|
@ -1204,7 +1213,7 @@ kubectl get secret jenkins-operator-credentials-<cr_name> -o <span style="
|
|||
|
||||
|
||||
|
||||
<div class="text-muted mt-5 pt-3 border-top">Last modified June 10, 2021
|
||||
<div class="text-muted mt-5 pt-3 border-top">Last modified July 30, 2021
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
<link>https://jenkinsci.github.io/kubernetes-operator/docs/developer-guide/</link>
|
||||
<description>Recent Hugo news from gohugo.io</description>
|
||||
<generator>Hugo -- gohugo.io</generator>
|
||||
<lastBuildDate>Thu, 10 Jun 2021 00:00:00 +0000</lastBuildDate>
|
||||
<lastBuildDate>Fri, 30 Jul 2021 00:00:00 +0000</lastBuildDate>
|
||||
<image>
|
||||
<url>https://jenkinsci.github.io/kubernetes-operator/img/hugo.png</url>
|
||||
<title>GoHugo.io</title>
|
||||
|
|
|
|||
|
|
@ -969,7 +969,7 @@ spec:
|
|||
targets: "cicd/jobs/*.jenkins"
|
||||
description: "Jenkins Operator repository"
|
||||
repositoryBranch: master
|
||||
repositoryUrl: ssh://git@github.com:jenkinsci/kubernetes-operator.git</code></pre>
|
||||
repositoryUrl: git@github.com:jenkinsci/kubernetes-operator.git</code></pre>
|
||||
<p>and create a Kubernetes Secret (name of secret should be the same from <code>credentialID</code> field):</p>
|
||||
<pre><code>apiVersion: v1
|
||||
kind: Secret
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@
|
|||
">
|
||||
<meta itemprop="datePublished" content="2021-01-25T00:00:00+00:00" />
|
||||
<meta itemprop="dateModified" content="2021-01-25T00:00:00+00:00" />
|
||||
<meta itemprop="wordCount" content="182">
|
||||
<meta itemprop="wordCount" content="230">
|
||||
|
||||
|
||||
|
||||
|
|
@ -833,6 +833,12 @@
|
|||
<div class="lead">Prevent loss of job history</div>
|
||||
|
||||
|
||||
<blockquote>
|
||||
<p>Because of Jenkins Operator’s architecture, the configuration of Jenkins should be done using ConfigurationAsCode
|
||||
or GroovyScripts and jobs should be defined as SeedJobs. It means that there is no point in backing up any job configuration
|
||||
up. Therefore, the backup script makes a copy of jobs history only.</p>
|
||||
</blockquote>
|
||||
|
||||
<p>Backup and restore is done by a container sidecar.</p>
|
||||
|
||||
<h3 id="pvc">PVC</h3>
|
||||
|
|
@ -895,7 +901,7 @@
|
|||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>getLatestAction<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>exec<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>command<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>/home/user/bin/get-latest.sh<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic"># this command is invoked on "backup" container to get last backup number before pod deletion. If you don't omit it in CR, you can lose data</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>/home/user/bin/get-latest.sh<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic"># this command is invoked on "backup" container to get last backup number before pod deletion; not having it in the CR may cause loss of data</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>interval<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">30</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic"># how often make backup in seconds</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>makeBackupBeforePodDeletion<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">true</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic"># make a backup before pod deletion</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>restore<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@
|
|||
">
|
||||
<meta itemprop="datePublished" content="2021-01-25T00:00:00+00:00" />
|
||||
<meta itemprop="dateModified" content="2021-01-25T00:00:00+00:00" />
|
||||
<meta itemprop="wordCount" content="295">
|
||||
<meta itemprop="wordCount" content="288">
|
||||
|
||||
|
||||
|
||||
|
|
@ -840,14 +840,17 @@
|
|||
Plugin’s configuration is applied as groovy scripts or the <a href="https://github.com/jenkinsci/configuration-as-code-plugin">configuration as code plugin</a>.
|
||||
Any plugin working for Jenkins can be installed by the Jenkins Operator.</p>
|
||||
|
||||
<p>Pre-installed plugins:
|
||||
* configuration-as-code v1.47
|
||||
* git v4.5.0
|
||||
* job-dsl v1.77
|
||||
* kubernetes-credentials-provider v0.15
|
||||
* kubernetes v1.29.0
|
||||
* workflow-aggregator v2.6
|
||||
* workflow-job v2.40</p>
|
||||
<p>Pre-installed plugins:</p>
|
||||
|
||||
<ul>
|
||||
<li>configuration-as-code v1.51</li>
|
||||
<li>git v4.7.2</li>
|
||||
<li>job-dsl v1.77</li>
|
||||
<li>kubernetes-credentials-provider v0.18-1</li>
|
||||
<li>kubernetes v1.30.0</li>
|
||||
<li>workflow-aggregator v2.6</li>
|
||||
<li>workflow-job v2.41</li>
|
||||
</ul>
|
||||
|
||||
<p>Rest of the plugins can be found in <a href="https://plugins.jenkins.io/">plugins repository</a>.</p>
|
||||
|
||||
|
|
@ -872,19 +875,19 @@ Any plugin working for Jenkins can be installed by the Jenkins Operator.</p>
|
|||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>master<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>basePlugins<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>kubernetes<span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">"1.28.6"</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">"1.30.0"</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>workflow-job<span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">"2.40"</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>workflow-aggregator<span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">"2.6"</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>git<span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">"4.5.0"</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">"4.7.2"</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>job-dsl<span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">"1.77"</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>configuration-as-code<span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">"1.46"</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">"1.51"</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>kubernetes-credentials-provider<span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">"0.15"</span></code></pre></div>
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">"0.18-1"</span></code></pre></div>
|
||||
<p>You can change their versions.</p>
|
||||
|
||||
<p>The <strong>Jenkins Operator</strong> will then automatically install plugins after the Jenkins master pod restart.</p>
|
||||
|
|
|
|||
|
|
@ -822,6 +822,8 @@
|
|||
<hr class="panel-line">
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="entry">
|
||||
<h5>
|
||||
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/deploy-jenkins/">Deploy Jenkins</a>
|
||||
|
|
@ -844,8 +846,6 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="entry">
|
||||
<h5>
|
||||
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/configuration/">Configuration</a>
|
||||
|
|
|
|||
|
|
@ -240,7 +240,7 @@ spec:
|
|||
targets: "cicd/jobs/*.jenkins"
|
||||
description: "Jenkins Operator repository"
|
||||
repositoryBranch: master
|
||||
repositoryUrl: ssh://git@github.com:jenkinsci/kubernetes-operator.git</code></pre>
|
||||
repositoryUrl: git@github.com:jenkinsci/kubernetes-operator.git</code></pre>
|
||||
<p>and create a Kubernetes Secret (name of secret should be the same from <code>credentialID</code> field):</p>
|
||||
<pre><code>apiVersion: v1
|
||||
kind: Secret
|
||||
|
|
@ -403,14 +403,17 @@ stringData:
|
|||
Plugin&rsquo;s configuration is applied as groovy scripts or the <a href="https://github.com/jenkinsci/configuration-as-code-plugin">configuration as code plugin</a>.
|
||||
Any plugin working for Jenkins can be installed by the Jenkins Operator.</p>
|
||||
|
||||
<p>Pre-installed plugins:
|
||||
* configuration-as-code v1.47
|
||||
* git v4.5.0
|
||||
* job-dsl v1.77
|
||||
* kubernetes-credentials-provider v0.15
|
||||
* kubernetes v1.29.0
|
||||
* workflow-aggregator v2.6
|
||||
* workflow-job v2.40</p>
|
||||
<p>Pre-installed plugins:</p>
|
||||
|
||||
<ul>
|
||||
<li>configuration-as-code v1.51</li>
|
||||
<li>git v4.7.2</li>
|
||||
<li>job-dsl v1.77</li>
|
||||
<li>kubernetes-credentials-provider v0.18-1</li>
|
||||
<li>kubernetes v1.30.0</li>
|
||||
<li>workflow-aggregator v2.6</li>
|
||||
<li>workflow-job v2.41</li>
|
||||
</ul>
|
||||
|
||||
<p>Rest of the plugins can be found in <a href="https://plugins.jenkins.io/">plugins repository</a>.</p>
|
||||
|
||||
|
|
@ -435,19 +438,19 @@ Any plugin working for Jenkins can be installed by the Jenkins Operator.</p&g
|
|||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>master<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>basePlugins<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>kubernetes<span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;1.28.6&#34;</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;1.30.0&#34;</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>workflow-job<span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;2.40&#34;</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>workflow-aggregator<span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;2.6&#34;</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>git<span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;4.5.0&#34;</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;4.7.2&#34;</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>job-dsl<span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;1.77&#34;</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>configuration-as-code<span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;1.46&#34;</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;1.51&#34;</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>kubernetes-credentials-provider<span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;0.15&#34;</span></code></pre></div>
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;0.18-1&#34;</span></code></pre></div>
|
||||
<p>You can change their versions.</p>
|
||||
|
||||
<p>The <strong>Jenkins Operator</strong> will then automatically install plugins after the Jenkins master pod restart.</p>
|
||||
|
|
@ -576,6 +579,12 @@ The secrets are loaded to <code>secrets</code> map.</p>
|
|||
|
||||
|
||||
|
||||
<blockquote>
|
||||
<p>Because of Jenkins Operator&rsquo;s architecture, the configuration of Jenkins should be done using ConfigurationAsCode
|
||||
or GroovyScripts and jobs should be defined as SeedJobs. It means that there is no point in backing up any job configuration
|
||||
up. Therefore, the backup script makes a copy of jobs history only.</p>
|
||||
</blockquote>
|
||||
|
||||
<p>Backup and restore is done by a container sidecar.</p>
|
||||
|
||||
<h3 id="pvc">PVC</h3>
|
||||
|
|
@ -638,7 +647,7 @@ The secrets are loaded to <code>secrets</code> map.</p>
|
|||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>getLatestAction<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>exec<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>command<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>/home/user/bin/get-latest.sh<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic"># this command is invoked on &#34;backup&#34; container to get last backup number before pod deletion. If you don&#39;t omit it in CR, you can lose data</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>/home/user/bin/get-latest.sh<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic"># this command is invoked on &#34;backup&#34; container to get last backup number before pod deletion; not having it in the CR may cause loss of data</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>interval<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">30</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic"># how often make backup in seconds</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>makeBackupBeforePodDeletion<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">true</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic"># make a backup before pod deletion</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>restore<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
|
|
@ -1670,7 +1679,12 @@ Values defined by an Env with a duplicate key will take precedence.</p>
|
|||
</td>
|
||||
<td>
|
||||
<em>(Optional)</em>
|
||||
<p>Pod volumes to mount into the container&rsquo;s filesystem.</p>
|
||||
<p>
|
||||
Pod volumes to mount into the container&rsquo;s filesystem. More info:
|
||||
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/installation/#note-on-restricted-jenkins-controller-pod-volumemounts">
|
||||
https://jenkinsci.github.io/kubernetes-operator/docs/installation/#note-on-restricted-jenkins-controller-pod-volumemounts
|
||||
</a>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@
|
|||
">
|
||||
<meta itemprop="datePublished" content="2021-01-18T00:00:00+00:00" />
|
||||
<meta itemprop="dateModified" content="2021-01-18T00:00:00+00:00" />
|
||||
<meta itemprop="wordCount" content="2960">
|
||||
<meta itemprop="wordCount" content="2963">
|
||||
|
||||
|
||||
|
||||
|
|
@ -1471,7 +1471,12 @@ Values defined by an Env with a duplicate key will take precedence.</p>
|
|||
</td>
|
||||
<td>
|
||||
<em>(Optional)</em>
|
||||
<p>Pod volumes to mount into the container’s filesystem.</p>
|
||||
<p>
|
||||
Pod volumes to mount into the container’s filesystem. More info:
|
||||
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/installation/#note-on-restricted-jenkins-controller-pod-volumemounts">
|
||||
https://jenkinsci.github.io/kubernetes-operator/docs/installation/#note-on-restricted-jenkins-controller-pod-volumemounts
|
||||
</a>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
|
|
|||
|
|
@ -903,7 +903,7 @@
|
|||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>getLatestAction<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>exec<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>command<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>/home/user/bin/get-latest.sh<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic"># this command is invoked on "backup" container to get last backup number before pod deletion. If you don't omit it in CR, you can lose data</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>/home/user/bin/get-latest.sh<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic"># this command is invoked on "backup" container to get last backup number before pod deletion; not having it in the CR may cause loss of data</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic">#recoveryOnce: <backup_number> # if want to restore specific backup configure this field and then Jenkins will be restarted and desired backup will be restored</span></code></pre></div>
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -824,6 +824,8 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="entry">
|
||||
<h5>
|
||||
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/v0.5.x/deploy-jenkins/">Deploy Jenkins</a>
|
||||
|
|
@ -846,8 +848,6 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="entry">
|
||||
<h5>
|
||||
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/v0.5.x/configuration/">Configuration</a>
|
||||
|
|
|
|||
|
|
@ -634,7 +634,7 @@ The secrets are loaded to <code>secrets</code> map.</p>
|
|||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>getLatestAction<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>exec<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>command<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>/home/user/bin/get-latest.sh<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic"># this command is invoked on &#34;backup&#34; container to get last backup number before pod deletion. If you don&#39;t omit it in CR, you can lose data</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>/home/user/bin/get-latest.sh<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic"># this command is invoked on &#34;backup&#34; container to get last backup number before pod deletion; not having it in the CR may cause loss of data</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic">#recoveryOnce: &lt;backup_number&gt; # if want to restore specific backup configure this field and then Jenkins will be restarted and desired backup will be restored</span></code></pre></div>
|
||||
</description>
|
||||
</item>
|
||||
|
|
|
|||
|
|
@ -789,10 +789,6 @@
|
|||
<hr class="panel-line">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="entry">
|
||||
<h5>
|
||||
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/installation/">Installation</a>
|
||||
|
|
@ -832,6 +828,10 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -651,7 +651,7 @@ spec:
|
|||
targets: "cicd/jobs/*.jenkins"
|
||||
description: "Jenkins Operator repository"
|
||||
repositoryBranch: master
|
||||
repositoryUrl: ssh://git@github.com:jenkinsci/kubernetes-operator.git</code></pre>
|
||||
repositoryUrl: git@github.com:jenkinsci/kubernetes-operator.git</code></pre>
|
||||
<p>and create a Kubernetes Secret (name of secret should be the same from <code>credentialID</code> field):</p>
|
||||
<pre><code>apiVersion: v1
|
||||
kind: Secret
|
||||
|
|
@ -2167,14 +2167,17 @@ stringData:
|
|||
Plugin&rsquo;s configuration is applied as groovy scripts or the <a href="https://github.com/jenkinsci/configuration-as-code-plugin">configuration as code plugin</a>.
|
||||
Any plugin working for Jenkins can be installed by the Jenkins Operator.</p>
|
||||
|
||||
<p>Pre-installed plugins:
|
||||
* configuration-as-code v1.47
|
||||
* git v4.5.0
|
||||
* job-dsl v1.77
|
||||
* kubernetes-credentials-provider v0.15
|
||||
* kubernetes v1.29.0
|
||||
* workflow-aggregator v2.6
|
||||
* workflow-job v2.40</p>
|
||||
<p>Pre-installed plugins:</p>
|
||||
|
||||
<ul>
|
||||
<li>configuration-as-code v1.51</li>
|
||||
<li>git v4.7.2</li>
|
||||
<li>job-dsl v1.77</li>
|
||||
<li>kubernetes-credentials-provider v0.18-1</li>
|
||||
<li>kubernetes v1.30.0</li>
|
||||
<li>workflow-aggregator v2.6</li>
|
||||
<li>workflow-job v2.41</li>
|
||||
</ul>
|
||||
|
||||
<p>Rest of the plugins can be found in <a href="https://plugins.jenkins.io/">plugins repository</a>.</p>
|
||||
|
||||
|
|
@ -2199,19 +2202,19 @@ Any plugin working for Jenkins can be installed by the Jenkins Operator.</p&g
|
|||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>master<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>basePlugins<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>kubernetes<span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;1.28.6&#34;</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;1.30.0&#34;</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>workflow-job<span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;2.40&#34;</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>workflow-aggregator<span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;2.6&#34;</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>git<span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;4.5.0&#34;</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;4.7.2&#34;</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>job-dsl<span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;1.77&#34;</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>configuration-as-code<span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;1.46&#34;</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;1.51&#34;</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>kubernetes-credentials-provider<span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;0.15&#34;</span></code></pre></div>
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;0.18-1&#34;</span></code></pre></div>
|
||||
<p>You can change their versions.</p>
|
||||
|
||||
<p>The <strong>Jenkins Operator</strong> will then automatically install plugins after the Jenkins master pod restart.</p>
|
||||
|
|
@ -3123,6 +3126,12 @@ spec:
|
|||
|
||||
|
||||
|
||||
<blockquote>
|
||||
<p>Because of Jenkins Operator&rsquo;s architecture, the configuration of Jenkins should be done using ConfigurationAsCode
|
||||
or GroovyScripts and jobs should be defined as SeedJobs. It means that there is no point in backing up any job configuration
|
||||
up. Therefore, the backup script makes a copy of jobs history only.</p>
|
||||
</blockquote>
|
||||
|
||||
<p>Backup and restore is done by a container sidecar.</p>
|
||||
|
||||
<h3 id="pvc">PVC</h3>
|
||||
|
|
@ -3185,7 +3194,7 @@ spec:
|
|||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>getLatestAction<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>exec<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>command<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>/home/user/bin/get-latest.sh<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic"># this command is invoked on &#34;backup&#34; container to get last backup number before pod deletion. If you don&#39;t omit it in CR, you can lose data</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>/home/user/bin/get-latest.sh<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic"># this command is invoked on &#34;backup&#34; container to get last backup number before pod deletion; not having it in the CR may cause loss of data</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>interval<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">30</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic"># how often make backup in seconds</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>makeBackupBeforePodDeletion<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">true</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic"># make a backup before pod deletion</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>restore<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
|
|
@ -3279,7 +3288,7 @@ spec:
|
|||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>getLatestAction<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>exec<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>command<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>/home/user/bin/get-latest.sh<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic"># this command is invoked on &#34;backup&#34; container to get last backup number before pod deletion. If you don&#39;t omit it in CR, you can lose data</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>/home/user/bin/get-latest.sh<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic"># this command is invoked on &#34;backup&#34; container to get last backup number before pod deletion; not having it in the CR may cause loss of data</span><span style="color:#f8f8f8;text-decoration:underline">
|
||||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic">#recoveryOnce: &lt;backup_number&gt; # if want to restore specific backup configure this field and then Jenkins will be restarted and desired backup will be restored</span></code></pre></div>
|
||||
</description>
|
||||
</item>
|
||||
|
|
@ -6185,7 +6194,12 @@ Values defined by an Env with a duplicate key will take precedence.</p>
|
|||
</td>
|
||||
<td>
|
||||
<em>(Optional)</em>
|
||||
<p>Pod volumes to mount into the container&rsquo;s filesystem.</p>
|
||||
<p>
|
||||
Pod volumes to mount into the container&rsquo;s filesystem. More info:
|
||||
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/installation/#note-on-restricted-jenkins-controller-pod-volumemounts">
|
||||
https://jenkinsci.github.io/kubernetes-operator/docs/installation/#note-on-restricted-jenkins-controller-pod-volumemounts
|
||||
</a>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@
|
|||
" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="https://jenkinsci.github.io/kubernetes-operator/docs/installation/" />
|
||||
<meta property="og:updated_time" content="2020-10-05T00:00:00+00:00" /><meta property="og:site_name" content="Jenkins Operator" />
|
||||
<meta property="og:updated_time" content="2021-07-30T00:00:00+00:00" /><meta property="og:site_name" content="Jenkins Operator" />
|
||||
<meta itemprop="name" content="Installation">
|
||||
<meta itemprop="description" content="How to install Jenkins Operator
|
||||
"><meta name="twitter:card" content="summary"/>
|
||||
|
|
@ -766,6 +766,8 @@
|
|||
<ul>
|
||||
<li><a href="#configuring-operator-deployment">Configuring operator deployment</a></li>
|
||||
</ul></li>
|
||||
<li><a href="#note-on-operator-s-nightly-built-images">Note on Operator’s nightly built images</a></li>
|
||||
<li><a href="#note-on-restricted-jenkins-controller-pod-volumemounts">Note on restricted Jenkins controller pod volumeMounts</a></li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
</nav>
|
||||
|
|
@ -808,18 +810,21 @@
|
|||
|
||||
<div class="pageinfo pageinfo-primary">
|
||||
<p>This document describes installation procedure for <strong>Jenkins Operator</strong>.
|
||||
All container images can be found at <a href="https://hub.docker.com/r/virtuslab/jenkins-operator">virtuslab/jenkins-operator</a></p>
|
||||
All container images can be found at <a href="https://hub.docker.com/r/virtuslab/jenkins-operator">virtuslab/jenkins-operator</a> Docker Hub repository.</p>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<h2 id="requirements">Requirements</h2>
|
||||
|
||||
<p>To run <strong>Jenkins Operator</strong>, you will need:
|
||||
- access to a Kubernetes cluster version <code>1.17+</code>
|
||||
- <code>kubectl</code> version <code>1.17+</code></p>
|
||||
<p>To run <strong>Jenkins Operator</strong>, you will need:</p>
|
||||
|
||||
<p>Listed below are the two ways to deploy Jenkins Operator. For details on how to customize your Jenkins instance, refer to <a href="/kubernetes-operator/docs/installation/">Getting Started</a></p>
|
||||
<ul>
|
||||
<li>access to a Kubernetes cluster version <code>1.17+</code></li>
|
||||
<li><code>kubectl</code> version <code>1.17+</code></li>
|
||||
</ul>
|
||||
|
||||
<p>Listed below are the two ways to deploy Jenkins Operator. For details on how to customize your Jenkins instance, refer to <a href="/kubernetes-operator/docs/installation/">Getting Started</a>.</p>
|
||||
|
||||
<h2 id="deploy-jenkins-operator-using-yaml-s">Deploy Jenkins Operator using YAML’s</h2>
|
||||
|
||||
|
|
@ -1649,6 +1654,32 @@ Example:<br />
|
|||
</tbody>
|
||||
</table></p>
|
||||
|
||||
<h2 id="note-on-operator-s-nightly-built-images">Note on Operator’s nightly built images</h2>
|
||||
|
||||
<p>If you wish to use the newest, not yet released version of the Operator, you can use one of nightly built snapshot images, however the maintainers of this project cannot guarantee their stability.</p>
|
||||
|
||||
<p>You can find nightly built images by heading to <a href="https://hub.docker.com/r/virtuslab/jenkins-operator">virtuslab/jenkins-operator</a> Docker Hub repository and looking for images with tag in the form of “{git-hash}”, {git-hash} being the hash of master branch commit that you want to use snapshot of.</p>
|
||||
|
||||
<h2 id="note-on-restricted-jenkins-controller-pod-volumemounts">Note on restricted Jenkins controller pod volumeMounts</h2>
|
||||
|
||||
<p>Current design of the Operator puts an emphasis on creating a full GitOps flow of work for Jenkins users.
|
||||
One of the key points of this design is maintaining an immutable state of Jenkins.</p>
|
||||
|
||||
<p>One of the prerequisites of this is an ephemeral Jenkins home directory. To achieve that, Operator mounts emptyDir Volume
|
||||
(jenkins-home) as Jenkins home directory.
|
||||
It is not possible to overwrite volumeMount and specify any other Volume for Jenkins home directory,
|
||||
as attempting to do so will result in Operator error.</p>
|
||||
|
||||
<p>jenkins-home is not the only Jenkins controller pod volumeMount that is non-configurable and managed by Operator,
|
||||
below is the full list of those volumeMounts:</p>
|
||||
|
||||
<ul>
|
||||
<li>jenkins-home</li>
|
||||
<li>scripts</li>
|
||||
<li>init-configuration</li>
|
||||
<li>operator-credentials</li>
|
||||
</ul>
|
||||
|
||||
<div class="section-index">
|
||||
|
||||
|
||||
|
|
@ -1805,7 +1836,7 @@ Example:<br />
|
|||
|
||||
|
||||
|
||||
<div class="text-muted mt-5 pt-3 border-top">Last modified October 5, 2020
|
||||
<div class="text-muted mt-5 pt-3 border-top">Last modified July 30, 2021
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
<link>https://jenkinsci.github.io/kubernetes-operator/docs/installation/</link>
|
||||
<description>Recent Hugo news from gohugo.io</description>
|
||||
<generator>Hugo -- gohugo.io</generator>
|
||||
<lastBuildDate>Mon, 05 Oct 2020 00:00:00 +0000</lastBuildDate>
|
||||
<lastBuildDate>Fri, 30 Jul 2021 00:00:00 +0000</lastBuildDate>
|
||||
<image>
|
||||
<url>https://jenkinsci.github.io/kubernetes-operator/img/hugo.png</url>
|
||||
<title>GoHugo.io</title>
|
||||
|
|
|
|||
|
|
@ -2,6 +2,11 @@
|
|||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
|
||||
xmlns:xhtml="http://www.w3.org/1999/xhtml">
|
||||
|
||||
<url>
|
||||
<loc>https://jenkinsci.github.io/kubernetes-operator/docs/installation/</loc>
|
||||
<lastmod>2021-07-30T00:00:00+00:00</lastmod>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/deploy-jenkins/</loc>
|
||||
<lastmod>2021-01-25T00:00:00+00:00</lastmod>
|
||||
|
|
@ -12,11 +17,6 @@
|
|||
<lastmod>2021-01-25T00:00:00+00:00</lastmod>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://jenkinsci.github.io/kubernetes-operator/docs/installation/</loc>
|
||||
<lastmod>2020-10-05T00:00:00+00:00</lastmod>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/v0.4.x/deploy-jenkins/</loc>
|
||||
<lastmod>2020-04-13T00:00:00+00:00</lastmod>
|
||||
|
|
@ -369,7 +369,7 @@
|
|||
|
||||
<url>
|
||||
<loc>https://jenkinsci.github.io/kubernetes-operator/docs/developer-guide/</loc>
|
||||
<lastmod>2021-06-10T00:00:00+00:00</lastmod>
|
||||
<lastmod>2021-07-30T00:00:00+00:00</lastmod>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
|
|
|
|||
|
|
@ -80,6 +80,7 @@ import hudson.plugins.git.BranchSpec;
|
|||
import hudson.plugins.git.GitSCM;
|
||||
import hudson.plugins.git.SubmoduleConfig;
|
||||
import hudson.plugins.git.extensions.impl.CloneOption;
|
||||
import hudson.plugins.git.extensions.impl.GitLFSPull;
|
||||
import javaposse.jobdsl.plugin.ExecuteDslScripts;
|
||||
import javaposse.jobdsl.plugin.LookupStrategy;
|
||||
import javaposse.jobdsl.plugin.RemovedJobAction;
|
||||
|
|
@ -93,7 +94,10 @@ def jobDslSeedName = "{{ .ID }}-{{ .SeedJobSuffix }}";
|
|||
def jobRef = jenkins.getItem(jobDslSeedName)
|
||||
|
||||
def repoList = GitSCM.createRepoList("{{ .RepositoryURL }}", "{{ .CredentialID }}")
|
||||
def gitExtensions = [new CloneOption(true, true, ";", 10)]
|
||||
def gitExtensions = [
|
||||
new CloneOption(true, true, ";", 10),
|
||||
new GitLFSPull()
|
||||
]
|
||||
def scm = new GitSCM(
|
||||
repoList,
|
||||
newArrayList(new BranchSpec("{{ .RepositoryBranch }}")),
|
||||
|
|
@ -438,7 +442,7 @@ func agentDeployment(jenkins *v1alpha2.Jenkins, namespace string, agentName stri
|
|||
Containers: []corev1.Container{
|
||||
{
|
||||
Name: "jnlp",
|
||||
Image: "jenkins/inbound-agent:alpine",
|
||||
Image: "jenkins/inbound-agent:4.9-1",
|
||||
Env: []corev1.EnvVar{
|
||||
{
|
||||
Name: "JENKINS_TUNNEL",
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
title: "Developer Guide"
|
||||
linkTitle: "Developer Guide"
|
||||
weight: 60
|
||||
date: 2021-06-10
|
||||
date: 2021-07-30
|
||||
description: >
|
||||
Jenkins Operator for developers
|
||||
---
|
||||
|
|
@ -211,6 +211,16 @@ seed-job-agent-jenkins-example-758cc7cc5c-82hbl 1/1 Running 0
|
|||
make run OPERATOR_EXTRA_ARGS="--debug"
|
||||
```
|
||||
|
||||
### Stop or delete minikube cluster
|
||||
To stop Kubernetes cluster running locally on minikube:
|
||||
```bash
|
||||
minikube stop
|
||||
```
|
||||
To delete the cluster altogether:
|
||||
```bash
|
||||
minikube delete
|
||||
```
|
||||
|
||||
## Build and run with a remote Kubernetes cluster
|
||||
|
||||
You can also run the controller locally and make it listen to a remote Kubernetes server.
|
||||
|
|
@ -282,6 +292,18 @@ kubectl get secret jenkins-operator-credentials-<cr_name> -o 'jsonpath={.data.us
|
|||
kubectl get secret jenkins-operator-credentials-<cr_name> -o 'jsonpath={.data.password}' | base64 -d
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
## Self-learning
|
||||
|
||||
* [Tutorial: Deep Dive into the Operator Framework for... Melvin Hillsman, Michael Hrivnak, & Matt Dorn
|
||||
](https://www.youtube.com/watch?v=8_DaCcRMp5I)
|
||||
|
||||
* [Operator Framework Training By OpenShift](https://www.katacoda.com/openshift/courses/operatorframework)
|
||||
|
||||
* [Operator SDK Tutorial for Go](https://sdk.operatorframework.io/docs/building-operators/golang/tutorial/)
|
||||
|
||||
[dep_tool]:https://golang.github.io/dep/docs/installation.html
|
||||
[git_tool]:https://git-scm.com/downloads
|
||||
[go_tool]:https://golang.org/dl/
|
||||
|
|
@ -293,9 +315,3 @@ kubectl get secret jenkins-operator-credentials-<cr_name> -o 'jsonpath={.data.pa
|
|||
[virtualbox]:https://www.virtualbox.org/wiki/Downloads
|
||||
[install_dev_tools]:https://jenkinsci.github.io/kubernetes-operator/docs/developer-guide/tools/
|
||||
|
||||
## Self-learning
|
||||
|
||||
* [Tutorial: Deep Dive into the Operator Framework for... Melvin Hillsman, Michael Hrivnak, & Matt Dorn
|
||||
](https://www.youtube.com/watch?v=8_DaCcRMp5I)
|
||||
|
||||
* [Operator Framework Training By OpenShift](https://www.katacoda.com/openshift/courses/operatorframework)
|
||||
|
|
|
|||
|
|
@ -163,7 +163,7 @@ spec:
|
|||
targets: "cicd/jobs/*.jenkins"
|
||||
description: "Jenkins Operator repository"
|
||||
repositoryBranch: master
|
||||
repositoryUrl: ssh://git@github.com:jenkinsci/kubernetes-operator.git
|
||||
repositoryUrl: git@github.com:jenkinsci/kubernetes-operator.git
|
||||
```
|
||||
|
||||
and create a Kubernetes Secret (name of secret should be the same from `credentialID` field):
|
||||
|
|
|
|||
|
|
@ -7,6 +7,10 @@ description: >
|
|||
Prevent loss of job history
|
||||
---
|
||||
|
||||
> Because of Jenkins Operator's architecture, the configuration of Jenkins should be done using ConfigurationAsCode
|
||||
> or GroovyScripts and jobs should be defined as SeedJobs. It means that there is no point in backing up any job configuration
|
||||
> up. Therefore, the backup script makes a copy of jobs history only.
|
||||
|
||||
Backup and restore is done by a container sidecar.
|
||||
|
||||
### PVC
|
||||
|
|
@ -77,7 +81,7 @@ spec:
|
|||
getLatestAction:
|
||||
exec:
|
||||
command:
|
||||
- /home/user/bin/get-latest.sh # this command is invoked on "backup" container to get last backup number before pod deletion. If you don't omit it in CR, you can lose data
|
||||
- /home/user/bin/get-latest.sh # this command is invoked on "backup" container to get last backup number before pod deletion; not having it in the CR may cause loss of data
|
||||
interval: 30 # how often make backup in seconds
|
||||
makeBackupBeforePodDeletion: true # make a backup before pod deletion
|
||||
restore:
|
||||
|
|
|
|||
|
|
@ -13,13 +13,14 @@ Plugin's configuration is applied as groovy scripts or the [configuration as cod
|
|||
Any plugin working for Jenkins can be installed by the Jenkins Operator.
|
||||
|
||||
Pre-installed plugins:
|
||||
* configuration-as-code v1.47
|
||||
* git v4.5.0
|
||||
|
||||
* configuration-as-code v1.51
|
||||
* git v4.7.2
|
||||
* job-dsl v1.77
|
||||
* kubernetes-credentials-provider v0.15
|
||||
* kubernetes v1.29.0
|
||||
* kubernetes-credentials-provider v0.18-1
|
||||
* kubernetes v1.30.0
|
||||
* workflow-aggregator v2.6
|
||||
* workflow-job v2.40
|
||||
* workflow-job v2.41
|
||||
|
||||
Rest of the plugins can be found in [plugins repository](https://plugins.jenkins.io/).
|
||||
|
||||
|
|
@ -51,19 +52,19 @@ spec:
|
|||
master:
|
||||
basePlugins:
|
||||
- name: kubernetes
|
||||
version: "1.28.6"
|
||||
version: "1.30.0"
|
||||
- name: workflow-job
|
||||
version: "2.40"
|
||||
- name: workflow-aggregator
|
||||
version: "2.6"
|
||||
- name: git
|
||||
version: "4.5.0"
|
||||
version: "4.7.2"
|
||||
- name: job-dsl
|
||||
version: "1.77"
|
||||
- name: configuration-as-code
|
||||
version: "1.46"
|
||||
version: "1.51"
|
||||
- name: kubernetes-credentials-provider
|
||||
version: "0.15"
|
||||
version: "0.18-1"
|
||||
```
|
||||
|
||||
You can change their versions.
|
||||
|
|
|
|||
|
|
@ -661,7 +661,12 @@ Values defined by an Env with a duplicate key will take precedence.</p>
|
|||
</td>
|
||||
<td>
|
||||
<em>(Optional)</em>
|
||||
<p>Pod volumes to mount into the container’s filesystem.</p>
|
||||
<p>
|
||||
Pod volumes to mount into the container’s filesystem. More info:
|
||||
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/installation/#note-on-restricted-jenkins-controller-pod-volumemounts">
|
||||
https://jenkinsci.github.io/kubernetes-operator/docs/installation/#note-on-restricted-jenkins-controller-pod-volumemounts
|
||||
</a>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
|
|
|||
|
|
@ -85,6 +85,6 @@ spec:
|
|||
getLatestAction:
|
||||
exec:
|
||||
command:
|
||||
- /home/user/bin/get-latest.sh # this command is invoked on "backup" container to get last backup number before pod deletion. If you don't omit it in CR, you can lose data
|
||||
- /home/user/bin/get-latest.sh # this command is invoked on "backup" container to get last backup number before pod deletion; not having it in the CR may cause loss of data
|
||||
#recoveryOnce: <backup_number> # if want to restore specific backup configure this field and then Jenkins will be restarted and desired backup will be restored
|
||||
```
|
||||
|
|
|
|||
|
|
@ -2,24 +2,25 @@
|
|||
title: "Installation"
|
||||
linkTitle: "Installation"
|
||||
weight: 1
|
||||
date: 2020-10-05
|
||||
date: 2021-07-30
|
||||
description: >
|
||||
How to install Jenkins Operator
|
||||
---
|
||||
|
||||
{{% pageinfo %}}
|
||||
This document describes installation procedure for **Jenkins Operator**.
|
||||
All container images can be found at [virtuslab/jenkins-operator](https://hub.docker.com/r/virtuslab/jenkins-operator)
|
||||
All container images can be found at [virtuslab/jenkins-operator](https://hub.docker.com/r/virtuslab/jenkins-operator) Docker Hub repository.
|
||||
{{% /pageinfo %}}
|
||||
|
||||
## Requirements
|
||||
|
||||
To run **Jenkins Operator**, you will need:
|
||||
|
||||
- access to a Kubernetes cluster version `1.17+`
|
||||
- `kubectl` version `1.17+`
|
||||
|
||||
|
||||
Listed below are the two ways to deploy Jenkins Operator. For details on how to customize your Jenkins instance, refer to [Getting Started](/kubernetes-operator/docs/installation/)
|
||||
Listed below are the two ways to deploy Jenkins Operator. For details on how to customize your Jenkins instance, refer to [Getting Started](/kubernetes-operator/docs/installation/).
|
||||
|
||||
## Deploy Jenkins Operator using YAML's
|
||||
|
||||
|
|
@ -877,3 +878,24 @@ Example:<br />
|
|||
</tbody>
|
||||
</table>
|
||||
|
||||
## Note on Operator's nightly built images
|
||||
If you wish to use the newest, not yet released version of the Operator, you can use one of nightly built snapshot images, however the maintainers of this project cannot guarantee their stability.
|
||||
|
||||
You can find nightly built images by heading to [virtuslab/jenkins-operator](https://hub.docker.com/r/virtuslab/jenkins-operator) Docker Hub repository and looking for images with tag in the form of "{git-hash}", {git-hash} being the hash of master branch commit that you want to use snapshot of.
|
||||
|
||||
## Note on restricted Jenkins controller pod volumeMounts
|
||||
Current design of the Operator puts an emphasis on creating a full GitOps flow of work for Jenkins users.
|
||||
One of the key points of this design is maintaining an immutable state of Jenkins.
|
||||
|
||||
One of the prerequisites of this is an ephemeral Jenkins home directory. To achieve that, Operator mounts emptyDir Volume
|
||||
(jenkins-home) as Jenkins home directory.
|
||||
It is not possible to overwrite volumeMount and specify any other Volume for Jenkins home directory,
|
||||
as attempting to do so will result in Operator error.
|
||||
|
||||
jenkins-home is not the only Jenkins controller pod volumeMount that is non-configurable and managed by Operator,
|
||||
below is the full list of those volumeMounts:
|
||||
|
||||
* jenkins-home
|
||||
* scripts
|
||||
* init-configuration
|
||||
* operator-credentials
|
||||
|
|
@ -288,16 +288,16 @@
|
|||
}
|
||||
},
|
||||
"browserslist": {
|
||||
"version": "4.16.6",
|
||||
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz",
|
||||
"integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==",
|
||||
"version": "4.16.7",
|
||||
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.7.tgz",
|
||||
"integrity": "sha512-7I4qVwqZltJ7j37wObBe3SoTz+nS8APaNcrBOlgoirb6/HbEU2XxW/LpUDTCngM6iauwFqmRTuOMfyKnFGY5JA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"caniuse-lite": "^1.0.30001219",
|
||||
"caniuse-lite": "^1.0.30001248",
|
||||
"colorette": "^1.2.2",
|
||||
"electron-to-chromium": "^1.3.723",
|
||||
"electron-to-chromium": "^1.3.793",
|
||||
"escalade": "^3.1.1",
|
||||
"node-releases": "^1.1.71"
|
||||
"node-releases": "^1.1.73"
|
||||
}
|
||||
},
|
||||
"cache-base": {
|
||||
|
|
@ -330,9 +330,9 @@
|
|||
"dev": true
|
||||
},
|
||||
"caniuse-lite": {
|
||||
"version": "1.0.30001237",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001237.tgz",
|
||||
"integrity": "sha512-pDHgRndit6p1NR2GhzMbQ6CkRrp4VKuSsqbcLeOQppYPKOYkKT/6ZvZDvKJUqcmtyWIAHuZq3SVS2vc1egCZzw==",
|
||||
"version": "1.0.30001249",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001249.tgz",
|
||||
"integrity": "sha512-vcX4U8lwVXPdqzPWi6cAJ3FnQaqXbBqy/GZseKNQzRj37J7qZdGcBtxq/QLFNLLlfsoXLUdHw8Iwenri86Tagw==",
|
||||
"dev": true
|
||||
},
|
||||
"chalk": {
|
||||
|
|
@ -568,9 +568,9 @@
|
|||
}
|
||||
},
|
||||
"electron-to-chromium": {
|
||||
"version": "1.3.752",
|
||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.752.tgz",
|
||||
"integrity": "sha512-2Tg+7jSl3oPxgsBsWKh5H83QazTkmWG/cnNwJplmyZc7KcN61+I10oUgaXSVk/NwfvN3BdkKDR4FYuRBQQ2v0A==",
|
||||
"version": "1.3.798",
|
||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.798.tgz",
|
||||
"integrity": "sha512-fwsr6oXAORoV9a6Ak2vMCdXfmHIpAGgpOGesulS1cbGgJmrMl3H+GicUyRG3t+z9uHTMrIuMTleFDW+EUFYT3g==",
|
||||
"dev": true
|
||||
},
|
||||
"end-of-stream": {
|
||||
|
|
@ -925,9 +925,9 @@
|
|||
}
|
||||
},
|
||||
"graceful-fs": {
|
||||
"version": "4.2.6",
|
||||
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz",
|
||||
"integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==",
|
||||
"version": "4.2.8",
|
||||
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz",
|
||||
"integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==",
|
||||
"dev": true
|
||||
},
|
||||
"has-flag": {
|
||||
|
|
@ -1338,9 +1338,9 @@
|
|||
"dev": true
|
||||
},
|
||||
"nan": {
|
||||
"version": "2.14.2",
|
||||
"resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz",
|
||||
"integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==",
|
||||
"version": "2.15.0",
|
||||
"resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz",
|
||||
"integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
|
|
|
|||
Loading…
Reference in New Issue