From 2d1a67afb99625a8d95bc93f73d7217eaa61150d Mon Sep 17 00:00:00 2001
From: Ernestas
Date: Mon, 9 Aug 2021 19:40:59 +0300
Subject: [PATCH 01/21] Fix bad identation in chart/index.yaml (#619)
---
chart/index.yaml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/chart/index.yaml b/chart/index.yaml
index 0044cbeb..eb3b8c73 100644
--- a/chart/index.yaml
+++ b/chart/index.yaml
@@ -1,7 +1,7 @@
apiVersion: v1
entries:
jenkins-operator:
- - apiVersion: v2
+ - apiVersion: v2
appVersion: 0.6.0
created: "2021-06-11T13:50:32.677639006+02:00"
description: Kubernetes native operator which fully manages Jenkins on Kubernetes
From aedc2aff5975c081b46d3ed36167765b548edf7b Mon Sep 17 00:00:00 2001
From: Oleksandr Kovalchuk
Date: Tue, 10 Aug 2021 12:36:53 +0300
Subject: [PATCH 02/21] Add handling of empty WATCH_NAMESPACE value of
jenkins.namespace (#609)
* Add note that jenkins.namespace also affects jenkins-operator resources
* Add handling of empty WATCH_NAMESPACE value of jenkins.namespace
If jenkins.namespace is set to "", it leads to WATCH_NAMESPACE
environment value of Jenkins Operator itself to be set to "", which
leads that operator watches all namespaces (see
https://github.com/jenkinsci/kubernetes-operator/issues/77#issuecomment-523727092).
This case requires custom handling: instead of creating role and
role_binding we need to create clusterrole and clusterrolebinding with
the required permissions.
* Bump chart version
* Fix grammar as suggested by @Sig00rd
Co-authored-by: Sig00rd
---
chart/jenkins-operator/templates/_role.yaml | 6 +++--
.../templates/role_binding.yaml | 25 +++++++++++++++++--
chart/jenkins-operator/values.yaml | 3 ++-
3 files changed, 29 insertions(+), 5 deletions(-)
diff --git a/chart/jenkins-operator/templates/_role.yaml b/chart/jenkins-operator/templates/_role.yaml
index 9ff46064..4da31d4e 100644
--- a/chart/jenkins-operator/templates/_role.yaml
+++ b/chart/jenkins-operator/templates/_role.yaml
@@ -1,11 +1,13 @@
{{ define "jenkins-operator.role" }}
{{ $namespace := . }}
---
-kind: Role
+kind: {{ if eq $namespace "" }}ClusterRole{{ else }}Role{{ end }}
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: jenkins-operator
+{{- if ne $namespace "" }}
namespace: {{ $namespace }}
+{{- end }}
rules:
- apiGroups:
- apps
@@ -171,4 +173,4 @@ rules:
- get
- list
- watch
-{{ end }}
\ No newline at end of file
+{{ end }}
diff --git a/chart/jenkins-operator/templates/role_binding.yaml b/chart/jenkins-operator/templates/role_binding.yaml
index 23817139..879af247 100644
--- a/chart/jenkins-operator/templates/role_binding.yaml
+++ b/chart/jenkins-operator/templates/role_binding.yaml
@@ -12,7 +12,28 @@ roleRef:
kind: Role
name: jenkins-operator
apiGroup: rbac.authorization.k8s.io
-{{ if ne .Release.Namespace .Values.jenkins.namespace }}
+{{ if eq .Values.jenkins.namespace "" }}
+{{- /*
+# This is a special case when .Values.jenkins.namespace is equal to empty
+# string which leads to WATCH_NAMESPACE env of jenkins-operator to be set to
+# empty string and leads to operator actually watching all namespaces. In this
+# case we need to create clusterrole and clusterrolebinding instead of role and
+# rolebinding
+*/}}
+---
+kind: ClusterRoleBinding
+apiVersion: rbac.authorization.k8s.io/v1
+metadata:
+ name: jenkins-operator
+subjects:
+ - kind: ServiceAccount
+ name: jenkins-operator
+ namespace: {{ .Release.Namespace }}
+roleRef:
+ kind: ClusterRole
+ name: jenkins-operator
+ apiGroup: rbac.authorization.k8s.io
+{{ else if ne .Release.Namespace .Values.jenkins.namespace }}
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
@@ -27,4 +48,4 @@ roleRef:
kind: Role
name: jenkins-operator
apiGroup: rbac.authorization.k8s.io
-{{ end }}
\ No newline at end of file
+{{ end }}
diff --git a/chart/jenkins-operator/values.yaml b/chart/jenkins-operator/values.yaml
index 60c992cd..dac2d691 100644
--- a/chart/jenkins-operator/values.yaml
+++ b/chart/jenkins-operator/values.yaml
@@ -18,6 +18,7 @@ jenkins:
# namespace is the namespace where the resources will be deployed
# It's not recommended to use default namespace
# Create new namespace for jenkins (called e.g. jenkins)
+ # Note: this affects roles and rolebindings for jenkins operator itself
namespace: default
# labels are injected into metadata labels field
@@ -139,7 +140,7 @@ jenkins:
# slave Jenkins service
# See https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/schema/#github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2.Service for details
#slaveService:
-
+
# LivenessProbe for Jenkins Master pod
livenessProbe:
failureThreshold: 12
From ba78896ea6eaa999a07c7eca153cfd4ae864a1c1 Mon Sep 17 00:00:00 2001
From: Sig00rd
Date: Tue, 10 Aug 2021 12:15:46 +0200
Subject: [PATCH 03/21] Stale bot: configure time to close to 30 days after
stale (#622)
---
.github/stale.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/stale.yml b/.github/stale.yml
index ea6a07f2..30867b8b 100644
--- a/.github/stale.yml
+++ b/.github/stale.yml
@@ -5,7 +5,7 @@ daysUntilStale: 30
# Number of days of inactivity before a stale Issue or Pull Request is closed.
# Set to false to disable. If disabled, issues still need to be closed manually, but will remain marked as stale.
-daysUntilClose: 60
+daysUntilClose: 30
# Issues with these labels will never be considered stale
exemptLabels:
From 65bc574cb8e482a59edcd28e670262464e8123e9 Mon Sep 17 00:00:00 2001
From: Sig00rd
Date: Wed, 11 Aug 2021 14:49:53 +0200
Subject: [PATCH 04/21] Helm chart: Fix role and rb templates for case with
jenkins ns being empty string (#624)
---
chart/jenkins-operator/templates/role.yaml | 17 +++++--
.../templates/role_binding.yaml | 46 ++++++++++---------
2 files changed, 38 insertions(+), 25 deletions(-)
diff --git a/chart/jenkins-operator/templates/role.yaml b/chart/jenkins-operator/templates/role.yaml
index f3c31553..07bdec63 100644
--- a/chart/jenkins-operator/templates/role.yaml
+++ b/chart/jenkins-operator/templates/role.yaml
@@ -1,4 +1,15 @@
-{{ template "jenkins-operator.role" .Release.Namespace }}
-{{ if ne .Release.Namespace .Values.jenkins.namespace }}
-{{ template "jenkins-operator.role" .Values.jenkins.namespace }}
+{{ if eq .Values.jenkins.namespace "" }}
+{{- /*
+# This is a special case when .Values.jenkins.namespace is equal to empty
+# string which leads to WATCH_NAMESPACE env of jenkins-operator to be set to
+# empty string and leads to operator actually watching all namespaces. In this
+# case we need to create clusterrole and clusterrolebinding instead of role and
+# rolebinding
+*/ -}}
+ {{- template "jenkins-operator.role" .Values.jenkins.namespace }}
+{{ else }}
+ {{- template "jenkins-operator.role" .Release.Namespace }}
+ {{- if ne .Release.Namespace .Values.jenkins.namespace -}}
+ {{- template "jenkins-operator.role" .Values.jenkins.namespace }}
+ {{- end }}
{{ end }}
\ No newline at end of file
diff --git a/chart/jenkins-operator/templates/role_binding.yaml b/chart/jenkins-operator/templates/role_binding.yaml
index 879af247..c36b6a2a 100644
--- a/chart/jenkins-operator/templates/role_binding.yaml
+++ b/chart/jenkins-operator/templates/role_binding.yaml
@@ -1,3 +1,25 @@
+{{ if eq .Values.jenkins.namespace "" }}
+{{- /*
+# This is a special case when .Values.jenkins.namespace is equal to empty
+# string which leads to WATCH_NAMESPACE env of jenkins-operator to be set to
+# empty string and leads to operator actually watching all namespaces. In this
+# case we need to create clusterrole and clusterrolebinding instead of role and
+# rolebinding
+*/ -}}
+---
+kind: ClusterRoleBinding
+apiVersion: rbac.authorization.k8s.io/v1
+metadata:
+ name: jenkins-operator
+subjects:
+ - kind: ServiceAccount
+ name: jenkins-operator
+ namespace: {{ .Release.Namespace }}
+roleRef:
+ kind: ClusterRole
+ name: jenkins-operator
+ apiGroup: rbac.authorization.k8s.io
+{{ else }}
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
@@ -12,28 +34,7 @@ roleRef:
kind: Role
name: jenkins-operator
apiGroup: rbac.authorization.k8s.io
-{{ if eq .Values.jenkins.namespace "" }}
-{{- /*
-# This is a special case when .Values.jenkins.namespace is equal to empty
-# string which leads to WATCH_NAMESPACE env of jenkins-operator to be set to
-# empty string and leads to operator actually watching all namespaces. In this
-# case we need to create clusterrole and clusterrolebinding instead of role and
-# rolebinding
-*/}}
----
-kind: ClusterRoleBinding
-apiVersion: rbac.authorization.k8s.io/v1
-metadata:
- name: jenkins-operator
-subjects:
- - kind: ServiceAccount
- name: jenkins-operator
- namespace: {{ .Release.Namespace }}
-roleRef:
- kind: ClusterRole
- name: jenkins-operator
- apiGroup: rbac.authorization.k8s.io
-{{ else if ne .Release.Namespace .Values.jenkins.namespace }}
+{{ if ne .Release.Namespace .Values.jenkins.namespace }}
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
@@ -49,3 +50,4 @@ roleRef:
name: jenkins-operator
apiGroup: rbac.authorization.k8s.io
{{ end }}
+{{ end }}
From 851fb0d3e958705b87c5ca99ef07e02ecae9032d Mon Sep 17 00:00:00 2001
From: Sig00rd
Date: Wed, 11 Aug 2021 16:57:24 +0200
Subject: [PATCH 05/21] Release 0.5.3 Helm Chart
---
chart/index.yaml | 12 +++++++++++-
chart/jenkins-operator/Chart.yaml | 2 +-
.../jenkins-operator/jenkins-operator-0.5.3.tgz | Bin 0 -> 34227 bytes
3 files changed, 12 insertions(+), 2 deletions(-)
create mode 100644 chart/jenkins-operator/jenkins-operator-0.5.3.tgz
diff --git a/chart/index.yaml b/chart/index.yaml
index eb3b8c73..e23b3399 100644
--- a/chart/index.yaml
+++ b/chart/index.yaml
@@ -1,6 +1,16 @@
apiVersion: v1
entries:
jenkins-operator:
+ - apiVersion: v2
+ appVersion: 0.6.0
+ created: "2021-08-11T15:40:10.659538+02:00"
+ description: Kubernetes native operator which fully manages Jenkins on Kubernetes
+ digest: e79615d988cc0c0bb64996394268ff87d232797b72ab9ad9a7891e9999daee9f
+ icon: https://raw.githubusercontent.com/jenkinsci/kubernetes-operator/master/assets/jenkins-operator-icon.png
+ name: jenkins-operator
+ urls:
+ - https://raw.githubusercontent.com/jenkinsci/kubernetes-operator/master/chart/jenkins-operator/jenkins-operator/jenkins-operator-0.5.3.tgz
+ version: 0.5.3
- apiVersion: v2
appVersion: 0.6.0
created: "2021-06-11T13:50:32.677639006+02:00"
@@ -278,4 +288,4 @@ entries:
urls:
- https://raw.githubusercontent.com/jenkinsci/kubernetes-operator/master/chart/jenkins-operator/jenkins-operator-0.0.1.tgz
version: 0.0.1
-generated: "2021-06-11T13:50:32.675502593+02:00"
+generated: "2021-08-11T15:40:10.654972+02:00"
diff --git a/chart/jenkins-operator/Chart.yaml b/chart/jenkins-operator/Chart.yaml
index d90d312a..57c18e76 100644
--- a/chart/jenkins-operator/Chart.yaml
+++ b/chart/jenkins-operator/Chart.yaml
@@ -2,5 +2,5 @@ apiVersion: v2
appVersion: "0.6.0"
description: Kubernetes native operator which fully manages Jenkins on Kubernetes
name: jenkins-operator
-version: 0.5.2
+version: 0.5.3
icon: https://raw.githubusercontent.com/jenkinsci/kubernetes-operator/master/assets/jenkins-operator-icon.png
diff --git a/chart/jenkins-operator/jenkins-operator-0.5.3.tgz b/chart/jenkins-operator/jenkins-operator-0.5.3.tgz
new file mode 100644
index 0000000000000000000000000000000000000000..1772d8f3364923033e047bb360983dee4fbc705a
GIT binary patch
literal 34227
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
ae@)NyOwaVRJ^vE`0RR8*W1pY^>;nKCSJ$8b
literal 0
HcmV?d00001
From 058ea61d707f0e5864ebb4333c9ced6bfd06d188 Mon Sep 17 00:00:00 2001
From: Sig00rd
Date: Thu, 12 Aug 2021 10:58:54 +0200
Subject: [PATCH 06/21] Update project and repo documents (#621)
* Removed Contributor Covenant version from Code of Conduct doc
* Added a note on PRs with changes to Helm Chart to CONTRIBUTING doc
* Mentioned Discourse as current main channel of communication in README
* Updated ROADMAP
---
CODE_OF_CONDUCT.md | 3 +--
CONTRIBUTING.md | 9 ++++++++-
README.md | 9 +++++++--
ROADMAP.md | 25 ++++++++-----------------
4 files changed, 24 insertions(+), 22 deletions(-)
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
index d23cf3a6..ce608511 100644
--- a/CODE_OF_CONDUCT.md
+++ b/CODE_OF_CONDUCT.md
@@ -2,5 +2,4 @@
You can find the Jenkins Code of Conduct [on jenkins.io](https://jenkins.io/project/conduct/).
-It applies to the entire `jenkinsci` GitHub organization, among other community spaces.
-[version]: http://contributor-covenant.org/version/1/4/
\ No newline at end of file
+It applies to the entire `jenkinsci` GitHub organization, among other community spaces.
\ No newline at end of file
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 267761f1..5979cb3e 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -4,7 +4,7 @@ Thanks for taking the time to contribute!
## Code of Conduct
-This project and everyone participating in it is governed by the [Atom Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code.
+This project and everyone participating in it is governed by the [Jenkins Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code.
## We Develop with GitHub
We use GitHub to host code, to track issues and feature requests, as well as accept pull requests.
@@ -41,3 +41,10 @@ Design proposal is simply a document that states what you propose to do includin
- Breaking changes
Keep in mind that a proposal is not a pitch, it needs to be technical.
+
+### Proposing changes to Helm Chart
+When issuing a PR that modifies the project's Helm Chart, please do not include in your PR changes that would release a new package version when merged.
+
+Specifically, please do not update `chart/index.yaml` and `chart/jenkins-operator/Chart.yaml` files and do not build chart archive package.
+
+For the sake of PR's brevity and security, Project's maintainers will issue a separate PR that releases new version of the Chart after your PR has been merged.
\ No newline at end of file
diff --git a/README.md b/README.md
index 45d5b74f..d5faa1be 100644
--- a/README.md
+++ b/README.md
@@ -62,8 +62,11 @@ Selected content:
- Multibranch Pipelines and Backup Issues: https://github.com/jenkinsci/kubernetes-operator/issues/104#issuecomment-554289768
## Community
+Main channel of communication on topics related to Jenkins Operator is [Jenkins Operator Category](https://community.jenkins.io/c/contributing/jenkins-operator/20) on [Jenkins Community Discourse](https://community.jenkins.io/).
-We have a dedicated channel called `#jenkins-operator` on [virtuslab-oss.slack.com](https://virtuslab-oss.slack.com)
+Here you can ask questions about the project, discuss best practices on using it, and talk to other users of the Operator, contributors and project's maintainers.
+
+We also have a dedicated channel called `#jenkins-operator` on [virtuslab-oss.slack.com](https://virtuslab-oss.slack.com).
Fill out ([Invite form](https://forms.gle/X3X8qA1XMirdBuEH7)) and come say hi!
## Snapshots between releases
@@ -77,7 +80,8 @@ Look for the images with tag "{git-hash}", where {git-hash} is the hash of the m
## Contribution
-Feel free to file [issues](https://github.com/jenkinsci/kubernetes-operator/issues) or [pull requests](https://github.com/jenkinsci/kubernetes-operator/pulls).
+Feel free to file [issues](https://github.com/jenkinsci/kubernetes-operator/issues) or [pull requests](https://github.com/jenkinsci/kubernetes-operator/pulls),
+but please consult [CONTRIBUTING](https://github.com/jenkinsci/kubernetes-operator/CONTRIBUTING.md) document beforehand.
Before any big pull request please consult the maintainers to ensure a common direction.
@@ -85,6 +89,7 @@ Before any big pull request please consult the maintainers to ensure a common di
- [Jenkins World 2019 Lisbon](assets/Jenkins_World_Lisbon_2019%20-Jenkins_Kubernetes_Operator.pdf)
- [Jenkins Online Meetup 2020](assets/Jenkins_Online_Meetup-Jenkins_Kubernetes_Operator.pdf)
+- [Jenkins Online Meetup 2021](https://www.youtube.com/watch?v=BsYYVkophsk)
## About the authors
diff --git a/ROADMAP.md b/ROADMAP.md
index 4fea3c4d..fc9d66d1 100644
--- a/ROADMAP.md
+++ b/ROADMAP.md
@@ -4,37 +4,28 @@ This document outlines the vision and technical roadmap for [jenkinsci/kubernete
## Project Vision
-With Jenkins Operator project we want to enable our community to run Jenkins in cloud-native environments like Kubernetes, OpenShift and others. Also, support most of the public cloud providers (AWS, Azure, GCP) in terms of additional capabilities like backups, observability and cloud security.
-
+With Jenkins Operator project we want to enable our community to run Jenkins in cloud-native environments. Also, support most of the public cloud providers (AWS, Azure, GCP) in terms of additional capabilities like backups, observability and cloud security.
With declarative configuration and full lifecycle management based on [Operator Framework](https://operatorframework.io/) this can become the de facto standard for running Jenkins on top of Kubernetes.
-
-Now, we have a dedicated team which can bring more engineering effort to the project.
-
## Technical Roadmap
-
-- Upgrade Operator SDK [#494](https://github.com/jenkinsci/kubernetes-operator/issues/494)
- - https://github.com/operator-framework/operator-sdk/releases/tag/v1.3.0
-- Modularise codebase and define areas of responsibility (AWS, Azure, OpenShift)
- Break down Jenkins Custom Resource into smaller parts, support multiple Custom Resource Definitions [#495](https://github.com/jenkinsci/kubernetes-operator/issues/495)
- Introduce more granular schema for configuring Jenkins
- Introduce independent reconciliation controllers
- - Refactor e2e tests to support testing individual reconciliation controller
+ - Refactor e2e tests to support testing individual reconciliation controllers
+- Migrate Jenkins instance from Pod to Deployment [#497](https://github.com/jenkinsci/kubernetes-operator/issues/497)
+ - Unblock easier integration with 3rd party systems e.g. sidecars injection
- Improve contribution process and establish governance model [#496](https://github.com/jenkinsci/kubernetes-operator/issues/496)
- Improve CONTRIBUTING.md
- Introduce architecture decision proposals process
- Introduce governance model
-- Migrate Jenkins instance from Pod to Deployment [#497](https://github.com/jenkinsci/kubernetes-operator/issues/497)
- - Unblock easier integration with 3rd party systems e.g. sidecars injection
+- Engage with community more
+ - After releasing Operator version with new API, gather feedback from users on where the Operator should go next
- Reference Architecture - Jenkins on Kubernetes
- Bridge the gap between Jenkins and Kubernetes
- https://www.jenkins.io/blog/2020/12/04/gsod-project-report/
-- Pay technical debt
- - Review existing issues on GitHub and prioritise them
- - Introduce project board to track milestones
- - Fix existing bugs
+
## Have a Question?
-In case of further question feel free to create an issue or contact us directly.
+In case of questions, feel free to create a thread on [Jenkins Operator Category](https://community.jenkins.io/c/contributing/jenkins-operator/20) of Jenkins Community Discourse or contact us directly.
From ff6e03539c455b6efe7289188278aab317ff6577 Mon Sep 17 00:00:00 2001
From: Sig00rd
Date: Fri, 13 Aug 2021 16:55:58 +0200
Subject: [PATCH 07/21] Add step to update 'last modified' date in docs autogen
workflow (#627)
---
.github/workflows/auto-gen-docs.yaml | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/.github/workflows/auto-gen-docs.yaml b/.github/workflows/auto-gen-docs.yaml
index 5d7462d8..489421ea 100644
--- a/.github/workflows/auto-gen-docs.yaml
+++ b/.github/workflows/auto-gen-docs.yaml
@@ -55,6 +55,12 @@ jobs:
sudo npm install -D --save postcss-cli
cd ../
+ - name: Update last modified date in modified docs
+ if: env.IS_CHANGED == 'true'
+ run: |
+ git diff --name-only ${{ github.event.before }} ${{ github.sha }} | grep -E "^website*" \
+ | sed -e 's/\(.*\)/"\1"/' | xargs sed -i "/date:/c\date: $(date +'%Y-%m-%d')"
+
# Runs makefile goal - checks changes to /website folder and generates docs
- name: Run Makefile goal
if: env.IS_CHANGED == 'true'
From 16b4723b798e0c26ba4171d1ad60de7e2f3ad132 Mon Sep 17 00:00:00 2001
From: Piotr Ryba <55996264+prryb@users.noreply.github.com>
Date: Mon, 16 Aug 2021 10:51:11 +0200
Subject: [PATCH 08/21] Fix links on Installation page (#629)
---
website/content/en/docs/Installation/_index.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/website/content/en/docs/Installation/_index.md b/website/content/en/docs/Installation/_index.md
index 17b8df64..2ac2dbd8 100644
--- a/website/content/en/docs/Installation/_index.md
+++ b/website/content/en/docs/Installation/_index.md
@@ -20,7 +20,7 @@ To run **Jenkins Operator**, you will need:
- `kubectl` version `1.17+`
-Listed below are the two ways to deploy Jenkins Operator. For details on how to customize your Jenkins instance, refer to [Getting Started](/kubernetes-operator/docs/installation/).
+Listed below are the two ways to deploy Jenkins Operator. For details on how to customize your Jenkins instance, refer to [Getting Started](/kubernetes-operator/docs/getting-started/).
## Deploy Jenkins Operator using YAML's
@@ -43,7 +43,7 @@ kubectl get pods -w
```
Now **Jenkins Operator** should be up and running in the `default` namespace.
-For deploying Jenkins, refer to [Deploy Jenkins section](/kubernetes-operator/docs/installation/latest/deploy-jenkins/).
+For deploying Jenkins, refer to [Deploy Jenkins section](/kubernetes-operator/docs/getting-started/latest/deploy-jenkins/).
## Deploy Jenkins Operator using Helm Chart
From 4e046280a3811a5f2d9e7a9a9fb52c6247094ac5 Mon Sep 17 00:00:00 2001
From: Sig00rd
Date: Mon, 16 Aug 2021 10:54:12 +0200
Subject: [PATCH 09/21] Workflow: Release Helm chart (#626)
* Add Makefile target to release latest version of Helm chart
* Add workflow that packages Helm chart release and creates PR with it
* Remove old Helm targets
---
.github/workflows/release-helm-chart.yaml | 40 +++++++++++++++++++++++
Makefile | 14 +++-----
2 files changed, 44 insertions(+), 10 deletions(-)
create mode 100644 .github/workflows/release-helm-chart.yaml
diff --git a/.github/workflows/release-helm-chart.yaml b/.github/workflows/release-helm-chart.yaml
new file mode 100644
index 00000000..ece667f0
--- /dev/null
+++ b/.github/workflows/release-helm-chart.yaml
@@ -0,0 +1,40 @@
+name: Release Helm chart
+
+# Run this workflow manually
+on:
+ workflow_dispatch:
+ inputs:
+ chartVersion:
+ description: "Helm chart version to release. eg. 0.4.1"
+ required: true
+ appVersion:
+ description: "Operator app version without quotes, eg. 0.5.1 . If not provided, the one in Chart.yaml won't be overwritten."
+ required: false
+
+jobs:
+ release-helm-chart:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v2
+
+ - name: Deploy Helm chart
+ run: |
+ sed -i "/version:/c\version: ${{ github.event.inputs.chartVersion }}" chart/jenkins-operator/Chart.yaml
+
+ if [ ${{ github.event.inputs.appVersion }} ] ; then
+ sed -i "/appVersion:/c\appVersion: \"${{ github.event.inputs.appVersion }}\"" chart/jenkins-operator/Chart.yaml
+ fi
+
+ make helm-release-latest
+
+ # Creates pull request with new chart version
+ - name: Create Pull Request
+ uses: peter-evans/create-pull-request@v3
+ with:
+ commit-message: Release Helm chart ${{ github.event.inputs.chartVersion }}
+ branch: helm-chart-release-${{ github.event.inputs.chartVersion }}
+ title: Release ${{ github.event.inputs.chartVersion }} Helm Chart
+ body: |
+ Release ${{ github.event.inputs.chartVersion }} Helm Chart
\ No newline at end of file
diff --git a/Makefile b/Makefile
index 24d1f402..c775d529 100644
--- a/Makefile
+++ b/Makefile
@@ -407,21 +407,15 @@ helm-lint: helm
@echo "+ $@"
bin/helm lint chart/jenkins-operator
-.PHONY: helm-package
-helm-package: helm
+.PHONY: helm-release-latest
+helm-release-latest: helm
@echo "+ $@"
mkdir -p /tmp/jenkins-operator-charts
mv chart/jenkins-operator/*.tgz /tmp/jenkins-operator-charts
cd chart && ../bin/helm package jenkins-operator
+ mv chart/jenkins-operator-*.tgz chart/jenkins-operator/
+ bin/helm repo index chart/ --url https://raw.githubusercontent.com/jenkinsci/kubernetes-operator/master/chart/jenkins-operator/ --merge chart/index.yaml
mv /tmp/jenkins-operator-charts/*.tgz chart/jenkins-operator/
- rm -rf /tmp/jenkins-operator-charts/
- git add chart/jenkins-operator-*.tgz
-
-.PHONY: helm-deploy
-helm-deploy: helm-package
- @echo "+ $@"
- bin/helm repo index chart/ --url https://raw.githubusercontent.com/jenkinsci/kubernetes-operator/master/chart/jenkins-operator/
- cd chart/ && mv jenkins-operator-*.tgz jenkins-operator
# Download and build hugo extended locally if necessary
HUGO_PATH = $(shell pwd)/bin/hugo
From 39ec91da29833393977ef47008171574d2190f4a Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Mon, 16 Aug 2021 10:56:48 +0200
Subject: [PATCH 10/21] Auto-updated docs (#630)
Co-authored-by: prryb
---
docs/docs/installation/index.html | 8 +++----
docs/docs/installation/index.xml | 2 +-
docs/sitemap.xml | 2 +-
.../content/en/docs/Installation/_index.md | 2 +-
website/package-lock.json | 24 +++++++++----------
5 files changed, 19 insertions(+), 19 deletions(-)
diff --git a/docs/docs/installation/index.html b/docs/docs/installation/index.html
index 728a3edb..d439997b 100644
--- a/docs/docs/installation/index.html
+++ b/docs/docs/installation/index.html
@@ -26,7 +26,7 @@
" />
-
+
@@ -824,7 +824,7 @@ All container images can be found at Getting Started .
+Listed below are the two ways to deploy Jenkins Operator. For details on how to customize your Jenkins instance, refer to Getting Started .
Deploy Jenkins Operator using YAML’s
@@ -835,7 +835,7 @@ All container images can be found at kubectl get pods -w
Now Jenkins Operator should be up and running in the default namespace.
-For deploying Jenkins, refer to Deploy Jenkins section .
+For deploying Jenkins, refer to Deploy Jenkins section .
Deploy Jenkins Operator using Helm Chart
@@ -1836,7 +1836,7 @@ below is the full list of those volumeMounts:
- Last modified July 30, 2021
+
Last modified August 16, 2021
diff --git a/docs/docs/installation/index.xml b/docs/docs/installation/index.xml
index 37e38d05..6baf6651 100644
--- a/docs/docs/installation/index.xml
+++ b/docs/docs/installation/index.xml
@@ -4,7 +4,7 @@
https://jenkinsci.github.io/kubernetes-operator/docs/installation/
Recent Hugo news from gohugo.io
Hugo -- gohugo.io
- Fri, 30 Jul 2021 00:00:00 +0000
+ Mon, 16 Aug 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 b751f91f..dc7a37c7 100644
--- a/docs/sitemap.xml
+++ b/docs/sitemap.xml
@@ -4,7 +4,7 @@
https://jenkinsci.github.io/kubernetes-operator/docs/installation/
- 2021-07-30T00:00:00+00:00
+ 2021-08-16T00:00:00+00:00
diff --git a/website/content/en/docs/Installation/_index.md b/website/content/en/docs/Installation/_index.md
index 2ac2dbd8..671e3fe1 100644
--- a/website/content/en/docs/Installation/_index.md
+++ b/website/content/en/docs/Installation/_index.md
@@ -2,7 +2,7 @@
title: "Installation"
linkTitle: "Installation"
weight: 1
-date: 2021-07-30
+date: 2021-08-16
description: >
How to install Jenkins Operator
---
diff --git a/website/package-lock.json b/website/package-lock.json
index 334ea961..4eec346f 100644
--- a/website/package-lock.json
+++ b/website/package-lock.json
@@ -330,9 +330,9 @@
"dev": true
},
"caniuse-lite": {
- "version": "1.0.30001249",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001249.tgz",
- "integrity": "sha512-vcX4U8lwVXPdqzPWi6cAJ3FnQaqXbBqy/GZseKNQzRj37J7qZdGcBtxq/QLFNLLlfsoXLUdHw8Iwenri86Tagw==",
+ "version": "1.0.30001251",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001251.tgz",
+ "integrity": "sha512-HOe1r+9VkU4TFmnU70z+r7OLmtR+/chB1rdcJUeQlAinjEeb0cKL20tlAtOagNZhbrtLnCvV19B4FmF1rgzl6A==",
"dev": true
},
"chalk": {
@@ -432,9 +432,9 @@
"dev": true
},
"colorette": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz",
- "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.3.0.tgz",
+ "integrity": "sha512-ecORCqbSFP7Wm8Y6lyqMJjexBQqXSF7SSeaTyGGphogUjBlFP9m9o08wy86HL2uB7fMTxtOUzLMk7ogKcxMg1w==",
"dev": true
},
"component-emitter": {
@@ -568,9 +568,9 @@
}
},
"electron-to-chromium": {
- "version": "1.3.798",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.798.tgz",
- "integrity": "sha512-fwsr6oXAORoV9a6Ak2vMCdXfmHIpAGgpOGesulS1cbGgJmrMl3H+GicUyRG3t+z9uHTMrIuMTleFDW+EUFYT3g==",
+ "version": "1.3.806",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.806.tgz",
+ "integrity": "sha512-AH/otJLAAecgyrYp0XK1DPiGVWcOgwPeJBOLeuFQ5l//vhQhwC9u6d+GijClqJAmsHG4XDue81ndSQPohUu0xA==",
"dev": true
},
"end-of-stream": {
@@ -1370,9 +1370,9 @@
"dev": true
},
"node-releases": {
- "version": "1.1.73",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz",
- "integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==",
+ "version": "1.1.74",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.74.tgz",
+ "integrity": "sha512-caJBVempXZPepZoZAPCWRTNxYQ+xtG/KAi4ozTA5A+nJ7IU+kLQCbqaUjb5Rwy14M9upBWiQ4NutcmW04LJSRw==",
"dev": true
},
"normalize-path": {
From 38e46a13dd01d3aee590d663ab35a95d9f997761 Mon Sep 17 00:00:00 2001
From: Sig00rd
Date: Mon, 16 Aug 2021 15:01:24 +0200
Subject: [PATCH 11/21] Fix Helm package URL in Makefile & Index entry for
0.5.3 (#631)
* Fix url pointing to 0.5.3 Helm chart package in index
* Fix url used for indexing latest chart version in Makefile target releasing chart
---
Makefile | 2 +-
chart/index.yaml | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/Makefile b/Makefile
index c775d529..a67811a1 100644
--- a/Makefile
+++ b/Makefile
@@ -414,7 +414,7 @@ helm-release-latest: helm
mv chart/jenkins-operator/*.tgz /tmp/jenkins-operator-charts
cd chart && ../bin/helm package jenkins-operator
mv chart/jenkins-operator-*.tgz chart/jenkins-operator/
- bin/helm repo index chart/ --url https://raw.githubusercontent.com/jenkinsci/kubernetes-operator/master/chart/jenkins-operator/ --merge chart/index.yaml
+ bin/helm repo index chart/ --url https://raw.githubusercontent.com/jenkinsci/kubernetes-operator/master/chart/ --merge chart/index.yaml
mv /tmp/jenkins-operator-charts/*.tgz chart/jenkins-operator/
# Download and build hugo extended locally if necessary
diff --git a/chart/index.yaml b/chart/index.yaml
index e23b3399..98401d0b 100644
--- a/chart/index.yaml
+++ b/chart/index.yaml
@@ -9,7 +9,7 @@ entries:
icon: https://raw.githubusercontent.com/jenkinsci/kubernetes-operator/master/assets/jenkins-operator-icon.png
name: jenkins-operator
urls:
- - https://raw.githubusercontent.com/jenkinsci/kubernetes-operator/master/chart/jenkins-operator/jenkins-operator/jenkins-operator-0.5.3.tgz
+ - https://raw.githubusercontent.com/jenkinsci/kubernetes-operator/master/chart/jenkins-operator/jenkins-operator-0.5.3.tgz
version: 0.5.3
- apiVersion: v2
appVersion: 0.6.0
From e88d63fdf7e2087c7882fa3019904917e154f3fc Mon Sep 17 00:00:00 2001
From: Sig00rd
Date: Wed, 18 Aug 2021 17:53:19 +0200
Subject: [PATCH 12/21] Docs: minor fixes (#632)
* Fix descriptions of major releases
* Update meta links 'create documentation issue' link to use new docs issue template
* Update meta links 'create project issue' link to open issue template list instead of blank issue from meta links
* Fix typo in markdown in docs issue template
* Add Jenkins Discourse section in index, revisit index and about pages
* Fix favicon not showing by generating more favicon sizes with icongen
---
.github/ISSUE_TEMPLATE/documentation.md | 2 +-
website/content/en/_index.html | 22 +++++++-----------
website/content/en/about/_index.html | 8 +++----
.../en/docs/Getting Started/latest/_index.md | 4 ++--
.../en/docs/Getting Started/v0.1.x/_index.md | 4 ++--
.../en/docs/Getting Started/v0.2.x/_index.md | 4 ++--
.../en/docs/Getting Started/v0.3.x/_index.md | 4 ++--
.../en/docs/Getting Started/v0.4.x/_index.md | 4 ++--
.../en/docs/Getting Started/v0.5.x/_index.md | 4 ++--
website/layouts/partials/page-meta-links.html | 4 ++--
.../layouts/shortcodes/blocks/feature.html | 10 ++++++++
.../favicons/apple-touch-icon-180x180.png | Bin 0 -> 13970 bytes
website/static/favicons/favicon-16x16.png | Bin 0 -> 698 bytes
website/static/favicons/favicon-32x32.png | Bin 0 -> 1738 bytes
website/static/favicons/favicon.ico | Bin 15086 -> 1150 bytes
website/static/favicons/pwa-192x192.png | Bin 0 -> 15262 bytes
website/static/favicons/pwa-512x512.png | Bin 0 -> 28434 bytes
website/static/favicons/tile150x150.png | Bin 0 -> 22582 bytes
website/static/favicons/tile310x150.png | Bin 0 -> 25706 bytes
website/static/favicons/tile310x310.png | Bin 0 -> 30051 bytes
website/static/favicons/tile70x70.png | Bin 0 -> 9174 bytes
21 files changed, 37 insertions(+), 33 deletions(-)
create mode 100644 website/layouts/shortcodes/blocks/feature.html
create mode 100644 website/static/favicons/apple-touch-icon-180x180.png
create mode 100644 website/static/favicons/favicon-16x16.png
create mode 100644 website/static/favicons/favicon-32x32.png
create mode 100644 website/static/favicons/pwa-192x192.png
create mode 100644 website/static/favicons/pwa-512x512.png
create mode 100644 website/static/favicons/tile150x150.png
create mode 100644 website/static/favicons/tile310x150.png
create mode 100644 website/static/favicons/tile310x310.png
create mode 100644 website/static/favicons/tile70x70.png
diff --git a/.github/ISSUE_TEMPLATE/documentation.md b/.github/ISSUE_TEMPLATE/documentation.md
index a0ed0b42..9e5505f3 100644
--- a/.github/ISSUE_TEMPLATE/documentation.md
+++ b/.github/ISSUE_TEMPLATE/documentation.md
@@ -7,7 +7,7 @@ projects: ''
assignees: ''
---
-**Relevant links*
+**Relevant links**
Link(s) to the section(s) of documentation that are outdated or otherwise wrong
**Description**
diff --git a/website/content/en/_index.html b/website/content/en/_index.html
index 5c197e47..1b3da31f 100644
--- a/website/content/en/_index.html
+++ b/website/content/en/_index.html
@@ -24,20 +24,15 @@ linkTitle = "Jenkins Kubernetes Operator"
{{% /blocks/section %}}
{{% blocks/lead color="primary" %}}
-Jenkins operator is a Kubernetes native operator which fully manages Jenkins on Kubernetes. It was built with immutability and declarative configuration as code in mind.
+Jenkins Operator is a Kubernetes native operator which fully manages Jenkins on Kubernetes. It was built with immutability and declarative configuration as code in mind.
{{% /blocks/lead %}}
{{< blocks/section color="dark" >}}
-{{% blocks/feature icon="fa-hdd" title="Volumes handling" %}}
-AWS EBS volume attach/detach issue when using PVC
-{{% /blocks/feature %}}
-
{{% blocks/feature icon="fas fa-cogs" title="Better configuration as code" %}}
Use groovy scripts or JCasC to configure your Jenkins instance
{{% /blocks/feature %}}
-
{{% blocks/feature icon="fas fa-shield-alt" title="Security and hardening out of the box" %}}
Enable CSRF, disable usage stats, enable master access control and more by default
{{% /blocks/feature %}}
@@ -50,10 +45,6 @@ Less chance to lose data
Improve user experience by informing what has been done
{{% /blocks/feature %}}
-{{% blocks/feature icon="fas fa-file-archive" title="Backup and restore for jobs history" %}}
-Prevent loss of job history
-{{% /blocks/feature %}}
-
{{< /blocks/section >}}
@@ -69,14 +60,19 @@ We do a Pull Request contributions workflow on **GitHub**. New users are always
Learning the usage of Jenkins Operator will make your life easier. After that, you can easily contribute to the project.
{{% /blocks/feature %}}
-{{% blocks/feature icon="fab fa-slack" title="Join #jenkins-operator on Slack!" %}}
-Ask questions, receive help and talk with other users about operator on dedicated Slack channel.
+{{% blocks/feature icon="fab fa-jenkins" title="Jenkins Community Discourse" %}}
+Ask questions, discuss best practices and talk to other users about Jenkins Operator on a dedicated Discourse category.
+Visit Discourse
+{{% /blocks/feature %}}
+
+{{% blocks/feature icon="fab fa-slack" title="Join #jenkins-operator on Slack!" %}}
+Chat with other users about Jenkins Operator on dedicated Slack channel.
Invite form
+
Go to Slack
{{% /blocks/feature %}}
-
{{< /blocks/section >}}
diff --git a/website/content/en/about/_index.html b/website/content/en/about/_index.html
index 3668f264..cebc8915 100644
--- a/website/content/en/about/_index.html
+++ b/website/content/en/about/_index.html
@@ -21,20 +21,18 @@ Jenkins Operator is a Kubernetes native operator which fully manages Jenkins on
-
The main reason why we decided to write the jenkins-operator is the fact that we faced a lot of problems with standard Jenkins deployment. We want to make Jenkins more robust, suitable for dynamic and multi-tenant environments.
+
The main reason why we decided to develop the Jenkins Operator is the fact that we faced a lot of problems with standard Jenkins deployment. We want to make Jenkins more robust, suitable for dynamic and multi-tenant environments.
Some of the problems we want to solve:
- Volumes handling (AWS EBS volume attach/detach issue when using PVC)
Installing plugins with incompatible versions or security vulnerabilities
Better configuration as code
Lack of end to end tests
- Handle graceful shutdown properly
+ Handling graceful shutdown properly
Security and hardening out of the box
Orphaned jobs with no jnlp connection
- Make errors more visible for end users
- Backup and restore for jobs history
+ Making errors more visible for end users
diff --git a/website/content/en/docs/Getting Started/latest/_index.md b/website/content/en/docs/Getting Started/latest/_index.md
index 3a02a0c7..8561a6a0 100644
--- a/website/content/en/docs/Getting Started/latest/_index.md
+++ b/website/content/en/docs/Getting Started/latest/_index.md
@@ -4,11 +4,11 @@ linkTitle: "Latest (v0.6.x)"
weight: 10
date: 2021-01-18
description: >
- How to work with jenkins-operator to be released version
+ How to work with the latest, currently supported Jenkins Operator version.
---
{{% pageinfo %}}
-This document describes a getting started guide for **Jenkins Operator** currently in preview version and an additional configuration.
+This document describes a getting started guide for **Jenkins Operator** `v0.6.x` and also additional configuration.
{{% /pageinfo %}}
## First Steps
diff --git a/website/content/en/docs/Getting Started/v0.1.x/_index.md b/website/content/en/docs/Getting Started/v0.1.x/_index.md
index c79da4e4..b4a0deca 100644
--- a/website/content/en/docs/Getting Started/v0.1.x/_index.md
+++ b/website/content/en/docs/Getting Started/v0.1.x/_index.md
@@ -4,11 +4,11 @@ linkTitle: "v0.1.x"
weight: 10
date: 2019-08-05
description: >
- How to work with an older version of jenkins-operator. We recommend migration to a newer version.
+ How to work with Jenkins Operator 0.1.x version. We recommend migrating to a newer version.
---
{{% pageinfo %}}
-This document describes a getting started guide for **Jenkins Operator** `v0.1.x` and an additional configuration.
+This document describes a getting started guide for **Jenkins Operator** `v0.1.x` and also additional configuration.
{{% /pageinfo %}}
## First Steps
diff --git a/website/content/en/docs/Getting Started/v0.2.x/_index.md b/website/content/en/docs/Getting Started/v0.2.x/_index.md
index 5ed2d55b..2686e201 100644
--- a/website/content/en/docs/Getting Started/v0.2.x/_index.md
+++ b/website/content/en/docs/Getting Started/v0.2.x/_index.md
@@ -4,11 +4,11 @@ linkTitle: "v0.2.x"
weight: 10
date: 2019-08-05
description: >
- How to work with an older version of jenkins-operator. We recommend migration to a newer version.
+ How to work with Jenkins Operator 0.2.x version. We recommend migrating to a newer version.
---
{{% pageinfo %}}
-This document describes a getting started guide for **Jenkins Operator** `v0.2.x` and an additional configuration.
+This document describes a getting started guide for **Jenkins Operator** `v0.2.x` and also additional configuration.
{{% /pageinfo %}}
## First Steps
diff --git a/website/content/en/docs/Getting Started/v0.3.x/_index.md b/website/content/en/docs/Getting Started/v0.3.x/_index.md
index 552de6a5..88e6876c 100644
--- a/website/content/en/docs/Getting Started/v0.3.x/_index.md
+++ b/website/content/en/docs/Getting Started/v0.3.x/_index.md
@@ -4,11 +4,11 @@ linkTitle: "v0.3.x"
weight: 10
date: 2019-12-20
description: >
- How to work with an older version of jenkins-operator. We recommend migration to a newer version.
+ How to work with Jenkins Operator 0.3.x version. We recommend migrating to a newer version.
---
{{% pageinfo %}}
-This document describes a getting started guide for **Jenkins Operator** `v0.3.x` and an additional configuration.
+This document describes a getting started guide for **Jenkins Operator** `v0.3.x` and also additional configuration.
{{% /pageinfo %}}
## First Steps
diff --git a/website/content/en/docs/Getting Started/v0.4.x/_index.md b/website/content/en/docs/Getting Started/v0.4.x/_index.md
index e03fdc17..ac0c862e 100644
--- a/website/content/en/docs/Getting Started/v0.4.x/_index.md
+++ b/website/content/en/docs/Getting Started/v0.4.x/_index.md
@@ -4,11 +4,11 @@ linkTitle: "v0.4.x"
weight: 10
date: 2020-04-13
description: >
- How to work with jenkins-operator latest version
+ How to work with Jenkins Operator 0.4.x version. We recommend migrating to a newer version.
---
{{% pageinfo %}}
-This document describes a getting started guide for **Jenkins Operator** `v0.4.x` and an additional configuration.
+This document describes a getting started guide for **Jenkins Operator** `v0.4.x` and also additional configuration.
{{% /pageinfo %}}
## First Steps
diff --git a/website/content/en/docs/Getting Started/v0.5.x/_index.md b/website/content/en/docs/Getting Started/v0.5.x/_index.md
index 8950c703..109d1b1e 100644
--- a/website/content/en/docs/Getting Started/v0.5.x/_index.md
+++ b/website/content/en/docs/Getting Started/v0.5.x/_index.md
@@ -4,11 +4,11 @@ linkTitle: "v0.5.x"
weight: 10
date: 2021-01-18
description: >
- How to work with jenkins-operator latest version
+ How to work with Jenkins Operator 0.5.x version. We recommend migrating to a newer version.
---
{{% pageinfo %}}
-This document describes a getting started guide for **Jenkins Operator** `v0.5.x` and an additional configuration.
+This document describes a getting started guide for **Jenkins Operator** `v0.5.x` and also additional configuration.
{{% /pageinfo %}}
## First Steps
diff --git a/website/layouts/partials/page-meta-links.html b/website/layouts/partials/page-meta-links.html
index 16deaefa..28c85e4e 100644
--- a/website/layouts/partials/page-meta-links.html
+++ b/website/layouts/partials/page-meta-links.html
@@ -7,11 +7,11 @@
{{ if .Site.IsMultiLingual }}
{{ $editURL = printf "%s/edit/master/website/content/%s/%s" $gh_repo ($.Site.Language.Lang) .Path }}
{{ end }}
- {{ $issuesURL := printf "%s/issues/new?title=%s" $gh_repo (htmlEscape $.Title )}}
+ {{ $issuesURL := printf "%s/issues/new?labels=documentation&template=documentation.md&title=%s" $gh_repo (htmlEscape $.Title )}}
{{ T "post_edit_this" }}
{{ T "post_create_issue" }}
{{ if $gh_project_repo }}
- {{ $project_issueURL := printf "%s/issues/new" $gh_project_repo }}
+ {{ $project_issueURL := printf "%s/issues/new/choose" $gh_project_repo }}
{{ T "post_create_project_issue" }}
{{ end }}
diff --git a/website/layouts/shortcodes/blocks/feature.html b/website/layouts/shortcodes/blocks/feature.html
new file mode 100644
index 00000000..5a447b33
--- /dev/null
+++ b/website/layouts/shortcodes/blocks/feature.html
@@ -0,0 +1,10 @@
+{{ $icon := .Get "icon" | default "fa-lightbulb" }}
+{{ $url_text := .Get "url_text" }}
+
+
+
+
+
{{ .Get "title" | markdownify }}
+
{{ .Inner }}
+ {{ with .Get "url" }}
{{ with $url_text }}{{ $url_text }}{{ else }}{{ T "ui_read_more" }}{{ end }} …
{{ end }}
+
diff --git a/website/static/favicons/apple-touch-icon-180x180.png b/website/static/favicons/apple-touch-icon-180x180.png
new file mode 100644
index 0000000000000000000000000000000000000000..a839577343a62867d5fd826a6a642740adff70cf
GIT binary patch
literal 13970
zcmcJ0Ra9I}7bT4bcXxN!ppCn`1$PbZPLRgkX&~4aEVx^6ZQR|1d+_0(_j#O$d+VWU
z)v2mevd-RT$Ec~uq9PF?K|w*G%F9V`@X<`{zWF?xjqYkyN0X;RLvC02^16s
zl)RLfCSqI&m=(++A>4*anh)DLJ|*lniKJ2KcSp^!^J
z07^*kFUwS*M(H{OciR~Q|Cobv=^0x@{dPYb1op-~J#{Ch6Y*@A8E`RrAKG3f3Kdjr
zNlFIq3LC>;82J`I6Vd^7XO4y&`U-lMf$Pt;{QM_(NOzlFzUHk-SzuQt1U`nDusO!n%i7
z@kPg|O6e?p6G(L@uyIE-n_eu;+sI3uBMzwrA3FHCmS#BMU16>Yt{XnBeo#TV;FT+c
z)GJPoNLhoL1v-U@2YuV7EM>WWhLgJ?$5yae1I2VI&8osqI6ZiNtaHQI5u)NoHobLB
zU!B(vDqu@-@ISb^{e?c(e8NBhs4+8e@3qg(L5TwD(0cu#=FbXJV6rq%t%|pn{UPql
z1mc(@l?-CKNo(}%Z@TiD*z=T<_{?Ct7t$n!@2_XNpG|BNVHHi;^S=THpL}OeD=Uqa
z(Zq$}dMThV3)UF~MLESdtG(0}x+ZS!Cg@i0Caizl{ZQVeE;hfLeV|8wOZEN>+1yQy
z`luAhb(izrnZK?GTfe=wPL)6E3$*nPMl|INaalJ~#Rgf_Y4mVDnvVR8!VP7)JRP}k
zoFEsIV{3U~KDS5LLw%?H99P?J8NVc0eXgK?!GhkGmX$uW0RzfOk+BJmgRu9!#yLr&
zJjnUz{ZH}QJsC;1K?|Vbp2whCS9p|tN+b~4CXsZgfK|-wR+o92e5H$fMLBAmIkZcD
zN09AR^hO&o`kbLVN*^^G>tt^kkiOY2FVw@2^%O&DAe=ujFDi@l332
z8rzD;*9QuwAY}P5$BudAeGnFgZ{SCz-9N7&bgjO6|L
zs>6+Z#Usj^xYrMme(751VCF?
zuOEBtoSkfwk$0*9aQcAKfW#U&!%
zGU+>*FsVH~*^kb=1>5xA({r^9RHF)wa=H_q9r<@Hh|8B#&K%czV2UP|4?1
zzpX&f(e0x&Wgph!4aw~=I;p5Hf=O9zbJp*3~yIxeYYkX1^X5_ⅅvyev~
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
literal 0
HcmV?d00001
diff --git a/website/static/favicons/favicon-32x32.png b/website/static/favicons/favicon-32x32.png
new file mode 100644
index 0000000000000000000000000000000000000000..a0c0d9746fd05ff8e8c3972df6baabea46b9cef8
GIT binary patch
literal 1738
zcmV;*1~vJKP)Px*gh@m}R9HvtmU~o_br{FL@5Wx)1{;^TIh7paW~MmQATbe=*s+_Slw>EoozxVw
z%uFLxOv^YX86iex<`JU%>S)HK#8VVe36sGTHa5m>u#IhRXDd0*GGKX*|MdI!
z`#jI@^LuXZOW-yi;x^xp{{cqKfIu8^ggYs3-{M+u+M{^rkTz`pl
zMaE#l0hG;VTbz;ACtbDK|KFN7|CzMbD^0)id6Pxn>)$wzy=e<-bn50=9svN5
z@b3`IdOEd&J+dnAhVqlpH8mh`;uM6N@0t+_1il0jg@K3r_DmBXGa`Au3
z08=0eySOk(8vNAbOHo)@2rie4f`S4Uh)gEKS&bR``U*JpqeqXzX0xHV*f|V;>TA}l
zN$TqAI^$^x;vao}-~K^OW6bmGSGz9e^ZCfj%X7s$cI+4$2?2gP{So$T--4W+9QgbD
zBR@ZXSkK7FNHm#D-+2mwqVi!(Pa9(Fbl=1vXXI?!-X0|75SO_TR`!Vi9xe`!d(;SAJE5!Ok|=
z927d0)hNnZ3VB5xOeQl@l46jw;cY}FJmk`&9$b#xwU4xD)vDl81NaH=lrMN}-~DlO
z#F!Blh_dq=u1UPR=Q4TwozF>IIl;LNcB
zu>FIqiRp(Jk4mRwMrZ(J3mT1veQy?E)xl!d
zPB2_iyOz|L0K&q;ULGI>*%r$n?T*kW^!5#aNjhNAb-*^LMO0!ED9VAeXO4lSd&6ol
zVS4O+;0KNen;QUL=yV)E@Eq*a5NMonn82I@b8pY6GvJqyknnrE(J^7t-A|)euX4SX
zF^&x{(g%U&AE3Ha3%%WrZZ8A;HqC@FzXs6}ai}dV2Sw1pVzChrHxU|#0k#Gs7S3CV
zv&HY&g?wJUQmKp@X$<|OQfc+h?7hL8U)TeJ7wfXOSxvBCEyLGemSACGB3j!t@D}qx
zP4@xahk?G5MuY?fgGQr6)zJdNhXg&`4};&UArwcTU8O*1XbAk6M3YY6-PPKzkGUSi
zZ50cJLg}<=)83LwrNJagGT3Z3OePZ)iblxgXV83E1sa_O%0YoH=7O^>3g#c%aB6cQ
zL?RKQo=n8h>;RZ$O4!vs071BVBXvm%wl154MNjP=G#L9?HwCy(NDB`UeXuBgws(h4
zKOq01nlyIzdEJ;odL$pL<#)kLrpC@?n{cVA8He-Vb~D?(dpDR&Cf+YBFk37Gd1{Sr
z+h_m~Ar>Ano9({ptGZ9QJf5IOuRn6LS@!4gFgH3H7cN|YMxz-v8!r%|uI5)L6big?
z@F41HYhP(=Yuh<0fEzFK4d7Mwb-CB?nhk@&aP5D+UJr-EG3@Gm{jOcRP+ne+^z`&P
ztJRvL)oTCzO8s?4^*R2_R?G<$oa{Ad@BCXP2m%C+aPFO`@~eQ(v>nuQVfFDZy7Mv2m@FvKR&d@mjHp+3uRqjmQ~FL
z(DH8(W66MM-mIy0Z)UFKRMj^RzLNi0Sx2YQ`D;FW_<@`aX%F1HbI1A=!RnU^hEAWW
zjs{SBs{k-(M#x%=)wZR7!1BrEwhp&$zIMrEA@2zv*0}8y<)~1o+SlL85{wkfBYi9-
g@aTe(oNhb7AM~HCKh6C16951J07*qoM6N<$f*9XZs{jB1
literal 0
HcmV?d00001
diff --git a/website/static/favicons/favicon.ico b/website/static/favicons/favicon.ico
index 87111ebaab5acd2571480eda4a5d5f7e75aff7ae..e8eb6a0ad2e872269bd82d8047f594f1695fa7ab 100644
GIT binary patch
literal 1150
zcmZQzU<5(|0R|wcz>vYhz#zuJz@P!dKp~(AL>x#lFaYJ~1O$|IP12C<(ld9CFtYW~
zLl(ouwhxF~Ry}vee`8bA{YKgf^Q9HkDyQwc_to4zXg4lB$l}rd*5R_!B0qs*|5-U1
z|BHwU{g;!G_~zy1HQU(OctLJ%t_-qz7#rk9AlqDCM)V6vF9-_=2>drOF$A;CjWqw=
zx^?TnkB`q8m>wuC5E>dfAvrDUi-)(*PbMbD|4b~5U_BYB@&9MeocUi+Pyo!gvaj$z00*sV@Y@OWnza=^Ne@cMW|H4f7|NdS^|J&;e{x6%;`QOe??SE>L
zJ=hIsdcj<8UHN6RDl?u%+UWheva{p=_63#yC$?t&&ui-YpIz7czr8y7|Isz|IQ7HK
z1p58&te)ck@87@wfAGM*|B8yT{~aCd!2EM(PyZJd76zGt5B%?JtN)*plJXw}dRj{V
z*Hjk&Pft$=^Fu;H2Xrmii+aZpO@gi0qD5@
z+ZR@Y{rmaKoc|!Kt*-bRBpw@NGY6mJv*TS)rGzdUe
DaHHn;
literal 15086
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