From 768d1ac617e18a824a1d4cc393cf59ae81a5c957 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 1 Oct 2021 10:44:14 +0200 Subject: [PATCH] Auto-updated docs (#655) Co-authored-by: SylwiaBrant --- docs/docs/developer-guide/index.html | 173 +++---- docs/docs/developer-guide/index.xml | 2 +- docs/docs/getting-started/index.html | 4 +- .../configuring-backup-and-restore/index.html | 132 +++--- docs/docs/getting-started/latest/index.html | 4 +- docs/docs/getting-started/latest/index.xml | 89 +++- .../latest/installing-the-operator/index.html | 100 ++++- docs/docs/getting-started/v0.3.x/index.html | 4 +- docs/docs/getting-started/v0.4.x/index.html | 4 +- .../v0.5.x/configuration/index.html | 12 +- .../v0.5.x/customization/index.html | 57 +-- docs/docs/getting-started/v0.5.x/index.html | 16 +- docs/docs/getting-started/v0.5.x/index.xml | 51 ++- .../architecture-and-design/index.html | 16 +- docs/docs/how-it-works/index.html | 24 +- docs/docs/how-it-works/index.xml | 6 +- docs/docs/index.html | 8 +- docs/docs/index.xml | 424 +++++++++++------- docs/index.html | 2 +- docs/index.xml | 2 +- docs/sitemap.xml | 40 +- .../content/en/docs/Developer Guide/_index.md | 2 +- .../latest/installing-the-operator.md | 2 +- .../Getting Started/v0.5.x/configuration.md | 2 +- .../Getting Started/v0.5.x/customization.md | 2 +- .../How it works/architecture-and-design.md | 2 +- website/package-lock.json | 18 +- 27 files changed, 747 insertions(+), 451 deletions(-) diff --git a/docs/docs/developer-guide/index.html b/docs/docs/developer-guide/index.html index 208bf335..c2ad93fd 100644 --- a/docs/docs/developer-guide/index.html +++ b/docs/docs/developer-guide/index.html @@ -26,7 +26,7 @@ " /> - + @@ -225,23 +225,23 @@ Security - - - - - + + + + + AKS - - - - - + + + + + OpenShift - + Schema @@ -493,7 +493,7 @@ Schema - + @@ -577,8 +577,8 @@ - - + + @@ -591,63 +591,63 @@ - - + + @@ -704,10 +704,10 @@ - - - - + + + + @@ -720,9 +720,9 @@ @@ -780,6 +780,7 @@
  • Building docker image on minikube
  • When api/v1alpha2/jenkins_types.go has changed
  • Getting the Jenkins URL and basic credentials
  • +
  • Webhook
  • Self-learning
  • @@ -1021,7 +1022,7 @@ kubectl --context remote-k8s --namespace default get po

    Tests are written using Ginkgo with Gomega.

    -

    Run unit tests with go fmt, lint, statickcheck, vet:

    +

    Run unit tests with go fmt, lint, staticcheck, vet:

    make verify

    Run unit tests only:

    make test
    @@ -1030,6 +1031,9 @@ kubectl --context remote-k8s --namespace default get po

    Run e2e tests with minikube:

    make minikube-start
     make e2e
    +

    Run Helm e2e tests:

    +
    eval $(bin/minikube docker-env)
    +make helm-e2e

    Run the specific e2e test:

    make e2e E2E_TEST_SELECTOR='^TestConfiguration$'

    Building docker image on minikube

    @@ -1044,6 +1048,13 @@ make e2e
    minikube service jenkins-operator-http-<cr_name> --url
     kubectl get secret jenkins-operator-credentials-<cr_name> -o 'jsonpath={.data.user}' | base64 -d
     kubectl get secret jenkins-operator-credentials-<cr_name> -o 'jsonpath={.data.password}' | base64 -d
    +

    Webhook

    + +

    To deploy the operator along with webhook, run :

    +
    eval $(minikube docker-env)
    +make deploy-webhook
    +

    It uses cert-manager as an external dependency.

    +

    Self-learning

    @@ -1175,16 +1188,16 @@ kubectl get secret jenkins-operator-credentials-<cr_name> -o
    Tools @@ -1215,13 +1228,13 @@ kubectl get secret jenkins-operator-credentials-<cr_name> -o Last modified August 19, 2021 +
    Last modified September 2, 2021
    diff --git a/docs/docs/developer-guide/index.xml b/docs/docs/developer-guide/index.xml index 7e7714a9..fca221cf 100644 --- a/docs/docs/developer-guide/index.xml +++ b/docs/docs/developer-guide/index.xml @@ -4,7 +4,7 @@ https://jenkinsci.github.io/kubernetes-operator/docs/developer-guide/ Recent Hugo news from gohugo.io Hugo -- gohugo.io - Thu, 19 Aug 2021 00:00:00 +0000 + Thu, 02 Sep 2021 00:00:00 +0000 https://jenkinsci.github.io/kubernetes-operator/img/hugo.png GoHugo.io diff --git a/docs/docs/getting-started/index.html b/docs/docs/getting-started/index.html index a21f043e..7ad57d24 100644 --- a/docs/docs/getting-started/index.html +++ b/docs/docs/getting-started/index.html @@ -823,6 +823,8 @@ + +
    Latest (v0.6.x) @@ -895,8 +897,6 @@ - -
    v0.3.x diff --git a/docs/docs/getting-started/latest/configuring-backup-and-restore/index.html b/docs/docs/getting-started/latest/configuring-backup-and-restore/index.html index 3d3acda5..6342c13a 100644 --- a/docs/docs/getting-started/latest/configuring-backup-and-restore/index.html +++ b/docs/docs/getting-started/latest/configuring-backup-and-restore/index.html @@ -232,23 +232,23 @@ Security - - - - - + + + + + AKS - - - - - + + + + + OpenShift - + Schema @@ -500,7 +500,7 @@ Schema - + @@ -584,8 +584,8 @@ - - + + @@ -598,63 +598,63 @@ - - + + @@ -711,10 +711,10 @@ - - - - + + + + @@ -727,9 +727,9 @@
    • - - - + + +
    diff --git a/docs/docs/getting-started/latest/index.html b/docs/docs/getting-started/latest/index.html index 881db5e1..3f90af72 100644 --- a/docs/docs/getting-started/latest/index.html +++ b/docs/docs/getting-started/latest/index.html @@ -829,6 +829,8 @@
    + +
    Installing the Operator @@ -915,8 +917,6 @@ - -
    Configuring backup and restore diff --git a/docs/docs/getting-started/latest/index.xml b/docs/docs/getting-started/latest/index.xml index f9fc45c9..fa46514f 100644 --- a/docs/docs/getting-started/latest/index.xml +++ b/docs/docs/getting-started/latest/index.xml @@ -22,7 +22,7 @@ Docs: Installing the Operator https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/installing-the-operator/ - Fri, 20 Aug 2021 00:00:00 +0000 + Thu, 02 Sep 2021 00:00:00 +0000 https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/installing-the-operator/ @@ -902,6 +902,93 @@ below is the full list of those volumeMounts:</p> <li>operator-credentials</li> </ul> +<h2 id="validating-webhook">Validating Webhook</h2> + +<p>Validating webhook can be used in order to increase the Operator&rsquo;s capabilities to monitor security issues. It will look for security vulnerabilities in the base and requested plugins. It can be easily installed via Helm charts by setting webhook.enabled in values.yaml.</p> + +<p><strong>Note</strong>: The webhook takes some time to get up and running. It&rsquo;s recommended to first deploy the Operator and later Jenkins Custom Resource by using toggles in <code>values.yaml</code>. +For the installation with yaml manifests (without using Helm chart), first, install cert-manager:</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://github.com/jetstack/cert-manager/releases/download/v1.5.1/cert-manager.yaml </code></pre></div> +<p>It takes some time to get cert-manager up and running. +Then, install the webhook and other required resources:</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-webhook.yaml</code></pre></div> +<p>Now, download the manifests for the operator and other resources from <a href="https://raw.githubusercontent.com/jenkinsci/kubernetes-operator/master/deploy/all-in-one-v1alpha2.yaml">here</a> and provide these additional fields in the Operator manifest:</p> + +<pre> +<code> +apiVersion: apps/v1 +kind: Deployment +metadata: + name: jenkins-operator + labels: + control-plane: controller-manager +spec: + selector: + matchLabels: + control-plane: controller-manager + replicas: 1 + template: + metadata: + labels: + control-plane: controller-manager + spec: + serviceAccountName: jenkins-operator + securityContext: + runAsUser: 65532 + containers: + - command: + - /manager + args: + - --leader-elect + <b>- --validate-security-warnings</b> + image: jenkins-operator:54231733-dirty + name: jenkins-operator + imagePullPolicy: IfNotPresent + securityContext: + allowPrivilegeEscalation: false + livenessProbe: + httpGet: + path: /healthz + port: 8081 + initialDelaySeconds: 15 + periodSeconds: 20 + readinessProbe: + httpGet: + path: /readyz + port: 8081 + initialDelaySeconds: 5 + periodSeconds: 10 + resources: + limits: + cpu: 200m + memory: 100Mi + requests: + cpu: 100m + memory: 20Mi + env: + - name: WATCH_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + <b>volumeMounts: + - mountPath: /tmp/k8s-webhook-server/serving-certs + name: webhook-certs + readOnly: true + volumes: + - name: webhook-certs + secret: + defaultMode: 420 + secretName: jenkins-webhook-certificate + terminationGracePeriodSeconds: 10</b> +</code> +</pre> + +<p>To enable security validation in the Jenkins Custom Resource, set</p> + +<blockquote> +<p>jenkins.ValidateSecurityWarnings=true</p> +</blockquote> + diff --git a/docs/docs/getting-started/latest/installing-the-operator/index.html b/docs/docs/getting-started/latest/installing-the-operator/index.html index fbd53987..6668570a 100644 --- a/docs/docs/getting-started/latest/installing-the-operator/index.html +++ b/docs/docs/getting-started/latest/installing-the-operator/index.html @@ -25,14 +25,14 @@ " /> - - + + - - - + + + @@ -781,6 +781,7 @@
  • Note on Operator’s nightly built images
  • Note on restricted Jenkins controller pod volumeMounts
  • +
  • Validating Webhook
  • @@ -1711,9 +1712,96 @@ below is the full list of those volumeMounts:

  • operator-credentials
  • +

    Validating Webhook

    + +

    Validating webhook can be used in order to increase the Operator’s capabilities to monitor security issues. It will look for security vulnerabilities in the base and requested plugins. It can be easily installed via Helm charts by setting webhook.enabled in values.yaml.

    + +

    Note: The webhook takes some time to get up and running. It’s recommended to first deploy the Operator and later Jenkins Custom Resource by using toggles in values.yaml. +For the installation with yaml manifests (without using Helm chart), first, install cert-manager:

    +
    kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.5.1/cert-manager.yaml 
    +

    It takes some time to get cert-manager up and running. +Then, install the webhook and other required resources:

    +
    kubectl apply -f https://raw.githubusercontent.com/jenkinsci/kubernetes-operator/master/deploy/all-in-one-webhook.yaml
    +

    Now, download the manifests for the operator and other resources from here and provide these additional fields in the Operator manifest:

    + +
    +
    +apiVersion: apps/v1
    +kind: Deployment
    +metadata:
    +  name: jenkins-operator
    +  labels:
    +    control-plane: controller-manager
    +spec:
    +  selector:
    +    matchLabels:
    +      control-plane: controller-manager
    +  replicas: 1
    +  template:
    +    metadata:
    +      labels:
    +        control-plane: controller-manager
    +    spec:
    +      serviceAccountName: jenkins-operator
    +      securityContext:
    +        runAsUser: 65532
    +      containers:
    +      - command:
    +        - /manager
    +        args:
    +        - --leader-elect
    +        - --validate-security-warnings
    +        image: jenkins-operator:54231733-dirty 
    +        name: jenkins-operator
    +        imagePullPolicy: IfNotPresent
    +        securityContext:
    +          allowPrivilegeEscalation: false
    +        livenessProbe:
    +          httpGet:
    +            path: /healthz
    +            port: 8081
    +          initialDelaySeconds: 15
    +          periodSeconds: 20
    +        readinessProbe:
    +          httpGet:
    +            path: /readyz
    +            port: 8081
    +          initialDelaySeconds: 5
    +          periodSeconds: 10
    +        resources:
    +          limits:
    +            cpu: 200m
    +            memory: 100Mi
    +          requests:
    +            cpu: 100m
    +            memory: 20Mi
    +        env:
    +          - name: WATCH_NAMESPACE
    +            valueFrom:
    +              fieldRef:
    +                fieldPath: metadata.namespace
    +        volumeMounts:
    +          - mountPath: /tmp/k8s-webhook-server/serving-certs
    +            name: webhook-certs
    +            readOnly: true       
    +      volumes:
    +      - name: webhook-certs
    +        secret:
    +          defaultMode: 420
    +          secretName: jenkins-webhook-certificate
    +      terminationGracePeriodSeconds: 10
    +
    +
    + +

    To enable security validation in the Jenkins Custom Resource, set

    + +
    +

    jenkins.ValidateSecurityWarnings=true

    +
    + -
    Last modified August 20, 2021 +
    Last modified September 2, 2021
    diff --git a/docs/docs/getting-started/v0.3.x/index.html b/docs/docs/getting-started/v0.3.x/index.html index c252756e..e591302e 100644 --- a/docs/docs/getting-started/v0.3.x/index.html +++ b/docs/docs/getting-started/v0.3.x/index.html @@ -838,6 +838,8 @@ + +
    Deploy Jenkins @@ -862,8 +864,6 @@ - -
    Configuration diff --git a/docs/docs/getting-started/v0.4.x/index.html b/docs/docs/getting-started/v0.4.x/index.html index 5df9988e..18f6ece2 100644 --- a/docs/docs/getting-started/v0.4.x/index.html +++ b/docs/docs/getting-started/v0.4.x/index.html @@ -836,6 +836,8 @@ + +
    Deploy Jenkins @@ -860,8 +862,6 @@ - -
    Configuration diff --git a/docs/docs/getting-started/v0.5.x/configuration/index.html b/docs/docs/getting-started/v0.5.x/configuration/index.html index 01d346cd..dd482114 100644 --- a/docs/docs/getting-started/v0.5.x/configuration/index.html +++ b/docs/docs/getting-started/v0.5.x/configuration/index.html @@ -25,13 +25,13 @@ " /> - - + + - - + + @@ -975,7 +975,7 @@ $ ssh-keygen -p -f <filename> -m pem
    targets: "cicd/jobs/*.jenkins" description: "Jenkins Operator repository" repositoryBranch: master - repositoryUrl: ssh://git@github.com:jenkinsci/kubernetes-operator.git
    + repositoryUrl: git@github.com:jenkinsci/kubernetes-operator.git

    and create a Kubernetes Secret (name of secret should be the same from credentialID field):

    apiVersion: v1
     kind: Secret
    @@ -1120,7 +1120,7 @@ $ ssh-keygen -p -f <filename> -m pem
    }
    -
    Last modified January 25, 2021 +
    Last modified September 2, 2021
    diff --git a/docs/docs/getting-started/v0.5.x/customization/index.html b/docs/docs/getting-started/v0.5.x/customization/index.html index ca0671ff..d60dd18a 100644 --- a/docs/docs/getting-started/v0.5.x/customization/index.html +++ b/docs/docs/getting-started/v0.5.x/customization/index.html @@ -25,14 +25,14 @@ " /> - - + + - - - + + + @@ -846,29 +846,32 @@ Plugin’s configuration is applied as groovy scripts or the configuration as code plugin. Any plugin working for Jenkins can be installed by the Jenkins Operator.

    -

    Pre-installed plugins: -* configuration-as-code v1.47 -* git v4.5.0 -* job-dsl v1.77 -* kubernetes-credentials-provider v0.15 -* kubernetes v1.29.2 -* workflow-aggregator v2.6 -* workflow-job v2.40

    +

    Pre-installed plugins:

    + +
      +
    • configuration-as-code v1.51
    • +
    • git v4.7.2
    • +
    • job-dsl v1.77
    • +
    • kubernetes-credentials-provider v0.18-1
    • +
    • kubernetes v1.30.0
    • +
    • workflow-aggregator v2.6
    • +
    • workflow-job v2.41
    • +

    Rest of the plugins can be found in plugins repository.

    Install plugins

    Edit Custom Resource under spec.master.plugins:

    -
    apiVersion: jenkins.io/v1alpha2
    -kind: Jenkins
    -metadata:
    -  name: example
    -spec:
    -  master:
    -   plugins:
    -   - name: simple-theme-plugin
    -     version: "0.6"
    +
    apiVersion: jenkins.io/v1alpha2
    +kind: Jenkins
    +metadata:
    +  name: example
    +spec:
    +  master:
    +   plugins:
    +   - name: simple-theme-plugin
    +     version: "0.6"

    Under spec.master.basePlugins you can find plugins for a valid Jenkins Operator:

    apiVersion: jenkins.io/v1alpha2
     kind: Jenkins
    @@ -878,19 +881,19 @@ spec:
       master:
         basePlugins:
         - name: kubernetes
    -      version: "1.29.2"
    +      version: "1.30.0"
         - name: workflow-job
           version: "2.40"
         - name: workflow-aggregator
           version: "2.6"
         - name: git
    -      version: "4.5.0"
    +      version: "4.7.2"
         - name: job-dsl
           version: "1.77"
         - name: configuration-as-code
    -      version: "1.47"
    +      version: "1.51"
         - name: kubernetes-credentials-provider
    -      version: "0.15"
    + version: "0.18-1"

    You can change their versions.

    The Jenkins Operator will then automatically install plugins after the Jenkins master pod restart.

    @@ -1007,7 +1010,7 @@ The secrets are loaded to secrets map.

    -
    Last modified January 25, 2021 +
    Last modified September 2, 2021
    diff --git a/docs/docs/getting-started/v0.5.x/index.html b/docs/docs/getting-started/v0.5.x/index.html index a5377f8e..51be5650 100644 --- a/docs/docs/getting-started/v0.5.x/index.html +++ b/docs/docs/getting-started/v0.5.x/index.html @@ -834,6 +834,8 @@ + +
    Deploy Jenkins @@ -852,14 +854,6 @@ - - - - - - - -
    Configuration @@ -919,6 +913,12 @@ + + + + + + diff --git a/docs/docs/getting-started/v0.5.x/index.xml b/docs/docs/getting-started/v0.5.x/index.xml index 9c1ce469..56240e1e 100644 --- a/docs/docs/getting-started/v0.5.x/index.xml +++ b/docs/docs/getting-started/v0.5.x/index.xml @@ -94,7 +94,7 @@ kubectl get secret jenkins-operator-credentials-&lt;cr_name&gt; -o <s Docs: Configuration https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/v0.5.x/configuration/ - Mon, 25 Jan 2021 00:00:00 +0000 + Thu, 02 Sep 2021 00:00:00 +0000 https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/v0.5.x/configuration/ @@ -228,7 +228,7 @@ $ ssh-keygen -p -f &lt;filename&gt; -m pem</code></pre></ </span><span style="color:#f8f8f8;text-decoration:underline"> </span>targets<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;cicd/jobs/*.jenkins&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#f8f8f8;text-decoration:underline"> </span>description<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;Jenkins Operator repository&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#f8f8f8;text-decoration:underline"> </span>repositoryBranch<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>master<span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>repositoryUrl<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>ssh<span style="color:#000;font-weight:bold">:</span>//git@github.com<span style="color:#000;font-weight:bold">:</span>jenkinsci/kubernetes-operator.git</code></pre></div> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>repositoryUrl<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>git@github.com<span style="color:#000;font-weight:bold">:</span>jenkinsci/kubernetes-operator.git</code></pre></div> <p>and create a Kubernetes Secret (name of secret should be the same from <code>credentialID</code> field):</p> <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-yaml" data-lang="yaml">apiVersion<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>v1<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#f8f8f8;text-decoration:underline"></span>kind<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>Secret<span style="color:#f8f8f8;text-decoration:underline"> @@ -377,7 +377,7 @@ $ ssh-keygen -p -f &lt;filename&gt; -m pem</code></pre></ Docs: Customization https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/v0.5.x/customization/ - Mon, 25 Jan 2021 00:00:00 +0000 + Thu, 02 Sep 2021 00:00:00 +0000 https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/v0.5.x/customization/ @@ -391,29 +391,32 @@ $ ssh-keygen -p -f &lt;filename&gt; -m pem</code></pre></ Plugin&rsquo;s configuration is applied as groovy scripts or the <a href="https://github.com/jenkinsci/configuration-as-code-plugin">configuration as code plugin</a>. Any plugin working for Jenkins can be installed by the Jenkins Operator.</p> -<p>Pre-installed plugins: -* configuration-as-code v1.47 -* git v4.5.0 -* job-dsl v1.77 -* kubernetes-credentials-provider v0.15 -* kubernetes v1.29.2 -* workflow-aggregator v2.6 -* workflow-job v2.40</p> +<p>Pre-installed plugins:</p> + +<ul> +<li>configuration-as-code v1.51</li> +<li>git v4.7.2</li> +<li>job-dsl v1.77</li> +<li>kubernetes-credentials-provider v0.18-1</li> +<li>kubernetes v1.30.0</li> +<li>workflow-aggregator v2.6</li> +<li>workflow-job v2.41</li> +</ul> <p>Rest of the plugins can be found in <a href="https://plugins.jenkins.io/">plugins repository</a>.</p> <h4 id="install-plugins">Install plugins</h4> <p>Edit Custom Resource under <code>spec.master.plugins</code>:</p> -<pre><code>apiVersion: jenkins.io/v1alpha2 -kind: Jenkins -metadata: - name: example -spec: - master: - plugins: - - name: simple-theme-plugin - version: "0.6"</code></pre> +<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-yaml" data-lang="yaml">apiVersion<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>jenkins.io/v1alpha2<span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"></span>kind<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>Jenkins<span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"></span>metadata<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>example<span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"></span>spec<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>master<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>plugins<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>simple-theme-plugin<span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;0.6&#34;</span></code></pre></div> <p>Under <code>spec.master.basePlugins</code> you can find plugins for a valid <strong>Jenkins Operator</strong>:</p> <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-yaml" data-lang="yaml">apiVersion<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>jenkins.io/v1alpha2<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#f8f8f8;text-decoration:underline"></span>kind<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>Jenkins<span style="color:#f8f8f8;text-decoration:underline"> @@ -423,19 +426,19 @@ spec: </span><span style="color:#f8f8f8;text-decoration:underline"> </span>master<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#f8f8f8;text-decoration:underline"> </span>basePlugins<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>kubernetes<span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;1.29.2&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;1.30.0&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>workflow-job<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;2.40&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>workflow-aggregator<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;2.6&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>git<span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;4.5.0&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;4.7.2&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>job-dsl<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;1.77&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>configuration-as-code<span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;1.47&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;1.51&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>kubernetes-credentials-provider<span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;0.15&#34;</span></code></pre></div> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;0.18-1&#34;</span></code></pre></div> <p>You can change their versions.</p> <p>The <strong>Jenkins Operator</strong> will then automatically install plugins after the Jenkins master pod restart.</p> diff --git a/docs/docs/how-it-works/architecture-and-design/index.html b/docs/docs/how-it-works/architecture-and-design/index.html index 3ca736a4..bf424c40 100644 --- a/docs/docs/how-it-works/architecture-and-design/index.html +++ b/docs/docs/how-it-works/architecture-and-design/index.html @@ -25,14 +25,14 @@ " /> - - + + - - - + + + @@ -848,9 +848,13 @@

    It helps to maintain or recover the desired state even after the operator or Jenkins restarts.

    +

    Webhook

    + +

    It rejects/accepts admission requests based on potential security warnings in plugins present in the Jenkins Custom Resource.

    + -
    Last modified August 5, 2019 +
    Last modified September 2, 2021
    diff --git a/docs/docs/how-it-works/index.html b/docs/docs/how-it-works/index.html index 9ddd8e4a..751db213 100644 --- a/docs/docs/how-it-works/index.html +++ b/docs/docs/how-it-works/index.html @@ -808,18 +808,6 @@
    - - - - - - - - - - - -
    Architecture and design @@ -913,6 +901,18 @@ + + + + + + + + + + + + diff --git a/docs/docs/how-it-works/index.xml b/docs/docs/how-it-works/index.xml index 31edc540..dbaa27cf 100644 --- a/docs/docs/how-it-works/index.xml +++ b/docs/docs/how-it-works/index.xml @@ -22,7 +22,7 @@ Docs: Architecture and design https://jenkinsci.github.io/kubernetes-operator/docs/how-it-works/architecture-and-design/ - Mon, 05 Aug 2019 00:00:00 +0000 + Thu, 02 Sep 2021 00:00:00 +0000 https://jenkinsci.github.io/kubernetes-operator/docs/how-it-works/architecture-and-design/ @@ -65,6 +65,10 @@ <p>It helps to maintain or recover the desired state even after the operator or Jenkins restarts.</p> +<h2 id="webhook">Webhook</h2> + +<p>It rejects/accepts admission requests based on potential security warnings in plugins present in the Jenkins Custom Resource.</p> + diff --git a/docs/docs/index.html b/docs/docs/index.html index 0eb563fd..4b964874 100644 --- a/docs/docs/index.html +++ b/docs/docs/index.html @@ -797,6 +797,8 @@ + +
    How it works @@ -867,10 +869,6 @@ - - - -
    Developer Guide @@ -889,6 +887,8 @@ + +
    FAQ diff --git a/docs/docs/index.xml b/docs/docs/index.xml index 4c57cb35..65d95698 100644 --- a/docs/docs/index.xml +++ b/docs/docs/index.xml @@ -19,10 +19,63 @@ + + Docs: Architecture and design + https://jenkinsci.github.io/kubernetes-operator/docs/how-it-works/architecture-and-design/ + Thu, 02 Sep 2021 00:00:00 +0000 + + https://jenkinsci.github.io/kubernetes-operator/docs/how-it-works/architecture-and-design/ + + + + + +<p>The <strong>Jenkins Operator</strong> design incorporates the following concepts:</p> + +<ul> +<li>watches any changes of manifests and maintain the desired state according to deployed custom resource manifest</li> +<li>implements the main reconciliation loop which consists of two smaller reconciliation loops - base and user</li> +</ul> + +<p><img src="https://jenkinsci.github.io/kubernetes-operator/kubernetes-operator/img/reconcile.png" alt="reconcile" /></p> + +<p><strong>Base</strong> reconciliation loop takes care of reconciling base Jenkins configuration, which consists of:</p> + +<ul> +<li>Ensure Manifests - monitors any changes in manifests</li> +<li>Ensure Jenkins Pod - creates and verifies the status of Jenkins master Pod</li> +<li>Ensure Jenkins Configuration - configures Jenkins instance including hardening, initial configuration for plugins, etc.</li> +<li>Ensure Jenkins API token - generates Jenkins API token and initialized Jenkins client</li> +</ul> + +<p><strong>User</strong> reconciliation loop takes care of reconciling user provided configuration, which consists of:</p> + +<ul> +<li>Ensure Restore Job - creates Restore job and ensures that restore has been successfully performed<br /></li> +<li>Ensure Seed Jobs - creates Seed Jobs and ensures that all of them have been successfully executed</li> +<li>Ensure User Configuration - executed user provided configuration, like groovy scripts, configuration as code or plugins</li> +<li>Ensure Backup Job - creates a Backup job and ensures that backup has been successfully performed</li> +</ul> + +<p><img src="https://jenkinsci.github.io/kubernetes-operator/kubernetes-operator/img/phases.png" alt="reconcile" /></p> + +<h2 id="operator-state">Operator State</h2> + +<p>Operator state is kept in the custom resource status section, which is used for storing any configuration events or job statuses managed by the operator.</p> + +<p>It helps to maintain or recover the desired state even after the operator or Jenkins restarts.</p> + +<h2 id="webhook">Webhook</h2> + +<p>It rejects/accepts admission requests based on potential security warnings in plugins present in the Jenkins Custom Resource.</p> + + + + Docs: Installing the Operator https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/installing-the-operator/ - Fri, 20 Aug 2021 00:00:00 +0000 + Thu, 02 Sep 2021 00:00:00 +0000 https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/installing-the-operator/ @@ -902,6 +955,93 @@ below is the full list of those volumeMounts:</p> <li>operator-credentials</li> </ul> +<h2 id="validating-webhook">Validating Webhook</h2> + +<p>Validating webhook can be used in order to increase the Operator&rsquo;s capabilities to monitor security issues. It will look for security vulnerabilities in the base and requested plugins. It can be easily installed via Helm charts by setting webhook.enabled in values.yaml.</p> + +<p><strong>Note</strong>: The webhook takes some time to get up and running. It&rsquo;s recommended to first deploy the Operator and later Jenkins Custom Resource by using toggles in <code>values.yaml</code>. +For the installation with yaml manifests (without using Helm chart), first, install cert-manager:</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://github.com/jetstack/cert-manager/releases/download/v1.5.1/cert-manager.yaml </code></pre></div> +<p>It takes some time to get cert-manager up and running. +Then, install the webhook and other required resources:</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-webhook.yaml</code></pre></div> +<p>Now, download the manifests for the operator and other resources from <a href="https://raw.githubusercontent.com/jenkinsci/kubernetes-operator/master/deploy/all-in-one-v1alpha2.yaml">here</a> and provide these additional fields in the Operator manifest:</p> + +<pre> +<code> +apiVersion: apps/v1 +kind: Deployment +metadata: + name: jenkins-operator + labels: + control-plane: controller-manager +spec: + selector: + matchLabels: + control-plane: controller-manager + replicas: 1 + template: + metadata: + labels: + control-plane: controller-manager + spec: + serviceAccountName: jenkins-operator + securityContext: + runAsUser: 65532 + containers: + - command: + - /manager + args: + - --leader-elect + <b>- --validate-security-warnings</b> + image: jenkins-operator:54231733-dirty + name: jenkins-operator + imagePullPolicy: IfNotPresent + securityContext: + allowPrivilegeEscalation: false + livenessProbe: + httpGet: + path: /healthz + port: 8081 + initialDelaySeconds: 15 + periodSeconds: 20 + readinessProbe: + httpGet: + path: /readyz + port: 8081 + initialDelaySeconds: 5 + periodSeconds: 10 + resources: + limits: + cpu: 200m + memory: 100Mi + requests: + cpu: 100m + memory: 20Mi + env: + - name: WATCH_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + <b>volumeMounts: + - mountPath: /tmp/k8s-webhook-server/serving-certs + name: webhook-certs + readOnly: true + volumes: + - name: webhook-certs + secret: + defaultMode: 420 + secretName: jenkins-webhook-certificate + terminationGracePeriodSeconds: 10</b> +</code> +</pre> + +<p>To enable security validation in the Jenkins Custom Resource, set</p> + +<blockquote> +<p>jenkins.ValidateSecurityWarnings=true</p> +</blockquote> + @@ -1121,55 +1261,6 @@ kubectl get secret jenkins-operator-credentials-&lt;cr_name&gt; -o <s - - Docs: Architecture and design - https://jenkinsci.github.io/kubernetes-operator/docs/how-it-works/architecture-and-design/ - Mon, 05 Aug 2019 00:00:00 +0000 - - https://jenkinsci.github.io/kubernetes-operator/docs/how-it-works/architecture-and-design/ - - - - - -<p>The <strong>Jenkins Operator</strong> design incorporates the following concepts:</p> - -<ul> -<li>watches any changes of manifests and maintain the desired state according to deployed custom resource manifest</li> -<li>implements the main reconciliation loop which consists of two smaller reconciliation loops - base and user</li> -</ul> - -<p><img src="https://jenkinsci.github.io/kubernetes-operator/kubernetes-operator/img/reconcile.png" alt="reconcile" /></p> - -<p><strong>Base</strong> reconciliation loop takes care of reconciling base Jenkins configuration, which consists of:</p> - -<ul> -<li>Ensure Manifests - monitors any changes in manifests</li> -<li>Ensure Jenkins Pod - creates and verifies the status of Jenkins master Pod</li> -<li>Ensure Jenkins Configuration - configures Jenkins instance including hardening, initial configuration for plugins, etc.</li> -<li>Ensure Jenkins API token - generates Jenkins API token and initialized Jenkins client</li> -</ul> - -<p><strong>User</strong> reconciliation loop takes care of reconciling user provided configuration, which consists of:</p> - -<ul> -<li>Ensure Restore Job - creates Restore job and ensures that restore has been successfully performed<br /></li> -<li>Ensure Seed Jobs - creates Seed Jobs and ensures that all of them have been successfully executed</li> -<li>Ensure User Configuration - executed user provided configuration, like groovy scripts, configuration as code or plugins</li> -<li>Ensure Backup Job - creates a Backup job and ensures that backup has been successfully performed</li> -</ul> - -<p><img src="https://jenkinsci.github.io/kubernetes-operator/kubernetes-operator/img/phases.png" alt="reconcile" /></p> - -<h2 id="operator-state">Operator State</h2> - -<p>Operator state is kept in the custom resource status section, which is used for storing any configuration events or job statuses managed by the operator.</p> - -<p>It helps to maintain or recover the desired state even after the operator or Jenkins restarts.</p> - - - - Docs: Deploy Jenkins https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/v0.1.x/deploy-jenkins/ @@ -1316,94 +1407,10 @@ kubectl get secret jenkins-operator-credentials-&lt;cr_name&gt; -o <s - - Docs: Deploying Jenkins - https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/deploying-jenkins/ - Thu, 19 Aug 2021 00:00:00 +0000 - - https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/deploying-jenkins/ - - - - <p>Once Jenkins Operator is up and running let&rsquo;s deploy actual Jenkins instance. -Create manifest e.g. <strong><code>jenkins_instance.yaml</code></strong> with following data and save it on drive.</p> -<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-yaml" data-lang="yaml">apiVersion<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>jenkins.io/v1alpha2<span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"></span>kind<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>Jenkins<span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"></span>metadata<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>example<span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>namespace<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>default<span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"></span>spec<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>configurationAsCode<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>configurations<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">[</span><span style="color:#000;font-weight:bold">]</span><span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>secret<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>groovyScripts<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>configurations<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">[</span><span style="color:#000;font-weight:bold">]</span><span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>secret<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>jenkinsAPISettings<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>authorizationStrategy<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>createUser<span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>master<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>disableCSRFProtection<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">false</span><span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>containers<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>jenkins-master<span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>image<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>jenkins/jenkins<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">2.277</span><span style="color:#0000cf;font-weight:bold">.4</span>-lts-alpine<span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>imagePullPolicy<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>Always<span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>livenessProbe<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>failureThreshold<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">12</span><span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>httpGet<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>path<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>/login<span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>port<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>http<span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>scheme<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>HTTP<span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>initialDelaySeconds<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">100</span><span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>periodSeconds<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">10</span><span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>successThreshold<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">1</span><span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>timeoutSeconds<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">5</span><span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>readinessProbe<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>failureThreshold<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">10</span><span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>httpGet<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>path<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>/login<span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>port<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>http<span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>scheme<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>HTTP<span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>initialDelaySeconds<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">80</span><span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>periodSeconds<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">10</span><span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>successThreshold<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">1</span><span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>timeoutSeconds<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">1</span><span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>resources<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>limits<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>cpu<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>1500m<span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>memory<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>3Gi<span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>requests<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>cpu<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;1&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>memory<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>500Mi<span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>seedJobs<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>id<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>jenkins-operator<span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>targets<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;cicd/jobs/*.jenkins&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>description<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;Jenkins Operator repository&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>repositoryBranch<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>master<span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>repositoryUrl<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>https<span style="color:#000;font-weight:bold">:</span>//github.com/jenkinsci/kubernetes-operator.git</code></pre></div> -<p>Deploy a Jenkins to Kubernetes:</p> -<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">kubectl create -f jenkins_instance.yaml</code></pre></div> -<p>Watch the Jenkins instance being created:</p> -<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">kubectl get pods -w</code></pre></div> -<p>Get the Jenkins credentials:</p> -<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">kubectl get secret jenkins-operator-credentials-&lt;cr_name&gt; -o <span style="color:#4e9a06">&#39;jsonpath={.data.user}&#39;</span> <span style="color:#000;font-weight:bold">|</span> base64 -d -kubectl get secret jenkins-operator-credentials-&lt;cr_name&gt; -o <span style="color:#4e9a06">&#39;jsonpath={.data.password}&#39;</span> <span style="color:#000;font-weight:bold">|</span> base64 -d</code></pre></div> -<p>Connect to the Jenkins instance (minikube):</p> -<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">minikube service jenkins-operator-http-&lt;cr_name&gt; --url</code></pre></div> -<p>Connect to the Jenkins instance (actual Kubernetes cluster):</p> -<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">kubectl port-forward jenkins-&lt;cr_name&gt; 8080:8080</code></pre></div> -<p>Then open browser with address <code>http://localhost:8080</code>.</p> - -<p><img src="https://jenkinsci.github.io/kubernetes-operator/kubernetes-operator/img/jenkins.png" alt="jenkins" /></p> - - - - Docs: Configuration https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/v0.5.x/configuration/ - Mon, 25 Jan 2021 00:00:00 +0000 + Thu, 02 Sep 2021 00:00:00 +0000 https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/v0.5.x/configuration/ @@ -1537,7 +1544,7 @@ $ ssh-keygen -p -f &lt;filename&gt; -m pem</code></pre></ </span><span style="color:#f8f8f8;text-decoration:underline"> </span>targets<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;cicd/jobs/*.jenkins&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#f8f8f8;text-decoration:underline"> </span>description<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;Jenkins Operator repository&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#f8f8f8;text-decoration:underline"> </span>repositoryBranch<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>master<span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>repositoryUrl<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>ssh<span style="color:#000;font-weight:bold">:</span>//git@github.com<span style="color:#000;font-weight:bold">:</span>jenkinsci/kubernetes-operator.git</code></pre></div> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>repositoryUrl<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>git@github.com<span style="color:#000;font-weight:bold">:</span>jenkinsci/kubernetes-operator.git</code></pre></div> <p>and create a Kubernetes Secret (name of secret should be the same from <code>credentialID</code> field):</p> <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-yaml" data-lang="yaml">apiVersion<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>v1<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#f8f8f8;text-decoration:underline"></span>kind<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>Secret<span style="color:#f8f8f8;text-decoration:underline"> @@ -1683,6 +1690,90 @@ $ ssh-keygen -p -f &lt;filename&gt; -m pem</code></pre></ + + Docs: Deploying Jenkins + https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/deploying-jenkins/ + Thu, 19 Aug 2021 00:00:00 +0000 + + https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/deploying-jenkins/ + + + + <p>Once Jenkins Operator is up and running let&rsquo;s deploy actual Jenkins instance. +Create manifest e.g. <strong><code>jenkins_instance.yaml</code></strong> with following data and save it on drive.</p> +<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-yaml" data-lang="yaml">apiVersion<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>jenkins.io/v1alpha2<span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"></span>kind<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>Jenkins<span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"></span>metadata<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>example<span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>namespace<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>default<span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"></span>spec<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>configurationAsCode<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>configurations<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">[</span><span style="color:#000;font-weight:bold">]</span><span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>secret<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>groovyScripts<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>configurations<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">[</span><span style="color:#000;font-weight:bold">]</span><span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>secret<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>jenkinsAPISettings<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>authorizationStrategy<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>createUser<span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>master<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>disableCSRFProtection<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">false</span><span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>containers<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>jenkins-master<span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>image<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>jenkins/jenkins<span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">2.277</span><span style="color:#0000cf;font-weight:bold">.4</span>-lts-alpine<span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>imagePullPolicy<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>Always<span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>livenessProbe<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>failureThreshold<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">12</span><span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>httpGet<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>path<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>/login<span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>port<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>http<span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>scheme<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>HTTP<span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>initialDelaySeconds<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">100</span><span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>periodSeconds<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">10</span><span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>successThreshold<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">1</span><span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>timeoutSeconds<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">5</span><span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>readinessProbe<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>failureThreshold<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">10</span><span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>httpGet<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>path<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>/login<span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>port<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>http<span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>scheme<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>HTTP<span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>initialDelaySeconds<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">80</span><span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>periodSeconds<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">10</span><span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>successThreshold<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">1</span><span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>timeoutSeconds<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">1</span><span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>resources<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>limits<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>cpu<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>1500m<span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>memory<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>3Gi<span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>requests<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>cpu<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;1&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>memory<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>500Mi<span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>seedJobs<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>id<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>jenkins-operator<span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>targets<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;cicd/jobs/*.jenkins&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>description<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;Jenkins Operator repository&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>repositoryBranch<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>master<span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>repositoryUrl<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>https<span style="color:#000;font-weight:bold">:</span>//github.com/jenkinsci/kubernetes-operator.git</code></pre></div> +<p>Deploy a Jenkins to Kubernetes:</p> +<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">kubectl create -f jenkins_instance.yaml</code></pre></div> +<p>Watch the Jenkins instance being created:</p> +<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">kubectl get pods -w</code></pre></div> +<p>Get the Jenkins credentials:</p> +<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">kubectl get secret jenkins-operator-credentials-&lt;cr_name&gt; -o <span style="color:#4e9a06">&#39;jsonpath={.data.user}&#39;</span> <span style="color:#000;font-weight:bold">|</span> base64 -d +kubectl get secret jenkins-operator-credentials-&lt;cr_name&gt; -o <span style="color:#4e9a06">&#39;jsonpath={.data.password}&#39;</span> <span style="color:#000;font-weight:bold">|</span> base64 -d</code></pre></div> +<p>Connect to the Jenkins instance (minikube):</p> +<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">minikube service jenkins-operator-http-&lt;cr_name&gt; --url</code></pre></div> +<p>Connect to the Jenkins instance (actual Kubernetes cluster):</p> +<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">kubectl port-forward jenkins-&lt;cr_name&gt; 8080:8080</code></pre></div> +<p>Then open browser with address <code>http://localhost:8080</code>.</p> + +<p><img src="https://jenkinsci.github.io/kubernetes-operator/kubernetes-operator/img/jenkins.png" alt="jenkins" /></p> + + + + Docs: Configuration https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/v0.4.x/configuration/ @@ -2754,11 +2845,11 @@ stringData: - Docs: Customizing Jenkins - https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/customizing-jenkins/ - Fri, 20 Aug 2021 00:00:00 +0000 + Docs: Customization + https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/v0.5.x/customization/ + Thu, 02 Sep 2021 00:00:00 +0000 - https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/customizing-jenkins/ + https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/v0.5.x/customization/ @@ -2936,11 +3027,11 @@ The secrets are loaded to <code>secrets</code> map.</p> - Docs: Customization - https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/v0.5.x/customization/ - Mon, 25 Jan 2021 00:00:00 +0000 + Docs: Customizing Jenkins + https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/customizing-jenkins/ + Fri, 20 Aug 2021 00:00:00 +0000 - https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/v0.5.x/customization/ + https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/customizing-jenkins/ @@ -2952,29 +3043,32 @@ The secrets are loaded to <code>secrets</code> map.</p> Plugin&rsquo;s configuration is applied as groovy scripts or the <a href="https://github.com/jenkinsci/configuration-as-code-plugin">configuration as code plugin</a>. Any plugin working for Jenkins can be installed by the Jenkins Operator.</p> -<p>Pre-installed plugins: -* configuration-as-code v1.47 -* git v4.5.0 -* job-dsl v1.77 -* kubernetes-credentials-provider v0.15 -* kubernetes v1.29.2 -* workflow-aggregator v2.6 -* workflow-job v2.40</p> +<p>Pre-installed plugins:</p> + +<ul> +<li>configuration-as-code v1.51</li> +<li>git v4.7.2</li> +<li>job-dsl v1.77</li> +<li>kubernetes-credentials-provider v0.18-1</li> +<li>kubernetes v1.30.0</li> +<li>workflow-aggregator v2.6</li> +<li>workflow-job v2.41</li> +</ul> <p>Rest of the plugins can be found in <a href="https://plugins.jenkins.io/">plugins repository</a>.</p> <h4 id="install-plugins">Install plugins</h4> <p>Edit Custom Resource under <code>spec.master.plugins</code>:</p> -<pre><code>apiVersion: jenkins.io/v1alpha2 -kind: Jenkins -metadata: - name: example -spec: - master: - plugins: - - name: simple-theme-plugin - version: "0.6"</code></pre> +<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-yaml" data-lang="yaml">apiVersion<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>jenkins.io/v1alpha2<span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"></span>kind<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>Jenkins<span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"></span>metadata<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>example<span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"></span>spec<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>master<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>plugins<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>simple-theme-plugin<span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;0.6&#34;</span></code></pre></div> <p>Under <code>spec.master.basePlugins</code> you can find plugins for a valid <strong>Jenkins Operator</strong>:</p> <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-yaml" data-lang="yaml">apiVersion<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>jenkins.io/v1alpha2<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#f8f8f8;text-decoration:underline"></span>kind<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>Jenkins<span style="color:#f8f8f8;text-decoration:underline"> @@ -2984,19 +3078,19 @@ spec: </span><span style="color:#f8f8f8;text-decoration:underline"> </span>master<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#f8f8f8;text-decoration:underline"> </span>basePlugins<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>kubernetes<span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;1.29.2&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;1.30.0&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>workflow-job<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;2.40&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>workflow-aggregator<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;2.6&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>git<span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;4.5.0&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;4.7.2&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>job-dsl<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;1.77&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>configuration-as-code<span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;1.47&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;1.51&#34;</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>kubernetes-credentials-provider<span style="color:#f8f8f8;text-decoration:underline"> -</span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;0.15&#34;</span></code></pre></div> +</span><span style="color:#f8f8f8;text-decoration:underline"> </span>version<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#34;0.18-1&#34;</span></code></pre></div> <p>You can change their versions.</p> <p>The <strong>Jenkins Operator</strong> will then automatically install plugins after the Jenkins master pod restart.</p> diff --git a/docs/index.html b/docs/index.html index f015dcd7..a92ccf68 100644 --- a/docs/index.html +++ b/docs/index.html @@ -25,7 +25,7 @@ - + diff --git a/docs/index.xml b/docs/index.xml index d642f763..0d07881c 100644 --- a/docs/index.xml +++ b/docs/index.xml @@ -4,7 +4,7 @@ https://jenkinsci.github.io/kubernetes-operator/ Recent Hugo news from gohugo.io Hugo -- gohugo.io - Fri, 20 Aug 2021 00:00:00 +0000 + Thu, 02 Sep 2021 00:00:00 +0000 https://jenkinsci.github.io/kubernetes-operator/img/hugo.png GoHugo.io diff --git a/docs/sitemap.xml b/docs/sitemap.xml index 65d0a04d..b7b066f1 100644 --- a/docs/sitemap.xml +++ b/docs/sitemap.xml @@ -2,9 +2,14 @@ + + https://jenkinsci.github.io/kubernetes-operator/docs/how-it-works/architecture-and-design/ + 2021-09-02T00:00:00+00:00 + + https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/installing-the-operator/ - 2021-08-20T00:00:00+00:00 + 2021-09-02T00:00:00+00:00 @@ -32,11 +37,6 @@ 2019-12-20T00:00:00+00:00 - - https://jenkinsci.github.io/kubernetes-operator/docs/how-it-works/architecture-and-design/ - 2019-08-05T00:00:00+00:00 - - https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/v0.1.x/deploy-jenkins/ 2019-08-05T00:00:00+00:00 @@ -47,6 +47,11 @@ 2019-08-05T00:00:00+00:00 + + https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/v0.5.x/configuration/ + 2021-09-02T00:00:00+00:00 + + https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/deploying-jenkins/ 2021-08-19T00:00:00+00:00 @@ -62,11 +67,6 @@ 2021-08-19T00:00:00+00:00 - - https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/v0.5.x/configuration/ - 2021-01-25T00:00:00+00:00 - - https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/v0.4.x/configuration/ 2020-04-13T00:00:00+00:00 @@ -87,6 +87,11 @@ 2019-08-05T00:00:00+00:00 + + https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/v0.5.x/customization/ + 2021-09-02T00:00:00+00:00 + + https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/customizing-jenkins/ 2021-08-20T00:00:00+00:00 @@ -102,11 +107,6 @@ 2021-08-19T00:00:00+00:00 - - https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/v0.5.x/customization/ - 2021-01-25T00:00:00+00:00 - - https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/v0.4.x/customization/ 2020-04-13T00:00:00+00:00 @@ -128,12 +128,12 @@ - https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/configuring-seed-jobs-and-pipelines/ - 2021-08-19T00:00:00+00:00 + https://jenkinsci.github.io/kubernetes-operator/docs/developer-guide/ + 2021-09-02T00:00:00+00:00 - https://jenkinsci.github.io/kubernetes-operator/docs/developer-guide/ + https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/configuring-seed-jobs-and-pipelines/ 2021-08-19T00:00:00+00:00 @@ -379,7 +379,7 @@ https://jenkinsci.github.io/kubernetes-operator/ - 2021-08-20T00:00:00+00:00 + 2021-09-02T00:00:00+00:00 diff --git a/website/content/en/docs/Developer Guide/_index.md b/website/content/en/docs/Developer Guide/_index.md index 7f13b448..7c6daff0 100644 --- a/website/content/en/docs/Developer Guide/_index.md +++ b/website/content/en/docs/Developer Guide/_index.md @@ -2,7 +2,7 @@ title: "Developer Guide" linkTitle: "Developer Guide" weight: 4 -date: 2021-08-19 +date: 2021-09-02 description: > Jenkins Operator for developers --- diff --git a/website/content/en/docs/Getting Started/latest/installing-the-operator.md b/website/content/en/docs/Getting Started/latest/installing-the-operator.md index 07e6286f..ae9c9430 100644 --- a/website/content/en/docs/Getting Started/latest/installing-the-operator.md +++ b/website/content/en/docs/Getting Started/latest/installing-the-operator.md @@ -2,7 +2,7 @@ title: "Installing the Operator" linkTitle: "Installing the Operator" weight: 1 -date: 2021-08-20 +date: 2021-09-02 description: > How to install Jenkins Operator --- diff --git a/website/content/en/docs/Getting Started/v0.5.x/configuration.md b/website/content/en/docs/Getting Started/v0.5.x/configuration.md index 29d44e60..cfc06786 100644 --- a/website/content/en/docs/Getting Started/v0.5.x/configuration.md +++ b/website/content/en/docs/Getting Started/v0.5.x/configuration.md @@ -2,7 +2,7 @@ title: "Configuration" linkTitle: "Configuration" weight: 2 -date: 2021-01-25 +date: 2021-09-02 description: > How to configure Jenkins with Operator --- diff --git a/website/content/en/docs/Getting Started/v0.5.x/customization.md b/website/content/en/docs/Getting Started/v0.5.x/customization.md index 167c556f..c2f5973f 100644 --- a/website/content/en/docs/Getting Started/v0.5.x/customization.md +++ b/website/content/en/docs/Getting Started/v0.5.x/customization.md @@ -2,7 +2,7 @@ title: "Customization" linkTitle: "Customization" weight: 3 -date: 2021-01-25 +date: 2021-09-02 description: > How to customize Jenkins --- diff --git a/website/content/en/docs/How it works/architecture-and-design.md b/website/content/en/docs/How it works/architecture-and-design.md index 221a69db..2952ad26 100644 --- a/website/content/en/docs/How it works/architecture-and-design.md +++ b/website/content/en/docs/How it works/architecture-and-design.md @@ -2,7 +2,7 @@ title: "Architecture and design" linkTitle: "Architecture and design" weight: 1 -date: 2019-08-05 +date: 2021-09-02 description: > Jenkins Operator fundamentals --- diff --git a/website/package-lock.json b/website/package-lock.json index 18772fa7..25011a4c 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -330,9 +330,9 @@ "dev": true }, "caniuse-lite": { - "version": "1.0.30001251", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001251.tgz", - "integrity": "sha512-HOe1r+9VkU4TFmnU70z+r7OLmtR+/chB1rdcJUeQlAinjEeb0cKL20tlAtOagNZhbrtLnCvV19B4FmF1rgzl6A==", + "version": "1.0.30001252", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001252.tgz", + "integrity": "sha512-I56jhWDGMtdILQORdusxBOH+Nl/KgQSdDmpJezYddnAkVOmnoU8zwjTV9xAjMIYxr0iPreEAVylCGcmHCjfaOw==", "dev": true }, "chalk": { @@ -456,9 +456,9 @@ "dev": true }, "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", "dev": true }, "cosmiconfig": { @@ -568,9 +568,9 @@ } }, "electron-to-chromium": { - "version": "1.3.813", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.813.tgz", - "integrity": "sha512-YcSRImHt6JZZ2sSuQ4Bzajtk98igQ0iKkksqlzZLzbh4p0OIyJRSvUbsgqfcR8txdfsoYCc4ym306t4p2kP/aw==", + "version": "1.3.827", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.827.tgz", + "integrity": "sha512-ye+4uQOY/jbjRutMcE/EmOcNwUeo1qo9aKL2tPyb09cU3lmxNeyDF4RWiemmkknW+p29h7dyDqy02higTxc9/A==", "dev": true }, "end-of-stream": {