Files
kubernetes-operator/docs/docs/getting-started/latest/configuration/index.html
T
2019-10-25 11:28:47 +02:00

851 lines
29 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!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.55.6" />
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
<link rel="shortcut icon" href="/favicons/favicon.ico" >
<link rel="apple-touch-icon" href="/kubernetes-operator/favicons/apple-touch-icon-180x180.png" sizes="180x180">
<link rel="icon" type="image/png" href="/kubernetes-operator/favicons/favicon-16x16.png" sizes="16x16">
<link rel="icon" type="image/png" href="/kubernetes-operator/favicons/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="/kubernetes-operator/favicons/android-36x36.png" sizes="36x36">
<link rel="icon" type="image/png" href="/kubernetes-operator/favicons/android-48x48.png" sizes="48x48">
<link rel="icon" type="image/png" href="/kubernetes-operator/favicons/android-72x72.png" sizes="72x72">
<link rel="icon" type="image/png" href="/kubernetes-operator/favicons/android-96x196.png" sizes="96x196">
<link rel="icon" type="image/png" href="/kubernetes-operator/favicons/android-144x144.png" sizes="144x144">
<link rel="icon" type="image/png" href="/kubernetes-operator/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="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/configuration/" />
<meta property="article:published_time" content="2019-08-05T00:00:00&#43;00:00"/>
<meta property="article:modified_time" content="2019-08-05T00:00:00&#43;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="725">
<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="/kubernetes-operator/scss/main.min.76f9ae686f932b9aa67346ef8543e8a6b0302cb67aa119d21b053c31bc3f2448.css" as="style">
<link href="/kubernetes-operator/scss/main.min.76f9ae686f932b9aa67346ef8543e8a6b0302cb67aa119d21b053c31bc3f2448.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="/kubernetes-operator/">
<img style="width: 32px; height: 32px; margin-right: 7.5px;" src="/kubernetes-operator/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="/kubernetes-operator/about"><span>What's the Jenkins Operator?</span></a>
</li>
<li class="nav-item mr-4 mb-2 mb-lg-0">
<a class="nav-link" href="/kubernetes-operator/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="/kubernetes-operator/docs/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Documentation</a>
</li>
<ul>
<li class="collapse show" id="kubernetes-operator-docs">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/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="kubernetes-operator-docs-installation">
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/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="kubernetes-operator-docs-how-it-works">
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-how-it-works-architecture-and-design" href="/kubernetes-operator/docs/how-it-works/architecture-and-design/">Architecture and design</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-how-it-works-jenkins-docker-images" href="/kubernetes-operator/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="/kubernetes-operator/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="kubernetes-operator-docs-getting-started">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/getting-started/latest/" class="align-left pl-0 pr-2 active td-sidebar-link td-sidebar-link__section">Latest (v0.2.x)</a>
</li>
<ul>
<li class="collapse show" id="kubernetes-operator-docs-getting-started-latest">
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-deploy-jenkins" href="/kubernetes-operator/docs/getting-started/latest/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page active" id="m-kubernetes-operator-docs-getting-started-latest-configuration" href="/kubernetes-operator/docs/getting-started/latest/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-customization" href="/kubernetes-operator/docs/getting-started/latest/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-aks" href="/kubernetes-operator/docs/getting-started/latest/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-configure-backup-and-restore" href="/kubernetes-operator/docs/getting-started/latest/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-custom-backup-and-restore" href="/kubernetes-operator/docs/getting-started/latest/custom-backup-and-restore/">Custom Backup and Restore Providers</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-migration" href="/kubernetes-operator/docs/getting-started/latest/migration/">Migration from v0.1.x</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-diagnostics" href="/kubernetes-operator/docs/getting-started/latest/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-scheme" href="/kubernetes-operator/docs/getting-started/latest/scheme/">Scheme</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/getting-started/v0.1.x/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.1.x</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-getting-started-v0-1-x">
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-deploy-jenkins" href="/kubernetes-operator/docs/getting-started/v0.1.x/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-configuration" href="/kubernetes-operator/docs/getting-started/v0.1.x/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-customization" href="/kubernetes-operator/docs/getting-started/v0.1.x/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-aks" href="/kubernetes-operator/docs/getting-started/v0.1.x/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-configure-backup-and-restore" href="/kubernetes-operator/docs/getting-started/v0.1.x/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-diagnostics" href="/kubernetes-operator/docs/getting-started/v0.1.x/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-scheme" href="/kubernetes-operator/docs/getting-started/v0.1.x/scheme/">Scheme</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-migration-guide-v1alpha1-to-v1alpha2" href="/kubernetes-operator/docs/getting-started/v0.1.x/migration-guide-v1alpha1-to-v1alpha2/">Migration guide from v1alpha1 to v1alpha2</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="/kubernetes-operator/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="kubernetes-operator-docs-security">
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/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="kubernetes-operator-docs-developer-guide">
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-developer-guide-tools" href="/kubernetes-operator/docs/developer-guide/tools/">Tools</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
</nav>
</div>
</div>
<div class="d-none d-xl-block col-xl-2 td-toc d-print-none">
<div class="td-page-meta ml-2 pb-1 pt-2 mb-0">
<a href="https://github.com/jenkinsci/kubernetes-operator/edit/master/website/content/en/docs/Getting%20Started/latest/configuration.md" target="_blank"><i class="fa fa-edit fa-fw"></i> Edit this page</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new?title=Configuration" target="_blank"><i class="fab fa-github fa-fw"></i> Create documentation issue</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new" target="_blank"><i class="fas fa-tasks fa-fw"></i> Create project issue</a>
</div>
<nav id="TableOfContents">
<ul>
<li>
<ul>
<li><a href="#configure-seed-jobs-and-pipelines">Configure Seed Jobs and Pipelines</a></li>
<li><a href="#prepare-job-definitions-and-pipelines">Prepare job definitions and pipelines</a></li>
<li><a href="#configure-seed-jobs">Configure Seed Jobs</a>
<ul>
<li><a href="#ssh-authentication">SSH authentication</a>
<ul>
<li><a href="#generate-ssh-keys">Generate SSH Keys</a></li>
<li><a href="#public-key">Public key</a></li>
<li><a href="#configure-ssh-authentication">Configure SSH authentication</a></li>
</ul></li>
<li><a href="#username-password-authentication">Username &amp; password authentication</a></li>
</ul></li>
<li><a href="#http-proxy-for-downloading-plugins">HTTP Proxy for downloading plugins</a></li>
<li><a href="#pulling-docker-images-from-private-repositories">Pulling Docker images from private repositories</a>
<ul>
<li><a href="#docker-hub-configuration">Docker Hub Configuration</a></li>
</ul></li>
</ul></li>
</ul>
</nav>
</div>
<main class="col-12 col-md-9 col-xl-8 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="https://jenkinsci.github.io/kubernetes-operator/docs/">Documentation</a>
</li>
<li class="breadcrumb-item" >
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/">Getting Started</a>
</li>
<li class="breadcrumb-item" >
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/">Latest (v0.2.x)</a>
</li>
<li class="breadcrumb-item active" aria-current="page">
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/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> is 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/pipelines/build.jenkins</strong> is 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 the seed jobs.</p>
<p>You can verify if deploy keys were successfully configured in the Jenkins <strong>Credentials</strong> tab.</p>
<p><img src="/kubernetes-operator/img/jenkins-credentials.png" alt="jenkins" /></p>
<p>You can verify if your pipelines were successfully configured in the Jenkins Seed Job console output.</p>
<p><img src="/kubernetes-operator/img/jenkins-seed.png" alt="jenkins" /></p>
<p>If your GitHub repository is <strong>private</strong> you have to configure SSH or username/password authentication.</p>
<h3 id="ssh-authentication">SSH authentication</h3>
<h4 id="generate-ssh-keys">Generate SSH Keys</h4>
<p>There are two methods of SSH private key generation:</p>
<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">$ openssl genrsa -out &lt;filename&gt; <span style="color:#0000cf;font-weight:bold">2048</span></code></pre></div>
<p>or</p>
<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">$ ssh-keygen -t rsa -b <span style="color:#0000cf;font-weight:bold">2048</span>
$ ssh-keygen -p -f &lt;filename&gt; -m pem</code></pre></div>
<p>Then copy content from generated file.</p>
<h4 id="public-key">Public key</h4>
<p>If you want to upload your public key to your Git server you need to extract it.</p>
<p>If key was generated by <code>openssl</code> then you need to type this to extract public key:</p>
<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">$ openssl rsa -in &lt;filename&gt; -pubout &gt; &lt;filename&gt;.pub</code></pre></div>
<p>If key was generated by <code>ssh-keygen</code> the public key content is located in <filename>.pub and there is no need to extract public key</p>
<h4 id="configure-ssh-authentication">Configure SSH authentication</h4>
<p>Configure a seed job like this:</p>
<pre><code>apiVersion: jenkins.io/v1alpha2
kind: Jenkins
metadata:
name: example
spec:
seedJobs:
- id: jenkins-operator-ssh
credentialType: basicSSHUserPrivateKey
credentialID: k8s-ssh
targets: &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 a Kubernetes Secret (name of secret should be the same from <code>credentialID</code> field):</p>
<pre><code>apiVersion: v1
kind: Secret
metadata:
name: k8s-ssh
stringData:
privateKey: |
-----BEGIN RSA PRIVATE KEY-----
MIIJKAIBAAKCAgEAxxDpleJjMCN5nusfW/AtBAZhx8UVVlhhhIKXvQ+dFODQIdzO
oDXybs1zVHWOj31zqbbJnsfsVZ9Uf3p9k6xpJ3WFY9b85WasqTDN1xmSd6swD4N8
...
username: github_user_name
</code></pre>
<h3 id="username-password-authentication">Username &amp; password authentication</h3>
<p>Configure the seed job like:</p>
<pre><code>apiVersion: jenkins.io/v1alpha2
kind: Jenkins
metadata:
name: example
spec:
seedJobs:
- id: jenkins-operator-user-pass
credentialType: usernamePassword
credentialID: k8s-user-pass
targets: &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 a Kubernetes Secret (name of secret should be the same from <code>credentialID</code> field):</p>
<pre><code>apiVersion: v1
kind: Secret
metadata:
name: k8s-user-pass
stringData:
username: github_user_name
password: password_or_token
</code></pre>
<h2 id="http-proxy-for-downloading-plugins">HTTP Proxy for downloading plugins</h2>
<p>To use forwarding proxy with an operator to download plugins you need to add the following environment variable to Jenkins CR, for e.g.:</p>
<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-yaml" data-lang="yaml">spec<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>master<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>containers<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>jenkins-master<span style="color:#f8f8f8;text-decoration:underline">
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>env<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>CURL_OPTIONS<span style="color:#f8f8f8;text-decoration:underline">
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>value<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-L<span style="color:#f8f8f8;text-decoration:underline"> </span>-x<span style="color:#f8f8f8;text-decoration:underline"> </span>&lt;proxy_url&gt;</code></pre></div>
<p>In <code>CURL_OPTIONS</code> var you can set additional arguments to curl command.</p>
<h2 id="pulling-docker-images-from-private-repositories">Pulling Docker images from private repositories</h2>
<p>To pull a Docker Image from private repository you can use <code>imagePullSecrets</code>.</p>
<p>Please follow the instructions on <a href="https://kubernetes.io/docs/concepts/containers/images/?origin_team=T42NTAGHM#creating-a-secret-with-a-docker-config" 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 a 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="/kubernetes-operator/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="/kubernetes-operator/js/main.min.15ba3b50c3bd013e1b26793d1a59390ea2e0f21481eafe4022de05a44eba88fc.js" integrity="sha256-Fbo7UMO9AT4bJnk9Glk5DqLg8hSB6v5AIt4FpE66iPw="></script>
</body>
</html>