From 4410ad6b889739430a2e8fa44bee52a6207bea49 Mon Sep 17 00:00:00 2001 From: SylwiaBrant <45368349+SylwiaBrant@users.noreply.github.com> Date: Tue, 2 Feb 2021 12:26:26 +0100 Subject: [PATCH] Updated guide to 0.5.0 (#501) - updated versions of plugins and images in the guide - added 'get-latest' to backup docs --- cicd/jobs/build.jenkins | 31 --------- cicd/pipelines/build.jenkins | 48 -------------- .../Getting Started/latest/configuration.md | 65 +++++++------------ .../latest/configure-backup-and-restore.md | 10 ++- .../Getting Started/latest/customization.md | 26 ++++---- .../Getting Started/latest/deploy-jenkins.md | 4 +- 6 files changed, 46 insertions(+), 138 deletions(-) delete mode 100644 cicd/jobs/build.jenkins delete mode 100644 cicd/pipelines/build.jenkins diff --git a/cicd/jobs/build.jenkins b/cicd/jobs/build.jenkins deleted file mode 100644 index b7d7b510..00000000 --- a/cicd/jobs/build.jenkins +++ /dev/null @@ -1,31 +0,0 @@ -#!/usr/bin/env groovy - -pipelineJob('build-jenkins-operator') { - displayName('Build jenkins-operator') - - logRotator { - numToKeep(10) - daysToKeep(30) - } - - configure { project -> - project / 'properties' / 'org.jenkinsci.plugins.workflow.job.properties.DurabilityHintJobProperty' { - hint('PERFORMANCE_OPTIMIZED') - } - } - - definition { - cpsScm { - scm { - git { - remote { - url('https://github.com/jenkinsci/kubernetes-operator.git') - credentials('jenkins-operator') - } - branches('*/master') - } - } - scriptPath('cicd/pipelines/build.jenkins') - } - } -} \ No newline at end of file diff --git a/cicd/pipelines/build.jenkins b/cicd/pipelines/build.jenkins deleted file mode 100644 index 1a463ce7..00000000 --- a/cicd/pipelines/build.jenkins +++ /dev/null @@ -1,48 +0,0 @@ -#!/usr/bin/env groovy - -def label = "build-jenkins-operator-${UUID.randomUUID().toString()}" -def home = "/home/jenkins" -def workspace = "${home}/workspace/build-jenkins-operator" -def workdir = "${workspace}/src/github.com/jenkinsci/kubernetes-operator/" - -podTemplate(label: label, - containers: [ - containerTemplate(name: 'jnlp', image: 'jenkins/inbound-agent:alpine'), - containerTemplate(name: 'go', image: 'golang:1-alpine', command: 'cat', ttyEnabled: true), - ], - envVars: [ - envVar(key: 'GOPATH', value: workspace), - ], - ) { - - node(label) { - dir(workdir) { - stage('Init') { - timeout(time: 3, unit: 'MINUTES') { - checkout scm - } - container('go') { - sh 'apk --no-cache --update add make git gcc libc-dev' - } - } - - stage('Dep') { - container('go') { - sh 'make dep' - } - } - - stage('Test') { - container('go') { - sh 'make test' - } - } - - stage('Build') { - container('go') { - sh 'make build' - } - } - } - } -} \ No newline at end of file diff --git a/website/content/en/docs/Getting Started/latest/configuration.md b/website/content/en/docs/Getting Started/latest/configuration.md index 9fbf0bca..19721edd 100644 --- a/website/content/en/docs/Getting Started/latest/configuration.md +++ b/website/content/en/docs/Getting Started/latest/configuration.md @@ -2,7 +2,7 @@ title: "Configuration" linkTitle: "Configuration" weight: 2 -date: 2021-01-18 +date: 2021-01-25 description: > How to configure Jenkins with Operator --- @@ -19,18 +19,29 @@ First you have to prepare pipelines and job definition in your GitHub repository ``` cicd/ ├── jobs -│   └── build.jenkins +│   └── k8s.jenkins └── pipelines - └── build.jenkins + └── k8s.jenkins ``` -**`cicd/jobs/build.jenkins`** is a job definition: +**`cicd/jobs/k8s.jenkins`** is a job definition: ``` #!/usr/bin/env groovy -pipelineJob('build-jenkins-operator') { - displayName('Build jenkins-operator') +pipelineJob('k8s-e2e') { + displayName('Kubernetes Plugin E2E Test') + + logRotator { + numToKeep(10) + daysToKeep(30) + } + + configure { project -> + project / 'properties' / 'org.jenkinsci.plugins.workflow.job.properties.DurabilityHintJobProperty' { + hint('PERFORMANCE_OPTIMIZED') + } + } definition { cpsScm { @@ -43,59 +54,31 @@ pipelineJob('build-jenkins-operator') { branches('*/master') } } - scriptPath('cicd/pipelines/build.jenkins') + scriptPath('cicd/pipelines/k8s.jenkins') } } } ``` -**`cicd/pipelines/build.jenkins`** is an actual Jenkins pipeline: +**`cicd/pipelines/k8s.jenkins`** is an actual Jenkins pipeline: ``` #!/usr/bin/env groovy -def label = "build-jenkins-operator-${UUID.randomUUID().toString()}" +def label = "k8s-${UUID.randomUUID().toString()}" def home = "/home/jenkins" def workspace = "${home}/workspace/build-jenkins-operator" def workdir = "${workspace}/src/github.com/jenkinsci/kubernetes-operator/" podTemplate(label: label, containers: [ - containerTemplate(name: 'jnlp', image: 'jenkins/inbound-agent:alpine'), - containerTemplate(name: 'go', image: 'golang:1-alpine', command: 'cat', ttyEnabled: true), - ], - envVars: [ - envVar(key: 'GOPATH', value: workspace), + containerTemplate(name: 'alpine', image: 'alpine:3.11', ttyEnabled: true, command: 'cat'), ], ) { - node(label) { - dir(workdir) { - stage('Init') { - timeout(time: 3, unit: 'MINUTES') { - checkout scm - } - container('go') { - sh 'apk --no-cache --update add make git gcc libc-dev' - } - } - - stage('Dep') { - container('go') { - sh 'make dep' - } - } - - stage('Test') { - container('go') { - sh 'make test' - } - } - - stage('Build') { - container('go') { - sh 'make build' - } + stage('Run shell') { + container('alpine') { + sh 'echo "hello world"' } } } diff --git a/website/content/en/docs/Getting Started/latest/configure-backup-and-restore.md b/website/content/en/docs/Getting Started/latest/configure-backup-and-restore.md index f73773ef..a5a4135c 100644 --- a/website/content/en/docs/Getting Started/latest/configure-backup-and-restore.md +++ b/website/content/en/docs/Getting Started/latest/configure-backup-and-restore.md @@ -2,7 +2,7 @@ title: "Configure backup and restore" linkTitle: "Configure backup and restore" weight: 10 -date: 2021-01-18 +date: 2021-01-25 description: > Prevent loss of job history --- @@ -48,7 +48,7 @@ spec: fsGroup: 1000 containers: - name: jenkins-master - image: jenkins/jenkins:lts + image: jenkins/jenkins:2.263.2-lts-alpine - name: backup # container responsible for the backup and restore env: - name: BACKUP_DIR @@ -57,7 +57,7 @@ spec: value: /jenkins-home - name: BACKUP_COUNT value: "3" # keep only the 2 most recent backups - image: virtuslab/jenkins-operator-backup-pvc:v0.0.8 # look at backup/pvc directory + image: virtuslab/jenkins-operator-backup-pvc:v0.1.0 # look at backup/pvc directory imagePullPolicy: IfNotPresent volumeMounts: - mountPath: /jenkins-home # Jenkins home volume @@ -74,6 +74,10 @@ spec: exec: command: - /home/user/bin/backup.sh # this command is invoked on "backup" container to make backup, for example /home/user/bin/backup.sh , is passed by operator + getLatestAction: + exec: + command: + - /home/user/bin/get-latest.sh # this command is invoked on "backup" container to get last backup number before pod deletion. If you don't omit it in CR, you can lose data interval: 30 # how often make backup in seconds makeBackupBeforePodDeletion: true # make a backup before pod deletion restore: diff --git a/website/content/en/docs/Getting Started/latest/customization.md b/website/content/en/docs/Getting Started/latest/customization.md index df1189a9..55c102f7 100644 --- a/website/content/en/docs/Getting Started/latest/customization.md +++ b/website/content/en/docs/Getting Started/latest/customization.md @@ -2,7 +2,7 @@ title: "Customization" linkTitle: "Customization" weight: 3 -date: 2021-01-18 +date: 2021-01-25 description: > How to customize Jenkins --- @@ -13,13 +13,13 @@ Plugin's configuration is applied as groovy scripts or the [configuration as cod Any plugin working for Jenkins can be installed by the Jenkins Operator. Pre-installed plugins: -* configuration-as-code v1.38 -* git v4.2.2 +* configuration-as-code v1.46 +* git v4.5.0 * job-dsl v1.77 -* kubernetes-credentials-provider v0.13 -* kubernetes v1.25.2 +* kubernetes-credentials-provider v0.15 +* kubernetes v1.28.6 * workflow-aggregator v2.6 -* workflow-job v2.38 +* workflow-job v2.40 Rest of the plugins can be found in [plugins repository](https://plugins.jenkins.io/). @@ -37,7 +37,7 @@ spec: master: plugins: - name: simple-theme-plugin - version: 0.5.1 + version: "0.6" ``` Under `spec.master.basePlugins` you can find plugins for a valid **Jenkins Operator**: @@ -51,19 +51,19 @@ spec: master: basePlugins: - name: kubernetes - version: 1.18.3 + version: "1.28.6" - name: workflow-job - version: "2.34" + version: "2.40" - name: workflow-aggregator version: "2.6" - name: git - version: 3.12.0 + version: "4.5.0" - name: job-dsl - version: "1.76" + version: "1.77" - name: configuration-as-code - version: "1.29" + version: "1.46" - name: kubernetes-credentials-provider - version: 0.12.1 + version: "0.15" ``` You can change their versions. diff --git a/website/content/en/docs/Getting Started/latest/deploy-jenkins.md b/website/content/en/docs/Getting Started/latest/deploy-jenkins.md index 331fb154..44f25fe4 100644 --- a/website/content/en/docs/Getting Started/latest/deploy-jenkins.md +++ b/website/content/en/docs/Getting Started/latest/deploy-jenkins.md @@ -2,7 +2,7 @@ title: "Deploy Jenkins" linkTitle: "Deploy Jenkins" weight: 1 -date: 2021-01-18 +date: 2021-01-25 description: > Deploy production ready Jenkins Operator manifest --- @@ -19,7 +19,7 @@ spec: master: containers: - name: jenkins-master - image: jenkins/jenkins:lts + image: jenkins/jenkins:2.263.2-lts-alpine imagePullPolicy: Always livenessProbe: failureThreshold: 12