Generate website

This commit is contained in:
Tomasz Sęk
2019-09-04 16:02:58 +02:00
parent d110a92f6e
commit 5e213b2f4b
102 changed files with 44857 additions and 0 deletions
+631
View File
@@ -0,0 +1,631 @@
<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="generator" content="Hugo 0.57.2" />
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
<link rel="alternate" type="application/rss&#43;xml" href="/docs/developer-guide/index.xml">
<link rel="shortcut icon" href="/favicons/favicon.ico" >
<link rel="apple-touch-icon" href="/favicons/apple-touch-icon-180x180.png" sizes="180x180">
<link rel="icon" type="image/png" href="/favicons/favicon-16x16.png" sizes="16x16">
<link rel="icon" type="image/png" href="/favicons/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="/favicons/android-36x36.png" sizes="36x36">
<link rel="icon" type="image/png" href="/favicons/android-48x48.png" sizes="48x48">
<link rel="icon" type="image/png" href="/favicons/android-72x72.png" sizes="72x72">
<link rel="icon" type="image/png" href="/favicons/android-96x196.png" sizes="96x196">
<link rel="icon" type="image/png" href="/favicons/android-144x144.png" sizes="144x144">
<link rel="icon" type="image/png" href="/favicons/android-192x192.png"sizes="192x192">
<title>Developer Guide | Jenkins Operator</title><meta property="og:title" content="Developer Guide" />
<meta property="og:description" content="Jenkins Operator for developers
" />
<meta property="og:type" content="website" />
<meta property="og:url" content="/docs/developer-guide/" />
<meta property="og:updated_time" content="2019-08-05T00:00:00+00:00" /><meta property="og:site_name" content="Jenkins Operator" />
<meta itemprop="name" content="Developer Guide">
<meta itemprop="description" content="Jenkins Operator for developers
">
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Developer Guide"/>
<meta name="twitter:description" content="Jenkins Operator for developers
"/>
<link rel="preload" href="/scss/main.min.401a1d444a3f374545e199eff2460fab833ab61f776ce23ec44dea9599dda6b1.css" as="style">
<link href="/scss/main.min.401a1d444a3f374545e199eff2460fab833ab61f776ce23ec44dea9599dda6b1.css" rel="stylesheet" integrity="">
<script
src="https://code.jquery.com/jquery-3.3.1.min.js"
integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
crossorigin="anonymous"></script>
<title>Developer Guide | Jenkins Operator</title>
</head>
<body class="td-section">
<header>
<nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar">
<a class="navbar-brand" href="/">
<img style="width: 32px; height: 32px; margin-right: 7.5px;" src="/img/logo.svg"></img><span class="text-uppercase font-weight-bold">Jenkins Operator</span>
</a>
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
<ul class="navbar-nav mt-2 mt-lg-0">
<li class="nav-item mr-4 mb-2 mb-lg-0">
<a class="nav-link" href="/about/"><span>What's Jenkins Operator?</span></a>
</li>
<li class="nav-item mr-4 mb-2 mb-lg-0">
<a class="nav-link" href="/docs/"><span>Documentation</span></a>
</li>
</ul>
</div>
<div class="navbar-nav d-none d-lg-block">
<input type="search" class="form-control td-search-input" placeholder="&#xf002 Search this site…" aria-label="Search this site…" autocomplete="off">
</div>
</nav>
</header>
<div class="container-fluid td-outer">
<div class="td-main">
<div class="row flex-xl-nowrap">
<div class="col-12 col-md-3 col-xl-2 td-sidebar d-print-none">
<div id="td-sidebar-menu" class="td-sidebar__inner">
<form class="td-sidebar__search d-flex align-items-center">
<input type="search" class="form-control td-search-input" placeholder="&#xf002 Search this site…" aria-label="Search this site…" autocomplete="off">
<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type="button" data-toggle="collapse" data-target="#td-section-nav" aria-controls="td-docs-nav" aria-expanded="false" aria-label="Toggle section navigation">
</button>
</form>
<nav class="collapse td-sidebar-nav pt-2 pl-4" id="td-section-nav">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Documentation</a>
</li>
<ul>
<li class="collapse show" id="docs">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/installation/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Installation</a>
</li>
<ul>
<li class="collapse " id="docs-installation">
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/how-it-works/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">How it works</a>
</li>
<ul>
<li class="collapse " id="docs-how-it-works">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-how-it-works-architecture-and-design" href="/docs/how-it-works/architecture-and-design/">Architecture and design</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-how-it-works-jenkins-docker-images" href="/docs/how-it-works/jenkins-docker-images/">Jenkins Docker Images</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Getting Started</a>
</li>
<ul>
<li class="collapse " id="docs-getting-started">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/v0.1.1/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.1.1</a>
</li>
<ul>
<li class="collapse " id="docs-getting-started-v0-1-1">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-deploy-jenkins" href="/docs/getting-started/v0.1.1/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-configuration" href="/docs/getting-started/v0.1.1/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-customization" href="/docs/getting-started/v0.1.1/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-aks" href="/docs/getting-started/v0.1.1/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-configure-backup-and-restore" href="/docs/getting-started/v0.1.1/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-diagnostics" href="/docs/getting-started/v0.1.1/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-scheme" href="/docs/getting-started/v0.1.1/scheme/">Scheme</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-migration-guide-v1alpha1-to-v1alpha2" href="/docs/getting-started/v0.1.1/migration-guide-v1alpha1-to-v1alpha2/">Migration guide from v1alpha1 to v1alpha2</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/v0.2.0/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.2.0</a>
</li>
<ul>
<li class="collapse " id="docs-getting-started-v0-2-0">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-deploy-jenkins" href="/docs/getting-started/v0.2.0/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-configuration" href="/docs/getting-started/v0.2.0/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-customization" href="/docs/getting-started/v0.2.0/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-aks" href="/docs/getting-started/v0.2.0/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-configure-backup-and-restore" href="/docs/getting-started/v0.2.0/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-migration" href="/docs/getting-started/v0.2.0/migration/">Migration from v0.1.1</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-diagnostics" href="/docs/getting-started/v0.2.0/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-scheme" href="/docs/getting-started/v0.2.0/scheme/">Scheme</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/security/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Security</a>
</li>
<ul>
<li class="collapse " id="docs-security">
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/developer-guide/" class="align-left pl-0 pr-2 active td-sidebar-link td-sidebar-link__section">Developer Guide</a>
</li>
<ul>
<li class="collapse show" id="docs-developer-guide">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-developer-guide-tools" href="/docs/developer-guide/tools/">Tools</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
</nav>
</div>
</div>
<main class="col-12 col-md-9 col-xl-10 pl-md-5" role="main">
<nav aria-label="breadcrumb" class="d-none d-md-block d-print-none">
<ol class="breadcrumb spb-1">
<li class="breadcrumb-item" >
<a href="/docs/">Documentation</a>
</li>
<li class="breadcrumb-item active" aria-current="page">
<a href="/docs/developer-guide/">Developer Guide</a>
</li>
</ol>
</nav >
<div class="td-content">
<h1>Developer Guide</h1>
<div class="lead">Jenkins Operator for developers</div>
<div class="pageinfo pageinfo-primary">
<p>This document explains how to setup your development environment.</p>
</div>
<h2 id="prerequisites">Prerequisites</h2>
<ul>
<li><a href="https://github.com/operator-framework/operator-sdk" target="_blank">operator_sdk</a> version v0.8.1</li>
<li><a href="https://git-scm.com/downloads" target="_blank">git</a></li>
<li><a href="https://golang.org/dl/" target="_blank">go</a> version v1.12+</li>
<li><a href="install_dev_tools.md" target="_blank">goimports, golint, checkmake and staticcheck</a></li>
<li><a href="https://kubernetes.io/docs/tasks/tools/install-minikube/" target="_blank">minikube</a> version v1.1.0+ (preferred Hypervisor - <a href="https://www.virtualbox.org/wiki/Downloads" target="_blank">virtualbox</a>)</li>
<li><a href="https://docs.docker.com/install/" target="_blank">docker</a> version 17.03+</li>
</ul>
<h2 id="clone-repository-and-download-dependencies">Clone repository and download dependencies</h2>
<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">mkdir -p <span style="color:#000">$GOPATH</span>/src/github.com/jenkinsci
<span style="color:#204a87">cd</span> <span style="color:#000">$GOPATH</span>/src/github.com/jenkinsci/
git clone git@github.com:jenkinsci/kubernetes-operator.git
<span style="color:#204a87">cd</span> kubernetes-operator
make go-dependencies</code></pre></div>
<h2 id="build-and-run-with-a-minikube">Build and run with a minikube</h2>
<p>Build and run <strong>jenkins-operator</strong> locally:</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">make minikube-run <span style="color:#000">EXTRA_ARGS</span><span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#4e9a06">&#39;--minikube --local&#39;</span></code></pre></div>
<p>Once minikube and <strong>jenkins-operator</strong> are up and running, apply Jenkins custom resource:</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 apply -f deploy/crds/jenkins_v1alpha2_jenkins_cr.yaml
kubectl get jenkins -o yaml
kubectl get po</code></pre></div>
<h2 id="build-and-run-with-a-remote-kubernetes-cluster">Build and run with a remote Kubernetes cluster</h2>
<p>You can also run the controller locally and make it listen to a remote Kubernetes server.</p>
<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">make run <span style="color:#000">NAMESPACE</span><span style="color:#ce5c00;font-weight:bold">=</span>default <span style="color:#000">KUBECTL_CONTEXT</span><span style="color:#ce5c00;font-weight:bold">=</span>remote-k8s <span style="color:#000">EXTRA_ARGS</span><span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#4e9a06">&#39;--kubeconfig ~/.kube/config&#39;</span></code></pre></div>
<p>Once minikube and <strong>jenkins-operator</strong> are up and running, apply Jenkins custom resource:</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 --context remote-k8s --namespace default apply -f deploy/crds/jenkins_v1alpha2_jenkins_cr.yaml
kubectl --context remote-k8s --namespace default get jenkins -o yaml
kubectl --context remote-k8s --namespace default get po</code></pre></div>
<h2 id="testing">Testing</h2>
<p>Run unit tests:</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">make test</code></pre></div>
<h3 id="running-e2e-tests-on-linux">Running E2E tests on Linux</h3>
<p>Run e2e tests with 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">make minikube-start
<span style="color:#204a87">eval</span> <span style="color:#204a87;font-weight:bold">$(</span>minikube docker-env<span style="color:#204a87;font-weight:bold">)</span>
make build e2e</code></pre></div>
<p>Run the specific e2e test:</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">make build e2e <span style="color:#000">E2E_TEST_SELECTOR</span><span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#4e9a06">&#39;^TestConfiguration$&#39;</span></code></pre></div>
<h3 id="running-e2e-tests-on-macos">Running E2E tests on macOS</h3>
<p>At first, you need to start 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">$ make minikube-start
$ <span style="color:#204a87">eval</span> <span style="color:#204a87;font-weight:bold">$(</span>minikube docker-env<span style="color:#204a87;font-weight:bold">)</span> </code></pre></div>
<p>Build Docker image inside provided Linux container by:</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">$ make indocker</code></pre></div>
<p>Build <strong>jenkins-operator</strong> inside container using:</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">$ make build</code></pre></div>
<p>Then exit the container and run:</p>
<pre><code>make e2e
</code></pre>
<h2 id="tips-tricks">Tips &amp; Tricks</h2>
<h3 id="building-docker-image-on-minikube-for-e2e-tests">Building docker image on minikube (for e2e tests)</h3>
<p>To be able to work with the docker daemon on <code>minikube</code> machine run the following command before building an image:</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"><span style="color:#204a87">eval</span> <span style="color:#204a87;font-weight:bold">$(</span>minikube docker-env<span style="color:#204a87;font-weight:bold">)</span></code></pre></div>
<h3 id="when-pkg-apis-jenkinsio-jenkins-types-go-has-changed">When <code>pkg/apis/jenkinsio/*/jenkins_types.go</code> has changed</h3>
<p>Run:</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">make deepcopy-gen</code></pre></div>
<h3 id="getting-jenkins-url-and-basic-credentials">Getting Jenkins URL and basic credentials</h3>
<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">minikube service jenkins-operator-http-&lt;cr_name&gt; --url
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>
<div class="section-index">
<hr class="panel-line">
<div class="entry">
<h5>
<a href="/docs/developer-guide/tools/">Tools</a>
</h5>
<p>Required tools for building and running Jenkins Operator
</p>
</div>
</div>
<div class="text-muted mt-5 pt-3 border-top">Last modified August 5, 2019
</div>
</div>
</main>
</div>
</div>
<footer class="bg-dark py-5 row d-print-none">
<div class="container-fluid mx-sm-5">
<div class="row">
<div class="col-6 col-sm-4 text-xs-center order-sm-2">
</div>
<div class="col-6 col-sm-4 text-right text-xs-center order-sm-3">
</div>
<div class="col-12 col-sm-4 text-center py-2 order-sm-2">
<small class="text-white">&copy; 2019 VirtusLab All Rights Reserved</small>
<p class="mt-2"><a href="/about/">What&#39;s the Jenkins Operator?</a></p>
</div>
</div>
</div>
</footer>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
<script src="/js/main.min.7b50e46a4d678dead3e0004b8f665cd640085d2539954f51d57c7346b9a92d74.js" integrity="sha256-e1Dkak1njerT4ABLj2Zc1kAIXSU5lU9R1XxzRrmpLXQ="></script>
</body>
</html>
+83
View File
@@ -0,0 +1,83 @@
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Jenkins Operator – Developer Guide</title>
<link>/docs/developer-guide/</link>
<description>Recent Hugo news from gohugo.io</description>
<generator>Hugo -- gohugo.io</generator>
<lastBuildDate>Mon, 05 Aug 2019 00:00:00 +0000</lastBuildDate>
<image>
<url>/img/hugo.png</url>
<title>GoHugo.io</title>
<link>/docs/developer-guide/</link>
</image>
<atom:link href="/docs/developer-guide/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Docs: Tools</title>
<link>/docs/developer-guide/tools/</link>
<pubDate>Mon, 05 Aug 2019 00:00:00 +0000</pubDate>
<guid>/docs/developer-guide/tools/</guid>
<description>
&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;
&lt;p&gt;This document explains how to install the Go tools used by the development process.&lt;/p&gt;
&lt;/div&gt;
&lt;h2 id=&#34;configure-environment-variables&#34;&gt;Configure environment variables&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;color:#204a87&#34;&gt;export&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;GOPATH&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;/home/go &lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# example value&lt;/span&gt;
&lt;span style=&#34;color:#204a87&#34;&gt;export&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;GOROOT&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;/usr/lib/go-1.12 &lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# example value&lt;/span&gt;
&lt;span style=&#34;color:#204a87&#34;&gt;export&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;PATH&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;$GOPATH&lt;/span&gt;/bin:&lt;span style=&#34;color:#000&#34;&gt;$PATH&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2 id=&#34;goimports&#34;&gt;goimports&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;go get golang.org/x/tools/cmd/goimports
cd $GOPATH/src/golang.org/x/tools/cmd/goimports
go build
go install
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&#34;golint&#34;&gt;golint&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;go get -u golang.org/x/lint/golint
cd $GOPATH/src/golang.org/x/lint/golint
go build
go install
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&#34;checkmake&#34;&gt;checkmake&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;go get github.com/mrtazz/checkmake
cd $GOPATH/src/github.com/mrtazz/checkmake
go build
go install
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&#34;staticcheck&#34;&gt;staticcheck&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;mkdir -p $GOPATH/src/github.com/dominikh/
cd $GOPATH/src/github.com/dominikh/
git clone https://github.com/dominikh/go-tools.git
cd $GOPATH/src/github.com/dominikh/go-tools/staticcheck
go build
go install
&lt;/code&gt;&lt;/pre&gt;
</description>
</item>
</channel>
</rss>
+542
View File
@@ -0,0 +1,542 @@
<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="generator" content="Hugo 0.57.2" />
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
<link rel="shortcut icon" href="/favicons/favicon.ico" >
<link rel="apple-touch-icon" href="/favicons/apple-touch-icon-180x180.png" sizes="180x180">
<link rel="icon" type="image/png" href="/favicons/favicon-16x16.png" sizes="16x16">
<link rel="icon" type="image/png" href="/favicons/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="/favicons/android-36x36.png" sizes="36x36">
<link rel="icon" type="image/png" href="/favicons/android-48x48.png" sizes="48x48">
<link rel="icon" type="image/png" href="/favicons/android-72x72.png" sizes="72x72">
<link rel="icon" type="image/png" href="/favicons/android-96x196.png" sizes="96x196">
<link rel="icon" type="image/png" href="/favicons/android-144x144.png" sizes="144x144">
<link rel="icon" type="image/png" href="/favicons/android-192x192.png"sizes="192x192">
<title>Tools | Jenkins Operator</title><meta property="og:title" content="Tools" />
<meta property="og:description" content="Required tools for building and running Jenkins Operator
" />
<meta property="og:type" content="article" />
<meta property="og:url" content="/docs/developer-guide/tools/" />
<meta property="article:published_time" content="2019-08-05T00:00:00+00:00" />
<meta property="article:modified_time" content="2019-08-05T00:00:00+00:00" /><meta property="og:site_name" content="Jenkins Operator" />
<meta itemprop="name" content="Tools">
<meta itemprop="description" content="Required tools for building and running Jenkins Operator
">
<meta itemprop="datePublished" content="2019-08-05T00:00:00&#43;00:00" />
<meta itemprop="dateModified" content="2019-08-05T00:00:00&#43;00:00" />
<meta itemprop="wordCount" content="75">
<meta itemprop="keywords" content="" />
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Tools"/>
<meta name="twitter:description" content="Required tools for building and running Jenkins Operator
"/>
<link rel="preload" href="/scss/main.min.401a1d444a3f374545e199eff2460fab833ab61f776ce23ec44dea9599dda6b1.css" as="style">
<link href="/scss/main.min.401a1d444a3f374545e199eff2460fab833ab61f776ce23ec44dea9599dda6b1.css" rel="stylesheet" integrity="">
<script
src="https://code.jquery.com/jquery-3.3.1.min.js"
integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
crossorigin="anonymous"></script>
<title>Tools | Jenkins Operator</title>
</head>
<body class="td-page">
<header>
<nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar">
<a class="navbar-brand" href="/">
<img style="width: 32px; height: 32px; margin-right: 7.5px;" src="/img/logo.svg"></img><span class="text-uppercase font-weight-bold">Jenkins Operator</span>
</a>
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
<ul class="navbar-nav mt-2 mt-lg-0">
<li class="nav-item mr-4 mb-2 mb-lg-0">
<a class="nav-link" href="/about/"><span>What's Jenkins Operator?</span></a>
</li>
<li class="nav-item mr-4 mb-2 mb-lg-0">
<a class="nav-link" href="/docs/"><span>Documentation</span></a>
</li>
</ul>
</div>
<div class="navbar-nav d-none d-lg-block">
<input type="search" class="form-control td-search-input" placeholder="&#xf002 Search this site…" aria-label="Search this site…" autocomplete="off">
</div>
</nav>
</header>
<div class="container-fluid td-outer">
<div class="td-main">
<div class="row flex-xl-nowrap">
<div class="col-12 col-md-3 col-xl-2 td-sidebar d-print-none">
<div id="td-sidebar-menu" class="td-sidebar__inner">
<form class="td-sidebar__search d-flex align-items-center">
<input type="search" class="form-control td-search-input" placeholder="&#xf002 Search this site…" aria-label="Search this site…" autocomplete="off">
<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type="button" data-toggle="collapse" data-target="#td-section-nav" aria-controls="td-docs-nav" aria-expanded="false" aria-label="Toggle section navigation">
</button>
</form>
<nav class="collapse td-sidebar-nav pt-2 pl-4" id="td-section-nav">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Documentation</a>
</li>
<ul>
<li class="collapse show" id="docs">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/installation/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Installation</a>
</li>
<ul>
<li class="collapse " id="docs-installation">
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/how-it-works/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">How it works</a>
</li>
<ul>
<li class="collapse " id="docs-how-it-works">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-how-it-works-architecture-and-design" href="/docs/how-it-works/architecture-and-design/">Architecture and design</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-how-it-works-jenkins-docker-images" href="/docs/how-it-works/jenkins-docker-images/">Jenkins Docker Images</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Getting Started</a>
</li>
<ul>
<li class="collapse " id="docs-getting-started">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/v0.1.1/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.1.1</a>
</li>
<ul>
<li class="collapse " id="docs-getting-started-v0-1-1">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-deploy-jenkins" href="/docs/getting-started/v0.1.1/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-configuration" href="/docs/getting-started/v0.1.1/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-customization" href="/docs/getting-started/v0.1.1/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-aks" href="/docs/getting-started/v0.1.1/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-configure-backup-and-restore" href="/docs/getting-started/v0.1.1/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-diagnostics" href="/docs/getting-started/v0.1.1/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-scheme" href="/docs/getting-started/v0.1.1/scheme/">Scheme</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-migration-guide-v1alpha1-to-v1alpha2" href="/docs/getting-started/v0.1.1/migration-guide-v1alpha1-to-v1alpha2/">Migration guide from v1alpha1 to v1alpha2</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/v0.2.0/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.2.0</a>
</li>
<ul>
<li class="collapse " id="docs-getting-started-v0-2-0">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-deploy-jenkins" href="/docs/getting-started/v0.2.0/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-configuration" href="/docs/getting-started/v0.2.0/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-customization" href="/docs/getting-started/v0.2.0/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-aks" href="/docs/getting-started/v0.2.0/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-configure-backup-and-restore" href="/docs/getting-started/v0.2.0/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-migration" href="/docs/getting-started/v0.2.0/migration/">Migration from v0.1.1</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-diagnostics" href="/docs/getting-started/v0.2.0/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-scheme" href="/docs/getting-started/v0.2.0/scheme/">Scheme</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/security/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Security</a>
</li>
<ul>
<li class="collapse " id="docs-security">
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/developer-guide/" class="align-left pl-0 pr-2 active td-sidebar-link td-sidebar-link__section">Developer Guide</a>
</li>
<ul>
<li class="collapse show" id="docs-developer-guide">
<a class="td-sidebar-link td-sidebar-link__page active" id="m-docs-developer-guide-tools" href="/docs/developer-guide/tools/">Tools</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
</nav>
</div>
</div>
<main class="col-12 col-md-9 col-xl-10 pl-md-5" role="main">
<nav aria-label="breadcrumb" class="d-none d-md-block d-print-none">
<ol class="breadcrumb spb-1">
<li class="breadcrumb-item" >
<a href="/docs/">Documentation</a>
</li>
<li class="breadcrumb-item" >
<a href="/docs/developer-guide/">Developer Guide</a>
</li>
<li class="breadcrumb-item active" aria-current="page">
<a href="/docs/developer-guide/tools/">Tools</a>
</li>
</ol>
</nav >
<div class="td-content">
<h1>Tools</h1>
<div class="lead">Required tools for building and running Jenkins Operator</div>
<div class="pageinfo pageinfo-primary">
<p>This document explains how to install the Go tools used by the development process.</p>
</div>
<h2 id="configure-environment-variables">Configure environment variables</h2>
<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"><span style="color:#204a87">export</span> <span style="color:#000">GOPATH</span><span style="color:#ce5c00;font-weight:bold">=</span>/home/go <span style="color:#8f5902;font-style:italic"># example value</span>
<span style="color:#204a87">export</span> <span style="color:#000">GOROOT</span><span style="color:#ce5c00;font-weight:bold">=</span>/usr/lib/go-1.12 <span style="color:#8f5902;font-style:italic"># example value</span>
<span style="color:#204a87">export</span> <span style="color:#000">PATH</span><span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#000">$GOPATH</span>/bin:<span style="color:#000">$PATH</span></code></pre></div>
<h2 id="goimports">goimports</h2>
<pre><code>go get golang.org/x/tools/cmd/goimports
cd $GOPATH/src/golang.org/x/tools/cmd/goimports
go build
go install
</code></pre>
<h2 id="golint">golint</h2>
<pre><code>go get -u golang.org/x/lint/golint
cd $GOPATH/src/golang.org/x/lint/golint
go build
go install
</code></pre>
<h2 id="checkmake">checkmake</h2>
<pre><code>go get github.com/mrtazz/checkmake
cd $GOPATH/src/github.com/mrtazz/checkmake
go build
go install
</code></pre>
<h2 id="staticcheck">staticcheck</h2>
<pre><code>mkdir -p $GOPATH/src/github.com/dominikh/
cd $GOPATH/src/github.com/dominikh/
git clone https://github.com/dominikh/go-tools.git
cd $GOPATH/src/github.com/dominikh/go-tools/staticcheck
go build
go install
</code></pre>
<div class="text-muted mt-5 pt-3 border-top">Last modified August 5, 2019
</div>
</div>
</main>
</div>
</div>
<footer class="bg-dark py-5 row d-print-none">
<div class="container-fluid mx-sm-5">
<div class="row">
<div class="col-6 col-sm-4 text-xs-center order-sm-2">
</div>
<div class="col-6 col-sm-4 text-right text-xs-center order-sm-3">
</div>
<div class="col-12 col-sm-4 text-center py-2 order-sm-2">
<small class="text-white">&copy; 2019 VirtusLab All Rights Reserved</small>
<p class="mt-2"><a href="/about/">What&#39;s the Jenkins Operator?</a></p>
</div>
</div>
</div>
</footer>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
<script src="/js/main.min.7b50e46a4d678dead3e0004b8f665cd640085d2539954f51d57c7346b9a92d74.js" integrity="sha256-e1Dkak1njerT4ABLj2Zc1kAIXSU5lU9R1XxzRrmpLXQ="></script>
</body>
</html>
+571
View File
@@ -0,0 +1,571 @@
<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="generator" content="Hugo 0.57.2" />
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
<link rel="alternate" type="application/rss&#43;xml" href="/docs/getting-started/index.xml">
<link rel="shortcut icon" href="/favicons/favicon.ico" >
<link rel="apple-touch-icon" href="/favicons/apple-touch-icon-180x180.png" sizes="180x180">
<link rel="icon" type="image/png" href="/favicons/favicon-16x16.png" sizes="16x16">
<link rel="icon" type="image/png" href="/favicons/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="/favicons/android-36x36.png" sizes="36x36">
<link rel="icon" type="image/png" href="/favicons/android-48x48.png" sizes="48x48">
<link rel="icon" type="image/png" href="/favicons/android-72x72.png" sizes="72x72">
<link rel="icon" type="image/png" href="/favicons/android-96x196.png" sizes="96x196">
<link rel="icon" type="image/png" href="/favicons/android-144x144.png" sizes="144x144">
<link rel="icon" type="image/png" href="/favicons/android-192x192.png"sizes="192x192">
<title>Getting Started | Jenkins Operator</title><meta property="og:title" content="Getting Started" />
<meta property="og:description" content="How to work with jenkins-operator
" />
<meta property="og:type" content="website" />
<meta property="og:url" content="/docs/getting-started/" />
<meta property="og:updated_time" content="2019-08-05T00:00:00+00:00" /><meta property="og:site_name" content="Jenkins Operator" />
<meta itemprop="name" content="Getting Started">
<meta itemprop="description" content="How to work with jenkins-operator
">
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Getting Started"/>
<meta name="twitter:description" content="How to work with jenkins-operator
"/>
<link rel="preload" href="/scss/main.min.401a1d444a3f374545e199eff2460fab833ab61f776ce23ec44dea9599dda6b1.css" as="style">
<link href="/scss/main.min.401a1d444a3f374545e199eff2460fab833ab61f776ce23ec44dea9599dda6b1.css" rel="stylesheet" integrity="">
<script
src="https://code.jquery.com/jquery-3.3.1.min.js"
integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
crossorigin="anonymous"></script>
<title>Getting Started | Jenkins Operator</title>
</head>
<body class="td-section">
<header>
<nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar">
<a class="navbar-brand" href="/">
<img style="width: 32px; height: 32px; margin-right: 7.5px;" src="/img/logo.svg"></img><span class="text-uppercase font-weight-bold">Jenkins Operator</span>
</a>
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
<ul class="navbar-nav mt-2 mt-lg-0">
<li class="nav-item mr-4 mb-2 mb-lg-0">
<a class="nav-link" href="/about/"><span>What's Jenkins Operator?</span></a>
</li>
<li class="nav-item mr-4 mb-2 mb-lg-0">
<a class="nav-link" href="/docs/"><span>Documentation</span></a>
</li>
</ul>
</div>
<div class="navbar-nav d-none d-lg-block">
<input type="search" class="form-control td-search-input" placeholder="&#xf002 Search this site…" aria-label="Search this site…" autocomplete="off">
</div>
</nav>
</header>
<div class="container-fluid td-outer">
<div class="td-main">
<div class="row flex-xl-nowrap">
<div class="col-12 col-md-3 col-xl-2 td-sidebar d-print-none">
<div id="td-sidebar-menu" class="td-sidebar__inner">
<form class="td-sidebar__search d-flex align-items-center">
<input type="search" class="form-control td-search-input" placeholder="&#xf002 Search this site…" aria-label="Search this site…" autocomplete="off">
<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type="button" data-toggle="collapse" data-target="#td-section-nav" aria-controls="td-docs-nav" aria-expanded="false" aria-label="Toggle section navigation">
</button>
</form>
<nav class="collapse td-sidebar-nav pt-2 pl-4" id="td-section-nav">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Documentation</a>
</li>
<ul>
<li class="collapse show" id="docs">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/installation/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Installation</a>
</li>
<ul>
<li class="collapse " id="docs-installation">
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/how-it-works/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">How it works</a>
</li>
<ul>
<li class="collapse " id="docs-how-it-works">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-how-it-works-architecture-and-design" href="/docs/how-it-works/architecture-and-design/">Architecture and design</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-how-it-works-jenkins-docker-images" href="/docs/how-it-works/jenkins-docker-images/">Jenkins Docker Images</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/" class="align-left pl-0 pr-2 active td-sidebar-link td-sidebar-link__section">Getting Started</a>
</li>
<ul>
<li class="collapse show" id="docs-getting-started">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/v0.1.1/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">v0.1.1</a>
</li>
<ul>
<li class="collapse show" id="docs-getting-started-v0-1-1">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-deploy-jenkins" href="/docs/getting-started/v0.1.1/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-configuration" href="/docs/getting-started/v0.1.1/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-customization" href="/docs/getting-started/v0.1.1/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-aks" href="/docs/getting-started/v0.1.1/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-configure-backup-and-restore" href="/docs/getting-started/v0.1.1/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-diagnostics" href="/docs/getting-started/v0.1.1/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-scheme" href="/docs/getting-started/v0.1.1/scheme/">Scheme</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-migration-guide-v1alpha1-to-v1alpha2" href="/docs/getting-started/v0.1.1/migration-guide-v1alpha1-to-v1alpha2/">Migration guide from v1alpha1 to v1alpha2</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/v0.2.0/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">v0.2.0</a>
</li>
<ul>
<li class="collapse show" id="docs-getting-started-v0-2-0">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-deploy-jenkins" href="/docs/getting-started/v0.2.0/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-configuration" href="/docs/getting-started/v0.2.0/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-customization" href="/docs/getting-started/v0.2.0/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-aks" href="/docs/getting-started/v0.2.0/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-configure-backup-and-restore" href="/docs/getting-started/v0.2.0/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-migration" href="/docs/getting-started/v0.2.0/migration/">Migration from v0.1.1</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-diagnostics" href="/docs/getting-started/v0.2.0/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-scheme" href="/docs/getting-started/v0.2.0/scheme/">Scheme</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/security/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Security</a>
</li>
<ul>
<li class="collapse " id="docs-security">
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/developer-guide/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Developer Guide</a>
</li>
<ul>
<li class="collapse " id="docs-developer-guide">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-developer-guide-tools" href="/docs/developer-guide/tools/">Tools</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
</nav>
</div>
</div>
<main class="col-12 col-md-9 col-xl-10 pl-md-5" role="main">
<nav aria-label="breadcrumb" class="d-none d-md-block d-print-none">
<ol class="breadcrumb spb-1">
<li class="breadcrumb-item" >
<a href="/docs/">Documentation</a>
</li>
<li class="breadcrumb-item active" aria-current="page">
<a href="/docs/getting-started/">Getting Started</a>
</li>
</ol>
</nav >
<div class="td-content">
<h1>Getting Started</h1>
<div class="lead">How to work with jenkins-operator</div>
<div class="pageinfo pageinfo-primary">
<p>This document describes a getting started guide for <strong>jenkins-operator</strong></p>
</div>
<h2 id="first-steps">First Steps</h2>
<p>Prepare your Kubernetes cluster and set up access.
Once you have running Kubernetes cluster you can focus on installing <strong>jenkins-operator</strong> according to the <a href="/docs/installation/">Installation</a> guide.</p>
<div class="section-index">
<hr class="panel-line">
<div class="entry">
<h5>
<a href="/docs/getting-started/v0.1.1/">v0.1.1</a>
</h5>
<p>How to work with jenkins-operator legacy version. We recommend migration to v0.2.0 version
</p>
</div>
<div class="entry">
<h5>
<a href="/docs/getting-started/v0.2.0/">v0.2.0</a>
</h5>
<p>How to work with jenkins-operator latest version
</p>
</div>
</div>
<div class="text-muted mt-5 pt-3 border-top">Last modified August 5, 2019
</div>
</div>
</main>
</div>
</div>
<footer class="bg-dark py-5 row d-print-none">
<div class="container-fluid mx-sm-5">
<div class="row">
<div class="col-6 col-sm-4 text-xs-center order-sm-2">
</div>
<div class="col-6 col-sm-4 text-right text-xs-center order-sm-3">
</div>
<div class="col-12 col-sm-4 text-center py-2 order-sm-2">
<small class="text-white">&copy; 2019 VirtusLab All Rights Reserved</small>
<p class="mt-2"><a href="/about/">What&#39;s the Jenkins Operator?</a></p>
</div>
</div>
</div>
</footer>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
<script src="/js/main.min.7b50e46a4d678dead3e0004b8f665cd640085d2539954f51d57c7346b9a92d74.js" integrity="sha256-e1Dkak1njerT4ABLj2Zc1kAIXSU5lU9R1XxzRrmpLXQ="></script>
</body>
</html>
+77
View File
@@ -0,0 +1,77 @@
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Jenkins Operator – Getting Started</title>
<link>/docs/getting-started/</link>
<description>Recent Hugo news from gohugo.io</description>
<generator>Hugo -- gohugo.io</generator>
<lastBuildDate>Mon, 05 Aug 2019 00:00:00 +0000</lastBuildDate>
<image>
<url>/img/hugo.png</url>
<title>GoHugo.io</title>
<link>/docs/getting-started/</link>
</image>
<atom:link href="/docs/getting-started/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Docs: v0.1.1</title>
<link>/docs/getting-started/v0.1.1/</link>
<pubDate>Mon, 05 Aug 2019 00:00:00 +0000</pubDate>
<guid>/docs/getting-started/v0.1.1/</guid>
<description>
&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;
&lt;p&gt;This document describes a getting started guide for &lt;strong&gt;jenkins-operator&lt;/strong&gt; &lt;code&gt;v0.1.1&lt;/code&gt; and an additional configuration.&lt;/p&gt;
&lt;/div&gt;
&lt;h2 id=&#34;first-steps&#34;&gt;First Steps&lt;/h2&gt;
&lt;p&gt;Prepare your Kubernetes cluster and set up access.
Once you have running Kubernetes cluster you can focus on installing &lt;strong&gt;jenkins-operator&lt;/strong&gt; according to the &lt;a href=&#34;/docs/installation/&#34;&gt;Installation&lt;/a&gt; guide.&lt;/p&gt;
</description>
</item>
<item>
<title>Docs: v0.2.0</title>
<link>/docs/getting-started/v0.2.0/</link>
<pubDate>Mon, 05 Aug 2019 00:00:00 +0000</pubDate>
<guid>/docs/getting-started/v0.2.0/</guid>
<description>
&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;
&lt;p&gt;This document describes a getting started guide for &lt;strong&gt;jenkins-operator&lt;/strong&gt; &lt;code&gt;v0.2.0&lt;/code&gt; and an additional configuration.&lt;/p&gt;
&lt;/div&gt;
&lt;h2 id=&#34;first-steps&#34;&gt;First Steps&lt;/h2&gt;
&lt;p&gt;Prepare your Kubernetes cluster and set up access.
Once you have running Kubernetes cluster you can focus on installing &lt;strong&gt;jenkins-operator&lt;/strong&gt; according to the &lt;a href=&#34;/docs/installation/&#34;&gt;Installation&lt;/a&gt; guide.&lt;/p&gt;
</description>
</item>
</channel>
</rss>
@@ -0,0 +1,516 @@
<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="generator" content="Hugo 0.57.2" />
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
<link rel="shortcut icon" href="/favicons/favicon.ico" >
<link rel="apple-touch-icon" href="/favicons/apple-touch-icon-180x180.png" sizes="180x180">
<link rel="icon" type="image/png" href="/favicons/favicon-16x16.png" sizes="16x16">
<link rel="icon" type="image/png" href="/favicons/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="/favicons/android-36x36.png" sizes="36x36">
<link rel="icon" type="image/png" href="/favicons/android-48x48.png" sizes="48x48">
<link rel="icon" type="image/png" href="/favicons/android-72x72.png" sizes="72x72">
<link rel="icon" type="image/png" href="/favicons/android-96x196.png" sizes="96x196">
<link rel="icon" type="image/png" href="/favicons/android-144x144.png" sizes="144x144">
<link rel="icon" type="image/png" href="/favicons/android-192x192.png"sizes="192x192">
<title>AKS | Jenkins Operator</title><meta property="og:title" content="AKS" />
<meta property="og:description" content="Additional configuration for Azure Kubernetes Service
" />
<meta property="og:type" content="article" />
<meta property="og:url" content="/docs/getting-started/v0.1.1/aks/" />
<meta property="article:published_time" content="2019-08-05T00:00:00+00:00" />
<meta property="article:modified_time" content="2019-08-05T00:00:00+00:00" /><meta property="og:site_name" content="Jenkins Operator" />
<meta itemprop="name" content="AKS">
<meta itemprop="description" content="Additional configuration for Azure Kubernetes Service
">
<meta itemprop="datePublished" content="2019-08-05T00:00:00&#43;00:00" />
<meta itemprop="dateModified" content="2019-08-05T00:00:00&#43;00:00" />
<meta itemprop="wordCount" content="41">
<meta itemprop="keywords" content="" />
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="AKS"/>
<meta name="twitter:description" content="Additional configuration for Azure Kubernetes Service
"/>
<link rel="preload" href="/scss/main.min.401a1d444a3f374545e199eff2460fab833ab61f776ce23ec44dea9599dda6b1.css" as="style">
<link href="/scss/main.min.401a1d444a3f374545e199eff2460fab833ab61f776ce23ec44dea9599dda6b1.css" rel="stylesheet" integrity="">
<script
src="https://code.jquery.com/jquery-3.3.1.min.js"
integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
crossorigin="anonymous"></script>
<title>AKS | Jenkins Operator</title>
</head>
<body class="td-page">
<header>
<nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar">
<a class="navbar-brand" href="/">
<img style="width: 32px; height: 32px; margin-right: 7.5px;" src="/img/logo.svg"></img><span class="text-uppercase font-weight-bold">Jenkins Operator</span>
</a>
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
<ul class="navbar-nav mt-2 mt-lg-0">
<li class="nav-item mr-4 mb-2 mb-lg-0">
<a class="nav-link" href="/about/"><span>What's Jenkins Operator?</span></a>
</li>
<li class="nav-item mr-4 mb-2 mb-lg-0">
<a class="nav-link" href="/docs/"><span>Documentation</span></a>
</li>
</ul>
</div>
<div class="navbar-nav d-none d-lg-block">
<input type="search" class="form-control td-search-input" placeholder="&#xf002 Search this site…" aria-label="Search this site…" autocomplete="off">
</div>
</nav>
</header>
<div class="container-fluid td-outer">
<div class="td-main">
<div class="row flex-xl-nowrap">
<div class="col-12 col-md-3 col-xl-2 td-sidebar d-print-none">
<div id="td-sidebar-menu" class="td-sidebar__inner">
<form class="td-sidebar__search d-flex align-items-center">
<input type="search" class="form-control td-search-input" placeholder="&#xf002 Search this site…" aria-label="Search this site…" autocomplete="off">
<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type="button" data-toggle="collapse" data-target="#td-section-nav" aria-controls="td-docs-nav" aria-expanded="false" aria-label="Toggle section navigation">
</button>
</form>
<nav class="collapse td-sidebar-nav pt-2 pl-4" id="td-section-nav">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Documentation</a>
</li>
<ul>
<li class="collapse show" id="docs">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/installation/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Installation</a>
</li>
<ul>
<li class="collapse " id="docs-installation">
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/how-it-works/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">How it works</a>
</li>
<ul>
<li class="collapse " id="docs-how-it-works">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-how-it-works-architecture-and-design" href="/docs/how-it-works/architecture-and-design/">Architecture and design</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-how-it-works-jenkins-docker-images" href="/docs/how-it-works/jenkins-docker-images/">Jenkins Docker Images</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Getting Started</a>
</li>
<ul>
<li class="collapse show" id="docs-getting-started">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/v0.1.1/" class="align-left pl-0 pr-2 active td-sidebar-link td-sidebar-link__section">v0.1.1</a>
</li>
<ul>
<li class="collapse show" id="docs-getting-started-v0-1-1">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-deploy-jenkins" href="/docs/getting-started/v0.1.1/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-configuration" href="/docs/getting-started/v0.1.1/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-customization" href="/docs/getting-started/v0.1.1/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page active" id="m-docs-getting-started-v0-1-1-aks" href="/docs/getting-started/v0.1.1/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-configure-backup-and-restore" href="/docs/getting-started/v0.1.1/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-diagnostics" href="/docs/getting-started/v0.1.1/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-scheme" href="/docs/getting-started/v0.1.1/scheme/">Scheme</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-migration-guide-v1alpha1-to-v1alpha2" href="/docs/getting-started/v0.1.1/migration-guide-v1alpha1-to-v1alpha2/">Migration guide from v1alpha1 to v1alpha2</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/v0.2.0/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.2.0</a>
</li>
<ul>
<li class="collapse " id="docs-getting-started-v0-2-0">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-deploy-jenkins" href="/docs/getting-started/v0.2.0/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-configuration" href="/docs/getting-started/v0.2.0/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-customization" href="/docs/getting-started/v0.2.0/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-aks" href="/docs/getting-started/v0.2.0/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-configure-backup-and-restore" href="/docs/getting-started/v0.2.0/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-migration" href="/docs/getting-started/v0.2.0/migration/">Migration from v0.1.1</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-diagnostics" href="/docs/getting-started/v0.2.0/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-scheme" href="/docs/getting-started/v0.2.0/scheme/">Scheme</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/security/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Security</a>
</li>
<ul>
<li class="collapse " id="docs-security">
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/developer-guide/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Developer Guide</a>
</li>
<ul>
<li class="collapse " id="docs-developer-guide">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-developer-guide-tools" href="/docs/developer-guide/tools/">Tools</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
</nav>
</div>
</div>
<main class="col-12 col-md-9 col-xl-10 pl-md-5" role="main">
<nav aria-label="breadcrumb" class="d-none d-md-block d-print-none">
<ol class="breadcrumb spb-1">
<li class="breadcrumb-item" >
<a href="/docs/">Documentation</a>
</li>
<li class="breadcrumb-item" >
<a href="/docs/getting-started/">Getting Started</a>
</li>
<li class="breadcrumb-item" >
<a href="/docs/getting-started/v0.1.1/">v0.1.1</a>
</li>
<li class="breadcrumb-item active" aria-current="page">
<a href="/docs/getting-started/v0.1.1/aks/">AKS</a>
</li>
</ol>
</nav >
<div class="td-content">
<h1>AKS</h1>
<div class="lead">Additional configuration for Azure Kubernetes Service</div>
<p>Azure AKS managed Kubernetes service adds to every pod the following envs:</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 envs when checking if Jenkins pod envs have been changed. It prevents
restart Jenkins pod over and over again.</p>
<div class="text-muted mt-5 pt-3 border-top">Last modified August 5, 2019
</div>
</div>
</main>
</div>
</div>
<footer class="bg-dark py-5 row d-print-none">
<div class="container-fluid mx-sm-5">
<div class="row">
<div class="col-6 col-sm-4 text-xs-center order-sm-2">
</div>
<div class="col-6 col-sm-4 text-right text-xs-center order-sm-3">
</div>
<div class="col-12 col-sm-4 text-center py-2 order-sm-2">
<small class="text-white">&copy; 2019 VirtusLab All Rights Reserved</small>
<p class="mt-2"><a href="/about/">What&#39;s the Jenkins Operator?</a></p>
</div>
</div>
</div>
</footer>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
<script src="/js/main.min.7b50e46a4d678dead3e0004b8f665cd640085d2539954f51d57c7346b9a92d74.js" integrity="sha256-e1Dkak1njerT4ABLj2Zc1kAIXSU5lU9R1XxzRrmpLXQ="></script>
</body>
</html>
@@ -0,0 +1,741 @@
<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="generator" content="Hugo 0.57.2" />
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
<link rel="shortcut icon" href="/favicons/favicon.ico" >
<link rel="apple-touch-icon" href="/favicons/apple-touch-icon-180x180.png" sizes="180x180">
<link rel="icon" type="image/png" href="/favicons/favicon-16x16.png" sizes="16x16">
<link rel="icon" type="image/png" href="/favicons/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="/favicons/android-36x36.png" sizes="36x36">
<link rel="icon" type="image/png" href="/favicons/android-48x48.png" sizes="48x48">
<link rel="icon" type="image/png" href="/favicons/android-72x72.png" sizes="72x72">
<link rel="icon" type="image/png" href="/favicons/android-96x196.png" sizes="96x196">
<link rel="icon" type="image/png" href="/favicons/android-144x144.png" sizes="144x144">
<link rel="icon" type="image/png" href="/favicons/android-192x192.png"sizes="192x192">
<title>Configuration | Jenkins Operator</title><meta property="og:title" content="Configuration" />
<meta property="og:description" content="How to configure Jenkins with Operator
" />
<meta property="og:type" content="article" />
<meta property="og:url" content="/docs/getting-started/v0.1.1/configuration/" />
<meta property="article:published_time" content="2019-08-05T00:00:00+00:00" />
<meta property="article:modified_time" content="2019-08-05T00:00:00+00:00" /><meta property="og:site_name" content="Jenkins Operator" />
<meta itemprop="name" content="Configuration">
<meta itemprop="description" content="How to configure Jenkins with Operator
">
<meta itemprop="datePublished" content="2019-08-05T00:00:00&#43;00:00" />
<meta itemprop="dateModified" content="2019-08-05T00:00:00&#43;00:00" />
<meta itemprop="wordCount" content="618">
<meta itemprop="keywords" content="" />
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Configuration"/>
<meta name="twitter:description" content="How to configure Jenkins with Operator
"/>
<link rel="preload" href="/scss/main.min.401a1d444a3f374545e199eff2460fab833ab61f776ce23ec44dea9599dda6b1.css" as="style">
<link href="/scss/main.min.401a1d444a3f374545e199eff2460fab833ab61f776ce23ec44dea9599dda6b1.css" rel="stylesheet" integrity="">
<script
src="https://code.jquery.com/jquery-3.3.1.min.js"
integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
crossorigin="anonymous"></script>
<title>Configuration | Jenkins Operator</title>
</head>
<body class="td-page">
<header>
<nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar">
<a class="navbar-brand" href="/">
<img style="width: 32px; height: 32px; margin-right: 7.5px;" src="/img/logo.svg"></img><span class="text-uppercase font-weight-bold">Jenkins Operator</span>
</a>
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
<ul class="navbar-nav mt-2 mt-lg-0">
<li class="nav-item mr-4 mb-2 mb-lg-0">
<a class="nav-link" href="/about/"><span>What's Jenkins Operator?</span></a>
</li>
<li class="nav-item mr-4 mb-2 mb-lg-0">
<a class="nav-link" href="/docs/"><span>Documentation</span></a>
</li>
</ul>
</div>
<div class="navbar-nav d-none d-lg-block">
<input type="search" class="form-control td-search-input" placeholder="&#xf002 Search this site…" aria-label="Search this site…" autocomplete="off">
</div>
</nav>
</header>
<div class="container-fluid td-outer">
<div class="td-main">
<div class="row flex-xl-nowrap">
<div class="col-12 col-md-3 col-xl-2 td-sidebar d-print-none">
<div id="td-sidebar-menu" class="td-sidebar__inner">
<form class="td-sidebar__search d-flex align-items-center">
<input type="search" class="form-control td-search-input" placeholder="&#xf002 Search this site…" aria-label="Search this site…" autocomplete="off">
<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type="button" data-toggle="collapse" data-target="#td-section-nav" aria-controls="td-docs-nav" aria-expanded="false" aria-label="Toggle section navigation">
</button>
</form>
<nav class="collapse td-sidebar-nav pt-2 pl-4" id="td-section-nav">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Documentation</a>
</li>
<ul>
<li class="collapse show" id="docs">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/installation/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Installation</a>
</li>
<ul>
<li class="collapse " id="docs-installation">
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/how-it-works/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">How it works</a>
</li>
<ul>
<li class="collapse " id="docs-how-it-works">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-how-it-works-architecture-and-design" href="/docs/how-it-works/architecture-and-design/">Architecture and design</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-how-it-works-jenkins-docker-images" href="/docs/how-it-works/jenkins-docker-images/">Jenkins Docker Images</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Getting Started</a>
</li>
<ul>
<li class="collapse show" id="docs-getting-started">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/v0.1.1/" class="align-left pl-0 pr-2 active td-sidebar-link td-sidebar-link__section">v0.1.1</a>
</li>
<ul>
<li class="collapse show" id="docs-getting-started-v0-1-1">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-deploy-jenkins" href="/docs/getting-started/v0.1.1/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page active" id="m-docs-getting-started-v0-1-1-configuration" href="/docs/getting-started/v0.1.1/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-customization" href="/docs/getting-started/v0.1.1/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-aks" href="/docs/getting-started/v0.1.1/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-configure-backup-and-restore" href="/docs/getting-started/v0.1.1/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-diagnostics" href="/docs/getting-started/v0.1.1/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-scheme" href="/docs/getting-started/v0.1.1/scheme/">Scheme</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-migration-guide-v1alpha1-to-v1alpha2" href="/docs/getting-started/v0.1.1/migration-guide-v1alpha1-to-v1alpha2/">Migration guide from v1alpha1 to v1alpha2</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/v0.2.0/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.2.0</a>
</li>
<ul>
<li class="collapse " id="docs-getting-started-v0-2-0">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-deploy-jenkins" href="/docs/getting-started/v0.2.0/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-configuration" href="/docs/getting-started/v0.2.0/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-customization" href="/docs/getting-started/v0.2.0/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-aks" href="/docs/getting-started/v0.2.0/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-configure-backup-and-restore" href="/docs/getting-started/v0.2.0/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-migration" href="/docs/getting-started/v0.2.0/migration/">Migration from v0.1.1</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-diagnostics" href="/docs/getting-started/v0.2.0/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-scheme" href="/docs/getting-started/v0.2.0/scheme/">Scheme</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/security/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Security</a>
</li>
<ul>
<li class="collapse " id="docs-security">
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/developer-guide/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Developer Guide</a>
</li>
<ul>
<li class="collapse " id="docs-developer-guide">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-developer-guide-tools" href="/docs/developer-guide/tools/">Tools</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
</nav>
</div>
</div>
<main class="col-12 col-md-9 col-xl-10 pl-md-5" role="main">
<nav aria-label="breadcrumb" class="d-none d-md-block d-print-none">
<ol class="breadcrumb spb-1">
<li class="breadcrumb-item" >
<a href="/docs/">Documentation</a>
</li>
<li class="breadcrumb-item" >
<a href="/docs/getting-started/">Getting Started</a>
</li>
<li class="breadcrumb-item" >
<a href="/docs/getting-started/v0.1.1/">v0.1.1</a>
</li>
<li class="breadcrumb-item active" aria-current="page">
<a href="/docs/getting-started/v0.1.1/configuration/">Configuration</a>
</li>
</ol>
</nav >
<div class="td-content">
<h1>Configuration</h1>
<div class="lead">How to configure Jenkins with Operator</div>
<p>Jenkins operator uses <a href="https://github.com/jenkinsci/job-dsl-plugin" target="_blank">job-dsl</a> and <a href="https://jenkinsci.github.io/kubernetes-credentials-provider-plugin/" target="_blank">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
│   └── build.jenkins
└── pipelines
└── build.jenkins
</code></pre>
<p><strong>cicd/jobs/build.jenkins</strong> it&rsquo;s a job definition:</p>
<pre><code>#!/usr/bin/env groovy
pipelineJob('build-jenkins-operator') {
displayName('Build jenkins-operator')
definition {
cpsScm {
scm {
git {
remote {
url('https://github.com/jenkinsci/kubernetes-operator.git')
credentials('jenkins-operator')
}
branches('*/master')
}
}
scriptPath('cicd/pipelines/build.jenkins')
}
}
}
</code></pre>
<p><strong>cicd/jobs/build.jenkins</strong> it&rsquo;s an actual Jenkins pipeline:</p>
<pre><code>#!/usr/bin/env groovy
def label = &quot;build-jenkins-operator-${UUID.randomUUID().toString()}&quot;
def home = &quot;/home/jenkins&quot;
def workspace = &quot;${home}/workspace/build-jenkins-operator&quot;
def workdir = &quot;${workspace}/src/github.com/jenkinsci/kubernetes-operator/&quot;
podTemplate(label: label,
containers: [
containerTemplate(name: 'jnlp', image: 'jenkins/jnlp-slave:alpine'),
containerTemplate(name: 'go', image: 'golang:1-alpine', command: 'cat', ttyEnabled: true),
],
envVars: [
envVar(key: 'GOPATH', value: workspace),
],
) {
node(label) {
dir(workdir) {
stage('Init') {
timeout(time: 3, unit: 'MINUTES') {
checkout scm
}
container('go') {
sh 'apk --no-cache --update add make git gcc libc-dev'
}
}
stage('Dep') {
container('go') {
sh 'make dep'
}
}
stage('Test') {
container('go') {
sh 'make test'
}
}
stage('Build') {
container('go') {
sh 'make build'
}
}
}
}
}
</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: &quot;cicd/jobs/*.jenkins&quot;
description: &quot;Jenkins Operator repository&quot;
repositoryBranch: master
repositoryUrl: https://github.com/jenkinsci/kubernetes-operator.git
</code></pre>
<p><strong>jenkins-operator</strong> will automatically discover and configure all seed jobs.</p>
<p>You can verify if deploy keys were successfully configured in Jenkins <strong>Credentials</strong> tab.</p>
<p><img src="/img/jenkins-credentials.png" alt="jenkins" /></p>
<p>You can verify if your pipelines were successfully configured in Jenkins Seed Job console output.</p>
<p><img src="/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 seed job like:</p>
<pre><code>apiVersion: jenkins.io/v1alpha2
kind: Jenkins
metadata:
name: example
spec:
seedJobs:
- id: jenkins-operator-ssh
credentialType: basicSSHUserPrivateKey
credentialID: k8s-ssh
targets: &quot;cicd/jobs/*.jenkins&quot;
description: &quot;Jenkins Operator repository&quot;
repositoryBranch: master
repositoryUrl: git@github.com:jenkinsci/kubernetes-operator.git
</code></pre>
<p>and create 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
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 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: &quot;cicd/jobs/*.jenkins&quot;
description: &quot;Jenkins Operator repository&quot;
repositoryBranch: master
repositoryUrl: https://github.com/jenkinsci/kubernetes-operator.git
</code></pre>
<p>and create 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>
<h2 id="jenkins-login-credentials">Jenkins login credentials</h2>
<p>The operator automatically generate Jenkins user name and password and stores it in Kubernetes secret named
<code>jenkins-operator-credentials-&lt;cr_name&gt;</code> in namespace where Jenkins CR has been deployed.</p>
<p>If you want change it you can override the secret:</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>Secret<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-credentials-&lt;cr-name<span style="color:#8f5902;font-style:italic">&gt;
</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>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>user<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>&lt;base64-encoded-new-username<span style="color:#8f5902;font-style:italic">&gt;
</span><span style="color:#8f5902;font-style:italic"> password: &lt;base64-encoded-new-password&gt;</span></code></pre></div>
<p>If needed <strong>jenkins-operator</strong> will restart Jenkins master pod and then you can login with the new user and password
credentials.</p>
<h2 id="override-default-jenkins-container-command">Override default Jenkins container command</h2>
<p>The default command for the Jenkins master container <code>jenkins/jenkins:lts</code> looks like:</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">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>bash<span style="color:#f8f8f8;text-decoration:underline">
</span><span style="color:#f8f8f8;text-decoration:underline"></span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>-c<span style="color:#f8f8f8;text-decoration:underline">
</span><span style="color:#f8f8f8;text-decoration:underline"></span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>/var/jenkins/scripts/init.sh<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>/sbin/tini<span style="color:#f8f8f8;text-decoration:underline"> </span>-s<span style="color:#f8f8f8;text-decoration:underline"> </span>--<span style="color:#f8f8f8;text-decoration:underline"> </span>/usr/local/bin/jenkins.sh</code></pre></div>
<p>The script<code>/var/jenkins/scripts/init.sh</code> is provided be the operator and configures init.groovy.d(creates Jenkins user)
and installs plugins.
The <code>/sbin/tini -s -- /usr/local/bin/jenkins.sh</code> command runs the Jenkins master main process.</p>
<p>You can overwrite it in the following pattern:</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">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>bash<span style="color:#f8f8f8;text-decoration:underline">
</span><span style="color:#f8f8f8;text-decoration:underline"></span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>-c<span style="color:#f8f8f8;text-decoration:underline">
</span><span style="color:#f8f8f8;text-decoration:underline"></span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>/var/jenkins/scripts/init.sh<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>&lt;custom-code-here&gt;<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>/sbin/tini<span style="color:#f8f8f8;text-decoration:underline"> </span>-s<span style="color:#f8f8f8;text-decoration:underline"> </span>--<span style="color:#f8f8f8;text-decoration:underline"> </span>/usr/local/bin/jenkins.sh</code></pre></div>
<div class="text-muted mt-5 pt-3 border-top">Last modified August 5, 2019
</div>
</div>
</main>
</div>
</div>
<footer class="bg-dark py-5 row d-print-none">
<div class="container-fluid mx-sm-5">
<div class="row">
<div class="col-6 col-sm-4 text-xs-center order-sm-2">
</div>
<div class="col-6 col-sm-4 text-right text-xs-center order-sm-3">
</div>
<div class="col-12 col-sm-4 text-center py-2 order-sm-2">
<small class="text-white">&copy; 2019 VirtusLab All Rights Reserved</small>
<p class="mt-2"><a href="/about/">What&#39;s the Jenkins Operator?</a></p>
</div>
</div>
</div>
</footer>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
<script src="/js/main.min.7b50e46a4d678dead3e0004b8f665cd640085d2539954f51d57c7346b9a92d74.js" integrity="sha256-e1Dkak1njerT4ABLj2Zc1kAIXSU5lU9R1XxzRrmpLXQ="></script>
</body>
</html>
@@ -0,0 +1,572 @@
<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="generator" content="Hugo 0.57.2" />
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
<link rel="shortcut icon" href="/favicons/favicon.ico" >
<link rel="apple-touch-icon" href="/favicons/apple-touch-icon-180x180.png" sizes="180x180">
<link rel="icon" type="image/png" href="/favicons/favicon-16x16.png" sizes="16x16">
<link rel="icon" type="image/png" href="/favicons/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="/favicons/android-36x36.png" sizes="36x36">
<link rel="icon" type="image/png" href="/favicons/android-48x48.png" sizes="48x48">
<link rel="icon" type="image/png" href="/favicons/android-72x72.png" sizes="72x72">
<link rel="icon" type="image/png" href="/favicons/android-96x196.png" sizes="96x196">
<link rel="icon" type="image/png" href="/favicons/android-144x144.png" sizes="144x144">
<link rel="icon" type="image/png" href="/favicons/android-192x192.png"sizes="192x192">
<title>Configure backup and restore | Jenkins Operator</title><meta property="og:title" content="Configure backup and restore" />
<meta property="og:description" content="Prevent job history loss
" />
<meta property="og:type" content="article" />
<meta property="og:url" content="/docs/getting-started/v0.1.1/configure-backup-and-restore/" />
<meta property="article:published_time" content="2019-08-05T00:00:00+00:00" />
<meta property="article:modified_time" content="2019-08-05T00:00:00+00:00" /><meta property="og:site_name" content="Jenkins Operator" />
<meta itemprop="name" content="Configure backup and restore">
<meta itemprop="description" content="Prevent job history loss
">
<meta itemprop="datePublished" content="2019-08-05T00:00:00&#43;00:00" />
<meta itemprop="dateModified" content="2019-08-05T00:00:00&#43;00:00" />
<meta itemprop="wordCount" content="148">
<meta itemprop="keywords" content="" />
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Configure backup and restore"/>
<meta name="twitter:description" content="Prevent job history loss
"/>
<link rel="preload" href="/scss/main.min.401a1d444a3f374545e199eff2460fab833ab61f776ce23ec44dea9599dda6b1.css" as="style">
<link href="/scss/main.min.401a1d444a3f374545e199eff2460fab833ab61f776ce23ec44dea9599dda6b1.css" rel="stylesheet" integrity="">
<script
src="https://code.jquery.com/jquery-3.3.1.min.js"
integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
crossorigin="anonymous"></script>
<title>Configure backup and restore | Jenkins Operator</title>
</head>
<body class="td-page">
<header>
<nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar">
<a class="navbar-brand" href="/">
<img style="width: 32px; height: 32px; margin-right: 7.5px;" src="/img/logo.svg"></img><span class="text-uppercase font-weight-bold">Jenkins Operator</span>
</a>
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
<ul class="navbar-nav mt-2 mt-lg-0">
<li class="nav-item mr-4 mb-2 mb-lg-0">
<a class="nav-link" href="/about/"><span>What's Jenkins Operator?</span></a>
</li>
<li class="nav-item mr-4 mb-2 mb-lg-0">
<a class="nav-link" href="/docs/"><span>Documentation</span></a>
</li>
</ul>
</div>
<div class="navbar-nav d-none d-lg-block">
<input type="search" class="form-control td-search-input" placeholder="&#xf002 Search this site…" aria-label="Search this site…" autocomplete="off">
</div>
</nav>
</header>
<div class="container-fluid td-outer">
<div class="td-main">
<div class="row flex-xl-nowrap">
<div class="col-12 col-md-3 col-xl-2 td-sidebar d-print-none">
<div id="td-sidebar-menu" class="td-sidebar__inner">
<form class="td-sidebar__search d-flex align-items-center">
<input type="search" class="form-control td-search-input" placeholder="&#xf002 Search this site…" aria-label="Search this site…" autocomplete="off">
<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type="button" data-toggle="collapse" data-target="#td-section-nav" aria-controls="td-docs-nav" aria-expanded="false" aria-label="Toggle section navigation">
</button>
</form>
<nav class="collapse td-sidebar-nav pt-2 pl-4" id="td-section-nav">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Documentation</a>
</li>
<ul>
<li class="collapse show" id="docs">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/installation/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Installation</a>
</li>
<ul>
<li class="collapse " id="docs-installation">
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/how-it-works/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">How it works</a>
</li>
<ul>
<li class="collapse " id="docs-how-it-works">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-how-it-works-architecture-and-design" href="/docs/how-it-works/architecture-and-design/">Architecture and design</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-how-it-works-jenkins-docker-images" href="/docs/how-it-works/jenkins-docker-images/">Jenkins Docker Images</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Getting Started</a>
</li>
<ul>
<li class="collapse show" id="docs-getting-started">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/v0.1.1/" class="align-left pl-0 pr-2 active td-sidebar-link td-sidebar-link__section">v0.1.1</a>
</li>
<ul>
<li class="collapse show" id="docs-getting-started-v0-1-1">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-deploy-jenkins" href="/docs/getting-started/v0.1.1/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-configuration" href="/docs/getting-started/v0.1.1/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-customization" href="/docs/getting-started/v0.1.1/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-aks" href="/docs/getting-started/v0.1.1/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page active" id="m-docs-getting-started-v0-1-1-configure-backup-and-restore" href="/docs/getting-started/v0.1.1/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-diagnostics" href="/docs/getting-started/v0.1.1/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-scheme" href="/docs/getting-started/v0.1.1/scheme/">Scheme</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-migration-guide-v1alpha1-to-v1alpha2" href="/docs/getting-started/v0.1.1/migration-guide-v1alpha1-to-v1alpha2/">Migration guide from v1alpha1 to v1alpha2</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/v0.2.0/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.2.0</a>
</li>
<ul>
<li class="collapse " id="docs-getting-started-v0-2-0">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-deploy-jenkins" href="/docs/getting-started/v0.2.0/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-configuration" href="/docs/getting-started/v0.2.0/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-customization" href="/docs/getting-started/v0.2.0/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-aks" href="/docs/getting-started/v0.2.0/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-configure-backup-and-restore" href="/docs/getting-started/v0.2.0/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-migration" href="/docs/getting-started/v0.2.0/migration/">Migration from v0.1.1</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-diagnostics" href="/docs/getting-started/v0.2.0/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-scheme" href="/docs/getting-started/v0.2.0/scheme/">Scheme</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/security/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Security</a>
</li>
<ul>
<li class="collapse " id="docs-security">
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/developer-guide/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Developer Guide</a>
</li>
<ul>
<li class="collapse " id="docs-developer-guide">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-developer-guide-tools" href="/docs/developer-guide/tools/">Tools</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
</nav>
</div>
</div>
<main class="col-12 col-md-9 col-xl-10 pl-md-5" role="main">
<nav aria-label="breadcrumb" class="d-none d-md-block d-print-none">
<ol class="breadcrumb spb-1">
<li class="breadcrumb-item" >
<a href="/docs/">Documentation</a>
</li>
<li class="breadcrumb-item" >
<a href="/docs/getting-started/">Getting Started</a>
</li>
<li class="breadcrumb-item" >
<a href="/docs/getting-started/v0.1.1/">v0.1.1</a>
</li>
<li class="breadcrumb-item active" aria-current="page">
<a href="/docs/getting-started/v0.1.1/configure-backup-and-restore/">Configure backup and restore</a>
</li>
</ol>
</nav >
<div class="td-content">
<h1>Configure backup and restore</h1>
<div class="lead">Prevent job history loss</div>
<p>Backup and restore is done by container sidecar.</p>
<h4 id="create-pvc">Create PVC</h4>
<p>Save to file 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"> namespace: &lt;namesapce&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 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;namesapce&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"> 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>lts<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>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">.0.6</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"> 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>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 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>
<div class="text-muted mt-5 pt-3 border-top">Last modified August 5, 2019
</div>
</div>
</main>
</div>
</div>
<footer class="bg-dark py-5 row d-print-none">
<div class="container-fluid mx-sm-5">
<div class="row">
<div class="col-6 col-sm-4 text-xs-center order-sm-2">
</div>
<div class="col-6 col-sm-4 text-right text-xs-center order-sm-3">
</div>
<div class="col-12 col-sm-4 text-center py-2 order-sm-2">
<small class="text-white">&copy; 2019 VirtusLab All Rights Reserved</small>
<p class="mt-2"><a href="/about/">What&#39;s the Jenkins Operator?</a></p>
</div>
</div>
</div>
</footer>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
<script src="/js/main.min.7b50e46a4d678dead3e0004b8f665cd640085d2539954f51d57c7346b9a92d74.js" integrity="sha256-e1Dkak1njerT4ABLj2Zc1kAIXSU5lU9R1XxzRrmpLXQ="></script>
</body>
</html>
@@ -0,0 +1,607 @@
<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="generator" content="Hugo 0.57.2" />
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
<link rel="shortcut icon" href="/favicons/favicon.ico" >
<link rel="apple-touch-icon" href="/favicons/apple-touch-icon-180x180.png" sizes="180x180">
<link rel="icon" type="image/png" href="/favicons/favicon-16x16.png" sizes="16x16">
<link rel="icon" type="image/png" href="/favicons/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="/favicons/android-36x36.png" sizes="36x36">
<link rel="icon" type="image/png" href="/favicons/android-48x48.png" sizes="48x48">
<link rel="icon" type="image/png" href="/favicons/android-72x72.png" sizes="72x72">
<link rel="icon" type="image/png" href="/favicons/android-96x196.png" sizes="96x196">
<link rel="icon" type="image/png" href="/favicons/android-144x144.png" sizes="144x144">
<link rel="icon" type="image/png" href="/favicons/android-192x192.png"sizes="192x192">
<title>Customization | Jenkins Operator</title><meta property="og:title" content="Customization" />
<meta property="og:description" content="How to customize Jenkins
" />
<meta property="og:type" content="article" />
<meta property="og:url" content="/docs/getting-started/v0.1.1/customization/" />
<meta property="article:published_time" content="2019-08-05T00:00:00+00:00" />
<meta property="article:modified_time" content="2019-08-05T00:00:00+00:00" /><meta property="og:site_name" content="Jenkins Operator" />
<meta itemprop="name" content="Customization">
<meta itemprop="description" content="How to customize Jenkins
">
<meta itemprop="datePublished" content="2019-08-05T00:00:00&#43;00:00" />
<meta itemprop="dateModified" content="2019-08-05T00:00:00&#43;00:00" />
<meta itemprop="wordCount" content="221">
<meta itemprop="keywords" content="" />
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Customization"/>
<meta name="twitter:description" content="How to customize Jenkins
"/>
<link rel="preload" href="/scss/main.min.401a1d444a3f374545e199eff2460fab833ab61f776ce23ec44dea9599dda6b1.css" as="style">
<link href="/scss/main.min.401a1d444a3f374545e199eff2460fab833ab61f776ce23ec44dea9599dda6b1.css" rel="stylesheet" integrity="">
<script
src="https://code.jquery.com/jquery-3.3.1.min.js"
integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
crossorigin="anonymous"></script>
<title>Customization | Jenkins Operator</title>
</head>
<body class="td-page">
<header>
<nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar">
<a class="navbar-brand" href="/">
<img style="width: 32px; height: 32px; margin-right: 7.5px;" src="/img/logo.svg"></img><span class="text-uppercase font-weight-bold">Jenkins Operator</span>
</a>
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
<ul class="navbar-nav mt-2 mt-lg-0">
<li class="nav-item mr-4 mb-2 mb-lg-0">
<a class="nav-link" href="/about/"><span>What's Jenkins Operator?</span></a>
</li>
<li class="nav-item mr-4 mb-2 mb-lg-0">
<a class="nav-link" href="/docs/"><span>Documentation</span></a>
</li>
</ul>
</div>
<div class="navbar-nav d-none d-lg-block">
<input type="search" class="form-control td-search-input" placeholder="&#xf002 Search this site…" aria-label="Search this site…" autocomplete="off">
</div>
</nav>
</header>
<div class="container-fluid td-outer">
<div class="td-main">
<div class="row flex-xl-nowrap">
<div class="col-12 col-md-3 col-xl-2 td-sidebar d-print-none">
<div id="td-sidebar-menu" class="td-sidebar__inner">
<form class="td-sidebar__search d-flex align-items-center">
<input type="search" class="form-control td-search-input" placeholder="&#xf002 Search this site…" aria-label="Search this site…" autocomplete="off">
<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type="button" data-toggle="collapse" data-target="#td-section-nav" aria-controls="td-docs-nav" aria-expanded="false" aria-label="Toggle section navigation">
</button>
</form>
<nav class="collapse td-sidebar-nav pt-2 pl-4" id="td-section-nav">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Documentation</a>
</li>
<ul>
<li class="collapse show" id="docs">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/installation/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Installation</a>
</li>
<ul>
<li class="collapse " id="docs-installation">
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/how-it-works/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">How it works</a>
</li>
<ul>
<li class="collapse " id="docs-how-it-works">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-how-it-works-architecture-and-design" href="/docs/how-it-works/architecture-and-design/">Architecture and design</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-how-it-works-jenkins-docker-images" href="/docs/how-it-works/jenkins-docker-images/">Jenkins Docker Images</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Getting Started</a>
</li>
<ul>
<li class="collapse show" id="docs-getting-started">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/v0.1.1/" class="align-left pl-0 pr-2 active td-sidebar-link td-sidebar-link__section">v0.1.1</a>
</li>
<ul>
<li class="collapse show" id="docs-getting-started-v0-1-1">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-deploy-jenkins" href="/docs/getting-started/v0.1.1/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-configuration" href="/docs/getting-started/v0.1.1/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page active" id="m-docs-getting-started-v0-1-1-customization" href="/docs/getting-started/v0.1.1/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-aks" href="/docs/getting-started/v0.1.1/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-configure-backup-and-restore" href="/docs/getting-started/v0.1.1/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-diagnostics" href="/docs/getting-started/v0.1.1/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-scheme" href="/docs/getting-started/v0.1.1/scheme/">Scheme</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-migration-guide-v1alpha1-to-v1alpha2" href="/docs/getting-started/v0.1.1/migration-guide-v1alpha1-to-v1alpha2/">Migration guide from v1alpha1 to v1alpha2</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/v0.2.0/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.2.0</a>
</li>
<ul>
<li class="collapse " id="docs-getting-started-v0-2-0">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-deploy-jenkins" href="/docs/getting-started/v0.2.0/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-configuration" href="/docs/getting-started/v0.2.0/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-customization" href="/docs/getting-started/v0.2.0/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-aks" href="/docs/getting-started/v0.2.0/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-configure-backup-and-restore" href="/docs/getting-started/v0.2.0/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-migration" href="/docs/getting-started/v0.2.0/migration/">Migration from v0.1.1</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-diagnostics" href="/docs/getting-started/v0.2.0/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-scheme" href="/docs/getting-started/v0.2.0/scheme/">Scheme</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/security/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Security</a>
</li>
<ul>
<li class="collapse " id="docs-security">
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/developer-guide/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Developer Guide</a>
</li>
<ul>
<li class="collapse " id="docs-developer-guide">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-developer-guide-tools" href="/docs/developer-guide/tools/">Tools</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
</nav>
</div>
</div>
<main class="col-12 col-md-9 col-xl-10 pl-md-5" role="main">
<nav aria-label="breadcrumb" class="d-none d-md-block d-print-none">
<ol class="breadcrumb spb-1">
<li class="breadcrumb-item" >
<a href="/docs/">Documentation</a>
</li>
<li class="breadcrumb-item" >
<a href="/docs/getting-started/">Getting Started</a>
</li>
<li class="breadcrumb-item" >
<a href="/docs/getting-started/v0.1.1/">v0.1.1</a>
</li>
<li class="breadcrumb-item active" aria-current="page">
<a href="/docs/getting-started/v0.1.1/customization/">Customization</a>
</li>
</ol>
</nav >
<div class="td-content">
<h1>Customization</h1>
<div class="lead">How to customize Jenkins</div>
<p>Jenkins can be customized using groovy scripts or configuration as code plugin. All custom configuration is stored in
the <strong>jenkins-operator-user-configuration-<cr_name></strong> ConfigMap which is automatically created by <strong>jenkins-operator</strong>.</p>
<p><strong>jenkins-operator</strong> creates <strong>jenkins-operator-user-configuration-<cr_name></strong> secret where user can store sensitive
information used for custom configuration. If you have entry in secret named <code>PASSWORD</code> then you can use it in
Configuration as Plugin as <code>adminAddress: &quot;${PASSWORD}&quot;</code>.</p>
<pre><code>kubectl get secret jenkins-operator-user-configuration-&lt;cr_name&gt; -o yaml
kind: Secret
apiVersion: v1
type: Opaque
metadata:
name: jenkins-operator-user-configuration-&lt;cr_name&gt;
namespace: default
data:
SECRET_JENKINS_ADMIN_ADDRESS: YXNkZgo=
</code></pre>
<pre><code>kubectl get configmap jenkins-operator-user-configuration-&lt;cr_name&gt; -o yaml
apiVersion: v1
data:
1-configure-theme.groovy: |2
import jenkins.*
import jenkins.model.*
import hudson.*
import hudson.model.*
import org.jenkinsci.plugins.simpletheme.ThemeElement
import org.jenkinsci.plugins.simpletheme.CssTextThemeElement
import org.jenkinsci.plugins.simpletheme.CssUrlThemeElement
Jenkins jenkins = Jenkins.getInstance()
def decorator = Jenkins.instance.getDescriptorByType(org.codefirst.SimpleThemeDecorator.class)
List&lt;ThemeElement&gt; configElements = new ArrayList&lt;&gt;();
configElements.add(new CssTextThemeElement(&quot;DEFAULT&quot;));
configElements.add(new CssUrlThemeElement(&quot;https://cdn.rawgit.com/afonsof/jenkins-material-theme/gh-pages/dist/material-light-green.css&quot;));
decorator.setElements(configElements);
decorator.save();
jenkins.save()
1-system-message.yaml: |2
jenkins:
systemMessage: &quot;Configuration as Code integration works!!!&quot;
adminAddress: &quot;${SECRET_JENKINS_ADMIN_ADDRESS}&quot;
kind: ConfigMap
metadata:
name: jenkins-operator-user-configuration-&lt;cr_name&gt;
namespace: default
</code></pre>
<p>When <strong>jenkins-operator-user-configuration-<cr_name></strong> ConfigMap is updated Jenkins automatically
runs the <strong>jenkins-operator-user-configuration</strong> Jenkins Job which executes all scripts then
runs the <strong>jenkins-operator-user-configuration-casc</strong> Jenkins Job which applies Configuration as Code configuration.</p>
<h2 id="install-plugins">Install Plugins</h2>
<p>Edit CR under <code>spec.master.plugins</code>:</p>
<pre><code>apiVersion: jenkins.io/v1alpha2
kind: Jenkins
metadata:
name: example
spec:
master:
plugins:
- name: simple-theme-plugin
version: 0.5.1
</code></pre>
<p>Under <code>spec.master.basePlugins</code> you can find plugins for valid <strong>jenkins-operator</strong> work:</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:#0000cf;font-weight:bold">1.18.3</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.34&#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:#0000cf;font-weight:bold">3.12.0</span><span style="color:#f8f8f8;text-decoration:underline">
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>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.76&#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.29&#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-support<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.19&#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:#0000cf;font-weight:bold">0.12.1</span></code></pre></div>
<p>You can change version of them.</p>
<p>Then <strong>jenkins-operator</strong> will automatically install plugins after Jenkins master pod restart.</p>
<div class="text-muted mt-5 pt-3 border-top">Last modified August 5, 2019
</div>
</div>
</main>
</div>
</div>
<footer class="bg-dark py-5 row d-print-none">
<div class="container-fluid mx-sm-5">
<div class="row">
<div class="col-6 col-sm-4 text-xs-center order-sm-2">
</div>
<div class="col-6 col-sm-4 text-right text-xs-center order-sm-3">
</div>
<div class="col-12 col-sm-4 text-center py-2 order-sm-2">
<small class="text-white">&copy; 2019 VirtusLab All Rights Reserved</small>
<p class="mt-2"><a href="/about/">What&#39;s the Jenkins Operator?</a></p>
</div>
</div>
</div>
</footer>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
<script src="/js/main.min.7b50e46a4d678dead3e0004b8f665cd640085d2539954f51d57c7346b9a92d74.js" integrity="sha256-e1Dkak1njerT4ABLj2Zc1kAIXSU5lU9R1XxzRrmpLXQ="></script>
</body>
</html>
@@ -0,0 +1,567 @@
<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="generator" content="Hugo 0.57.2" />
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
<link rel="shortcut icon" href="/favicons/favicon.ico" >
<link rel="apple-touch-icon" href="/favicons/apple-touch-icon-180x180.png" sizes="180x180">
<link rel="icon" type="image/png" href="/favicons/favicon-16x16.png" sizes="16x16">
<link rel="icon" type="image/png" href="/favicons/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="/favicons/android-36x36.png" sizes="36x36">
<link rel="icon" type="image/png" href="/favicons/android-48x48.png" sizes="48x48">
<link rel="icon" type="image/png" href="/favicons/android-72x72.png" sizes="72x72">
<link rel="icon" type="image/png" href="/favicons/android-96x196.png" sizes="96x196">
<link rel="icon" type="image/png" href="/favicons/android-144x144.png" sizes="144x144">
<link rel="icon" type="image/png" href="/favicons/android-192x192.png"sizes="192x192">
<title>Deploy Jenkins | Jenkins Operator</title><meta property="og:title" content="Deploy Jenkins" />
<meta property="og:description" content="Deploy production ready Jenkins Operator manifest
" />
<meta property="og:type" content="article" />
<meta property="og:url" content="/docs/getting-started/v0.1.1/deploy-jenkins/" />
<meta property="article:published_time" content="2019-08-05T00:00:00+00:00" />
<meta property="article:modified_time" content="2019-08-05T00:00:00+00:00" /><meta property="og:site_name" content="Jenkins Operator" />
<meta itemprop="name" content="Deploy Jenkins">
<meta itemprop="description" content="Deploy production ready Jenkins Operator manifest
">
<meta itemprop="datePublished" content="2019-08-05T00:00:00&#43;00:00" />
<meta itemprop="dateModified" content="2019-08-05T00:00:00&#43;00:00" />
<meta itemprop="wordCount" content="165">
<meta itemprop="keywords" content="" />
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Deploy Jenkins"/>
<meta name="twitter:description" content="Deploy production ready Jenkins Operator manifest
"/>
<link rel="preload" href="/scss/main.min.401a1d444a3f374545e199eff2460fab833ab61f776ce23ec44dea9599dda6b1.css" as="style">
<link href="/scss/main.min.401a1d444a3f374545e199eff2460fab833ab61f776ce23ec44dea9599dda6b1.css" rel="stylesheet" integrity="">
<script
src="https://code.jquery.com/jquery-3.3.1.min.js"
integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
crossorigin="anonymous"></script>
<title>Deploy Jenkins | Jenkins Operator</title>
</head>
<body class="td-page">
<header>
<nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar">
<a class="navbar-brand" href="/">
<img style="width: 32px; height: 32px; margin-right: 7.5px;" src="/img/logo.svg"></img><span class="text-uppercase font-weight-bold">Jenkins Operator</span>
</a>
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
<ul class="navbar-nav mt-2 mt-lg-0">
<li class="nav-item mr-4 mb-2 mb-lg-0">
<a class="nav-link" href="/about/"><span>What's Jenkins Operator?</span></a>
</li>
<li class="nav-item mr-4 mb-2 mb-lg-0">
<a class="nav-link" href="/docs/"><span>Documentation</span></a>
</li>
</ul>
</div>
<div class="navbar-nav d-none d-lg-block">
<input type="search" class="form-control td-search-input" placeholder="&#xf002 Search this site…" aria-label="Search this site…" autocomplete="off">
</div>
</nav>
</header>
<div class="container-fluid td-outer">
<div class="td-main">
<div class="row flex-xl-nowrap">
<div class="col-12 col-md-3 col-xl-2 td-sidebar d-print-none">
<div id="td-sidebar-menu" class="td-sidebar__inner">
<form class="td-sidebar__search d-flex align-items-center">
<input type="search" class="form-control td-search-input" placeholder="&#xf002 Search this site…" aria-label="Search this site…" autocomplete="off">
<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type="button" data-toggle="collapse" data-target="#td-section-nav" aria-controls="td-docs-nav" aria-expanded="false" aria-label="Toggle section navigation">
</button>
</form>
<nav class="collapse td-sidebar-nav pt-2 pl-4" id="td-section-nav">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Documentation</a>
</li>
<ul>
<li class="collapse show" id="docs">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/installation/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Installation</a>
</li>
<ul>
<li class="collapse " id="docs-installation">
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/how-it-works/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">How it works</a>
</li>
<ul>
<li class="collapse " id="docs-how-it-works">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-how-it-works-architecture-and-design" href="/docs/how-it-works/architecture-and-design/">Architecture and design</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-how-it-works-jenkins-docker-images" href="/docs/how-it-works/jenkins-docker-images/">Jenkins Docker Images</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Getting Started</a>
</li>
<ul>
<li class="collapse show" id="docs-getting-started">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/v0.1.1/" class="align-left pl-0 pr-2 active td-sidebar-link td-sidebar-link__section">v0.1.1</a>
</li>
<ul>
<li class="collapse show" id="docs-getting-started-v0-1-1">
<a class="td-sidebar-link td-sidebar-link__page active" id="m-docs-getting-started-v0-1-1-deploy-jenkins" href="/docs/getting-started/v0.1.1/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-configuration" href="/docs/getting-started/v0.1.1/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-customization" href="/docs/getting-started/v0.1.1/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-aks" href="/docs/getting-started/v0.1.1/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-configure-backup-and-restore" href="/docs/getting-started/v0.1.1/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-diagnostics" href="/docs/getting-started/v0.1.1/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-scheme" href="/docs/getting-started/v0.1.1/scheme/">Scheme</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-migration-guide-v1alpha1-to-v1alpha2" href="/docs/getting-started/v0.1.1/migration-guide-v1alpha1-to-v1alpha2/">Migration guide from v1alpha1 to v1alpha2</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/v0.2.0/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.2.0</a>
</li>
<ul>
<li class="collapse " id="docs-getting-started-v0-2-0">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-deploy-jenkins" href="/docs/getting-started/v0.2.0/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-configuration" href="/docs/getting-started/v0.2.0/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-customization" href="/docs/getting-started/v0.2.0/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-aks" href="/docs/getting-started/v0.2.0/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-configure-backup-and-restore" href="/docs/getting-started/v0.2.0/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-migration" href="/docs/getting-started/v0.2.0/migration/">Migration from v0.1.1</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-diagnostics" href="/docs/getting-started/v0.2.0/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-scheme" href="/docs/getting-started/v0.2.0/scheme/">Scheme</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/security/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Security</a>
</li>
<ul>
<li class="collapse " id="docs-security">
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/developer-guide/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Developer Guide</a>
</li>
<ul>
<li class="collapse " id="docs-developer-guide">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-developer-guide-tools" href="/docs/developer-guide/tools/">Tools</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
</nav>
</div>
</div>
<main class="col-12 col-md-9 col-xl-10 pl-md-5" role="main">
<nav aria-label="breadcrumb" class="d-none d-md-block d-print-none">
<ol class="breadcrumb spb-1">
<li class="breadcrumb-item" >
<a href="/docs/">Documentation</a>
</li>
<li class="breadcrumb-item" >
<a href="/docs/getting-started/">Getting Started</a>
</li>
<li class="breadcrumb-item" >
<a href="/docs/getting-started/v0.1.1/">v0.1.1</a>
</li>
<li class="breadcrumb-item active" aria-current="page">
<a href="/docs/getting-started/v0.1.1/deploy-jenkins/">Deploy Jenkins</a>
</li>
</ol>
</nav >
<div class="td-content">
<h1>Deploy Jenkins</h1>
<div class="lead">Deploy production ready Jenkins Operator manifest</div>
<h2 id="deploy-jenkins">Deploy Jenkins</h2>
<p>Once jenkins-operator is up and running let&rsquo;s deploy actual Jenkins instance.
Create manifest ie. <strong>jenkins_instance.yaml</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-bash" data-lang="bash">apiVersion: jenkins.io/v1alpha2
kind: Jenkins
metadata:
name: example
spec:
master:
containers:
- name: jenkins-master
image: jenkins/jenkins:lts
imagePullPolicy: Always
livenessProbe:
failureThreshold: <span style="color:#0000cf;font-weight:bold">12</span>
httpGet:
path: /login
port: http
scheme: HTTP
initialDelaySeconds: <span style="color:#0000cf;font-weight:bold">80</span>
periodSeconds: <span style="color:#0000cf;font-weight:bold">10</span>
successThreshold: <span style="color:#0000cf;font-weight:bold">1</span>
timeoutSeconds: <span style="color:#0000cf;font-weight:bold">5</span>
readinessProbe:
failureThreshold: <span style="color:#0000cf;font-weight:bold">3</span>
httpGet:
path: /login
port: http
scheme: HTTP
initialDelaySeconds: <span style="color:#0000cf;font-weight:bold">30</span>
periodSeconds: <span style="color:#0000cf;font-weight:bold">10</span>
successThreshold: <span style="color:#0000cf;font-weight:bold">1</span>
timeoutSeconds: <span style="color:#0000cf;font-weight:bold">1</span>
resources:
limits:
cpu: 1500m
memory: 3Gi
requests:
cpu: <span style="color:#4e9a06">&#34;1&#34;</span>
memory: 500Mi
seedJobs:
- id: jenkins-operator
targets: <span style="color:#4e9a06">&#34;cicd/jobs/*.jenkins&#34;</span>
description: <span style="color:#4e9a06">&#34;Jenkins Operator repository&#34;</span>
repositoryBranch: master
repositoryUrl: https://github.com/jenkinsci/kubernetes-operator.git</code></pre></div>
<p>Deploy Jenkins to K8s:</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 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 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 Jenkins (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 Jenkins (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; <span style="color:#0000cf;font-weight:bold">8080</span>:8080</code></pre></div>
<p>Then open browser with address <code>http://localhost:8080</code>.
<img src="/img/jenkins.png" alt="jenkins" /></p>
<div class="text-muted mt-5 pt-3 border-top">Last modified August 5, 2019
</div>
</div>
</main>
</div>
</div>
<footer class="bg-dark py-5 row d-print-none">
<div class="container-fluid mx-sm-5">
<div class="row">
<div class="col-6 col-sm-4 text-xs-center order-sm-2">
</div>
<div class="col-6 col-sm-4 text-right text-xs-center order-sm-3">
</div>
<div class="col-12 col-sm-4 text-center py-2 order-sm-2">
<small class="text-white">&copy; 2019 VirtusLab All Rights Reserved</small>
<p class="mt-2"><a href="/about/">What&#39;s the Jenkins Operator?</a></p>
</div>
</div>
</div>
</footer>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
<script src="/js/main.min.7b50e46a4d678dead3e0004b8f665cd640085d2539954f51d57c7346b9a92d74.js" integrity="sha256-e1Dkak1njerT4ABLj2Zc1kAIXSU5lU9R1XxzRrmpLXQ="></script>
</body>
</html>
@@ -0,0 +1,519 @@
<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="generator" content="Hugo 0.57.2" />
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
<link rel="shortcut icon" href="/favicons/favicon.ico" >
<link rel="apple-touch-icon" href="/favicons/apple-touch-icon-180x180.png" sizes="180x180">
<link rel="icon" type="image/png" href="/favicons/favicon-16x16.png" sizes="16x16">
<link rel="icon" type="image/png" href="/favicons/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="/favicons/android-36x36.png" sizes="36x36">
<link rel="icon" type="image/png" href="/favicons/android-48x48.png" sizes="48x48">
<link rel="icon" type="image/png" href="/favicons/android-72x72.png" sizes="72x72">
<link rel="icon" type="image/png" href="/favicons/android-96x196.png" sizes="96x196">
<link rel="icon" type="image/png" href="/favicons/android-144x144.png" sizes="144x144">
<link rel="icon" type="image/png" href="/favicons/android-192x192.png"sizes="192x192">
<title>Diagnostics | Jenkins Operator</title><meta property="og:title" content="Diagnostics" />
<meta property="og:description" content="How to deal with jenkins-operator problems
" />
<meta property="og:type" content="article" />
<meta property="og:url" content="/docs/getting-started/v0.1.1/diagnostics/" />
<meta property="article:published_time" content="2019-08-05T00:00:00+00:00" />
<meta property="article:modified_time" content="2019-08-05T00:00:00+00:00" /><meta property="og:site_name" content="Jenkins Operator" />
<meta itemprop="name" content="Diagnostics">
<meta itemprop="description" content="How to deal with jenkins-operator problems
">
<meta itemprop="datePublished" content="2019-08-05T00:00:00&#43;00:00" />
<meta itemprop="dateModified" content="2019-08-05T00:00:00&#43;00:00" />
<meta itemprop="wordCount" content="54">
<meta itemprop="keywords" content="" />
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Diagnostics"/>
<meta name="twitter:description" content="How to deal with jenkins-operator problems
"/>
<link rel="preload" href="/scss/main.min.401a1d444a3f374545e199eff2460fab833ab61f776ce23ec44dea9599dda6b1.css" as="style">
<link href="/scss/main.min.401a1d444a3f374545e199eff2460fab833ab61f776ce23ec44dea9599dda6b1.css" rel="stylesheet" integrity="">
<script
src="https://code.jquery.com/jquery-3.3.1.min.js"
integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
crossorigin="anonymous"></script>
<title>Diagnostics | Jenkins Operator</title>
</head>
<body class="td-page">
<header>
<nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar">
<a class="navbar-brand" href="/">
<img style="width: 32px; height: 32px; margin-right: 7.5px;" src="/img/logo.svg"></img><span class="text-uppercase font-weight-bold">Jenkins Operator</span>
</a>
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
<ul class="navbar-nav mt-2 mt-lg-0">
<li class="nav-item mr-4 mb-2 mb-lg-0">
<a class="nav-link" href="/about/"><span>What's Jenkins Operator?</span></a>
</li>
<li class="nav-item mr-4 mb-2 mb-lg-0">
<a class="nav-link" href="/docs/"><span>Documentation</span></a>
</li>
</ul>
</div>
<div class="navbar-nav d-none d-lg-block">
<input type="search" class="form-control td-search-input" placeholder="&#xf002 Search this site…" aria-label="Search this site…" autocomplete="off">
</div>
</nav>
</header>
<div class="container-fluid td-outer">
<div class="td-main">
<div class="row flex-xl-nowrap">
<div class="col-12 col-md-3 col-xl-2 td-sidebar d-print-none">
<div id="td-sidebar-menu" class="td-sidebar__inner">
<form class="td-sidebar__search d-flex align-items-center">
<input type="search" class="form-control td-search-input" placeholder="&#xf002 Search this site…" aria-label="Search this site…" autocomplete="off">
<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type="button" data-toggle="collapse" data-target="#td-section-nav" aria-controls="td-docs-nav" aria-expanded="false" aria-label="Toggle section navigation">
</button>
</form>
<nav class="collapse td-sidebar-nav pt-2 pl-4" id="td-section-nav">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Documentation</a>
</li>
<ul>
<li class="collapse show" id="docs">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/installation/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Installation</a>
</li>
<ul>
<li class="collapse " id="docs-installation">
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/how-it-works/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">How it works</a>
</li>
<ul>
<li class="collapse " id="docs-how-it-works">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-how-it-works-architecture-and-design" href="/docs/how-it-works/architecture-and-design/">Architecture and design</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-how-it-works-jenkins-docker-images" href="/docs/how-it-works/jenkins-docker-images/">Jenkins Docker Images</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Getting Started</a>
</li>
<ul>
<li class="collapse show" id="docs-getting-started">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/v0.1.1/" class="align-left pl-0 pr-2 active td-sidebar-link td-sidebar-link__section">v0.1.1</a>
</li>
<ul>
<li class="collapse show" id="docs-getting-started-v0-1-1">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-deploy-jenkins" href="/docs/getting-started/v0.1.1/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-configuration" href="/docs/getting-started/v0.1.1/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-customization" href="/docs/getting-started/v0.1.1/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-aks" href="/docs/getting-started/v0.1.1/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-configure-backup-and-restore" href="/docs/getting-started/v0.1.1/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page active" id="m-docs-getting-started-v0-1-1-diagnostics" href="/docs/getting-started/v0.1.1/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-scheme" href="/docs/getting-started/v0.1.1/scheme/">Scheme</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-migration-guide-v1alpha1-to-v1alpha2" href="/docs/getting-started/v0.1.1/migration-guide-v1alpha1-to-v1alpha2/">Migration guide from v1alpha1 to v1alpha2</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/v0.2.0/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.2.0</a>
</li>
<ul>
<li class="collapse " id="docs-getting-started-v0-2-0">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-deploy-jenkins" href="/docs/getting-started/v0.2.0/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-configuration" href="/docs/getting-started/v0.2.0/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-customization" href="/docs/getting-started/v0.2.0/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-aks" href="/docs/getting-started/v0.2.0/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-configure-backup-and-restore" href="/docs/getting-started/v0.2.0/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-migration" href="/docs/getting-started/v0.2.0/migration/">Migration from v0.1.1</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-diagnostics" href="/docs/getting-started/v0.2.0/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-scheme" href="/docs/getting-started/v0.2.0/scheme/">Scheme</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/security/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Security</a>
</li>
<ul>
<li class="collapse " id="docs-security">
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/developer-guide/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Developer Guide</a>
</li>
<ul>
<li class="collapse " id="docs-developer-guide">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-developer-guide-tools" href="/docs/developer-guide/tools/">Tools</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
</nav>
</div>
</div>
<main class="col-12 col-md-9 col-xl-10 pl-md-5" role="main">
<nav aria-label="breadcrumb" class="d-none d-md-block d-print-none">
<ol class="breadcrumb spb-1">
<li class="breadcrumb-item" >
<a href="/docs/">Documentation</a>
</li>
<li class="breadcrumb-item" >
<a href="/docs/getting-started/">Getting Started</a>
</li>
<li class="breadcrumb-item" >
<a href="/docs/getting-started/v0.1.1/">v0.1.1</a>
</li>
<li class="breadcrumb-item active" aria-current="page">
<a href="/docs/getting-started/v0.1.1/diagnostics/">Diagnostics</a>
</li>
</ol>
</nav >
<div class="td-content">
<h1>Diagnostics</h1>
<div class="lead">How to deal with jenkins-operator problems</div>
<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 jenkins-operator 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 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>
<div class="text-muted mt-5 pt-3 border-top">Last modified August 5, 2019
</div>
</div>
</main>
</div>
</div>
<footer class="bg-dark py-5 row d-print-none">
<div class="container-fluid mx-sm-5">
<div class="row">
<div class="col-6 col-sm-4 text-xs-center order-sm-2">
</div>
<div class="col-6 col-sm-4 text-right text-xs-center order-sm-3">
</div>
<div class="col-12 col-sm-4 text-center py-2 order-sm-2">
<small class="text-white">&copy; 2019 VirtusLab All Rights Reserved</small>
<p class="mt-2"><a href="/about/">What&#39;s the Jenkins Operator?</a></p>
</div>
</div>
</div>
</footer>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
<script src="/js/main.min.7b50e46a4d678dead3e0004b8f665cd640085d2539954f51d57c7346b9a92d74.js" integrity="sha256-e1Dkak1njerT4ABLj2Zc1kAIXSU5lU9R1XxzRrmpLXQ="></script>
</body>
</html>
+629
View File
@@ -0,0 +1,629 @@
<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="generator" content="Hugo 0.57.2" />
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
<link rel="alternate" type="application/rss&#43;xml" href="/docs/getting-started/v0.1.1/index.xml">
<link rel="shortcut icon" href="/favicons/favicon.ico" >
<link rel="apple-touch-icon" href="/favicons/apple-touch-icon-180x180.png" sizes="180x180">
<link rel="icon" type="image/png" href="/favicons/favicon-16x16.png" sizes="16x16">
<link rel="icon" type="image/png" href="/favicons/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="/favicons/android-36x36.png" sizes="36x36">
<link rel="icon" type="image/png" href="/favicons/android-48x48.png" sizes="48x48">
<link rel="icon" type="image/png" href="/favicons/android-72x72.png" sizes="72x72">
<link rel="icon" type="image/png" href="/favicons/android-96x196.png" sizes="96x196">
<link rel="icon" type="image/png" href="/favicons/android-144x144.png" sizes="144x144">
<link rel="icon" type="image/png" href="/favicons/android-192x192.png"sizes="192x192">
<title>v0.1.1 | Jenkins Operator</title><meta property="og:title" content="v0.1.1" />
<meta property="og:description" content="How to work with jenkins-operator legacy version. We recommend migration to v0.2.0 version
" />
<meta property="og:type" content="website" />
<meta property="og:url" content="/docs/getting-started/v0.1.1/" />
<meta property="og:updated_time" content="2019-08-05T00:00:00+00:00" /><meta property="og:site_name" content="Jenkins Operator" />
<meta itemprop="name" content="v0.1.1">
<meta itemprop="description" content="How to work with jenkins-operator legacy version. We recommend migration to v0.2.0 version
">
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="v0.1.1"/>
<meta name="twitter:description" content="How to work with jenkins-operator legacy version. We recommend migration to v0.2.0 version
"/>
<link rel="preload" href="/scss/main.min.401a1d444a3f374545e199eff2460fab833ab61f776ce23ec44dea9599dda6b1.css" as="style">
<link href="/scss/main.min.401a1d444a3f374545e199eff2460fab833ab61f776ce23ec44dea9599dda6b1.css" rel="stylesheet" integrity="">
<script
src="https://code.jquery.com/jquery-3.3.1.min.js"
integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
crossorigin="anonymous"></script>
<title>v0.1.1 | Jenkins Operator</title>
</head>
<body class="td-section">
<header>
<nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar">
<a class="navbar-brand" href="/">
<img style="width: 32px; height: 32px; margin-right: 7.5px;" src="/img/logo.svg"></img><span class="text-uppercase font-weight-bold">Jenkins Operator</span>
</a>
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
<ul class="navbar-nav mt-2 mt-lg-0">
<li class="nav-item mr-4 mb-2 mb-lg-0">
<a class="nav-link" href="/about/"><span>What's Jenkins Operator?</span></a>
</li>
<li class="nav-item mr-4 mb-2 mb-lg-0">
<a class="nav-link" href="/docs/"><span>Documentation</span></a>
</li>
</ul>
</div>
<div class="navbar-nav d-none d-lg-block">
<input type="search" class="form-control td-search-input" placeholder="&#xf002 Search this site…" aria-label="Search this site…" autocomplete="off">
</div>
</nav>
</header>
<div class="container-fluid td-outer">
<div class="td-main">
<div class="row flex-xl-nowrap">
<div class="col-12 col-md-3 col-xl-2 td-sidebar d-print-none">
<div id="td-sidebar-menu" class="td-sidebar__inner">
<form class="td-sidebar__search d-flex align-items-center">
<input type="search" class="form-control td-search-input" placeholder="&#xf002 Search this site…" aria-label="Search this site…" autocomplete="off">
<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type="button" data-toggle="collapse" data-target="#td-section-nav" aria-controls="td-docs-nav" aria-expanded="false" aria-label="Toggle section navigation">
</button>
</form>
<nav class="collapse td-sidebar-nav pt-2 pl-4" id="td-section-nav">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Documentation</a>
</li>
<ul>
<li class="collapse show" id="docs">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/installation/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Installation</a>
</li>
<ul>
<li class="collapse " id="docs-installation">
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/how-it-works/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">How it works</a>
</li>
<ul>
<li class="collapse " id="docs-how-it-works">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-how-it-works-architecture-and-design" href="/docs/how-it-works/architecture-and-design/">Architecture and design</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-how-it-works-jenkins-docker-images" href="/docs/how-it-works/jenkins-docker-images/">Jenkins Docker Images</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Getting Started</a>
</li>
<ul>
<li class="collapse show" id="docs-getting-started">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/v0.1.1/" class="align-left pl-0 pr-2 active td-sidebar-link td-sidebar-link__section">v0.1.1</a>
</li>
<ul>
<li class="collapse show" id="docs-getting-started-v0-1-1">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-deploy-jenkins" href="/docs/getting-started/v0.1.1/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-configuration" href="/docs/getting-started/v0.1.1/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-customization" href="/docs/getting-started/v0.1.1/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-aks" href="/docs/getting-started/v0.1.1/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-configure-backup-and-restore" href="/docs/getting-started/v0.1.1/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-diagnostics" href="/docs/getting-started/v0.1.1/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-scheme" href="/docs/getting-started/v0.1.1/scheme/">Scheme</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-migration-guide-v1alpha1-to-v1alpha2" href="/docs/getting-started/v0.1.1/migration-guide-v1alpha1-to-v1alpha2/">Migration guide from v1alpha1 to v1alpha2</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/v0.2.0/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.2.0</a>
</li>
<ul>
<li class="collapse " id="docs-getting-started-v0-2-0">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-deploy-jenkins" href="/docs/getting-started/v0.2.0/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-configuration" href="/docs/getting-started/v0.2.0/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-customization" href="/docs/getting-started/v0.2.0/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-aks" href="/docs/getting-started/v0.2.0/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-configure-backup-and-restore" href="/docs/getting-started/v0.2.0/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-migration" href="/docs/getting-started/v0.2.0/migration/">Migration from v0.1.1</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-diagnostics" href="/docs/getting-started/v0.2.0/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-scheme" href="/docs/getting-started/v0.2.0/scheme/">Scheme</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/security/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Security</a>
</li>
<ul>
<li class="collapse " id="docs-security">
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/developer-guide/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Developer Guide</a>
</li>
<ul>
<li class="collapse " id="docs-developer-guide">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-developer-guide-tools" href="/docs/developer-guide/tools/">Tools</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
</nav>
</div>
</div>
<main class="col-12 col-md-9 col-xl-10 pl-md-5" role="main">
<nav aria-label="breadcrumb" class="d-none d-md-block d-print-none">
<ol class="breadcrumb spb-1">
<li class="breadcrumb-item" >
<a href="/docs/">Documentation</a>
</li>
<li class="breadcrumb-item" >
<a href="/docs/getting-started/">Getting Started</a>
</li>
<li class="breadcrumb-item active" aria-current="page">
<a href="/docs/getting-started/v0.1.1/">v0.1.1</a>
</li>
</ol>
</nav >
<div class="td-content">
<h1>v0.1.1</h1>
<div class="lead">How to work with jenkins-operator legacy version. We recommend migration to v0.2.0 version</div>
<div class="pageinfo pageinfo-primary">
<p>This document describes a getting started guide for <strong>jenkins-operator</strong> <code>v0.1.1</code> and an additional configuration.</p>
</div>
<h2 id="first-steps">First Steps</h2>
<p>Prepare your Kubernetes cluster and set up access.
Once you have running Kubernetes cluster you can focus on installing <strong>jenkins-operator</strong> according to the <a href="/docs/installation/">Installation</a> guide.</p>
<div class="section-index">
<hr class="panel-line">
<div class="entry">
<h5>
<a href="/docs/getting-started/v0.1.1/deploy-jenkins/">Deploy Jenkins</a>
</h5>
<p>Deploy production ready Jenkins Operator manifest
</p>
</div>
<div class="entry">
<h5>
<a href="/docs/getting-started/v0.1.1/configuration/">Configuration</a>
</h5>
<p>How to configure Jenkins with Operator
</p>
</div>
<div class="entry">
<h5>
<a href="/docs/getting-started/v0.1.1/customization/">Customization</a>
</h5>
<p>How to customize Jenkins
</p>
</div>
<div class="entry">
<h5>
<a href="/docs/getting-started/v0.1.1/aks/">AKS</a>
</h5>
<p>Additional configuration for Azure Kubernetes Service
</p>
</div>
<div class="entry">
<h5>
<a href="/docs/getting-started/v0.1.1/configure-backup-and-restore/">Configure backup and restore</a>
</h5>
<p>Prevent job history loss
</p>
</div>
<div class="entry">
<h5>
<a href="/docs/getting-started/v0.1.1/diagnostics/">Diagnostics</a>
</h5>
<p>How to deal with jenkins-operator problems
</p>
</div>
<div class="entry">
<h5>
<a href="/docs/getting-started/v0.1.1/scheme/">Scheme</a>
</h5>
<p>API Schema definitions for Jenkins CR
</p>
</div>
<div class="entry">
<h5>
<a href="/docs/getting-started/v0.1.1/migration-guide-v1alpha1-to-v1alpha2/">Migration guide from v1alpha1 to v1alpha2</a>
</h5>
<p>How to migrate to new CRD manifest
</p>
</div>
</div>
<div class="text-muted mt-5 pt-3 border-top">Last modified August 5, 2019
</div>
</div>
</main>
</div>
</div>
<footer class="bg-dark py-5 row d-print-none">
<div class="container-fluid mx-sm-5">
<div class="row">
<div class="col-6 col-sm-4 text-xs-center order-sm-2">
</div>
<div class="col-6 col-sm-4 text-right text-xs-center order-sm-3">
</div>
<div class="col-12 col-sm-4 text-center py-2 order-sm-2">
<small class="text-white">&copy; 2019 VirtusLab All Rights Reserved</small>
<p class="mt-2"><a href="/about/">What&#39;s the Jenkins Operator?</a></p>
</div>
</div>
</div>
</footer>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
<script src="/js/main.min.7b50e46a4d678dead3e0004b8f665cd640085d2539954f51d57c7346b9a92d74.js" integrity="sha256-e1Dkak1njerT4ABLj2Zc1kAIXSU5lU9R1XxzRrmpLXQ="></script>
</body>
</html>
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,814 @@
<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="generator" content="Hugo 0.57.2" />
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
<link rel="shortcut icon" href="/favicons/favicon.ico" >
<link rel="apple-touch-icon" href="/favicons/apple-touch-icon-180x180.png" sizes="180x180">
<link rel="icon" type="image/png" href="/favicons/favicon-16x16.png" sizes="16x16">
<link rel="icon" type="image/png" href="/favicons/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="/favicons/android-36x36.png" sizes="36x36">
<link rel="icon" type="image/png" href="/favicons/android-48x48.png" sizes="48x48">
<link rel="icon" type="image/png" href="/favicons/android-72x72.png" sizes="72x72">
<link rel="icon" type="image/png" href="/favicons/android-96x196.png" sizes="96x196">
<link rel="icon" type="image/png" href="/favicons/android-144x144.png" sizes="144x144">
<link rel="icon" type="image/png" href="/favicons/android-192x192.png"sizes="192x192">
<title>Migration guide from v1alpha1 to v1alpha2 | Jenkins Operator</title><meta property="og:title" content="Migration guide from v1alpha1 to v1alpha2" />
<meta property="og:description" content="How to migrate to new CRD manifest
" />
<meta property="og:type" content="article" />
<meta property="og:url" content="/docs/getting-started/v0.1.1/migration-guide-v1alpha1-to-v1alpha2/" />
<meta property="article:published_time" content="2019-08-05T00:00:00+00:00" />
<meta property="article:modified_time" content="2019-08-05T00:00:00+00:00" /><meta property="og:site_name" content="Jenkins Operator" />
<meta itemprop="name" content="Migration guide from v1alpha1 to v1alpha2">
<meta itemprop="description" content="How to migrate to new CRD manifest
">
<meta itemprop="datePublished" content="2019-08-05T00:00:00&#43;00:00" />
<meta itemprop="dateModified" content="2019-08-05T00:00:00&#43;00:00" />
<meta itemprop="wordCount" content="341">
<meta itemprop="keywords" content="" />
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Migration guide from v1alpha1 to v1alpha2"/>
<meta name="twitter:description" content="How to migrate to new CRD manifest
"/>
<link rel="preload" href="/scss/main.min.401a1d444a3f374545e199eff2460fab833ab61f776ce23ec44dea9599dda6b1.css" as="style">
<link href="/scss/main.min.401a1d444a3f374545e199eff2460fab833ab61f776ce23ec44dea9599dda6b1.css" rel="stylesheet" integrity="">
<script
src="https://code.jquery.com/jquery-3.3.1.min.js"
integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
crossorigin="anonymous"></script>
<title>Migration guide from v1alpha1 to v1alpha2 | Jenkins Operator</title>
</head>
<body class="td-page">
<header>
<nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar">
<a class="navbar-brand" href="/">
<img style="width: 32px; height: 32px; margin-right: 7.5px;" src="/img/logo.svg"></img><span class="text-uppercase font-weight-bold">Jenkins Operator</span>
</a>
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
<ul class="navbar-nav mt-2 mt-lg-0">
<li class="nav-item mr-4 mb-2 mb-lg-0">
<a class="nav-link" href="/about/"><span>What's Jenkins Operator?</span></a>
</li>
<li class="nav-item mr-4 mb-2 mb-lg-0">
<a class="nav-link" href="/docs/"><span>Documentation</span></a>
</li>
</ul>
</div>
<div class="navbar-nav d-none d-lg-block">
<input type="search" class="form-control td-search-input" placeholder="&#xf002 Search this site…" aria-label="Search this site…" autocomplete="off">
</div>
</nav>
</header>
<div class="container-fluid td-outer">
<div class="td-main">
<div class="row flex-xl-nowrap">
<div class="col-12 col-md-3 col-xl-2 td-sidebar d-print-none">
<div id="td-sidebar-menu" class="td-sidebar__inner">
<form class="td-sidebar__search d-flex align-items-center">
<input type="search" class="form-control td-search-input" placeholder="&#xf002 Search this site…" aria-label="Search this site…" autocomplete="off">
<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type="button" data-toggle="collapse" data-target="#td-section-nav" aria-controls="td-docs-nav" aria-expanded="false" aria-label="Toggle section navigation">
</button>
</form>
<nav class="collapse td-sidebar-nav pt-2 pl-4" id="td-section-nav">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Documentation</a>
</li>
<ul>
<li class="collapse show" id="docs">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/installation/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Installation</a>
</li>
<ul>
<li class="collapse " id="docs-installation">
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/how-it-works/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">How it works</a>
</li>
<ul>
<li class="collapse " id="docs-how-it-works">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-how-it-works-architecture-and-design" href="/docs/how-it-works/architecture-and-design/">Architecture and design</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-how-it-works-jenkins-docker-images" href="/docs/how-it-works/jenkins-docker-images/">Jenkins Docker Images</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Getting Started</a>
</li>
<ul>
<li class="collapse show" id="docs-getting-started">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/v0.1.1/" class="align-left pl-0 pr-2 active td-sidebar-link td-sidebar-link__section">v0.1.1</a>
</li>
<ul>
<li class="collapse show" id="docs-getting-started-v0-1-1">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-deploy-jenkins" href="/docs/getting-started/v0.1.1/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-configuration" href="/docs/getting-started/v0.1.1/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-customization" href="/docs/getting-started/v0.1.1/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-aks" href="/docs/getting-started/v0.1.1/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-configure-backup-and-restore" href="/docs/getting-started/v0.1.1/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-diagnostics" href="/docs/getting-started/v0.1.1/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-scheme" href="/docs/getting-started/v0.1.1/scheme/">Scheme</a>
<a class="td-sidebar-link td-sidebar-link__page active" id="m-docs-getting-started-v0-1-1-migration-guide-v1alpha1-to-v1alpha2" href="/docs/getting-started/v0.1.1/migration-guide-v1alpha1-to-v1alpha2/">Migration guide from v1alpha1 to v1alpha2</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/v0.2.0/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.2.0</a>
</li>
<ul>
<li class="collapse " id="docs-getting-started-v0-2-0">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-deploy-jenkins" href="/docs/getting-started/v0.2.0/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-configuration" href="/docs/getting-started/v0.2.0/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-customization" href="/docs/getting-started/v0.2.0/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-aks" href="/docs/getting-started/v0.2.0/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-configure-backup-and-restore" href="/docs/getting-started/v0.2.0/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-migration" href="/docs/getting-started/v0.2.0/migration/">Migration from v0.1.1</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-diagnostics" href="/docs/getting-started/v0.2.0/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-scheme" href="/docs/getting-started/v0.2.0/scheme/">Scheme</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/security/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Security</a>
</li>
<ul>
<li class="collapse " id="docs-security">
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/developer-guide/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Developer Guide</a>
</li>
<ul>
<li class="collapse " id="docs-developer-guide">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-developer-guide-tools" href="/docs/developer-guide/tools/">Tools</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
</nav>
</div>
</div>
<main class="col-12 col-md-9 col-xl-10 pl-md-5" role="main">
<nav aria-label="breadcrumb" class="d-none d-md-block d-print-none">
<ol class="breadcrumb spb-1">
<li class="breadcrumb-item" >
<a href="/docs/">Documentation</a>
</li>
<li class="breadcrumb-item" >
<a href="/docs/getting-started/">Getting Started</a>
</li>
<li class="breadcrumb-item" >
<a href="/docs/getting-started/v0.1.1/">v0.1.1</a>
</li>
<li class="breadcrumb-item active" aria-current="page">
<a href="/docs/getting-started/v0.1.1/migration-guide-v1alpha1-to-v1alpha2/">Migration guide from v1alpha1 to v1alpha2</a>
</li>
</ol>
</nav >
<div class="td-content">
<h1>Migration guide from v1alpha1 to v1alpha2</h1>
<div class="lead">How to migrate to new CRD manifest</div>
<p>Please not that <strong>CRD manifests are global</strong>, not namespaced, so every jenkins operator running on the cluster
will be impacted by the new CRD manifest. Multiple operator instances with different versions <em>should</em> continue to work.</p>
<h2 id="stop-jenkins-operator-pod">Stop jenkins-operator pod</h2>
<p>Run 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; scale deployment.apps/jenkins-operator --replicas<span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#0000cf;font-weight:bold">0</span>
deployment.apps/jenkins-operator scaled</code></pre></div>
<p>Desired state:</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; get po
No resources found.</code></pre></div>
<h2 id="stop-jenkins-master-pod">Stop Jenkins master pod</h2>
<p>Run 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; get po
NAME READY STATUS RESTARTS AGE
jenkins-operator-&lt;cr_name&gt; <span style="color:#0000cf;font-weight:bold">2</span>/2 Running <span style="color:#0000cf;font-weight:bold">0</span> 3m35s
$ kubectl -n &lt;namespace&gt; get delete po jenkins-operator-&lt;cr_name&gt;
pod <span style="color:#4e9a06">&#34;jenkins-operator-&lt;cr_name&gt;&#34;</span> deleted</code></pre></div>
<p>Desired state:</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; get po
No resources found.</code></pre></div>
<h2 id="save-jenkins-cr-to-jenkins-yaml-file">Save Jenkins CR to jenkins.yaml file</h2>
<p>Run 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; get jenkins &lt;cr_name&gt; -o yaml &gt; jenkins.yaml</code></pre></div>
<h2 id="modify-jenkins-yaml-file">Modify jenkins.yaml file</h2>
<p>Change apiVersion to <code>apiVersion: jenkins.io/v1alpha2</code></p>
<p>New plugin format without dependent plugins:</p>
<ul>
<li><p><code>spec.master.basePlugins</code> example:</p>
<pre><code>spec:
master:
basePlugins:
- name: a-plugin-name
version: &quot;1.0.0&quot;
...
</code></pre></li>
<li><p><code>spec.master.plugins</code> example:</p>
<pre><code>
spec:
master:
plugins:
- name: a-plugin-name
version: &quot;1.0.0&quot;
...
</code></pre></li>
</ul>
<p>Move Jenkins <code>master</code> container properties to <code>spec.master.containers[jenkins-master]</code> (non exhaustive list):
- <code>spec.master.image</code> -&gt; <code>spec.master.containers[jenkins-master].image</code>
- <code>spec.master.imagePullPolicy</code> -&gt; <code>spec.master.containers[jenkins-master].imagePullPolicy</code>
- <code>spec.master.livenessProbe</code> -&gt; <code>spec.master.containers[jenkins-master].livenessProbe</code>
- <code>spec.master.readinessProbe</code> -&gt; <code>spec.master.containers[jenkins-master].readinessProbe</code>
- <code>spec.master.resources</code> -&gt; <code>spec.master.containers[jenkins-master].resources</code>
- <code>spec.master.env</code> -&gt; <code>spec.master.containers[jenkins-master].env</code></p>
<pre><code>spec:
master:
containers:
- name: jenkins-master
image: jenkins/jenkins:lts
...
</code></pre>
<p>See also the examples bellow for more details. For even more details please look at the source code.
Code that defines the data structures can be found <a href="v0.1.1/jenkins-v1alpha2-scheme.md" target="_blank">here</a></p>
<h3 id="examples">Examples</h3>
<p>Old format:</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/v1alpha1<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"> 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>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>configuration-as-code<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">1.17</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:#f8f8f8;text-decoration:underline"> </span>configuration-as-code-support<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">1.17</span><span style="color:#f8f8f8;text-decoration:underline">
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>git<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">3.10.0</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:#f8f8f8;text-decoration:underline"> </span>apache-httpcomponents-client<span style="color:#0000cf;font-weight:bold">-4</span>-api<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">4.5.5-3.0</span><span style="color:#f8f8f8;text-decoration:underline">
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>credentials<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">2.1.19</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>display-url-api<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">2.3.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>git-client<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">2.7.7</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>jsch<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">0.1.55</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>junit<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">1.28</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>mailer<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">1.23</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>matrix-project<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">1.14</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>scm-api<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">2.4.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>script-security<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">1.59</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>ssh-credentials<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">1.16</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>structs<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">1.19</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>workflow-api<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">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>workflow-scm-step<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">2.7</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>workflow-step-api<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">2.19</span><span style="color:#f8f8f8;text-decoration:underline">
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>job-dsl<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">1.74</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:#f8f8f8;text-decoration:underline"> </span>script-security<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">1.59</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>structs<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">1.19</span><span style="color:#f8f8f8;text-decoration:underline">
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>kubernetes-credentials-provider<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">0.12.1</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:#f8f8f8;text-decoration:underline"> </span>credentials<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">2.1.19</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>structs<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">1.19</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>variant<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">1.2</span><span style="color:#f8f8f8;text-decoration:underline">
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>kubernetes<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">1.15.5</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:#f8f8f8;text-decoration:underline"> </span>apache-httpcomponents-client<span style="color:#0000cf;font-weight:bold">-4</span>-api<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">4.5.5-3.0</span><span style="color:#f8f8f8;text-decoration:underline">
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>cloudbees-folder<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">6.8</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>credentials<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">2.1.19</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>durable-task<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">1.29</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>jackson2-api<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">2.9.9</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>kubernetes-credentials<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">0.4.0</span><span style="color:#f8f8f8;text-decoration:underline">
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>plain-credentials<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">1.5</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>structs<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">1.19</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>variant<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">1.2</span><span style="color:#f8f8f8;text-decoration:underline">
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>workflow-step-api<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">2.19</span><span style="color:#f8f8f8;text-decoration:underline">
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>workflow-aggregator<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">2.6</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:#f8f8f8;text-decoration:underline"> </span>ace-editor<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">1.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>apache-httpcomponents-client<span style="color:#0000cf;font-weight:bold">-4</span>-api<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">4.5.5-3.0</span><span style="color:#f8f8f8;text-decoration:underline">
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>authentication-tokens<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">1.3</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>branch-api<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">2.5.2</span><span style="color:#f8f8f8;text-decoration:underline">
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>cloudbees-folder<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">6.8</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>credentials-binding<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">1.18</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>credentials<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">2.1.19</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>display-url-api<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">2.3.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>docker-commons<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">1.15</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>docker-workflow<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">1.18</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>durable-task<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">1.29</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>git-client<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">2.7.7</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>git-server<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">1.7</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>handlebars<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">1.1.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>jackson2-api<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">2.9.9</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>jquery-detached<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">1.2.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>jsch<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">0.1.55</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>junit<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">1.28</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>lockable-resources<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">2.5</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>mailer<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">1.23</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>matrix-project<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">1.14</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>momentjs<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">1.1.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>pipeline-build-step<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">2.9</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>pipeline-graph-analysis<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">1.10</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>pipeline-input-step<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">2.10</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>pipeline-milestone-step<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">1.3.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>pipeline-model-api<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">1.3.8</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>pipeline-model-declarative-agent<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">1.1.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>pipeline-model-definition<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">1.3.8</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>pipeline-model-extensions<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">1.3.8</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>pipeline-rest-api<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">2.11</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>pipeline-stage-step<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">2.3</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>pipeline-stage-tags-metadata<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">1.3.8</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>pipeline-stage-view<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">2.11</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>plain-credentials<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">1.5</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>scm-api<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">2.4.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>script-security<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">1.59</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>ssh-credentials<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">1.16</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>structs<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">1.19</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>workflow-api<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">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>workflow-basic-steps<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">2.16</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>workflow-cps-global-lib<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">2.13</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>workflow-cps<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">2.69</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>workflow-durable-task-step<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">2.30</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>workflow-job<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">2.32</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>workflow-multibranch<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">2.21</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>workflow-scm-step<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">2.7</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>workflow-step-api<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">2.19</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>workflow-support<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">3.3</span><span style="color:#f8f8f8;text-decoration:underline">
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>workflow-job<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">2.32</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:#f8f8f8;text-decoration:underline"> </span>scm-api<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">2.4.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>script-security<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">1.59</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>structs<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">1.19</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>workflow-api<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">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>workflow-step-api<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">2.19</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>workflow-support<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">3.3</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>jenkins/jenkins<span style="color:#000;font-weight:bold">:</span>lts<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><span style="color:#0000cf;font-weight:bold">8080</span><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">30</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>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>simple-theme-plugin<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">0.5.1</span><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:#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:#0000cf;font-weight:bold">2.24</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:#f8f8f8;text-decoration:underline"> </span>workflow-step-api<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">2.19</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>credentials<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">2.1.19</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>display-url-api<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">2.3.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>junit<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">1.28</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>plain-credentials<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">1.5</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>script-security<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">1.59</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>structs<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">1.19</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>token-macro<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">2.8</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">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><span style="color:#0000cf;font-weight:bold">8080</span><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">30</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>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</code></pre></div>
<p>New format:</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>&lt;cr_name<span style="color:#8f5902;font-style:italic">&gt;
</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>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:#0000cf;font-weight:bold">1.15.7</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.32&#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:#0000cf;font-weight:bold">3.10.0</span><span style="color:#f8f8f8;text-decoration:underline">
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>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.74&#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.19&#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-support<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.19&#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:#0000cf;font-weight:bold">0.12.1</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>lts<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">30</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">3</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">30</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>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:#0000cf;font-weight:bold">0.5.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>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>slack<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:#0000cf;font-weight:bold">2.24</span></code></pre></div>
<h2 id="update-crd-to-new-version">Update CRD to new version</h2>
<p>New version of the Custom Resource definition for the operator needs to be applied:
-<a href="https://github.com/jenkinsci/kubernetes-operator/blob/master/deploy/crds/jenkins_v1alpha2_jenkins_crd.yaml" target="_blank">Jenkins CRD v1alpha2</a></p>
<p>To use default CRD file:</p>
<pre><code>kubectl -n &lt;namespace&gt; apply -f https://github.com/jenkinsci/kubernetes-operator/blob/master/deploy/crds/jenkins_v1alpha2_jenkins_crd.yaml
</code></pre>
<h2 id="update-rbac-to-new-version">Update RBAC to new version</h2>
<p>New operator version requires updated RBAC permissions:</p>
<p>To use default Role file:</p>
<pre><code>$ kubectl -n &lt;namespace&gt; apply -f https://raw.githubusercontent.com/jenkinsci/kubernetes-operator/master/deploy/role.yaml
</code></pre>
<h2 id="deploy-new-operator-manifests">Deploy new operator manifests</h2>
<p>Replace your modified operator configuration file:</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; replace -f jenkins.yaml</code></pre></div>
<p>Update operator version in the deployment file to <code>image: virtuslab/jenkins-operator:v0.1.0</code> and scale up,
or use the default deployment manifest:</p>
<pre><code>$ kubectl -n &lt;namespace&gt; apply -f https://raw.githubusercontent.com/jenkinsci/kubernetes-operator/master/deploy/operator.yaml
</code></pre>
<div class="text-muted mt-5 pt-3 border-top">Last modified August 5, 2019
</div>
</div>
</main>
</div>
</div>
<footer class="bg-dark py-5 row d-print-none">
<div class="container-fluid mx-sm-5">
<div class="row">
<div class="col-6 col-sm-4 text-xs-center order-sm-2">
</div>
<div class="col-6 col-sm-4 text-right text-xs-center order-sm-3">
</div>
<div class="col-12 col-sm-4 text-center py-2 order-sm-2">
<small class="text-white">&copy; 2019 VirtusLab All Rights Reserved</small>
<p class="mt-2"><a href="/about/">What&#39;s the Jenkins Operator?</a></p>
</div>
</div>
</div>
</footer>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
<script src="/js/main.min.7b50e46a4d678dead3e0004b8f665cd640085d2539954f51d57c7346b9a92d74.js" integrity="sha256-e1Dkak1njerT4ABLj2Zc1kAIXSU5lU9R1XxzRrmpLXQ="></script>
</body>
</html>
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,516 @@
<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="generator" content="Hugo 0.57.2" />
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
<link rel="shortcut icon" href="/favicons/favicon.ico" >
<link rel="apple-touch-icon" href="/favicons/apple-touch-icon-180x180.png" sizes="180x180">
<link rel="icon" type="image/png" href="/favicons/favicon-16x16.png" sizes="16x16">
<link rel="icon" type="image/png" href="/favicons/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="/favicons/android-36x36.png" sizes="36x36">
<link rel="icon" type="image/png" href="/favicons/android-48x48.png" sizes="48x48">
<link rel="icon" type="image/png" href="/favicons/android-72x72.png" sizes="72x72">
<link rel="icon" type="image/png" href="/favicons/android-96x196.png" sizes="96x196">
<link rel="icon" type="image/png" href="/favicons/android-144x144.png" sizes="144x144">
<link rel="icon" type="image/png" href="/favicons/android-192x192.png"sizes="192x192">
<title>AKS | Jenkins Operator</title><meta property="og:title" content="AKS" />
<meta property="og:description" content="Additional configuration for Azure Kubernetes Service
" />
<meta property="og:type" content="article" />
<meta property="og:url" content="/docs/getting-started/v0.2.0/aks/" />
<meta property="article:published_time" content="2019-08-05T00:00:00+00:00" />
<meta property="article:modified_time" content="2019-08-05T00:00:00+00:00" /><meta property="og:site_name" content="Jenkins Operator" />
<meta itemprop="name" content="AKS">
<meta itemprop="description" content="Additional configuration for Azure Kubernetes Service
">
<meta itemprop="datePublished" content="2019-08-05T00:00:00&#43;00:00" />
<meta itemprop="dateModified" content="2019-08-05T00:00:00&#43;00:00" />
<meta itemprop="wordCount" content="41">
<meta itemprop="keywords" content="" />
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="AKS"/>
<meta name="twitter:description" content="Additional configuration for Azure Kubernetes Service
"/>
<link rel="preload" href="/scss/main.min.401a1d444a3f374545e199eff2460fab833ab61f776ce23ec44dea9599dda6b1.css" as="style">
<link href="/scss/main.min.401a1d444a3f374545e199eff2460fab833ab61f776ce23ec44dea9599dda6b1.css" rel="stylesheet" integrity="">
<script
src="https://code.jquery.com/jquery-3.3.1.min.js"
integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
crossorigin="anonymous"></script>
<title>AKS | Jenkins Operator</title>
</head>
<body class="td-page">
<header>
<nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar">
<a class="navbar-brand" href="/">
<img style="width: 32px; height: 32px; margin-right: 7.5px;" src="/img/logo.svg"></img><span class="text-uppercase font-weight-bold">Jenkins Operator</span>
</a>
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
<ul class="navbar-nav mt-2 mt-lg-0">
<li class="nav-item mr-4 mb-2 mb-lg-0">
<a class="nav-link" href="/about/"><span>What's Jenkins Operator?</span></a>
</li>
<li class="nav-item mr-4 mb-2 mb-lg-0">
<a class="nav-link" href="/docs/"><span>Documentation</span></a>
</li>
</ul>
</div>
<div class="navbar-nav d-none d-lg-block">
<input type="search" class="form-control td-search-input" placeholder="&#xf002 Search this site…" aria-label="Search this site…" autocomplete="off">
</div>
</nav>
</header>
<div class="container-fluid td-outer">
<div class="td-main">
<div class="row flex-xl-nowrap">
<div class="col-12 col-md-3 col-xl-2 td-sidebar d-print-none">
<div id="td-sidebar-menu" class="td-sidebar__inner">
<form class="td-sidebar__search d-flex align-items-center">
<input type="search" class="form-control td-search-input" placeholder="&#xf002 Search this site…" aria-label="Search this site…" autocomplete="off">
<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type="button" data-toggle="collapse" data-target="#td-section-nav" aria-controls="td-docs-nav" aria-expanded="false" aria-label="Toggle section navigation">
</button>
</form>
<nav class="collapse td-sidebar-nav pt-2 pl-4" id="td-section-nav">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Documentation</a>
</li>
<ul>
<li class="collapse show" id="docs">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/installation/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Installation</a>
</li>
<ul>
<li class="collapse " id="docs-installation">
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/how-it-works/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">How it works</a>
</li>
<ul>
<li class="collapse " id="docs-how-it-works">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-how-it-works-architecture-and-design" href="/docs/how-it-works/architecture-and-design/">Architecture and design</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-how-it-works-jenkins-docker-images" href="/docs/how-it-works/jenkins-docker-images/">Jenkins Docker Images</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Getting Started</a>
</li>
<ul>
<li class="collapse show" id="docs-getting-started">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/v0.1.1/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.1.1</a>
</li>
<ul>
<li class="collapse " id="docs-getting-started-v0-1-1">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-deploy-jenkins" href="/docs/getting-started/v0.1.1/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-configuration" href="/docs/getting-started/v0.1.1/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-customization" href="/docs/getting-started/v0.1.1/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-aks" href="/docs/getting-started/v0.1.1/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-configure-backup-and-restore" href="/docs/getting-started/v0.1.1/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-diagnostics" href="/docs/getting-started/v0.1.1/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-scheme" href="/docs/getting-started/v0.1.1/scheme/">Scheme</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-migration-guide-v1alpha1-to-v1alpha2" href="/docs/getting-started/v0.1.1/migration-guide-v1alpha1-to-v1alpha2/">Migration guide from v1alpha1 to v1alpha2</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/v0.2.0/" class="align-left pl-0 pr-2 active td-sidebar-link td-sidebar-link__section">v0.2.0</a>
</li>
<ul>
<li class="collapse show" id="docs-getting-started-v0-2-0">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-deploy-jenkins" href="/docs/getting-started/v0.2.0/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-configuration" href="/docs/getting-started/v0.2.0/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-customization" href="/docs/getting-started/v0.2.0/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page active" id="m-docs-getting-started-v0-2-0-aks" href="/docs/getting-started/v0.2.0/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-configure-backup-and-restore" href="/docs/getting-started/v0.2.0/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-migration" href="/docs/getting-started/v0.2.0/migration/">Migration from v0.1.1</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-diagnostics" href="/docs/getting-started/v0.2.0/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-scheme" href="/docs/getting-started/v0.2.0/scheme/">Scheme</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/security/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Security</a>
</li>
<ul>
<li class="collapse " id="docs-security">
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/developer-guide/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Developer Guide</a>
</li>
<ul>
<li class="collapse " id="docs-developer-guide">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-developer-guide-tools" href="/docs/developer-guide/tools/">Tools</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
</nav>
</div>
</div>
<main class="col-12 col-md-9 col-xl-10 pl-md-5" role="main">
<nav aria-label="breadcrumb" class="d-none d-md-block d-print-none">
<ol class="breadcrumb spb-1">
<li class="breadcrumb-item" >
<a href="/docs/">Documentation</a>
</li>
<li class="breadcrumb-item" >
<a href="/docs/getting-started/">Getting Started</a>
</li>
<li class="breadcrumb-item" >
<a href="/docs/getting-started/v0.2.0/">v0.2.0</a>
</li>
<li class="breadcrumb-item active" aria-current="page">
<a href="/docs/getting-started/v0.2.0/aks/">AKS</a>
</li>
</ol>
</nav >
<div class="td-content">
<h1>AKS</h1>
<div class="lead">Additional configuration for Azure Kubernetes Service</div>
<p>Azure AKS managed Kubernetes service adds to every pod the following envs:</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 envs when checking if Jenkins pod envs have been changed. It prevents
restart Jenkins pod over and over again.</p>
<div class="text-muted mt-5 pt-3 border-top">Last modified August 5, 2019
</div>
</div>
</main>
</div>
</div>
<footer class="bg-dark py-5 row d-print-none">
<div class="container-fluid mx-sm-5">
<div class="row">
<div class="col-6 col-sm-4 text-xs-center order-sm-2">
</div>
<div class="col-6 col-sm-4 text-right text-xs-center order-sm-3">
</div>
<div class="col-12 col-sm-4 text-center py-2 order-sm-2">
<small class="text-white">&copy; 2019 VirtusLab All Rights Reserved</small>
<p class="mt-2"><a href="/about/">What&#39;s the Jenkins Operator?</a></p>
</div>
</div>
</div>
</footer>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
<script src="/js/main.min.7b50e46a4d678dead3e0004b8f665cd640085d2539954f51d57c7346b9a92d74.js" integrity="sha256-e1Dkak1njerT4ABLj2Zc1kAIXSU5lU9R1XxzRrmpLXQ="></script>
</body>
</html>
@@ -0,0 +1,782 @@
<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="generator" content="Hugo 0.57.2" />
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
<link rel="shortcut icon" href="/favicons/favicon.ico" >
<link rel="apple-touch-icon" href="/favicons/apple-touch-icon-180x180.png" sizes="180x180">
<link rel="icon" type="image/png" href="/favicons/favicon-16x16.png" sizes="16x16">
<link rel="icon" type="image/png" href="/favicons/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="/favicons/android-36x36.png" sizes="36x36">
<link rel="icon" type="image/png" href="/favicons/android-48x48.png" sizes="48x48">
<link rel="icon" type="image/png" href="/favicons/android-72x72.png" sizes="72x72">
<link rel="icon" type="image/png" href="/favicons/android-96x196.png" sizes="96x196">
<link rel="icon" type="image/png" href="/favicons/android-144x144.png" sizes="144x144">
<link rel="icon" type="image/png" href="/favicons/android-192x192.png"sizes="192x192">
<title>Configuration | Jenkins Operator</title><meta property="og:title" content="Configuration" />
<meta property="og:description" content="How to configure Jenkins with Operator
" />
<meta property="og:type" content="article" />
<meta property="og:url" content="/docs/getting-started/v0.2.0/configuration/" />
<meta property="article:published_time" content="2019-08-05T00:00:00+00:00" />
<meta property="article:modified_time" content="2019-08-05T00:00:00+00:00" /><meta property="og:site_name" content="Jenkins Operator" />
<meta itemprop="name" content="Configuration">
<meta itemprop="description" content="How to configure Jenkins with Operator
">
<meta itemprop="datePublished" content="2019-08-05T00:00:00&#43;00:00" />
<meta itemprop="dateModified" content="2019-08-05T00:00:00&#43;00:00" />
<meta itemprop="wordCount" content="672">
<meta itemprop="keywords" content="" />
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Configuration"/>
<meta name="twitter:description" content="How to configure Jenkins with Operator
"/>
<link rel="preload" href="/scss/main.min.401a1d444a3f374545e199eff2460fab833ab61f776ce23ec44dea9599dda6b1.css" as="style">
<link href="/scss/main.min.401a1d444a3f374545e199eff2460fab833ab61f776ce23ec44dea9599dda6b1.css" rel="stylesheet" integrity="">
<script
src="https://code.jquery.com/jquery-3.3.1.min.js"
integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
crossorigin="anonymous"></script>
<title>Configuration | Jenkins Operator</title>
</head>
<body class="td-page">
<header>
<nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar">
<a class="navbar-brand" href="/">
<img style="width: 32px; height: 32px; margin-right: 7.5px;" src="/img/logo.svg"></img><span class="text-uppercase font-weight-bold">Jenkins Operator</span>
</a>
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
<ul class="navbar-nav mt-2 mt-lg-0">
<li class="nav-item mr-4 mb-2 mb-lg-0">
<a class="nav-link" href="/about/"><span>What's Jenkins Operator?</span></a>
</li>
<li class="nav-item mr-4 mb-2 mb-lg-0">
<a class="nav-link" href="/docs/"><span>Documentation</span></a>
</li>
</ul>
</div>
<div class="navbar-nav d-none d-lg-block">
<input type="search" class="form-control td-search-input" placeholder="&#xf002 Search this site…" aria-label="Search this site…" autocomplete="off">
</div>
</nav>
</header>
<div class="container-fluid td-outer">
<div class="td-main">
<div class="row flex-xl-nowrap">
<div class="col-12 col-md-3 col-xl-2 td-sidebar d-print-none">
<div id="td-sidebar-menu" class="td-sidebar__inner">
<form class="td-sidebar__search d-flex align-items-center">
<input type="search" class="form-control td-search-input" placeholder="&#xf002 Search this site…" aria-label="Search this site…" autocomplete="off">
<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type="button" data-toggle="collapse" data-target="#td-section-nav" aria-controls="td-docs-nav" aria-expanded="false" aria-label="Toggle section navigation">
</button>
</form>
<nav class="collapse td-sidebar-nav pt-2 pl-4" id="td-section-nav">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Documentation</a>
</li>
<ul>
<li class="collapse show" id="docs">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/installation/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Installation</a>
</li>
<ul>
<li class="collapse " id="docs-installation">
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/how-it-works/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">How it works</a>
</li>
<ul>
<li class="collapse " id="docs-how-it-works">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-how-it-works-architecture-and-design" href="/docs/how-it-works/architecture-and-design/">Architecture and design</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-how-it-works-jenkins-docker-images" href="/docs/how-it-works/jenkins-docker-images/">Jenkins Docker Images</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Getting Started</a>
</li>
<ul>
<li class="collapse show" id="docs-getting-started">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/v0.1.1/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.1.1</a>
</li>
<ul>
<li class="collapse " id="docs-getting-started-v0-1-1">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-deploy-jenkins" href="/docs/getting-started/v0.1.1/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-configuration" href="/docs/getting-started/v0.1.1/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-customization" href="/docs/getting-started/v0.1.1/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-aks" href="/docs/getting-started/v0.1.1/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-configure-backup-and-restore" href="/docs/getting-started/v0.1.1/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-diagnostics" href="/docs/getting-started/v0.1.1/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-scheme" href="/docs/getting-started/v0.1.1/scheme/">Scheme</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-migration-guide-v1alpha1-to-v1alpha2" href="/docs/getting-started/v0.1.1/migration-guide-v1alpha1-to-v1alpha2/">Migration guide from v1alpha1 to v1alpha2</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/v0.2.0/" class="align-left pl-0 pr-2 active td-sidebar-link td-sidebar-link__section">v0.2.0</a>
</li>
<ul>
<li class="collapse show" id="docs-getting-started-v0-2-0">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-deploy-jenkins" href="/docs/getting-started/v0.2.0/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page active" id="m-docs-getting-started-v0-2-0-configuration" href="/docs/getting-started/v0.2.0/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-customization" href="/docs/getting-started/v0.2.0/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-aks" href="/docs/getting-started/v0.2.0/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-configure-backup-and-restore" href="/docs/getting-started/v0.2.0/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-migration" href="/docs/getting-started/v0.2.0/migration/">Migration from v0.1.1</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-diagnostics" href="/docs/getting-started/v0.2.0/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-scheme" href="/docs/getting-started/v0.2.0/scheme/">Scheme</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/security/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Security</a>
</li>
<ul>
<li class="collapse " id="docs-security">
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/developer-guide/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Developer Guide</a>
</li>
<ul>
<li class="collapse " id="docs-developer-guide">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-developer-guide-tools" href="/docs/developer-guide/tools/">Tools</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
</nav>
</div>
</div>
<main class="col-12 col-md-9 col-xl-10 pl-md-5" role="main">
<nav aria-label="breadcrumb" class="d-none d-md-block d-print-none">
<ol class="breadcrumb spb-1">
<li class="breadcrumb-item" >
<a href="/docs/">Documentation</a>
</li>
<li class="breadcrumb-item" >
<a href="/docs/getting-started/">Getting Started</a>
</li>
<li class="breadcrumb-item" >
<a href="/docs/getting-started/v0.2.0/">v0.2.0</a>
</li>
<li class="breadcrumb-item active" aria-current="page">
<a href="/docs/getting-started/v0.2.0/configuration/">Configuration</a>
</li>
</ol>
</nav >
<div class="td-content">
<h1>Configuration</h1>
<div class="lead">How to configure Jenkins with Operator</div>
<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" target="_blank">job-dsl</a> and <a href="https://jenkinsci.github.io/kubernetes-credentials-provider-plugin/" target="_blank">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
│   └── build.jenkins
└── pipelines
└── build.jenkins
</code></pre>
<p><strong>cicd/jobs/build.jenkins</strong> it&rsquo;s a job definition:</p>
<pre><code>#!/usr/bin/env groovy
pipelineJob('build-jenkins-operator') {
displayName('Build jenkins-operator')
definition {
cpsScm {
scm {
git {
remote {
url('https://github.com/jenkinsci/kubernetes-operator.git')
credentials('jenkins-operator')
}
branches('*/master')
}
}
scriptPath('cicd/pipelines/build.jenkins')
}
}
}
</code></pre>
<p><strong>cicd/jobs/build.jenkins</strong> it&rsquo;s an actual Jenkins pipeline:</p>
<pre><code>#!/usr/bin/env groovy
def label = &quot;build-jenkins-operator-${UUID.randomUUID().toString()}&quot;
def home = &quot;/home/jenkins&quot;
def workspace = &quot;${home}/workspace/build-jenkins-operator&quot;
def workdir = &quot;${workspace}/src/github.com/jenkinsci/kubernetes-operator/&quot;
podTemplate(label: label,
containers: [
containerTemplate(name: 'jnlp', image: 'jenkins/jnlp-slave:alpine'),
containerTemplate(name: 'go', image: 'golang:1-alpine', command: 'cat', ttyEnabled: true),
],
envVars: [
envVar(key: 'GOPATH', value: workspace),
],
) {
node(label) {
dir(workdir) {
stage('Init') {
timeout(time: 3, unit: 'MINUTES') {
checkout scm
}
container('go') {
sh 'apk --no-cache --update add make git gcc libc-dev'
}
}
stage('Dep') {
container('go') {
sh 'make dep'
}
}
stage('Test') {
container('go') {
sh 'make test'
}
}
stage('Build') {
container('go') {
sh 'make build'
}
}
}
}
}
</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: &quot;cicd/jobs/*.jenkins&quot;
description: &quot;Jenkins Operator repository&quot;
repositoryBranch: master
repositoryUrl: https://github.com/jenkinsci/kubernetes-operator.git
</code></pre>
<p><strong>jenkins-operator</strong> will automatically discover and configure all seed jobs.</p>
<p>You can verify if deploy keys were successfully configured in Jenkins <strong>Credentials</strong> tab.</p>
<p><img src="/img/jenkins-credentials.png" alt="jenkins" /></p>
<p>You can verify if your pipelines were successfully configured in Jenkins Seed Job console output.</p>
<p><img src="/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 seed job like:</p>
<pre><code>apiVersion: jenkins.io/v1alpha2
kind: Jenkins
metadata:
name: example
spec:
seedJobs:
- id: jenkins-operator-ssh
credentialType: basicSSHUserPrivateKey
credentialID: k8s-ssh
targets: &quot;cicd/jobs/*.jenkins&quot;
description: &quot;Jenkins Operator repository&quot;
repositoryBranch: master
repositoryUrl: git@github.com:jenkinsci/kubernetes-operator.git
</code></pre>
<p>and create 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
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 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: &quot;cicd/jobs/*.jenkins&quot;
description: &quot;Jenkins Operator repository&quot;
repositoryBranch: master
repositoryUrl: https://github.com/jenkinsci/kubernetes-operator.git
</code></pre>
<p>and create 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>
<h2 id="pulling-docker-images-from-private-repositories">Pulling Docker images from private repositories</h2>
<p>To pull 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" target="_blank">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 Base64 value before setting the <code>.dockerconfigjson</code> key:q.</p>
<p>Example config file to modify and use:</p>
<pre><code>{
&quot;auths&quot;:{
&quot;https://index.docker.io/v1/&quot;:{
&quot;username&quot;:&quot;user&quot;,
&quot;password&quot;:&quot;password&quot;,
&quot;email&quot;:&quot;yourdockeremail@gmail.com&quot;,
&quot;auth&quot;:&quot;base64 of string user:password&quot;
},
&quot;auth.docker.io&quot;:{
&quot;username&quot;:&quot;user&quot;,
&quot;password&quot;:&quot;password&quot;,
&quot;email&quot;:&quot;yourdockeremail@gmail.com&quot;,
&quot;auth&quot;:&quot;base64 of string user:password&quot;
},
&quot;registry.docker.io&quot;:{
&quot;username&quot;:&quot;user&quot;,
&quot;password&quot;:&quot;password&quot;,
&quot;email&quot;:&quot;yourdockeremail@gmail.com&quot;,
&quot;auth&quot;:&quot;base64 of string user:password&quot;
},
&quot;docker.io&quot;:{
&quot;username&quot;:&quot;user&quot;,
&quot;password&quot;:&quot;password&quot;,
&quot;email&quot;:&quot;yourdockeremail@gmail.com&quot;,
&quot;auth&quot;:&quot;base64 of string user:password&quot;
},
&quot;https://registry-1.docker.io/v2/&quot;: {
&quot;username&quot;:&quot;user&quot;,
&quot;password&quot;:&quot;password&quot;,
&quot;email&quot;:&quot;yourdockeremail@gmail.com&quot;,
&quot;auth&quot;:&quot;base64 of string user:password&quot;
},
&quot;registry-1.docker.io/v2/&quot;: {
&quot;username&quot;:&quot;user&quot;,
&quot;password&quot;:&quot;password&quot;,
&quot;email&quot;:&quot;yourdockeremail@gmail.com&quot;,
&quot;auth&quot;:&quot;base64 of string user:password&quot;
},
&quot;registry-1.docker.io&quot;: {
&quot;username&quot;:&quot;user&quot;,
&quot;password&quot;:&quot;password&quot;,
&quot;email&quot;:&quot;yourdockeremail@gmail.com&quot;,
&quot;auth&quot;:&quot;base64 of string user:password&quot;
},
&quot;https://registry-1.docker.io&quot;: {
&quot;username&quot;:&quot;user&quot;,
&quot;password&quot;:&quot;password&quot;,
&quot;email&quot;:&quot;yourdockeremail@gmail.com&quot;,
&quot;auth&quot;:&quot;base64 of string user:password&quot;
}
}
}
</code></pre>
<div class="text-muted mt-5 pt-3 border-top">Last modified August 5, 2019
</div>
</div>
</main>
</div>
</div>
<footer class="bg-dark py-5 row d-print-none">
<div class="container-fluid mx-sm-5">
<div class="row">
<div class="col-6 col-sm-4 text-xs-center order-sm-2">
</div>
<div class="col-6 col-sm-4 text-right text-xs-center order-sm-3">
</div>
<div class="col-12 col-sm-4 text-center py-2 order-sm-2">
<small class="text-white">&copy; 2019 VirtusLab All Rights Reserved</small>
<p class="mt-2"><a href="/about/">What&#39;s the Jenkins Operator?</a></p>
</div>
</div>
</div>
</footer>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
<script src="/js/main.min.7b50e46a4d678dead3e0004b8f665cd640085d2539954f51d57c7346b9a92d74.js" integrity="sha256-e1Dkak1njerT4ABLj2Zc1kAIXSU5lU9R1XxzRrmpLXQ="></script>
</body>
</html>
@@ -0,0 +1,574 @@
<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="generator" content="Hugo 0.57.2" />
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
<link rel="shortcut icon" href="/favicons/favicon.ico" >
<link rel="apple-touch-icon" href="/favicons/apple-touch-icon-180x180.png" sizes="180x180">
<link rel="icon" type="image/png" href="/favicons/favicon-16x16.png" sizes="16x16">
<link rel="icon" type="image/png" href="/favicons/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="/favicons/android-36x36.png" sizes="36x36">
<link rel="icon" type="image/png" href="/favicons/android-48x48.png" sizes="48x48">
<link rel="icon" type="image/png" href="/favicons/android-72x72.png" sizes="72x72">
<link rel="icon" type="image/png" href="/favicons/android-96x196.png" sizes="96x196">
<link rel="icon" type="image/png" href="/favicons/android-144x144.png" sizes="144x144">
<link rel="icon" type="image/png" href="/favicons/android-192x192.png"sizes="192x192">
<title>Configure backup and restore | Jenkins Operator</title><meta property="og:title" content="Configure backup and restore" />
<meta property="og:description" content="Prevent job history loss
" />
<meta property="og:type" content="article" />
<meta property="og:url" content="/docs/getting-started/v0.2.0/configure-backup-and-restore/" />
<meta property="article:published_time" content="2019-08-05T00:00:00+00:00" />
<meta property="article:modified_time" content="2019-08-05T00:00:00+00:00" /><meta property="og:site_name" content="Jenkins Operator" />
<meta itemprop="name" content="Configure backup and restore">
<meta itemprop="description" content="Prevent job history loss
">
<meta itemprop="datePublished" content="2019-08-05T00:00:00&#43;00:00" />
<meta itemprop="dateModified" content="2019-08-05T00:00:00&#43;00:00" />
<meta itemprop="wordCount" content="149">
<meta itemprop="keywords" content="" />
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Configure backup and restore"/>
<meta name="twitter:description" content="Prevent job history loss
"/>
<link rel="preload" href="/scss/main.min.401a1d444a3f374545e199eff2460fab833ab61f776ce23ec44dea9599dda6b1.css" as="style">
<link href="/scss/main.min.401a1d444a3f374545e199eff2460fab833ab61f776ce23ec44dea9599dda6b1.css" rel="stylesheet" integrity="">
<script
src="https://code.jquery.com/jquery-3.3.1.min.js"
integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
crossorigin="anonymous"></script>
<title>Configure backup and restore | Jenkins Operator</title>
</head>
<body class="td-page">
<header>
<nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar">
<a class="navbar-brand" href="/">
<img style="width: 32px; height: 32px; margin-right: 7.5px;" src="/img/logo.svg"></img><span class="text-uppercase font-weight-bold">Jenkins Operator</span>
</a>
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
<ul class="navbar-nav mt-2 mt-lg-0">
<li class="nav-item mr-4 mb-2 mb-lg-0">
<a class="nav-link" href="/about/"><span>What's Jenkins Operator?</span></a>
</li>
<li class="nav-item mr-4 mb-2 mb-lg-0">
<a class="nav-link" href="/docs/"><span>Documentation</span></a>
</li>
</ul>
</div>
<div class="navbar-nav d-none d-lg-block">
<input type="search" class="form-control td-search-input" placeholder="&#xf002 Search this site…" aria-label="Search this site…" autocomplete="off">
</div>
</nav>
</header>
<div class="container-fluid td-outer">
<div class="td-main">
<div class="row flex-xl-nowrap">
<div class="col-12 col-md-3 col-xl-2 td-sidebar d-print-none">
<div id="td-sidebar-menu" class="td-sidebar__inner">
<form class="td-sidebar__search d-flex align-items-center">
<input type="search" class="form-control td-search-input" placeholder="&#xf002 Search this site…" aria-label="Search this site…" autocomplete="off">
<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type="button" data-toggle="collapse" data-target="#td-section-nav" aria-controls="td-docs-nav" aria-expanded="false" aria-label="Toggle section navigation">
</button>
</form>
<nav class="collapse td-sidebar-nav pt-2 pl-4" id="td-section-nav">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Documentation</a>
</li>
<ul>
<li class="collapse show" id="docs">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/installation/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Installation</a>
</li>
<ul>
<li class="collapse " id="docs-installation">
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/how-it-works/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">How it works</a>
</li>
<ul>
<li class="collapse " id="docs-how-it-works">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-how-it-works-architecture-and-design" href="/docs/how-it-works/architecture-and-design/">Architecture and design</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-how-it-works-jenkins-docker-images" href="/docs/how-it-works/jenkins-docker-images/">Jenkins Docker Images</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Getting Started</a>
</li>
<ul>
<li class="collapse show" id="docs-getting-started">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/v0.1.1/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.1.1</a>
</li>
<ul>
<li class="collapse " id="docs-getting-started-v0-1-1">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-deploy-jenkins" href="/docs/getting-started/v0.1.1/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-configuration" href="/docs/getting-started/v0.1.1/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-customization" href="/docs/getting-started/v0.1.1/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-aks" href="/docs/getting-started/v0.1.1/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-configure-backup-and-restore" href="/docs/getting-started/v0.1.1/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-diagnostics" href="/docs/getting-started/v0.1.1/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-scheme" href="/docs/getting-started/v0.1.1/scheme/">Scheme</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-migration-guide-v1alpha1-to-v1alpha2" href="/docs/getting-started/v0.1.1/migration-guide-v1alpha1-to-v1alpha2/">Migration guide from v1alpha1 to v1alpha2</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/v0.2.0/" class="align-left pl-0 pr-2 active td-sidebar-link td-sidebar-link__section">v0.2.0</a>
</li>
<ul>
<li class="collapse show" id="docs-getting-started-v0-2-0">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-deploy-jenkins" href="/docs/getting-started/v0.2.0/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-configuration" href="/docs/getting-started/v0.2.0/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-customization" href="/docs/getting-started/v0.2.0/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-aks" href="/docs/getting-started/v0.2.0/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page active" id="m-docs-getting-started-v0-2-0-configure-backup-and-restore" href="/docs/getting-started/v0.2.0/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-migration" href="/docs/getting-started/v0.2.0/migration/">Migration from v0.1.1</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-diagnostics" href="/docs/getting-started/v0.2.0/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-scheme" href="/docs/getting-started/v0.2.0/scheme/">Scheme</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/security/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Security</a>
</li>
<ul>
<li class="collapse " id="docs-security">
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/developer-guide/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Developer Guide</a>
</li>
<ul>
<li class="collapse " id="docs-developer-guide">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-developer-guide-tools" href="/docs/developer-guide/tools/">Tools</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
</nav>
</div>
</div>
<main class="col-12 col-md-9 col-xl-10 pl-md-5" role="main">
<nav aria-label="breadcrumb" class="d-none d-md-block d-print-none">
<ol class="breadcrumb spb-1">
<li class="breadcrumb-item" >
<a href="/docs/">Documentation</a>
</li>
<li class="breadcrumb-item" >
<a href="/docs/getting-started/">Getting Started</a>
</li>
<li class="breadcrumb-item" >
<a href="/docs/getting-started/v0.2.0/">v0.2.0</a>
</li>
<li class="breadcrumb-item active" aria-current="page">
<a href="/docs/getting-started/v0.2.0/configure-backup-and-restore/">Configure backup and restore</a>
</li>
</ol>
</nav >
<div class="td-content">
<h1>Configure backup and restore</h1>
<div class="lead">Prevent job history loss</div>
<p>Backup and restore is done by container sidecar.</p>
<h3 id="pvc">PVC</h3>
<h4 id="create-pvc">Create PVC</h4>
<p>Save to file 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"> namespace: &lt;namesapce&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 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;namesapce&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"> 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>lts<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>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">.0.6</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"> 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>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 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>
<div class="text-muted mt-5 pt-3 border-top">Last modified August 5, 2019
</div>
</div>
</main>
</div>
</div>
<footer class="bg-dark py-5 row d-print-none">
<div class="container-fluid mx-sm-5">
<div class="row">
<div class="col-6 col-sm-4 text-xs-center order-sm-2">
</div>
<div class="col-6 col-sm-4 text-right text-xs-center order-sm-3">
</div>
<div class="col-12 col-sm-4 text-center py-2 order-sm-2">
<small class="text-white">&copy; 2019 VirtusLab All Rights Reserved</small>
<p class="mt-2"><a href="/about/">What&#39;s the Jenkins Operator?</a></p>
</div>
</div>
</div>
</footer>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
<script src="/js/main.min.7b50e46a4d678dead3e0004b8f665cd640085d2539954f51d57c7346b9a92d74.js" integrity="sha256-e1Dkak1njerT4ABLj2Zc1kAIXSU5lU9R1XxzRrmpLXQ="></script>
</body>
</html>
@@ -0,0 +1,658 @@
<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="generator" content="Hugo 0.57.2" />
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
<link rel="shortcut icon" href="/favicons/favicon.ico" >
<link rel="apple-touch-icon" href="/favicons/apple-touch-icon-180x180.png" sizes="180x180">
<link rel="icon" type="image/png" href="/favicons/favicon-16x16.png" sizes="16x16">
<link rel="icon" type="image/png" href="/favicons/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="/favicons/android-36x36.png" sizes="36x36">
<link rel="icon" type="image/png" href="/favicons/android-48x48.png" sizes="48x48">
<link rel="icon" type="image/png" href="/favicons/android-72x72.png" sizes="72x72">
<link rel="icon" type="image/png" href="/favicons/android-96x196.png" sizes="96x196">
<link rel="icon" type="image/png" href="/favicons/android-144x144.png" sizes="144x144">
<link rel="icon" type="image/png" href="/favicons/android-192x192.png"sizes="192x192">
<title>Customization | Jenkins Operator</title><meta property="og:title" content="Customization" />
<meta property="og:description" content="How to customize Jenkins
" />
<meta property="og:type" content="article" />
<meta property="og:url" content="/docs/getting-started/v0.2.0/customization/" />
<meta property="article:published_time" content="2019-08-05T00:00:00+00:00" />
<meta property="article:modified_time" content="2019-08-05T00:00:00+00:00" /><meta property="og:site_name" content="Jenkins Operator" />
<meta itemprop="name" content="Customization">
<meta itemprop="description" content="How to customize Jenkins
">
<meta itemprop="datePublished" content="2019-08-05T00:00:00&#43;00:00" />
<meta itemprop="dateModified" content="2019-08-05T00:00:00&#43;00:00" />
<meta itemprop="wordCount" content="236">
<meta itemprop="keywords" content="" />
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Customization"/>
<meta name="twitter:description" content="How to customize Jenkins
"/>
<link rel="preload" href="/scss/main.min.401a1d444a3f374545e199eff2460fab833ab61f776ce23ec44dea9599dda6b1.css" as="style">
<link href="/scss/main.min.401a1d444a3f374545e199eff2460fab833ab61f776ce23ec44dea9599dda6b1.css" rel="stylesheet" integrity="">
<script
src="https://code.jquery.com/jquery-3.3.1.min.js"
integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
crossorigin="anonymous"></script>
<title>Customization | Jenkins Operator</title>
</head>
<body class="td-page">
<header>
<nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar">
<a class="navbar-brand" href="/">
<img style="width: 32px; height: 32px; margin-right: 7.5px;" src="/img/logo.svg"></img><span class="text-uppercase font-weight-bold">Jenkins Operator</span>
</a>
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
<ul class="navbar-nav mt-2 mt-lg-0">
<li class="nav-item mr-4 mb-2 mb-lg-0">
<a class="nav-link" href="/about/"><span>What's Jenkins Operator?</span></a>
</li>
<li class="nav-item mr-4 mb-2 mb-lg-0">
<a class="nav-link" href="/docs/"><span>Documentation</span></a>
</li>
</ul>
</div>
<div class="navbar-nav d-none d-lg-block">
<input type="search" class="form-control td-search-input" placeholder="&#xf002 Search this site…" aria-label="Search this site…" autocomplete="off">
</div>
</nav>
</header>
<div class="container-fluid td-outer">
<div class="td-main">
<div class="row flex-xl-nowrap">
<div class="col-12 col-md-3 col-xl-2 td-sidebar d-print-none">
<div id="td-sidebar-menu" class="td-sidebar__inner">
<form class="td-sidebar__search d-flex align-items-center">
<input type="search" class="form-control td-search-input" placeholder="&#xf002 Search this site…" aria-label="Search this site…" autocomplete="off">
<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type="button" data-toggle="collapse" data-target="#td-section-nav" aria-controls="td-docs-nav" aria-expanded="false" aria-label="Toggle section navigation">
</button>
</form>
<nav class="collapse td-sidebar-nav pt-2 pl-4" id="td-section-nav">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Documentation</a>
</li>
<ul>
<li class="collapse show" id="docs">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/installation/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Installation</a>
</li>
<ul>
<li class="collapse " id="docs-installation">
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/how-it-works/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">How it works</a>
</li>
<ul>
<li class="collapse " id="docs-how-it-works">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-how-it-works-architecture-and-design" href="/docs/how-it-works/architecture-and-design/">Architecture and design</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-how-it-works-jenkins-docker-images" href="/docs/how-it-works/jenkins-docker-images/">Jenkins Docker Images</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Getting Started</a>
</li>
<ul>
<li class="collapse show" id="docs-getting-started">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/v0.1.1/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.1.1</a>
</li>
<ul>
<li class="collapse " id="docs-getting-started-v0-1-1">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-deploy-jenkins" href="/docs/getting-started/v0.1.1/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-configuration" href="/docs/getting-started/v0.1.1/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-customization" href="/docs/getting-started/v0.1.1/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-aks" href="/docs/getting-started/v0.1.1/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-configure-backup-and-restore" href="/docs/getting-started/v0.1.1/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-diagnostics" href="/docs/getting-started/v0.1.1/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-scheme" href="/docs/getting-started/v0.1.1/scheme/">Scheme</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-migration-guide-v1alpha1-to-v1alpha2" href="/docs/getting-started/v0.1.1/migration-guide-v1alpha1-to-v1alpha2/">Migration guide from v1alpha1 to v1alpha2</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/v0.2.0/" class="align-left pl-0 pr-2 active td-sidebar-link td-sidebar-link__section">v0.2.0</a>
</li>
<ul>
<li class="collapse show" id="docs-getting-started-v0-2-0">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-deploy-jenkins" href="/docs/getting-started/v0.2.0/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-configuration" href="/docs/getting-started/v0.2.0/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page active" id="m-docs-getting-started-v0-2-0-customization" href="/docs/getting-started/v0.2.0/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-aks" href="/docs/getting-started/v0.2.0/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-configure-backup-and-restore" href="/docs/getting-started/v0.2.0/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-migration" href="/docs/getting-started/v0.2.0/migration/">Migration from v0.1.1</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-diagnostics" href="/docs/getting-started/v0.2.0/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-scheme" href="/docs/getting-started/v0.2.0/scheme/">Scheme</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/security/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Security</a>
</li>
<ul>
<li class="collapse " id="docs-security">
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/developer-guide/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Developer Guide</a>
</li>
<ul>
<li class="collapse " id="docs-developer-guide">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-developer-guide-tools" href="/docs/developer-guide/tools/">Tools</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
</nav>
</div>
</div>
<main class="col-12 col-md-9 col-xl-10 pl-md-5" role="main">
<nav aria-label="breadcrumb" class="d-none d-md-block d-print-none">
<ol class="breadcrumb spb-1">
<li class="breadcrumb-item" >
<a href="/docs/">Documentation</a>
</li>
<li class="breadcrumb-item" >
<a href="/docs/getting-started/">Getting Started</a>
</li>
<li class="breadcrumb-item" >
<a href="/docs/getting-started/v0.2.0/">v0.2.0</a>
</li>
<li class="breadcrumb-item active" aria-current="page">
<a href="/docs/getting-started/v0.2.0/customization/">Customization</a>
</li>
</ol>
</nav >
<div class="td-content">
<h1>Customization</h1>
<div class="lead">How to customize Jenkins</div>
<p>Jenkins can be customized using groovy scripts or <a href="https://github.com/jenkinsci/configuration-as-code-plugin" target="_blank">configuration as code plugin</a>.
By using <a href="https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/" target="_blank">ConfigMap</a> you can create own <strong>Jenkins</strong> customized configuration.
Then you must reference the <em>ConfigMap</em> in <strong>Jenkins</strong> pod customization file in <code>spec.groovyScripts</code> or <code>spec.configurationAsCode</code></p>
<p>For example create <em>ConfigMap</em> with name <code>jenkins-operator-user-configuration</code>. Then, modify the <strong>Jenkins</strong> manifest to look like this:</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 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"> 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"> 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>*.groovy is Groovy script configuration</li>
<li>*.yaml is configuration as code</li>
</ul>
<p>If you want to correct your configuration you can edit it while <strong>jenkins-operator</strong> is running.
Jenkins will reconcile and apply new configuration.</p>
<h3 id="using-secrets-inside-groovy-script">Using secrets inside Groovy script</h3>
<p>If you configured <code>spec.groovyScripts.secret.name</code>, then this secret is available to use inside 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/" target="_blank">secret</a> with for eg. <code>jenkins-conf-secrets</code> name.</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 ConfigMap 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"> 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 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"> 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 at <strong>Jenkins</strong> homepage.</p>
<h2 id="install-plugins">Install Plugins</h2>
<p>Edit CR under <code>spec.master.plugins</code>:</p>
<pre><code>apiVersion: jenkins.io/v1alpha2
kind: Jenkins
metadata:
name: example
spec:
master:
plugins:
- name: simple-theme-plugin
version: 0.5.1
</code></pre>
<p>Under <code>spec.master.basePlugins</code> you can find plugins for valid <strong>jenkins-operator</strong> work:</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:#0000cf;font-weight:bold">1.18.3</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.34&#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:#0000cf;font-weight:bold">3.12.0</span><span style="color:#f8f8f8;text-decoration:underline">
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>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.76&#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.29&#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-support<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.19&#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:#0000cf;font-weight:bold">0.12.1</span></code></pre></div>
<p>You can change version of them.</p>
<p>Then <strong>jenkins-operator</strong> will automatically install plugins after Jenkins master pod restart.</p>
<div class="text-muted mt-5 pt-3 border-top">Last modified August 5, 2019
</div>
</div>
</main>
</div>
</div>
<footer class="bg-dark py-5 row d-print-none">
<div class="container-fluid mx-sm-5">
<div class="row">
<div class="col-6 col-sm-4 text-xs-center order-sm-2">
</div>
<div class="col-6 col-sm-4 text-right text-xs-center order-sm-3">
</div>
<div class="col-12 col-sm-4 text-center py-2 order-sm-2">
<small class="text-white">&copy; 2019 VirtusLab All Rights Reserved</small>
<p class="mt-2"><a href="/about/">What&#39;s the Jenkins Operator?</a></p>
</div>
</div>
</div>
</footer>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
<script src="/js/main.min.7b50e46a4d678dead3e0004b8f665cd640085d2539954f51d57c7346b9a92d74.js" integrity="sha256-e1Dkak1njerT4ABLj2Zc1kAIXSU5lU9R1XxzRrmpLXQ="></script>
</body>
</html>
@@ -0,0 +1,563 @@
<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="generator" content="Hugo 0.57.2" />
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
<link rel="shortcut icon" href="/favicons/favicon.ico" >
<link rel="apple-touch-icon" href="/favicons/apple-touch-icon-180x180.png" sizes="180x180">
<link rel="icon" type="image/png" href="/favicons/favicon-16x16.png" sizes="16x16">
<link rel="icon" type="image/png" href="/favicons/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="/favicons/android-36x36.png" sizes="36x36">
<link rel="icon" type="image/png" href="/favicons/android-48x48.png" sizes="48x48">
<link rel="icon" type="image/png" href="/favicons/android-72x72.png" sizes="72x72">
<link rel="icon" type="image/png" href="/favicons/android-96x196.png" sizes="96x196">
<link rel="icon" type="image/png" href="/favicons/android-144x144.png" sizes="144x144">
<link rel="icon" type="image/png" href="/favicons/android-192x192.png"sizes="192x192">
<title>Deploy Jenkins | Jenkins Operator</title><meta property="og:title" content="Deploy Jenkins" />
<meta property="og:description" content="Deploy production ready Jenkins Operator manifest
" />
<meta property="og:type" content="article" />
<meta property="og:url" content="/docs/getting-started/v0.2.0/deploy-jenkins/" />
<meta property="article:published_time" content="2019-08-05T00:00:00+00:00" />
<meta property="article:modified_time" content="2019-08-05T00:00:00+00:00" /><meta property="og:site_name" content="Jenkins Operator" />
<meta itemprop="name" content="Deploy Jenkins">
<meta itemprop="description" content="Deploy production ready Jenkins Operator manifest
">
<meta itemprop="datePublished" content="2019-08-05T00:00:00&#43;00:00" />
<meta itemprop="dateModified" content="2019-08-05T00:00:00&#43;00:00" />
<meta itemprop="wordCount" content="163">
<meta itemprop="keywords" content="" />
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Deploy Jenkins"/>
<meta name="twitter:description" content="Deploy production ready Jenkins Operator manifest
"/>
<link rel="preload" href="/scss/main.min.401a1d444a3f374545e199eff2460fab833ab61f776ce23ec44dea9599dda6b1.css" as="style">
<link href="/scss/main.min.401a1d444a3f374545e199eff2460fab833ab61f776ce23ec44dea9599dda6b1.css" rel="stylesheet" integrity="">
<script
src="https://code.jquery.com/jquery-3.3.1.min.js"
integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
crossorigin="anonymous"></script>
<title>Deploy Jenkins | Jenkins Operator</title>
</head>
<body class="td-page">
<header>
<nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar">
<a class="navbar-brand" href="/">
<img style="width: 32px; height: 32px; margin-right: 7.5px;" src="/img/logo.svg"></img><span class="text-uppercase font-weight-bold">Jenkins Operator</span>
</a>
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
<ul class="navbar-nav mt-2 mt-lg-0">
<li class="nav-item mr-4 mb-2 mb-lg-0">
<a class="nav-link" href="/about/"><span>What's Jenkins Operator?</span></a>
</li>
<li class="nav-item mr-4 mb-2 mb-lg-0">
<a class="nav-link" href="/docs/"><span>Documentation</span></a>
</li>
</ul>
</div>
<div class="navbar-nav d-none d-lg-block">
<input type="search" class="form-control td-search-input" placeholder="&#xf002 Search this site…" aria-label="Search this site…" autocomplete="off">
</div>
</nav>
</header>
<div class="container-fluid td-outer">
<div class="td-main">
<div class="row flex-xl-nowrap">
<div class="col-12 col-md-3 col-xl-2 td-sidebar d-print-none">
<div id="td-sidebar-menu" class="td-sidebar__inner">
<form class="td-sidebar__search d-flex align-items-center">
<input type="search" class="form-control td-search-input" placeholder="&#xf002 Search this site…" aria-label="Search this site…" autocomplete="off">
<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type="button" data-toggle="collapse" data-target="#td-section-nav" aria-controls="td-docs-nav" aria-expanded="false" aria-label="Toggle section navigation">
</button>
</form>
<nav class="collapse td-sidebar-nav pt-2 pl-4" id="td-section-nav">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Documentation</a>
</li>
<ul>
<li class="collapse show" id="docs">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/installation/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Installation</a>
</li>
<ul>
<li class="collapse " id="docs-installation">
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/how-it-works/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">How it works</a>
</li>
<ul>
<li class="collapse " id="docs-how-it-works">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-how-it-works-architecture-and-design" href="/docs/how-it-works/architecture-and-design/">Architecture and design</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-how-it-works-jenkins-docker-images" href="/docs/how-it-works/jenkins-docker-images/">Jenkins Docker Images</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Getting Started</a>
</li>
<ul>
<li class="collapse show" id="docs-getting-started">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/v0.1.1/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.1.1</a>
</li>
<ul>
<li class="collapse " id="docs-getting-started-v0-1-1">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-deploy-jenkins" href="/docs/getting-started/v0.1.1/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-configuration" href="/docs/getting-started/v0.1.1/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-customization" href="/docs/getting-started/v0.1.1/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-aks" href="/docs/getting-started/v0.1.1/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-configure-backup-and-restore" href="/docs/getting-started/v0.1.1/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-diagnostics" href="/docs/getting-started/v0.1.1/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-scheme" href="/docs/getting-started/v0.1.1/scheme/">Scheme</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-migration-guide-v1alpha1-to-v1alpha2" href="/docs/getting-started/v0.1.1/migration-guide-v1alpha1-to-v1alpha2/">Migration guide from v1alpha1 to v1alpha2</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/v0.2.0/" class="align-left pl-0 pr-2 active td-sidebar-link td-sidebar-link__section">v0.2.0</a>
</li>
<ul>
<li class="collapse show" id="docs-getting-started-v0-2-0">
<a class="td-sidebar-link td-sidebar-link__page active" id="m-docs-getting-started-v0-2-0-deploy-jenkins" href="/docs/getting-started/v0.2.0/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-configuration" href="/docs/getting-started/v0.2.0/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-customization" href="/docs/getting-started/v0.2.0/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-aks" href="/docs/getting-started/v0.2.0/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-configure-backup-and-restore" href="/docs/getting-started/v0.2.0/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-migration" href="/docs/getting-started/v0.2.0/migration/">Migration from v0.1.1</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-diagnostics" href="/docs/getting-started/v0.2.0/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-scheme" href="/docs/getting-started/v0.2.0/scheme/">Scheme</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/security/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Security</a>
</li>
<ul>
<li class="collapse " id="docs-security">
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/developer-guide/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Developer Guide</a>
</li>
<ul>
<li class="collapse " id="docs-developer-guide">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-developer-guide-tools" href="/docs/developer-guide/tools/">Tools</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
</nav>
</div>
</div>
<main class="col-12 col-md-9 col-xl-10 pl-md-5" role="main">
<nav aria-label="breadcrumb" class="d-none d-md-block d-print-none">
<ol class="breadcrumb spb-1">
<li class="breadcrumb-item" >
<a href="/docs/">Documentation</a>
</li>
<li class="breadcrumb-item" >
<a href="/docs/getting-started/">Getting Started</a>
</li>
<li class="breadcrumb-item" >
<a href="/docs/getting-started/v0.2.0/">v0.2.0</a>
</li>
<li class="breadcrumb-item active" aria-current="page">
<a href="/docs/getting-started/v0.2.0/deploy-jenkins/">Deploy Jenkins</a>
</li>
</ol>
</nav >
<div class="td-content">
<h1>Deploy Jenkins</h1>
<div class="lead">Deploy production ready Jenkins Operator manifest</div>
<p>Once jenkins-operator is up and running let&rsquo;s deploy actual Jenkins instance.
Create manifest ie. <strong>jenkins_instance.yaml</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-bash" data-lang="bash">apiVersion: jenkins.io/v1alpha2
kind: Jenkins
metadata:
name: example
spec:
master:
containers:
- name: jenkins-master
image: jenkins/jenkins:lts
imagePullPolicy: Always
livenessProbe:
failureThreshold: <span style="color:#0000cf;font-weight:bold">12</span>
httpGet:
path: /login
port: http
scheme: HTTP
initialDelaySeconds: <span style="color:#0000cf;font-weight:bold">80</span>
periodSeconds: <span style="color:#0000cf;font-weight:bold">10</span>
successThreshold: <span style="color:#0000cf;font-weight:bold">1</span>
timeoutSeconds: <span style="color:#0000cf;font-weight:bold">5</span>
readinessProbe:
failureThreshold: <span style="color:#0000cf;font-weight:bold">3</span>
httpGet:
path: /login
port: http
scheme: HTTP
initialDelaySeconds: <span style="color:#0000cf;font-weight:bold">30</span>
periodSeconds: <span style="color:#0000cf;font-weight:bold">10</span>
successThreshold: <span style="color:#0000cf;font-weight:bold">1</span>
timeoutSeconds: <span style="color:#0000cf;font-weight:bold">1</span>
resources:
limits:
cpu: 1500m
memory: 3Gi
requests:
cpu: <span style="color:#4e9a06">&#34;1&#34;</span>
memory: 500Mi
seedJobs:
- id: jenkins-operator
targets: <span style="color:#4e9a06">&#34;cicd/jobs/*.jenkins&#34;</span>
description: <span style="color:#4e9a06">&#34;Jenkins Operator repository&#34;</span>
repositoryBranch: master
repositoryUrl: https://github.com/jenkinsci/kubernetes-operator.git</code></pre></div>
<p>Deploy Jenkins to K8s:</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 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 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 Jenkins (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 Jenkins (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; <span style="color:#0000cf;font-weight:bold">8080</span>:8080</code></pre></div>
<p>Then open browser with address <code>http://localhost:8080</code>.
<img src="/img/jenkins.png" alt="jenkins" /></p>
<div class="text-muted mt-5 pt-3 border-top">Last modified August 5, 2019
</div>
</div>
</main>
</div>
</div>
<footer class="bg-dark py-5 row d-print-none">
<div class="container-fluid mx-sm-5">
<div class="row">
<div class="col-6 col-sm-4 text-xs-center order-sm-2">
</div>
<div class="col-6 col-sm-4 text-right text-xs-center order-sm-3">
</div>
<div class="col-12 col-sm-4 text-center py-2 order-sm-2">
<small class="text-white">&copy; 2019 VirtusLab All Rights Reserved</small>
<p class="mt-2"><a href="/about/">What&#39;s the Jenkins Operator?</a></p>
</div>
</div>
</div>
</footer>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
<script src="/js/main.min.7b50e46a4d678dead3e0004b8f665cd640085d2539954f51d57c7346b9a92d74.js" integrity="sha256-e1Dkak1njerT4ABLj2Zc1kAIXSU5lU9R1XxzRrmpLXQ="></script>
</body>
</html>
@@ -0,0 +1,519 @@
<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="generator" content="Hugo 0.57.2" />
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
<link rel="shortcut icon" href="/favicons/favicon.ico" >
<link rel="apple-touch-icon" href="/favicons/apple-touch-icon-180x180.png" sizes="180x180">
<link rel="icon" type="image/png" href="/favicons/favicon-16x16.png" sizes="16x16">
<link rel="icon" type="image/png" href="/favicons/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="/favicons/android-36x36.png" sizes="36x36">
<link rel="icon" type="image/png" href="/favicons/android-48x48.png" sizes="48x48">
<link rel="icon" type="image/png" href="/favicons/android-72x72.png" sizes="72x72">
<link rel="icon" type="image/png" href="/favicons/android-96x196.png" sizes="96x196">
<link rel="icon" type="image/png" href="/favicons/android-144x144.png" sizes="144x144">
<link rel="icon" type="image/png" href="/favicons/android-192x192.png"sizes="192x192">
<title>Diagnostics | Jenkins Operator</title><meta property="og:title" content="Diagnostics" />
<meta property="og:description" content="How to deal with jenkins-operator problems
" />
<meta property="og:type" content="article" />
<meta property="og:url" content="/docs/getting-started/v0.2.0/diagnostics/" />
<meta property="article:published_time" content="2019-08-05T00:00:00+00:00" />
<meta property="article:modified_time" content="2019-08-05T00:00:00+00:00" /><meta property="og:site_name" content="Jenkins Operator" />
<meta itemprop="name" content="Diagnostics">
<meta itemprop="description" content="How to deal with jenkins-operator problems
">
<meta itemprop="datePublished" content="2019-08-05T00:00:00&#43;00:00" />
<meta itemprop="dateModified" content="2019-08-05T00:00:00&#43;00:00" />
<meta itemprop="wordCount" content="54">
<meta itemprop="keywords" content="" />
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Diagnostics"/>
<meta name="twitter:description" content="How to deal with jenkins-operator problems
"/>
<link rel="preload" href="/scss/main.min.401a1d444a3f374545e199eff2460fab833ab61f776ce23ec44dea9599dda6b1.css" as="style">
<link href="/scss/main.min.401a1d444a3f374545e199eff2460fab833ab61f776ce23ec44dea9599dda6b1.css" rel="stylesheet" integrity="">
<script
src="https://code.jquery.com/jquery-3.3.1.min.js"
integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
crossorigin="anonymous"></script>
<title>Diagnostics | Jenkins Operator</title>
</head>
<body class="td-page">
<header>
<nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar">
<a class="navbar-brand" href="/">
<img style="width: 32px; height: 32px; margin-right: 7.5px;" src="/img/logo.svg"></img><span class="text-uppercase font-weight-bold">Jenkins Operator</span>
</a>
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
<ul class="navbar-nav mt-2 mt-lg-0">
<li class="nav-item mr-4 mb-2 mb-lg-0">
<a class="nav-link" href="/about/"><span>What's Jenkins Operator?</span></a>
</li>
<li class="nav-item mr-4 mb-2 mb-lg-0">
<a class="nav-link" href="/docs/"><span>Documentation</span></a>
</li>
</ul>
</div>
<div class="navbar-nav d-none d-lg-block">
<input type="search" class="form-control td-search-input" placeholder="&#xf002 Search this site…" aria-label="Search this site…" autocomplete="off">
</div>
</nav>
</header>
<div class="container-fluid td-outer">
<div class="td-main">
<div class="row flex-xl-nowrap">
<div class="col-12 col-md-3 col-xl-2 td-sidebar d-print-none">
<div id="td-sidebar-menu" class="td-sidebar__inner">
<form class="td-sidebar__search d-flex align-items-center">
<input type="search" class="form-control td-search-input" placeholder="&#xf002 Search this site…" aria-label="Search this site…" autocomplete="off">
<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type="button" data-toggle="collapse" data-target="#td-section-nav" aria-controls="td-docs-nav" aria-expanded="false" aria-label="Toggle section navigation">
</button>
</form>
<nav class="collapse td-sidebar-nav pt-2 pl-4" id="td-section-nav">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Documentation</a>
</li>
<ul>
<li class="collapse show" id="docs">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/installation/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Installation</a>
</li>
<ul>
<li class="collapse " id="docs-installation">
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/how-it-works/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">How it works</a>
</li>
<ul>
<li class="collapse " id="docs-how-it-works">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-how-it-works-architecture-and-design" href="/docs/how-it-works/architecture-and-design/">Architecture and design</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-how-it-works-jenkins-docker-images" href="/docs/how-it-works/jenkins-docker-images/">Jenkins Docker Images</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Getting Started</a>
</li>
<ul>
<li class="collapse show" id="docs-getting-started">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/v0.1.1/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.1.1</a>
</li>
<ul>
<li class="collapse " id="docs-getting-started-v0-1-1">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-deploy-jenkins" href="/docs/getting-started/v0.1.1/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-configuration" href="/docs/getting-started/v0.1.1/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-customization" href="/docs/getting-started/v0.1.1/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-aks" href="/docs/getting-started/v0.1.1/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-configure-backup-and-restore" href="/docs/getting-started/v0.1.1/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-diagnostics" href="/docs/getting-started/v0.1.1/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-scheme" href="/docs/getting-started/v0.1.1/scheme/">Scheme</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-migration-guide-v1alpha1-to-v1alpha2" href="/docs/getting-started/v0.1.1/migration-guide-v1alpha1-to-v1alpha2/">Migration guide from v1alpha1 to v1alpha2</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/v0.2.0/" class="align-left pl-0 pr-2 active td-sidebar-link td-sidebar-link__section">v0.2.0</a>
</li>
<ul>
<li class="collapse show" id="docs-getting-started-v0-2-0">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-deploy-jenkins" href="/docs/getting-started/v0.2.0/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-configuration" href="/docs/getting-started/v0.2.0/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-customization" href="/docs/getting-started/v0.2.0/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-aks" href="/docs/getting-started/v0.2.0/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-configure-backup-and-restore" href="/docs/getting-started/v0.2.0/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-migration" href="/docs/getting-started/v0.2.0/migration/">Migration from v0.1.1</a>
<a class="td-sidebar-link td-sidebar-link__page active" id="m-docs-getting-started-v0-2-0-diagnostics" href="/docs/getting-started/v0.2.0/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-scheme" href="/docs/getting-started/v0.2.0/scheme/">Scheme</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/security/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Security</a>
</li>
<ul>
<li class="collapse " id="docs-security">
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/developer-guide/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Developer Guide</a>
</li>
<ul>
<li class="collapse " id="docs-developer-guide">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-developer-guide-tools" href="/docs/developer-guide/tools/">Tools</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
</nav>
</div>
</div>
<main class="col-12 col-md-9 col-xl-10 pl-md-5" role="main">
<nav aria-label="breadcrumb" class="d-none d-md-block d-print-none">
<ol class="breadcrumb spb-1">
<li class="breadcrumb-item" >
<a href="/docs/">Documentation</a>
</li>
<li class="breadcrumb-item" >
<a href="/docs/getting-started/">Getting Started</a>
</li>
<li class="breadcrumb-item" >
<a href="/docs/getting-started/v0.2.0/">v0.2.0</a>
</li>
<li class="breadcrumb-item active" aria-current="page">
<a href="/docs/getting-started/v0.2.0/diagnostics/">Diagnostics</a>
</li>
</ol>
</nav >
<div class="td-content">
<h1>Diagnostics</h1>
<div class="lead">How to deal with jenkins-operator problems</div>
<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 jenkins-operator 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 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>
<div class="text-muted mt-5 pt-3 border-top">Last modified August 5, 2019
</div>
</div>
</main>
</div>
</div>
<footer class="bg-dark py-5 row d-print-none">
<div class="container-fluid mx-sm-5">
<div class="row">
<div class="col-6 col-sm-4 text-xs-center order-sm-2">
</div>
<div class="col-6 col-sm-4 text-right text-xs-center order-sm-3">
</div>
<div class="col-12 col-sm-4 text-center py-2 order-sm-2">
<small class="text-white">&copy; 2019 VirtusLab All Rights Reserved</small>
<p class="mt-2"><a href="/about/">What&#39;s the Jenkins Operator?</a></p>
</div>
</div>
</div>
</footer>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
<script src="/js/main.min.7b50e46a4d678dead3e0004b8f665cd640085d2539954f51d57c7346b9a92d74.js" integrity="sha256-e1Dkak1njerT4ABLj2Zc1kAIXSU5lU9R1XxzRrmpLXQ="></script>
</body>
</html>
+629
View File
@@ -0,0 +1,629 @@
<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="generator" content="Hugo 0.57.2" />
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
<link rel="alternate" type="application/rss&#43;xml" href="/docs/getting-started/v0.2.0/index.xml">
<link rel="shortcut icon" href="/favicons/favicon.ico" >
<link rel="apple-touch-icon" href="/favicons/apple-touch-icon-180x180.png" sizes="180x180">
<link rel="icon" type="image/png" href="/favicons/favicon-16x16.png" sizes="16x16">
<link rel="icon" type="image/png" href="/favicons/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="/favicons/android-36x36.png" sizes="36x36">
<link rel="icon" type="image/png" href="/favicons/android-48x48.png" sizes="48x48">
<link rel="icon" type="image/png" href="/favicons/android-72x72.png" sizes="72x72">
<link rel="icon" type="image/png" href="/favicons/android-96x196.png" sizes="96x196">
<link rel="icon" type="image/png" href="/favicons/android-144x144.png" sizes="144x144">
<link rel="icon" type="image/png" href="/favicons/android-192x192.png"sizes="192x192">
<title>v0.2.0 | Jenkins Operator</title><meta property="og:title" content="v0.2.0" />
<meta property="og:description" content="How to work with jenkins-operator latest version
" />
<meta property="og:type" content="website" />
<meta property="og:url" content="/docs/getting-started/v0.2.0/" />
<meta property="og:updated_time" content="2019-08-05T00:00:00+00:00" /><meta property="og:site_name" content="Jenkins Operator" />
<meta itemprop="name" content="v0.2.0">
<meta itemprop="description" content="How to work with jenkins-operator latest version
">
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="v0.2.0"/>
<meta name="twitter:description" content="How to work with jenkins-operator latest version
"/>
<link rel="preload" href="/scss/main.min.401a1d444a3f374545e199eff2460fab833ab61f776ce23ec44dea9599dda6b1.css" as="style">
<link href="/scss/main.min.401a1d444a3f374545e199eff2460fab833ab61f776ce23ec44dea9599dda6b1.css" rel="stylesheet" integrity="">
<script
src="https://code.jquery.com/jquery-3.3.1.min.js"
integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
crossorigin="anonymous"></script>
<title>v0.2.0 | Jenkins Operator</title>
</head>
<body class="td-section">
<header>
<nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar">
<a class="navbar-brand" href="/">
<img style="width: 32px; height: 32px; margin-right: 7.5px;" src="/img/logo.svg"></img><span class="text-uppercase font-weight-bold">Jenkins Operator</span>
</a>
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
<ul class="navbar-nav mt-2 mt-lg-0">
<li class="nav-item mr-4 mb-2 mb-lg-0">
<a class="nav-link" href="/about/"><span>What's Jenkins Operator?</span></a>
</li>
<li class="nav-item mr-4 mb-2 mb-lg-0">
<a class="nav-link" href="/docs/"><span>Documentation</span></a>
</li>
</ul>
</div>
<div class="navbar-nav d-none d-lg-block">
<input type="search" class="form-control td-search-input" placeholder="&#xf002 Search this site…" aria-label="Search this site…" autocomplete="off">
</div>
</nav>
</header>
<div class="container-fluid td-outer">
<div class="td-main">
<div class="row flex-xl-nowrap">
<div class="col-12 col-md-3 col-xl-2 td-sidebar d-print-none">
<div id="td-sidebar-menu" class="td-sidebar__inner">
<form class="td-sidebar__search d-flex align-items-center">
<input type="search" class="form-control td-search-input" placeholder="&#xf002 Search this site…" aria-label="Search this site…" autocomplete="off">
<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type="button" data-toggle="collapse" data-target="#td-section-nav" aria-controls="td-docs-nav" aria-expanded="false" aria-label="Toggle section navigation">
</button>
</form>
<nav class="collapse td-sidebar-nav pt-2 pl-4" id="td-section-nav">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Documentation</a>
</li>
<ul>
<li class="collapse show" id="docs">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/installation/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Installation</a>
</li>
<ul>
<li class="collapse " id="docs-installation">
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/how-it-works/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">How it works</a>
</li>
<ul>
<li class="collapse " id="docs-how-it-works">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-how-it-works-architecture-and-design" href="/docs/how-it-works/architecture-and-design/">Architecture and design</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-how-it-works-jenkins-docker-images" href="/docs/how-it-works/jenkins-docker-images/">Jenkins Docker Images</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Getting Started</a>
</li>
<ul>
<li class="collapse show" id="docs-getting-started">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/v0.1.1/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.1.1</a>
</li>
<ul>
<li class="collapse " id="docs-getting-started-v0-1-1">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-deploy-jenkins" href="/docs/getting-started/v0.1.1/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-configuration" href="/docs/getting-started/v0.1.1/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-customization" href="/docs/getting-started/v0.1.1/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-aks" href="/docs/getting-started/v0.1.1/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-configure-backup-and-restore" href="/docs/getting-started/v0.1.1/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-diagnostics" href="/docs/getting-started/v0.1.1/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-scheme" href="/docs/getting-started/v0.1.1/scheme/">Scheme</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-migration-guide-v1alpha1-to-v1alpha2" href="/docs/getting-started/v0.1.1/migration-guide-v1alpha1-to-v1alpha2/">Migration guide from v1alpha1 to v1alpha2</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/v0.2.0/" class="align-left pl-0 pr-2 active td-sidebar-link td-sidebar-link__section">v0.2.0</a>
</li>
<ul>
<li class="collapse show" id="docs-getting-started-v0-2-0">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-deploy-jenkins" href="/docs/getting-started/v0.2.0/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-configuration" href="/docs/getting-started/v0.2.0/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-customization" href="/docs/getting-started/v0.2.0/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-aks" href="/docs/getting-started/v0.2.0/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-configure-backup-and-restore" href="/docs/getting-started/v0.2.0/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-migration" href="/docs/getting-started/v0.2.0/migration/">Migration from v0.1.1</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-diagnostics" href="/docs/getting-started/v0.2.0/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-scheme" href="/docs/getting-started/v0.2.0/scheme/">Scheme</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/security/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Security</a>
</li>
<ul>
<li class="collapse " id="docs-security">
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/developer-guide/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Developer Guide</a>
</li>
<ul>
<li class="collapse " id="docs-developer-guide">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-developer-guide-tools" href="/docs/developer-guide/tools/">Tools</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
</nav>
</div>
</div>
<main class="col-12 col-md-9 col-xl-10 pl-md-5" role="main">
<nav aria-label="breadcrumb" class="d-none d-md-block d-print-none">
<ol class="breadcrumb spb-1">
<li class="breadcrumb-item" >
<a href="/docs/">Documentation</a>
</li>
<li class="breadcrumb-item" >
<a href="/docs/getting-started/">Getting Started</a>
</li>
<li class="breadcrumb-item active" aria-current="page">
<a href="/docs/getting-started/v0.2.0/">v0.2.0</a>
</li>
</ol>
</nav >
<div class="td-content">
<h1>v0.2.0</h1>
<div class="lead">How to work with jenkins-operator latest version</div>
<div class="pageinfo pageinfo-primary">
<p>This document describes a getting started guide for <strong>jenkins-operator</strong> <code>v0.2.0</code> and an additional configuration.</p>
</div>
<h2 id="first-steps">First Steps</h2>
<p>Prepare your Kubernetes cluster and set up access.
Once you have running Kubernetes cluster you can focus on installing <strong>jenkins-operator</strong> according to the <a href="/docs/installation/">Installation</a> guide.</p>
<div class="section-index">
<hr class="panel-line">
<div class="entry">
<h5>
<a href="/docs/getting-started/v0.2.0/deploy-jenkins/">Deploy Jenkins</a>
</h5>
<p>Deploy production ready Jenkins Operator manifest
</p>
</div>
<div class="entry">
<h5>
<a href="/docs/getting-started/v0.2.0/configuration/">Configuration</a>
</h5>
<p>How to configure Jenkins with Operator
</p>
</div>
<div class="entry">
<h5>
<a href="/docs/getting-started/v0.2.0/customization/">Customization</a>
</h5>
<p>How to customize Jenkins
</p>
</div>
<div class="entry">
<h5>
<a href="/docs/getting-started/v0.2.0/aks/">AKS</a>
</h5>
<p>Additional configuration for Azure Kubernetes Service
</p>
</div>
<div class="entry">
<h5>
<a href="/docs/getting-started/v0.2.0/configure-backup-and-restore/">Configure backup and restore</a>
</h5>
<p>Prevent job history loss
</p>
</div>
<div class="entry">
<h5>
<a href="/docs/getting-started/v0.2.0/migration/">Migration from v0.1.1</a>
</h5>
<p>How to migrate from v0.1.1 to v0.2.0
</p>
</div>
<div class="entry">
<h5>
<a href="/docs/getting-started/v0.2.0/diagnostics/">Diagnostics</a>
</h5>
<p>How to deal with jenkins-operator problems
</p>
</div>
<div class="entry">
<h5>
<a href="/docs/getting-started/v0.2.0/scheme/">Scheme</a>
</h5>
<p>API Schema definitions for Jenkins CR
</p>
</div>
</div>
<div class="text-muted mt-5 pt-3 border-top">Last modified August 5, 2019
</div>
</div>
</main>
</div>
</div>
<footer class="bg-dark py-5 row d-print-none">
<div class="container-fluid mx-sm-5">
<div class="row">
<div class="col-6 col-sm-4 text-xs-center order-sm-2">
</div>
<div class="col-6 col-sm-4 text-right text-xs-center order-sm-3">
</div>
<div class="col-12 col-sm-4 text-center py-2 order-sm-2">
<small class="text-white">&copy; 2019 VirtusLab All Rights Reserved</small>
<p class="mt-2"><a href="/about/">What&#39;s the Jenkins Operator?</a></p>
</div>
</div>
</div>
</footer>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
<script src="/js/main.min.7b50e46a4d678dead3e0004b8f665cd640085d2539954f51d57c7346b9a92d74.js" integrity="sha256-e1Dkak1njerT4ABLj2Zc1kAIXSU5lU9R1XxzRrmpLXQ="></script>
</body>
</html>
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,532 @@
<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="generator" content="Hugo 0.57.2" />
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
<link rel="shortcut icon" href="/favicons/favicon.ico" >
<link rel="apple-touch-icon" href="/favicons/apple-touch-icon-180x180.png" sizes="180x180">
<link rel="icon" type="image/png" href="/favicons/favicon-16x16.png" sizes="16x16">
<link rel="icon" type="image/png" href="/favicons/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="/favicons/android-36x36.png" sizes="36x36">
<link rel="icon" type="image/png" href="/favicons/android-48x48.png" sizes="48x48">
<link rel="icon" type="image/png" href="/favicons/android-72x72.png" sizes="72x72">
<link rel="icon" type="image/png" href="/favicons/android-96x196.png" sizes="96x196">
<link rel="icon" type="image/png" href="/favicons/android-144x144.png" sizes="144x144">
<link rel="icon" type="image/png" href="/favicons/android-192x192.png"sizes="192x192">
<title>Migration from v0.1.1 | Jenkins Operator</title><meta property="og:title" content="Migration from v0.1.1" />
<meta property="og:description" content="How to migrate from v0.1.1 to v0.2.0
" />
<meta property="og:type" content="article" />
<meta property="og:url" content="/docs/getting-started/v0.2.0/migration/" />
<meta property="article:published_time" content="2019-08-05T00:00:00+00:00" />
<meta property="article:modified_time" content="2019-08-05T00:00:00+00:00" /><meta property="og:site_name" content="Jenkins Operator" />
<meta itemprop="name" content="Migration from v0.1.1">
<meta itemprop="description" content="How to migrate from v0.1.1 to v0.2.0
">
<meta itemprop="datePublished" content="2019-08-05T00:00:00&#43;00:00" />
<meta itemprop="dateModified" content="2019-08-05T00:00:00&#43;00:00" />
<meta itemprop="wordCount" content="129">
<meta itemprop="keywords" content="" />
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Migration from v0.1.1"/>
<meta name="twitter:description" content="How to migrate from v0.1.1 to v0.2.0
"/>
<link rel="preload" href="/scss/main.min.401a1d444a3f374545e199eff2460fab833ab61f776ce23ec44dea9599dda6b1.css" as="style">
<link href="/scss/main.min.401a1d444a3f374545e199eff2460fab833ab61f776ce23ec44dea9599dda6b1.css" rel="stylesheet" integrity="">
<script
src="https://code.jquery.com/jquery-3.3.1.min.js"
integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
crossorigin="anonymous"></script>
<title>Migration from v0.1.1 | Jenkins Operator</title>
</head>
<body class="td-page">
<header>
<nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar">
<a class="navbar-brand" href="/">
<img style="width: 32px; height: 32px; margin-right: 7.5px;" src="/img/logo.svg"></img><span class="text-uppercase font-weight-bold">Jenkins Operator</span>
</a>
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
<ul class="navbar-nav mt-2 mt-lg-0">
<li class="nav-item mr-4 mb-2 mb-lg-0">
<a class="nav-link" href="/about/"><span>What's Jenkins Operator?</span></a>
</li>
<li class="nav-item mr-4 mb-2 mb-lg-0">
<a class="nav-link" href="/docs/"><span>Documentation</span></a>
</li>
</ul>
</div>
<div class="navbar-nav d-none d-lg-block">
<input type="search" class="form-control td-search-input" placeholder="&#xf002 Search this site…" aria-label="Search this site…" autocomplete="off">
</div>
</nav>
</header>
<div class="container-fluid td-outer">
<div class="td-main">
<div class="row flex-xl-nowrap">
<div class="col-12 col-md-3 col-xl-2 td-sidebar d-print-none">
<div id="td-sidebar-menu" class="td-sidebar__inner">
<form class="td-sidebar__search d-flex align-items-center">
<input type="search" class="form-control td-search-input" placeholder="&#xf002 Search this site…" aria-label="Search this site…" autocomplete="off">
<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type="button" data-toggle="collapse" data-target="#td-section-nav" aria-controls="td-docs-nav" aria-expanded="false" aria-label="Toggle section navigation">
</button>
</form>
<nav class="collapse td-sidebar-nav pt-2 pl-4" id="td-section-nav">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Documentation</a>
</li>
<ul>
<li class="collapse show" id="docs">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/installation/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Installation</a>
</li>
<ul>
<li class="collapse " id="docs-installation">
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/how-it-works/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">How it works</a>
</li>
<ul>
<li class="collapse " id="docs-how-it-works">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-how-it-works-architecture-and-design" href="/docs/how-it-works/architecture-and-design/">Architecture and design</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-how-it-works-jenkins-docker-images" href="/docs/how-it-works/jenkins-docker-images/">Jenkins Docker Images</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Getting Started</a>
</li>
<ul>
<li class="collapse show" id="docs-getting-started">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/v0.1.1/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.1.1</a>
</li>
<ul>
<li class="collapse " id="docs-getting-started-v0-1-1">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-deploy-jenkins" href="/docs/getting-started/v0.1.1/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-configuration" href="/docs/getting-started/v0.1.1/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-customization" href="/docs/getting-started/v0.1.1/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-aks" href="/docs/getting-started/v0.1.1/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-configure-backup-and-restore" href="/docs/getting-started/v0.1.1/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-diagnostics" href="/docs/getting-started/v0.1.1/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-scheme" href="/docs/getting-started/v0.1.1/scheme/">Scheme</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-migration-guide-v1alpha1-to-v1alpha2" href="/docs/getting-started/v0.1.1/migration-guide-v1alpha1-to-v1alpha2/">Migration guide from v1alpha1 to v1alpha2</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/v0.2.0/" class="align-left pl-0 pr-2 active td-sidebar-link td-sidebar-link__section">v0.2.0</a>
</li>
<ul>
<li class="collapse show" id="docs-getting-started-v0-2-0">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-deploy-jenkins" href="/docs/getting-started/v0.2.0/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-configuration" href="/docs/getting-started/v0.2.0/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-customization" href="/docs/getting-started/v0.2.0/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-aks" href="/docs/getting-started/v0.2.0/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-configure-backup-and-restore" href="/docs/getting-started/v0.2.0/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page active" id="m-docs-getting-started-v0-2-0-migration" href="/docs/getting-started/v0.2.0/migration/">Migration from v0.1.1</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-diagnostics" href="/docs/getting-started/v0.2.0/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-scheme" href="/docs/getting-started/v0.2.0/scheme/">Scheme</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/security/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Security</a>
</li>
<ul>
<li class="collapse " id="docs-security">
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/developer-guide/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Developer Guide</a>
</li>
<ul>
<li class="collapse " id="docs-developer-guide">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-developer-guide-tools" href="/docs/developer-guide/tools/">Tools</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
</nav>
</div>
</div>
<main class="col-12 col-md-9 col-xl-10 pl-md-5" role="main">
<nav aria-label="breadcrumb" class="d-none d-md-block d-print-none">
<ol class="breadcrumb spb-1">
<li class="breadcrumb-item" >
<a href="/docs/">Documentation</a>
</li>
<li class="breadcrumb-item" >
<a href="/docs/getting-started/">Getting Started</a>
</li>
<li class="breadcrumb-item" >
<a href="/docs/getting-started/v0.2.0/">v0.2.0</a>
</li>
<li class="breadcrumb-item active" aria-current="page">
<a href="/docs/getting-started/v0.2.0/migration/">Migration from v0.1.1</a>
</li>
</ol>
</nav >
<div class="td-content">
<h1>Migration from v0.1.1</h1>
<div class="lead">How to migrate from v0.1.1 to v0.2.0</div>
<h3 id="added-seed-job-agent">Added seed job agent</h3>
<p>Now seed jobs are not built by master executors, but by dedicated agent deployed into Kubernetes. We disabled master executors for security reasons.</p>
<h3 id="apply-jenkins-configuration-via-groovy-scripts-instead-of-jenkins-jobs">Apply Jenkins configuration via Groovy scripts instead of Jenkins jobs</h3>
<p>We have removed hardcoded configuration by <strong>Jenkins</strong> jobs.</p>
<p>In <code>v0.1.1</code> <strong>jenkins-operator</strong> configuration was stored in <code>jenkins-operator-user-configuration-&lt;cr_name&gt;</code>
If you want to use <code>v0.2.0</code> or newer you must simply write refer to old ConfigMap by modifying CR, for 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>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-&lt;cr_name<span style="color:#8f5902;font-style:italic">&gt;
</span><span style="color:#8f5902;font-style:italic"> groovyScripts:</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-&lt;cr_name&gt;</code></pre></div>
<p><strong>Jenkins</strong> configuration jobs (<em>Configure Seed Jobs</em>, <em>jenkins-operator-base-configuration</em>, <em>jenkins-operator-user-configuration</em>) have been removed from <strong>Jenkins</strong>.</p>
<p>In <code>v0.1.1</code> you can see if configuration failed or successfully updated in <strong>Jenkins</strong> UI (job build logs).
Now, when Jenkins configuration jobs are removed, you must use this command to see if configuration was failed.</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 logs deployment/jenkins-operator</code></pre></div>
<div class="text-muted mt-5 pt-3 border-top">Last modified August 5, 2019
</div>
</div>
</main>
</div>
</div>
<footer class="bg-dark py-5 row d-print-none">
<div class="container-fluid mx-sm-5">
<div class="row">
<div class="col-6 col-sm-4 text-xs-center order-sm-2">
</div>
<div class="col-6 col-sm-4 text-right text-xs-center order-sm-3">
</div>
<div class="col-12 col-sm-4 text-center py-2 order-sm-2">
<small class="text-white">&copy; 2019 VirtusLab All Rights Reserved</small>
<p class="mt-2"><a href="/about/">What&#39;s the Jenkins Operator?</a></p>
</div>
</div>
</div>
</footer>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
<script src="/js/main.min.7b50e46a4d678dead3e0004b8f665cd640085d2539954f51d57c7346b9a92d74.js" integrity="sha256-e1Dkak1njerT4ABLj2Zc1kAIXSU5lU9R1XxzRrmpLXQ="></script>
</body>
</html>
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,521 @@
<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="generator" content="Hugo 0.57.2" />
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
<link rel="shortcut icon" href="/favicons/favicon.ico" >
<link rel="apple-touch-icon" href="/favicons/apple-touch-icon-180x180.png" sizes="180x180">
<link rel="icon" type="image/png" href="/favicons/favicon-16x16.png" sizes="16x16">
<link rel="icon" type="image/png" href="/favicons/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="/favicons/android-36x36.png" sizes="36x36">
<link rel="icon" type="image/png" href="/favicons/android-48x48.png" sizes="48x48">
<link rel="icon" type="image/png" href="/favicons/android-72x72.png" sizes="72x72">
<link rel="icon" type="image/png" href="/favicons/android-96x196.png" sizes="96x196">
<link rel="icon" type="image/png" href="/favicons/android-144x144.png" sizes="144x144">
<link rel="icon" type="image/png" href="/favicons/android-192x192.png"sizes="192x192">
<title>Architecture and design | Jenkins Operator</title><meta property="og:title" content="Architecture and design" />
<meta property="og:description" content="Jenkins Operator fundamentals
" />
<meta property="og:type" content="article" />
<meta property="og:url" content="/docs/how-it-works/architecture-and-design/" />
<meta property="article:published_time" content="2019-08-05T00:00:00+00:00" />
<meta property="article:modified_time" content="2019-08-05T00:00:00+00:00" /><meta property="og:site_name" content="Jenkins Operator" />
<meta itemprop="name" content="Architecture and design">
<meta itemprop="description" content="Jenkins Operator fundamentals
">
<meta itemprop="datePublished" content="2019-08-05T00:00:00&#43;00:00" />
<meta itemprop="dateModified" content="2019-08-05T00:00:00&#43;00:00" />
<meta itemprop="wordCount" content="225">
<meta itemprop="keywords" content="" />
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Architecture and design"/>
<meta name="twitter:description" content="Jenkins Operator fundamentals
"/>
<link rel="preload" href="/scss/main.min.401a1d444a3f374545e199eff2460fab833ab61f776ce23ec44dea9599dda6b1.css" as="style">
<link href="/scss/main.min.401a1d444a3f374545e199eff2460fab833ab61f776ce23ec44dea9599dda6b1.css" rel="stylesheet" integrity="">
<script
src="https://code.jquery.com/jquery-3.3.1.min.js"
integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
crossorigin="anonymous"></script>
<title>Architecture and design | Jenkins Operator</title>
</head>
<body class="td-page">
<header>
<nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar">
<a class="navbar-brand" href="/">
<img style="width: 32px; height: 32px; margin-right: 7.5px;" src="/img/logo.svg"></img><span class="text-uppercase font-weight-bold">Jenkins Operator</span>
</a>
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
<ul class="navbar-nav mt-2 mt-lg-0">
<li class="nav-item mr-4 mb-2 mb-lg-0">
<a class="nav-link" href="/about/"><span>What's Jenkins Operator?</span></a>
</li>
<li class="nav-item mr-4 mb-2 mb-lg-0">
<a class="nav-link" href="/docs/"><span>Documentation</span></a>
</li>
</ul>
</div>
<div class="navbar-nav d-none d-lg-block">
<input type="search" class="form-control td-search-input" placeholder="&#xf002 Search this site…" aria-label="Search this site…" autocomplete="off">
</div>
</nav>
</header>
<div class="container-fluid td-outer">
<div class="td-main">
<div class="row flex-xl-nowrap">
<div class="col-12 col-md-3 col-xl-2 td-sidebar d-print-none">
<div id="td-sidebar-menu" class="td-sidebar__inner">
<form class="td-sidebar__search d-flex align-items-center">
<input type="search" class="form-control td-search-input" placeholder="&#xf002 Search this site…" aria-label="Search this site…" autocomplete="off">
<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type="button" data-toggle="collapse" data-target="#td-section-nav" aria-controls="td-docs-nav" aria-expanded="false" aria-label="Toggle section navigation">
</button>
</form>
<nav class="collapse td-sidebar-nav pt-2 pl-4" id="td-section-nav">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Documentation</a>
</li>
<ul>
<li class="collapse show" id="docs">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/installation/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Installation</a>
</li>
<ul>
<li class="collapse " id="docs-installation">
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/how-it-works/" class="align-left pl-0 pr-2 active td-sidebar-link td-sidebar-link__section">How it works</a>
</li>
<ul>
<li class="collapse show" id="docs-how-it-works">
<a class="td-sidebar-link td-sidebar-link__page active" id="m-docs-how-it-works-architecture-and-design" href="/docs/how-it-works/architecture-and-design/">Architecture and design</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-how-it-works-jenkins-docker-images" href="/docs/how-it-works/jenkins-docker-images/">Jenkins Docker Images</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Getting Started</a>
</li>
<ul>
<li class="collapse " id="docs-getting-started">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/v0.1.1/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.1.1</a>
</li>
<ul>
<li class="collapse " id="docs-getting-started-v0-1-1">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-deploy-jenkins" href="/docs/getting-started/v0.1.1/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-configuration" href="/docs/getting-started/v0.1.1/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-customization" href="/docs/getting-started/v0.1.1/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-aks" href="/docs/getting-started/v0.1.1/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-configure-backup-and-restore" href="/docs/getting-started/v0.1.1/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-diagnostics" href="/docs/getting-started/v0.1.1/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-scheme" href="/docs/getting-started/v0.1.1/scheme/">Scheme</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-migration-guide-v1alpha1-to-v1alpha2" href="/docs/getting-started/v0.1.1/migration-guide-v1alpha1-to-v1alpha2/">Migration guide from v1alpha1 to v1alpha2</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/v0.2.0/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.2.0</a>
</li>
<ul>
<li class="collapse " id="docs-getting-started-v0-2-0">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-deploy-jenkins" href="/docs/getting-started/v0.2.0/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-configuration" href="/docs/getting-started/v0.2.0/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-customization" href="/docs/getting-started/v0.2.0/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-aks" href="/docs/getting-started/v0.2.0/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-configure-backup-and-restore" href="/docs/getting-started/v0.2.0/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-migration" href="/docs/getting-started/v0.2.0/migration/">Migration from v0.1.1</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-diagnostics" href="/docs/getting-started/v0.2.0/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-scheme" href="/docs/getting-started/v0.2.0/scheme/">Scheme</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/security/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Security</a>
</li>
<ul>
<li class="collapse " id="docs-security">
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/developer-guide/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Developer Guide</a>
</li>
<ul>
<li class="collapse " id="docs-developer-guide">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-developer-guide-tools" href="/docs/developer-guide/tools/">Tools</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
</nav>
</div>
</div>
<main class="col-12 col-md-9 col-xl-10 pl-md-5" role="main">
<nav aria-label="breadcrumb" class="d-none d-md-block d-print-none">
<ol class="breadcrumb spb-1">
<li class="breadcrumb-item" >
<a href="/docs/">Documentation</a>
</li>
<li class="breadcrumb-item" >
<a href="/docs/how-it-works/">How it works</a>
</li>
<li class="breadcrumb-item active" aria-current="page">
<a href="/docs/how-it-works/architecture-and-design/">Architecture and design</a>
</li>
</ol>
</nav >
<div class="td-content">
<h1>Architecture and design</h1>
<div class="lead">Jenkins Operator fundamentals</div>
<p>The <strong>jenkins-operator</strong> design incorporates the following concepts:
- watches any changes of manifests and maintain the desired state according to deployed custom resource manifest
- implements the main reconciliation loop which consists of two smaller reconciliation loops - base and user</p>
<p><img src="/img/reconcile.png" alt="reconcile" /></p>
<p><strong>Base</strong> reconciliation loop takes care of reconciling base Jenkins configuration, which consists of:
- Ensure Manifests - monitors any changes in manifests
- Ensure Jenkins Pod - creates and verifies status of Jenkins master Pod
- Ensure Jenkins Configuration - configures Jenkins instance including hardening, initial configuration for plugins, etc.
- Ensure Jenkins API token - generates Jenkins API token and initialized Jenkins client</p>
<p><strong>User</strong> reconciliation loop takes care of reconciling user provided configuration, which consists of:
- Ensure Restore Job - creates Restore job and ensures that restore has been successfully performed<br />
- Ensure Seed Jobs - creates Seed Jobs and ensures that all of them have been successfully executed
- Ensure User Configuration - executed user provided configuration, like groovy scripts, configuration as code or plugins
- Ensure Backup Job - creates Backup job and ensures that backup has been successfully performed</p>
<p><img src="/img/phases.png" alt="reconcile" /></p>
<h2 id="operator-state">Operator State</h2>
<p>Operator state is kept in custom resource status section, which is used for storing any configuration events or job statuses managed by the operator.
It helps to maintain or recover desired state even after operator or Jenkins restarts.</p>
<div class="text-muted mt-5 pt-3 border-top">Last modified August 5, 2019
</div>
</div>
</main>
</div>
</div>
<footer class="bg-dark py-5 row d-print-none">
<div class="container-fluid mx-sm-5">
<div class="row">
<div class="col-6 col-sm-4 text-xs-center order-sm-2">
</div>
<div class="col-6 col-sm-4 text-right text-xs-center order-sm-3">
</div>
<div class="col-12 col-sm-4 text-center py-2 order-sm-2">
<small class="text-white">&copy; 2019 VirtusLab All Rights Reserved</small>
<p class="mt-2"><a href="/about/">What&#39;s the Jenkins Operator?</a></p>
</div>
</div>
</div>
</footer>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
<script src="/js/main.min.7b50e46a4d678dead3e0004b8f665cd640085d2539954f51d57c7346b9a92d74.js" integrity="sha256-e1Dkak1njerT4ABLj2Zc1kAIXSU5lU9R1XxzRrmpLXQ="></script>
</body>
</html>
+564
View File
@@ -0,0 +1,564 @@
<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="generator" content="Hugo 0.57.2" />
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
<link rel="alternate" type="application/rss&#43;xml" href="/docs/how-it-works/index.xml">
<link rel="shortcut icon" href="/favicons/favicon.ico" >
<link rel="apple-touch-icon" href="/favicons/apple-touch-icon-180x180.png" sizes="180x180">
<link rel="icon" type="image/png" href="/favicons/favicon-16x16.png" sizes="16x16">
<link rel="icon" type="image/png" href="/favicons/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="/favicons/android-36x36.png" sizes="36x36">
<link rel="icon" type="image/png" href="/favicons/android-48x48.png" sizes="48x48">
<link rel="icon" type="image/png" href="/favicons/android-72x72.png" sizes="72x72">
<link rel="icon" type="image/png" href="/favicons/android-96x196.png" sizes="96x196">
<link rel="icon" type="image/png" href="/favicons/android-144x144.png" sizes="144x144">
<link rel="icon" type="image/png" href="/favicons/android-192x192.png"sizes="192x192">
<title>How it works | Jenkins Operator</title><meta property="og:title" content="How it works" />
<meta property="og:description" content="How Jenkins Operator works
" />
<meta property="og:type" content="website" />
<meta property="og:url" content="/docs/how-it-works/" />
<meta property="og:updated_time" content="2019-08-05T00:00:00+00:00" /><meta property="og:site_name" content="Jenkins Operator" />
<meta itemprop="name" content="How it works">
<meta itemprop="description" content="How Jenkins Operator works
">
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="How it works"/>
<meta name="twitter:description" content="How Jenkins Operator works
"/>
<link rel="preload" href="/scss/main.min.401a1d444a3f374545e199eff2460fab833ab61f776ce23ec44dea9599dda6b1.css" as="style">
<link href="/scss/main.min.401a1d444a3f374545e199eff2460fab833ab61f776ce23ec44dea9599dda6b1.css" rel="stylesheet" integrity="">
<script
src="https://code.jquery.com/jquery-3.3.1.min.js"
integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
crossorigin="anonymous"></script>
<title>How it works | Jenkins Operator</title>
</head>
<body class="td-section">
<header>
<nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar">
<a class="navbar-brand" href="/">
<img style="width: 32px; height: 32px; margin-right: 7.5px;" src="/img/logo.svg"></img><span class="text-uppercase font-weight-bold">Jenkins Operator</span>
</a>
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
<ul class="navbar-nav mt-2 mt-lg-0">
<li class="nav-item mr-4 mb-2 mb-lg-0">
<a class="nav-link" href="/about/"><span>What's Jenkins Operator?</span></a>
</li>
<li class="nav-item mr-4 mb-2 mb-lg-0">
<a class="nav-link" href="/docs/"><span>Documentation</span></a>
</li>
</ul>
</div>
<div class="navbar-nav d-none d-lg-block">
<input type="search" class="form-control td-search-input" placeholder="&#xf002 Search this site…" aria-label="Search this site…" autocomplete="off">
</div>
</nav>
</header>
<div class="container-fluid td-outer">
<div class="td-main">
<div class="row flex-xl-nowrap">
<div class="col-12 col-md-3 col-xl-2 td-sidebar d-print-none">
<div id="td-sidebar-menu" class="td-sidebar__inner">
<form class="td-sidebar__search d-flex align-items-center">
<input type="search" class="form-control td-search-input" placeholder="&#xf002 Search this site…" aria-label="Search this site…" autocomplete="off">
<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type="button" data-toggle="collapse" data-target="#td-section-nav" aria-controls="td-docs-nav" aria-expanded="false" aria-label="Toggle section navigation">
</button>
</form>
<nav class="collapse td-sidebar-nav pt-2 pl-4" id="td-section-nav">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Documentation</a>
</li>
<ul>
<li class="collapse show" id="docs">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/installation/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Installation</a>
</li>
<ul>
<li class="collapse " id="docs-installation">
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/how-it-works/" class="align-left pl-0 pr-2 active td-sidebar-link td-sidebar-link__section">How it works</a>
</li>
<ul>
<li class="collapse show" id="docs-how-it-works">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-how-it-works-architecture-and-design" href="/docs/how-it-works/architecture-and-design/">Architecture and design</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-how-it-works-jenkins-docker-images" href="/docs/how-it-works/jenkins-docker-images/">Jenkins Docker Images</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Getting Started</a>
</li>
<ul>
<li class="collapse " id="docs-getting-started">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/v0.1.1/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.1.1</a>
</li>
<ul>
<li class="collapse " id="docs-getting-started-v0-1-1">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-deploy-jenkins" href="/docs/getting-started/v0.1.1/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-configuration" href="/docs/getting-started/v0.1.1/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-customization" href="/docs/getting-started/v0.1.1/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-aks" href="/docs/getting-started/v0.1.1/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-configure-backup-and-restore" href="/docs/getting-started/v0.1.1/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-diagnostics" href="/docs/getting-started/v0.1.1/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-scheme" href="/docs/getting-started/v0.1.1/scheme/">Scheme</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-migration-guide-v1alpha1-to-v1alpha2" href="/docs/getting-started/v0.1.1/migration-guide-v1alpha1-to-v1alpha2/">Migration guide from v1alpha1 to v1alpha2</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/v0.2.0/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.2.0</a>
</li>
<ul>
<li class="collapse " id="docs-getting-started-v0-2-0">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-deploy-jenkins" href="/docs/getting-started/v0.2.0/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-configuration" href="/docs/getting-started/v0.2.0/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-customization" href="/docs/getting-started/v0.2.0/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-aks" href="/docs/getting-started/v0.2.0/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-configure-backup-and-restore" href="/docs/getting-started/v0.2.0/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-migration" href="/docs/getting-started/v0.2.0/migration/">Migration from v0.1.1</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-diagnostics" href="/docs/getting-started/v0.2.0/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-scheme" href="/docs/getting-started/v0.2.0/scheme/">Scheme</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/security/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Security</a>
</li>
<ul>
<li class="collapse " id="docs-security">
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/developer-guide/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Developer Guide</a>
</li>
<ul>
<li class="collapse " id="docs-developer-guide">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-developer-guide-tools" href="/docs/developer-guide/tools/">Tools</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
</nav>
</div>
</div>
<main class="col-12 col-md-9 col-xl-10 pl-md-5" role="main">
<nav aria-label="breadcrumb" class="d-none d-md-block d-print-none">
<ol class="breadcrumb spb-1">
<li class="breadcrumb-item" >
<a href="/docs/">Documentation</a>
</li>
<li class="breadcrumb-item active" aria-current="page">
<a href="/docs/how-it-works/">How it works</a>
</li>
</ol>
</nav >
<div class="td-content">
<h1>How it works</h1>
<div class="lead">How Jenkins Operator works</div>
<div class="pageinfo pageinfo-primary">
<p>This document describes a high level overview how jenkins-operator works.</p>
</div>
<div class="section-index">
<hr class="panel-line">
<div class="entry">
<h5>
<a href="/docs/how-it-works/architecture-and-design/">Architecture and design</a>
</h5>
<p>Jenkins Operator fundamentals
</p>
</div>
<div class="entry">
<h5>
<a href="/docs/how-it-works/jenkins-docker-images/">Jenkins Docker Images</a>
</h5>
<p>Jenkins default image details
</p>
</div>
</div>
<div class="text-muted mt-5 pt-3 border-top">Last modified August 5, 2019
</div>
</div>
</main>
</div>
</div>
<footer class="bg-dark py-5 row d-print-none">
<div class="container-fluid mx-sm-5">
<div class="row">
<div class="col-6 col-sm-4 text-xs-center order-sm-2">
</div>
<div class="col-6 col-sm-4 text-right text-xs-center order-sm-3">
</div>
<div class="col-12 col-sm-4 text-center py-2 order-sm-2">
<small class="text-white">&copy; 2019 VirtusLab All Rights Reserved</small>
<p class="mt-2"><a href="/about/">What&#39;s the Jenkins Operator?</a></p>
</div>
</div>
</div>
</footer>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
<script src="/js/main.min.7b50e46a4d678dead3e0004b8f665cd640085d2539954f51d57c7346b9a92d74.js" integrity="sha256-e1Dkak1njerT4ABLj2Zc1kAIXSU5lU9R1XxzRrmpLXQ="></script>
</body>
</html>
+77
View File
@@ -0,0 +1,77 @@
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Jenkins Operator – How it works</title>
<link>/docs/how-it-works/</link>
<description>Recent Hugo news from gohugo.io</description>
<generator>Hugo -- gohugo.io</generator>
<lastBuildDate>Mon, 05 Aug 2019 00:00:00 +0000</lastBuildDate>
<image>
<url>/img/hugo.png</url>
<title>GoHugo.io</title>
<link>/docs/how-it-works/</link>
</image>
<atom:link href="/docs/how-it-works/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Docs: Architecture and design</title>
<link>/docs/how-it-works/architecture-and-design/</link>
<pubDate>Mon, 05 Aug 2019 00:00:00 +0000</pubDate>
<guid>/docs/how-it-works/architecture-and-design/</guid>
<description>
&lt;p&gt;The &lt;strong&gt;jenkins-operator&lt;/strong&gt; design incorporates the following concepts:
- watches any changes of manifests and maintain the desired state according to deployed custom resource manifest
- implements the main reconciliation loop which consists of two smaller reconciliation loops - base and user&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;/img/reconcile.png&#34; alt=&#34;reconcile&#34; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Base&lt;/strong&gt; reconciliation loop takes care of reconciling base Jenkins configuration, which consists of:
- Ensure Manifests - monitors any changes in manifests
- Ensure Jenkins Pod - creates and verifies status of Jenkins master Pod
- Ensure Jenkins Configuration - configures Jenkins instance including hardening, initial configuration for plugins, etc.
- Ensure Jenkins API token - generates Jenkins API token and initialized Jenkins client&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;User&lt;/strong&gt; reconciliation loop takes care of reconciling user provided configuration, which consists of:
- Ensure Restore Job - creates Restore job and ensures that restore has been successfully performed&lt;br /&gt;
- Ensure Seed Jobs - creates Seed Jobs and ensures that all of them have been successfully executed
- Ensure User Configuration - executed user provided configuration, like groovy scripts, configuration as code or plugins
- Ensure Backup Job - creates Backup job and ensures that backup has been successfully performed&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;/img/phases.png&#34; alt=&#34;reconcile&#34; /&gt;&lt;/p&gt;
&lt;h2 id=&#34;operator-state&#34;&gt;Operator State&lt;/h2&gt;
&lt;p&gt;Operator state is kept in custom resource status section, which is used for storing any configuration events or job statuses managed by the operator.
It helps to maintain or recover desired state even after operator or Jenkins restarts.&lt;/p&gt;
</description>
</item>
<item>
<title>Docs: Jenkins Docker Images</title>
<link>/docs/how-it-works/jenkins-docker-images/</link>
<pubDate>Mon, 05 Aug 2019 00:00:00 +0000</pubDate>
<guid>/docs/how-it-works/jenkins-docker-images/</guid>
<description>
&lt;p&gt;&lt;strong&gt;jenkins-operator&lt;/strong&gt; is fully compatible with &lt;strong&gt;jenkins:lts&lt;/strong&gt; docker image and does not introduce any hidden changes there.
If needed, the docker image can easily be changed in custom resource manifest as long as it supports standard Jenkins file system structure.&lt;/p&gt;
</description>
</item>
</channel>
</rss>
@@ -0,0 +1,497 @@
<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="generator" content="Hugo 0.57.2" />
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
<link rel="shortcut icon" href="/favicons/favicon.ico" >
<link rel="apple-touch-icon" href="/favicons/apple-touch-icon-180x180.png" sizes="180x180">
<link rel="icon" type="image/png" href="/favicons/favicon-16x16.png" sizes="16x16">
<link rel="icon" type="image/png" href="/favicons/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="/favicons/android-36x36.png" sizes="36x36">
<link rel="icon" type="image/png" href="/favicons/android-48x48.png" sizes="48x48">
<link rel="icon" type="image/png" href="/favicons/android-72x72.png" sizes="72x72">
<link rel="icon" type="image/png" href="/favicons/android-96x196.png" sizes="96x196">
<link rel="icon" type="image/png" href="/favicons/android-144x144.png" sizes="144x144">
<link rel="icon" type="image/png" href="/favicons/android-192x192.png"sizes="192x192">
<title>Jenkins Docker Images | Jenkins Operator</title><meta property="og:title" content="Jenkins Docker Images" />
<meta property="og:description" content="Jenkins default image details
" />
<meta property="og:type" content="article" />
<meta property="og:url" content="/docs/how-it-works/jenkins-docker-images/" />
<meta property="article:published_time" content="2019-08-05T00:00:00+00:00" />
<meta property="article:modified_time" content="2019-08-05T00:00:00+00:00" /><meta property="og:site_name" content="Jenkins Operator" />
<meta itemprop="name" content="Jenkins Docker Images">
<meta itemprop="description" content="Jenkins default image details
">
<meta itemprop="datePublished" content="2019-08-05T00:00:00&#43;00:00" />
<meta itemprop="dateModified" content="2019-08-05T00:00:00&#43;00:00" />
<meta itemprop="wordCount" content="39">
<meta itemprop="keywords" content="" />
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Jenkins Docker Images"/>
<meta name="twitter:description" content="Jenkins default image details
"/>
<link rel="preload" href="/scss/main.min.401a1d444a3f374545e199eff2460fab833ab61f776ce23ec44dea9599dda6b1.css" as="style">
<link href="/scss/main.min.401a1d444a3f374545e199eff2460fab833ab61f776ce23ec44dea9599dda6b1.css" rel="stylesheet" integrity="">
<script
src="https://code.jquery.com/jquery-3.3.1.min.js"
integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
crossorigin="anonymous"></script>
<title>Jenkins Docker Images | Jenkins Operator</title>
</head>
<body class="td-page">
<header>
<nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar">
<a class="navbar-brand" href="/">
<img style="width: 32px; height: 32px; margin-right: 7.5px;" src="/img/logo.svg"></img><span class="text-uppercase font-weight-bold">Jenkins Operator</span>
</a>
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
<ul class="navbar-nav mt-2 mt-lg-0">
<li class="nav-item mr-4 mb-2 mb-lg-0">
<a class="nav-link" href="/about/"><span>What's Jenkins Operator?</span></a>
</li>
<li class="nav-item mr-4 mb-2 mb-lg-0">
<a class="nav-link" href="/docs/"><span>Documentation</span></a>
</li>
</ul>
</div>
<div class="navbar-nav d-none d-lg-block">
<input type="search" class="form-control td-search-input" placeholder="&#xf002 Search this site…" aria-label="Search this site…" autocomplete="off">
</div>
</nav>
</header>
<div class="container-fluid td-outer">
<div class="td-main">
<div class="row flex-xl-nowrap">
<div class="col-12 col-md-3 col-xl-2 td-sidebar d-print-none">
<div id="td-sidebar-menu" class="td-sidebar__inner">
<form class="td-sidebar__search d-flex align-items-center">
<input type="search" class="form-control td-search-input" placeholder="&#xf002 Search this site…" aria-label="Search this site…" autocomplete="off">
<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type="button" data-toggle="collapse" data-target="#td-section-nav" aria-controls="td-docs-nav" aria-expanded="false" aria-label="Toggle section navigation">
</button>
</form>
<nav class="collapse td-sidebar-nav pt-2 pl-4" id="td-section-nav">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Documentation</a>
</li>
<ul>
<li class="collapse show" id="docs">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/installation/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Installation</a>
</li>
<ul>
<li class="collapse " id="docs-installation">
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/how-it-works/" class="align-left pl-0 pr-2 active td-sidebar-link td-sidebar-link__section">How it works</a>
</li>
<ul>
<li class="collapse show" id="docs-how-it-works">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-how-it-works-architecture-and-design" href="/docs/how-it-works/architecture-and-design/">Architecture and design</a>
<a class="td-sidebar-link td-sidebar-link__page active" id="m-docs-how-it-works-jenkins-docker-images" href="/docs/how-it-works/jenkins-docker-images/">Jenkins Docker Images</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Getting Started</a>
</li>
<ul>
<li class="collapse " id="docs-getting-started">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/v0.1.1/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.1.1</a>
</li>
<ul>
<li class="collapse " id="docs-getting-started-v0-1-1">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-deploy-jenkins" href="/docs/getting-started/v0.1.1/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-configuration" href="/docs/getting-started/v0.1.1/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-customization" href="/docs/getting-started/v0.1.1/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-aks" href="/docs/getting-started/v0.1.1/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-configure-backup-and-restore" href="/docs/getting-started/v0.1.1/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-diagnostics" href="/docs/getting-started/v0.1.1/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-scheme" href="/docs/getting-started/v0.1.1/scheme/">Scheme</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-migration-guide-v1alpha1-to-v1alpha2" href="/docs/getting-started/v0.1.1/migration-guide-v1alpha1-to-v1alpha2/">Migration guide from v1alpha1 to v1alpha2</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/v0.2.0/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.2.0</a>
</li>
<ul>
<li class="collapse " id="docs-getting-started-v0-2-0">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-deploy-jenkins" href="/docs/getting-started/v0.2.0/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-configuration" href="/docs/getting-started/v0.2.0/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-customization" href="/docs/getting-started/v0.2.0/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-aks" href="/docs/getting-started/v0.2.0/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-configure-backup-and-restore" href="/docs/getting-started/v0.2.0/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-migration" href="/docs/getting-started/v0.2.0/migration/">Migration from v0.1.1</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-diagnostics" href="/docs/getting-started/v0.2.0/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-scheme" href="/docs/getting-started/v0.2.0/scheme/">Scheme</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/security/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Security</a>
</li>
<ul>
<li class="collapse " id="docs-security">
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/developer-guide/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Developer Guide</a>
</li>
<ul>
<li class="collapse " id="docs-developer-guide">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-developer-guide-tools" href="/docs/developer-guide/tools/">Tools</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
</nav>
</div>
</div>
<main class="col-12 col-md-9 col-xl-10 pl-md-5" role="main">
<nav aria-label="breadcrumb" class="d-none d-md-block d-print-none">
<ol class="breadcrumb spb-1">
<li class="breadcrumb-item" >
<a href="/docs/">Documentation</a>
</li>
<li class="breadcrumb-item" >
<a href="/docs/how-it-works/">How it works</a>
</li>
<li class="breadcrumb-item active" aria-current="page">
<a href="/docs/how-it-works/jenkins-docker-images/">Jenkins Docker Images</a>
</li>
</ol>
</nav >
<div class="td-content">
<h1>Jenkins Docker Images</h1>
<div class="lead">Jenkins default image details</div>
<p><strong>jenkins-operator</strong> is fully compatible with <strong>jenkins:lts</strong> docker image and does not introduce any hidden changes there.
If needed, the docker image can easily be changed in custom resource manifest as long as it supports standard Jenkins file system structure.</p>
<div class="text-muted mt-5 pt-3 border-top">Last modified August 5, 2019
</div>
</div>
</main>
</div>
</div>
<footer class="bg-dark py-5 row d-print-none">
<div class="container-fluid mx-sm-5">
<div class="row">
<div class="col-6 col-sm-4 text-xs-center order-sm-2">
</div>
<div class="col-6 col-sm-4 text-right text-xs-center order-sm-3">
</div>
<div class="col-12 col-sm-4 text-center py-2 order-sm-2">
<small class="text-white">&copy; 2019 VirtusLab All Rights Reserved</small>
<p class="mt-2"><a href="/about/">What&#39;s the Jenkins Operator?</a></p>
</div>
</div>
</div>
</footer>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
<script src="/js/main.min.7b50e46a4d678dead3e0004b8f665cd640085d2539954f51d57c7346b9a92d74.js" integrity="sha256-e1Dkak1njerT4ABLj2Zc1kAIXSU5lU9R1XxzRrmpLXQ="></script>
</body>
</html>
+575
View File
@@ -0,0 +1,575 @@
<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="generator" content="Hugo 0.57.2" />
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
<link rel="alternate" type="application/rss&#43;xml" href="/docs/index.xml">
<link rel="shortcut icon" href="/favicons/favicon.ico" >
<link rel="apple-touch-icon" href="/favicons/apple-touch-icon-180x180.png" sizes="180x180">
<link rel="icon" type="image/png" href="/favicons/favicon-16x16.png" sizes="16x16">
<link rel="icon" type="image/png" href="/favicons/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="/favicons/android-36x36.png" sizes="36x36">
<link rel="icon" type="image/png" href="/favicons/android-48x48.png" sizes="48x48">
<link rel="icon" type="image/png" href="/favicons/android-72x72.png" sizes="72x72">
<link rel="icon" type="image/png" href="/favicons/android-96x196.png" sizes="96x196">
<link rel="icon" type="image/png" href="/favicons/android-144x144.png" sizes="144x144">
<link rel="icon" type="image/png" href="/favicons/android-192x192.png"sizes="192x192">
<title>Documentation | Jenkins Operator</title><meta property="og:title" content="Documentation" />
<meta property="og:description" content="A native operator for Kubernetes to manage Jenkins" />
<meta property="og:type" content="website" />
<meta property="og:url" content="/docs/" />
<meta property="og:updated_time" content="2019-09-03T00:00:00+00:00" /><meta property="og:site_name" content="Jenkins Operator" />
<meta itemprop="name" content="Documentation">
<meta itemprop="description" content="A native operator for Kubernetes to manage Jenkins">
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Documentation"/>
<meta name="twitter:description" content="A native operator for Kubernetes to manage Jenkins"/>
<link rel="preload" href="/scss/main.min.401a1d444a3f374545e199eff2460fab833ab61f776ce23ec44dea9599dda6b1.css" as="style">
<link href="/scss/main.min.401a1d444a3f374545e199eff2460fab833ab61f776ce23ec44dea9599dda6b1.css" rel="stylesheet" integrity="">
<script
src="https://code.jquery.com/jquery-3.3.1.min.js"
integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
crossorigin="anonymous"></script>
<title>Documentation | Jenkins Operator</title>
</head>
<body class="td-section">
<header>
<nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar">
<a class="navbar-brand" href="/">
<img style="width: 32px; height: 32px; margin-right: 7.5px;" src="/img/logo.svg"></img><span class="text-uppercase font-weight-bold">Jenkins Operator</span>
</a>
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
<ul class="navbar-nav mt-2 mt-lg-0">
<li class="nav-item mr-4 mb-2 mb-lg-0">
<a class="nav-link" href="/about/"><span>What's Jenkins Operator?</span></a>
</li>
<li class="nav-item mr-4 mb-2 mb-lg-0">
<a class="nav-link" href="/docs/"><span>Documentation</span></a>
</li>
</ul>
</div>
<div class="navbar-nav d-none d-lg-block">
<input type="search" class="form-control td-search-input" placeholder="&#xf002 Search this site…" aria-label="Search this site…" autocomplete="off">
</div>
</nav>
</header>
<div class="container-fluid td-outer">
<div class="td-main">
<div class="row flex-xl-nowrap">
<div class="col-12 col-md-3 col-xl-2 td-sidebar d-print-none">
<div id="td-sidebar-menu" class="td-sidebar__inner">
<form class="td-sidebar__search d-flex align-items-center">
<input type="search" class="form-control td-search-input" placeholder="&#xf002 Search this site…" aria-label="Search this site…" autocomplete="off">
<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type="button" data-toggle="collapse" data-target="#td-section-nav" aria-controls="td-docs-nav" aria-expanded="false" aria-label="Toggle section navigation">
</button>
</form>
<nav class="collapse td-sidebar-nav pt-2 pl-4" id="td-section-nav">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/" class="align-left pl-0 pr-2 active td-sidebar-link td-sidebar-link__section">Documentation</a>
</li>
<ul>
<li class="collapse show" id="docs">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/installation/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Installation</a>
</li>
<ul>
<li class="collapse show" id="docs-installation">
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/how-it-works/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">How it works</a>
</li>
<ul>
<li class="collapse show" id="docs-how-it-works">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-how-it-works-architecture-and-design" href="/docs/how-it-works/architecture-and-design/">Architecture and design</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-how-it-works-jenkins-docker-images" href="/docs/how-it-works/jenkins-docker-images/">Jenkins Docker Images</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Getting Started</a>
</li>
<ul>
<li class="collapse show" id="docs-getting-started">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/v0.1.1/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">v0.1.1</a>
</li>
<ul>
<li class="collapse show" id="docs-getting-started-v0-1-1">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-deploy-jenkins" href="/docs/getting-started/v0.1.1/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-configuration" href="/docs/getting-started/v0.1.1/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-customization" href="/docs/getting-started/v0.1.1/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-aks" href="/docs/getting-started/v0.1.1/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-configure-backup-and-restore" href="/docs/getting-started/v0.1.1/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-diagnostics" href="/docs/getting-started/v0.1.1/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-scheme" href="/docs/getting-started/v0.1.1/scheme/">Scheme</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-migration-guide-v1alpha1-to-v1alpha2" href="/docs/getting-started/v0.1.1/migration-guide-v1alpha1-to-v1alpha2/">Migration guide from v1alpha1 to v1alpha2</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/v0.2.0/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">v0.2.0</a>
</li>
<ul>
<li class="collapse show" id="docs-getting-started-v0-2-0">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-deploy-jenkins" href="/docs/getting-started/v0.2.0/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-configuration" href="/docs/getting-started/v0.2.0/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-customization" href="/docs/getting-started/v0.2.0/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-aks" href="/docs/getting-started/v0.2.0/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-configure-backup-and-restore" href="/docs/getting-started/v0.2.0/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-migration" href="/docs/getting-started/v0.2.0/migration/">Migration from v0.1.1</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-diagnostics" href="/docs/getting-started/v0.2.0/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-scheme" href="/docs/getting-started/v0.2.0/scheme/">Scheme</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/security/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Security</a>
</li>
<ul>
<li class="collapse show" id="docs-security">
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/developer-guide/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Developer Guide</a>
</li>
<ul>
<li class="collapse show" id="docs-developer-guide">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-developer-guide-tools" href="/docs/developer-guide/tools/">Tools</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
</nav>
</div>
</div>
<main class="col-12 col-md-9 col-xl-10 pl-md-5" role="main">
<nav aria-label="breadcrumb" class="d-none d-md-block d-print-none">
<ol class="breadcrumb spb-1">
<li class="breadcrumb-item active" aria-current="page">
<a href="/docs/">Documentation</a>
</li>
</ol>
</nav >
<div class="td-content">
<h1>Documentation</h1>
<div class="pageinfo pageinfo-primary">
<p>This project was originally developed by <a href="https://virtuslab.com" target="_blank">VirtusLab</a> and the following <a href="https://github.com/jenkinsci/kubernetes-operator/graphs/contributors" target="_blank">CONTRIBUTORS</a>.</p>
</div>
<div class="section-index">
<hr class="panel-line">
<div class="entry">
<h5>
<a href="/docs/installation/">Installation</a>
</h5>
<p>How to install Jenkins Operator
</p>
</div>
<div class="entry">
<h5>
<a href="/docs/how-it-works/">How it works</a>
</h5>
<p>How Jenkins Operator works
</p>
</div>
<div class="entry">
<h5>
<a href="/docs/getting-started/">Getting Started</a>
</h5>
<p>How to work with jenkins-operator
</p>
</div>
<div class="entry">
<h5>
<a href="/docs/security/">Security</a>
</h5>
<p>Jenkins security and hardening out of the box
</p>
</div>
<div class="entry">
<h5>
<a href="/docs/developer-guide/">Developer Guide</a>
</h5>
<p>Jenkins Operator for developers
</p>
</div>
</div>
<div class="text-muted mt-5 pt-3 border-top">Last modified September 3, 2019
</div>
</div>
</main>
</div>
</div>
<footer class="bg-dark py-5 row d-print-none">
<div class="container-fluid mx-sm-5">
<div class="row">
<div class="col-6 col-sm-4 text-xs-center order-sm-2">
</div>
<div class="col-6 col-sm-4 text-right text-xs-center order-sm-3">
</div>
<div class="col-12 col-sm-4 text-center py-2 order-sm-2">
<small class="text-white">&copy; 2019 VirtusLab All Rights Reserved</small>
<p class="mt-2"><a href="/about/">What&#39;s the Jenkins Operator?</a></p>
</div>
</div>
</div>
</footer>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
<script src="/js/main.min.7b50e46a4d678dead3e0004b8f665cd640085d2539954f51d57c7346b9a92d74.js" integrity="sha256-e1Dkak1njerT4ABLj2Zc1kAIXSU5lU9R1XxzRrmpLXQ="></script>
</body>
</html>
+4633
View File
File diff suppressed because it is too large Load Diff
+572
View File
@@ -0,0 +1,572 @@
<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="generator" content="Hugo 0.57.2" />
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
<link rel="alternate" type="application/rss&#43;xml" href="/docs/installation/index.xml">
<link rel="shortcut icon" href="/favicons/favicon.ico" >
<link rel="apple-touch-icon" href="/favicons/apple-touch-icon-180x180.png" sizes="180x180">
<link rel="icon" type="image/png" href="/favicons/favicon-16x16.png" sizes="16x16">
<link rel="icon" type="image/png" href="/favicons/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="/favicons/android-36x36.png" sizes="36x36">
<link rel="icon" type="image/png" href="/favicons/android-48x48.png" sizes="48x48">
<link rel="icon" type="image/png" href="/favicons/android-72x72.png" sizes="72x72">
<link rel="icon" type="image/png" href="/favicons/android-96x196.png" sizes="96x196">
<link rel="icon" type="image/png" href="/favicons/android-144x144.png" sizes="144x144">
<link rel="icon" type="image/png" href="/favicons/android-192x192.png"sizes="192x192">
<title>Installation | Jenkins Operator</title><meta property="og:title" content="Installation" />
<meta property="og:description" content="How to install Jenkins Operator
" />
<meta property="og:type" content="website" />
<meta property="og:url" content="/docs/installation/" />
<meta property="og:updated_time" content="2019-08-05T00:00:00+00:00" /><meta property="og:site_name" content="Jenkins Operator" />
<meta itemprop="name" content="Installation">
<meta itemprop="description" content="How to install Jenkins Operator
">
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Installation"/>
<meta name="twitter:description" content="How to install Jenkins Operator
"/>
<link rel="preload" href="/scss/main.min.401a1d444a3f374545e199eff2460fab833ab61f776ce23ec44dea9599dda6b1.css" as="style">
<link href="/scss/main.min.401a1d444a3f374545e199eff2460fab833ab61f776ce23ec44dea9599dda6b1.css" rel="stylesheet" integrity="">
<script
src="https://code.jquery.com/jquery-3.3.1.min.js"
integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
crossorigin="anonymous"></script>
<title>Installation | Jenkins Operator</title>
</head>
<body class="td-section">
<header>
<nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar">
<a class="navbar-brand" href="/">
<img style="width: 32px; height: 32px; margin-right: 7.5px;" src="/img/logo.svg"></img><span class="text-uppercase font-weight-bold">Jenkins Operator</span>
</a>
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
<ul class="navbar-nav mt-2 mt-lg-0">
<li class="nav-item mr-4 mb-2 mb-lg-0">
<a class="nav-link" href="/about/"><span>What's Jenkins Operator?</span></a>
</li>
<li class="nav-item mr-4 mb-2 mb-lg-0">
<a class="nav-link" href="/docs/"><span>Documentation</span></a>
</li>
</ul>
</div>
<div class="navbar-nav d-none d-lg-block">
<input type="search" class="form-control td-search-input" placeholder="&#xf002 Search this site…" aria-label="Search this site…" autocomplete="off">
</div>
</nav>
</header>
<div class="container-fluid td-outer">
<div class="td-main">
<div class="row flex-xl-nowrap">
<div class="col-12 col-md-3 col-xl-2 td-sidebar d-print-none">
<div id="td-sidebar-menu" class="td-sidebar__inner">
<form class="td-sidebar__search d-flex align-items-center">
<input type="search" class="form-control td-search-input" placeholder="&#xf002 Search this site…" aria-label="Search this site…" autocomplete="off">
<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type="button" data-toggle="collapse" data-target="#td-section-nav" aria-controls="td-docs-nav" aria-expanded="false" aria-label="Toggle section navigation">
</button>
</form>
<nav class="collapse td-sidebar-nav pt-2 pl-4" id="td-section-nav">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Documentation</a>
</li>
<ul>
<li class="collapse show" id="docs">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/installation/" class="align-left pl-0 pr-2 active td-sidebar-link td-sidebar-link__section">Installation</a>
</li>
<ul>
<li class="collapse show" id="docs-installation">
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/how-it-works/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">How it works</a>
</li>
<ul>
<li class="collapse " id="docs-how-it-works">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-how-it-works-architecture-and-design" href="/docs/how-it-works/architecture-and-design/">Architecture and design</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-how-it-works-jenkins-docker-images" href="/docs/how-it-works/jenkins-docker-images/">Jenkins Docker Images</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Getting Started</a>
</li>
<ul>
<li class="collapse " id="docs-getting-started">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/v0.1.1/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.1.1</a>
</li>
<ul>
<li class="collapse " id="docs-getting-started-v0-1-1">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-deploy-jenkins" href="/docs/getting-started/v0.1.1/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-configuration" href="/docs/getting-started/v0.1.1/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-customization" href="/docs/getting-started/v0.1.1/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-aks" href="/docs/getting-started/v0.1.1/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-configure-backup-and-restore" href="/docs/getting-started/v0.1.1/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-diagnostics" href="/docs/getting-started/v0.1.1/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-scheme" href="/docs/getting-started/v0.1.1/scheme/">Scheme</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-migration-guide-v1alpha1-to-v1alpha2" href="/docs/getting-started/v0.1.1/migration-guide-v1alpha1-to-v1alpha2/">Migration guide from v1alpha1 to v1alpha2</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/v0.2.0/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.2.0</a>
</li>
<ul>
<li class="collapse " id="docs-getting-started-v0-2-0">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-deploy-jenkins" href="/docs/getting-started/v0.2.0/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-configuration" href="/docs/getting-started/v0.2.0/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-customization" href="/docs/getting-started/v0.2.0/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-aks" href="/docs/getting-started/v0.2.0/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-configure-backup-and-restore" href="/docs/getting-started/v0.2.0/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-migration" href="/docs/getting-started/v0.2.0/migration/">Migration from v0.1.1</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-diagnostics" href="/docs/getting-started/v0.2.0/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-scheme" href="/docs/getting-started/v0.2.0/scheme/">Scheme</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/security/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Security</a>
</li>
<ul>
<li class="collapse " id="docs-security">
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/developer-guide/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Developer Guide</a>
</li>
<ul>
<li class="collapse " id="docs-developer-guide">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-developer-guide-tools" href="/docs/developer-guide/tools/">Tools</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
</nav>
</div>
</div>
<main class="col-12 col-md-9 col-xl-10 pl-md-5" role="main">
<nav aria-label="breadcrumb" class="d-none d-md-block d-print-none">
<ol class="breadcrumb spb-1">
<li class="breadcrumb-item" >
<a href="/docs/">Documentation</a>
</li>
<li class="breadcrumb-item active" aria-current="page">
<a href="/docs/installation/">Installation</a>
</li>
</ol>
</nav >
<div class="td-content">
<h1>Installation</h1>
<div class="lead">How to install Jenkins Operator</div>
<div class="pageinfo pageinfo-primary">
<p>This document describes installation procedure for jenkins-operator. All container images can be found at virtuslab/jenkins-operator</p>
</div>
<h2 id="requirements">Requirements</h2>
<p>To run <strong>jenkins-operator</strong>, you will need:</p>
<ul>
<li><p>running Kubernetes cluster version 1.11+</p></li>
<li><p>kubectl version 1.11+</p></li>
</ul>
<h2 id="configure-custom-resource-definition">Configure Custom Resource Definition</h2>
<p>Install Jenkins Custom Resource Definition:</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 apply -f https://raw.githubusercontent.com/jenkinsci/kubernetes-operator/master/deploy/crds/jenkins_v1alpha2_jenkins_crd.yaml</code></pre></div>
<h2 id="deploy-jenkins-operator">Deploy jenkins-operator</h2>
<p>Apply Service Account and RBAC roles:</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 apply -f https://raw.githubusercontent.com/jenkinsci/kubernetes-operator/master/deploy/all-in-one-v1alpha2.yaml</code></pre></div>
<p>Watch <strong>jenkins-operator</strong> 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>Now <strong>jenkins-operator</strong> should be up and running in <code>default</code> namespace.</p>
<div class="section-index">
<hr class="panel-line">
</div>
<div class="text-muted mt-5 pt-3 border-top">Last modified August 5, 2019
</div>
</div>
</main>
</div>
</div>
<footer class="bg-dark py-5 row d-print-none">
<div class="container-fluid mx-sm-5">
<div class="row">
<div class="col-6 col-sm-4 text-xs-center order-sm-2">
</div>
<div class="col-6 col-sm-4 text-right text-xs-center order-sm-3">
</div>
<div class="col-12 col-sm-4 text-center py-2 order-sm-2">
<small class="text-white">&copy; 2019 VirtusLab All Rights Reserved</small>
<p class="mt-2"><a href="/about/">What&#39;s the Jenkins Operator?</a></p>
</div>
</div>
</div>
</footer>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
<script src="/js/main.min.7b50e46a4d678dead3e0004b8f665cd640085d2539954f51d57c7346b9a92d74.js" integrity="sha256-e1Dkak1njerT4ABLj2Zc1kAIXSU5lU9R1XxzRrmpLXQ="></script>
</body>
</html>
+23
View File
@@ -0,0 +1,23 @@
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Jenkins Operator – Installation</title>
<link>/docs/installation/</link>
<description>Recent Hugo news from gohugo.io</description>
<generator>Hugo -- gohugo.io</generator>
<lastBuildDate>Mon, 05 Aug 2019 00:00:00 +0000</lastBuildDate>
<image>
<url>/img/hugo.png</url>
<title>GoHugo.io</title>
<link>/docs/installation/</link>
</image>
<atom:link href="/docs/installation/index.xml" rel="self" type="application/rss+xml" />
</channel>
</rss>
+617
View File
@@ -0,0 +1,617 @@
<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="generator" content="Hugo 0.57.2" />
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
<link rel="alternate" type="application/rss&#43;xml" href="/docs/security/index.xml">
<link rel="shortcut icon" href="/favicons/favicon.ico" >
<link rel="apple-touch-icon" href="/favicons/apple-touch-icon-180x180.png" sizes="180x180">
<link rel="icon" type="image/png" href="/favicons/favicon-16x16.png" sizes="16x16">
<link rel="icon" type="image/png" href="/favicons/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="/favicons/android-36x36.png" sizes="36x36">
<link rel="icon" type="image/png" href="/favicons/android-48x48.png" sizes="48x48">
<link rel="icon" type="image/png" href="/favicons/android-72x72.png" sizes="72x72">
<link rel="icon" type="image/png" href="/favicons/android-96x196.png" sizes="96x196">
<link rel="icon" type="image/png" href="/favicons/android-144x144.png" sizes="144x144">
<link rel="icon" type="image/png" href="/favicons/android-192x192.png"sizes="192x192">
<title>Security | Jenkins Operator</title><meta property="og:title" content="Security" />
<meta property="og:description" content="Jenkins security and hardening out of the box
" />
<meta property="og:type" content="website" />
<meta property="og:url" content="/docs/security/" />
<meta property="og:updated_time" content="2019-08-05T00:00:00+00:00" /><meta property="og:site_name" content="Jenkins Operator" />
<meta itemprop="name" content="Security">
<meta itemprop="description" content="Jenkins security and hardening out of the box
">
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Security"/>
<meta name="twitter:description" content="Jenkins security and hardening out of the box
"/>
<link rel="preload" href="/scss/main.min.401a1d444a3f374545e199eff2460fab833ab61f776ce23ec44dea9599dda6b1.css" as="style">
<link href="/scss/main.min.401a1d444a3f374545e199eff2460fab833ab61f776ce23ec44dea9599dda6b1.css" rel="stylesheet" integrity="">
<script
src="https://code.jquery.com/jquery-3.3.1.min.js"
integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
crossorigin="anonymous"></script>
<title>Security | Jenkins Operator</title>
</head>
<body class="td-section">
<header>
<nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar">
<a class="navbar-brand" href="/">
<img style="width: 32px; height: 32px; margin-right: 7.5px;" src="/img/logo.svg"></img><span class="text-uppercase font-weight-bold">Jenkins Operator</span>
</a>
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
<ul class="navbar-nav mt-2 mt-lg-0">
<li class="nav-item mr-4 mb-2 mb-lg-0">
<a class="nav-link" href="/about/"><span>What's Jenkins Operator?</span></a>
</li>
<li class="nav-item mr-4 mb-2 mb-lg-0">
<a class="nav-link" href="/docs/"><span>Documentation</span></a>
</li>
</ul>
</div>
<div class="navbar-nav d-none d-lg-block">
<input type="search" class="form-control td-search-input" placeholder="&#xf002 Search this site…" aria-label="Search this site…" autocomplete="off">
</div>
</nav>
</header>
<div class="container-fluid td-outer">
<div class="td-main">
<div class="row flex-xl-nowrap">
<div class="col-12 col-md-3 col-xl-2 td-sidebar d-print-none">
<div id="td-sidebar-menu" class="td-sidebar__inner">
<form class="td-sidebar__search d-flex align-items-center">
<input type="search" class="form-control td-search-input" placeholder="&#xf002 Search this site…" aria-label="Search this site…" autocomplete="off">
<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type="button" data-toggle="collapse" data-target="#td-section-nav" aria-controls="td-docs-nav" aria-expanded="false" aria-label="Toggle section navigation">
</button>
</form>
<nav class="collapse td-sidebar-nav pt-2 pl-4" id="td-section-nav">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Documentation</a>
</li>
<ul>
<li class="collapse show" id="docs">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/installation/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Installation</a>
</li>
<ul>
<li class="collapse " id="docs-installation">
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/how-it-works/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">How it works</a>
</li>
<ul>
<li class="collapse " id="docs-how-it-works">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-how-it-works-architecture-and-design" href="/docs/how-it-works/architecture-and-design/">Architecture and design</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-how-it-works-jenkins-docker-images" href="/docs/how-it-works/jenkins-docker-images/">Jenkins Docker Images</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Getting Started</a>
</li>
<ul>
<li class="collapse " id="docs-getting-started">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/v0.1.1/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.1.1</a>
</li>
<ul>
<li class="collapse " id="docs-getting-started-v0-1-1">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-deploy-jenkins" href="/docs/getting-started/v0.1.1/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-configuration" href="/docs/getting-started/v0.1.1/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-customization" href="/docs/getting-started/v0.1.1/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-aks" href="/docs/getting-started/v0.1.1/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-configure-backup-and-restore" href="/docs/getting-started/v0.1.1/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-diagnostics" href="/docs/getting-started/v0.1.1/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-scheme" href="/docs/getting-started/v0.1.1/scheme/">Scheme</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-1-1-migration-guide-v1alpha1-to-v1alpha2" href="/docs/getting-started/v0.1.1/migration-guide-v1alpha1-to-v1alpha2/">Migration guide from v1alpha1 to v1alpha2</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/getting-started/v0.2.0/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.2.0</a>
</li>
<ul>
<li class="collapse " id="docs-getting-started-v0-2-0">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-deploy-jenkins" href="/docs/getting-started/v0.2.0/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-configuration" href="/docs/getting-started/v0.2.0/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-customization" href="/docs/getting-started/v0.2.0/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-aks" href="/docs/getting-started/v0.2.0/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-configure-backup-and-restore" href="/docs/getting-started/v0.2.0/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-migration" href="/docs/getting-started/v0.2.0/migration/">Migration from v0.1.1</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-diagnostics" href="/docs/getting-started/v0.2.0/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-getting-started-v0-2-0-scheme" href="/docs/getting-started/v0.2.0/scheme/">Scheme</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/security/" class="align-left pl-0 pr-2 active td-sidebar-link td-sidebar-link__section">Security</a>
</li>
<ul>
<li class="collapse show" id="docs-security">
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/docs/developer-guide/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Developer Guide</a>
</li>
<ul>
<li class="collapse " id="docs-developer-guide">
<a class="td-sidebar-link td-sidebar-link__page " id="m-docs-developer-guide-tools" href="/docs/developer-guide/tools/">Tools</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
</nav>
</div>
</div>
<main class="col-12 col-md-9 col-xl-10 pl-md-5" role="main">
<nav aria-label="breadcrumb" class="d-none d-md-block d-print-none">
<ol class="breadcrumb spb-1">
<li class="breadcrumb-item" >
<a href="/docs/">Documentation</a>
</li>
<li class="breadcrumb-item active" aria-current="page">
<a href="/docs/security/">Security</a>
</li>
</ol>
</nav >
<div class="td-content">
<h1>Security</h1>
<div class="lead">Jenkins security and hardening out of the box</div>
<p>By default <strong>jenkins-operator</strong> performs an initial security hardening of Jenkins instance via groovy scripts to prevent any security gaps.</p>
<h2 id="jenkins-access-control">Jenkins Access Control</h2>
<p>Currently <strong>jenkins-operator</strong> generates a username and random password and stores them in a Kubernetes Secret.
However any other authorization mechanisms are possible and can be done via groovy scripts or configuration as code plugin.
For more information take a look at <a href="v0.1.1/getting-started.md#jenkins-customisation" target="_blank">getting-started#jenkins-customization</a>.</p>
<p>Any change to Security Realm or Authorization requires that user called <code>jenkins-operator</code> must have admin rights
because <strong>jenkins-operator</strong> calls Jenkins API.</p>
<h2 id="jenkins-hardening">Jenkins Hardening</h2>
<p>The list below describes all the default security setting configured by the <strong>jenkins-operator</strong>:
- basic settings - use <code>Mode.EXCLUSIVE</code> - Jobs must specify that they want to run on master node
- enable CSRF - Cross Site Request Forgery Protection is enabled
- disable usage stats - Jenkins usage stats submitting is disabled
- enable master access control - Slave To Master Access Control is enabled
- disable old JNLP protocols - <code>JNLP3-connect</code>, <code>JNLP2-connect</code> and <code>JNLP-connect</code> are disabled
- disable CLI - CLI access of <code>/cli</code> URL is disabled
- configure kubernetes-plugin - secure configuration for Kubernetes plugin</p>
<p>If you would like to dig a little bit into the code, take a look <a href="../pkg/controller/jenkins/configuration/base/resources/base_configuration_configmap.go">here</a>.</p>
<h2 id="jenkins-api">Jenkins API</h2>
<p>The <strong>jenkins-operator</strong> generates and configures Basic Authentication token for Jenkins go client and stores it in a Kubernetes Secret.</p>
<h2 id="kubernetes">Kubernetes</h2>
<p>Kubernetes API permissions are limited by the following roles:
- <a href="../deploy/role.yaml">jenkins-operator role</a><br />
- <a href="../pkg/controller/jenkins/configuration/base/resources/rbac.go">Jenkins Master role</a></p>
<p>Since <strong>jenkins-operator</strong> must be able to grant permission for its&rsquo; deployed Jenkins masters to spawn pods (the <code>Jenkins Master role</code> above),
the operator itself requires permission to create RBAC resources (the <code>jenkins-operator role</code> above).
Deployed this way, any subject which may create a Pod (including a Jenkins job) may
assume the <code>jenkins-operator</code> role by using its&rsquo; ServiceAccount, create RBAC rules, and thus escape its granted permissions.
Any namespace to which the <code>jenkins-operator</code> is deployed must be considered to implicitly grant all
possible permissions to any subject which can create a Pod in that namespace.</p>
<p>To mitigate this issue <strong>jenkins-operator</strong> should be deployed in one namespace and the Jenkins CR should be created in separate namespace.
To achieve it change watch namespace in <a href="https://github.com/jenkinsci/kubernetes-operator/blob/master/deploy/operator.yaml#L25" target="_blank">https://github.com/jenkinsci/kubernetes-operator/blob/master/deploy/operator.yaml#L25</a></p>
<h2 id="setup-jenkins-operator-and-jenkins-in-separated-namespaces">Setup Jenkins Operator and Jenkins in separated namespaces</h2>
<p>You need to create two namespaces, for example we&rsquo;ll call them <strong>jenkins</strong> for Jenkins and <strong>jenkins-operator</strong> for Jenkins Operator.</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 ns jenkins-operator
$ kubectl create ns jenkins</code></pre></div>
<p>Next, apply the RBAC manifests for <strong>jenkins-operator</strong> namespace</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 jenkins-operator apply -f deploy/service_account.yaml
$ kubectl -n jenkins-operator apply -f deploy/role_binding.yaml</code></pre></div>
<p>Create file role_binding_jenkins.yaml in <code>deploy</code> folder:</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>RoleBinding<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>rbac.authorization.k8s.io/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<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>subjects<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>kind<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>ServiceAccount<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<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-operator<span style="color:#f8f8f8;text-decoration:underline">
</span><span style="color:#f8f8f8;text-decoration:underline"></span>roleRef<span style="color:#000;font-weight:bold">:</span><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>Role<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<span style="color:#f8f8f8;text-decoration:underline">
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>apiGroup<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>rbac.authorization.k8s.io</code></pre></div>
<p>Then, apply RBAC rules for <strong>jenkins</strong> namespace</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 jenkins apply -f deploy/role.yaml
$ kubectl -n jenkins apply -f role_binding_jenkins.yaml</code></pre></div>
<p>Finally, you must create operator pod by:</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 jenkins -n jenkins-operator apply -f deploy/operator.yaml</code></pre></div>
<h2 id="report-a-security-vulnerability">Report a Security Vulnerability</h2>
<p>If you find a vulnerability or any misconfiguration in Jenkins, please report it in the <a href="https://github.com/jenkinsci/kubernetes-operator/issues" target="_blank">issues</a>.</p>
<div class="section-index">
<hr class="panel-line">
</div>
<div class="text-muted mt-5 pt-3 border-top">Last modified August 5, 2019
</div>
</div>
</main>
</div>
</div>
<footer class="bg-dark py-5 row d-print-none">
<div class="container-fluid mx-sm-5">
<div class="row">
<div class="col-6 col-sm-4 text-xs-center order-sm-2">
</div>
<div class="col-6 col-sm-4 text-right text-xs-center order-sm-3">
</div>
<div class="col-12 col-sm-4 text-center py-2 order-sm-2">
<small class="text-white">&copy; 2019 VirtusLab All Rights Reserved</small>
<p class="mt-2"><a href="/about/">What&#39;s the Jenkins Operator?</a></p>
</div>
</div>
</div>
</footer>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
<script src="/js/main.min.7b50e46a4d678dead3e0004b8f665cd640085d2539954f51d57c7346b9a92d74.js" integrity="sha256-e1Dkak1njerT4ABLj2Zc1kAIXSU5lU9R1XxzRrmpLXQ="></script>
</body>
</html>
+23
View File
@@ -0,0 +1,23 @@
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Jenkins Operator – Security</title>
<link>/docs/security/</link>
<description>Recent Hugo news from gohugo.io</description>
<generator>Hugo -- gohugo.io</generator>
<lastBuildDate>Mon, 05 Aug 2019 00:00:00 +0000</lastBuildDate>
<image>
<url>/img/hugo.png</url>
<title>GoHugo.io</title>
<link>/docs/security/</link>
</image>
<atom:link href="/docs/security/index.xml" rel="self" type="application/rss+xml" />
</channel>
</rss>