commit
bd45b0b277
|
|
@ -9,7 +9,7 @@ Visit [website](https://jenkinsci.github.io/kubernetes-operator/) for the full d
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
## What's Jenkins Operator?
|
## What's the Jenkins Operator?
|
||||||
|
|
||||||
Jenkins operator is a Kubernetes native operator which fully manages Jenkins on Kubernetes.
|
Jenkins operator is a Kubernetes native operator which fully manages Jenkins on Kubernetes.
|
||||||
It was built with immutability and declarative configuration as code in mind.
|
It was built with immutability and declarative configuration as code in mind.
|
||||||
|
|
@ -22,7 +22,7 @@ Out of the box it provides:
|
||||||
|
|
||||||
## Problem statement and goals
|
## Problem statement and goals
|
||||||
|
|
||||||
The main reason why we decided to write the **jenkins-operator** is the fact that we faced a lot of problems with standard Jenkins deployment.
|
The main reason why we decided to implement the **Jenkins Operator** is the fact that we faced a lot of problems with standard Jenkins deployment.
|
||||||
We want to make Jenkins more robust, suitable for dynamic and multi-tenant environments.
|
We want to make Jenkins more robust, suitable for dynamic and multi-tenant environments.
|
||||||
|
|
||||||
Some of the problems we want to solve:
|
Some of the problems we want to solve:
|
||||||
|
|
|
||||||
|
|
@ -57,7 +57,7 @@
|
||||||
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
||||||
<ul class="navbar-nav mt-2 mt-lg-0">
|
<ul class="navbar-nav mt-2 mt-lg-0">
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/about"><span>What's Jenkins Operator?</span></a>
|
<a class="nav-link" href="/kubernetes-operator/about"><span>What's the Jenkins Operator?</span></a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
||||||
|
|
|
||||||
|
|
@ -58,7 +58,7 @@
|
||||||
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
||||||
<ul class="navbar-nav mt-2 mt-lg-0">
|
<ul class="navbar-nav mt-2 mt-lg-0">
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/about"><span>What's Jenkins Operator?</span></a>
|
<a class="nav-link" href="/kubernetes-operator/about"><span>What's the Jenkins Operator?</span></a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
||||||
|
|
@ -86,7 +86,7 @@
|
||||||
<div class="container text-center td-arrow-down">
|
<div class="container text-center td-arrow-down">
|
||||||
<span class="h4 mb-0">
|
<span class="h4 mb-0">
|
||||||
<div style="font-size: 110%;" class="col-12">
|
<div style="font-size: 110%;" class="col-12">
|
||||||
jenkins-operator is a Kubernetes native operator which fully manages Jenkins on Kubernetes. <br />It was built with immutability and declarative configuration as code in mind.
|
Jenkins Operator is a Kubernetes native operator which fully manages Jenkins on Kubernetes. <br />It was built with immutability and declarative configuration as code in mind.
|
||||||
</div>
|
</div>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,7 @@
|
||||||
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
||||||
<ul class="navbar-nav mt-2 mt-lg-0">
|
<ul class="navbar-nav mt-2 mt-lg-0">
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/about"><span>What's Jenkins Operator?</span></a>
|
<a class="nav-link" href="/kubernetes-operator/about"><span>What's the Jenkins Operator?</span></a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
||||||
|
|
|
||||||
|
|
@ -68,7 +68,7 @@
|
||||||
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
||||||
<ul class="navbar-nav mt-2 mt-lg-0">
|
<ul class="navbar-nav mt-2 mt-lg-0">
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/about"><span>What's Jenkins Operator?</span></a>
|
<a class="nav-link" href="/kubernetes-operator/about"><span>What's the Jenkins Operator?</span></a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,7 @@
|
||||||
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
||||||
<ul class="navbar-nav mt-2 mt-lg-0">
|
<ul class="navbar-nav mt-2 mt-lg-0">
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/about"><span>What's Jenkins Operator?</span></a>
|
<a class="nav-link" href="/kubernetes-operator/about"><span>What's the Jenkins Operator?</span></a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
||||||
|
|
|
||||||
|
|
@ -59,7 +59,7 @@
|
||||||
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
||||||
<ul class="navbar-nav mt-2 mt-lg-0">
|
<ul class="navbar-nav mt-2 mt-lg-0">
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/about"><span>What's Jenkins Operator?</span></a>
|
<a class="nav-link" href="/kubernetes-operator/about"><span>What's the Jenkins Operator?</span></a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
||||||
|
|
|
||||||
|
|
@ -60,7 +60,7 @@
|
||||||
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
||||||
<ul class="navbar-nav mt-2 mt-lg-0">
|
<ul class="navbar-nav mt-2 mt-lg-0">
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/about"><span>What's Jenkins Operator?</span></a>
|
<a class="nav-link" href="/kubernetes-operator/about"><span>What's the Jenkins Operator?</span></a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
||||||
|
|
|
||||||
|
|
@ -60,7 +60,7 @@
|
||||||
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
||||||
<ul class="navbar-nav mt-2 mt-lg-0">
|
<ul class="navbar-nav mt-2 mt-lg-0">
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/about"><span>What's Jenkins Operator?</span></a>
|
<a class="nav-link" href="/kubernetes-operator/about"><span>What's the Jenkins Operator?</span></a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
||||||
|
|
|
||||||
|
|
@ -58,7 +58,7 @@
|
||||||
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
||||||
<ul class="navbar-nav mt-2 mt-lg-0">
|
<ul class="navbar-nav mt-2 mt-lg-0">
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/about"><span>What's Jenkins Operator?</span></a>
|
<a class="nav-link" href="/kubernetes-operator/about"><span>What's the Jenkins Operator?</span></a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
||||||
|
|
|
||||||
|
|
@ -63,7 +63,7 @@
|
||||||
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
||||||
<ul class="navbar-nav mt-2 mt-lg-0">
|
<ul class="navbar-nav mt-2 mt-lg-0">
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/about"><span>What's Jenkins Operator?</span></a>
|
<a class="nav-link" href="/kubernetes-operator/about"><span>What's the Jenkins Operator?</span></a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,7 @@
|
||||||
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
||||||
<ul class="navbar-nav mt-2 mt-lg-0">
|
<ul class="navbar-nav mt-2 mt-lg-0">
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/about"><span>What's Jenkins Operator?</span></a>
|
<a class="nav-link" href="/kubernetes-operator/about"><span>What's the Jenkins Operator?</span></a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
||||||
|
|
|
||||||
|
|
@ -63,7 +63,7 @@
|
||||||
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
||||||
<ul class="navbar-nav mt-2 mt-lg-0">
|
<ul class="navbar-nav mt-2 mt-lg-0">
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/about"><span>What's Jenkins Operator?</span></a>
|
<a class="nav-link" href="/kubernetes-operator/about"><span>What's the Jenkins Operator?</span></a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,7 @@
|
||||||
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
||||||
<ul class="navbar-nav mt-2 mt-lg-0">
|
<ul class="navbar-nav mt-2 mt-lg-0">
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/about"><span>What's Jenkins Operator?</span></a>
|
<a class="nav-link" href="/kubernetes-operator/about"><span>What's the Jenkins Operator?</span></a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,7 @@
|
||||||
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
||||||
<ul class="navbar-nav mt-2 mt-lg-0">
|
<ul class="navbar-nav mt-2 mt-lg-0">
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/about"><span>What's Jenkins Operator?</span></a>
|
<a class="nav-link" href="/kubernetes-operator/about"><span>What's the Jenkins Operator?</span></a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@
|
||||||
<link rel="icon" type="image/png" href="/kubernetes-operator/favicons/android-192x192.png"sizes="192x192">
|
<link rel="icon" type="image/png" href="/kubernetes-operator/favicons/android-192x192.png"sizes="192x192">
|
||||||
|
|
||||||
<title>Configure backup and restore | Jenkins Operator</title><meta property="og:title" content="Configure backup and restore" />
|
<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:description" content="Prevent loss of job history
|
||||||
" />
|
" />
|
||||||
<meta property="og:type" content="article" />
|
<meta property="og:type" content="article" />
|
||||||
<meta property="og:url" content="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/v0.1.1/configure-backup-and-restore/" />
|
<meta property="og:url" content="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/v0.1.1/configure-backup-and-restore/" />
|
||||||
|
|
@ -29,7 +29,7 @@
|
||||||
<meta property="article:modified_time" content="2019-08-05T00:00:00+00:00"/><meta property="og:site_name" content="Jenkins Operator" />
|
<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="name" content="Configure backup and restore">
|
||||||
<meta itemprop="description" content="Prevent job history loss
|
<meta itemprop="description" content="Prevent loss of job history
|
||||||
">
|
">
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -42,7 +42,7 @@
|
||||||
<meta itemprop="keywords" content="" />
|
<meta itemprop="keywords" content="" />
|
||||||
<meta name="twitter:card" content="summary"/>
|
<meta name="twitter:card" content="summary"/>
|
||||||
<meta name="twitter:title" content="Configure backup and restore"/>
|
<meta name="twitter:title" content="Configure backup and restore"/>
|
||||||
<meta name="twitter:description" content="Prevent job history loss
|
<meta name="twitter:description" content="Prevent loss of job history
|
||||||
"/>
|
"/>
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -70,7 +70,7 @@
|
||||||
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
||||||
<ul class="navbar-nav mt-2 mt-lg-0">
|
<ul class="navbar-nav mt-2 mt-lg-0">
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/about"><span>What's Jenkins Operator?</span></a>
|
<a class="nav-link" href="/kubernetes-operator/about"><span>What's the Jenkins Operator?</span></a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
||||||
|
|
@ -455,7 +455,7 @@
|
||||||
|
|
||||||
<div class="td-content">
|
<div class="td-content">
|
||||||
<h1>Configure backup and restore</h1>
|
<h1>Configure backup and restore</h1>
|
||||||
<div class="lead">Prevent job history loss</div>
|
<div class="lead">Prevent loss of job history</div>
|
||||||
|
|
||||||
|
|
||||||
<p>Backup and restore is done by container sidecar.</p>
|
<p>Backup and restore is done by container sidecar.</p>
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,7 @@
|
||||||
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
||||||
<ul class="navbar-nav mt-2 mt-lg-0">
|
<ul class="navbar-nav mt-2 mt-lg-0">
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/about"><span>What's Jenkins Operator?</span></a>
|
<a class="nav-link" href="/kubernetes-operator/about"><span>What's the Jenkins Operator?</span></a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,7 @@
|
||||||
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
||||||
<ul class="navbar-nav mt-2 mt-lg-0">
|
<ul class="navbar-nav mt-2 mt-lg-0">
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/about"><span>What's Jenkins Operator?</span></a>
|
<a class="nav-link" href="/kubernetes-operator/about"><span>What's the Jenkins Operator?</span></a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,7 @@
|
||||||
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
||||||
<ul class="navbar-nav mt-2 mt-lg-0">
|
<ul class="navbar-nav mt-2 mt-lg-0">
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/about"><span>What's Jenkins Operator?</span></a>
|
<a class="nav-link" href="/kubernetes-operator/about"><span>What's the Jenkins Operator?</span></a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
||||||
|
|
|
||||||
|
|
@ -63,7 +63,7 @@
|
||||||
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
||||||
<ul class="navbar-nav mt-2 mt-lg-0">
|
<ul class="navbar-nav mt-2 mt-lg-0">
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/about"><span>What's Jenkins Operator?</span></a>
|
<a class="nav-link" href="/kubernetes-operator/about"><span>What's the Jenkins Operator?</span></a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
||||||
|
|
@ -520,7 +520,7 @@ Once you have running Kubernetes cluster you can focus on installing <strong>jen
|
||||||
<h5>
|
<h5>
|
||||||
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/v0.1.1/configure-backup-and-restore/">Configure backup and restore</a>
|
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/v0.1.1/configure-backup-and-restore/">Configure backup and restore</a>
|
||||||
</h5>
|
</h5>
|
||||||
<p>Prevent job history loss
|
<p>Prevent loss of job history
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,7 @@
|
||||||
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
||||||
<ul class="navbar-nav mt-2 mt-lg-0">
|
<ul class="navbar-nav mt-2 mt-lg-0">
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/about"><span>What's Jenkins Operator?</span></a>
|
<a class="nav-link" href="/kubernetes-operator/about"><span>What's the Jenkins Operator?</span></a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,7 @@
|
||||||
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
||||||
<ul class="navbar-nav mt-2 mt-lg-0">
|
<ul class="navbar-nav mt-2 mt-lg-0">
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/about"><span>What's Jenkins Operator?</span></a>
|
<a class="nav-link" href="/kubernetes-operator/about"><span>What's the Jenkins Operator?</span></a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,7 @@
|
||||||
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
||||||
<ul class="navbar-nav mt-2 mt-lg-0">
|
<ul class="navbar-nav mt-2 mt-lg-0">
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/about"><span>What's Jenkins Operator?</span></a>
|
<a class="nav-link" href="/kubernetes-operator/about"><span>What's the Jenkins Operator?</span></a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,7 @@
|
||||||
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
||||||
<ul class="navbar-nav mt-2 mt-lg-0">
|
<ul class="navbar-nav mt-2 mt-lg-0">
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/about"><span>What's Jenkins Operator?</span></a>
|
<a class="nav-link" href="/kubernetes-operator/about"><span>What's the Jenkins Operator?</span></a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@
|
||||||
<link rel="icon" type="image/png" href="/kubernetes-operator/favicons/android-192x192.png"sizes="192x192">
|
<link rel="icon" type="image/png" href="/kubernetes-operator/favicons/android-192x192.png"sizes="192x192">
|
||||||
|
|
||||||
<title>Configure backup and restore | Jenkins Operator</title><meta property="og:title" content="Configure backup and restore" />
|
<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:description" content="Prevent loss of job history
|
||||||
" />
|
" />
|
||||||
<meta property="og:type" content="article" />
|
<meta property="og:type" content="article" />
|
||||||
<meta property="og:url" content="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/v0.2.0/configure-backup-and-restore/" />
|
<meta property="og:url" content="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/v0.2.0/configure-backup-and-restore/" />
|
||||||
|
|
@ -29,7 +29,7 @@
|
||||||
<meta property="article:modified_time" content="2019-08-05T00:00:00+00:00"/><meta property="og:site_name" content="Jenkins Operator" />
|
<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="name" content="Configure backup and restore">
|
||||||
<meta itemprop="description" content="Prevent job history loss
|
<meta itemprop="description" content="Prevent loss of job history
|
||||||
">
|
">
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -42,7 +42,7 @@
|
||||||
<meta itemprop="keywords" content="" />
|
<meta itemprop="keywords" content="" />
|
||||||
<meta name="twitter:card" content="summary"/>
|
<meta name="twitter:card" content="summary"/>
|
||||||
<meta name="twitter:title" content="Configure backup and restore"/>
|
<meta name="twitter:title" content="Configure backup and restore"/>
|
||||||
<meta name="twitter:description" content="Prevent job history loss
|
<meta name="twitter:description" content="Prevent loss of job history
|
||||||
"/>
|
"/>
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -70,7 +70,7 @@
|
||||||
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
||||||
<ul class="navbar-nav mt-2 mt-lg-0">
|
<ul class="navbar-nav mt-2 mt-lg-0">
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/about"><span>What's Jenkins Operator?</span></a>
|
<a class="nav-link" href="/kubernetes-operator/about"><span>What's the Jenkins Operator?</span></a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
||||||
|
|
@ -455,7 +455,7 @@
|
||||||
|
|
||||||
<div class="td-content">
|
<div class="td-content">
|
||||||
<h1>Configure backup and restore</h1>
|
<h1>Configure backup and restore</h1>
|
||||||
<div class="lead">Prevent job history loss</div>
|
<div class="lead">Prevent loss of job history</div>
|
||||||
|
|
||||||
|
|
||||||
<p>Backup and restore is done by container sidecar.</p>
|
<p>Backup and restore is done by container sidecar.</p>
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,7 @@
|
||||||
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
||||||
<ul class="navbar-nav mt-2 mt-lg-0">
|
<ul class="navbar-nav mt-2 mt-lg-0">
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/about"><span>What's Jenkins Operator?</span></a>
|
<a class="nav-link" href="/kubernetes-operator/about"><span>What's the Jenkins Operator?</span></a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,7 @@
|
||||||
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
||||||
<ul class="navbar-nav mt-2 mt-lg-0">
|
<ul class="navbar-nav mt-2 mt-lg-0">
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/about"><span>What's Jenkins Operator?</span></a>
|
<a class="nav-link" href="/kubernetes-operator/about"><span>What's the Jenkins Operator?</span></a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,7 @@
|
||||||
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
||||||
<ul class="navbar-nav mt-2 mt-lg-0">
|
<ul class="navbar-nav mt-2 mt-lg-0">
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/about"><span>What's Jenkins Operator?</span></a>
|
<a class="nav-link" href="/kubernetes-operator/about"><span>What's the Jenkins Operator?</span></a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
||||||
|
|
|
||||||
|
|
@ -63,7 +63,7 @@
|
||||||
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
||||||
<ul class="navbar-nav mt-2 mt-lg-0">
|
<ul class="navbar-nav mt-2 mt-lg-0">
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/about"><span>What's Jenkins Operator?</span></a>
|
<a class="nav-link" href="/kubernetes-operator/about"><span>What's the Jenkins Operator?</span></a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
||||||
|
|
@ -522,7 +522,7 @@ Once you have running Kubernetes cluster you can focus on installing <strong>jen
|
||||||
<h5>
|
<h5>
|
||||||
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/v0.2.0/configure-backup-and-restore/">Configure backup and restore</a>
|
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/v0.2.0/configure-backup-and-restore/">Configure backup and restore</a>
|
||||||
</h5>
|
</h5>
|
||||||
<p>Prevent job history loss
|
<p>Prevent loss of job history
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,7 @@
|
||||||
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
||||||
<ul class="navbar-nav mt-2 mt-lg-0">
|
<ul class="navbar-nav mt-2 mt-lg-0">
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/about"><span>What's Jenkins Operator?</span></a>
|
<a class="nav-link" href="/kubernetes-operator/about"><span>What's the Jenkins Operator?</span></a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,7 @@
|
||||||
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
||||||
<ul class="navbar-nav mt-2 mt-lg-0">
|
<ul class="navbar-nav mt-2 mt-lg-0">
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/about"><span>What's Jenkins Operator?</span></a>
|
<a class="nav-link" href="/kubernetes-operator/about"><span>What's the Jenkins Operator?</span></a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,7 @@
|
||||||
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
||||||
<ul class="navbar-nav mt-2 mt-lg-0">
|
<ul class="navbar-nav mt-2 mt-lg-0">
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/about"><span>What's Jenkins Operator?</span></a>
|
<a class="nav-link" href="/kubernetes-operator/about"><span>What's the Jenkins Operator?</span></a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
||||||
|
|
|
||||||
|
|
@ -63,7 +63,7 @@
|
||||||
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
||||||
<ul class="navbar-nav mt-2 mt-lg-0">
|
<ul class="navbar-nav mt-2 mt-lg-0">
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/about"><span>What's Jenkins Operator?</span></a>
|
<a class="nav-link" href="/kubernetes-operator/about"><span>What's the Jenkins Operator?</span></a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,7 @@
|
||||||
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
||||||
<ul class="navbar-nav mt-2 mt-lg-0">
|
<ul class="navbar-nav mt-2 mt-lg-0">
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/about"><span>What's Jenkins Operator?</span></a>
|
<a class="nav-link" href="/kubernetes-operator/about"><span>What's the Jenkins Operator?</span></a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
||||||
|
|
|
||||||
|
|
@ -60,7 +60,7 @@
|
||||||
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
||||||
<ul class="navbar-nav mt-2 mt-lg-0">
|
<ul class="navbar-nav mt-2 mt-lg-0">
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/about"><span>What's Jenkins Operator?</span></a>
|
<a class="nav-link" href="/kubernetes-operator/about"><span>What's the Jenkins Operator?</span></a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
||||||
|
|
|
||||||
|
|
@ -63,7 +63,7 @@
|
||||||
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
||||||
<ul class="navbar-nav mt-2 mt-lg-0">
|
<ul class="navbar-nav mt-2 mt-lg-0">
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/about"><span>What's Jenkins Operator?</span></a>
|
<a class="nav-link" href="/kubernetes-operator/about"><span>What's the Jenkins Operator?</span></a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
||||||
|
|
@ -453,7 +453,7 @@
|
||||||
|
|
||||||
<p>Install Jenkins Custom Resource Definition:</p>
|
<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>
|
<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>
|
<h2 id="deploy-jenkins-operator">Deploy Jenkins Operator</h2>
|
||||||
|
|
||||||
<p>Apply Service Account and RBAC roles:</p>
|
<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>
|
<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>
|
||||||
|
|
|
||||||
|
|
@ -63,7 +63,7 @@
|
||||||
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
||||||
<ul class="navbar-nav mt-2 mt-lg-0">
|
<ul class="navbar-nav mt-2 mt-lg-0">
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/about"><span>What's Jenkins Operator?</span></a>
|
<a class="nav-link" href="/kubernetes-operator/about"><span>What's the Jenkins Operator?</span></a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
||||||
|
|
|
||||||
|
|
@ -59,7 +59,7 @@
|
||||||
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
||||||
<ul class="navbar-nav mt-2 mt-lg-0">
|
<ul class="navbar-nav mt-2 mt-lg-0">
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/about"><span>What's Jenkins Operator?</span></a>
|
<a class="nav-link" href="/kubernetes-operator/about"><span>What's the Jenkins Operator?</span></a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
||||||
|
|
@ -115,7 +115,7 @@
|
||||||
<section class="row td-box td-box--primary position-relative td-box--gradient td-box--height-auto">
|
<section class="row td-box td-box--primary position-relative td-box--gradient td-box--height-auto">
|
||||||
<div class="container text-center td-arrow-down">
|
<div class="container text-center td-arrow-down">
|
||||||
<span class="h4 mb-0">
|
<span class="h4 mb-0">
|
||||||
Jenkins operator is a Kubernetes native operator which fully manages Jenkins on Kubernetes.<br /> It was built with immutability and declarative configuration as code in mind.<br /> Here are solved problems.
|
Jenkins operator is a Kubernetes native operator which fully manages Jenkins on Kubernetes.<br /> It was built with immutability and declarative configuration as code in mind.<br />
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
@ -184,7 +184,7 @@
|
||||||
<i class="fas fa-file-archive"></i>
|
<i class="fas fa-file-archive"></i>
|
||||||
</div>
|
</div>
|
||||||
<h4 class="h3">Backup and restore for jobs history</h4>
|
<h4 class="h3">Backup and restore for jobs history</h4>
|
||||||
<p class="mb-0"><p>Prevent job history loss</p>
|
<p class="mb-0"><p>Prevent loss of job history</p>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -64,7 +64,7 @@
|
||||||
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
||||||
<ul class="navbar-nav mt-2 mt-lg-0">
|
<ul class="navbar-nav mt-2 mt-lg-0">
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/about"><span>What's Jenkins Operator?</span></a>
|
<a class="nav-link" href="/kubernetes-operator/about"><span>What's the Jenkins Operator?</span></a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
||||||
|
|
|
||||||
|
|
@ -23,13 +23,13 @@ make go-dependencies
|
||||||
|
|
||||||
## Build and run with a minikube
|
## Build and run with a minikube
|
||||||
|
|
||||||
Build and run **jenkins-operator** locally:
|
Build and run **Jenkins Operator** locally:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
make minikube-run EXTRA_ARGS='--minikube --local'
|
make minikube-run EXTRA_ARGS='--minikube --local'
|
||||||
```
|
```
|
||||||
|
|
||||||
Once minikube and **jenkins-operator** are up and running, apply Jenkins custom resource:
|
Once minikube and **Jenkins Operator** are up and running, apply Jenkins custom resource:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
kubectl apply -f deploy/crds/jenkins_v1alpha2_jenkins_cr.yaml
|
kubectl apply -f deploy/crds/jenkins_v1alpha2_jenkins_cr.yaml
|
||||||
|
|
@ -45,7 +45,7 @@ You can also run the controller locally and make it listen to a remote Kubernete
|
||||||
make run NAMESPACE=default KUBECTL_CONTEXT=remote-k8s EXTRA_ARGS='--kubeconfig ~/.kube/config'
|
make run NAMESPACE=default KUBECTL_CONTEXT=remote-k8s EXTRA_ARGS='--kubeconfig ~/.kube/config'
|
||||||
```
|
```
|
||||||
|
|
||||||
Once minikube and **jenkins-operator** are up and running, apply Jenkins custom resource:
|
Once minikube and **Jenkins Operator** are up and running, apply Jenkins custom resource:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
kubectl --context remote-k8s --namespace default apply -f deploy/crds/jenkins_v1alpha2_jenkins_cr.yaml
|
kubectl --context remote-k8s --namespace default apply -f deploy/crds/jenkins_v1alpha2_jenkins_cr.yaml
|
||||||
|
|
@ -90,7 +90,7 @@ Build Docker image inside provided Linux container by:
|
||||||
$ make indocker
|
$ make indocker
|
||||||
```
|
```
|
||||||
|
|
||||||
Build **jenkins-operator** inside container using:
|
Build **Jenkins Operator** inside container using:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ make build
|
$ make build
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# How it works
|
# How it works
|
||||||
|
|
||||||
This document describes a high level overview how **jenkins-operator** works.
|
This document describes a high level overview how **Jenkins Operator** works.
|
||||||
|
|
||||||
1. [Architecture and design](#architecture-and-design)
|
1. [Architecture and design](#architecture-and-design)
|
||||||
2. [Operator State](#operator-state)
|
2. [Operator State](#operator-state)
|
||||||
|
|
@ -9,7 +9,7 @@ This document describes a high level overview how **jenkins-operator** works.
|
||||||
|
|
||||||
## Architecture and design
|
## Architecture and design
|
||||||
|
|
||||||
The **jenkins-operator** design incorporates the following concepts:
|
The **Jenkins Operator** design incorporates the following concepts:
|
||||||
- watches any changes of manifests and maintain the desired state according to deployed custom resource manifest
|
- 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
|
- implements the main reconciliation loop which consists of two smaller reconciliation loops - base and user
|
||||||
|
|
||||||
|
|
@ -48,5 +48,5 @@ Main assumptions are:
|
||||||
|
|
||||||
## Jenkins Docker Images
|
## Jenkins Docker Images
|
||||||
|
|
||||||
**jenkins-operator** is fully compatible with **jenkins:lts** docker image and does not introduce any hidden changes there.
|
**Jenkins Operator** is fully compatible with **jenkins:lts** 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.
|
If needed, the docker image can easily be changed in custom resource manifest as long as it supports standard Jenkins file system structure.
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
# Installation
|
# Installation
|
||||||
|
|
||||||
This document describes installation procedure for **jenkins-operator**.
|
This document describes installation procedure for **Jenkins Operator**.
|
||||||
All container images can be found at [virtuslab/jenkins-operator](https://hub.docker.com/r/virtuslab/jenkins-operator)
|
All container images can be found at [virtuslab/jenkins-operator](https://hub.docker.com/r/virtuslab/jenkins-operator)
|
||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
To run **jenkins-operator**, you will need:
|
To run **Jenkins Operator**, you will need:
|
||||||
- running Kubernetes cluster version 1.11+
|
- running Kubernetes cluster version 1.11+
|
||||||
- kubectl version 1.11+
|
- kubectl version 1.11+
|
||||||
|
|
||||||
|
|
@ -17,7 +17,7 @@ Install Jenkins Custom Resource Definition:
|
||||||
kubectl apply -f https://raw.githubusercontent.com/jenkinsci/kubernetes-operator/master/deploy/crds/jenkins_v1alpha2_jenkins_crd.yaml
|
kubectl apply -f https://raw.githubusercontent.com/jenkinsci/kubernetes-operator/master/deploy/crds/jenkins_v1alpha2_jenkins_crd.yaml
|
||||||
```
|
```
|
||||||
|
|
||||||
## Deploy jenkins-operator
|
## Deploy Jenkins Operator
|
||||||
|
|
||||||
Apply Service Account and RBAC roles:
|
Apply Service Account and RBAC roles:
|
||||||
|
|
||||||
|
|
@ -25,13 +25,13 @@ Apply Service Account and RBAC roles:
|
||||||
kubectl apply -f https://raw.githubusercontent.com/jenkinsci/kubernetes-operator/master/deploy/all-in-one-v1alpha2.yaml
|
kubectl apply -f https://raw.githubusercontent.com/jenkinsci/kubernetes-operator/master/deploy/all-in-one-v1alpha2.yaml
|
||||||
```
|
```
|
||||||
|
|
||||||
Watch **jenkins-operator** instance being created:
|
Watch **Jenkins Operator** instance being created:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
kubectl get pods -w
|
kubectl get pods -w
|
||||||
```
|
```
|
||||||
|
|
||||||
Now **jenkins-operator** should be up and running in `default` namespace.
|
Now **Jenkins Operator** should be up and running in `default` namespace.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,19 +1,19 @@
|
||||||
# Jenkins Security
|
# Jenkins Security
|
||||||
|
|
||||||
By default **jenkins-operator** performs an initial security hardening of Jenkins instance via groovy scripts to prevent any security gaps.
|
By default **Jenkins Operator** performs an initial security hardening of Jenkins instance via groovy scripts to prevent any security gaps.
|
||||||
|
|
||||||
## Jenkins Access Control
|
## Jenkins Access Control
|
||||||
|
|
||||||
Currently **jenkins-operator** generates a username and random password and stores them in a Kubernetes Secret.
|
Currently **Jenkins Operator** 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.
|
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 [getting-started#jenkins-customization](v0.1.1/getting-started.md#jenkins-customisation).
|
For more information take a look at [getting-started#jenkins-customization](v0.1.1/getting-started.md#jenkins-customisation).
|
||||||
|
|
||||||
Any change to Security Realm or Authorization requires that user called `jenkins-operator` must have admin rights
|
Any change to Security Realm or Authorization requires that user called `jenkins-operator` must have admin rights
|
||||||
because **jenkins-operator** calls Jenkins API.
|
because **Jenkins Operator** calls Jenkins API.
|
||||||
|
|
||||||
## Jenkins Hardening
|
## Jenkins Hardening
|
||||||
|
|
||||||
The list below describes all the default security setting configured by the **jenkins-operator**:
|
The list below describes all the default security setting configured by the **Jenkins Operator**:
|
||||||
- basic settings - use `Mode.EXCLUSIVE` - Jobs must specify that they want to run on master node
|
- basic settings - use `Mode.EXCLUSIVE` - Jobs must specify that they want to run on master node
|
||||||
- enable CSRF - Cross Site Request Forgery Protection is enabled
|
- enable CSRF - Cross Site Request Forgery Protection is enabled
|
||||||
- disable usage stats - Jenkins usage stats submitting is disabled
|
- disable usage stats - Jenkins usage stats submitting is disabled
|
||||||
|
|
@ -26,7 +26,7 @@ If you would like to dig a little bit into the code, take a look [here](../pkg/c
|
||||||
|
|
||||||
## Jenkins API
|
## Jenkins API
|
||||||
|
|
||||||
The **jenkins-operator** generates and configures Basic Authentication token for Jenkins go client and stores it in a Kubernetes Secret.
|
The **Jenkins Operator** generates and configures Basic Authentication token for Jenkins go client and stores it in a Kubernetes Secret.
|
||||||
|
|
||||||
## Kubernetes
|
## Kubernetes
|
||||||
|
|
||||||
|
|
@ -34,25 +34,25 @@ Kubernetes API permissions are limited by the following roles:
|
||||||
- [jenkins-operator role](../deploy/role.yaml)
|
- [jenkins-operator role](../deploy/role.yaml)
|
||||||
- [Jenkins Master role](../pkg/controller/jenkins/configuration/base/resources/rbac.go)
|
- [Jenkins Master role](../pkg/controller/jenkins/configuration/base/resources/rbac.go)
|
||||||
|
|
||||||
Since **jenkins-operator** must be able to grant permission for its' deployed Jenkins masters to spawn pods (the `Jenkins Master role` above),
|
Since **Jenkins Operator** must be able to grant permission for its' deployed Jenkins masters to spawn pods (the `Jenkins Master role` above),
|
||||||
the operator itself requires permission to create RBAC resources (the `jenkins-operator role` above).
|
the operator itself requires permission to create RBAC resources (the `jenkins-operator role` above).
|
||||||
Deployed this way, any subject which may create a Pod (including a Jenkins job) may
|
Deployed this way, any subject which may create a Pod (including a Jenkins job) may
|
||||||
assume the `jenkins-operator` role by using its' ServiceAccount, create RBAC rules, and thus escape its granted permissions.
|
assume the `jenkins-operator` role by using its' ServiceAccount, create RBAC rules, and thus escape its granted permissions.
|
||||||
Any namespace to which the `jenkins-operator` is deployed must be considered to implicitly grant all
|
Any namespace to which the `jenkins-operator` is deployed must be considered to implicitly grant all
|
||||||
possible permissions to any subject which can create a Pod in that namespace.
|
possible permissions to any subject which can create a Pod in that namespace.
|
||||||
|
|
||||||
To mitigate this issue **jenkins-operator** should be deployed in one namespace and the Jenkins CR should be created in separate namespace.
|
To mitigate this issue **Jenkins Operator** should be deployed in one namespace and the Jenkins CR should be created in separate namespace.
|
||||||
To achieve it change watch namespace in https://github.com/jenkinsci/kubernetes-operator/blob/master/deploy/operator.yaml#L25
|
To achieve it change watch namespace in https://github.com/jenkinsci/kubernetes-operator/blob/master/deploy/operator.yaml#L25
|
||||||
|
|
||||||
## Setup Jenkins Operator and Jenkins in separated namespaces
|
## Setup Jenkins Operator and Jenkins in separated namespaces
|
||||||
|
|
||||||
You need to create two namespaces, for example we'll call them **jenkins** for Jenkins and **jenkins-operator** for Jenkins Operator.
|
You need to create two namespaces, for example we'll call them **jenkins** for Jenkins and **Jenkins Operator** for Jenkins Operator.
|
||||||
```bash
|
```bash
|
||||||
$ kubectl create ns jenkins-operator
|
$ kubectl create ns jenkins-operator
|
||||||
$ kubectl create ns jenkins
|
$ kubectl create ns jenkins
|
||||||
```
|
```
|
||||||
|
|
||||||
Next, apply the RBAC manifests for **jenkins-operator** namespace
|
Next, apply the RBAC manifests for **Jenkins Operator** namespace
|
||||||
```bash
|
```bash
|
||||||
$ kubectl -n jenkins-operator apply -f deploy/service_account.yaml
|
$ kubectl -n jenkins-operator apply -f deploy/service_account.yaml
|
||||||
$ kubectl -n jenkins-operator apply -f deploy/role_binding.yaml
|
$ kubectl -n jenkins-operator apply -f deploy/role_binding.yaml
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Getting Started
|
# Getting Started
|
||||||
|
|
||||||
This document describes a getting started guide for **jenkins-operator** and an additional configuration.
|
This document describes a getting started guide for **Jenkins Operator** and an additional configuration.
|
||||||
|
|
||||||
1. [First Steps](#first-steps)
|
1. [First Steps](#first-steps)
|
||||||
2. [Deploy Jenkins](#deploy-jenkins)
|
2. [Deploy Jenkins](#deploy-jenkins)
|
||||||
|
|
@ -15,7 +15,7 @@ This document describes a getting started guide for **jenkins-operator** and an
|
||||||
## First Steps
|
## First Steps
|
||||||
|
|
||||||
Prepare your Kubernetes cluster and set up access.
|
Prepare your Kubernetes cluster and set up access.
|
||||||
Once you have running Kubernetes cluster you can focus on installing **jenkins-operator** according to the [Installation](../installation.md) guide.
|
Once you have running Kubernetes cluster you can focus on installing **Jenkins Operator** according to the [Installation](../installation.md) guide.
|
||||||
|
|
||||||
## Deploy Jenkins
|
## Deploy Jenkins
|
||||||
|
|
||||||
|
|
@ -213,7 +213,7 @@ spec:
|
||||||
repositoryUrl: https://github.com/jenkinsci/kubernetes-operator.git
|
repositoryUrl: https://github.com/jenkinsci/kubernetes-operator.git
|
||||||
```
|
```
|
||||||
|
|
||||||
**jenkins-operator** will automatically discover and configure all seed jobs.
|
**Jenkins Operator** will automatically discover and configure all seed jobs.
|
||||||
|
|
||||||
You can verify if deploy keys were successfully configured in Jenkins **Credentials** tab.
|
You can verify if deploy keys were successfully configured in Jenkins **Credentials** tab.
|
||||||
|
|
||||||
|
|
@ -327,9 +327,9 @@ stringData:
|
||||||
## Jenkins Customisation
|
## Jenkins Customisation
|
||||||
|
|
||||||
Jenkins can be customized using groovy scripts or configuration as code plugin. All custom configuration is stored in
|
Jenkins can be customized using groovy scripts or configuration as code plugin. All custom configuration is stored in
|
||||||
the **jenkins-operator-user-configuration-<cr_name>** ConfigMap which is automatically created by **jenkins-operator**.
|
the **jenkins-operator-user-configuration-<cr_name>** ConfigMap which is automatically created by **Jenkins Operator**.
|
||||||
|
|
||||||
**jenkins-operator** creates **jenkins-operator-user-configuration-<cr_name>** secret where user can store sensitive
|
**Jenkins Operator** creates **jenkins-operator-user-configuration-<cr_name>** secret where user can store sensitive
|
||||||
information used for custom configuration. If you have entry in secret named `PASSWORD` then you can use it in
|
information used for custom configuration. If you have entry in secret named `PASSWORD` then you can use it in
|
||||||
Configuration as Plugin as `adminAddress: "${PASSWORD}"`.
|
Configuration as Plugin as `adminAddress: "${PASSWORD}"`.
|
||||||
|
|
||||||
|
|
@ -402,7 +402,7 @@ spec:
|
||||||
version: 0.5.1
|
version: 0.5.1
|
||||||
```
|
```
|
||||||
|
|
||||||
Then **jenkins-operator** will automatically install plugins after Jenkins master pod restart.
|
Then **Jenkins Operator** will automatically install plugins after Jenkins master pod restart.
|
||||||
|
|
||||||
## Configure backup and restore
|
## Configure backup and restore
|
||||||
|
|
||||||
|
|
@ -520,7 +520,7 @@ data:
|
||||||
password: <base64-encoded-new-password>
|
password: <base64-encoded-new-password>
|
||||||
```
|
```
|
||||||
|
|
||||||
If needed **jenkins-operator** will restart Jenkins master pod and then you can login with the new user and password
|
If needed **Jenkins Operator** will restart Jenkins master pod and then you can login with the new user and password
|
||||||
credentials.
|
credentials.
|
||||||
|
|
||||||
## Override default Jenkins container command
|
## Override default Jenkins container command
|
||||||
|
|
@ -549,7 +549,7 @@ command:
|
||||||
|
|
||||||
## Debugging
|
## Debugging
|
||||||
|
|
||||||
Turn on debug in **jenkins-operator** deployment:
|
Turn on debug in **Jenkins Operator** deployment:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sed -i 's|\(args:\).*|\1\ ["--debug"\]|' deploy/operator.yaml
|
sed -i 's|\(args:\).*|\1\ ["--debug"\]|' deploy/operator.yaml
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Getting Started
|
# Getting Started
|
||||||
|
|
||||||
This document describes a getting started guide for **jenkins-operator** and an additional configuration.
|
This document describes a getting started guide for **Jenkins Operator** and an additional configuration.
|
||||||
|
|
||||||
1. [First Steps](#first-steps)
|
1. [First Steps](#first-steps)
|
||||||
2. [Deploy Jenkins](#deploy-jenkins)
|
2. [Deploy Jenkins](#deploy-jenkins)
|
||||||
|
|
@ -17,7 +17,7 @@ This document describes a getting started guide for **jenkins-operator** and an
|
||||||
## First Steps
|
## First Steps
|
||||||
|
|
||||||
Prepare your Kubernetes cluster and set up access.
|
Prepare your Kubernetes cluster and set up access.
|
||||||
Once you have running Kubernetes cluster you can focus on installing **jenkins-operator** according to the [Installation](../installation.md) guide.
|
Once you have running Kubernetes cluster you can focus on installing **Jenkins Operator** according to the [Installation](../installation.md) guide.
|
||||||
|
|
||||||
## Deploy Jenkins
|
## Deploy Jenkins
|
||||||
|
|
||||||
|
|
@ -215,7 +215,7 @@ spec:
|
||||||
repositoryUrl: https://github.com/jenkinsci/kubernetes-operator.git
|
repositoryUrl: https://github.com/jenkinsci/kubernetes-operator.git
|
||||||
```
|
```
|
||||||
|
|
||||||
**jenkins-operator** will automatically discover and configure all seed jobs.
|
**Jenkins Operator** will automatically discover and configure all seed jobs.
|
||||||
|
|
||||||
You can verify if deploy keys were successfully configured in Jenkins **Credentials** tab.
|
You can verify if deploy keys were successfully configured in Jenkins **Credentials** tab.
|
||||||
|
|
||||||
|
|
@ -456,7 +456,7 @@ data:
|
||||||
* *.groovy is Groovy script configuration
|
* *.groovy is Groovy script configuration
|
||||||
* *.yaml is configuration as code
|
* *.yaml is configuration as code
|
||||||
|
|
||||||
If you want to correct your configuration you can edit it while **jenkins-operator** is running.
|
If you want to correct your configuration you can edit it while **Jenkins Operator** is running.
|
||||||
Jenkins will reconcile and apply new configuration.
|
Jenkins will reconcile and apply new configuration.
|
||||||
|
|
||||||
### Using secrets inside Groovy script
|
### Using secrets inside Groovy script
|
||||||
|
|
@ -547,7 +547,7 @@ spec:
|
||||||
version: 0.5.1
|
version: 0.5.1
|
||||||
```
|
```
|
||||||
|
|
||||||
Then **jenkins-operator** will automatically install plugins after Jenkins master pod restart.
|
Then **Jenkins Operator** will automatically install plugins after Jenkins master pod restart.
|
||||||
|
|
||||||
## Configure backup and restore
|
## Configure backup and restore
|
||||||
|
|
||||||
|
|
@ -665,7 +665,7 @@ data:
|
||||||
password: <base64-encoded-new-password>
|
password: <base64-encoded-new-password>
|
||||||
```
|
```
|
||||||
|
|
||||||
If needed **jenkins-operator** will restart Jenkins master pod and then you can login with the new user and password
|
If needed **Jenkins Operator** will restart Jenkins master pod and then you can login with the new user and password
|
||||||
credentials.
|
credentials.
|
||||||
|
|
||||||
## Override default Jenkins container command
|
## Override default Jenkins container command
|
||||||
|
|
@ -694,7 +694,7 @@ command:
|
||||||
|
|
||||||
## Debugging
|
## Debugging
|
||||||
|
|
||||||
Turn on debug in **jenkins-operator** deployment:
|
Turn on debug in **Jenkins Operator** deployment:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sed -i 's|\(args:\).*|\1\ ["--debug"\]|' deploy/operator.yaml
|
sed -i 's|\(args:\).*|\1\ ["--debug"\]|' deploy/operator.yaml
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ linkTitle = "Jenkins Kubernetes Operator"
|
||||||
{{% /blocks/section %}}
|
{{% /blocks/section %}}
|
||||||
|
|
||||||
{{% blocks/lead color="primary" %}}
|
{{% blocks/lead color="primary" %}}
|
||||||
Jenkins operator is a Kubernetes native operator which fully manages Jenkins on Kubernetes.<br /> It was built with immutability and declarative configuration as code in mind.<br /> Here are solved problems.
|
Jenkins operator is a Kubernetes native operator which fully manages Jenkins on Kubernetes.<br /> It was built with immutability and declarative configuration as code in mind.<br />
|
||||||
{{% /blocks/lead %}}
|
{{% /blocks/lead %}}
|
||||||
|
|
||||||
{{< blocks/section color="dark" >}}
|
{{< blocks/section color="dark" >}}
|
||||||
|
|
@ -51,7 +51,7 @@ Improve user experience by informing what has been done
|
||||||
{{% /blocks/feature %}}
|
{{% /blocks/feature %}}
|
||||||
|
|
||||||
{{% blocks/feature icon="fas fa-file-archive" title="Backup and restore for jobs history" %}}
|
{{% blocks/feature icon="fas fa-file-archive" title="Backup and restore for jobs history" %}}
|
||||||
Prevent job history loss
|
Prevent loss of job history
|
||||||
{{% /blocks/feature %}}
|
{{% /blocks/feature %}}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ menu:
|
||||||
|
|
||||||
{{% blocks/lead color="primary" %}}
|
{{% blocks/lead color="primary" %}}
|
||||||
<div style="font-size: 110%;" class="col-12">
|
<div style="font-size: 110%;" class="col-12">
|
||||||
jenkins-operator is a Kubernetes native operator which fully manages Jenkins on Kubernetes. <br />It was built with immutability and declarative configuration as code in mind.
|
Jenkins Operator is a Kubernetes native operator which fully manages Jenkins on Kubernetes. <br />It was built with immutability and declarative configuration as code in mind.
|
||||||
</div>
|
</div>
|
||||||
{{% /blocks/lead %}}
|
{{% /blocks/lead %}}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -32,13 +32,13 @@ make go-dependencies
|
||||||
|
|
||||||
## Build and run with a minikube
|
## Build and run with a minikube
|
||||||
|
|
||||||
Build and run **jenkins-operator** locally:
|
Build and run **Jenkins Operator** locally:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
make minikube-run EXTRA_ARGS='--minikube --local'
|
make minikube-run EXTRA_ARGS='--minikube --local'
|
||||||
```
|
```
|
||||||
|
|
||||||
Once minikube and **jenkins-operator** are up and running, apply Jenkins custom resource:
|
Once minikube and **Jenkins Operator** are up and running, apply Jenkins custom resource:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
kubectl apply -f deploy/crds/jenkins_v1alpha2_jenkins_cr.yaml
|
kubectl apply -f deploy/crds/jenkins_v1alpha2_jenkins_cr.yaml
|
||||||
|
|
@ -54,7 +54,7 @@ You can also run the controller locally and make it listen to a remote Kubernete
|
||||||
make run NAMESPACE=default KUBECTL_CONTEXT=remote-k8s EXTRA_ARGS='--kubeconfig ~/.kube/config'
|
make run NAMESPACE=default KUBECTL_CONTEXT=remote-k8s EXTRA_ARGS='--kubeconfig ~/.kube/config'
|
||||||
```
|
```
|
||||||
|
|
||||||
Once minikube and **jenkins-operator** are up and running, apply Jenkins custom resource:
|
Once minikube and **Jenkins Operator** are up and running, apply Jenkins custom resource:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
kubectl --context remote-k8s --namespace default apply -f deploy/crds/jenkins_v1alpha2_jenkins_cr.yaml
|
kubectl --context remote-k8s --namespace default apply -f deploy/crds/jenkins_v1alpha2_jenkins_cr.yaml
|
||||||
|
|
@ -99,7 +99,7 @@ Build Docker image inside provided Linux container by:
|
||||||
$ make indocker
|
$ make indocker
|
||||||
```
|
```
|
||||||
|
|
||||||
Build **jenkins-operator** inside container using:
|
Build **Jenkins Operator** inside container using:
|
||||||
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|
|
||||||
|
|
@ -8,10 +8,10 @@ description: >
|
||||||
---
|
---
|
||||||
|
|
||||||
{{% pageinfo %}}
|
{{% pageinfo %}}
|
||||||
This document describes a getting started guide for **jenkins-operator**
|
This document describes a getting started guide for **Jenkins Operator**
|
||||||
{{% /pageinfo %}}
|
{{% /pageinfo %}}
|
||||||
|
|
||||||
## First Steps
|
## First Steps
|
||||||
|
|
||||||
Prepare your Kubernetes cluster and set up access.
|
Prepare your Kubernetes cluster and set up access.
|
||||||
Once you have running Kubernetes cluster you can focus on installing **jenkins-operator** according to the [Installation](/docs/installation/) guide.
|
Once you have running Kubernetes cluster you can focus on installing **Jenkins Operator** according to the [Installation](/docs/installation/) guide.
|
||||||
|
|
|
||||||
|
|
@ -8,10 +8,10 @@ description: >
|
||||||
---
|
---
|
||||||
|
|
||||||
{{% pageinfo %}}
|
{{% pageinfo %}}
|
||||||
This document describes a getting started guide for **jenkins-operator** `v0.1.1` and an additional configuration.
|
This document describes a getting started guide for **Jenkins Operator** `v0.1.1` and an additional configuration.
|
||||||
{{% /pageinfo %}}
|
{{% /pageinfo %}}
|
||||||
|
|
||||||
## First Steps
|
## First Steps
|
||||||
|
|
||||||
Prepare your Kubernetes cluster and set up access.
|
Prepare your Kubernetes cluster and set up access.
|
||||||
Once you have running Kubernetes cluster you can focus on installing **jenkins-operator** according to the [Installation](/docs/installation/) guide.
|
Once you have running Kubernetes cluster you can focus on installing **Jenkins Operator** according to the [Installation](/docs/installation/) guide.
|
||||||
|
|
|
||||||
|
|
@ -118,7 +118,7 @@ spec:
|
||||||
repositoryUrl: https://github.com/jenkinsci/kubernetes-operator.git
|
repositoryUrl: https://github.com/jenkinsci/kubernetes-operator.git
|
||||||
```
|
```
|
||||||
|
|
||||||
**jenkins-operator** will automatically discover and configure all seed jobs.
|
**Jenkins Operator** will automatically discover and configure all seed jobs.
|
||||||
|
|
||||||
You can verify if deploy keys were successfully configured in Jenkins **Credentials** tab.
|
You can verify if deploy keys were successfully configured in Jenkins **Credentials** tab.
|
||||||
|
|
||||||
|
|
@ -247,7 +247,7 @@ data:
|
||||||
password: <base64-encoded-new-password>
|
password: <base64-encoded-new-password>
|
||||||
```
|
```
|
||||||
|
|
||||||
If needed **jenkins-operator** will restart Jenkins master pod and then you can login with the new user and password
|
If needed **Jenkins Operator** will restart Jenkins master pod and then you can login with the new user and password
|
||||||
credentials.
|
credentials.
|
||||||
|
|
||||||
## Override default Jenkins container command
|
## Override default Jenkins container command
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ linkTitle: "Configure backup and restore"
|
||||||
weight: 10
|
weight: 10
|
||||||
date: 2019-08-05
|
date: 2019-08-05
|
||||||
description: >
|
description: >
|
||||||
Prevent job history loss
|
Prevent loss of job history
|
||||||
---
|
---
|
||||||
|
|
||||||
Backup and restore is done by container sidecar.
|
Backup and restore is done by container sidecar.
|
||||||
|
|
|
||||||
|
|
@ -8,9 +8,9 @@ description: >
|
||||||
---
|
---
|
||||||
|
|
||||||
Jenkins can be customized using groovy scripts or configuration as code plugin. All custom configuration is stored in
|
Jenkins can be customized using groovy scripts or configuration as code plugin. All custom configuration is stored in
|
||||||
the **jenkins-operator-user-configuration-<cr_name>** ConfigMap which is automatically created by **jenkins-operator**.
|
the **jenkins-operator-user-configuration-<cr_name>** ConfigMap which is automatically created by **Jenkins Operator**.
|
||||||
|
|
||||||
**jenkins-operator** creates **jenkins-operator-user-configuration-<cr_name>** secret where user can store sensitive
|
**Jenkins Operator** creates **jenkins-operator-user-configuration-<cr_name>** secret where user can store sensitive
|
||||||
information used for custom configuration. If you have entry in secret named `PASSWORD` then you can use it in
|
information used for custom configuration. If you have entry in secret named `PASSWORD` then you can use it in
|
||||||
Configuration as Plugin as `adminAddress: "${PASSWORD}"`.
|
Configuration as Plugin as `adminAddress: "${PASSWORD}"`.
|
||||||
|
|
||||||
|
|
@ -83,7 +83,7 @@ spec:
|
||||||
version: 0.5.1
|
version: 0.5.1
|
||||||
```
|
```
|
||||||
|
|
||||||
Under `spec.master.basePlugins` you can find plugins for valid **jenkins-operator** work:
|
Under `spec.master.basePlugins` you can find plugins for valid **Jenkins Operator** work:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
apiVersion: jenkins.io/v1alpha2
|
apiVersion: jenkins.io/v1alpha2
|
||||||
|
|
@ -113,4 +113,4 @@ spec:
|
||||||
|
|
||||||
You can change version of them.
|
You can change version of them.
|
||||||
|
|
||||||
Then **jenkins-operator** will automatically install plugins after Jenkins master pod restart.
|
Then **Jenkins Operator** will automatically install plugins after Jenkins master pod restart.
|
||||||
|
|
@ -8,7 +8,7 @@ description: >
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
Turn on debug in **jenkins-operator** deployment:
|
Turn on debug in **Jenkins Operator** deployment:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sed -i 's|\(args:\).*|\1\ ["--debug"\]|' deploy/operator.yaml
|
sed -i 's|\(args:\).*|\1\ ["--debug"\]|' deploy/operator.yaml
|
||||||
|
|
|
||||||
|
|
@ -8,10 +8,10 @@ description: >
|
||||||
---
|
---
|
||||||
|
|
||||||
{{% pageinfo %}}
|
{{% pageinfo %}}
|
||||||
This document describes a getting started guide for **jenkins-operator** `v0.2.0` and an additional configuration.
|
This document describes a getting started guide for **Jenkins Operator** `v0.2.0` and an additional configuration.
|
||||||
{{% /pageinfo %}}
|
{{% /pageinfo %}}
|
||||||
|
|
||||||
## First Steps
|
## First Steps
|
||||||
|
|
||||||
Prepare your Kubernetes cluster and set up access.
|
Prepare your Kubernetes cluster and set up access.
|
||||||
Once you have running Kubernetes cluster you can focus on installing **jenkins-operator** according to the [Installation](/docs/installation/) guide.
|
Once you have running Kubernetes cluster you can focus on installing **Jenkins Operator** according to the [Installation](/docs/installation/) guide.
|
||||||
|
|
|
||||||
|
|
@ -120,7 +120,7 @@ spec:
|
||||||
repositoryUrl: https://github.com/jenkinsci/kubernetes-operator.git
|
repositoryUrl: https://github.com/jenkinsci/kubernetes-operator.git
|
||||||
```
|
```
|
||||||
|
|
||||||
**jenkins-operator** will automatically discover and configure all seed jobs.
|
**Jenkins Operator** will automatically discover and configure all seed jobs.
|
||||||
|
|
||||||
You can verify if deploy keys were successfully configured in Jenkins **Credentials** tab.
|
You can verify if deploy keys were successfully configured in Jenkins **Credentials** tab.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ linkTitle: "Configure backup and restore"
|
||||||
weight: 10
|
weight: 10
|
||||||
date: 2019-08-05
|
date: 2019-08-05
|
||||||
description: >
|
description: >
|
||||||
Prevent job history loss
|
Prevent loss of job history
|
||||||
---
|
---
|
||||||
|
|
||||||
Backup and restore is done by container sidecar.
|
Backup and restore is done by container sidecar.
|
||||||
|
|
|
||||||
|
|
@ -62,7 +62,7 @@ data:
|
||||||
* *.groovy is Groovy script configuration
|
* *.groovy is Groovy script configuration
|
||||||
* *.yaml is configuration as code
|
* *.yaml is configuration as code
|
||||||
|
|
||||||
If you want to correct your configuration you can edit it while **jenkins-operator** is running.
|
If you want to correct your configuration you can edit it while **Jenkins Operator** is running.
|
||||||
Jenkins will reconcile and apply new configuration.
|
Jenkins will reconcile and apply new configuration.
|
||||||
|
|
||||||
### Using secrets inside Groovy script
|
### Using secrets inside Groovy script
|
||||||
|
|
@ -153,7 +153,7 @@ spec:
|
||||||
version: 0.5.1
|
version: 0.5.1
|
||||||
```
|
```
|
||||||
|
|
||||||
Under `spec.master.basePlugins` you can find plugins for valid **jenkins-operator** work:
|
Under `spec.master.basePlugins` you can find plugins for valid **Jenkins Operator** work:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
apiVersion: jenkins.io/v1alpha2
|
apiVersion: jenkins.io/v1alpha2
|
||||||
|
|
@ -183,4 +183,4 @@ spec:
|
||||||
|
|
||||||
You can change version of them.
|
You can change version of them.
|
||||||
|
|
||||||
Then **jenkins-operator** will automatically install plugins after Jenkins master pod restart.
|
Then **Jenkins Operator** will automatically install plugins after Jenkins master pod restart.
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ description: >
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
Turn on debug in **jenkins-operator** deployment:
|
Turn on debug in **Jenkins Operator** deployment:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sed -i 's|\(args:\).*|\1\ ["--debug"\]|' deploy/operator.yaml
|
sed -i 's|\(args:\).*|\1\ ["--debug"\]|' deploy/operator.yaml
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ Now seed jobs are not built by master executors, but by dedicated agent deployed
|
||||||
### Apply Jenkins configuration via Groovy scripts instead of Jenkins jobs
|
### Apply Jenkins configuration via Groovy scripts instead of Jenkins jobs
|
||||||
We have removed hardcoded configuration by **Jenkins** jobs.
|
We have removed hardcoded configuration by **Jenkins** jobs.
|
||||||
|
|
||||||
In `v0.1.1` **jenkins-operator** configuration was stored in `jenkins-operator-user-configuration-<cr_name>`
|
In `v0.1.1` **Jenkins Operator** configuration was stored in `jenkins-operator-user-configuration-<cr_name>`
|
||||||
If you want to use `v0.2.0` or newer you must simply write refer to old ConfigMap by modifying CR, for example:
|
If you want to use `v0.2.0` or newer you must simply write refer to old ConfigMap by modifying CR, for example:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ description: >
|
||||||
Jenkins Operator fundamentals
|
Jenkins Operator fundamentals
|
||||||
---
|
---
|
||||||
|
|
||||||
The **jenkins-operator** design incorporates the following concepts:
|
The **Jenkins Operator** design incorporates the following concepts:
|
||||||
- watches any changes of manifests and maintain the desired state according to deployed custom resource manifest
|
- 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
|
- implements the main reconciliation loop which consists of two smaller reconciliation loops - base and user
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,5 +7,5 @@ description: >
|
||||||
Jenkins default image details
|
Jenkins default image details
|
||||||
---
|
---
|
||||||
|
|
||||||
**jenkins-operator** is fully compatible with **jenkins:lts** docker image and does not introduce any hidden changes there.
|
**Jenkins Operator** is fully compatible with **jenkins:lts** 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.
|
If needed, the docker image can easily be changed in custom resource manifest as long as it supports standard Jenkins file system structure.
|
||||||
|
|
@ -13,7 +13,7 @@ This document describes installation procedure for jenkins-operator. All contain
|
||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
To run **jenkins-operator**, you will need:
|
To run **Jenkins Operator**, you will need:
|
||||||
|
|
||||||
- running Kubernetes cluster version 1.11+
|
- running Kubernetes cluster version 1.11+
|
||||||
|
|
||||||
|
|
@ -27,7 +27,7 @@ Install Jenkins Custom Resource Definition:
|
||||||
kubectl apply -f https://raw.githubusercontent.com/jenkinsci/kubernetes-operator/master/deploy/crds/jenkins_v1alpha2_jenkins_crd.yaml
|
kubectl apply -f https://raw.githubusercontent.com/jenkinsci/kubernetes-operator/master/deploy/crds/jenkins_v1alpha2_jenkins_crd.yaml
|
||||||
```
|
```
|
||||||
|
|
||||||
## Deploy jenkins-operator
|
## Deploy Jenkins Operator
|
||||||
|
|
||||||
Apply Service Account and RBAC roles:
|
Apply Service Account and RBAC roles:
|
||||||
|
|
||||||
|
|
@ -35,10 +35,10 @@ Apply Service Account and RBAC roles:
|
||||||
kubectl apply -f https://raw.githubusercontent.com/jenkinsci/kubernetes-operator/master/deploy/all-in-one-v1alpha2.yaml
|
kubectl apply -f https://raw.githubusercontent.com/jenkinsci/kubernetes-operator/master/deploy/all-in-one-v1alpha2.yaml
|
||||||
```
|
```
|
||||||
|
|
||||||
Watch **jenkins-operator** instance being created:
|
Watch **Jenkins Operator** instance being created:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
kubectl get pods -w
|
kubectl get pods -w
|
||||||
```
|
```
|
||||||
|
|
||||||
Now **jenkins-operator** should be up and running in `default` namespace.
|
Now **Jenkins Operator** should be up and running in `default` namespace.
|
||||||
|
|
|
||||||
|
|
@ -7,20 +7,20 @@ description: >
|
||||||
Jenkins security and hardening out of the box
|
Jenkins security and hardening out of the box
|
||||||
---
|
---
|
||||||
|
|
||||||
By default **jenkins-operator** performs an initial security hardening of Jenkins instance via groovy scripts to prevent any security gaps.
|
By default **Jenkins Operator** performs an initial security hardening of Jenkins instance via groovy scripts to prevent any security gaps.
|
||||||
|
|
||||||
## Jenkins Access Control
|
## Jenkins Access Control
|
||||||
|
|
||||||
Currently **jenkins-operator** generates a username and random password and stores them in a Kubernetes Secret.
|
Currently **Jenkins Operator** 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.
|
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 [getting-started#jenkins-customization](v0.1.1/getting-started.md#jenkins-customisation).
|
For more information take a look at [getting-started#jenkins-customization](v0.1.1/getting-started.md#jenkins-customisation).
|
||||||
|
|
||||||
Any change to Security Realm or Authorization requires that user called `jenkins-operator` must have admin rights
|
Any change to Security Realm or Authorization requires that user called `jenkins-operator` must have admin rights
|
||||||
because **jenkins-operator** calls Jenkins API.
|
because **Jenkins Operator** calls Jenkins API.
|
||||||
|
|
||||||
## Jenkins Hardening
|
## Jenkins Hardening
|
||||||
|
|
||||||
The list below describes all the default security setting configured by the **jenkins-operator**:
|
The list below describes all the default security setting configured by the **Jenkins Operator**:
|
||||||
- basic settings - use `Mode.EXCLUSIVE` - Jobs must specify that they want to run on master node
|
- basic settings - use `Mode.EXCLUSIVE` - Jobs must specify that they want to run on master node
|
||||||
- enable CSRF - Cross Site Request Forgery Protection is enabled
|
- enable CSRF - Cross Site Request Forgery Protection is enabled
|
||||||
- disable usage stats - Jenkins usage stats submitting is disabled
|
- disable usage stats - Jenkins usage stats submitting is disabled
|
||||||
|
|
@ -33,7 +33,7 @@ If you would like to dig a little bit into the code, take a look [here](../pkg/c
|
||||||
|
|
||||||
## Jenkins API
|
## Jenkins API
|
||||||
|
|
||||||
The **jenkins-operator** generates and configures Basic Authentication token for Jenkins go client and stores it in a Kubernetes Secret.
|
The **Jenkins Operator** generates and configures Basic Authentication token for Jenkins go client and stores it in a Kubernetes Secret.
|
||||||
|
|
||||||
## Kubernetes
|
## Kubernetes
|
||||||
|
|
||||||
|
|
@ -41,25 +41,25 @@ Kubernetes API permissions are limited by the following roles:
|
||||||
- [jenkins-operator role](../deploy/role.yaml)
|
- [jenkins-operator role](../deploy/role.yaml)
|
||||||
- [Jenkins Master role](../pkg/controller/jenkins/configuration/base/resources/rbac.go)
|
- [Jenkins Master role](../pkg/controller/jenkins/configuration/base/resources/rbac.go)
|
||||||
|
|
||||||
Since **jenkins-operator** must be able to grant permission for its' deployed Jenkins masters to spawn pods (the `Jenkins Master role` above),
|
Since **Jenkins Operator** must be able to grant permission for its' deployed Jenkins masters to spawn pods (the `Jenkins Master role` above),
|
||||||
the operator itself requires permission to create RBAC resources (the `jenkins-operator role` above).
|
the operator itself requires permission to create RBAC resources (the `jenkins-operator role` above).
|
||||||
Deployed this way, any subject which may create a Pod (including a Jenkins job) may
|
Deployed this way, any subject which may create a Pod (including a Jenkins job) may
|
||||||
assume the `jenkins-operator` role by using its' ServiceAccount, create RBAC rules, and thus escape its granted permissions.
|
assume the `jenkins-operator` role by using its' ServiceAccount, create RBAC rules, and thus escape its granted permissions.
|
||||||
Any namespace to which the `jenkins-operator` is deployed must be considered to implicitly grant all
|
Any namespace to which the `jenkins-operator` is deployed must be considered to implicitly grant all
|
||||||
possible permissions to any subject which can create a Pod in that namespace.
|
possible permissions to any subject which can create a Pod in that namespace.
|
||||||
|
|
||||||
To mitigate this issue **jenkins-operator** should be deployed in one namespace and the Jenkins CR should be created in separate namespace.
|
To mitigate this issue **Jenkins Operator** should be deployed in one namespace and the Jenkins CR should be created in separate namespace.
|
||||||
To achieve it change watch namespace in https://github.com/jenkinsci/kubernetes-operator/blob/master/deploy/operator.yaml#L25
|
To achieve it change watch namespace in https://github.com/jenkinsci/kubernetes-operator/blob/master/deploy/operator.yaml#L25
|
||||||
|
|
||||||
## Setup Jenkins Operator and Jenkins in separated namespaces
|
## Setup Jenkins Operator and Jenkins in separated namespaces
|
||||||
|
|
||||||
You need to create two namespaces, for example we'll call them **jenkins** for Jenkins and **jenkins-operator** for Jenkins Operator.
|
You need to create two namespaces, for example we'll call them **jenkins** for Jenkins and **Jenkins Operator** for Jenkins Operator.
|
||||||
```bash
|
```bash
|
||||||
$ kubectl create ns jenkins-operator
|
$ kubectl create ns jenkins-operator
|
||||||
$ kubectl create ns jenkins
|
$ kubectl create ns jenkins
|
||||||
```
|
```
|
||||||
|
|
||||||
Next, apply the RBAC manifests for **jenkins-operator** namespace
|
Next, apply the RBAC manifests for **Jenkins Operator** namespace
|
||||||
```bash
|
```bash
|
||||||
$ kubectl -n jenkins-operator apply -f deploy/service_account.yaml
|
$ kubectl -n jenkins-operator apply -f deploy/service_account.yaml
|
||||||
$ kubectl -n jenkins-operator apply -f deploy/role_binding.yaml
|
$ kubectl -n jenkins-operator apply -f deploy/role_binding.yaml
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
|
||||||
<ul class="navbar-nav mt-2 mt-lg-0">
|
<ul class="navbar-nav mt-2 mt-lg-0">
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/about"><span>What's Jenkins Operator?</span></a>
|
<a class="nav-link" href="/kubernetes-operator/about"><span>What's the Jenkins Operator?</span></a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
<li class="nav-item mr-4 mb-2 mb-lg-0">
|
||||||
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
<a class="nav-link" href="/kubernetes-operator/docs"><span>Documentation</span></a>
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,7 @@ As well as our example site, there's a growing number of projects using Docsy fo
|
||||||
|
|
||||||
|
|
||||||
{{% blocks/feature icon="fab fa-github" title="Contributions welcome!" url="https://github.com/google/docsy" %}}
|
{{% blocks/feature icon="fab fa-github" title="Contributions welcome!" url="https://github.com/google/docsy" %}}
|
||||||
We do a [Pull Request](https://github.com/google/docsy/pulls) contributions workflow on **GitHub**. New users are always welcome!
|
We develop with **GitHub**. A new [Pull Requests](https://github.com/jenkinsci/kubernetes-operator/pulls) are more than welcome!
|
||||||
{{% /blocks/feature %}}
|
{{% /blocks/feature %}}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue