3671 lines
263 KiB
XML
3671 lines
263 KiB
XML
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||
<channel>
|
||
<title>Jenkins Operator – Latest (v0.6.x)</title>
|
||
<link>https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/</link>
|
||
<description>Recent Hugo news from gohugo.io</description>
|
||
<generator>Hugo -- gohugo.io</generator>
|
||
<lastBuildDate>Mon, 18 Jan 2021 00:00:00 +0000</lastBuildDate>
|
||
<image>
|
||
<url>https://jenkinsci.github.io/kubernetes-operator/img/hugo.png</url>
|
||
<title>GoHugo.io</title>
|
||
<link>https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/</link>
|
||
</image>
|
||
|
||
<atom:link href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/index.xml" rel="self" type="application/rss+xml" />
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<item>
|
||
<title>Docs: Deploy Jenkins</title>
|
||
<link>https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/deploy-jenkins/</link>
|
||
<pubDate>Mon, 25 Jan 2021 00:00:00 +0000</pubDate>
|
||
|
||
<guid>https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/deploy-jenkins/</guid>
|
||
<description>
|
||
|
||
|
||
<p>Once Jenkins Operator is up and running let&rsquo;s deploy actual Jenkins instance.
|
||
Create manifest e.g. <strong><code>jenkins_instance.yaml</code></strong> with following data and save it on drive.</p>
|
||
<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-yaml" data-lang="yaml">apiVersion<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>jenkins.io/v1alpha2<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"></span>kind<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>Jenkins<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"></span>metadata<span style="color:#000;font-weight:bold">:</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>example<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>namespace<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>default<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"></span>spec<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>configurationAsCode<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>configurations<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">[</span><span style="color:#000;font-weight:bold">]</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>secret<span style="color:#000;font-weight:bold">:</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><span style="color:#4e9a06">&#34;&#34;</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>groovyScripts<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>configurations<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">[</span><span style="color:#000;font-weight:bold">]</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>secret<span style="color:#000;font-weight:bold">:</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><span style="color:#4e9a06">&#34;&#34;</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>jenkinsAPISettings<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>authorizationStrategy<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>createUser<span style="color:#f8f8f8;text-decoration:underline">
|
||
</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>disableCSRFProtection<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">false</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>containers<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>jenkins-master<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>image<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>jenkins/jenkins<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">2.277</span><span style="color:#0000cf;font-weight:bold">.4</span>-lts-alpine<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>imagePullPolicy<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>Always<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>livenessProbe<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>failureThreshold<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">12</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>httpGet<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>path<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>/login<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>port<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>http<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>scheme<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>HTTP<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>initialDelaySeconds<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">100</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>periodSeconds<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">10</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>successThreshold<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">1</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>timeoutSeconds<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">5</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>readinessProbe<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>failureThreshold<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">10</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>httpGet<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>path<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>/login<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>port<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>http<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>scheme<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>HTTP<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>initialDelaySeconds<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">80</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>periodSeconds<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">10</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>successThreshold<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">1</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>timeoutSeconds<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">1</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>resources<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>limits<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>cpu<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>1500m<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>memory<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>3Gi<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>requests<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>cpu<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;1&#34;</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>memory<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>500Mi<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>seedJobs<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>id<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>jenkins-operator<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>targets<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;cicd/jobs/*.jenkins&#34;</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>description<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;Jenkins Operator repository&#34;</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>repositoryBranch<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>master<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>repositoryUrl<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>https<span style="color:#000;font-weight:bold">:</span>//github.com/jenkinsci/kubernetes-operator.git</code></pre></div>
|
||
<p>Deploy a Jenkins to Kubernetes:</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">kubectl create -f jenkins_instance.yaml</code></pre></div>
|
||
<p>Watch the Jenkins instance being created:</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">kubectl get pods -w</code></pre></div>
|
||
<p>Get the Jenkins credentials:</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">kubectl get secret jenkins-operator-credentials-&lt;cr_name&gt; -o <span style="color:#4e9a06">&#39;jsonpath={.data.user}&#39;</span> <span style="color:#000;font-weight:bold">|</span> base64 -d
|
||
kubectl get secret jenkins-operator-credentials-&lt;cr_name&gt; -o <span style="color:#4e9a06">&#39;jsonpath={.data.password}&#39;</span> <span style="color:#000;font-weight:bold">|</span> base64 -d</code></pre></div>
|
||
<p>Connect to the Jenkins instance (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 service jenkins-operator-http-&lt;cr_name&gt; --url</code></pre></div>
|
||
<p>Connect to the Jenkins instance (actual Kubernetes cluster):</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">kubectl port-forward jenkins-&lt;cr_name&gt; 8080:8080</code></pre></div>
|
||
<p>Then open browser with address <code>http://localhost:8080</code>.</p>
|
||
|
||
<p><img src="https://jenkinsci.github.io/kubernetes-operator/kubernetes-operator/img/jenkins.png" alt="jenkins" /></p>
|
||
|
||
</description>
|
||
</item>
|
||
|
||
<item>
|
||
<title>Docs: Configuration</title>
|
||
<link>https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/configuration/</link>
|
||
<pubDate>Mon, 25 Jan 2021 00:00:00 +0000</pubDate>
|
||
|
||
<guid>https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/configuration/</guid>
|
||
<description>
|
||
|
||
|
||
|
||
|
||
<h2 id="configure-seed-jobs-and-pipelines">Configure Seed Jobs and Pipelines</h2>
|
||
|
||
<p>Jenkins operator uses <a href="https://github.com/jenkinsci/job-dsl-plugin">job-dsl</a> and <a href="https://jenkinsci.github.io/kubernetes-credentials-provider-plugin/">kubernetes-credentials-provider</a> plugins for configuring jobs
|
||
and deploy keys.</p>
|
||
|
||
<h2 id="prepare-job-definitions-and-pipelines">Prepare job definitions and pipelines</h2>
|
||
|
||
<p>First you have to prepare pipelines and job definition in your GitHub repository using the following structure:</p>
|
||
<pre><code>cicd/
|
||
├── jobs
|
||
│ └── k8s.jenkins
|
||
└── pipelines
|
||
└── k8s.jenkins</code></pre>
|
||
<p><strong><code>cicd/jobs/k8s.jenkins</code></strong> is a job definition:</p>
|
||
<pre><code>#!/usr/bin/env groovy
|
||
|
||
pipelineJob('k8s-e2e') {
|
||
displayName('Kubernetes Plugin E2E Test')
|
||
|
||
logRotator {
|
||
numToKeep(10)
|
||
daysToKeep(30)
|
||
}
|
||
|
||
configure { project ->
|
||
project / 'properties' / 'org.jenkinsci.plugins.workflow.job.properties.DurabilityHintJobProperty' {
|
||
hint('PERFORMANCE_OPTIMIZED')
|
||
}
|
||
}
|
||
|
||
definition {
|
||
cpsScm {
|
||
scm {
|
||
git {
|
||
remote {
|
||
url('https://github.com/jenkinsci/kubernetes-operator.git')
|
||
credentials('jenkins-operator')
|
||
}
|
||
branches('*/master')
|
||
}
|
||
}
|
||
scriptPath('cicd/pipelines/k8s.jenkins')
|
||
}
|
||
}
|
||
}</code></pre>
|
||
<p><strong><code>cicd/pipelines/k8s.jenkins</code></strong> is an actual Jenkins pipeline:</p>
|
||
<pre><code>#!/usr/bin/env groovy
|
||
|
||
def label = "k8s-${UUID.randomUUID().toString()}"
|
||
def home = "/home/jenkins"
|
||
def workspace = "${home}/workspace/build-jenkins-operator"
|
||
def workdir = "${workspace}/src/github.com/jenkinsci/kubernetes-operator/"
|
||
|
||
podTemplate(label: label,
|
||
containers: [
|
||
containerTemplate(name: 'alpine', image: 'alpine:3.11', ttyEnabled: true, command: 'cat'),
|
||
],
|
||
) {
|
||
node(label) {
|
||
stage('Run shell') {
|
||
container('alpine') {
|
||
sh 'echo "hello world"'
|
||
}
|
||
}
|
||
}
|
||
}</code></pre>
|
||
<h2 id="configure-seed-jobs">Configure Seed Jobs</h2>
|
||
|
||
<p>Jenkins Seed Jobs are configured using <code>Jenkins.spec.seedJobs</code> section from your custom resource manifest:</p>
|
||
<pre><code>apiVersion: jenkins.io/v1alpha2
|
||
kind: Jenkins
|
||
metadata:
|
||
name: example
|
||
spec:
|
||
seedJobs:
|
||
- id: jenkins-operator
|
||
targets: "cicd/jobs/*.jenkins"
|
||
description: "Jenkins Operator repository"
|
||
repositoryBranch: master
|
||
repositoryUrl: https://github.com/jenkinsci/kubernetes-operator.git</code></pre>
|
||
<p><strong>Jenkins Operator</strong> will automatically discover and configure all the seed jobs.</p>
|
||
|
||
<p>You can verify if deploy keys were successfully configured in the Jenkins <strong>Credentials</strong> tab.</p>
|
||
|
||
<p><img src="https://jenkinsci.github.io/kubernetes-operator/kubernetes-operator/img/jenkins-credentials.png" alt="jenkins" /></p>
|
||
|
||
<p>You can verify if your pipelines were successfully configured in the Jenkins Seed Job console output.</p>
|
||
|
||
<p><img src="https://jenkinsci.github.io/kubernetes-operator/kubernetes-operator/img/jenkins-seed.png" alt="jenkins" /></p>
|
||
|
||
<p>If your GitHub repository is <strong>private</strong> you have to configure SSH or username/password authentication.</p>
|
||
|
||
<h3 id="ssh-authentication">SSH authentication</h3>
|
||
|
||
<h4 id="generate-ssh-keys">Generate SSH Keys</h4>
|
||
|
||
<p>There are two methods of SSH private key generation:</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">$ openssl genrsa -out &lt;filename&gt; <span style="color:#0000cf;font-weight:bold">2048</span></code></pre></div>
|
||
<p>or</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">$ ssh-keygen -t rsa -b <span style="color:#0000cf;font-weight:bold">2048</span>
|
||
$ ssh-keygen -p -f &lt;filename&gt; -m pem</code></pre></div>
|
||
<p>Then copy content from generated file.</p>
|
||
|
||
<h4 id="public-key">Public key</h4>
|
||
|
||
<p>If you want to upload your public key to your Git server you need to extract it.</p>
|
||
|
||
<p>If key was generated by <code>openssl</code> then you need to type this to extract public key:</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">$ openssl rsa -in &lt;filename&gt; -pubout &gt; &lt;filename&gt;.pub</code></pre></div>
|
||
<p>If key was generated by <code>ssh-keygen</code> the public key content is located in <filename>.pub and there is no need to extract public key</p>
|
||
|
||
<h4 id="configure-ssh-authentication">Configure SSH authentication</h4>
|
||
|
||
<p>Configure a seed job like this:</p>
|
||
<pre><code>apiVersion: jenkins.io/v1alpha2
|
||
kind: Jenkins
|
||
metadata:
|
||
name: example
|
||
spec:
|
||
seedJobs:
|
||
- id: jenkins-operator-ssh
|
||
credentialType: basicSSHUserPrivateKey
|
||
credentialID: k8s-ssh
|
||
targets: "cicd/jobs/*.jenkins"
|
||
description: "Jenkins Operator repository"
|
||
repositoryBranch: master
|
||
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
|
||
metadata:
|
||
name: k8s-ssh
|
||
labels:
|
||
"jenkins.io/credentials-type": "basicSSHUserPrivateKey"
|
||
annotations:
|
||
"jenkins.io/credentials-description" : "ssh github.com:jenkinsci/kubernetes-operator"
|
||
stringData:
|
||
privateKey: |
|
||
-----BEGIN RSA PRIVATE KEY-----
|
||
MIIJKAIBAAKCAgEAxxDpleJjMCN5nusfW/AtBAZhx8UVVlhhhIKXvQ+dFODQIdzO
|
||
oDXybs1zVHWOj31zqbbJnsfsVZ9Uf3p9k6xpJ3WFY9b85WasqTDN1xmSd6swD4N8
|
||
...
|
||
username: github_user_name</code></pre>
|
||
<h3 id="username-password-authentication">Username &amp; password authentication</h3>
|
||
|
||
<p>Configure the seed job like:</p>
|
||
<pre><code>apiVersion: jenkins.io/v1alpha2
|
||
kind: Jenkins
|
||
metadata:
|
||
name: example
|
||
spec:
|
||
seedJobs:
|
||
- id: jenkins-operator-user-pass
|
||
credentialType: usernamePassword
|
||
credentialID: k8s-user-pass
|
||
targets: "cicd/jobs/*.jenkins"
|
||
description: "Jenkins Operator repository"
|
||
repositoryBranch: master
|
||
repositoryUrl: https://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
|
||
metadata:
|
||
name: k8s-user-pass
|
||
stringData:
|
||
username: github_user_name
|
||
password: password_or_token</code></pre>
|
||
<h3 id="external-authentication">External authentication</h3>
|
||
|
||
<p>You can use <code>external</code> credential type if you want to configure authentication using Configuration As Code or Groovy Script.</p>
|
||
|
||
<p>Example:</p>
|
||
<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-yaml" data-lang="yaml">apiVersion<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>jenkins.io/v1alpha2<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"></span>kind<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>Jenkins<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"></span>metadata<span style="color:#000;font-weight:bold">:</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>example<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"></span>spec<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>seedJobs<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>id<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>jenkins-operator-external<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>credentialType<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>external<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>credentialID<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>k8s-external<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>targets<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;cicd/jobs/*.jenkins&#34;</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>description<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;Jenkins Operator repository&#34;</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>repositoryBranch<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>master<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>repositoryUrl<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>https<span style="color:#000;font-weight:bold">:</span>//github.com/jenkinsci/kubernetes-operator.git</code></pre></div>
|
||
<p>Remember that <code>credentialID</code> must match the id of the credentials configured in Jenkins. Consult the
|
||
<a href="https://www.jenkins.io/doc/book/using/using-credentials/">Jenkins docs for using credentials</a> for details.</p>
|
||
|
||
<h2 id="http-proxy-for-downloading-plugins">HTTP Proxy for downloading plugins</h2>
|
||
|
||
<p>To use forwarding proxy with an operator to download plugins you need to add the following environment variable to Jenkins Custom Resource (CR), e.g.:</p>
|
||
<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-yaml" data-lang="yaml">spec<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</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>containers<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>jenkins-master<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>env<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>CURL_OPTIONS<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>value<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-L<span style="color:#f8f8f8;text-decoration:underline"> </span>-x<span style="color:#f8f8f8;text-decoration:underline"> </span>&lt;proxy_url&gt;</code></pre></div>
|
||
<p>In <code>CURL_OPTIONS</code> var you can set additional arguments to <code>curl</code> command.</p>
|
||
|
||
<h2 id="pulling-docker-images-from-private-repositories">Pulling Docker images from private repositories</h2>
|
||
|
||
<p>To pull a Docker Image from private repository you can use <code>imagePullSecrets</code>.</p>
|
||
|
||
<p>Please follow the instructions on <a href="https://kubernetes.io/docs/concepts/containers/images/?origin_team=T42NTAGHM#creating-a-secret-with-a-docker-config">creating a secret with a docker config</a>.</p>
|
||
|
||
<h3 id="docker-hub-configuration">Docker Hub Configuration</h3>
|
||
|
||
<p>To use Docker Hub additional steps are required.</p>
|
||
|
||
<p>Edit the previously created secret:</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">kubectl -n &lt;namespace&gt; edit secret &lt;name&gt;</code></pre></div>
|
||
<p>The <code>.dockerconfigjson</code> key&rsquo;s value needs to be replaced with a modified version.</p>
|
||
|
||
<p>After modifications, it needs to be encoded as a Base64 value before setting the <code>.dockerconfigjson</code> key.</p>
|
||
|
||
<p>Example config file to modify and use:</p>
|
||
<pre><code>{
|
||
"auths":{
|
||
"https://index.docker.io/v1/":{
|
||
"username":"user",
|
||
"password":"password",
|
||
"email":"yourdockeremail@gmail.com",
|
||
"auth":"base64 of string user:password"
|
||
},
|
||
"auth.docker.io":{
|
||
"username":"user",
|
||
"password":"password",
|
||
"email":"yourdockeremail@gmail.com",
|
||
"auth":"base64 of string user:password"
|
||
},
|
||
"registry.docker.io":{
|
||
"username":"user",
|
||
"password":"password",
|
||
"email":"yourdockeremail@gmail.com",
|
||
"auth":"base64 of string user:password"
|
||
},
|
||
"docker.io":{
|
||
"username":"user",
|
||
"password":"password",
|
||
"email":"yourdockeremail@gmail.com",
|
||
"auth":"base64 of string user:password"
|
||
},
|
||
"https://registry-1.docker.io/v2/": {
|
||
"username":"user",
|
||
"password":"password",
|
||
"email":"yourdockeremail@gmail.com",
|
||
"auth":"base64 of string user:password"
|
||
},
|
||
"registry-1.docker.io/v2/": {
|
||
"username":"user",
|
||
"password":"password",
|
||
"email":"yourdockeremail@gmail.com",
|
||
"auth":"base64 of string user:password"
|
||
},
|
||
"registry-1.docker.io": {
|
||
"username":"user",
|
||
"password":"password",
|
||
"email":"yourdockeremail@gmail.com",
|
||
"auth":"base64 of string user:password"
|
||
},
|
||
"https://registry-1.docker.io": {
|
||
"username":"user",
|
||
"password":"password",
|
||
"email":"yourdockeremail@gmail.com",
|
||
"auth":"base64 of string user:password"
|
||
}
|
||
}
|
||
}</code></pre>
|
||
</description>
|
||
</item>
|
||
|
||
<item>
|
||
<title>Docs: Customization</title>
|
||
<link>https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/customization/</link>
|
||
<pubDate>Mon, 25 Jan 2021 00:00:00 +0000</pubDate>
|
||
|
||
<guid>https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/customization/</guid>
|
||
<description>
|
||
|
||
|
||
|
||
|
||
<h2 id="how-to-customize-jenkins">How to customize Jenkins</h2>
|
||
|
||
<p>Jenkins can be customized with plugins.
|
||
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:</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>
|
||
|
||
<h4 id="install-plugins">Install plugins</h4>
|
||
|
||
<p>Edit Custom Resource under <code>spec.master.plugins</code>:</p>
|
||
<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-yaml" data-lang="yaml">apiVersion<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>jenkins.io/v1alpha2<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"></span>kind<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>Jenkins<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"></span>metadata<span style="color:#000;font-weight:bold">:</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>example<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"></span>spec<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</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>plugins<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>simple-theme-plugin<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.6&#34;</span></code></pre></div>
|
||
<p>Under <code>spec.master.basePlugins</code> you can find plugins for a valid <strong>Jenkins Operator</strong>:</p>
|
||
<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-yaml" data-lang="yaml">apiVersion<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>jenkins.io/v1alpha2<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"></span>kind<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>Jenkins<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"></span>metadata<span style="color:#000;font-weight:bold">:</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>example<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"></span>spec<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</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.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.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.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.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>
|
||
|
||
<h4 id="apply-plugin-s-config">Apply plugin&rsquo;s config</h4>
|
||
|
||
<p>By using a <a href="https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/">ConfigMap</a> you can create your own <strong>Jenkins</strong> customized configuration.
|
||
Then you must reference the <strong><code>ConfigMap</code></strong> in the <strong>Jenkins</strong> pod customization file in <code>spec.groovyScripts</code> or <code>spec.configurationAsCode</code></p>
|
||
|
||
<p>Create a <strong><code>ConfigMap</code></strong> with specific name (eg. <code>jenkins-operator-user-configuration</code>). Then, modify the <strong>Jenkins</strong> manifest:</p>
|
||
<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-yaml" data-lang="yaml">apiVersion<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>jenkins.io/v1alpha2<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"></span>kind<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>Jenkins<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"></span>metadata<span style="color:#000;font-weight:bold">:</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>example<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"></span>spec<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>configurationAsCode<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>configurations<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>jenkins-operator-user-configuration<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>groovyScripts<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>configurations<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>jenkins-operator-user-configuration</code></pre></div>
|
||
<p>Here is an example of <code>jenkins-operator-user-configuration</code>:</p>
|
||
<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-yaml" data-lang="yaml">apiVersion<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>v1<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"></span>kind<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>ConfigMap<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"></span>metadata<span style="color:#000;font-weight:bold">:</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>jenkins-operator-user-configuration<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"></span>data<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:#0000cf;font-weight:bold">1</span>-configure-theme.groovy<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic">|
|
||
</span><span style="color:#8f5902;font-style:italic"> </span><span style="color:#8f5902;font-style:italic"> </span><span style="color:#8f5902;font-style:italic">import jenkins.*</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>import<span style="color:#f8f8f8;text-decoration:underline"> </span>jenkins.model.*<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>import<span style="color:#f8f8f8;text-decoration:underline"> </span>hudson.*<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>import<span style="color:#f8f8f8;text-decoration:underline"> </span>hudson.model.*<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>import<span style="color:#f8f8f8;text-decoration:underline"> </span>org.jenkinsci.plugins.simpletheme.ThemeElement<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>import<span style="color:#f8f8f8;text-decoration:underline"> </span>org.jenkinsci.plugins.simpletheme.CssTextThemeElement<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>import<span style="color:#f8f8f8;text-decoration:underline"> </span>org.jenkinsci.plugins.simpletheme.CssUrlThemeElement<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>Jenkins<span style="color:#f8f8f8;text-decoration:underline"> </span>jenkins<span style="color:#f8f8f8;text-decoration:underline"> </span>=<span style="color:#f8f8f8;text-decoration:underline"> </span>Jenkins.getInstance()<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>def<span style="color:#f8f8f8;text-decoration:underline"> </span>decorator<span style="color:#f8f8f8;text-decoration:underline"> </span>=<span style="color:#f8f8f8;text-decoration:underline"> </span>Jenkins.instance.getDescriptorByType(org.codefirst.SimpleThemeDecorator.class)<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>List&lt;ThemeElement&gt;<span style="color:#f8f8f8;text-decoration:underline"> </span>configElements<span style="color:#f8f8f8;text-decoration:underline"> </span>=<span style="color:#f8f8f8;text-decoration:underline"> </span>new<span style="color:#f8f8f8;text-decoration:underline"> </span>ArrayList&lt;&gt;();<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>configElements.add(new<span style="color:#f8f8f8;text-decoration:underline"> </span>CssTextThemeElement(<span style="color:#4e9a06">&#34;DEFAULT&#34;</span>));<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>configElements.add(new<span style="color:#f8f8f8;text-decoration:underline"> </span>CssUrlThemeElement(<span style="color:#4e9a06">&#34;https://cdn.rawgit.com/afonsof/jenkins-material-theme/gh-pages/dist/material-light-green.css&#34;</span>));<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>decorator.setElements(configElements);<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>decorator.save();<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>jenkins.save()<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">1</span>-system-message.yaml<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic">|
|
||
</span><span style="color:#8f5902;font-style:italic"> </span><span style="color:#8f5902;font-style:italic"> </span><span style="color:#8f5902;font-style:italic">jenkins:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>systemMessage<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;Configuration as Code integration works!!!&#34;</span></code></pre></div>
|
||
<ul>
|
||
<li><code>*.groovy</code> is Groovy script configuration</li>
|
||
<li><code>*.yaml is</code> configuration as code</li>
|
||
</ul>
|
||
|
||
<p>If you want to correct your configuration you can edit it while the <strong>Jenkins Operator</strong> is running.
|
||
Jenkins will reconcile and apply the new configuration.</p>
|
||
|
||
<h2 id="how-to-use-secrets-from-a-groovy-scripts">How to use secrets from a Groovy scripts</h2>
|
||
|
||
<p>If you configured <code>spec.groovyScripts.secret.name</code>, then this secret is available to use from map Groovy scripts.
|
||
The secrets are loaded to <code>secrets</code> map.</p>
|
||
|
||
<p>Create a <a href="https://kubernetes.io/docs/concepts/configuration/secret/">secret</a> with for example the name <code>jenkins-conf-secrets</code>.</p>
|
||
<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-yaml" data-lang="yaml">kind<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>Secret<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"></span>apiVersion<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>v1<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"></span>type<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>Opaque<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"></span>metadata<span style="color:#000;font-weight:bold">:</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>jenkins-conf-secrets<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>namespace<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>default<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"></span>data<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>SYSTEM_MESSAGE<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>SGVsbG8gd29ybGQ=</code></pre></div>
|
||
<p>Then modify the <strong>Jenkins</strong> pod manifest by changing <code>spec.groovyScripts.secret.name</code> to <code>jenkins-conf-secrets</code>.</p>
|
||
<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-yaml" data-lang="yaml">apiVersion<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>jenkins.io/v1alpha2<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"></span>kind<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>Jenkins<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"></span>metadata<span style="color:#000;font-weight:bold">:</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>example<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"></span>spec<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>configurationAsCode<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>configurations<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>jenkins-operator-user-configuration<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>secret<span style="color:#000;font-weight:bold">:</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>jenkins-conf-secrets<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>groovyScripts<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>configurations<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>jenkins-operator-user-configuration<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>secret<span style="color:#000;font-weight:bold">:</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>jenkins-conf-secrets</code></pre></div>
|
||
<p>Now you can test that the secret is mounted by applying this <code>ConfigMap</code> for Groovy script:</p>
|
||
<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-yaml" data-lang="yaml">apiVersion<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>v1<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"></span>kind<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>ConfigMap<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"></span>metadata<span style="color:#000;font-weight:bold">:</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>jenkins-operator-user-configuration<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"></span>data<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:#0000cf;font-weight:bold">1</span>-system-message.groovy<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic">|
|
||
</span><span style="color:#8f5902;font-style:italic"> </span><span style="color:#8f5902;font-style:italic"> </span><span style="color:#8f5902;font-style:italic">import jenkins.*</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>import<span style="color:#f8f8f8;text-decoration:underline"> </span>jenkins.model.*<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>import<span style="color:#f8f8f8;text-decoration:underline"> </span>hudson.*<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>import<span style="color:#f8f8f8;text-decoration:underline"> </span>hudson.model.*<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>Jenkins<span style="color:#f8f8f8;text-decoration:underline"> </span>jenkins<span style="color:#f8f8f8;text-decoration:underline"> </span>=<span style="color:#f8f8f8;text-decoration:underline"> </span>Jenkins.getInstance()<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>jenkins.setSystemMessage(secrets<span style="color:#000;font-weight:bold">[</span><span style="color:#4e9a06">&#34;SYSTEM_MESSAGE&#34;</span><span style="color:#000;font-weight:bold">]</span>)<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>jenkins.save()</code></pre></div>
|
||
<p>Or by applying this configuration as code:</p>
|
||
<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-yaml" data-lang="yaml">apiVersion<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>v1<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"></span>kind<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>ConfigMap<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"></span>metadata<span style="color:#000;font-weight:bold">:</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>jenkins-operator-user-configuration<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"></span>data<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:#0000cf;font-weight:bold">1</span>-system-message.yaml<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic">|
|
||
</span><span style="color:#8f5902;font-style:italic"> </span><span style="color:#8f5902;font-style:italic"> </span><span style="color:#8f5902;font-style:italic">jenkins:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>systemMessage<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>${SYSTEM_MESSAGE}</code></pre></div>
|
||
<p>After this, you should see the <code>Hello world</code> system message from the <strong>Jenkins</strong> homepage.</p>
|
||
|
||
</description>
|
||
</item>
|
||
|
||
<item>
|
||
<title>Docs: Configure backup and restore</title>
|
||
<link>https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/configure-backup-and-restore/</link>
|
||
<pubDate>Mon, 25 Jan 2021 00:00:00 +0000</pubDate>
|
||
|
||
<guid>https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/configure-backup-and-restore/</guid>
|
||
<description>
|
||
|
||
|
||
|
||
|
||
<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>
|
||
|
||
<h4 id="create-pvc">Create PVC</h4>
|
||
|
||
<p>Save to the file named pvc.yaml:</p>
|
||
<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-yaml" data-lang="yaml">apiVersion<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>v1<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"></span>kind<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>PersistentVolumeClaim<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"></span>metadata<span style="color:#000;font-weight:bold">:</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>&lt;pvc_name<span style="color:#8f5902;font-style:italic">&gt;
|
||
</span><span style="color:#8f5902;font-style:italic"> </span><span style="color:#8f5902;font-style:italic"> </span><span style="color:#8f5902;font-style:italic">namespace: &lt;namespace&gt;</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"></span>spec<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>accessModes<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>ReadWriteOnce<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>resources<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>requests<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>storage<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>500Gi</code></pre></div>
|
||
<p>Run the following command:</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">$ kubectl -n &lt;namespace&gt; create -f pvc.yaml</code></pre></div>
|
||
<h4 id="configure-jenkins-cr">Configure Jenkins CR</h4>
|
||
<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-yaml" data-lang="yaml">apiVersion<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>jenkins.io/v1alpha2<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"></span>kind<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>Jenkins<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"></span>metadata<span style="color:#000;font-weight:bold">:</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>&lt;cr_name<span style="color:#8f5902;font-style:italic">&gt;
|
||
</span><span style="color:#8f5902;font-style:italic"> </span><span style="color:#8f5902;font-style:italic"> </span><span style="color:#8f5902;font-style:italic">namespace: &lt;namespace&gt;</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"></span>spec<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</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>securityContext<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>runAsUser<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">1000</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>fsGroup<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">1000</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>containers<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>jenkins-master<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>image<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>jenkins/jenkins<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">2.277</span><span style="color:#0000cf;font-weight:bold">.4</span>-lts-alpine<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>backup<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic"># container responsible for the backup and restore</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>env<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>BACKUP_DIR<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>value<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>/backup<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>JENKINS_HOME<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>value<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>/jenkins-home<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>BACKUP_COUNT<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>value<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;3&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic"># keep only the 2 most recent backups</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>image<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>virtuslab/jenkins-operator-backup-pvc<span style="color:#000;font-weight:bold">:</span>v0<span style="color:#0000cf;font-weight:bold">.1</span><span style="color:#0000cf;font-weight:bold">.0</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic"># look at backup/pvc directory</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>imagePullPolicy<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>IfNotPresent<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>volumeMounts<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>mountPath<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>/jenkins-home<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic"># Jenkins home volume</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>jenkins-home<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>mountPath<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>/backup<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic"># backup volume</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>backup<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>volumes<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>backup<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic"># PVC volume where backups will be stored</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>persistentVolumeClaim<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>claimName<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>&lt;pvc_name<span style="color:#8f5902;font-style:italic">&gt;
|
||
</span><span style="color:#8f5902;font-style:italic"> </span><span style="color:#8f5902;font-style:italic"> </span><span style="color:#8f5902;font-style:italic">backup:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>containerName<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>backup<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic"># container name is responsible for backup</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>action<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/backup.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 make backup, for example /home/user/bin/backup.sh &lt;backup_number&gt;, &lt;backup_number&gt; is passed by operator</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</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; 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">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>containerName<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>backup<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic"># container name is responsible for restore backup</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>action<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/restore.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 make restore backup, for example /home/user/bin/restore.sh &lt;backup_number&gt;, &lt;backup_number&gt; is passed by operator</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>
|
||
|
||
<item>
|
||
<title>Docs: AKS</title>
|
||
<link>https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/aks/</link>
|
||
<pubDate>Mon, 18 Jan 2021 00:00:00 +0000</pubDate>
|
||
|
||
<guid>https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/aks/</guid>
|
||
<description>
|
||
|
||
|
||
<p>Azure AKS managed Kubernetes service adds to every pod the following environment variables:</p>
|
||
<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-yaml" data-lang="yaml">-<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_PORT_443_TCP_ADDR<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>value<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_PORT<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>value<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>tcp<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_PORT_443_TCP<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>value<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>tcp<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_SERVICE_HOST<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>value<span style="color:#000;font-weight:bold">:</span></code></pre></div>
|
||
<p>The operator is aware of it and omits these environment variables when checking if a Jenkins pod environment has been changed. It prevents the
|
||
restart of a Jenkins pod over and over again.</p>
|
||
|
||
</description>
|
||
</item>
|
||
|
||
<item>
|
||
<title>Docs: Custom Backup and Restore Providers</title>
|
||
<link>https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/custom-backup-and-restore/</link>
|
||
<pubDate>Mon, 18 Jan 2021 00:00:00 +0000</pubDate>
|
||
|
||
<guid>https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/custom-backup-and-restore/</guid>
|
||
<description>
|
||
|
||
|
||
|
||
|
||
<p>With enough effort one can create a custom backup and restore provider
|
||
for the Jenkins Operator.</p>
|
||
|
||
<h2 id="requirements">Requirements</h2>
|
||
|
||
<p>Two commands (e.g. scripts) are required:</p>
|
||
|
||
<ul>
|
||
<li>a backup command, e.g. <code>backup.sh</code> that takes one argument, a <strong>backup number</strong></li>
|
||
<li>a restore command, e.g. <code>backup.sh</code> that takes one argument, a <strong>backup number</strong></li>
|
||
</ul>
|
||
|
||
<p>Both scripts need to return an exit code of <code>0</code> on success and <code>1</code> or greater for failure.</p>
|
||
|
||
<p>One of those scripts (or the entry point of the container) needs to be responsible
|
||
for backup cleanup or rotation if required, or an external system.</p>
|
||
|
||
<h2 id="how-it-works">How it works</h2>
|
||
|
||
<p>The mechanism relies on basic Kubernetes and UNIX functionalities.</p>
|
||
|
||
<p>The backup (and restore) container runs as a sidecar in the same
|
||
Kubernetes pod as the Jenkins master.</p>
|
||
|
||
<p>Name of the backup and restore containers can be set as necessary using
|
||
<code>spec.backup.containerName</code> and <code>spec.restore.containerName</code>.
|
||
In most cases it will be the same container, but we allow for less common use cases.</p>
|
||
|
||
<p>The operator will call a backup or restore commands inside a sidecar container when necessary:</p>
|
||
|
||
<ul>
|
||
<li>backup command (defined in <code>spec.backup.action.exec.command</code>)
|
||
will be called every <code>N</code> seconds configurable in: <code>spec.backup.interval</code>
|
||
and on pod shutdown (if enabled in <code>spec.backup.makeBackupBeforePodDeletion</code>)
|
||
with an integer representing the current backup number as first and only argument</li>
|
||
<li>restore command (defined in <code>spec.restore.action.exec.command</code>)
|
||
will be called at Jenkins startup
|
||
with an integer representing the backup number to restore as first and only argument
|
||
(can be overridden using <code>spec.restore.recoveryOnce</code>)</li>
|
||
</ul>
|
||
|
||
<h2 id="example-aws-s3-backup-using-the-cli">Example AWS S3 backup using the CLI</h2>
|
||
|
||
<p>This example shows abbreviated version of a simple AWS S3 backup implementation
|
||
using: <code>aws-cli</code>, <code>bash</code> and <code>kube2iam</code>.</p>
|
||
|
||
<p>In addition to your normal <code>Jenkins</code> <code>CustomResource</code> some additional settings
|
||
for backup and restore are required, e.g.:</p>
|
||
<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-yaml" data-lang="yaml">kind<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>Jenkins<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"></span>apiVersion<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>jenkins.io/v1alpha1<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"></span>metadata<span style="color:#000;font-weight:bold">:</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>example<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>namespace<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>jenkins<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"></span>spec<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</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>masterAnnotations<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>iam.amazonaws.com/role<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;my-example-backup-role&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic"># tell kube2iam where the AWS IAM role is</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>containers<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>jenkins-master<span style="color:#f8f8f8;text-decoration:underline">
|
||
</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>-<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>backup<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic"># container responsible for backup and restore</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>image<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>quay.io/virtuslab/aws-cli<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">1.16</span><span style="color:#0000cf;font-weight:bold">.263</span><span style="color:#0000cf;font-weight:bold">-2</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>workingDir<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>/home/user/bin/<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:#8f5902;font-style:italic"># our container entry point</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>sleep<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>infinity<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>env<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>BACKUP_BUCKET<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>value<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>my-example-bucket<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic"># the S3 bucket name to use</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>BACKUP_PATH<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>value<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>my-backup-path<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic"># the S3 bucket path prefix to use</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>JENKINS_HOME<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>value<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>/jenkins-home<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic"># the path to mount jenkins home dir in the backup container</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>volumeMounts<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>mountPath<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>/jenkins-home<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic"># Jenkins home volume</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>jenkins-home<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>mountPath<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>/home/user/bin/backup.sh<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>backup-scripts<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>subPath<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>backup.sh<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>readOnly<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:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>mountPath<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>/home/user/bin/restore.sh<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>backup-scripts<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>subPath<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>restore.sh<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>readOnly<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:#f8f8f8;text-decoration:underline"> </span>volumes<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>backup-scripts<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>configMap<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>defaultMode<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">0754</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>jenkins-operator-backup-s3<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>securityContext<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic"># make sure both containers use the same UID and GUID</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>runAsUser<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">1000</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>fsGroup<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">1000</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><span style="color:#f8f8f8;text-decoration:underline"> </span>backup<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>containerName<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>backup<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic"># container name responsible for backup</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">3600</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic"># how often make a 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"># trigger backup just before deleting the pod</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>action<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:#8f5902;font-style:italic"># this command is invoked on &#34;backup&#34; container to create a backup,</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic"># &lt;backup_number&gt; is passed by operator,</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic"># for example /home/user/bin/backup.sh &lt;backup_number&gt;</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/backup.sh<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">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>containerName<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>backup<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic"># container name is responsible for restore backup</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>action<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:#8f5902;font-style:italic"># this command is invoked on &#34;backup&#34; container to restore a backup,</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic"># &lt;backup_number&gt; is passed by operator</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic"># for example /home/user/bin/restore.sh &lt;backup_number&gt;</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/restore.sh<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>
|
||
<p>The actual backup and restore scripts will be provided in a <code>ConfigMap</code>:</p>
|
||
<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-yaml" data-lang="yaml">kind<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>ConfigMap<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"></span>apiVersion<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>v1<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"></span>metadata<span style="color:#000;font-weight:bold">:</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>jenkins-operator-backup-s3<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>namespace<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>jenkins<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>labels<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>app<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>jenkins-operator<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"></span>data<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>backup.sh<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>|<span style="color:#8f5902;font-style:italic">-
|
||
</span><span style="color:#8f5902;font-style:italic"> </span><span style="color:#8f5902;font-style:italic"> </span><span style="color:#8f5902;font-style:italic">#!/bin/bash -xeu</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">[</span><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:#8f5902;font-style:italic"># -eq 1 ]] &amp;&amp; echo &#34;Usage: $0 backup_number&#34; &amp;&amp; exit 1;</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">[</span><span style="color:#000;font-weight:bold">[</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-z<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;${BACKUP_BUCKET}&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">]</span><span style="color:#000;font-weight:bold">]</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic">&amp;&amp;</span><span style="color:#f8f8f8;text-decoration:underline"> </span>echo<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;Required &#39;BACKUP_BUCKET&#39; env not set&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic">&amp;&amp;</span><span style="color:#f8f8f8;text-decoration:underline"> </span>exit<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">1</span>;<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">[</span><span style="color:#000;font-weight:bold">[</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-z<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;${BACKUP_PATH}&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">]</span><span style="color:#000;font-weight:bold">]</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic">&amp;&amp;</span><span style="color:#f8f8f8;text-decoration:underline"> </span>echo<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;Required &#39;BACKUP_PATH&#39; env not set&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic">&amp;&amp;</span><span style="color:#f8f8f8;text-decoration:underline"> </span>exit<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">1</span>;<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">[</span><span style="color:#000;font-weight:bold">[</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-z<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;${JENKINS_HOME}&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">]</span><span style="color:#000;font-weight:bold">]</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic">&amp;&amp;</span><span style="color:#f8f8f8;text-decoration:underline"> </span>echo<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;Required &#39;JENKINS_HOME&#39; env not set&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic">&amp;&amp;</span><span style="color:#f8f8f8;text-decoration:underline"> </span>exit<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">1</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>backup_number=$<span style="color:#0000cf;font-weight:bold">1</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>echo<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;Running backup #${backup_number}&#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>BACKUP_TMP_DIR=$(mktemp<span style="color:#f8f8f8;text-decoration:underline"> </span>-d)<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>tar<span style="color:#f8f8f8;text-decoration:underline"> </span>-C<span style="color:#f8f8f8;text-decoration:underline"> </span>${JENKINS_HOME}<span style="color:#f8f8f8;text-decoration:underline"> </span>-czf<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;${BACKUP_TMP_DIR}/${backup_number}.tar.gz&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> </span>--exclude<span style="color:#f8f8f8;text-decoration:underline"> </span>jobs/<span style="color:#8f5902;font-style:italic">*/workspace*</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-c<span style="color:#f8f8f8;text-decoration:underline"> </span>jobs<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic">&amp;&amp;</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><span style="color:#f8f8f8;text-decoration:underline"> </span>aws<span style="color:#f8f8f8;text-decoration:underline"> </span>s3<span style="color:#f8f8f8;text-decoration:underline"> </span>cp<span style="color:#f8f8f8;text-decoration:underline"> </span>${BACKUP_TMP_DIR}/${backup_number}.tar.gz<span style="color:#f8f8f8;text-decoration:underline"> </span>s3<span style="color:#000;font-weight:bold">:</span>//${BACKUP_BUCKET}/${BACKUP_PATH}/${backup_number}.tar.gz<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>echo<span style="color:#f8f8f8;text-decoration:underline"> </span>Done<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>restore.sh<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>|<span style="color:#8f5902;font-style:italic">-
|
||
</span><span style="color:#8f5902;font-style:italic"> </span><span style="color:#8f5902;font-style:italic"> </span><span style="color:#8f5902;font-style:italic">#!/bin/bash -xeu</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">[</span><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:#8f5902;font-style:italic"># -eq 1 ]] &amp;&amp; echo &#34;Usage: $0 backup_number&#34; &amp;&amp; exit 1</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">[</span><span style="color:#000;font-weight:bold">[</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-z<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;${BACKUP_BUCKET}&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">]</span><span style="color:#000;font-weight:bold">]</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic">&amp;&amp;</span><span style="color:#f8f8f8;text-decoration:underline"> </span>echo<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;Required &#39;BACKUP_BUCKET&#39; env not set&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic">&amp;&amp;</span><span style="color:#f8f8f8;text-decoration:underline"> </span>exit<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">1</span>;<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">[</span><span style="color:#000;font-weight:bold">[</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-z<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;${BACKUP_PATH}&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">]</span><span style="color:#000;font-weight:bold">]</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic">&amp;&amp;</span><span style="color:#f8f8f8;text-decoration:underline"> </span>echo<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;Required &#39;BACKUP_PATH&#39; env not set&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic">&amp;&amp;</span><span style="color:#f8f8f8;text-decoration:underline"> </span>exit<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">1</span>;<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">[</span><span style="color:#000;font-weight:bold">[</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-z<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;${JENKINS_HOME}&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">]</span><span style="color:#000;font-weight:bold">]</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic">&amp;&amp;</span><span style="color:#f8f8f8;text-decoration:underline"> </span>echo<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;Required &#39;JENKINS_HOME&#39; env not set&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#8f5902;font-style:italic">&amp;&amp;</span><span style="color:#f8f8f8;text-decoration:underline"> </span>exit<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">1</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>backup_number=$<span style="color:#0000cf;font-weight:bold">1</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>echo<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;Running restore #${backup_number}&#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>BACKUP_TMP_DIR=$(mktemp<span style="color:#f8f8f8;text-decoration:underline"> </span>-d)<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>aws<span style="color:#f8f8f8;text-decoration:underline"> </span>s3<span style="color:#f8f8f8;text-decoration:underline"> </span>cp<span style="color:#f8f8f8;text-decoration:underline"> </span>s3<span style="color:#000;font-weight:bold">:</span>//${BACKUP_BUCKET}/${BACKUP_PATH}/${backup_number}.tar.gz<span style="color:#f8f8f8;text-decoration:underline"> </span>${BACKUP_TMP_DIR}/${backup_number}.tar.gz<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>tar<span style="color:#f8f8f8;text-decoration:underline"> </span>-C<span style="color:#f8f8f8;text-decoration:underline"> </span>${JENKINS_HOME}<span style="color:#f8f8f8;text-decoration:underline"> </span>-zxf<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;${BACKUP_TMP_DIR}/${backup_number}.tar.gz&#34;</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>echo<span style="color:#f8f8f8;text-decoration:underline"> </span>Done</code></pre></div>
|
||
<p>In our example we will use S3 bucket lifecycle policy to keep
|
||
the number of backups under control, e.g. Cloud Formation fragment:</p>
|
||
<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-yaml" data-lang="yaml"><span style="color:#f8f8f8;text-decoration:underline"> </span>Type<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>AWS<span style="color:#000;font-weight:bold">:</span><span style="color:#000;font-weight:bold">:</span>S3<span style="color:#000;font-weight:bold">:</span><span style="color:#000;font-weight:bold">:</span>Bucket<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>Properties<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>BucketName<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>my-example-bucket<span style="color:#f8f8f8;text-decoration:underline">
|
||
</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>LifecycleConfiguration<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>Rules<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>Id<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>BackupCleanup<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>Status<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>Enabled<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>Prefix<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>my-backup-path<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>ExpirationInDays<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">7</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>NoncurrentVersionExpirationInDays<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">14</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>AbortIncompleteMultipartUpload<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>DaysAfterInitiation<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">3</span></code></pre></div>
|
||
</description>
|
||
</item>
|
||
|
||
<item>
|
||
<title>Docs: Notifications</title>
|
||
<link>https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/notifications/</link>
|
||
<pubDate>Mon, 18 Jan 2021 00:00:00 +0000</pubDate>
|
||
|
||
<guid>https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/notifications/</guid>
|
||
<description>
|
||
|
||
|
||
|
||
|
||
<h2 id="slack">Slack</h2>
|
||
|
||
<p>Please follow <a href="https://api.slack.com/incoming-webhooks">this</a> instructions to get web hook URL.</p>
|
||
|
||
<p>Create web hook secret with name <code>jenkins-operator-notification-data</code>. Contains key <code>url</code> with provided web hook URL.</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">$ kubectl create secret generic jenkins-operator-notification-data --from-literal<span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#000">url</span><span style="color:#ce5c00;font-weight:bold">=</span>&lt;webhook_url&gt;</code></pre></div>
|
||
<p>Example configuration for Slack:</p>
|
||
<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-yaml" data-lang="yaml">kind<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>Jenkins<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"></span>spec<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</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>notifications<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>level<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>info<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>verbose<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:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>&lt;name<span style="color:#8f5902;font-style:italic">&gt;
|
||
</span><span style="color:#8f5902;font-style:italic"> </span><span style="color:#8f5902;font-style:italic"> </span><span style="color:#8f5902;font-style:italic">slack:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>webHookURLSecretKeySelector<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>secret<span style="color:#000;font-weight:bold">:</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>&lt;secret_name<span style="color:#8f5902;font-style:italic">&gt;
|
||
</span><span style="color:#8f5902;font-style:italic"> </span><span style="color:#8f5902;font-style:italic"> </span><span style="color:#8f5902;font-style:italic">key: &lt;key&gt;</span></code></pre></div>
|
||
<h2 id="microsoft-teams">Microsoft Teams</h2>
|
||
|
||
<p>Please follow <a href="https://docs.microsoft.com/en-gb/outlook/actionable-messages/send-via-connectors">this</a> instructions to get web hook URL.</p>
|
||
|
||
<p>Example configuration for Microsoft Teams:</p>
|
||
<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-yaml" data-lang="yaml">kind<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>Jenkins<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"></span>spec<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</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>notifications<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>level<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>info<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>verbose<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:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>&lt;name<span style="color:#8f5902;font-style:italic">&gt;
|
||
</span><span style="color:#8f5902;font-style:italic"> </span><span style="color:#8f5902;font-style:italic"> </span><span style="color:#8f5902;font-style:italic">teams:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>webHookURLSecretKeySelector<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>secret<span style="color:#000;font-weight:bold">:</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>&lt;secret_name<span style="color:#8f5902;font-style:italic">&gt;
|
||
</span><span style="color:#8f5902;font-style:italic"> </span><span style="color:#8f5902;font-style:italic"> </span><span style="color:#8f5902;font-style:italic">key: &lt;key&gt;</span></code></pre></div>
|
||
<h2 id="mailgun">Mailgun</h2>
|
||
|
||
<p>Example configuration for Mailgun:</p>
|
||
<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-yaml" data-lang="yaml">kind<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>Jenkins<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"></span>spec<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</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>notifications<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>level<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>info<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>verbose<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:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>&lt;name<span style="color:#8f5902;font-style:italic">&gt;
|
||
</span><span style="color:#8f5902;font-style:italic"> </span><span style="color:#8f5902;font-style:italic"> </span><span style="color:#8f5902;font-style:italic">mailgun:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>domain<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>&lt;domain<span style="color:#8f5902;font-style:italic">&gt;
|
||
</span><span style="color:#8f5902;font-style:italic"> </span><span style="color:#8f5902;font-style:italic"> </span><span style="color:#8f5902;font-style:italic">apiKeySecretKeySelector:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>secret<span style="color:#000;font-weight:bold">:</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>&lt;secret_name<span style="color:#8f5902;font-style:italic">&gt;
|
||
</span><span style="color:#8f5902;font-style:italic"> </span><span style="color:#8f5902;font-style:italic"> </span><span style="color:#8f5902;font-style:italic">key: &lt;key&gt;</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>recipient<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>&lt;your_email<span style="color:#8f5902;font-style:italic">&gt;
|
||
</span><span style="color:#8f5902;font-style:italic"> </span><span style="color:#8f5902;font-style:italic"> </span><span style="color:#8f5902;font-style:italic">from: &lt;mailgun_email&gt;</span></code></pre></div>
|
||
<h2 id="debug-options">Debug options</h2>
|
||
|
||
<p>As you see there is two debugging options:</p>
|
||
|
||
<ul>
|
||
<li><p><code>level</code> (warning/info) - Set level of messages to send.</p></li>
|
||
|
||
<li><p><code>verbose</code> - Print stacktrace and additional error messages</p></li>
|
||
</ul>
|
||
|
||
<h2 id="multiple-providers">Multiple providers</h2>
|
||
|
||
<p>You can use multiple providers to send notification to another communication channels at the same time.
|
||
For example you will send notifications to Slack and Teams.</p>
|
||
<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-yaml" data-lang="yaml">kind<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>Jenkins<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"></span>spec<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</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>notifications<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>level<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>info<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>verbose<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:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>nslack<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>slack<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>webHookURLSecretKeySelector<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>secret<span style="color:#000;font-weight:bold">:</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>&lt;secret_name<span style="color:#8f5902;font-style:italic">&gt;
|
||
</span><span style="color:#8f5902;font-style:italic"> </span><span style="color:#8f5902;font-style:italic"> </span><span style="color:#8f5902;font-style:italic">key: &lt;key&gt;</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>level<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>info<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>verbose<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:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>nteams<span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>teams<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>webHookURLSecretKeySelector<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
|
||
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>secret<span style="color:#000;font-weight:bold">:</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>&lt;secret_name<span style="color:#8f5902;font-style:italic">&gt;
|
||
</span><span style="color:#8f5902;font-style:italic"> </span><span style="color:#8f5902;font-style:italic"> </span><span style="color:#8f5902;font-style:italic">key: &lt;key&gt;</span></code></pre></div>
|
||
</description>
|
||
</item>
|
||
|
||
<item>
|
||
<title>Docs: OpenShift</title>
|
||
<link>https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/openshift/</link>
|
||
<pubDate>Wed, 29 Apr 2020 00:00:00 +0000</pubDate>
|
||
|
||
<guid>https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/openshift/</guid>
|
||
<description>
|
||
|
||
|
||
|
||
|
||
<h2 id="release-0-6-0-is-not-compatible-with-openshift-and-jenkinsimage-crd-was-removed-from-it">Release 0.6.0 is not compatible with OpenShift and JenkinsImage crd was removed from it.</h2>
|
||
|
||
</description>
|
||
</item>
|
||
|
||
<item>
|
||
<title>Docs: Diagnostics</title>
|
||
<link>https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/diagnostics/</link>
|
||
<pubDate>Mon, 18 Jan 2021 00:00:00 +0000</pubDate>
|
||
|
||
<guid>https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/diagnostics/</guid>
|
||
<description>
|
||
|
||
|
||
|
||
|
||
<p>Turn on debug in <strong>Jenkins Operator</strong> deployment:</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">sed -i <span style="color:#4e9a06">&#39;s|\(args:\).*|\1\ [&#34;--debug&#34;\]|&#39;</span> deploy/operator.yaml
|
||
kubectl apply -f deploy/operator.yaml</code></pre></div>
|
||
<p>Watch Kubernetes events:</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">kubectl get events --sort-by<span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#4e9a06">&#39;{.lastTimestamp}&#39;</span></code></pre></div>
|
||
<p>Verify Jenkins master logs:</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">kubectl logs -f jenkins-&lt;cr_name&gt;</code></pre></div>
|
||
<p>Verify the <code>jenkins-operator</code> logs:</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">kubectl logs deployment/jenkins-operator</code></pre></div>
|
||
<h2 id="troubleshooting">Troubleshooting</h2>
|
||
|
||
<p>Delete the Jenkins master pod and wait for the new one to come up:</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">kubectl delete pod jenkins-&lt;cr_name&gt;</code></pre></div>
|
||
</description>
|
||
</item>
|
||
|
||
<item>
|
||
<title>Docs: Schema</title>
|
||
<link>https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/schema/</link>
|
||
<pubDate>Mon, 18 Jan 2021 00:00:00 +0000</pubDate>
|
||
|
||
<guid>https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/schema/</guid>
|
||
<description>
|
||
|
||
|
||
|
||
|
||
<div class="pageinfo pageinfo-primary">
|
||
<p>This document contains API scheme for <code>jenkins-operator</code> Custom Resource Definition manifest</p>
|
||
|
||
</div>
|
||
|
||
|
||
<p>Packages:</p>
|
||
<ul>
|
||
<li>
|
||
<a href="#jenkins.io">jenkins.io</a>
|
||
</li>
|
||
</ul>
|
||
<h2 id="jenkins.io">jenkins.io</h2>
|
||
<p>
|
||
<p>Package v1alpha2 contains API Schema definitions for the jenkins.io v1alpha2 API group</p>
|
||
</p>
|
||
Resource Types:
|
||
<ul><li>
|
||
<a href="#github.com%2fjenkinsci%2fkubernetes-operator%2fpkg%2fapis%2fjenkins%2fv1alpha2.Jenkins">Jenkins</a>
|
||
</li></ul>
|
||
<h3 id="github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Jenkins">Jenkins
|
||
</h3>
|
||
<p>
|
||
<p>Jenkins is the Schema for the jenkins API</p>
|
||
</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Field</th>
|
||
<th>Description</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>
|
||
<code>apiVersion</code></br>
|
||
string</td>
|
||
<td>
|
||
<code>
|
||
jenkins.io/v1alpha2
|
||
</code>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>kind</code></br>
|
||
string
|
||
</td>
|
||
<td><code>Jenkins</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>metadata</code></br>
|
||
<em>
|
||
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#objectmeta-v1-meta">
|
||
Kubernetes meta/v1.ObjectMeta
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
Refer to the Kubernetes API documentation for the fields of the
|
||
<code>metadata</code> field.
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>spec</code></br>
|
||
<em>
|
||
<a href="#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.JenkinsSpec">
|
||
JenkinsSpec
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<p>Spec defines the desired state of the Jenkins</p>
|
||
<br/>
|
||
<br/>
|
||
<table>
|
||
<tr>
|
||
<td>
|
||
<code>master</code></br>
|
||
<em>
|
||
<a href="#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.JenkinsMaster">
|
||
JenkinsMaster
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<p>Master represents Jenkins master pod properties and Jenkins plugins.
|
||
Every single change here requires a pod restart.</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>seedJobs</code></br>
|
||
<em>
|
||
<a href="#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.SeedJob">
|
||
[][]github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.SeedJob
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>SeedJobs defines list of Jenkins Seed Job configurations
|
||
More info: <a href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/configuration#configure-seed-jobs-and-pipelines">https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/configuration#configure-seed-jobs-and-pipelines</a></p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>notifications</code></br>
|
||
<em>
|
||
<a href="#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Notification">
|
||
[][]github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Notification
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>Notifications defines list of a services which are used to inform about Jenkins status
|
||
Can be used to integrate chat services like Slack, Microsoft Teams or Mailgun</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>service</code></br>
|
||
<em>
|
||
<a href="#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Service">
|
||
Service
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>Service is Kubernetes service of Jenkins master HTTP pod
|
||
Defaults to :
|
||
port: 8080
|
||
type: ClusterIP</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>slaveService</code></br>
|
||
<em>
|
||
<a href="#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Service">
|
||
Service
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>Service is Kubernetes service of Jenkins slave pods
|
||
Defaults to :
|
||
port: 50000
|
||
type: ClusterIP</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>backup</code></br>
|
||
<em>
|
||
<a href="#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Backup">
|
||
Backup
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>Backup defines configuration of Jenkins backup
|
||
More info: <a href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/configure-backup-and-restore/">https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/configure-backup-and-restore/</a></p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>restore</code></br>
|
||
<em>
|
||
<a href="#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Restore">
|
||
Restore
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>Backup defines configuration of Jenkins backup restore
|
||
More info: <a href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/configure-backup-and-restore/">https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/configure-backup-and-restore/</a></p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>groovyScripts</code></br>
|
||
<em>
|
||
<a href="#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.GroovyScripts">
|
||
GroovyScripts
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>GroovyScripts defines configuration of Jenkins customization via groovy scripts</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>configurationAsCode</code></br>
|
||
<em>
|
||
<a href="#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.ConfigurationAsCode">
|
||
ConfigurationAsCode
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>ConfigurationAsCode defines configuration of Jenkins customization via Configuration as Code Jenkins plugin</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>roles</code></br>
|
||
<em>
|
||
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#roleref-v1-rbac">
|
||
[]Kubernetes rbac/v1.RoleRef
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>Roles defines list of extra RBAC roles for the Jenkins Master pod service account</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>serviceAccount</code></br>
|
||
<em>
|
||
<a href="#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.ServiceAccount">
|
||
ServiceAccount
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>ServiceAccount defines Jenkins master service account attributes</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>jenkinsAPISettings</code></br>
|
||
<em>
|
||
<a href="#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.JenkinsAPISettings">
|
||
JenkinsAPISettings
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<p>JenkinsAPISettings defines configuration used by the operator to gain admin access to the Jenkins API</p>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>status</code></br>
|
||
<em>
|
||
<a href="#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.JenkinsStatus">
|
||
JenkinsStatus
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<p>Status defines the observed state of Jenkins</p>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h3 id="github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.AppliedGroovyScript">AppliedGroovyScript
|
||
</h3>
|
||
<p>
|
||
(<em>Appears on:</em>
|
||
<a href="#github.com%2fjenkinsci%2fkubernetes-operator%2fpkg%2fapis%2fjenkins%2fv1alpha2.JenkinsStatus">JenkinsStatus</a>)
|
||
</p>
|
||
<p>
|
||
<p>AppliedGroovyScript is the applied groovy script in Jenkins by the operator.</p>
|
||
</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Field</th>
|
||
<th>Description</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>
|
||
<code>configurationType</code></br>
|
||
<em>
|
||
string
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<p>ConfigurationType is the name of the configuration type(base-groovy, user-groovy, user-casc)</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>source</code></br>
|
||
<em>
|
||
string
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<p>Source is the name of source where is located groovy script</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>name</code></br>
|
||
<em>
|
||
string
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<p>Name is the name of the groovy script</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>hash</code></br>
|
||
<em>
|
||
string
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<p>Hash is the hash of the groovy script and secrets which it uses</p>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h3 id="github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.AuthorizationStrategy">AuthorizationStrategy
|
||
(<code>string</code> alias)</p></h3>
|
||
<p>
|
||
(<em>Appears on:</em>
|
||
<a href="#github.com%2fjenkinsci%2fkubernetes-operator%2fpkg%2fapis%2fjenkins%2fv1alpha2.JenkinsAPISettings">JenkinsAPISettings</a>)
|
||
</p>
|
||
<p>
|
||
<p>AuthorizationStrategy defines authorization strategy of the operator for the Jenkins API</p>
|
||
</p>
|
||
<h3 id="github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Backup">Backup
|
||
</h3>
|
||
<p>
|
||
(<em>Appears on:</em>
|
||
<a href="#github.com%2fjenkinsci%2fkubernetes-operator%2fpkg%2fapis%2fjenkins%2fv1alpha2.JenkinsSpec">JenkinsSpec</a>)
|
||
</p>
|
||
<p>
|
||
<p>Backup defines configuration of Jenkins backup.</p>
|
||
</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Field</th>
|
||
<th>Description</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>
|
||
<code>containerName</code></br>
|
||
<em>
|
||
string
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<p>ContainerName is the container name responsible for backup operation</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>action</code></br>
|
||
<em>
|
||
<a href="#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Handler">
|
||
Handler
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<p>Action defines action which performs backup in backup container sidecar</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>interval</code></br>
|
||
<em>
|
||
uint64
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<p>Interval tells how often make backup in seconds
|
||
Defaults to 30.</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>makeBackupBeforePodDeletion</code></br>
|
||
<em>
|
||
bool
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<p>MakeBackupBeforePodDeletion tells operator to make backup before Jenkins master pod deletion</p>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h3 id="github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.ConfigMapRef">ConfigMapRef
|
||
</h3>
|
||
<p>
|
||
(<em>Appears on:</em>
|
||
<a href="#github.com%2fjenkinsci%2fkubernetes-operator%2fpkg%2fapis%2fjenkins%2fv1alpha2.Customization">Customization</a>)
|
||
</p>
|
||
<p>
|
||
<p>ConfigMapRef is reference to Kubernetes ConfigMap.</p>
|
||
</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Field</th>
|
||
<th>Description</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>
|
||
<code>name</code></br>
|
||
<em>
|
||
string
|
||
</em>
|
||
</td>
|
||
<td>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h3 id="github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.ConfigurationAsCode">ConfigurationAsCode
|
||
</h3>
|
||
<p>
|
||
(<em>Appears on:</em>
|
||
<a href="#github.com%2fjenkinsci%2fkubernetes-operator%2fpkg%2fapis%2fjenkins%2fv1alpha2.JenkinsSpec">JenkinsSpec</a>)
|
||
</p>
|
||
<p>
|
||
<p>ConfigurationAsCode defines configuration of Jenkins customization via Configuration as Code Jenkins plugin.</p>
|
||
</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Field</th>
|
||
<th>Description</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>
|
||
<code>Customization</code></br>
|
||
<em>
|
||
<a href="#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Customization">
|
||
Customization
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<p>
|
||
(Members of <code>Customization</code> are embedded into this type.)
|
||
</p>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h3 id="github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Container">Container
|
||
</h3>
|
||
<p>
|
||
(<em>Appears on:</em>
|
||
<a href="#github.com%2fjenkinsci%2fkubernetes-operator%2fpkg%2fapis%2fjenkins%2fv1alpha2.JenkinsMaster">JenkinsMaster</a>)
|
||
</p>
|
||
<p>
|
||
<p>Container defines Kubernetes container attributes.</p>
|
||
</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Field</th>
|
||
<th>Description</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>
|
||
<code>name</code></br>
|
||
<em>
|
||
string
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<p>Name of the container specified as a DNS_LABEL.
|
||
Each container in a pod must have a unique name (DNS_LABEL).</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>image</code></br>
|
||
<em>
|
||
string
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<p>Docker image name.
|
||
More info: <a href="https://kubernetes.io/docs/concepts/containers/images">https://kubernetes.io/docs/concepts/containers/images</a></p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>imagePullPolicy</code></br>
|
||
<em>
|
||
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#pullpolicy-v1-core">
|
||
Kubernetes core/v1.PullPolicy
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<p>Image pull policy.
|
||
One of Always, Never, IfNotPresent.
|
||
Defaults to Always.</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>resources</code></br>
|
||
<em>
|
||
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#resourcerequirements-v1-core">
|
||
Kubernetes core/v1.ResourceRequirements
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<p>Compute Resources required by this container.
|
||
More info: <a href="https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/">https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/</a></p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>command</code></br>
|
||
<em>
|
||
[]string
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>Entrypoint array. Not executed within a shell.
|
||
The docker image&rsquo;s ENTRYPOINT is used if this is not provided.
|
||
Variable references $(VAR_NAME) are expanded using the container&rsquo;s environment. If a variable
|
||
cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax
|
||
can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
|
||
regardless of whether the variable exists or not.
|
||
More info: <a href="https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell">https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell</a></p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>args</code></br>
|
||
<em>
|
||
[]string
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>Arguments to the entrypoint.
|
||
The docker image&rsquo;s CMD is used if this is not provided.
|
||
Variable references $(VAR_NAME) are expanded using the container&rsquo;s environment. If a variable
|
||
cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax
|
||
can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
|
||
regardless of whether the variable exists or not.
|
||
More info: <a href="https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell">https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell</a></p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>workingDir</code></br>
|
||
<em>
|
||
string
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>Container&rsquo;s working directory.
|
||
If not specified, the container runtime&rsquo;s default will be used, which
|
||
might be configured in the container image.</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>ports</code></br>
|
||
<em>
|
||
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#containerport-v1-core">
|
||
[]Kubernetes core/v1.ContainerPort
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>List of ports to expose from the container. Exposing a port here gives
|
||
the system additional information about the network connections a
|
||
container uses, but is primarily informational. Not specifying a port here
|
||
DOES NOT prevent that port from being exposed. Any port which is
|
||
listening on the default &ldquo;0.0.0.0&rdquo; address inside a container will be
|
||
accessible from the network.</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>envFrom</code></br>
|
||
<em>
|
||
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#envfromsource-v1-core">
|
||
[]Kubernetes core/v1.EnvFromSource
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>List of sources to populate environment variables in the container.
|
||
The keys defined within a source must be a C_IDENTIFIER. All invalid keys
|
||
will be reported as an event when the container is starting. When a key exists in multiple
|
||
sources, the value associated with the last source will take precedence.
|
||
Values defined by an Env with a duplicate key will take precedence.</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>env</code></br>
|
||
<em>
|
||
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#envvar-v1-core">
|
||
[]Kubernetes core/v1.EnvVar
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>List of environment variables to set in the container.</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>volumeMounts</code></br>
|
||
<em>
|
||
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#volumemount-v1-core">
|
||
[]Kubernetes core/v1.VolumeMount
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<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>
|
||
<td>
|
||
<code>livenessProbe</code></br>
|
||
<em>
|
||
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#probe-v1-core">
|
||
Kubernetes core/v1.Probe
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>Periodic probe of container liveness.
|
||
Container will be restarted if the probe fails.</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>readinessProbe</code></br>
|
||
<em>
|
||
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#probe-v1-core">
|
||
Kubernetes core/v1.Probe
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>Periodic probe of container service readiness.
|
||
Container will be removed from service endpoints if the probe fails.</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>lifecycle</code></br>
|
||
<em>
|
||
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#lifecycle-v1-core">
|
||
Kubernetes core/v1.Lifecycle
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>Actions that the management system should take in response to container lifecycle events.</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>securityContext</code></br>
|
||
<em>
|
||
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#securitycontext-v1-core">
|
||
Kubernetes core/v1.SecurityContext
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>Security options the pod should run with.
|
||
More info: <a href="https://kubernetes.io/docs/concepts/policy/security-context/">https://kubernetes.io/docs/concepts/policy/security-context/</a>
|
||
More info: <a href="https://kubernetes.io/docs/tasks/configure-pod-container/security-context/">https://kubernetes.io/docs/tasks/configure-pod-container/security-context/</a></p>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h3 id="github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Customization">Customization
|
||
</h3>
|
||
<p>
|
||
(<em>Appears on:</em>
|
||
<a href="#github.com%2fjenkinsci%2fkubernetes-operator%2fpkg%2fapis%2fjenkins%2fv1alpha2.ConfigurationAsCode">ConfigurationAsCode</a>,
|
||
<a href="#github.com%2fjenkinsci%2fkubernetes-operator%2fpkg%2fapis%2fjenkins%2fv1alpha2.GroovyScripts">GroovyScripts</a>)
|
||
</p>
|
||
<p>
|
||
<p>Customization defines configuration of Jenkins customization.</p>
|
||
</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Field</th>
|
||
<th>Description</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>
|
||
<code>secret</code></br>
|
||
<em>
|
||
<a href="#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.SecretRef">
|
||
SecretRef
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>configurations</code></br>
|
||
<em>
|
||
<a href="#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.ConfigMapRef">
|
||
[][]github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.ConfigMapRef
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h3 id="github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.GroovyScripts">GroovyScripts
|
||
</h3>
|
||
<p>
|
||
(<em>Appears on:</em>
|
||
<a href="#github.com%2fjenkinsci%2fkubernetes-operator%2fpkg%2fapis%2fjenkins%2fv1alpha2.JenkinsSpec">JenkinsSpec</a>)
|
||
</p>
|
||
<p>
|
||
<p>GroovyScripts defines configuration of Jenkins customization via groovy scripts.</p>
|
||
</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Field</th>
|
||
<th>Description</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>
|
||
<code>Customization</code></br>
|
||
<em>
|
||
<a href="#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Customization">
|
||
Customization
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<p>
|
||
(Members of <code>Customization</code> are embedded into this type.)
|
||
</p>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h3 id="github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Handler">Handler
|
||
</h3>
|
||
<p>
|
||
(<em>Appears on:</em>
|
||
<a href="#github.com%2fjenkinsci%2fkubernetes-operator%2fpkg%2fapis%2fjenkins%2fv1alpha2.Backup">Backup</a>,
|
||
<a href="#github.com%2fjenkinsci%2fkubernetes-operator%2fpkg%2fapis%2fjenkins%2fv1alpha2.Restore">Restore</a>)
|
||
</p>
|
||
<p>
|
||
<p>Handler defines a specific action that should be taken.</p>
|
||
</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Field</th>
|
||
<th>Description</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>
|
||
<code>exec</code></br>
|
||
<em>
|
||
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#execaction-v1-core">
|
||
Kubernetes core/v1.ExecAction
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<p>Exec specifies the action to take.</p>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h3 id="github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Image">Image
|
||
</h3>
|
||
<p>
|
||
(<em>Appears on:</em>
|
||
<a href="#github.com%2fjenkinsci%2fkubernetes-operator%2fpkg%2fapis%2fjenkins%2fv1alpha2.JenkinsImageSpec">JenkinsImageSpec</a>)
|
||
</p>
|
||
<p>
|
||
<p>Defines Jenkins Plugin structure</p>
|
||
</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Field</th>
|
||
<th>Description</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>
|
||
<code>name</code></br>
|
||
<em>
|
||
string
|
||
</em>
|
||
</td>
|
||
<td>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>version</code></br>
|
||
<em>
|
||
string
|
||
</em>
|
||
</td>
|
||
<td>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h3 id="github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.JenkinsAPISettings">JenkinsAPISettings
|
||
</h3>
|
||
<p>
|
||
(<em>Appears on:</em>
|
||
<a href="#github.com%2fjenkinsci%2fkubernetes-operator%2fpkg%2fapis%2fjenkins%2fv1alpha2.JenkinsSpec">JenkinsSpec</a>)
|
||
</p>
|
||
<p>
|
||
<p>JenkinsAPISettings defines configuration used by the operator to gain admin access to the Jenkins API</p>
|
||
</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Field</th>
|
||
<th>Description</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>
|
||
<code>authorizationStrategy</code></br>
|
||
<em>
|
||
<a href="#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.AuthorizationStrategy">
|
||
AuthorizationStrategy
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h3 id="github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.JenkinsCredentialType">JenkinsCredentialType
|
||
(<code>string</code> alias)</p></h3>
|
||
<p>
|
||
(<em>Appears on:</em>
|
||
<a href="#github.com%2fjenkinsci%2fkubernetes-operator%2fpkg%2fapis%2fjenkins%2fv1alpha2.SeedJob">SeedJob</a>)
|
||
</p>
|
||
<p>
|
||
<p>JenkinsCredentialType defines type of Jenkins credential used to seed job mechanism.</p>
|
||
</p>
|
||
<h3 id="github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.JenkinsImage">JenkinsImage
|
||
</h3>
|
||
<p>
|
||
<p>JenkinsImage is the Schema for the jenkinsimages API</p>
|
||
</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Field</th>
|
||
<th>Description</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>
|
||
<code>metadata</code></br>
|
||
<em>
|
||
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#objectmeta-v1-meta">
|
||
Kubernetes meta/v1.ObjectMeta
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
Refer to the Kubernetes API documentation for the fields of the
|
||
<code>metadata</code> field.
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>spec</code></br>
|
||
<em>
|
||
<a href="#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.JenkinsImageSpec">
|
||
JenkinsImageSpec
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<br/>
|
||
<br/>
|
||
<table>
|
||
<tr>
|
||
<td>
|
||
<code>image</code></br>
|
||
<em>
|
||
<a href="#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Image">
|
||
Image
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>plugins</code></br>
|
||
<em>
|
||
<a href="#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.JenkinsPlugin">
|
||
[][]github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.JenkinsPlugin
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>status</code></br>
|
||
<em>
|
||
<a href="#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.JenkinsImageStatus">
|
||
JenkinsImageStatus
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h3 id="github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.JenkinsImageSpec">JenkinsImageSpec
|
||
</h3>
|
||
<p>
|
||
(<em>Appears on:</em>
|
||
<a href="#github.com%2fjenkinsci%2fkubernetes-operator%2fpkg%2fapis%2fjenkins%2fv1alpha2.JenkinsImage">JenkinsImage</a>)
|
||
</p>
|
||
<p>
|
||
<p>JenkinsImageSpec defines the desired state of JenkinsImage</p>
|
||
</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Field</th>
|
||
<th>Description</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>
|
||
<code>image</code></br>
|
||
<em>
|
||
<a href="#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Image">
|
||
Image
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>plugins</code></br>
|
||
<em>
|
||
<a href="#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.JenkinsPlugin">
|
||
[][]github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.JenkinsPlugin
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h3 id="github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.JenkinsImageStatus">JenkinsImageStatus
|
||
</h3>
|
||
<p>
|
||
(<em>Appears on:</em>
|
||
<a href="#github.com%2fjenkinsci%2fkubernetes-operator%2fpkg%2fapis%2fjenkins%2fv1alpha2.JenkinsImage">JenkinsImage</a>)
|
||
</p>
|
||
<p>
|
||
<p>JenkinsImageStatus defines the observed state of JenkinsImage</p>
|
||
</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Field</th>
|
||
<th>Description</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>
|
||
<code>image</code></br>
|
||
<em>
|
||
string
|
||
</em>
|
||
</td>
|
||
<td>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>md5sum</code></br>
|
||
<em>
|
||
string
|
||
</em>
|
||
</td>
|
||
<td>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>installedPlugins</code></br>
|
||
<em>
|
||
<a href="#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.JenkinsPlugin">
|
||
[][]github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.JenkinsPlugin
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h3 id="github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.JenkinsMaster">JenkinsMaster
|
||
</h3>
|
||
<p>
|
||
(<em>Appears on:</em>
|
||
<a href="#github.com%2fjenkinsci%2fkubernetes-operator%2fpkg%2fapis%2fjenkins%2fv1alpha2.JenkinsSpec">JenkinsSpec</a>)
|
||
</p>
|
||
<p>
|
||
<p>JenkinsMaster defines the Jenkins master pod attributes and plugins,
|
||
every single change requires a Jenkins master pod restart.</p>
|
||
</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Field</th>
|
||
<th>Description</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>
|
||
<code>annotations</code></br>
|
||
<em>
|
||
map[string]string
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>Annotations is an unstructured key value map stored with a resource that may be
|
||
set by external tools to store and retrieve arbitrary metadata. They are not
|
||
queryable and should be preserved when modifying objects.
|
||
More info: <a href="http://kubernetes.io/docs/user-guide/annotations">http://kubernetes.io/docs/user-guide/annotations</a></p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>masterAnnotations</code></br>
|
||
<em>
|
||
map[string]string
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>Annotations is an unstructured key value map stored with a resource that may be
|
||
set by external tools to store and retrieve arbitrary metadata. They are not
|
||
queryable and should be preserved when modifying objects.
|
||
More info: <a href="http://kubernetes.io/docs/user-guide/annotations">http://kubernetes.io/docs/user-guide/annotations</a>
|
||
Deprecated: will be removed in the future, please use Annotations(annotations)</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>labels</code></br>
|
||
<em>
|
||
map[string]string
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>Map of string keys and values that can be used to organize and categorize
|
||
(scope and select) objects. May match selectors of replication controllers
|
||
and services.
|
||
More info: <a href="http://kubernetes.io/docs/user-guide/labels">http://kubernetes.io/docs/user-guide/labels</a></p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>nodeSelector</code></br>
|
||
<em>
|
||
map[string]string
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>NodeSelector is a selector which must be true for the pod to fit on a node.
|
||
Selector which must match a node&rsquo;s labels for the pod to be scheduled on that node.
|
||
More info: <a href="https://kubernetes.io/docs/concepts/configuration/assign-pod-node/">https://kubernetes.io/docs/concepts/configuration/assign-pod-node/</a></p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>securityContext</code></br>
|
||
<em>
|
||
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#podsecuritycontext-v1-core">
|
||
Kubernetes core/v1.PodSecurityContext
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>SecurityContext that applies to all the containers of the Jenkins
|
||
Master. As per kubernetes specification, it can be overridden
|
||
for each container individually.
|
||
Defaults to:
|
||
runAsUser: 1000
|
||
fsGroup: 1000</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>containers</code></br>
|
||
<em>
|
||
<a href="#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Container">
|
||
[][]github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Container
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>List of containers belonging to the pod.
|
||
Containers cannot currently be added or removed.
|
||
There must be at least one container in a Pod.
|
||
Defaults to:
|
||
- image: jenkins/jenkins:lts
|
||
imagePullPolicy: Always
|
||
livenessProbe:
|
||
failureThreshold: 12
|
||
httpGet:
|
||
path: /login
|
||
port: http
|
||
scheme: HTTP
|
||
initialDelaySeconds: 80
|
||
periodSeconds: 10
|
||
successThreshold: 1
|
||
timeoutSeconds: 5
|
||
name: jenkins-master
|
||
readinessProbe:
|
||
failureThreshold: 3
|
||
httpGet:
|
||
path: /login
|
||
port: http
|
||
scheme: HTTP
|
||
initialDelaySeconds: 30
|
||
periodSeconds: 10
|
||
successThreshold: 1
|
||
timeoutSeconds: 1
|
||
resources:
|
||
limits:
|
||
cpu: 1500m
|
||
memory: 3Gi
|
||
requests:
|
||
cpu: &ldquo;1&rdquo;
|
||
memory: 600Mi</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>imagePullSecrets</code></br>
|
||
<em>
|
||
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#localobjectreference-v1-core">
|
||
[]Kubernetes core/v1.LocalObjectReference
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.
|
||
If specified, these secrets will be passed to individual puller implementations for them to use. For example,
|
||
in the case of docker, only DockerConfig type secrets are honored.
|
||
More info: <a href="https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod">https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod</a></p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>volumes</code></br>
|
||
<em>
|
||
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#volume-v1-core">
|
||
[]Kubernetes core/v1.Volume
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>List of volumes that can be mounted by containers belonging to the pod.
|
||
More info: <a href="https://kubernetes.io/docs/concepts/storage/volumes">https://kubernetes.io/docs/concepts/storage/volumes</a></p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>tolerations</code></br>
|
||
<em>
|
||
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#toleration-v1-core">
|
||
[]Kubernetes core/v1.Toleration
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>If specified, the pod&rsquo;s tolerations.</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>basePlugins</code></br>
|
||
<em>
|
||
<a href="#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Plugin">
|
||
[][]github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Plugin
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>BasePlugins contains plugins required by operator
|
||
Defaults to :
|
||
- name: kubernetes
|
||
version: &ldquo;1.28.6&rdquo;
|
||
- name: workflow-job
|
||
version: &ldquo;2.40&rdquo;
|
||
- name: workflow-aggregator
|
||
version: &ldquo;2.6&rdquo;
|
||
- name: git
|
||
version: &ldquo;4.5.0&rdquo;
|
||
- name: job-dsl
|
||
version: &ldquo;1.77&rdquo;
|
||
- name: configuration-as-code
|
||
version: &ldquo;1.46&rdquo;
|
||
- name: kubernetes-credentials-provider
|
||
version: &ldquo;0.15&rdquo;</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>plugins</code></br>
|
||
<em>
|
||
<a href="#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Plugin">
|
||
[][]github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Plugin
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>Plugins contains plugins required by user</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>disableCSRFProtection</code></br>
|
||
<em>
|
||
bool
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<p>DisableCSRFProtection allows you to toggle CSRF Protection on Jenkins</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>priorityClassName</code></br>
|
||
<em>
|
||
string
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>PriorityClassName for Jenkins master pod</p>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h3 id="github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.JenkinsPlugin">JenkinsPlugin
|
||
</h3>
|
||
<p>
|
||
(<em>Appears on:</em>
|
||
<a href="#github.com%2fjenkinsci%2fkubernetes-operator%2fpkg%2fapis%2fjenkins%2fv1alpha2.JenkinsImageSpec">JenkinsImageSpec</a>,
|
||
<a href="#github.com%2fjenkinsci%2fkubernetes-operator%2fpkg%2fapis%2fjenkins%2fv1alpha2.JenkinsImageStatus">JenkinsImageStatus</a>)
|
||
</p>
|
||
<p>
|
||
<p>Defines Jenkins Plugin structure</p>
|
||
</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Field</th>
|
||
<th>Description</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>
|
||
<code>name</code></br>
|
||
<em>
|
||
string
|
||
</em>
|
||
</td>
|
||
<td>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>version</code></br>
|
||
<em>
|
||
string
|
||
</em>
|
||
</td>
|
||
<td>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h3 id="github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.JenkinsSpec">JenkinsSpec
|
||
</h3>
|
||
<p>
|
||
(<em>Appears on:</em>
|
||
<a href="#github.com%2fjenkinsci%2fkubernetes-operator%2fpkg%2fapis%2fjenkins%2fv1alpha2.Jenkins">Jenkins</a>)
|
||
</p>
|
||
<p>
|
||
<p>JenkinsSpec defines the desired state of the Jenkins.</p>
|
||
</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Field</th>
|
||
<th>Description</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>
|
||
<code>master</code></br>
|
||
<em>
|
||
<a href="#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.JenkinsMaster">
|
||
JenkinsMaster
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<p>Master represents Jenkins master pod properties and Jenkins plugins.
|
||
Every single change here requires a pod restart.</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>seedJobs</code></br>
|
||
<em>
|
||
<a href="#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.SeedJob">
|
||
[][]github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.SeedJob
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>SeedJobs defines list of Jenkins Seed Job configurations
|
||
More info: <a href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/configuration#configure-seed-jobs-and-pipelines">https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/configuration#configure-seed-jobs-and-pipelines</a></p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>notifications</code></br>
|
||
<em>
|
||
<a href="#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Notification">
|
||
[][]github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Notification
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>Notifications defines list of a services which are used to inform about Jenkins status
|
||
Can be used to integrate chat services like Slack, Microsoft Teams or Mailgun</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>service</code></br>
|
||
<em>
|
||
<a href="#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Service">
|
||
Service
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>Service is Kubernetes service of Jenkins master HTTP pod
|
||
Defaults to :
|
||
port: 8080
|
||
type: ClusterIP</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>slaveService</code></br>
|
||
<em>
|
||
<a href="#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Service">
|
||
Service
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>Service is Kubernetes service of Jenkins slave pods
|
||
Defaults to :
|
||
port: 50000
|
||
type: ClusterIP</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>backup</code></br>
|
||
<em>
|
||
<a href="#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Backup">
|
||
Backup
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>Backup defines configuration of Jenkins backup
|
||
More info: <a href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/configure-backup-and-restore/">https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/configure-backup-and-restore/</a></p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>restore</code></br>
|
||
<em>
|
||
<a href="#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Restore">
|
||
Restore
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>Backup defines configuration of Jenkins backup restore
|
||
More info: <a href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/configure-backup-and-restore/">https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/configure-backup-and-restore/</a></p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>groovyScripts</code></br>
|
||
<em>
|
||
<a href="#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.GroovyScripts">
|
||
GroovyScripts
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>GroovyScripts defines configuration of Jenkins customization via groovy scripts</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>configurationAsCode</code></br>
|
||
<em>
|
||
<a href="#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.ConfigurationAsCode">
|
||
ConfigurationAsCode
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>ConfigurationAsCode defines configuration of Jenkins customization via Configuration as Code Jenkins plugin</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>roles</code></br>
|
||
<em>
|
||
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#roleref-v1-rbac">
|
||
[]Kubernetes rbac/v1.RoleRef
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>Roles defines list of extra RBAC roles for the Jenkins Master pod service account</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>serviceAccount</code></br>
|
||
<em>
|
||
<a href="#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.ServiceAccount">
|
||
ServiceAccount
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>ServiceAccount defines Jenkins master service account attributes</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>jenkinsAPISettings</code></br>
|
||
<em>
|
||
<a href="#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.JenkinsAPISettings">
|
||
JenkinsAPISettings
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<p>JenkinsAPISettings defines configuration used by the operator to gain admin access to the Jenkins API</p>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h3 id="github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.JenkinsStatus">JenkinsStatus
|
||
</h3>
|
||
<p>
|
||
(<em>Appears on:</em>
|
||
<a href="#github.com%2fjenkinsci%2fkubernetes-operator%2fpkg%2fapis%2fjenkins%2fv1alpha2.Jenkins">Jenkins</a>)
|
||
</p>
|
||
<p>
|
||
<p>JenkinsStatus defines the observed state of Jenkins</p>
|
||
</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Field</th>
|
||
<th>Description</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>
|
||
<code>operatorVersion</code></br>
|
||
<em>
|
||
string
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>OperatorVersion is the operator version which manages this CR</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>provisionStartTime</code></br>
|
||
<em>
|
||
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#time-v1-meta">
|
||
Kubernetes meta/v1.Time
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>ProvisionStartTime is a time when Jenkins master pod has been created</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>baseConfigurationCompletedTime</code></br>
|
||
<em>
|
||
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#time-v1-meta">
|
||
Kubernetes meta/v1.Time
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>BaseConfigurationCompletedTime is a time when Jenkins base configuration phase has been completed</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>userConfigurationCompletedTime</code></br>
|
||
<em>
|
||
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#time-v1-meta">
|
||
Kubernetes meta/v1.Time
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>UserConfigurationCompletedTime is a time when Jenkins user configuration phase has been completed</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>restoredBackup</code></br>
|
||
<em>
|
||
uint64
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>RestoredBackup is the restored backup number after Jenkins master pod restart</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>lastBackup</code></br>
|
||
<em>
|
||
uint64
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>LastBackup is the latest backup number</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>pendingBackup</code></br>
|
||
<em>
|
||
uint64
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>PendingBackup is the pending backup number</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>backupDoneBeforePodDeletion</code></br>
|
||
<em>
|
||
bool
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>BackupDoneBeforePodDeletion tells if backup before pod deletion has been made</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>userAndPasswordHash</code></br>
|
||
<em>
|
||
string
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>UserAndPasswordHash is a SHA256 hash made from user and password</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>createdSeedJobs</code></br>
|
||
<em>
|
||
[]string
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>CreatedSeedJobs contains list of seed job id already created in Jenkins</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>appliedGroovyScripts</code></br>
|
||
<em>
|
||
<a href="#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.AppliedGroovyScript">
|
||
[][]github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.AppliedGroovyScript
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>AppliedGroovyScripts is a list with all applied groovy scripts in Jenkins by the operator</p>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h3 id="github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Mailgun">Mailgun
|
||
</h3>
|
||
<p>
|
||
(<em>Appears on:</em>
|
||
<a href="#github.com%2fjenkinsci%2fkubernetes-operator%2fpkg%2fapis%2fjenkins%2fv1alpha2.Notification">Notification</a>)
|
||
</p>
|
||
<p>
|
||
<p>Mailgun is handler for Mailgun email service notification channel.</p>
|
||
</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Field</th>
|
||
<th>Description</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>
|
||
<code>domain</code></br>
|
||
<em>
|
||
string
|
||
</em>
|
||
</td>
|
||
<td>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>apiKeySecretKeySelector</code></br>
|
||
<em>
|
||
<a href="#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.SecretKeySelector">
|
||
SecretKeySelector
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>recipient</code></br>
|
||
<em>
|
||
string
|
||
</em>
|
||
</td>
|
||
<td>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>from</code></br>
|
||
<em>
|
||
string
|
||
</em>
|
||
</td>
|
||
<td>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h3 id="github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.MicrosoftTeams">MicrosoftTeams
|
||
</h3>
|
||
<p>
|
||
(<em>Appears on:</em>
|
||
<a href="#github.com%2fjenkinsci%2fkubernetes-operator%2fpkg%2fapis%2fjenkins%2fv1alpha2.Notification">Notification</a>)
|
||
</p>
|
||
<p>
|
||
<p>MicrosoftTeams is handler for Microsoft MicrosoftTeams notification channel.</p>
|
||
</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Field</th>
|
||
<th>Description</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>
|
||
<code>webHookURLSecretKeySelector</code></br>
|
||
<em>
|
||
<a href="#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.SecretKeySelector">
|
||
SecretKeySelector
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<p>The web hook URL to MicrosoftTeams App</p>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h3 id="github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Notification">Notification
|
||
</h3>
|
||
<p>
|
||
(<em>Appears on:</em>
|
||
<a href="#github.com%2fjenkinsci%2fkubernetes-operator%2fpkg%2fapis%2fjenkins%2fv1alpha2.JenkinsSpec">JenkinsSpec</a>)
|
||
</p>
|
||
<p>
|
||
<p>Notification is a service configuration used to send notifications about Jenkins status.</p>
|
||
</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Field</th>
|
||
<th>Description</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>
|
||
<code>level</code></br>
|
||
<em>
|
||
<a href="#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.NotificationLevel">
|
||
NotificationLevel
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>verbose</code></br>
|
||
<em>
|
||
bool
|
||
</em>
|
||
</td>
|
||
<td>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>name</code></br>
|
||
<em>
|
||
string
|
||
</em>
|
||
</td>
|
||
<td>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>slack</code></br>
|
||
<em>
|
||
<a href="#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Slack">
|
||
github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Slack
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>teams</code></br>
|
||
<em>
|
||
<a href="#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.MicrosoftTeams">
|
||
github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.MicrosoftTeams
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>mailgun</code></br>
|
||
<em>
|
||
<a href="#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Mailgun">
|
||
github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Mailgun
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>smtp</code></br>
|
||
<em>
|
||
<a href="#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.SMTP">
|
||
github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.SMTP
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h3 id="github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.NotificationLevel">NotificationLevel
|
||
(<code>string</code> alias)</p></h3>
|
||
<p>
|
||
(<em>Appears on:</em>
|
||
<a href="#github.com%2fjenkinsci%2fkubernetes-operator%2fpkg%2fapis%2fjenkins%2fv1alpha2.Notification">Notification</a>)
|
||
</p>
|
||
<p>
|
||
<p>NotificationLevel defines the level of a Notification.</p>
|
||
</p>
|
||
<h3 id="github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Plugin">Plugin
|
||
</h3>
|
||
<p>
|
||
(<em>Appears on:</em>
|
||
<a href="#github.com%2fjenkinsci%2fkubernetes-operator%2fpkg%2fapis%2fjenkins%2fv1alpha2.JenkinsMaster">JenkinsMaster</a>)
|
||
</p>
|
||
<p>
|
||
<p>Plugin defines Jenkins plugin.</p>
|
||
</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Field</th>
|
||
<th>Description</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>
|
||
<code>name</code></br>
|
||
<em>
|
||
string
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<p>Name is the name of Jenkins plugin</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>version</code></br>
|
||
<em>
|
||
string
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<p>Version is the version of Jenkins plugin</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>downloadURL</code></br>
|
||
<em>
|
||
string
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<p>DownloadURL is the custom url from where plugin has to be downloaded.</p>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h3 id="github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Restore">Restore
|
||
</h3>
|
||
<p>
|
||
(<em>Appears on:</em>
|
||
<a href="#github.com%2fjenkinsci%2fkubernetes-operator%2fpkg%2fapis%2fjenkins%2fv1alpha2.JenkinsSpec">JenkinsSpec</a>)
|
||
</p>
|
||
<p>
|
||
<p>Restore defines configuration of Jenkins backup restore operation.</p>
|
||
</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Field</th>
|
||
<th>Description</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>
|
||
<code>containerName</code></br>
|
||
<em>
|
||
string
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<p>ContainerName is the container name responsible for restore backup operation</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>action</code></br>
|
||
<em>
|
||
<a href="#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Handler">
|
||
Handler
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<p>Action defines action which performs restore backup in restore container sidecar</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>getLatestAction</code></br>
|
||
<em>
|
||
<a href="#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Handler">
|
||
Handler
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>GetLatestAction defines action which returns the latest backup number. If there is no backup &ldquo;-1&rdquo; should be
|
||
returned.</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>recoveryOnce</code></br>
|
||
<em>
|
||
uint64
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>RecoveryOnce if want to restore specific backup set this field and then Jenkins will be restarted and desired backup will be restored</p>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h3 id="github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.SMTP">SMTP
|
||
</h3>
|
||
<p>
|
||
(<em>Appears on:</em>
|
||
<a href="#github.com%2fjenkinsci%2fkubernetes-operator%2fpkg%2fapis%2fjenkins%2fv1alpha2.Notification">Notification</a>)
|
||
</p>
|
||
<p>
|
||
<p>SMTP is handler for sending emails via this protocol.</p>
|
||
</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Field</th>
|
||
<th>Description</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>
|
||
<code>usernameSecretKeySelector</code></br>
|
||
<em>
|
||
<a href="#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.SecretKeySelector">
|
||
SecretKeySelector
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>passwordSecretKeySelector</code></br>
|
||
<em>
|
||
<a href="#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.SecretKeySelector">
|
||
SecretKeySelector
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>port</code></br>
|
||
<em>
|
||
int
|
||
</em>
|
||
</td>
|
||
<td>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>server</code></br>
|
||
<em>
|
||
string
|
||
</em>
|
||
</td>
|
||
<td>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>tlsInsecureSkipVerify</code></br>
|
||
<em>
|
||
bool
|
||
</em>
|
||
</td>
|
||
<td>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>from</code></br>
|
||
<em>
|
||
string
|
||
</em>
|
||
</td>
|
||
<td>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>to</code></br>
|
||
<em>
|
||
string
|
||
</em>
|
||
</td>
|
||
<td>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h3 id="github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.SecretKeySelector">SecretKeySelector
|
||
</h3>
|
||
<p>
|
||
(<em>Appears on:</em>
|
||
<a href="#github.com%2fjenkinsci%2fkubernetes-operator%2fpkg%2fapis%2fjenkins%2fv1alpha2.Mailgun">Mailgun</a>,
|
||
<a href="#github.com%2fjenkinsci%2fkubernetes-operator%2fpkg%2fapis%2fjenkins%2fv1alpha2.MicrosoftTeams">MicrosoftTeams</a>,
|
||
<a href="#github.com%2fjenkinsci%2fkubernetes-operator%2fpkg%2fapis%2fjenkins%2fv1alpha2.SMTP">SMTP</a>,
|
||
<a href="#github.com%2fjenkinsci%2fkubernetes-operator%2fpkg%2fapis%2fjenkins%2fv1alpha2.Slack">Slack</a>)
|
||
</p>
|
||
<p>
|
||
<p>SecretKeySelector selects a key of a Secret.</p>
|
||
</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Field</th>
|
||
<th>Description</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>
|
||
<code>secret</code></br>
|
||
<em>
|
||
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#localobjectreference-v1-core">
|
||
Kubernetes core/v1.LocalObjectReference
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<p>The name of the secret in the pod&rsquo;s namespace to select from.</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>key</code></br>
|
||
<em>
|
||
string
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<p>The key of the secret to select from. Must be a valid secret key.</p>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h3 id="github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.SecretRef">SecretRef
|
||
</h3>
|
||
<p>
|
||
(<em>Appears on:</em>
|
||
<a href="#github.com%2fjenkinsci%2fkubernetes-operator%2fpkg%2fapis%2fjenkins%2fv1alpha2.Customization">Customization</a>)
|
||
</p>
|
||
<p>
|
||
<p>SecretRef is reference to Kubernetes secret.</p>
|
||
</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Field</th>
|
||
<th>Description</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>
|
||
<code>name</code></br>
|
||
<em>
|
||
string
|
||
</em>
|
||
</td>
|
||
<td>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h3 id="github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.SeedJob">SeedJob
|
||
</h3>
|
||
<p>
|
||
(<em>Appears on:</em>
|
||
<a href="#github.com%2fjenkinsci%2fkubernetes-operator%2fpkg%2fapis%2fjenkins%2fv1alpha2.JenkinsSpec">JenkinsSpec</a>)
|
||
</p>
|
||
<p>
|
||
<p>SeedJob defines configuration for seed job
|
||
More info: <a href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/configuration/#configure-seed-jobs-and-pipelines">https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/configuration/#configure-seed-jobs-and-pipelines</a>.</p>
|
||
</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Field</th>
|
||
<th>Description</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>
|
||
<code>id</code></br>
|
||
<em>
|
||
string
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<p>ID is the unique seed job name</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>credentialID</code></br>
|
||
<em>
|
||
string
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<p>CredentialID is the Kubernetes secret name which stores repository access credentials</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>description</code></br>
|
||
<em>
|
||
string
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>Description is the description of the seed job</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>targets</code></br>
|
||
<em>
|
||
string
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<p>Targets is the repository path where are seed job definitions</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>repositoryBranch</code></br>
|
||
<em>
|
||
string
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<p>RepositoryBranch is the repository branch where are seed job definitions</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>repositoryUrl</code></br>
|
||
<em>
|
||
string
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<p>RepositoryURL is the repository access URL. Can be SSH or HTTPS.</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>credentialType</code></br>
|
||
<em>
|
||
<a href="#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.JenkinsCredentialType">
|
||
JenkinsCredentialType
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>JenkinsCredentialType is the <a href="https://jenkinsci.github.io/kubernetes-credentials-provider-plugin/">https://jenkinsci.github.io/kubernetes-credentials-provider-plugin/</a> credential type</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>bitbucketPushTrigger</code></br>
|
||
<em>
|
||
bool
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>BitbucketPushTrigger is used for Bitbucket web hooks</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>githubPushTrigger</code></br>
|
||
<em>
|
||
bool
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>GitHubPushTrigger is used for GitHub web hooks</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>buildPeriodically</code></br>
|
||
<em>
|
||
string
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>BuildPeriodically is setting for scheduled trigger</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>pollSCM</code></br>
|
||
<em>
|
||
string
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>PollSCM is setting for polling changes in SCM</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>ignoreMissingFiles</code></br>
|
||
<em>
|
||
bool
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>IgnoreMissingFiles is setting for Job DSL API plugin to ignore files that miss</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>additionalClasspath</code></br>
|
||
<em>
|
||
string
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>AdditionalClasspath is setting for Job DSL API plugin to set Additional Classpath</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>failOnMissingPlugin</code></br>
|
||
<em>
|
||
bool
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>FailOnMissingPlugin is setting for Job DSL API plugin that fails job if required plugin is missing</p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>unstableOnDeprecation</code></br>
|
||
<em>
|
||
bool
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>UnstableOnDeprecation is setting for Job DSL API plugin that sets build status as unstable if build using deprecated features</p>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h3 id="github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Service">Service
|
||
</h3>
|
||
<p>
|
||
(<em>Appears on:</em>
|
||
<a href="#github.com%2fjenkinsci%2fkubernetes-operator%2fpkg%2fapis%2fjenkins%2fv1alpha2.JenkinsSpec">JenkinsSpec</a>)
|
||
</p>
|
||
<p>
|
||
<p>Service defines Kubernetes service attributes</p>
|
||
</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Field</th>
|
||
<th>Description</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>
|
||
<code>annotations</code></br>
|
||
<em>
|
||
map[string]string
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>Annotations is an unstructured key value map stored with a resource that may be
|
||
set by external tools to store and retrieve arbitrary metadata. They are not
|
||
queryable and should be preserved when modifying objects.
|
||
More info: <a href="http://kubernetes.io/docs/user-guide/annotations">http://kubernetes.io/docs/user-guide/annotations</a></p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>labels</code></br>
|
||
<em>
|
||
map[string]string
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>Route service traffic to pods with label keys and values matching this
|
||
selector. If empty or not present, the service is assumed to have an
|
||
external process managing its endpoints, which Kubernetes will not
|
||
modify. Only applies to types ClusterIP, NodePort, and LoadBalancer.
|
||
Ignored if type is ExternalName.
|
||
More info: <a href="https://kubernetes.io/docs/concepts/services-networking/service/">https://kubernetes.io/docs/concepts/services-networking/service/</a></p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>type</code></br>
|
||
<em>
|
||
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#servicetype-v1-core">
|
||
Kubernetes core/v1.ServiceType
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>Type determines how the Service is exposed. Defaults to ClusterIP. Valid
|
||
options are ExternalName, ClusterIP, NodePort, and LoadBalancer.
|
||
&ldquo;ExternalName&rdquo; maps to the specified externalName.
|
||
&ldquo;ClusterIP&rdquo; allocates a cluster-internal IP address for load-balancing to
|
||
endpoints. Endpoints are determined by the selector or if that is not
|
||
specified, by manual construction of an Endpoints object. If clusterIP is
|
||
&ldquo;None&rdquo;, no virtual IP is allocated and the endpoints are published as a
|
||
set of endpoints rather than a stable IP.
|
||
&ldquo;NodePort&rdquo; builds on ClusterIP and allocates a port on every node which
|
||
routes to the clusterIP.
|
||
&ldquo;LoadBalancer&rdquo; builds on NodePort and creates an
|
||
external load-balancer (if supported in the current cloud) which routes
|
||
to the clusterIP.
|
||
More info: <a href="https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services---service-types">https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services&mdash;service-types</a></p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>port</code></br>
|
||
<em>
|
||
int32
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<p>The port that are exposed by this service.
|
||
More info: <a href="https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies">https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies</a></p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>nodePort</code></br>
|
||
<em>
|
||
int32
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>The port on each node on which this service is exposed when type=NodePort or LoadBalancer.
|
||
Usually assigned by the system. If specified, it will be allocated to the service
|
||
if unused or else creation of the service will fail.
|
||
Default is to auto-allocate a port if the ServiceType of this Service requires one.
|
||
More info: <a href="https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport">https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport</a></p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>loadBalancerSourceRanges</code></br>
|
||
<em>
|
||
[]string
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>If specified and supported by the platform, this will restrict traffic through the cloud-provider
|
||
load-balancer will be restricted to the specified client IPs. This field will be ignored if the
|
||
cloud-provider does not support the feature.&rdquo;
|
||
More info: <a href="https://kubernetes.io/docs/tasks/administer-cluster/securing-a-cluster/#restricting-cloud-metadata-api-access">https://kubernetes.io/docs/tasks/administer-cluster/securing-a-cluster/#restricting-cloud-metadata-api-access</a></p>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td>
|
||
<code>loadBalancerIP</code></br>
|
||
<em>
|
||
string
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>Only applies to Service Type: LoadBalancer
|
||
LoadBalancer will get created with the IP specified in this field.
|
||
This feature depends on whether the underlying cloud-provider supports specifying
|
||
the loadBalancerIP when a load balancer is created.
|
||
This field will be ignored if the cloud-provider does not support the feature.</p>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h3 id="github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.ServiceAccount">ServiceAccount
|
||
</h3>
|
||
<p>
|
||
(<em>Appears on:</em>
|
||
<a href="#github.com%2fjenkinsci%2fkubernetes-operator%2fpkg%2fapis%2fjenkins%2fv1alpha2.JenkinsSpec">JenkinsSpec</a>)
|
||
</p>
|
||
<p>
|
||
<p>ServiceAccount defines Kubernetes service account attributes</p>
|
||
</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Field</th>
|
||
<th>Description</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>
|
||
<code>annotations</code></br>
|
||
<em>
|
||
map[string]string
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<em>(Optional)</em>
|
||
<p>Annotations is an unstructured key value map stored with a resource that may be
|
||
set by external tools to store and retrieve arbitrary metadata. They are not
|
||
queryable and should be preserved when modifying objects.
|
||
More info: <a href="http://kubernetes.io/docs/user-guide/annotations">http://kubernetes.io/docs/user-guide/annotations</a></p>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h3 id="github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Slack">Slack
|
||
</h3>
|
||
<p>
|
||
(<em>Appears on:</em>
|
||
<a href="#github.com%2fjenkinsci%2fkubernetes-operator%2fpkg%2fapis%2fjenkins%2fv1alpha2.Notification">Notification</a>)
|
||
</p>
|
||
<p>
|
||
<p>Slack is handler for Slack notification channel.</p>
|
||
</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Field</th>
|
||
<th>Description</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>
|
||
<code>webHookURLSecretKeySelector</code></br>
|
||
<em>
|
||
<a href="#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.SecretKeySelector">
|
||
SecretKeySelector
|
||
</a>
|
||
</em>
|
||
</td>
|
||
<td>
|
||
<p>The web hook URL to Slack App</p>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<hr/>
|
||
<p><em>
|
||
Generated with <code>gen-crd-api-reference-docs</code>
|
||
on git commit <code>fe81e5a</code>.
|
||
</em></p>
|
||
|
||
</description>
|
||
</item>
|
||
|
||
</channel>
|
||
</rss> |