Merge pull request #1 from jenkinsci/master

Merge master
This commit is contained in:
Mateusz Kajzik 2022-02-17 14:02:29 +01:00 committed by GitHub
commit 202d7a87b7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
286 changed files with 76556 additions and 31600 deletions

View File

@ -0,0 +1,4 @@
# Configuration for devbots-needs-triage - https://devbots.xyz/documentation/needs-triage/
enabled: true
label: "needs triage"

14
.github/ISSUE_TEMPLATE/documentation.md vendored Normal file
View File

@ -0,0 +1,14 @@
---
name: "📚 Documentation issue"
about: Suggest changes to project's documentation
title: ''
labels: 'documentation'
projects: ''
assignees: ''
---
**Relevant links**
Link(s) to the section(s) of documentation that are outdated or otherwise wrong
**Description**
Description of the changes you would like to see

47
.github/stale.yml vendored Normal file
View File

@ -0,0 +1,47 @@
# Configuration for probot-stale - https://github.com/probot/stale
# Number of days of inactivity before an issue becomes stale
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: 30
# Issues with these labels will never be considered stale
exemptLabels:
- frozen
# Set to true to ignore issues in a milestone (defaults to false)
exemptMilestones: true
# Label to use when marking an issue as stale
staleLabel: stale
issues:
# Comment to post when marking an issue as stale. Set to `false` to disable
markComment: >
This issue has been automatically marked as stale because it has not had recent activity.
It will be closed if no further activity occurs.
If this issue is still affecting you, just comment with any updates and we'll keep it open.
Thank you for your contributions.
# Comment to post when closing a stale issue. Set to `false` to disable
closeComment: >
Closing this issue after a prolonged period of inactivity.
If this issue is still present in the latest release, please create a new issue with up-to-date information. Thank you!
pulls:
# Comment to post when marking a pull request as stale.
markComment: >
This pull request has been automatically marked as stale because it has not had recent activity.
It will be closed if no further activity occurs.
If this pull request is still relevant, just comment with any updates and we'll keep it open.
Thank you for your contributions.
# Comment to post when closing a stale pull request. Set to `false` to disable
closeComment: >
Closing this pull request after a prolonged period of inactivity.
If this issue is still present in the latest release, please ask for this pull request to be reopened. Thank you!
# Limit the number of actions per hour, from 1-30. Default is 30
limitPerRun: 30

View File

@ -23,18 +23,15 @@ jobs:
submodules: recursive # Fetch the Docsy theme
fetch-depth: 0
# Checks out a copy of your repository on the ubuntu-latest machine
# Checks if the previous commit introduced any changes to website files
- name: Check for changes
run: |
if git diff --name-only ${{ github.event.before }} ${{ github.sha }} | grep -E "^website*"; then
git diff --name-only ${{ github.event.before }} ${{ github.sha }} | grep -E "^website*"
echo "IS_CHANGED=$(git diff --name-only ${{ github.event.before }} ${{ github.sha }} | grep -E "^website*")" >> $GITHUB_ENV
else
echo "IS_CHANGED=empty" >> $GITHUB_ENV
fi
IS_CHANGED=$(git diff --name-only ${{ github.event.before }} ${{ github.sha }} | grep -Ec "^website*" || :)
[[ $IS_CHANGED -gt 0 ]] && echo "IS_CHANGED=true" >> $GITHUB_ENV || echo "IS_CHANGED=false" >> $GITHUB_ENV
# Sets up the appropriate version of Hugo
- name: Setup Hugo
if: env.IS_CHANGED != 'empty'
if: env.IS_CHANGED == 'true'
uses: peaceiris/actions-hugo@v2
with:
hugo-version: '0.62.2'
@ -42,14 +39,14 @@ jobs:
# Sets up node - required by Hugo
- name: Setup Node
if: env.IS_CHANGED != 'empty'
if: env.IS_CHANGED == 'true'
uses: actions/setup-node@v1
with:
node-version: '12.x'
# Installs dependencies required by docsy theme
- name: Install docsy dependencies
if: env.IS_CHANGED != 'empty'
if: env.IS_CHANGED == 'true'
run: |
cd website
npm install
@ -57,17 +54,24 @@ jobs:
sudo npm install -D --save autoprefixer
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 --diff-filter=d ${{ 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 != 'empty'
if: env.IS_CHANGED == 'true'
env:
DEFAULT_BRANCH: master
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: make generate-docs
# Create push request with generated docs
# Creates pull request with generated docs
- name: Create Pull Request
if: env.IS_CHANGED != 'empty'
if: env.IS_CHANGED == 'true'
uses: peter-evans/create-pull-request@v3
with:
commit-message: Auto-updated docs

View File

@ -7,6 +7,11 @@ on:
types: [opened, synchronize, ready_for_review, reopened]
branches:
- master
env:
MINIKUBE_CPUS_NUMBER: 2
MINIKUBE_MEMORY_AMOUNT: 6144
jobs:
run-tests:
if: github.event.pull_request.draft == false
@ -43,13 +48,17 @@ jobs:
sudo apt-get install socat
sudo mkdir -p $HOME/.kube $HOME/.minikube
sudo chown -R $USER $HOME/.kube $HOME/.minikube
make minikube-start MINIKUBE_DRIVER='docker' CPUS_NUMBER=2
make minikube-start \
MINIKUBE_DRIVER='docker' \
MEMORY_AMOUNT=${{ env.MINIKUBE_MEMORY_AMOUNT }} \
CPUS_NUMBER=${{ env.MINIKUBE_CPUS_NUMBER }}
- name: Jenkins Operator - e2e
run: make e2e E2E_TEST_ARGS='-ginkgo.v'
- name: Jenkins Operator - Helm Chart tests
run: |
git reset --hard
make helm-lint
eval $(bin/minikube docker-env)
make helm-e2e E2E_TEST_ARGS='-ginkgo.v'

77
.github/workflows/deploy-nightly.yaml vendored Normal file
View File

@ -0,0 +1,77 @@
name: Publish nightly snapshot
on:
schedule:
- cron: '0 2 * * *'
workflow_dispatch:
inputs:
skipTests:
description: "Flag for skipping the tests. If set to true (without quotation marks), the workflow will skip tests and go straight to releasing the nightly build. Use with caution!"
required: false
env:
MINIKUBE_CPUS_NUMBER: 2
MINIKUBE_MEMORY_AMOUNT: 6144
jobs:
publish-image:
name: Publish nightly snapshot
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v2
- name: Set up env vars
run: |
echo "GO111MODULE=on" >> $GITHUB_ENV
echo "CHANGE_MINIKUBE_NONE_USER=true" >> $GITHUB_ENV
echo "MINIKUBE_WANTUPDATENOTIFICATION=false" >> $GITHUB_ENV
echo "MINIKUBE_WANTREPORTERRORPROMPT=false" >> $GITHUB_ENV
echo "GO_VERSION=v$(sed -n 's/GO_VERSION=//p' config.base.env)" >> $GITHUB_ENV
echo "HELM_VERSION=v$(sed -n 's/HELM_VERSION=//p' config.base.env)" >> $GITHUB_ENV
echo "GOPATH=/home/runner/go" >> $GITHUB_ENV
- name: Prepare go environment
uses: actions/setup-go@v2
with:
go-version: ${{ env.GO_VERSION }}
- name: Ensure Golang runtime dependencies
run: make go-dependencies
- name: Verify code formatting
run: make verify
- name: Prepare environment for e2e
if: ${{ github.event.inputs.skipTests != 'true' }}
run: |
sudo apt-get update
sudo apt-get install socat
sudo mkdir -p $HOME/.kube $HOME/.minikube
sudo chown -R $USER $HOME/.kube $HOME/.minikube
make minikube-start \
MINIKUBE_DRIVER='docker' \
MEMORY_AMOUNT=${{ env.MINIKUBE_MEMORY_AMOUNT }} \
CPUS_NUMBER=${{ env.MINIKUBE_CPUS_NUMBER }}
- name: Jenkins Operator - e2e
if: ${{ github.event.inputs.skipTests != 'true' }}
run: make e2e E2E_TEST_ARGS='-ginkgo.v'
- name: Jenkins Operator - Helm Chart tests
if: ${{ github.event.inputs.skipTests != 'true' }}
run: |
git reset --hard
make helm-lint
eval $(bin/minikube docker-env)
make helm-e2e E2E_TEST_ARGS='-ginkgo.v'
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- name: Release Container Runtime
run: |
git reset --hard
make container-runtime-snapshot-push

View File

@ -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 '0,/version:.*/s//version: ${{ github.event.inputs.chartVersion }}/' chart/jenkins-operator/Chart.yaml
if [ ${{ github.event.inputs.appVersion }} ] ; then
sed -i '/appVersion:.*/s//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

View File

@ -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/
It applies to the entire `jenkinsci` GitHub organization, among other community spaces.

View File

@ -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.

View File

@ -3,6 +3,8 @@ ARG GO_VERSION
# Build the manager binary
FROM golang:$GO_VERSION as builder
ARG CTIMEVAR
ARG TARGETOS
ARG TARGETARCH
WORKDIR /workspace
# Copy the Go Modules manifests
@ -21,7 +23,7 @@ COPY version/ version/
COPY main.go main.go
# Build
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 GO111MODULE=on go build -ldflags "-w $CTIMEVAR" -o manager main.go
RUN CGO_ENABLED=0 GOOS=$TARGETOS GOARCH=$TARGETARCH GO111MODULE=on go build -ldflags "-w $CTIMEVAR" -o manager main.go
# Use distroless as minimal base image to package the manager binary
# Refer to https://github.com/GoogleContainerTools/distroless for more details

138
Makefile
View File

@ -95,8 +95,9 @@ e2e: deepcopy-gen manifests ## Runs e2e tests, you can use EXTRA_ARGS
-jenkins-api-hostname=$(JENKINS_API_HOSTNAME) -jenkins-api-port=$(JENKINS_API_PORT) -jenkins-api-use-nodeport=$(JENKINS_API_USE_NODEPORT) $(E2E_TEST_ARGS)
.PHONY: helm-e2e
IMAGE_NAME := $(DOCKER_REGISTRY):$(GITCOMMIT)
helm-e2e: helm container-runtime-build ## Runs helm e2e tests, you can use EXTRA_ARGS
IMAGE_NAME := $(DOCKER_REGISTRY):$(GITCOMMIT)-amd64
helm-e2e: helm container-runtime-build-amd64 ## Runs helm e2e tests, you can use EXTRA_ARGS
@echo "+ $@"
RUNNING_TESTS=1 go test -parallel=1 "./test/helm/" -ginkgo.v -tags "$(BUILDTAGS) cgo" -v -timeout 60m -run "$(E2E_TEST_SELECTOR)" -image-name=$(IMAGE_NAME) $(E2E_TEST_ARGS)
@ -206,46 +207,66 @@ endif
container-runtime-login: ## Log in into the Docker repository
@echo "+ $@"
.PHONY: container-runtime-build
container-runtime-build: check-env deepcopy-gen ## Build the container
.PHONY: container-runtime-build-%
container-runtime-build-%: ## Build the container
@echo "+ $@"
$(CONTAINER_RUNTIME_COMMAND) build \
--build-arg GO_VERSION=$(GO_VERSION) \
--build-arg CTIMEVAR="$(CTIMEVAR)" \
-t $(DOCKER_REGISTRY):$(GITCOMMIT) . \
--file Dockerfile $(CONTAINER_RUNTIME_EXTRA_ARGS)
$(CONTAINER_RUNTIME_COMMAND) buildx build \
--output=type=docker --platform linux/$* \
--build-arg GO_VERSION=$(GO_VERSION) \
--build-arg CTIMEVAR="$(CTIMEVAR)" \
--tag $(DOCKER_REGISTRY):$(GITCOMMIT)-$* . \
--file Dockerfile $(CONTAINER_RUNTIME_EXTRA_ARGS)
.PHONY: container-runtime-build
container-runtime-build: check-env deepcopy-gen container-runtime-build-amd64 container-runtime-build-arm64
.PHONY: container-runtime-images
container-runtime-images: ## List all local containers
@echo "+ $@"
$(CONTAINER_RUNTIME_COMMAND) images $(CONTAINER_RUNTIME_EXTRA_ARGS)
define buildx-create-command
$(CONTAINER_RUNTIME_COMMAND) buildx create \
--driver=docker-container \
--use
endef
## Parameter is version
define container-runtime-push-command
$(CONTAINER_RUNTIME_COMMAND) buildx build \
--output=type=registry --platform linux/amd64,linux/arm64 \
--build-arg GO_VERSION=$(GO_VERSION) \
--build-arg CTIMEVAR="$(CTIMEVAR)" \
--tag $(DOCKER_ORGANIZATION)/$(DOCKER_REGISTRY):$(1) . \
--file Dockerfile $(CONTAINER_RUNTIME_EXTRA_ARGS)
endef
.PHONY: container-runtime-push
container-runtime-push: ## Push the container
container-runtime-push: check-env deepcopy-gen ## Push the container
@echo "+ $@"
$(CONTAINER_RUNTIME_COMMAND) tag $(DOCKER_REGISTRY):$(GITCOMMIT) $(DOCKER_ORGANIZATION)/$(DOCKER_REGISTRY):$(BUILD_TAG) $(CONTAINER_RUNTIME_EXTRA_ARGS)
$(CONTAINER_RUNTIME_COMMAND) push $(DOCKER_ORGANIZATION)/$(DOCKER_REGISTRY):$(BUILD_TAG) $(CONTAINER_RUNTIME_EXTRA_ARGS)
$(call buildx-create-command)
$(call container-runtime-push-command,$(BUILD_TAG))
.PHONY: container-runtime-snapshot-push
container-runtime-snapshot-push:
container-runtime-snapshot-push: check-env deepcopy-gen
@echo "+ $@"
$(CONTAINER_RUNTIME_COMMAND) tag $(DOCKER_REGISTRY):$(GITCOMMIT) $(DOCKER_ORGANIZATION)/$(DOCKER_REGISTRY):$(GITCOMMIT) $(CONTAINER_RUNTIME_EXTRA_ARGS)
$(CONTAINER_RUNTIME_COMMAND) push $(DOCKER_ORGANIZATION)/$(DOCKER_REGISTRY):$(GITCOMMIT) $(CONTAINER_RUNTIME_EXTRA_ARGS)
$(call buildx-create-command)
$(call container-runtime-push-command,$(GITCOMMIT))
.PHONY: container-runtime-release-version
container-runtime-release-version: ## Release image with version tag (in addition to build tag)
container-runtime-release-version: check-env deepcopy-gen ## Release image with version tag (in addition to build tag)
@echo "+ $@"
$(CONTAINER_RUNTIME_COMMAND) tag $(DOCKER_REGISTRY):$(GITCOMMIT) $(DOCKER_ORGANIZATION)/$(DOCKER_REGISTRY):$(VERSION_TAG) $(CONTAINER_RUNTIME_EXTRA_ARGS)
$(CONTAINER_RUNTIME_COMMAND) push $(DOCKER_ORGANIZATION)/$(DOCKER_REGISTRY):$(VERSION_TAG) $(CONTAINER_RUNTIME_EXTRA_ARGS)
$(call buildx-create-command)
$(call container-runtime-push-command,$(VERSION_TAG))
.PHONY: container-runtime-release-latest
container-runtime-release-latest: ## Release image with latest tags (in addition to build tag)
container-runtime-release-latest: check-env deepcopy-gen ## Release image with latest tags (in addition to build tag)
@echo "+ $@"
$(CONTAINER_RUNTIME_COMMAND) tag $(DOCKER_REGISTRY):$(GITCOMMIT) $(DOCKER_ORGANIZATION)/$(DOCKER_REGISTRY):$(LATEST_TAG) $(CONTAINER_RUNTIME_EXTRA_ARGS)
$(CONTAINER_RUNTIME_COMMAND) push $(DOCKER_ORGANIZATION)/$(DOCKER_REGISTRY):$(LATEST_TAG) $(CONTAINER_RUNTIME_EXTRA_ARGS)
$(call buildx-create-command)
$(call container-runtime-push-command,$(LATEST_TAG))
.PHONY: container-runtime-release
container-runtime-release: container-runtime-build container-runtime-release-version container-runtime-release-latest ## Release image with version and latest tags (in addition to build tag)
container-runtime-release: container-runtime-release-version container-runtime-release-latest ## Release image with version and latest tags (in addition to build tag)
@echo "+ $@"
# if this session isn't interactive, then we don't want to allocate a
@ -284,10 +305,10 @@ HAS_GEN_CRD_API_REFERENCE_DOCS := $(shell ls gen-crd-api-reference-docs 2> /dev/
scheme-doc-gen: ## Generate Jenkins CRD scheme doc
@echo "+ $@"
ifndef HAS_GEN_CRD_API_REFERENCE_DOCS
@wget https://github.com/ahmetb/$(GEN_CRD_API)/releases/download/v0.1.2/$(GEN_CRD_API)_linux_amd64.tar.gz
@wget https://github.com/ahmetb/$(GEN_CRD_API)/releases/download/v0.1.2/$(GEN_CRD_API)_$(PLATFORM)_amd64.tar.gz
@mkdir -p $(GEN_CRD_API)
@tar -C $(GEN_CRD_API) -zxf $(GEN_CRD_API)_linux_amd64.tar.gz
@rm $(GEN_CRD_API)_linux_amd64.tar.gz
@tar -C $(GEN_CRD_API) -zxf $(GEN_CRD_API)_$(PLATFORM)_amd64.tar.gz
@rm $(GEN_CRD_API)_$(PLATFORM)_amd64.tar.gz
endif
$(GEN_CRD_API)/$(GEN_CRD_API) -config gen-crd-api-config.json -api-dir $(PKG)/api/$(API_VERSION) -template-dir $(GEN_CRD_API)/template -out-file documentation/$(VERSION)/jenkins-$(API_VERSION)-scheme.md
@ -333,7 +354,7 @@ endif
minikube-start: minikube check-minikube ## Start minikube
@echo "+ $@"
bin/minikube status && exit 0 || \
bin/minikube start --kubernetes-version $(MINIKUBE_KUBERNETES_VERSION) --dns-domain=$(CLUSTER_DOMAIN) --extra-config=kubelet.cluster-domain=$(CLUSTER_DOMAIN) --driver=$(MINIKUBE_DRIVER) --memory 4096 --cpus $(CPUS_NUMBER)
bin/minikube start --kubernetes-version $(MINIKUBE_KUBERNETES_VERSION) --dns-domain=$(CLUSTER_DOMAIN) --extra-config=kubelet.cluster-domain=$(CLUSTER_DOMAIN) --driver=$(MINIKUBE_DRIVER) --memory $(MEMORY_AMOUNT) --cpus $(CPUS_NUMBER)
.PHONY: crc-start
crc-start: check-crc ## Start CodeReady Containers Kubernetes cluster
@ -345,7 +366,7 @@ HAS_SEMBUMP := $(shell which $(PROJECT_DIR)/bin/sembump)
sembump: # Download sembump locally if necessary
@echo "+ $@"
ifndef HAS_SEMBUMP
mkdir bin
mkdir -p $(PROJECT_DIR)/bin
wget -O $(PROJECT_DIR)/bin/sembump https://github.com/justintout/sembump/releases/download/v0.1.0/sembump-$(PLATFORM)-amd64
chmod +x $(PROJECT_DIR)/bin/sembump
endif
@ -358,16 +379,19 @@ bump-version: sembump ## Bump the version in the version file. Set BUMP to [ pat
@echo "Bumping VERSION.txt from $(VERSION) to $(NEW_VERSION)"
echo $(NEW_VERSION) > VERSION.txt
@echo "Updating version from $(VERSION) to $(NEW_VERSION) in README.md"
sed -i s/$(VERSION)/$(NEW_VERSION)/g README.md
sed -i s/$(VERSION)/$(NEW_VERSION)/g deploy/operator.yaml
sed -i s/$(VERSION)/$(NEW_VERSION)/g deploy/$(ALL_IN_ONE_DEPLOY_FILE_PREFIX)-$(API_VERSION).yaml
sed -i.bak 's/$(VERSION)/$(NEW_VERSION)/g' README.md
sed -i.bak 's/$(VERSION)/$(NEW_VERSION)/g' config/manager/manager.yaml
sed -i.bak 's/$(VERSION)/$(NEW_VERSION)/g' deploy/$(ALL_IN_ONE_DEPLOY_FILE_PREFIX)-$(API_VERSION).yaml
rm */*/**.bak
rm */**.bak
rm *.bak
cp config/service_account.yaml deploy/$(ALL_IN_ONE_DEPLOY_FILE_PREFIX)-$(API_VERSION).yaml
cat config/rbac/leader_election_role.yaml >> config/$(ALL_IN_ONE_DEPLOY_FILE_PREFIX)-$(API_VERSION).yaml
cat config/rbac/leader_election_role_binding.yaml >> config/$(ALL_IN_ONE_DEPLOY_FILE_PREFIX)=$(API_VERSION).yaml
cat config/rbac/role.yaml >> config/$(ALL_IN_ONE_DEPLOY_FILE_PREFIX)=$(API_VERSION).yaml
cat config/rbac/role_binding.yaml >> config/$(ALL_IN_ONE_DEPLOY_FILE_PREFIX)-$(API_VERSION).yaml
cat config/manager/manager.yaml >> config/$(ALL_IN_ONE_DEPLOY_FILE_PREFIX)-$(API_VERSION).yaml
git add VERSION.txt README.md config/manager/manager.yaml config/$(ALL_IN_ONE_DEPLOY_FILE_PREFIX)-$(API_VERSION).yaml
cat config/rbac/leader_election_role.yaml >> deploy/$(ALL_IN_ONE_DEPLOY_FILE_PREFIX)-$(API_VERSION).yaml
cat config/rbac/leader_election_role_binding.yaml >> deploy/$(ALL_IN_ONE_DEPLOY_FILE_PREFIX)-$(API_VERSION).yaml
cat config/rbac/role.yaml >> deploy/$(ALL_IN_ONE_DEPLOY_FILE_PREFIX)-$(API_VERSION).yaml
cat config/rbac/role_binding.yaml >> deploy/$(ALL_IN_ONE_DEPLOY_FILE_PREFIX)-$(API_VERSION).yaml
cat config/manager/manager.yaml >> deploy/$(ALL_IN_ONE_DEPLOY_FILE_PREFIX)-$(API_VERSION).yaml
git add VERSION.txt README.md config/manager/manager.yaml deploy/$(ALL_IN_ONE_DEPLOY_FILE_PREFIX)-$(API_VERSION).yaml
git commit -vaem "Bump version to $(NEW_VERSION)"
@echo "Run make tag to create and push the tag for new version $(NEW_VERSION)"
@ -405,20 +429,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
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/ --merge chart/index.yaml
mv /tmp/jenkins-operator-charts/*.tgz chart/jenkins-operator/
rm -rf /tmp/jenkins-operator-charts/
.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
@ -439,17 +458,10 @@ generate-docs: hugo ## Re-generate docs directory from the website directory
cd website && npm install
$(HUGO_PATH)/hugo -s website -d ../docs
.PHONY: all-in-one-build
FILENAME := config/all_in_one_$(API_VERSION).yaml
all-in-one-build: ## Re-generate all-in-one yaml
.PHONY: run-docs
run-docs: hugo
@echo "+ $@"
> $(FILENAME)
cat config/service_account.yaml >> $(FILENAME)
cat config/rbac/leader_election_role.yaml >> $(FILENAME)
cat config/rbac/leader_election_role_binding.yaml >> $(FILENAME)
cat config/rbac/role.yaml >> $(FILENAME)
cat config/rbac/role_binding.yaml >> $(FILENAME)
cat config/manager/manager.yaml >> $(FILENAME)
cd website && $(HUGO_PATH)/hugo server -D
##################### FROM OPERATOR SDK ########################
# Install CRDs into a cluster
@ -470,7 +482,7 @@ undeploy:
$(KUSTOMIZE) build config/default | kubectl delete -f -
# Generate manifests e.g. CRD, RBAC etc.
manifests: controller-gen all-in-one-build
manifests: controller-gen
$(CONTROLLER_GEN) $(CRD_OPTIONS) rbac:roleName=manager-role webhook paths="./..." output:crd:artifacts:config=config/crd/bases
# Generate code
@ -527,3 +539,15 @@ kubebuilder:
mkdir -p ${ENVTEST_ASSETS_DIR}
test -f ${ENVTEST_ASSETS_DIR}/setup-envtest.sh || curl -sSLo ${ENVTEST_ASSETS_DIR}/setup-envtest.sh https://raw.githubusercontent.com/kubernetes-sigs/controller-runtime/v0.7.0/hack/setup-envtest.sh
source ${ENVTEST_ASSETS_DIR}/setup-envtest.sh; fetch_envtest_tools $(ENVTEST_ASSETS_DIR); setup_envtest_env $(ENVTEST_ASSETS_DIR);
# install cert-manager v1.5.1
install-cert-manager: minikube-start
kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.5.1/cert-manager.yaml
uninstall-cert-manager: minikube-start
kubectl delete -f https://github.com/jetstack/cert-manager/releases/download/v1.5.1/cert-manager.yaml
# Deploy the operator locally along with webhook using helm charts
deploy-webhook: container-runtime-build-amd64
@echo "+ $@"
bin/helm upgrade jenkins chart/jenkins-operator --install --set-string operator.image=${IMAGE_NAME} --set webhook.enabled=true --set jenkins.enabled=false

View File

@ -7,6 +7,7 @@ resources:
group: jenkins.io
kind: Jenkins
version: v1alpha2
webhookVersion: v1
version: 3-alpha
plugins:
manifests.sdk.operatorframework.io/v2: {}

View File

@ -1,6 +1,6 @@
# Jenkins Operator
[![Version](https://img.shields.io/badge/version-v0.5.0-brightgreen.svg)](https://github.com/jenkinsci/kubernetes-operator/releases/tag/v0.5.0)
[![Version](https://img.shields.io/badge/version-v0.7.0-brightgreen.svg)](https://github.com/jenkinsci/kubernetes-operator/releases/tag/v0.7.0)
[![Build status](https://github.com/jenkinsci/kubernetes-operator/actions/workflows/auto-tests.yaml/badge.svg)](https://github.com/jenkinsci/kubernetes-operator/actions/workflows/auto-tests.yaml)
[![Go Report Card](https://goreportcard.com/badge/github.com/jenkinsci/kubernetes-operator "Go Report Card")](https://goreportcard.com/report/github.com/jenkinsci/kubernetes-operator)
[![Docker Pulls](https://img.shields.io/docker/pulls/virtuslab/jenkins-operator.svg)](https://hub.docker.com/r/virtuslab/jenkins-operator/tags)
@ -28,7 +28,7 @@ Jenkins uses [plugins](https://plugins.jenkins.io/) like CasC to extend it's sol
- Integration with Kubernetes ([Jenkins kubernetes-plugin](https://github.com/jenkinsci/kubernetes-plugin))
- Pipelines as Code ([Jenkins pipelines](https://jenkins.io/doc/book/pipeline/))
- Extensibility via Groovy Scripts (similar to [Jenkins script console](https://wiki.jenkins.io/display/JENKINS/Jenkins+Script+Console)) or ([configuration as code plugin](https://github.com/jenkinsci/configuration-as-code-plugin))
- Secure Defaults and Hardening (see [the security section](https://jenkinsci.github.io/kubernetes-operator/docs/security/) of the documentation)
- Secure Defaults and Hardening (see [the security section](https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/security/) of the documentation)
## Problem statement and goals
@ -36,11 +36,10 @@ The main reason why we decided to implement the **Jenkins Operator** is the fact
We want to make Jenkins more robust, suitable for dynamic and multi-tenant environments.
Some of the problems we want to solve:
- [installing plugins with incompatible versions or security vulnerabilities](https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/customization/#install-plugins)
- [better configuration as code](https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/customization/)
- [security and hardening out of the box](https://jenkinsci.github.io/kubernetes-operator/docs/security/)
- [make errors more visible for end users](https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/diagnostics/)
- [backup and restore for jobs history](https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/configure-backup-and-restore/)
- [installing plugins with incompatible versions or security vulnerabilities](https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/customizing-jenkins/#install-plugins/)
- [better configuration as code](https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/customizing-jenkins/)
- [security and hardening out of the box](https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/security/)
- [make errors more visible for end users](https://jenkinsci.github.io/kubernetes-operator/docs/troubleshooting/)
- orphaned jobs with no JNLP connection
- handle graceful shutdown properly
- proper end to end tests for Jenkins lifecycle
@ -50,25 +49,39 @@ Some of the problems we want to solve:
Go to [**our documentation website**](https://jenkinsci.github.io/kubernetes-operator/) for more information.
Selected content:
1. [Installation](https://jenkinsci.github.io/kubernetes-operator/docs/installation/)
1. [How it works](https://jenkinsci.github.io/kubernetes-operator/docs/how-it-works/)
2. [Getting Started](https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/)
3. [How it works](https://jenkinsci.github.io/kubernetes-operator/docs/how-it-works/)
4. [Security](https://jenkinsci.github.io/kubernetes-operator/docs/security/)
3. [Security](https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/security/)
4. [Troubleshooting](https://jenkinsci.github.io/kubernetes-operator/docs/troubleshooting/)
5. [Developer Guide](https://jenkinsci.github.io/kubernetes-operator/docs/developer-guide/)
5. [Jenkins Custom Resource Definition Schema](https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/schema/)
6. [FAQ](https://jenkinsci.github.io/kubernetes-operator/docs/faq/)
7. [Jenkins Custom Resource Definition Schema](https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/schema/)
## Common Issues and Workarounds
- 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)
Fill out ([Invite form](https://forms.gle/X3X8qA1XMirdBuEH7)) and come say hi !
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
We are trying our best to resolve issues quickly, but they have to wait to be released. If you can't wait for an official
docker image release and acknowledge the risk, you can use our unofficial images, which are built nightly.
You can find the project's Docker Hub repository [here](https://hub.docker.com/r/virtuslab/jenkins-operator).
Look for the images with tag "{git-hash}", where {git-hash} is the hash of the master commit that interests you.
## 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/blob/master/CONTRIBUTING.md) document beforehand.
Before any big pull request please consult the maintainers to ensure a common direction.
@ -76,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

View File

@ -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.

View File

@ -1 +1 @@
v0.5.0
v0.7.0

View File

@ -18,6 +18,10 @@ type JenkinsSpec struct {
// +optional
SeedJobs []SeedJob `json:"seedJobs,omitempty"`
// ValidateSecurityWarnings enables or disables validating potential security warnings in Jenkins plugins via admission webhooks.
//+optional
ValidateSecurityWarnings bool `json:"validateSecurityWarnings,omitempty"`
// Notifications defines list of a services which are used to inform about Jenkins status
// Can be used to integrate chat services like Slack, Microsoft Teams or Mailgun
// +optional
@ -342,20 +346,20 @@ type JenkinsMaster struct {
// BasePlugins contains plugins required by operator
// +optional
// Defaults to :
// - name: configuration-as-code
// version: "1346.ve8cfa_3473c94"
// - name: git
// version: "4.10.3"
// - name: job-dsl
// version: "1.78.1"
// - name: kubernetes
// version: "1.28.6"
// - name: workflow-job
// version: "2.40"
// version: "1.31.3"
// - name: kubernetes-credentials-provider
// version: "0.20"
// - name: workflow-aggregator
// version: "2.6"
// - name: git
// version: "4.5.0"
// - name: job-dsl
// version: "1.77"
// - name: configuration-as-code
// version: "1.46"
// - name: kubernetes-credentials-provider
// version: "0.15"
// - name: workflow-job
// version: "1145.v7f2433caa07f"
BasePlugins []Plugin `json:"basePlugins,omitempty"`
// Plugins contains plugins required by user
@ -368,6 +372,10 @@ type JenkinsMaster struct {
// PriorityClassName for Jenkins master pod
// +optional
PriorityClassName string `json:"priorityClassName,omitempty"`
// HostAliases for Jenkins master pod and SeedJob agent
// +optional
HostAliases []corev1.HostAlias `json:"hostAliases,omitempty"`
}
// Service defines Kubernetes service attributes

View File

@ -0,0 +1,348 @@
/*
Copyright 2021.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package v1alpha2
import (
"compress/gzip"
"encoding/json"
"errors"
"io"
"io/ioutil"
"net/http"
"os"
"time"
"github.com/jenkinsci/kubernetes-operator/pkg/log"
"github.com/jenkinsci/kubernetes-operator/pkg/plugins"
"golang.org/x/mod/semver"
"k8s.io/apimachinery/pkg/runtime"
ctrl "sigs.k8s.io/controller-runtime"
logf "sigs.k8s.io/controller-runtime/pkg/log"
"sigs.k8s.io/controller-runtime/pkg/webhook"
)
var (
jenkinslog = logf.Log.WithName("jenkins-resource") // log is for logging in this package.
SecValidator = *NewSecurityValidator()
_ webhook.Validator = &Jenkins{}
initialSecurityWarningsDownloadSucceded = false
)
const (
Hosturl = "https://ci.jenkins.io/job/Infra/job/plugin-site-api/job/generate-data/lastSuccessfulBuild/artifact/plugins.json.gzip"
CompressedFilePath = "/tmp/plugins.json.gzip"
PluginDataFile = "/tmp/plugins.json"
shortenedCheckingPeriod = 1 * time.Hour
defaultCheckingPeriod = 12 * time.Minute
)
func (in *Jenkins) SetupWebhookWithManager(mgr ctrl.Manager) error {
return ctrl.NewWebhookManagedBy(mgr).
For(in).
Complete()
}
// TODO(user): change verbs to "verbs=create;update;delete" if you want to enable deletion validation.
// +kubebuilder:webhook:path=/validate-jenkins-io-jenkins-io-v1alpha2-jenkins,mutating=false,failurePolicy=fail,sideEffects=None,groups=jenkins.io.jenkins.io,resources=jenkins,verbs=create;update,versions=v1alpha2,name=vjenkins.kb.io,admissionReviewVersions={v1,v1beta1}
// ValidateCreate implements webhook.Validator so a webhook will be registered for the type
func (in *Jenkins) ValidateCreate() error {
if in.Spec.ValidateSecurityWarnings {
jenkinslog.Info("validate create", "name", in.Name)
return Validate(*in)
}
return nil
}
// ValidateUpdate implements webhook.Validator so a webhook will be registered for the type
func (in *Jenkins) ValidateUpdate(old runtime.Object) error {
if in.Spec.ValidateSecurityWarnings {
jenkinslog.Info("validate update", "name", in.Name)
return Validate(*in)
}
return nil
}
func (in *Jenkins) ValidateDelete() error {
return nil
}
type SecurityValidator struct {
PluginDataCache PluginsInfo
isCached bool
Attempts int
checkingPeriod time.Duration
}
type PluginsInfo struct {
Plugins []PluginInfo `json:"plugins"`
}
type PluginInfo struct {
Name string `json:"name"`
SecurityWarnings []Warning `json:"securityWarnings"`
}
type Warning struct {
Versions []Version `json:"versions"`
ID string `json:"id"`
Message string `json:"message"`
URL string `json:"url"`
Active bool `json:"active"`
}
type Version struct {
FirstVersion string `json:"firstVersion"`
LastVersion string `json:"lastVersion"`
}
type PluginData struct {
Version string
Kind string
}
// Validates security warnings for both updating and creating a Jenkins CR
func Validate(r Jenkins) error {
if !SecValidator.isCached {
return errors.New("plugins data has not been fetched")
}
pluginSet := make(map[string]PluginData)
var faultyBasePlugins string
var faultyUserPlugins string
basePlugins := plugins.BasePlugins()
for _, plugin := range basePlugins {
// Only Update the map if the plugin is not present or a lower version is being used
if pluginData, ispresent := pluginSet[plugin.Name]; !ispresent || semver.Compare(makeSemanticVersion(plugin.Version), pluginData.Version) == 1 {
pluginSet[plugin.Name] = PluginData{Version: plugin.Version, Kind: "base"}
}
}
for _, plugin := range r.Spec.Master.Plugins {
if pluginData, ispresent := pluginSet[plugin.Name]; !ispresent || semver.Compare(makeSemanticVersion(plugin.Version), pluginData.Version) == 1 {
pluginSet[plugin.Name] = PluginData{Version: plugin.Version, Kind: "user-defined"}
}
}
for _, plugin := range SecValidator.PluginDataCache.Plugins {
if pluginData, ispresent := pluginSet[plugin.Name]; ispresent {
var hasVulnerabilities bool
for _, warning := range plugin.SecurityWarnings {
for _, version := range warning.Versions {
firstVersion := version.FirstVersion
lastVersion := version.LastVersion
if len(firstVersion) == 0 {
firstVersion = "0" // setting default value in case of empty string
}
if len(lastVersion) == 0 {
lastVersion = pluginData.Version // setting default value in case of empty string
}
// checking if this warning applies to our version as well
if compareVersions(firstVersion, lastVersion, pluginData.Version) {
jenkinslog.Info("Security Vulnerability detected in "+pluginData.Kind+" "+plugin.Name+":"+pluginData.Version, "Warning message", warning.Message, "For more details,check security advisory", warning.URL)
hasVulnerabilities = true
}
}
}
if hasVulnerabilities {
if pluginData.Kind == "base" {
faultyBasePlugins += "\n" + plugin.Name + ":" + pluginData.Version
} else {
faultyUserPlugins += "\n" + plugin.Name + ":" + pluginData.Version
}
}
}
}
if len(faultyBasePlugins) > 0 || len(faultyUserPlugins) > 0 {
var errormsg string
if len(faultyBasePlugins) > 0 {
errormsg += "security vulnerabilities detected in the following base plugins: " + faultyBasePlugins
}
if len(faultyUserPlugins) > 0 {
errormsg += "security vulnerabilities detected in the following user-defined plugins: " + faultyUserPlugins
}
return errors.New(errormsg)
}
return nil
}
// NewMonitor creates a new worker and instantiates all the data structures required
func NewSecurityValidator() *SecurityValidator {
return &SecurityValidator{
isCached: false,
Attempts: 0,
checkingPeriod: shortenedCheckingPeriod,
}
}
func (in *SecurityValidator) MonitorSecurityWarnings(securityWarningsFetched chan bool) {
jenkinslog.Info("Security warnings check: enabled\n")
for {
in.checkForSecurityVulnerabilities(securityWarningsFetched)
<-time.After(in.checkingPeriod)
}
}
func (in *SecurityValidator) checkForSecurityVulnerabilities(securityWarningsFetched chan bool) {
err := in.fetchPluginData()
if err != nil {
jenkinslog.Info("Cache plugin data", "failed to fetch plugin data", err)
in.checkingPeriod = shortenedCheckingPeriod
return
}
in.isCached = true
in.checkingPeriod = defaultCheckingPeriod
// should only be executed once when the operator starts
if !initialSecurityWarningsDownloadSucceded {
securityWarningsFetched <- in.isCached
initialSecurityWarningsDownloadSucceded = true
}
}
// Downloads extracts and reads the JSON data in every 12 hours
func (in *SecurityValidator) fetchPluginData() error {
jenkinslog.Info("Initializing/Updating the plugin data cache")
var err error
for in.Attempts = 0; in.Attempts < 5; in.Attempts++ {
err = in.download()
if err != nil {
jenkinslog.V(log.VDebug).Info("Cache Plugin Data", "failed to download file", err)
continue
}
break
}
if err != nil {
return err
}
for in.Attempts = 0; in.Attempts < 5; in.Attempts++ {
err = in.extract()
if err != nil {
jenkinslog.V(log.VDebug).Info("Cache Plugin Data", "failed to extract file", err)
continue
}
break
}
if err != nil {
return err
}
for in.Attempts = 0; in.Attempts < 5; in.Attempts++ {
err = in.cache()
if err != nil {
jenkinslog.V(log.VDebug).Info("Cache Plugin Data", "failed to read plugin data file", err)
continue
}
break
}
return err
}
func (in *SecurityValidator) download() error {
out, err := os.Create(CompressedFilePath)
if err != nil {
return err
}
defer out.Close()
req, err := http.NewRequest(http.MethodGet, Hosturl, nil)
if err != nil {
return err
}
req.Header.Set("Content-Type", "application/json")
Client := http.Client{
Timeout: 1 * time.Minute,
}
response, err := Client.Do(req)
if err != nil {
return err
}
defer response.Body.Close()
_, err = io.Copy(out, response.Body)
return err
}
func (in *SecurityValidator) extract() error {
reader, err := os.Open(CompressedFilePath)
if err != nil {
return err
}
defer reader.Close()
archive, err := gzip.NewReader(reader)
if err != nil {
return err
}
defer archive.Close()
writer, err := os.Create(PluginDataFile)
if err != nil {
return err
}
defer writer.Close()
_, err = io.Copy(writer, archive)
return err
}
// Loads the JSON data into memory and stores it
func (in *SecurityValidator) cache() error {
jsonFile, err := os.Open(PluginDataFile)
if err != nil {
return err
}
defer jsonFile.Close()
byteValue, err := ioutil.ReadAll(jsonFile)
if err != nil {
return err
}
err = json.Unmarshal(byteValue, &in.PluginDataCache)
return err
}
// returns a semantic version that can be used for comparison, allowed versioning format vMAJOR.MINOR.PATCH or MAJOR.MINOR.PATCH
func makeSemanticVersion(version string) string {
if version[0] != 'v' {
version = "v" + version
}
return semver.Canonical(version)
}
// Compare if the current version lies between first version and last version
func compareVersions(firstVersion string, lastVersion string, pluginVersion string) bool {
firstSemVer := makeSemanticVersion(firstVersion)
lastSemVer := makeSemanticVersion(lastVersion)
pluginSemVer := makeSemanticVersion(pluginVersion)
if semver.Compare(pluginSemVer, firstSemVer) == -1 || semver.Compare(pluginSemVer, lastSemVer) == 1 {
return false
}
return true
}

View File

@ -0,0 +1,177 @@
package v1alpha2
import (
"errors"
"testing"
"github.com/stretchr/testify/assert"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)
func TestMakeSemanticVersion(t *testing.T) {
t.Run("only major version specified", func(t *testing.T) {
got := makeSemanticVersion("1")
assert.Equal(t, got, "v1.0.0")
})
t.Run("major and minor version specified", func(t *testing.T) {
got := makeSemanticVersion("1.2")
assert.Equal(t, got, "v1.2.0")
})
t.Run("major,minor and patch version specified", func(t *testing.T) {
got := makeSemanticVersion("1.2.3")
assert.Equal(t, got, "v1.2.3")
})
t.Run("semantic versions begin with a leading v and no patch version", func(t *testing.T) {
got := makeSemanticVersion("v2.5")
assert.Equal(t, got, "v2.5.0")
})
t.Run("semantic versions with prerelease versions", func(t *testing.T) {
got := makeSemanticVersion("2.1.2-alpha.1")
assert.Equal(t, got, "v2.1.2-alpha.1")
})
t.Run("semantic versions with prerelease versions", func(t *testing.T) {
got := makeSemanticVersion("0.11.2-9.c8b45b8bb173")
assert.Equal(t, got, "v0.11.2-9.c8b45b8bb173")
})
t.Run("semantic versions with build suffix", func(t *testing.T) {
got := makeSemanticVersion("1.7.9+meta")
assert.Equal(t, got, "v1.7.9")
})
t.Run("invalid semantic version", func(t *testing.T) {
got := makeSemanticVersion("google-login-1.2")
assert.Equal(t, got, "")
})
}
func TestCompareVersions(t *testing.T) {
t.Run("Plugin Version lies between first and last version", func(t *testing.T) {
got := compareVersions("1.2", "1.6", "1.4")
assert.Equal(t, got, true)
})
t.Run("Plugin Version is greater than the last version", func(t *testing.T) {
got := compareVersions("1", "2", "3")
assert.Equal(t, got, false)
})
t.Run("Plugin Version is less than the first version", func(t *testing.T) {
got := compareVersions("1.4", "2.5", "1.1")
assert.Equal(t, got, false)
})
t.Run("Plugins Versions have prerelease version and it lies between first and last version", func(t *testing.T) {
got := compareVersions("1.2.1-alpha", "1.2.1", "1.2.1-beta")
assert.Equal(t, got, true)
})
t.Run("Plugins Versions have prerelease version and it is greater than the last version", func(t *testing.T) {
got := compareVersions("v2.2.1-alpha", "v2.5.1-beta.1", "v2.5.1-beta.2")
assert.Equal(t, got, false)
})
}
func TestValidate(t *testing.T) {
t.Run("Validating when plugins data file is not fetched", func(t *testing.T) {
userplugins := []Plugin{{Name: "script-security", Version: "1.77"}, {Name: "git-client", Version: "3.9"}, {Name: "git", Version: "4.8.1"}, {Name: "plain-credentials", Version: "1.7"}}
jenkinscr := *createJenkinsCR(userplugins, true)
got := jenkinscr.ValidateCreate()
assert.Equal(t, got, errors.New("plugins data has not been fetched"))
})
SecValidator.isCached = true
t.Run("Validating a Jenkins CR with plugins not having security warnings and validation is turned on", func(t *testing.T) {
SecValidator.PluginDataCache = PluginsInfo{Plugins: []PluginInfo{
{Name: "security-script"},
{Name: "git-client"},
{Name: "git"},
{Name: "google-login", SecurityWarnings: createSecurityWarnings("", "1.2")},
{Name: "sample-plugin", SecurityWarnings: createSecurityWarnings("", "0.8")},
{Name: "mailer"},
{Name: "plain-credentials"}}}
userplugins := []Plugin{{Name: "script-security", Version: "1.77"}, {Name: "git-client", Version: "3.9"}, {Name: "git", Version: "4.8.1"}, {Name: "plain-credentials", Version: "1.7"}}
jenkinscr := *createJenkinsCR(userplugins, true)
got := jenkinscr.ValidateCreate()
assert.Nil(t, got)
})
t.Run("Validating a Jenkins CR with some of the plugins having security warnings and validation is turned on", func(t *testing.T) {
SecValidator.PluginDataCache = PluginsInfo{Plugins: []PluginInfo{
{Name: "security-script", SecurityWarnings: createSecurityWarnings("1.2", "2.2")},
{Name: "workflow-cps", SecurityWarnings: createSecurityWarnings("2.59", "")},
{Name: "git-client"},
{Name: "git"},
{Name: "sample-plugin", SecurityWarnings: createSecurityWarnings("0.8", "")},
{Name: "command-launcher", SecurityWarnings: createSecurityWarnings("1.2", "1.4")},
{Name: "plain-credentials"},
{Name: "google-login", SecurityWarnings: createSecurityWarnings("1.1", "1.3")},
{Name: "mailer", SecurityWarnings: createSecurityWarnings("1.0.3", "1.1.4")},
}}
userplugins := []Plugin{{Name: "google-login", Version: "1.2"}, {Name: "mailer", Version: "1.1"}, {Name: "git", Version: "4.8.1"}, {Name: "command-launcher", Version: "1.6"}, {Name: "workflow-cps", Version: "2.59"}}
jenkinscr := *createJenkinsCR(userplugins, true)
got := jenkinscr.ValidateCreate()
assert.Equal(t, got, errors.New("security vulnerabilities detected in the following user-defined plugins: \nworkflow-cps:2.59\ngoogle-login:1.2\nmailer:1.1"))
})
t.Run("Updating a Jenkins CR with some of the plugins having security warnings and validation is turned on", func(t *testing.T) {
SecValidator.PluginDataCache = PluginsInfo{Plugins: []PluginInfo{
{Name: "handy-uri-templates-2-api", SecurityWarnings: createSecurityWarnings("2.1.8-1.0", "2.2.8-1.0")},
{Name: "workflow-cps", SecurityWarnings: createSecurityWarnings("2.59", "")},
{Name: "resource-disposer", SecurityWarnings: createSecurityWarnings("0.7", "1.2")},
{Name: "git"},
{Name: "jjwt-api"},
{Name: "blueocean-github-pipeline", SecurityWarnings: createSecurityWarnings("1.2.0-alpha-2", "1.2.0-beta-5")},
{Name: "command-launcher", SecurityWarnings: createSecurityWarnings("1.2", "1.4")},
{Name: "plain-credentials"},
{Name: "ghprb", SecurityWarnings: createSecurityWarnings("1.1", "1.43")},
{Name: "mailer", SecurityWarnings: createSecurityWarnings("1.0.3", "1.1.4")},
}}
userplugins := []Plugin{{Name: "google-login", Version: "1.2"}, {Name: "mailer", Version: "1.1"}, {Name: "git", Version: "4.8.1"}, {Name: "command-launcher", Version: "1.6"}, {Name: "workflow-cps", Version: "2.59"}}
oldjenkinscr := *createJenkinsCR(userplugins, true)
userplugins = []Plugin{{Name: "handy-uri-templates-2-api", Version: "2.1.8-1.0"}, {Name: "resource-disposer", Version: "0.8"}, {Name: "jjwt-api", Version: "0.11.2-9.c8b45b8bb173"}, {Name: "blueocean-github-pipeline", Version: "1.2.0-beta-3"}, {Name: "ghprb", Version: "1.39"}}
newjenkinscr := *createJenkinsCR(userplugins, true)
got := newjenkinscr.ValidateUpdate(&oldjenkinscr)
assert.Equal(t, got, errors.New("security vulnerabilities detected in the following user-defined plugins: \nhandy-uri-templates-2-api:2.1.8-1.0\nresource-disposer:0.8\nblueocean-github-pipeline:1.2.0-beta-3\nghprb:1.39"))
})
t.Run("Validation is turned off", func(t *testing.T) {
userplugins := []Plugin{{Name: "google-login", Version: "1.2"}, {Name: "mailer", Version: "1.1"}, {Name: "git", Version: "4.8.1"}, {Name: "command-launcher", Version: "1.6"}, {Name: "workflow-cps", Version: "2.59"}}
jenkinscr := *createJenkinsCR(userplugins, false)
got := jenkinscr.ValidateCreate()
assert.Nil(t, got)
userplugins = []Plugin{{Name: "google-login", Version: "1.2"}, {Name: "mailer", Version: "1.1"}, {Name: "git", Version: "4.8.1"}, {Name: "command-launcher", Version: "1.6"}, {Name: "workflow-cps", Version: "2.59"}}
newjenkinscr := *createJenkinsCR(userplugins, false)
got = newjenkinscr.ValidateUpdate(&jenkinscr)
assert.Nil(t, got)
})
}
func createJenkinsCR(userPlugins []Plugin, validateSecurityWarnings bool) *Jenkins {
jenkins := &Jenkins{
TypeMeta: JenkinsTypeMeta(),
ObjectMeta: metav1.ObjectMeta{
Name: "jenkins",
Namespace: "test",
},
Spec: JenkinsSpec{
Master: JenkinsMaster{
Plugins: userPlugins,
DisableCSRFProtection: false,
},
ValidateSecurityWarnings: validateSecurityWarnings,
},
}
return jenkins
}
func createSecurityWarnings(firstVersion string, lastVersion string) []Warning {
return []Warning{{Versions: []Version{{FirstVersion: firstVersion, LastVersion: lastVersion}}, ID: "null", Message: "unit testing", URL: "null", Active: false}}
}

View File

@ -1,3 +1,4 @@
//go:build !ignore_autogenerated
// +build !ignore_autogenerated
/*
@ -23,7 +24,7 @@ package v1alpha2
import (
corev1 "k8s.io/api/core/v1"
rbacv1 "k8s.io/api/rbac/v1"
runtime "k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime"
)
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
@ -356,6 +357,13 @@ func (in *JenkinsMaster) DeepCopyInto(out *JenkinsMaster) {
*out = make([]Plugin, len(*in))
copy(*out, *in)
}
if in.HostAliases != nil {
in, out := &in.HostAliases, &out.HostAliases
*out = make([]corev1.HostAlias, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JenkinsMaster.
@ -528,6 +536,65 @@ func (in *Plugin) DeepCopy() *Plugin {
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PluginData) DeepCopyInto(out *PluginData) {
*out = *in
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PluginData.
func (in *PluginData) DeepCopy() *PluginData {
if in == nil {
return nil
}
out := new(PluginData)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PluginInfo) DeepCopyInto(out *PluginInfo) {
*out = *in
if in.SecurityWarnings != nil {
in, out := &in.SecurityWarnings, &out.SecurityWarnings
*out = make([]Warning, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PluginInfo.
func (in *PluginInfo) DeepCopy() *PluginInfo {
if in == nil {
return nil
}
out := new(PluginInfo)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PluginsInfo) DeepCopyInto(out *PluginsInfo) {
*out = *in
if in.Plugins != nil {
in, out := &in.Plugins, &out.Plugins
*out = make([]PluginInfo, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PluginsInfo.
func (in *PluginsInfo) DeepCopy() *PluginsInfo {
if in == nil {
return nil
}
out := new(PluginsInfo)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Restore) DeepCopyInto(out *Restore) {
*out = *in
@ -593,6 +660,22 @@ func (in *SecretRef) DeepCopy() *SecretRef {
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *SecurityValidator) DeepCopyInto(out *SecurityValidator) {
*out = *in
in.PluginDataCache.DeepCopyInto(&out.PluginDataCache)
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecurityValidator.
func (in *SecurityValidator) DeepCopy() *SecurityValidator {
if in == nil {
return nil
}
out := new(SecurityValidator)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *SeedJob) DeepCopyInto(out *SeedJob) {
*out = *in
@ -679,3 +762,38 @@ func (in *Slack) DeepCopy() *Slack {
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Version) DeepCopyInto(out *Version) {
*out = *in
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Version.
func (in *Version) DeepCopy() *Version {
if in == nil {
return nil
}
out := new(Version)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Warning) DeepCopyInto(out *Warning) {
*out = *in
if in.Versions != nil {
in, out := &in.Versions, &out.Versions
*out = make([]Version, len(*in))
copy(*out, *in)
}
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Warning.
func (in *Warning) DeepCopy() *Warning {
if in == nil {
return nil
}
out := new(Warning)
in.DeepCopyInto(out)
return out
}

View File

@ -1,6 +1,61 @@
apiVersion: v1
entries:
jenkins-operator:
- apiVersion: v2
appVersion: 0.7.0
created: "2021-12-08T14:21:18.243261+01:00"
dependencies:
- condition: webhook.enabled
name: cert-manager
repository: https://charts.jetstack.io
version: 1.5.1
description: Kubernetes native operator which fully manages Jenkins on Kubernetes
digest: 6b36f47d6647231bd21581bea6b23c3660acb11073ebde2cb47f9a700101c462
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-0.6.0.tgz
version: 0.6.0
- 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-0.5.3.tgz
version: 0.5.3
- 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
digest: 48fbf15c3ffff7003623edcde0bec39dc37d0a62303f08066960d5fac799af90
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-0.5.2.tgz
version: 0.5.2
- 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
digest: 6f92759aaa7baafe5fe3a07f237b2c31b6921ca20cba145ee168c8fdb331d294
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-0.5.1.tgz
version: 0.5.1
- apiVersion: v2
appVersion: 0.6.0
created: "2021-06-11T13:50:32.697552742+02:00"
description: Kubernetes native operator which fully manages Jenkins on Kubernetes
digest: aae33e13b8fcab6957b8ded2a2ae08025db38e1d86bbec8f8d9595b9eb904df1
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-0.5.0.tgz
version: 0.5.0
- apiVersion: v2
appVersion: 0.5.0
created: "2021-02-19T12:36:08.931516+01:00"
@ -248,4 +303,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-02-19T12:36:08.928123+01:00"
generated: "2021-12-08T14:21:18.228218+01:00"

View File

@ -20,3 +20,7 @@
.idea/
*.tmproj
.vscode/
# Ignore packaged charts
jenkins-operator-*.tgz

View File

@ -0,0 +1,6 @@
dependencies:
- name: cert-manager
repository: https://charts.jetstack.io
version: v1.5.1
digest: sha256:3220f5584bd04a8c8d4b2a076d49cc046211a463bb9a12ebbbae752be9b70bb1
generated: "2021-08-18T01:07:49.505353718+05:30"

View File

@ -1,6 +1,11 @@
apiVersion: v2
appVersion: "0.5.0"
appVersion: "0.7.0"
description: Kubernetes native operator which fully manages Jenkins on Kubernetes
name: jenkins-operator
version: 0.4.3
version: 0.6.0
icon: https://raw.githubusercontent.com/jenkinsci/kubernetes-operator/master/assets/jenkins-operator-icon.png
dependencies:
- name: cert-manager
version: "1.5.1"
condition: webhook.enabled
repository: https://charts.jetstack.io

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -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 }}
{{ end }}

View File

@ -19,6 +19,8 @@ spec:
name: {{ .Values.jenkins.configuration.secretRefName }}
{{- else if .Values.jenkins.configuration.secretData }}
name: jenkins-{{ .Values.jenkins.name }}
{{- else }}
name: ""
{{- end }}
{{- else }}
configurations: []
@ -36,6 +38,8 @@ spec:
name: {{ .Values.jenkins.configuration.secretRefName }}
{{- else if .Values.jenkins.configuration.secretData }}
name: jenkins-{{ .Values.jenkins.name }}
{{- else }}
name: ""
{{- end }}
{{- else }}
configurations: []
@ -81,6 +85,9 @@ spec:
{{- with .Values.jenkins.notifications }}
notifications: {{ toYaml . | nindent 4 }}
{{- end }}
{{- with .Values.jenkins.serviceAccount }}
serviceAccount: {{ toYaml . | nindent 4 }}
{{- end }}
master:
{{- with .Values.jenkins.labels }}
labels: {{ toYaml . | nindent 6 }}
@ -95,18 +102,13 @@ spec:
plugins: {{ toYaml . | nindent 4 }}
{{- end }}
{{- if .Values.jenkins.priorityClassName }}
priorityClassName: {{- .Values.jenkins.priorityClassName }}
{{- else }}
priorityClassName: ""
priorityClassName: {{ .Values.jenkins.priorityClassName }}
{{- end }}
disableCSRFProtection: {{ .Values.jenkins.disableCSRFProtection }}
containers:
- name: jenkins-master
image: {{ .Values.jenkins.image }}
imagePullPolicy: {{ .Values.jenkins.imagePullPolicy }}
{{- with .Values.jenkins.imagePullSecrets }}
imagePullSecrets: {{ toYaml . | nindent 10 }}
{{- end }}
{{- with .Values.jenkins.livenessProbe }}
livenessProbe: {{ toYaml . | nindent 10 }}
{{- end }}
@ -139,10 +141,14 @@ spec:
{{- with .Values.jenkins.volumes }}
volumes: {{- toYaml . | nindent 4 }}
{{- end }}
{{- with .Values.jenkins.imagePullSecrets }}
imagePullSecrets: {{ toYaml . | nindent 4 }}
{{- end }}
{{- with .Values.jenkins.securityContext}}
securityContext:
{{- toYaml . | nindent 6 }}
{{- end }}
validateSecurityWarnings: {{ .Values.jenkins.validateSecurityWarnings }}
{{- with .Values.jenkins.seedJobs }}
seedJobs: {{- toYaml . | nindent 4 }}
{{- end }}

View File

@ -31,7 +31,16 @@ spec:
protocol: TCP
command:
- /manager
args: []
args:
{{- if .Values.webhook.enabled }}
- --validate-security-warnings
{{- end }}
{{- if .Values.webhook.enabled }}
volumeMounts:
- mountPath: /tmp/k8s-webhook-server/serving-certs
name: webhook-certs
readOnly: true
{{- end }}
env:
- name: WATCH_NAMESPACE
value: {{ .Values.jenkins.namespace }}
@ -55,3 +64,11 @@ spec:
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- if .Values.webhook.enabled }}
volumes:
- name: webhook-certs
secret:
defaultMode: 420
secretName: jenkins-{{ .Values.webhook.certificate.name }}
terminationGracePeriodSeconds: 10
{{- end }}

View File

@ -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 }}

View File

@ -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
@ -27,4 +49,5 @@ roleRef:
kind: Role
name: jenkins-operator
apiGroup: rbac.authorization.k8s.io
{{ end }}
{{ end }}
{{ end }}

View File

@ -0,0 +1,34 @@
{{- if .Values.webhook.enabled }}
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: jenkins-{{ .Values.webhook.certificate.name }}
namespace: {{ .Release.Namespace }}
spec:
duration: {{ .Values.webhook.certificate.duration }}
renewBefore: {{ .Values.webhook.certificate.renewbefore }}
secretName: jenkins-{{ .Values.webhook.certificate.name }}
dnsNames:
- jenkins-webhook-service.{{ .Release.Namespace }}.svc
- jenkins-webhook-service.{{ .Release.Namespace }}.svc.cluster.local
issuerRef:
kind: Issuer
name: selfsigned
---
apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
name: selfsigned
namespace: {{ .Release.Namespace }}
spec:
selfSigned: {}
---
apiVersion: v1
kind: Secret
metadata:
name: jenkins-{{ .Values.webhook.certificate.name }}
type: opaque
{{- end }}

View File

@ -0,0 +1,47 @@
{{- if .Values.webhook.enabled }}
apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingWebhookConfiguration
metadata:
name: {{ .Release.Name }}-webhook
annotations:
cert-manager.io/inject-ca-from: {{ .Release.Namespace }}/jenkins-{{ .Values.webhook.certificate.name }}
webhooks:
- admissionReviewVersions:
- v1
- v1beta1
clientConfig:
service:
name: jenkins-webhook-service
namespace: {{ .Release.Namespace }}
path: /validate-jenkins-io-v1alpha2-jenkins
failurePolicy: Fail
name: vjenkins.kb.io
timeoutSeconds: 30
rules:
- apiGroups:
- jenkins.io
apiVersions:
- v1alpha2
operations:
- CREATE
- UPDATE
resources:
- jenkins
scope: "Namespaced"
sideEffects: None
---
apiVersion: v1
kind: Service
metadata:
name: jenkins-webhook-service
namespace: {{ .Release.Namespace }}
spec:
ports:
- port: 443
targetPort: 9443
selector:
app.kubernetes.io/name: {{ include "jenkins-operator.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
---
{{- end }}

View File

@ -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
@ -29,7 +30,7 @@ jenkins:
# image is the name (and tag) of the Jenkins instance
# Default: jenkins/jenkins:lts
# It's recommended to use LTS (tag: "lts") version
image: jenkins/jenkins:2.263.2-lts-alpine
image: jenkins/jenkins:2.319.3-lts
# env contains jenkins container environment variables
env: []
@ -46,6 +47,10 @@ jenkins:
# See https://github.com/jenkinsci/kubernetes-operator/pull/193 for more info
disableCSRFProtection: false
# validateSecurityWarnings enables or disables validating potential security warnings in Jenkins plugins via admission webhooks.
validateSecurityWarnings: false
# imagePullSecrets is used if you want to pull images from private repository
# See https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/configuration/#pulling-docker-images-from-private-repositories for more info
imagePullSecrets: []
@ -54,6 +59,11 @@ jenkins:
# See https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/notifications/ for more info
notifications: []
# Enables customization of the Service Account attached to the master Jenkins instance via annotations
# https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/schema/#github.com/jenkinsci/kubernetes-operator/api/v1alpha2.ServiceAccount
serviceAccount:
annotations: {}
# basePlugins are plugins installed and required by the operator
# Shouldn't contain plugins defined by user
# You can change their versions here
@ -62,35 +72,21 @@ jenkins:
# Example:
#
# basePlugins:
# - name: configuration-as-code
# version: "1346.ve8cfa_3473c94"
# - name: git
# version: 4.10.3
# - name: job-dsl
# version: "1.78.1"
# - name: kubernetes
# version: 1.29.2
# - name: workflow-job
# version: "2.40"
# version: 1.31.3
# - name: kubernetes-credentials-provider
# version: 0.20
# - name: workflow-aggregator
# version: "2.6"
# - name: git
# version: 4.5.0
# - name: job-dsl
# version: "1.77"
# - name: configuration-as-code
# version: "1.47"
# - name: kubernetes-credentials-provider
# version: 0.15
basePlugins:
- name: kubernetes
version: "1.29.2"
- name: workflow-job
version: "2.40"
- name: workflow-aggregator
version: "2.6"
- name: git
version: "4.5.0"
- name: job-dsl
version: "1.77"
- name: configuration-as-code
version: "1.47"
- name: kubernetes-credentials-provider
version: "0.15"
# - name: workflow-job
# version: "1145.v7f2433caa07f"
basePlugins: []
# plugins are plugins required by the user
# You can define plugins here
@ -104,8 +100,7 @@ jenkins:
plugins: []
# seedJobs is placeholder for jenkins seed jobs
# For seed job creation tutorial, check https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/configuration/#prepare-job-definitions-and-pipelines
# See https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/configuration/#configure-seed-jobs for additional info
# For seed job creation tutorial, check https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/configuring-seed-jobs-and-pipelines/
# Example:
#
# seedJobs:
@ -120,10 +115,10 @@ jenkins:
# See https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/ for details
resources:
limits:
cpu: 1500m
cpu: 1000m
memory: 3Gi
requests:
cpu: 1
cpu: 250m
memory: 500Mi
# volumes used by Jenkins
@ -134,6 +129,9 @@ jenkins:
claimName: jenkins-backup
# volumeMounts are mounts for Jenkins pod
# Note that attempting to overwrite default mount settings for restricted,
# non-configurable volumeMounts will result in Operator error
# See https://jenkinsci.github.io/kubernetes-operator/docs/installation/#note-on-restricted-jenkins-controller-pod-volumemounts for details
volumeMounts: []
# defines authorization strategy of the operator for the Jenkins API
@ -150,29 +148,29 @@ 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
failureThreshold: 20
httpGet:
path: /login
port: http
scheme: HTTP
initialDelaySeconds: 80
initialDelaySeconds: 100
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 5
timeoutSeconds: 8
# ReadinessProbe for Jenkins Master pod
readinessProbe:
failureThreshold: 3
failureThreshold: 60
httpGet:
path: /login
port: http
scheme: HTTP
initialDelaySeconds: 30
initialDelaySeconds: 120
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
timeoutSeconds: 8
# backup is section for configuring operator's backup feature
# By default backup feature is enabled and pre-configured
@ -222,11 +220,11 @@ jenkins:
# resources used by backup container
resources:
limits:
cpu: 1500m
memory: 1Gi
cpu: 1000m
memory: 2Gi
requests:
cpu: 100m
memory: 256Mi
memory: 500Mi
# env contains container environment variables
# PVC backup provider handles these variables:
@ -269,7 +267,7 @@ operator:
replicaCount: 1
# image is the name (and tag) of the Jenkins Operator image
image: virtuslab/jenkins-operator:v0.5.0
image: virtuslab/jenkins-operator:v0.7.0
# imagePullPolicy defines policy for pulling images
imagePullPolicy: IfNotPresent
@ -287,3 +285,22 @@ operator:
nodeSelector: {}
tolerations: []
affinity: {}
webhook:
# TLS certificates for webhook
certificate:
name: webhook-certificate
# validity of the certificate
duration: 2160h
# time after which the certificate will be automatically renewed
renewbefore: 360h
# enable or disable the validation webhook
enabled: false
# This startupapicheck is a Helm post-install hook that waits for the webhook
# endpoints to become available.
cert-manager:
startupapicheck:
enabled: false

View File

@ -0,0 +1,7 @@
KUBERNETES_PROVIDER=docker-desktop
KUBECTL_CONTEXT=docker-desktop
JENKINS_API_HOSTNAME_COMMAND=echo localhost
JENKINS_API_PORT=0
JENKINS_API_USE_NODEPORT=true

View File

@ -1,8 +1,8 @@
KUBERNETES_PROVIDER=minikube
MINIKUBE_KUBERNETES_VERSION=v1.17.4
MINIKUBE_KUBERNETES_VERSION=v1.21.1
MINIKUBE_DRIVER=virtualbox
MINIKUBE_VERSION=1.17.1
MINIKUBE_VERSION=1.21.0
KUBECTL_CONTEXT=minikube
JENKINS_API_HOSTNAME_COMMAND=bin/minikube ip

View File

@ -1,284 +0,0 @@
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: jenkins-operator
---
# permissions to do leader election.
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: leader-election-role
rules:
- apiGroups:
- ""
- coordination.k8s.io
resources:
- configmaps
- leases
verbs:
- get
- list
- watch
- create
- update
- patch
- delete
- apiGroups:
- ""
resources:
- events
verbs:
- create
- patch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: leader-election-rolebinding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: leader-election-role
subjects:
- kind: ServiceAccount
name: jenkins-operator
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
creationTimestamp: null
name: jenkins-operator
rules:
- apiGroups:
- apps
resources:
- daemonsets
- deployments
- replicasets
- statefulsets
verbs:
- '*'
- apiGroups:
- apps
- jenkins-operator
resources:
- deployments/finalizers
verbs:
- update
- apiGroups:
- build.openshift.io
resources:
- buildconfigs
- builds
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- configmaps
- secrets
- services
verbs:
- create
- get
- list
- update
- watch
- apiGroups:
- ""
resources:
- events
verbs:
- create
- get
- list
- patch
- watch
- apiGroups:
- ""
resources:
- persistentvolumeclaims
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- pods
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- ""
resources:
- pods
- pods/exec
verbs:
- '*'
- apiGroups:
- ""
resources:
- pods/log
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- pods/portforward
verbs:
- create
- apiGroups:
- ""
resources:
- serviceaccounts
verbs:
- create
- get
- list
- update
- watch
- apiGroups:
- image.openshift.io
resources:
- imagestreams
verbs:
- get
- list
- watch
- apiGroups:
- jenkins.io
resources:
- jenkins/finalizers
verbs:
- update
- apiGroups:
- jenkins.io
resources:
- jenkins/status
verbs:
- get
- patch
- update
- apiGroups:
- jenkins.io
resources:
- '*'
verbs:
- '*'
- apiGroups:
- rbac.authorization.k8s.io
resources:
- rolebindings
- roles
verbs:
- create
- get
- list
- update
- watch
- apiGroups:
- "route.openshift.io"
resources:
- routes
verbs:
- create
- get
- list
- update
- watch
- apiGroups:
- "image.openshift.io"
resources:
- imagestreams
verbs:
- get
- list
- watch
- apiGroups:
- "build.openshift.io"
resources:
- builds
- buildconfigs
verbs:
- get
- list
- watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: jenkins-operator
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: jenkins-operator
subjects:
- kind: ServiceAccount
name: jenkins-operator
---
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
image: virtuslab/jenkins-operator:v0.5.0
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: 100m
memory: 30Mi
requests:
cpu: 100m
memory: 20Mi
env:
- name: WATCH_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
terminationGracePeriodSeconds: 10

View File

@ -157,11 +157,11 @@ spec:
type: object
basePlugins:
description: 'BasePlugins contains plugins required by operator
Defaults to : - name: kubernetes version: "1.28.6" - name: workflow-job
version: "2.40" - name: workflow-aggregator version: "2.6" -
name: git version: "4.5.0" - name: job-dsl version: "1.77" -
name: configuration-as-code version: "1.46" - name: kubernetes-credentials-provider
version: "0.15"'
Defaults to : - name: kubernetes version: "1.31.3" - name:
workflow-job version: "1145.v7f2433caa07f" - name: workflow-aggregator version:
"2.6" - name: git version: "4.10.3" - name: job-dsl version:
"1.78.1" - name: configuration-as-code version: "1346.ve8cfa_3473c94" - name:
kubernetes-credentials-provider version: "0.20"'
items:
description: Plugin defines Jenkins plugin.
properties:
@ -1104,6 +1104,22 @@ spec:
description: DisableCSRFProtection allows you to toggle CSRF Protection
on Jenkins
type: boolean
hostAliases:
description: HostAliases for Jenkins master pod and SeedJob agent
items:
description: HostAlias holds the mapping between IP and hostnames
that will be injected as an entry in the pod's hosts file.
properties:
hostnames:
description: Hostnames for the above IP address.
items:
type: string
type: array
ip:
description: IP address of the host file entry.
type: string
type: object
type: array
imagePullSecrets:
description: 'ImagePullSecrets is an optional list of references
to secrets in the same namespace to use for pulling any of the
@ -3316,6 +3332,10 @@ spec:
More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services---service-types'
type: string
type: object
validateSecurityWarnings:
description: ValidateSecurityWarnings enables or disables validating
potential security warnings in Jenkins plugins via admission webhooks.
type: boolean
required:
- jenkinsAPISettings
- master

View File

@ -3,7 +3,6 @@ apiVersion: apps/v1
kind: Deployment
metadata:
name: jenkins-operator
namespace: default
labels:
control-plane: controller-manager
spec:
@ -24,7 +23,7 @@ spec:
- /manager
args:
- --leader-elect
image: virtuslab/jenkins-operator:v0.5.0
image: virtuslab/jenkins-operator:v0.7.0
name: jenkins-operator
imagePullPolicy: IfNotPresent
securityContext:

View File

@ -9,5 +9,4 @@ roleRef:
name: leader-election-role
subjects:
- kind: ServiceAccount
name: default
namespace: default
name: jenkins-operator

View File

@ -3,170 +3,164 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
creationTimestamp: null
name: jenkins-operator
rules:
- apiGroups:
- apps
resources:
- daemonsets
- deployments
- replicasets
- statefulsets
verbs:
- '*'
- apiGroups:
- apps
- jenkins-operator
resources:
- deployments/finalizers
verbs:
- update
- apiGroups:
- build.openshift.io
resources:
- buildconfigs
- builds
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- configmaps
- secrets
- services
verbs:
- create
- get
- list
- update
- watch
- apiGroups:
- ""
resources:
- events
verbs:
- create
- get
- list
- patch
- watch
- apiGroups:
- ""
resources:
- persistentvolumeclaims
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- pods
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- ""
resources:
- pods
- pods/exec
verbs:
- '*'
- apiGroups:
- ""
resources:
- pods/log
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- pods/portforward
verbs:
- create
- apiGroups:
- ""
resources:
- serviceaccounts
verbs:
- create
- get
- list
- update
- watch
- apiGroups:
- image.openshift.io
resources:
- imagestreams
verbs:
- get
- list
- watch
- apiGroups:
- jenkins.io
resources:
- jenkins/finalizers
verbs:
- update
- apiGroups:
- jenkins.io
resources:
- jenkins/status
verbs:
- get
- patch
- update
- apiGroups:
- jenkins.io
resources:
- '*'
verbs:
- '*'
- apiGroups:
- rbac.authorization.k8s.io
resources:
- rolebindings
- roles
verbs:
- create
- get
- list
- update
- watch
- apiGroups:
- "route.openshift.io"
resources:
- routes
verbs:
- create
- get
- list
- update
- watch
- apiGroups:
- "image.openshift.io"
resources:
- imagestreams
verbs:
- get
- list
- watch
- apiGroups:
- "build.openshift.io"
resources:
- builds
- buildconfigs
verbs:
- get
- list
- watch
- apiGroups:
- apps
resources:
- daemonsets
- deployments
- replicasets
- statefulsets
verbs:
- '*'
- apiGroups:
- apps
- jenkins-operator
resources:
- deployments/finalizers
verbs:
- update
- apiGroups:
- build.openshift.io
resources:
- buildconfigs
- builds
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- configmaps
- secrets
- services
verbs:
- create
- get
- list
- update
- watch
- apiGroups:
- ""
resources:
- events
verbs:
- create
- get
- list
- patch
- watch
- apiGroups:
- ""
resources:
- persistentvolumeclaims
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- pods
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- ""
resources:
- pods
- pods/exec
verbs:
- '*'
- apiGroups:
- ""
resources:
- pods/log
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- pods/portforward
verbs:
- create
- apiGroups:
- ""
resources:
- serviceaccounts
verbs:
- create
- get
- list
- update
- watch
- apiGroups:
- image.openshift.io
resources:
- imagestreams
verbs:
- get
- list
- watch
- apiGroups:
- jenkins.io
resources:
- '*'
verbs:
- '*'
- apiGroups:
- jenkins.io
resources:
- jenkins
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- jenkins.io
resources:
- jenkins/finalizers
verbs:
- update
- apiGroups:
- jenkins.io
resources:
- jenkins/status
verbs:
- get
- patch
- update
- apiGroups:
- rbac.authorization.k8s.io
resources:
- rolebindings
- roles
verbs:
- create
- get
- list
- update
- watch
- apiGroups:
- route.openshift.io
resources:
- routes
verbs:
- create
- get
- list
- update
- watch

View File

@ -1,3 +1,4 @@
apiVersion: jenkins.io/v1alpha2
kind: Jenkins
metadata:
@ -18,7 +19,7 @@ spec:
disableCSRFProtection: false
containers:
- name: jenkins-master
image: jenkins/jenkins:2.263.3-lts-alpine
image: jenkins/jenkins:2.319.1-lts-alpine
imagePullPolicy: Always
livenessProbe:
failureThreshold: 12
@ -52,4 +53,4 @@ spec:
targets: "cicd/jobs/*.jenkins"
description: "Jenkins Operator repository"
repositoryBranch: master
repositoryUrl: https://github.com/jenkinsci/kubernetes-operator.git
repositoryUrl: https://github.com/jenkinsci/kubernetes-operator.git

View File

@ -3,4 +3,3 @@ apiVersion: v1
kind: ServiceAccount
metadata:
name: jenkins-operator
namespace: default

View File

@ -0,0 +1,29 @@
---
apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingWebhookConfiguration
metadata:
creationTimestamp: null
name: validating-webhook-configuration
webhooks:
- admissionReviewVersions:
- v1
- v1beta1
clientConfig:
service:
name: webhook-service
namespace: system
path: /validate-jenkins-io-jenkins-io-v1alpha2-jenkins
failurePolicy: Fail
name: vjenkins.kb.io
rules:
- apiGroups:
- jenkins.io.jenkins.io
apiVersions:
- v1alpha2
operations:
- CREATE
- UPDATE
resources:
- jenkins
sideEffects: None

View File

@ -0,0 +1,12 @@
apiVersion: v1
kind: Service
metadata:
name: webhook-service
namespace: system
spec:
ports:
- port: 443
targetPort: 9443
selector:
control-plane: controller-manager

View File

@ -388,7 +388,7 @@ func (r *JenkinsReconciler) setDefaults(jenkins *v1alpha2.Jenkins) (requeue bool
changed = true
jenkinsContainer.Env = append(jenkinsContainer.Env, corev1.EnvVar{
Name: constants.JavaOpsVariableName,
Value: "-XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -XX:MaxRAMFraction=1 -Djenkins.install.runSetupWizard=false -Djava.awt.headless=true",
Value: "-XX:MinRAMPercentage=50.0 -XX:MaxRAMPercentage=80.0 -Djenkins.install.runSetupWizard=false -Djava.awt.headless=true",
})
}
if len(jenkins.Spec.Master.BasePlugins) == 0 {

View File

@ -4,165 +4,275 @@ kind: ServiceAccount
metadata:
name: jenkins-operator
---
kind: Role
# permissions to do leader election.
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: leader-election-role
rules:
- apiGroups:
- ""
- coordination.k8s.io
resources:
- configmaps
- leases
verbs:
- get
- list
- watch
- create
- update
- patch
- delete
- apiGroups:
- ""
resources:
- events
verbs:
- create
- patch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: leader-election-rolebinding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: leader-election-role
subjects:
- kind: ServiceAccount
name: jenkins-operator
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: jenkins-operator
rules:
- apiGroups:
- ""
resources:
- services
- configmaps
- secrets
- serviceaccounts
verbs:
- get
- create
- update
- list
- watch
- apiGroups:
- apps
resources:
- deployments
- daemonsets
- replicasets
- statefulsets
verbs:
- '*'
- apiGroups:
- rbac.authorization.k8s.io
resources:
- roles
- rolebindings
verbs:
- create
- update
- list
- watch
- apiGroups:
- ""
resources:
- pods/portforward
verbs:
- create
- apiGroups:
- ""
resources:
- pods/log
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- pods
- pods/exec
verbs:
- "*"
- apiGroups:
- ""
resources:
- events
verbs:
- watch
- list
- create
- patch
- apiGroups:
- apps
resourceNames:
- jenkins-operator
resources:
- deployments/finalizers
verbs:
- update
- apiGroups:
- jenkins.io
resources:
- '*'
verbs:
- '*'
- apiGroups:
- ""
resources:
- persistentvolumeclaims
verbs:
- get
- list
- watch
- apiGroups:
- "route.openshift.io"
resources:
- routes
verbs:
- get
- list
- watch
- create
- update
- apiGroups:
- "image.openshift.io"
resources:
- imagestreams
verbs:
- get
- list
- watch
- apiGroups:
- "build.openshift.io"
resources:
- builds
- buildconfigs
verbs:
- get
- list
- watch
- apiGroups:
- apps
resources:
- daemonsets
- deployments
- replicasets
- statefulsets
verbs:
- '*'
- apiGroups:
- apps
- jenkins-operator
resources:
- deployments/finalizers
verbs:
- update
- apiGroups:
- build.openshift.io
resources:
- buildconfigs
- builds
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- configmaps
- secrets
- services
verbs:
- create
- get
- list
- update
- watch
- apiGroups:
- ""
resources:
- events
verbs:
- create
- get
- list
- patch
- watch
- apiGroups:
- ""
resources:
- persistentvolumeclaims
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- pods
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- ""
resources:
- pods
- pods/exec
verbs:
- '*'
- apiGroups:
- ""
resources:
- pods/log
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- pods/portforward
verbs:
- create
- apiGroups:
- ""
resources:
- serviceaccounts
verbs:
- create
- get
- list
- update
- watch
- apiGroups:
- image.openshift.io
resources:
- imagestreams
verbs:
- get
- list
- watch
- apiGroups:
- jenkins.io
resources:
- '*'
verbs:
- '*'
- apiGroups:
- jenkins.io
resources:
- jenkins
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- jenkins.io
resources:
- jenkins/finalizers
verbs:
- update
- apiGroups:
- jenkins.io
resources:
- jenkins/status
verbs:
- get
- patch
- update
- apiGroups:
- rbac.authorization.k8s.io
resources:
- rolebindings
- roles
verbs:
- create
- get
- list
- update
- watch
- apiGroups:
- route.openshift.io
resources:
- routes
verbs:
- create
- get
- list
- update
- watch
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: manager-rolebinding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: jenkins-operator
subjects:
- kind: ServiceAccount
name: jenkins-operator
roleRef:
kind: Role
name: jenkins-operator
apiGroup: rbac.authorization.k8s.io
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: jenkins-operator
labels:
control-plane: controller-manager
spec:
replicas: 1
selector:
matchLabels:
name: jenkins-operator
control-plane: controller-manager
replicas: 1
template:
metadata:
labels:
name: jenkins-operator
control-plane: controller-manager
spec:
serviceAccountName: jenkins-operator
securityContext:
runAsUser: 65532
containers:
- name: jenkins-operator
image: virtuslab/jenkins-operator:v0.5.0
command:
- jenkins-operator
args: []
imagePullPolicy: IfNotPresent
env:
- name: WATCH_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: OPERATOR_NAME
value: "jenkins-operator"
- command:
- /manager
args:
- --leader-elect
image: virtuslab/jenkins-operator:v0.7.0
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: 100m
memory: 30Mi
requests:
cpu: 100m
memory: 20Mi
env:
- name: WATCH_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
terminationGracePeriodSeconds: 10

View File

@ -0,0 +1,67 @@
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: jenkins-webhook-certificate
namespace: default
spec:
duration: 2160h
renewBefore: 360h
secretName: jenkins-webhook-certificate
dnsNames:
- jenkins-webhook-service.default.svc
- jenkins-webhook-service.default.svc.cluster.local
issuerRef:
kind: Issuer
name: selfsigned
---
apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
name: selfsigned
namespace: default
spec:
selfSigned: {}
---
apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingWebhookConfiguration
metadata:
name: jenkins-webhook
annotations:
cert-manager.io/inject-ca-from: default/jenkins-webhook-certificate
webhooks:
- admissionReviewVersions:
- v1
- v1beta1
clientConfig:
service:
name: jenkins-webhook-service
namespace: default
path: /validate-jenkins-io-v1alpha2-jenkins
failurePolicy: Fail
name: vjenkins.kb.io
timeoutSeconds: 30
rules:
- apiGroups:
- jenkins.io
apiVersions:
- v1alpha2
operations:
- CREATE
- UPDATE
resources:
- jenkins
scope: "Namespaced"
sideEffects: None
---
apiVersion: v1
kind: Service
metadata:
name: jenkins-webhook-service
namespace: default
spec:
ports:
- port: 443
targetPort: 9443
selector:
control-plane: controller-manager
---

24
deploy/cert-manager.yaml Normal file
View File

@ -0,0 +1,24 @@
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: jenkins-webhook-certificate
namespace: default
spec:
duration: 2160h
renewBefore: 360h
secretName: jenkins-webhook-certificate
dnsNames:
- jenkins-webhook-service.default.svc
- jenkins-webhook-service.default.svc.cluster.local
issuerRef:
kind: Issuer
name: selfsigned
---
apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
name: selfsigned
namespace: default
spec:
selfSigned: {}

View File

@ -151,10 +151,10 @@ spec:
type: object
basePlugins:
description: 'BasePlugins contains plugins required by operator
Defaults to : - name: kubernetes version: 1.15.7 - name: workflow-job
Defaults to : - name: kubernetes version: 1.29.6 - name: workflow-job
version: "2.39" - name: workflow-aggregator version: "2.6" - name:
git version: 3.10.0 - name: job-dsl version: "1.74" - name: configuration-as-code
version: "1.19" - name: kubernetes-credentials-provider version: 0.12.1'
git version: 4.7.2 - name: job-dsl version: "1.74" - name: configuration-as-code
version: "1.51" - name: kubernetes-credentials-provider version: 0.18-1'
items:
description: Plugin defines Jenkins plugin
properties:

View File

@ -1,85 +0,0 @@
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
name: jenkinsimages.jenkins.io
spec:
group: jenkins.io
names:
kind: JenkinsImage
listKind: JenkinsImageList
plural: jenkinsimages
singular: jenkinsimage
scope: Namespaced
subresources:
status: {}
validation:
openAPIV3Schema:
description: JenkinsImage is the Schema for the jenkinsimages API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: JenkinsImageSpec defines the desired state of JenkinsImage
properties:
image:
description: Defines Jenkins Plugin structure
properties:
name:
type: string
version:
type: string
required:
- name
type: object
plugins:
items:
description: Defines Jenkins Plugin structure
properties:
name:
type: string
version:
type: string
required:
- name
type: object
type: array
required:
- image
- plugins
type: object
status:
description: JenkinsImageStatus defines the observed state of JenkinsImage
properties:
image:
type: string
installedPlugins:
items:
description: Defines Jenkins Plugin structure
properties:
name:
type: string
version:
type: string
required:
- name
type: object
type: array
md5sum:
type: string
type: object
type: object
version: v1alpha2
versions:
- name: v1alpha2
served: true
storage: true

View File

@ -1,15 +0,0 @@
apiVersion: jenkins.io/v1alpha2
kind: Jenkins
metadata:
name: example
spec:
master:
containers:
- name: jenkins-master
image: jenkins/jenkins:2.263.2-lts-alpine
seedJobs:
- id: jenkins-operator
targets: "cicd/jobs/*.jenkins"
description: "Jenkins Operator repository"
repositoryBranch: master
repositoryUrl: https://github.com/jenkinsci/kubernetes-operator.git

View File

@ -1,106 +0,0 @@
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
name: jenkins.jenkins.io
spec:
group: jenkins.io
names:
kind: Jenkins
listKind: JenkinsList
plural: jenkins
singular: jenkins
scope: Namespaced
versions:
- name : v1alpha2
served: true
storage: true
- name : v1alpha1
served: true
storage: false
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
name: jenkinsimages.jenkins.io
spec:
group: jenkins.io
names:
kind: JenkinsImage
listKind: JenkinsImageList
plural: jenkinsimages
singular: jenkinsimage
scope: Namespaced
subresources:
status: {}
validation:
openAPIV3Schema:
description: JenkinsImage is the Schema for the jenkinsimages API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: JenkinsImageSpec defines the desired state of JenkinsImage
properties:
image:
description: Defines Jenkins Plugin structure
properties:
name:
type: string
version:
type: string
required:
- name
type: object
plugins:
items:
description: Defines Jenkins Plugin structure
properties:
name:
type: string
version:
type: string
required:
- name
type: object
type: array
required:
- image
- plugins
type: object
status:
description: JenkinsImageStatus defines the observed state of JenkinsImage
properties:
image:
type: string
installedPlugins:
items:
description: Defines Jenkins Plugin structure
properties:
name:
type: string
version:
type: string
required:
- name
type: object
type: array
md5sum:
type: string
type: object
type: object
version: v1alpha2
versions:
- name: v1alpha2
served: true
storage: true

View File

@ -1,24 +0,0 @@
apiVersion: jenkins.io/v1alpha2
kind: JenkinsImage
metadata:
name: simple-jenkinsimage
spec:
image:
name: jenkins/jenkins
tag: 2.263.1-lts-alpine
plugins:
- name: kubernetes
version: "1.28.6"
- name: workflow-job
version: "2.40"
- name: workflow-aggregator
version: "2.6"
- name: git
version: "4.5.0"
- name: job-dsl
version: "1.77"
- name: configuration-as-code
version: "1.46"
- name: kubernetes-credentials-provider
version: "0.15"

View File

@ -1,85 +0,0 @@
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
name: jenkinsimages.jenkins.io
spec:
group: jenkins.io
names:
kind: JenkinsImage
listKind: JenkinsImageList
plural: jenkinsimages
singular: jenkinsimage
scope: Namespaced
subresources:
status: {}
validation:
openAPIV3Schema:
description: JenkinsImage is the Schema for the jenkinsimages API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: JenkinsImageSpec defines the desired state of JenkinsImage
properties:
image:
description: Defines Jenkins Plugin structure
properties:
name:
type: string
version:
type: string
required:
- name
type: object
plugins:
items:
description: Defines Jenkins Plugin structure
properties:
name:
type: string
version:
type: string
required:
- name
type: object
type: array
required:
- image
- plugins
type: object
status:
description: JenkinsImageStatus defines the observed state of JenkinsImage
properties:
image:
type: string
installedPlugins:
items:
description: Defines Jenkins Plugin structure
properties:
name:
type: string
version:
type: string
required:
- name
type: object
type: array
md5sum:
type: string
type: object
type: object
version: v1alpha2
versions:
- name: v1alpha2
served: true
storage: true

View File

@ -1,73 +0,0 @@
apiVersion: jenkins.io/v1alpha2
kind: Jenkins
metadata:
annotations:
jenkins.io/openshift-mode: 'true'
name: jenkins
spec:
master:
containers:
- name: jenkins-master
command:
- /usr/bin/go-init
- '-main'
- /usr/libexec/s2i/run
env:
- name: OPENSHIFT_ENABLE_OAUTH
value: 'true'
- name: OPENSHIFT_ENABLE_REDIRECT_PROMPT
value: 'true'
- name: DISABLE_ADMINISTRATIVE_MONITORS
value: 'false'
- name: KUBERNETES_MASTER
value: 'https://kubernetes.default:443'
- name: KUBERNETES_TRUST_CERTIFICATES
value: 'true'
- name: JENKINS_SERVICE_NAME
value: jenkins-operator-http-jenkins
- name: JNLP_SERVICE_NAME
value: jenkins-operator-slave-jenkins
- name: JENKINS_UC_INSECURE
value: 'false'
- name: JENKINS_HOME
value: /var/lib/jenkins
- name: JAVA_OPTS
value: >-
-XX:+UnlockExperimentalVMOptions -XX:+UnlockExperimentalVMOptions
-XX:+UseCGroupMemoryLimitForHeap -XX:MaxRAMFraction=1
-Djenkins.install.runSetupWizard=false -Djava.awt.headless=true
image: 'quay.io/openshift/origin-jenkins:latest'
imagePullPolicy: Always
livenessProbe:
httpGet:
path: /login
port: 8080
scheme: HTTP
initialDelaySeconds: 420
periodSeconds: 360
timeoutSeconds: 240
readinessProbe:
httpGet:
path: /login
port: 8080
scheme: HTTP
initialDelaySeconds: 3
periodSeconds: 0
timeoutSeconds: 240
resources:
limits:
cpu: 600m
memory: 4Gi
requests:
cpu: 500m
memory: 3Gi
service:
port: 8080
type: ClusterIP
slaveService:
port: 50000
type: ClusterIP
serviceAccount:
annotations:
serviceaccounts.openshift.io/oauth-redirectreference.jenkins: '{"kind":"OAuthRedirectReference","apiVersion":"v1","reference":{"kind":"Route","name":"jenkins-operator"}}'

View File

@ -1,20 +0,0 @@
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
name: jenkins.jenkins.io
spec:
group: jenkins.io
names:
kind: Jenkins
listKind: JenkinsList
plural: jenkins
singular: jenkins
scope: Namespaced
version: v1alpha2
versions:
- name : v1alpha2
served: true
storage: true
- name : v1alpha1
served: true
storage: false

View File

@ -1,20 +0,0 @@
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
name: jenkins.jenkins.io
spec:
group: jenkins.io
names:
kind: Jenkins
listKind: JenkinsList
plural: jenkins
singular: jenkins
scope: Namespaced
version: v1alpha2
versions:
- name : v1alpha2
served: true
storage: true
- name : v1alpha1
served: true
storage: false

View File

@ -1,5 +0,0 @@
channels:
- currentCSV: jenkins-operator.v0.3.0
name: alpha
defaultChannel: alpha
packageName: jenkins-operator

View File

@ -1,34 +0,0 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: jenkins-operator
spec:
replicas: 1
selector:
matchLabels:
name: jenkins-operator
template:
metadata:
labels:
name: jenkins-operator
spec:
serviceAccountName: jenkins-operator
containers:
- name: jenkins-operator
image: virtuslab/jenkins-operator:v0.5.0
command:
- jenkins-operator
args: []
imagePullPolicy: IfNotPresent
env:
- name: WATCH_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: OPERATOR_NAME
value: "jenkins-operator"

View File

@ -1,117 +0,0 @@
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: jenkins-operator
rules:
- apiGroups:
- ""
resources:
- services
- configmaps
- secrets
- serviceaccounts
verbs:
- get
- create
- update
- list
- watch
- apiGroups:
- apps
resources:
- deployments
- daemonsets
- replicasets
- statefulsets
verbs:
- '*'
- apiGroups:
- rbac.authorization.k8s.io
resources:
- roles
- rolebindings
verbs:
- create
- update
- list
- watch
- apiGroups:
- ""
resources:
- pods/portforward
verbs:
- create
- apiGroups:
- ""
resources:
- pods/log
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- pods
- pods/exec
verbs:
- "*"
- apiGroups:
- ""
resources:
- events
verbs:
- watch
- list
- create
- patch
- apiGroups:
- apps
resourceNames:
- jenkins-operator
resources:
- deployments/finalizers
verbs:
- update
- apiGroups:
- jenkins.io
resources:
- '*'
verbs:
- '*'
- apiGroups:
- ""
resources:
- persistentvolumeclaims
verbs:
- get
- list
- watch
- apiGroups:
- "route.openshift.io"
resources:
- routes
verbs:
- get
- list
- watch
- create
- update
- apiGroups:
- "image.openshift.io"
resources:
- imagestreams
verbs:
- get
- list
- watch
- apiGroups:
- "build.openshift.io"
resources:
- builds
- buildconfigs
verbs:
- get
- list
- watch

View File

@ -1,12 +0,0 @@
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: jenkins-operator
subjects:
- kind: ServiceAccount
name: jenkins-operator
roleRef:
kind: Role
name: jenkins-operator
apiGroup: rbac.authorization.k8s.io

View File

@ -1,5 +0,0 @@
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: jenkins-operator

45
deploy/webhook.yaml Normal file
View File

@ -0,0 +1,45 @@
---
apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingWebhookConfiguration
metadata:
name: jenkins-webhook
annotations:
cert-manager.io/inject-ca-from: default/jenkins-webhook-certificate
webhooks:
- admissionReviewVersions:
- v1
- v1beta1
clientConfig:
service:
name: jenkins-webhook-service
namespace: default
path: /validate-jenkins-io-v1alpha2-jenkins
failurePolicy: Fail
name: vjenkins.kb.io
timeoutSeconds: 30
rules:
- apiGroups:
- jenkins.io
apiVersions:
- v1alpha2
operations:
- CREATE
- UPDATE
resources:
- jenkins
scope: "Namespaced"
sideEffects: None
---
apiVersion: v1
kind: Service
metadata:
name: jenkins-webhook-service
namespace: default
spec:
ports:
- port: 443
targetPort: 9443
selector:
name: jenkins-operator
---

View File

@ -104,20 +104,18 @@ Jenkins Operator is a Kubernetes native operator which fully manages Jenkins on
<img src="/kubernetes-operator/img/logo.svg" style="height: 75%; margin-left: -75%; margin-top: 50%;" alt="Logo"/>
</div>
<div class="col-md-4 col-lg-8 order-xs-2 order-sm-2 order-md-2">
<h1>The main reason why we decided to write the <b>jenkins-operator</b> 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.</h1>
<h1>The main reason why we decided to develop the <b>Jenkins Operator</b> 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.</h1>
<p class="lead mt-2">
<br />
Some of the problems we want to solve:
<ul>
<li>Volumes handling (AWS EBS volume attach/detach issue when using PVC)</li>
<li>Installing plugins with incompatible versions or security vulnerabilities</li>
<li>Better configuration as code</li>
<li>Lack of end to end tests</li>
<li>Handle graceful shutdown properly</li>
<li>Handling graceful shutdown properly</li>
<li>Security and hardening out of the box</li>
<li>Orphaned jobs with no jnlp connection</li>
<li>Make errors more visible for end users</li>
<li>Backup and restore for jobs history</li>
<li>Making errors more visible for end users</li>
</ul>
</p>

View File

@ -202,10 +202,10 @@
<a href="https://github.com/jenkinsci/kubernetes-operator/edit/master/website/content/en/blog/releases/in-depth-monoliths-detailed-spec.md" target="_blank"><i class="fa fa-edit fa-fw"></i> Edit this page</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new?title=Another%20Great%20Release" target="_blank"><i class="fab fa-github fa-fw"></i> Create documentation issue</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new?labels=documentation&amp;template=documentation.md&amp;title=Another%20Great%20Release" target="_blank"><i class="fab fa-github fa-fw"></i> Create documentation issue</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new" target="_blank"><i class="fas fa-tasks fa-fw"></i> Create project issue</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new/choose" target="_blank"><i class="fas fa-tasks fa-fw"></i> Create project issue</a>
</div>

View File

@ -202,10 +202,10 @@
<a href="https://github.com/jenkinsci/kubernetes-operator/edit/master/website/content/en/blog/news/first-post/index.md" target="_blank"><i class="fa fa-edit fa-fw"></i> Edit this page</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new?title=Easy%20documentation%20with%20Docsy" target="_blank"><i class="fab fa-github fa-fw"></i> Create documentation issue</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new?labels=documentation&amp;template=documentation.md&amp;title=Easy%20documentation%20with%20Docsy" target="_blank"><i class="fab fa-github fa-fw"></i> Create documentation issue</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new" target="_blank"><i class="fas fa-tasks fa-fw"></i> Create project issue</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new/choose" target="_blank"><i class="fas fa-tasks fa-fw"></i> Create project issue</a>
</div>

View File

@ -202,10 +202,10 @@
<a href="https://github.com/jenkinsci/kubernetes-operator/edit/master/website/content/en/blog/news/second-post.md" target="_blank"><i class="fa fa-edit fa-fw"></i> Edit this page</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new?title=The%20second%20blog%20post" target="_blank"><i class="fab fa-github fa-fw"></i> Create documentation issue</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new?labels=documentation&amp;template=documentation.md&amp;title=The%20second%20blog%20post" target="_blank"><i class="fab fa-github fa-fw"></i> Create documentation issue</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new" target="_blank"><i class="fas fa-tasks fa-fw"></i> Create project issue</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new/choose" target="_blank"><i class="fas fa-tasks fa-fw"></i> Create project issue</a>
</div>

View File

@ -117,10 +117,10 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/blog/news/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">News</a>
<a href="/kubernetes-operator/blog/news/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">News</a>
</li>
<ul>
<li class="collapse show" id="kubernetes-operator-blog-news">
<li class="collapse " id="kubernetes-operator-blog-news">
@ -152,10 +152,10 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/blog/releases/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Releases</a>
<a href="/kubernetes-operator/blog/releases/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Releases</a>
</li>
<ul>
<li class="collapse show" id="kubernetes-operator-blog-releases">
<li class="collapse " id="kubernetes-operator-blog-releases">
@ -192,10 +192,10 @@
<a href="https://github.com/jenkinsci/kubernetes-operator/edit/master/website/content/en/blog/_index.md" target="_blank"><i class="fa fa-edit fa-fw"></i> Edit this page</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new?title=Docsy%20Blog" target="_blank"><i class="fab fa-github fa-fw"></i> Create documentation issue</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new?labels=documentation&amp;template=documentation.md&amp;title=Docsy%20Blog" target="_blank"><i class="fab fa-github fa-fw"></i> Create documentation issue</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new" target="_blank"><i class="fas fa-tasks fa-fw"></i> Create project issue</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new/choose" target="_blank"><i class="fas fa-tasks fa-fw"></i> Create project issue</a>
</div>

View File

@ -192,10 +192,10 @@
<a href="https://github.com/jenkinsci/kubernetes-operator/edit/master/website/content/en/blog/news/_index.md" target="_blank"><i class="fa fa-edit fa-fw"></i> Edit this page</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new?title=News%20About%20Docsy" target="_blank"><i class="fab fa-github fa-fw"></i> Create documentation issue</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new?labels=documentation&amp;template=documentation.md&amp;title=News%20About%20Docsy" target="_blank"><i class="fab fa-github fa-fw"></i> Create documentation issue</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new" target="_blank"><i class="fas fa-tasks fa-fw"></i> Create project issue</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new/choose" target="_blank"><i class="fas fa-tasks fa-fw"></i> Create project issue</a>
</div>

View File

@ -192,10 +192,10 @@
<a href="https://github.com/jenkinsci/kubernetes-operator/edit/master/website/content/en/blog/releases/_index.md" target="_blank"><i class="fa fa-edit fa-fw"></i> Edit this page</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new?title=New%20Releases" target="_blank"><i class="fab fa-github fa-fw"></i> Create documentation issue</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new?labels=documentation&amp;template=documentation.md&amp;title=New%20Releases" target="_blank"><i class="fab fa-github fa-fw"></i> Create documentation issue</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new" target="_blank"><i class="fas fa-tasks fa-fw"></i> Create project issue</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new/choose" target="_blank"><i class="fas fa-tasks fa-fw"></i> Create project issue</a>
</div>

View File

@ -26,7 +26,7 @@
" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://jenkinsci.github.io/kubernetes-operator/docs/developer-guide/" />
<meta property="og:updated_time" content="2019-08-05T00:00:00+00:00" /><meta property="og:site_name" content="Jenkins Operator" />
<meta property="og:updated_time" content="2021-10-20T00:00:00+00:00" /><meta property="og:site_name" content="Jenkins Operator" />
<meta itemprop="name" content="Developer Guide">
<meta itemprop="description" content="Jenkins Operator for developers
"><meta name="twitter:card" content="summary"/>
@ -118,52 +118,6 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/installation/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Installation</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-installation">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/installation/preview/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Installation - Preview</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-installation-preview">
</li>
</ul>
</ul>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/how-it-works/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">How it works</a>
@ -218,7 +172,7 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/getting-started/latest/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Latest (v0.5.x)</a>
<a href="/kubernetes-operator/docs/getting-started/latest/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Latest (v0.7.x)</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-getting-started-latest">
@ -228,25 +182,43 @@
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-deploy-jenkins" href="/kubernetes-operator/docs/getting-started/latest/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-installing-the-operator" href="/kubernetes-operator/docs/getting-started/latest/installing-the-operator/">Installing the Operator</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-configuration" href="/kubernetes-operator/docs/getting-started/latest/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-deploying-jenkins" href="/kubernetes-operator/docs/getting-started/latest/deploying-jenkins/">Deploying Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-customization" href="/kubernetes-operator/docs/getting-started/latest/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-customizing-jenkins" href="/kubernetes-operator/docs/getting-started/latest/customizing-jenkins/">Customizing Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-configure-backup-and-restore" href="/kubernetes-operator/docs/getting-started/latest/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-configuring-seed-jobs-and-pipelines" href="/kubernetes-operator/docs/getting-started/latest/configuring-seed-jobs-and-pipelines/">Configuring Seed Jobs and Pipelines</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-configuring-backup-and-restore" href="/kubernetes-operator/docs/getting-started/latest/configuring-backup-and-restore/">Configuring backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-separate-namespaces" href="/kubernetes-operator/docs/getting-started/latest/separate-namespaces/">Separate namespaces for Jenkins and Operator</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-custom-backup-and-restore" href="/kubernetes-operator/docs/getting-started/latest/custom-backup-and-restore/">Custom backup and restore providers</a>
@ -258,13 +230,7 @@
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-custom-backup-and-restore" href="/kubernetes-operator/docs/getting-started/latest/custom-backup-and-restore/">Custom Backup and Restore Providers</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-notifications" href="/kubernetes-operator/docs/getting-started/latest/notifications/">Notifications</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-ldap" href="/kubernetes-operator/docs/getting-started/latest/ldap/">LDAP</a>
@ -276,12 +242,6 @@
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-diagnostics" href="/kubernetes-operator/docs/getting-started/latest/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-schema" href="/kubernetes-operator/docs/getting-started/latest/schema/">Schema</a>
@ -301,71 +261,160 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/getting-started/preview/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Preview</a>
<a href="/kubernetes-operator/docs/getting-started/v0.6.x/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.6.x</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-getting-started-preview">
<li class="collapse " id="kubernetes-operator-docs-getting-started-v0-6-x">
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-deploy-jenkins" href="/kubernetes-operator/docs/getting-started/preview/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-installing-the-operator" href="/kubernetes-operator/docs/getting-started/v0.6.x/installing-the-operator/">Installing the Operator</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-configuration" href="/kubernetes-operator/docs/getting-started/preview/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-deploying-jenkins" href="/kubernetes-operator/docs/getting-started/v0.6.x/deploying-jenkins/">Deploying Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-customization" href="/kubernetes-operator/docs/getting-started/preview/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-customizing-jenkins" href="/kubernetes-operator/docs/getting-started/v0.6.x/customizing-jenkins/">Customizing Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-configure-backup-and-restore" href="/kubernetes-operator/docs/getting-started/preview/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-configuring-seed-jobs-and-pipelines" href="/kubernetes-operator/docs/getting-started/v0.6.x/configuring-seed-jobs-and-pipelines/">Configuring Seed Jobs and Pipelines</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-aks" href="/kubernetes-operator/docs/getting-started/preview/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-configuring-backup-and-restore" href="/kubernetes-operator/docs/getting-started/v0.6.x/configuring-backup-and-restore/">Configuring backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-custom-backup-and-restore" href="/kubernetes-operator/docs/getting-started/preview/custom-backup-and-restore/">Custom Backup and Restore Providers</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-separate-namespaces" href="/kubernetes-operator/docs/getting-started/v0.6.x/separate-namespaces/">Separate namespaces for Jenkins and Operator</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-notifications" href="/kubernetes-operator/docs/getting-started/preview/notifications/">Notifications</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-custom-backup-and-restore" href="/kubernetes-operator/docs/getting-started/v0.6.x/custom-backup-and-restore/">Custom backup and restore providers</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-openshift" href="/kubernetes-operator/docs/getting-started/preview/openshift/">OpenShift</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-aks" href="/kubernetes-operator/docs/getting-started/v0.6.x/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-diagnostics" href="/kubernetes-operator/docs/getting-started/preview/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-ldap" href="/kubernetes-operator/docs/getting-started/v0.6.x/ldap/">LDAP</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-schema" href="/kubernetes-operator/docs/getting-started/preview/schema/">Schema</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-openshift" href="/kubernetes-operator/docs/getting-started/v0.6.x/openshift/">OpenShift</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-schema" href="/kubernetes-operator/docs/getting-started/v0.6.x/schema/">Schema</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/getting-started/v0.5.x/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.5.x</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-getting-started-v0-5-x">
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-deploy-jenkins" href="/kubernetes-operator/docs/getting-started/v0.5.x/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-configuration" href="/kubernetes-operator/docs/getting-started/v0.5.x/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-customization" href="/kubernetes-operator/docs/getting-started/v0.5.x/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-configure-backup-and-restore" href="/kubernetes-operator/docs/getting-started/v0.5.x/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-aks" href="/kubernetes-operator/docs/getting-started/v0.5.x/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-custom-backup-and-restore" href="/kubernetes-operator/docs/getting-started/v0.5.x/custom-backup-and-restore/">Custom Backup and Restore Providers</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-notifications" href="/kubernetes-operator/docs/getting-started/v0.5.x/notifications/">Notifications</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-openshift" href="/kubernetes-operator/docs/getting-started/v0.5.x/openshift/">OpenShift</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-diagnostics" href="/kubernetes-operator/docs/getting-started/v0.5.x/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-schema" href="/kubernetes-operator/docs/getting-started/v0.5.x/schema/">Schema</a>
</li>
@ -548,77 +597,6 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/getting-started/v0.1.x/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.1.x</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-getting-started-v0-1-x">
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-deploy-jenkins" href="/kubernetes-operator/docs/getting-started/v0.1.x/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-configuration" href="/kubernetes-operator/docs/getting-started/v0.1.x/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-customization" href="/kubernetes-operator/docs/getting-started/v0.1.x/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-aks" href="/kubernetes-operator/docs/getting-started/v0.1.x/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-configure-backup-and-restore" href="/kubernetes-operator/docs/getting-started/v0.1.x/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-diagnostics" href="/kubernetes-operator/docs/getting-started/v0.1.x/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-scheme" href="/kubernetes-operator/docs/getting-started/v0.1.x/scheme/">Scheme</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-migration-guide-v1alpha1-to-v1alpha2" href="/kubernetes-operator/docs/getting-started/v0.1.x/migration-guide-v1alpha1-to-v1alpha2/">Migration guide from v1alpha1 to v1alpha2</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/getting-started/v0.2.x/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.2.x</a>
@ -688,6 +666,77 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/getting-started/v0.1.x/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.1.x</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-getting-started-v0-1-x">
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-deploy-jenkins" href="/kubernetes-operator/docs/getting-started/v0.1.x/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-configuration" href="/kubernetes-operator/docs/getting-started/v0.1.x/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-customization" href="/kubernetes-operator/docs/getting-started/v0.1.x/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-aks" href="/kubernetes-operator/docs/getting-started/v0.1.x/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-configure-backup-and-restore" href="/kubernetes-operator/docs/getting-started/v0.1.x/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-diagnostics" href="/kubernetes-operator/docs/getting-started/v0.1.x/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-scheme" href="/kubernetes-operator/docs/getting-started/v0.1.x/scheme/">Scheme</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-migration-guide-v1alpha1-to-v1alpha2" href="/kubernetes-operator/docs/getting-started/v0.1.x/migration-guide-v1alpha1-to-v1alpha2/">Migration guide from v1alpha1 to v1alpha2</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
@ -727,17 +776,17 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/developer-guide/" class="align-left pl-0 pr-2 active td-sidebar-link td-sidebar-link__section">Developer Guide</a>
<a href="/kubernetes-operator/docs/troubleshooting/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Troubleshooting</a>
</li>
<ul>
<li class="collapse show" id="kubernetes-operator-docs-developer-guide">
<li class="collapse " id="kubernetes-operator-docs-troubleshooting">
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-developer-guide-tools" href="/kubernetes-operator/docs/developer-guide/tools/">Tools</a>
</li>
</ul>
</ul>
@ -750,10 +799,10 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/developer-guide/preview/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Developer Guide - Preview</a>
<a href="/kubernetes-operator/docs/developer-guide/" class="align-left pl-0 pr-2 active td-sidebar-link td-sidebar-link__section">Developer Guide</a>
</li>
<ul>
<li class="collapse show" id="kubernetes-operator-docs-developer-guide-preview">
<li class="collapse show" id="kubernetes-operator-docs-developer-guide">
@ -763,6 +812,23 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/faq/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">FAQ</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-faq">
</li>
</ul>
</ul>
@ -790,10 +856,10 @@
<a href="https://github.com/jenkinsci/kubernetes-operator/edit/master/website/content/en/docs/Developer%20Guide/_index.md" target="_blank"><i class="fa fa-edit fa-fw"></i> Edit this page</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new?title=Developer%20Guide" target="_blank"><i class="fab fa-github fa-fw"></i> Create documentation issue</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new?labels=documentation&amp;template=documentation.md&amp;title=Developer%20Guide" target="_blank"><i class="fab fa-github fa-fw"></i> Create documentation issue</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new" target="_blank"><i class="fas fa-tasks fa-fw"></i> Create project issue</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new/choose" target="_blank"><i class="fas fa-tasks fa-fw"></i> Create project issue</a>
</div>
@ -808,20 +874,20 @@
<ul>
<li><a href="#prerequisites">Prerequisites</a></li>
<li><a href="#clone-repository-and-download-dependencies">Clone repository and download dependencies</a></li>
<li><a href="#build-and-run-with-a-minikube">Build and run with a minikube</a>
<li><a href="#build-and-run-with-a-minikube">Build and run with a minikube</a></li>
<li><a href="#build-and-run-with-docker-desktop">Build and run with Docker Desktop</a>
<ul>
<li><a href="#debug-jenkins-operator">Debug Jenkins Operator</a></li>
<li><a href="#stop-or-delete-minikube-cluster">Stop or delete minikube cluster</a></li>
</ul></li>
<li><a href="#build-and-run-with-a-remote-kubernetes-cluster">Build and run with a remote Kubernetes cluster</a></li>
<li><a href="#testing">Testing</a>
<ul>
<li><a href="#running-e2e-tests">Running E2E tests</a></li>
</ul></li>
<li><a href="#tips-tricks">Tips &amp; Tricks</a>
<ul>
<li><a href="#building-docker-image-on-minikube-for-e2e-tests">Building docker image on minikube (for e2e tests)</a></li>
<li><a href="#when-pkg-apis-jenkinsio-jenkins-types-go-has-changed">When <code>pkg/apis/jenkinsio/*/jenkins_types.go</code> has changed</a></li>
<li><a href="#building-docker-image-on-minikube">Building docker image on minikube</a></li>
<li><a href="#when-api-v1alpha2-jenkins-types-go-has-changed">When <code>api/v1alpha2/jenkins_types.go</code> has changed</a></li>
<li><a href="#getting-the-jenkins-url-and-basic-credentials">Getting the Jenkins URL and basic credentials</a></li>
<li><a href="#webhook">Webhook</a></li>
</ul></li>
<li><a href="#self-learning">Self-learning</a></li>
</ul></li>
@ -873,11 +939,11 @@
<h2 id="prerequisites">Prerequisites</h2>
<ul>
<li><a href="https://github.com/operator-framework/operator-sdk">operator_sdk</a> version v0.17.0</li>
<li><a href="https://github.com/operator-framework/operator-sdk">operator_sdk</a> version 1.3.0</li>
<li><a href="https://git-scm.com/downloads">git</a></li>
<li><a href="https://golang.org/dl/">go</a> version v1.14+</li>
<li><a href="https://jenkinsci.github.io/kubernetes-operator/docs/developer-guide/tools/">goimports, golint, checkmake and staticcheck</a></li>
<li><a href="https://kubernetes.io/docs/tasks/tools/install-minikube/">minikube</a> version v1.1.0+ (preferred Hypervisor - <a href="https://www.virtualbox.org/wiki/Downloads">virtualbox</a>)</li>
<li><a href="https://golang.org/dl/">go</a> version 1.15.6</li>
<li>goimports, golint, checkmake and staticcheck</li>
<li><a href="https://kubernetes.io/docs/tasks/tools/install-minikube/">minikube</a> version 1.21.0 (preferred Hypervisor - <a href="https://www.virtualbox.org/wiki/Downloads">virtualbox</a>) (automatically downloaded)</li>
<li><a href="https://docs.docker.com/install/">docker</a> version 17.03+</li>
</ul>
@ -887,75 +953,73 @@
make go-dependencies</code></pre></div>
<h2 id="build-and-run-with-a-minikube">Build and run with a minikube</h2>
<p>Build and run <strong>Jenkins Operator</strong> locally:</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">make build minikube-run
<p>Start minikube instance configured for <strong>Jenkins Operator</strong>. Appropriate minikube version will be downloaded to bin folder.</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">make minikube-start</code></pre></div>
<p>Next run <strong>Jenkins Operator</strong> locally.</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">make run</code></pre></div>
<p>Console output indicating readiness of this phase:</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">+ build
+ run
kubectl config use-context minikube
Switched to context <span style="color:#4e9a06">&#34;minikube&#34;</span>.
Watching <span style="color:#4e9a06">&#39;default&#39;</span> namespace
bin/manager --jenkins-api-hostname<span style="color:#ce5c00;font-weight:bold">=</span>192.168.99.252 --jenkins-api-port<span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#0000cf;font-weight:bold">0</span> --jenkins-api-use-nodeport<span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#204a87">true</span> --cluster-domain<span style="color:#ce5c00;font-weight:bold">=</span>cluster.local
2021-02-08T14:14:45.263+0100 INFO cmd Version: v0.5.0
2021-02-08T14:14:45.263+0100 INFO cmd Git commit: 305dbeda-dirty-dirty
2021-02-08T14:14:45.264+0100 INFO cmd Go Version: go1.15.6
2021-02-08T14:14:45.264+0100 INFO cmd Go OS/Arch: darwin/amd64
2021-02-08T14:14:45.264+0100 INFO cmd Watch namespace: default
2021-02-08T14:14:45.592+0100 INFO controller-runtime.metrics metrics server is starting to listen <span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;addr&#34;</span>: <span style="color:#4e9a06">&#34;0.0.0.0:8383&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
2021-02-08T14:14:45.599+0100 INFO cmd starting manager
2021-02-08T14:14:45.599+0100 INFO controller-runtime.manager starting metrics server <span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;path&#34;</span>: <span style="color:#4e9a06">&#34;/metrics&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
2021-02-08T14:14:45.599+0100 INFO controller-runtime.manager.controller.jenkins Starting EventSource <span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;reconciler group&#34;</span>: <span style="color:#4e9a06">&#34;jenkins.io&#34;</span>, <span style="color:#4e9a06">&#34;reconciler kind&#34;</span>: <span style="color:#4e9a06">&#34;Jenkins&#34;</span>, <span style="color:#4e9a06">&#34;source&#34;</span>: <span style="color:#4e9a06">&#34;kind source: jenkins.io/v1alpha2, Kind=Jenkins&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
2021-02-08T14:14:45.700+0100 INFO controller-runtime.manager.controller.jenkins Starting EventSource <span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;reconciler group&#34;</span>: <span style="color:#4e9a06">&#34;jenkins.io&#34;</span>, <span style="color:#4e9a06">&#34;reconciler kind&#34;</span>: <span style="color:#4e9a06">&#34;Jenkins&#34;</span>, <span style="color:#4e9a06">&#34;source&#34;</span>: <span style="color:#4e9a06">&#34;kind source: /, Kind=&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
2021-02-08T14:14:45.800+0100 INFO controller-runtime.manager.controller.jenkins Starting EventSource <span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;reconciler group&#34;</span>: <span style="color:#4e9a06">&#34;jenkins.io&#34;</span>, <span style="color:#4e9a06">&#34;reconciler kind&#34;</span>: <span style="color:#4e9a06">&#34;Jenkins&#34;</span>, <span style="color:#4e9a06">&#34;source&#34;</span>: <span style="color:#4e9a06">&#34;kind source: /, Kind=&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
2021-02-08T14:14:45.901+0100 INFO controller-runtime.manager.controller.jenkins Starting EventSource <span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;reconciler group&#34;</span>: <span style="color:#4e9a06">&#34;jenkins.io&#34;</span>, <span style="color:#4e9a06">&#34;reconciler kind&#34;</span>: <span style="color:#4e9a06">&#34;Jenkins&#34;</span>, <span style="color:#4e9a06">&#34;source&#34;</span>: <span style="color:#4e9a06">&#34;kind source: /, Kind=&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
2021-02-08T14:14:46.003+0100 INFO controller-runtime.manager.controller.jenkins Starting EventSource <span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;reconciler group&#34;</span>: <span style="color:#4e9a06">&#34;jenkins.io&#34;</span>, <span style="color:#4e9a06">&#34;reconciler kind&#34;</span>: <span style="color:#4e9a06">&#34;Jenkins&#34;</span>, <span style="color:#4e9a06">&#34;source&#34;</span>: <span style="color:#4e9a06">&#34;kind source: core/v1, Kind=Secret&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
2021-02-08T14:14:46.004+0100 INFO controller-runtime.manager.controller.jenkins Starting EventSource <span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;reconciler group&#34;</span>: <span style="color:#4e9a06">&#34;jenkins.io&#34;</span>, <span style="color:#4e9a06">&#34;reconciler kind&#34;</span>: <span style="color:#4e9a06">&#34;Jenkins&#34;</span>, <span style="color:#4e9a06">&#34;source&#34;</span>: <span style="color:#4e9a06">&#34;kind source: core/v1, Kind=ConfigMap&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
2021-02-08T14:14:46.004+0100 INFO controller-runtime.manager.controller.jenkins Starting EventSource <span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;reconciler group&#34;</span>: <span style="color:#4e9a06">&#34;jenkins.io&#34;</span>, <span style="color:#4e9a06">&#34;reconciler kind&#34;</span>: <span style="color:#4e9a06">&#34;Jenkins&#34;</span>, <span style="color:#4e9a06">&#34;source&#34;</span>: <span style="color:#4e9a06">&#34;kind source: jenkins.io/v1alpha2, Kind=Jenkins&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
2021-02-08T14:14:46.004+0100 INFO controller-runtime.manager.controller.jenkins Starting Controller <span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;reconciler group&#34;</span>: <span style="color:#4e9a06">&#34;jenkins.io&#34;</span>, <span style="color:#4e9a06">&#34;reconciler kind&#34;</span>: <span style="color:#4e9a06">&#34;Jenkins&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
2021-02-08T14:14:46.004+0100 INFO controller-runtime.manager.controller.jenkins Starting workers <span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;reconciler group&#34;</span>: <span style="color:#4e9a06">&#34;jenkins.io&#34;</span>, <span style="color:#4e9a06">&#34;reconciler kind&#34;</span>: <span style="color:#4e9a06">&#34;Jenkins&#34;</span>, <span style="color:#4e9a06">&#34;worker count&#34;</span>: 1<span style="color:#ce5c00;font-weight:bold">}</span></code></pre></div>
<p>Lastly apply Jenkins Custom Resource to minikube 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 apply -f config/samples/jenkins.io_v1alpha2_jenkins.yaml
INFO<span style="color:#ce5c00;font-weight:bold">[</span>0000<span style="color:#ce5c00;font-weight:bold">]</span> Running deepcopy code-generation <span style="color:#204a87;font-weight:bold">for</span> Custom Resource group versions: <span style="color:#ce5c00;font-weight:bold">[</span>jenkins:<span style="color:#ce5c00;font-weight:bold">[</span>v1alpha2<span style="color:#ce5c00;font-weight:bold">]</span>, <span style="color:#ce5c00;font-weight:bold">]</span>
INFO<span style="color:#ce5c00;font-weight:bold">[</span>0005<span style="color:#ce5c00;font-weight:bold">]</span> Code-generation complete.
2020-04-27T09:52:26.520+0200 INFO controller-jenkins manager/main.go:51 Version: v0.4.0
2020-04-27T09:52:26.520+0200 INFO controller-jenkins manager/main.go:52 Git commit: 4ffc58e-dirty
2020-04-27T09:52:26.520+0200 INFO controller-jenkins manager/main.go:53 Go Version: go1.13.1
2020-04-27T09:52:26.520+0200 INFO controller-jenkins manager/main.go:54 Go OS/Arch: linux/amd64
2020-04-27T09:52:26.520+0200 INFO controller-jenkins manager/main.go:55 operator-sdk Version: v0.15.1
2020-04-27T09:52:26.520+0200 INFO controller-jenkins manager/main.go:80 Watch namespace: default
2020-04-27T09:52:26.527+0200 INFO leader leader/leader.go:46 Trying to become the leader.
2020-04-27T09:52:26.527+0200 INFO leader leader/leader.go:51 Skipping leader election<span style="color:#000;font-weight:bold">;</span> not running in a cluster.
2020-04-27T09:52:26.887+0200 INFO controller-runtime.metrics metrics/listener.go:40 metrics server is starting to listen <span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;addr&#34;</span>: <span style="color:#4e9a06">&#34;0.0.0.0:8383&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
2020-04-27T09:52:26.887+0200 INFO controller-jenkins manager/main.go:105 Registering Components.
2020-04-27T09:52:26.897+0200 WARN controller-jenkins manager/main.go:138 Could not generate and serve custom resource metrics <span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;error&#34;</span>: <span style="color:#4e9a06">&#34;namespace not found for current environment&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
2020-04-27T09:52:27.250+0200 INFO metrics metrics/metrics.go:55 Skipping metrics Service creation<span style="color:#000;font-weight:bold">;</span> not running in a cluster.
2020-04-27T09:52:27.601+0200 WARN controller-jenkins manager/main.go:157 Could not create ServiceMonitor object <span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;error&#34;</span>: <span style="color:#4e9a06">&#34;no ServiceMonitor registered with the API&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
2020-04-27T09:52:27.601+0200 WARN controller-jenkins manager/main.go:161 Install prometheus-operator in your cluster to create ServiceMonitor objects <span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;error&#34;</span>: <span style="color:#4e9a06">&#34;no ServiceMonitor registered with the API&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
2020-04-27T09:52:27.601+0200 INFO controller-jenkins manager/main.go:165 Starting the Cmd.
2020-04-27T09:52:27.601+0200 INFO controller-runtime.manager manager/internal.go:356 starting metrics server <span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;path&#34;</span>: <span style="color:#4e9a06">&#34;/metrics&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
2020-04-27T09:52:27.601+0200 INFO controller-runtime.controller controller/controller.go:164 Starting EventSource <span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;controller&#34;</span>: <span style="color:#4e9a06">&#34;jenkins-controller&#34;</span>, <span style="color:#4e9a06">&#34;source&#34;</span>: <span style="color:#4e9a06">&#34;kind source: jenkins.io/v1alpha2, Kind=Jenkins&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
2020-04-27T09:52:27.702+0200 INFO controller-runtime.controller controller/controller.go:164 Starting EventSource <span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;controller&#34;</span>: <span style="color:#4e9a06">&#34;jenkins-controller&#34;</span>, <span style="color:#4e9a06">&#34;source&#34;</span>: <span style="color:#4e9a06">&#34;kind source: core/v1, Kind=Pod&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
2020-04-27T09:52:27.803+0200 INFO controller-runtime.controller controller/controller.go:164 Starting EventSource <span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;controller&#34;</span>: <span style="color:#4e9a06">&#34;jenkins-controller&#34;</span>, <span style="color:#4e9a06">&#34;source&#34;</span>: <span style="color:#4e9a06">&#34;kind source: core/v1, Kind=Secret&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
2020-04-27T09:52:27.903+0200 INFO controller-runtime.controller controller/controller.go:164 Starting EventSource <span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;controller&#34;</span>: <span style="color:#4e9a06">&#34;jenkins-controller&#34;</span>, <span style="color:#4e9a06">&#34;source&#34;</span>: <span style="color:#4e9a06">&#34;kind source: core/v1, Kind=Secret&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
2020-04-27T09:52:27.903+0200 INFO controller-runtime.controller controller/controller.go:164 Starting EventSource <span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;controller&#34;</span>: <span style="color:#4e9a06">&#34;jenkins-controller&#34;</span>, <span style="color:#4e9a06">&#34;source&#34;</span>: <span style="color:#4e9a06">&#34;kind source: core/v1, Kind=ConfigMap&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
2020-04-27T09:52:28.005+0200 INFO controller-runtime.controller controller/controller.go:171 Starting Controller <span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;controller&#34;</span>: <span style="color:#4e9a06">&#34;jenkins-controller&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
2020-04-27T09:52:28.005+0200 INFO controller-runtime.controller controller/controller.go:190 Starting workers <span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;controller&#34;</span>: <span style="color:#4e9a06">&#34;jenkins-controller&#34;</span>, <span style="color:#4e9a06">&#34;worker count&#34;</span>: 1<span style="color:#ce5c00;font-weight:bold">}</span></code></pre></div><div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">kubectl apply -f deploy/crds/jenkins_v1alpha2_jenkins_cr.yaml
2020-04-27T09:56:40.153+0200 INFO controller-jenkins jenkins/jenkins_controller.go:404 Setting default Jenkins container <span style="color:#204a87">command</span> <span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;cr&#34;</span>: <span style="color:#4e9a06">&#34;example&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
2020-04-27T09:56:40.153+0200 INFO controller-jenkins jenkins/jenkins_controller.go:409 Setting default Jenkins container JAVA_OPTS environment variable <span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;cr&#34;</span>: <span style="color:#4e9a06">&#34;example&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
2020-04-27T09:56:40.153+0200 INFO controller-jenkins jenkins/jenkins_controller.go:417 Setting default operator plugins <span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;cr&#34;</span>: <span style="color:#4e9a06">&#34;example&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
2020-04-27T09:56:40.153+0200 INFO controller-jenkins jenkins/jenkins_controller.go:436 Setting default Jenkins master service <span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;cr&#34;</span>: <span style="color:#4e9a06">&#34;example&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
2020-04-27T09:56:40.153+0200 INFO controller-jenkins jenkins/jenkins_controller.go:449 Setting default Jenkins slave service <span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;cr&#34;</span>: <span style="color:#4e9a06">&#34;example&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
2020-04-27T09:56:40.153+0200 INFO controller-jenkins jenkins/jenkins_controller.go:479 Setting default Jenkins API settings <span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;cr&#34;</span>: <span style="color:#4e9a06">&#34;example&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
2020-04-27T09:56:40.158+0200 INFO controller-jenkins jenkins/handler.go:89 *v1alpha2.Jenkins/example has been updated <span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;cr&#34;</span>: <span style="color:#4e9a06">&#34;example&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
2020-04-27T09:56:40.562+0200 INFO controller-jenkins base/pod.go:161 Creating a new Jenkins Master Pod default/jenkins-example <span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;cr&#34;</span>: <span style="color:#4e9a06">&#34;example&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
2020-04-27T09:56:40.575+0200 INFO controller-jenkins base/reconcile.go:528 The Admission controller has changed the Jenkins master pod spec.securityContext, changing the Jenkinc CR spec.master.securityContext to <span style="color:#4e9a06">&#39;&amp;PodSecurityContext{SELinuxOptions:nil,RunAsUser:nil,RunAsNonRoot:nil,SupplementalGroups:[],FSGroup:nil,RunAsGroup:nil,Sysctls:[]Sysctl{},WindowsOptions:nil,}&#39;</span> <span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;cr&#34;</span>: <span style="color:#4e9a06">&#34;example&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
2020-04-27T09:56:40.584+0200 INFO controller-jenkins jenkins/handler.go:89 *v1alpha2.Jenkins/example has been updated <span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;cr&#34;</span>: <span style="color:#4e9a06">&#34;example&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
2020-04-27T09:59:40.409+0200 INFO controller-jenkins base/reconcile.go:466 Generating Jenkins API token <span style="color:#204a87;font-weight:bold">for</span> operator <span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;cr&#34;</span>: <span style="color:#4e9a06">&#34;example&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
2020-04-27T09:59:40.410+0200 WARN controller-jenkins jenkins/jenkins_controller.go:171 Reconcile loop failed: couldn<span style="color:#4e9a06">&#39;t init Jenkins API client: Get http://192.168.99.100:32380/api/json: dial tcp 192.168.99.100:32380: connect: connection refused {&#34;cr&#34;: &#34;example&#34;}
</span><span style="color:#4e9a06">2020-04-27T09:59:40.455+0200 INFO controller-jenkins base/reconcile.go:466 Generating Jenkins API token for operator {&#34;cr&#34;: &#34;example&#34;}
</span><span style="color:#4e9a06">2020-04-27T09:59:41.415+0200 INFO controller-jenkins groovy/groovy.go:145 base-groovy ConfigMap &#39;</span>jenkins-operator-base-configuration-example<span style="color:#4e9a06">&#39; name &#39;</span>1-basic-settings.groovy<span style="color:#4e9a06">&#39; running groovy script {&#34;cr&#34;: &#34;example&#34;}
</span><span style="color:#4e9a06">...
</span><span style="color:#4e9a06">2020-04-27T09:59:49.030+0200 INFO controller-jenkins groovy/groovy.go:145 base-groovy ConfigMap &#39;</span>jenkins-operator-base-configuration-example<span style="color:#4e9a06">&#39; name &#39;</span>8-disable-job-dsl-script-approval.groovy<span style="color:#a40000">&#39;</span> running groovy script <span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;cr&#34;</span>: <span style="color:#4e9a06">&#34;example&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
2020-04-27T09:59:49.257+0200 INFO controller-jenkins jenkins/jenkins_controller.go:289 Base configuration phase is complete, took 3m9s <span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;cr&#34;</span>: <span style="color:#4e9a06">&#34;example&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
2020-04-27T09:59:51.165+0200 INFO controller-jenkins seedjobs/seedjobs.go:232 Waiting <span style="color:#204a87;font-weight:bold">for</span> Seed Job Agent <span style="color:#4e9a06">`</span>seed-job-agent<span style="color:#4e9a06">`</span>... <span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;cr&#34;</span>: <span style="color:#4e9a06">&#34;example&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
<span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;level&#34;</span>:<span style="color:#4e9a06">&#34;info&#34;</span>,<span style="color:#4e9a06">&#34;ts&#34;</span>:1612790690.875426,<span style="color:#4e9a06">&#34;logger&#34;</span>:<span style="color:#4e9a06">&#34;controller-jenkins&#34;</span>,<span style="color:#4e9a06">&#34;msg&#34;</span>:<span style="color:#4e9a06">&#34;Setting default Jenkins container command&#34;</span>,<span style="color:#4e9a06">&#34;cr&#34;</span>:<span style="color:#4e9a06">&#34;jenkins-example&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
<span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;level&#34;</span>:<span style="color:#4e9a06">&#34;info&#34;</span>,<span style="color:#4e9a06">&#34;ts&#34;</span>:1612790690.8754492,<span style="color:#4e9a06">&#34;logger&#34;</span>:<span style="color:#4e9a06">&#34;controller-jenkins&#34;</span>,<span style="color:#4e9a06">&#34;msg&#34;</span>:<span style="color:#4e9a06">&#34;Setting default Jenkins container JAVA_OPTS environment variable&#34;</span>,<span style="color:#4e9a06">&#34;cr&#34;</span>:<span style="color:#4e9a06">&#34;jenkins-example&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
<span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;level&#34;</span>:<span style="color:#4e9a06">&#34;info&#34;</span>,<span style="color:#4e9a06">&#34;ts&#34;</span>:1612790690.875456,<span style="color:#4e9a06">&#34;logger&#34;</span>:<span style="color:#4e9a06">&#34;controller-jenkins&#34;</span>,<span style="color:#4e9a06">&#34;msg&#34;</span>:<span style="color:#4e9a06">&#34;Setting default operator plugins&#34;</span>,<span style="color:#4e9a06">&#34;cr&#34;</span>:<span style="color:#4e9a06">&#34;jenkins-example&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
<span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;level&#34;</span>:<span style="color:#4e9a06">&#34;info&#34;</span>,<span style="color:#4e9a06">&#34;ts&#34;</span>:1612790690.875463,<span style="color:#4e9a06">&#34;logger&#34;</span>:<span style="color:#4e9a06">&#34;controller-jenkins&#34;</span>,<span style="color:#4e9a06">&#34;msg&#34;</span>:<span style="color:#4e9a06">&#34;Setting default Jenkins master service&#34;</span>,<span style="color:#4e9a06">&#34;cr&#34;</span>:<span style="color:#4e9a06">&#34;jenkins-example&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
<span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;level&#34;</span>:<span style="color:#4e9a06">&#34;info&#34;</span>,<span style="color:#4e9a06">&#34;ts&#34;</span>:1612790690.875467,<span style="color:#4e9a06">&#34;logger&#34;</span>:<span style="color:#4e9a06">&#34;controller-jenkins&#34;</span>,<span style="color:#4e9a06">&#34;msg&#34;</span>:<span style="color:#4e9a06">&#34;Setting default Jenkins slave service&#34;</span>,<span style="color:#4e9a06">&#34;cr&#34;</span>:<span style="color:#4e9a06">&#34;jenkins-example&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
<span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;level&#34;</span>:<span style="color:#4e9a06">&#34;info&#34;</span>,<span style="color:#4e9a06">&#34;ts&#34;</span>:1612790690.881811,<span style="color:#4e9a06">&#34;logger&#34;</span>:<span style="color:#4e9a06">&#34;controller-jenkins&#34;</span>,<span style="color:#4e9a06">&#34;msg&#34;</span>:<span style="color:#4e9a06">&#34;*v1alpha2.Jenkins/jenkins-example has been updated&#34;</span>,<span style="color:#4e9a06">&#34;cr&#34;</span>:<span style="color:#4e9a06">&#34;jenkins-example&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
<span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;level&#34;</span>:<span style="color:#4e9a06">&#34;info&#34;</span>,<span style="color:#4e9a06">&#34;ts&#34;</span>:1612790691.252834,<span style="color:#4e9a06">&#34;logger&#34;</span>:<span style="color:#4e9a06">&#34;controller-jenkins&#34;</span>,<span style="color:#4e9a06">&#34;msg&#34;</span>:<span style="color:#4e9a06">&#34;Creating a new Jenkins Master Pod default/jenkins-jenkins-example&#34;</span>,<span style="color:#4e9a06">&#34;cr&#34;</span>:<span style="color:#4e9a06">&#34;jenkins-example&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
<span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;level&#34;</span>:<span style="color:#4e9a06">&#34;info&#34;</span>,<span style="color:#4e9a06">&#34;ts&#34;</span>:1612790691.322793,<span style="color:#4e9a06">&#34;logger&#34;</span>:<span style="color:#4e9a06">&#34;controller-jenkins&#34;</span>,<span style="color:#4e9a06">&#34;msg&#34;</span>:<span style="color:#4e9a06">&#34;Jenkins master pod restarted by operator:&#34;</span>,<span style="color:#4e9a06">&#34;cr&#34;</span>:<span style="color:#4e9a06">&#34;jenkins-example&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
<span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;level&#34;</span>:<span style="color:#4e9a06">&#34;info&#34;</span>,<span style="color:#4e9a06">&#34;ts&#34;</span>:1612790691.322817,<span style="color:#4e9a06">&#34;logger&#34;</span>:<span style="color:#4e9a06">&#34;controller-jenkins&#34;</span>,<span style="color:#4e9a06">&#34;msg&#34;</span>:<span style="color:#4e9a06">&#34;Jenkins Operator version has changed, actual &#39;&#39; new &#39;v0.5.0&#39;&#34;</span>,<span style="color:#4e9a06">&#34;cr&#34;</span>:<span style="color:#4e9a06">&#34;jenkins-example&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
<span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;level&#34;</span>:<span style="color:#4e9a06">&#34;info&#34;</span>,<span style="color:#4e9a06">&#34;ts&#34;</span>:1612790691.3228202,<span style="color:#4e9a06">&#34;logger&#34;</span>:<span style="color:#4e9a06">&#34;controller-jenkins&#34;</span>,<span style="color:#4e9a06">&#34;msg&#34;</span>:<span style="color:#4e9a06">&#34;Jenkins CR has been replaced&#34;</span>,<span style="color:#4e9a06">&#34;cr&#34;</span>:<span style="color:#4e9a06">&#34;jenkins-example&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
<span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;level&#34;</span>:<span style="color:#4e9a06">&#34;info&#34;</span>,<span style="color:#4e9a06">&#34;ts&#34;</span>:1612790695.8789551,<span style="color:#4e9a06">&#34;logger&#34;</span>:<span style="color:#4e9a06">&#34;controller-jenkins&#34;</span>,<span style="color:#4e9a06">&#34;msg&#34;</span>:<span style="color:#4e9a06">&#34;Creating a new Jenkins Master Pod default/jenkins-jenkins-example&#34;</span>,<span style="color:#4e9a06">&#34;cr&#34;</span>:<span style="color:#4e9a06">&#34;jenkins-example&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
<span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;level&#34;</span>:<span style="color:#4e9a06">&#34;warn&#34;</span>,<span style="color:#4e9a06">&#34;ts&#34;</span>:1612790817.9423082,<span style="color:#4e9a06">&#34;logger&#34;</span>:<span style="color:#4e9a06">&#34;controller-jenkins&#34;</span>,<span style="color:#4e9a06">&#34;msg&#34;</span>:<span style="color:#4e9a06">&#34;Reconcile loop failed: couldn&#39;t init Jenkins API client: Get \&#34;http://192.168.99.254:31998/api/json\&#34;: dial tcp 192.168.99.254:31998: connect: connection refused&#34;</span>,<span style="color:#4e9a06">&#34;cr&#34;</span>:<span style="color:#4e9a06">&#34;jenkins-example&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
<span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;level&#34;</span>:<span style="color:#4e9a06">&#34;warn&#34;</span>,<span style="color:#4e9a06">&#34;ts&#34;</span>:1612790817.9998221,<span style="color:#4e9a06">&#34;logger&#34;</span>:<span style="color:#4e9a06">&#34;controller-jenkins&#34;</span>,<span style="color:#4e9a06">&#34;msg&#34;</span>:<span style="color:#4e9a06">&#34;Reconcile loop failed: couldn&#39;t init Jenkins API client: Get \&#34;http://192.168.99.254:31998/api/json\&#34;: dial tcp 192.168.99.254:31998: connect: connection refused&#34;</span>,<span style="color:#4e9a06">&#34;cr&#34;</span>:<span style="color:#4e9a06">&#34;jenkins-example&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
<span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;level&#34;</span>:<span style="color:#4e9a06">&#34;info&#34;</span>,<span style="color:#4e9a06">&#34;ts&#34;</span>:1612790818.581316,<span style="color:#4e9a06">&#34;logger&#34;</span>:<span style="color:#4e9a06">&#34;controller-jenkins&#34;</span>,<span style="color:#4e9a06">&#34;msg&#34;</span>:<span style="color:#4e9a06">&#34;base-groovy ConfigMap &#39;jenkins-operator-base-configuration-jenkins-example&#39; name &#39;1-basic-settings.groovy&#39; running groovy script&#34;</span>,<span style="color:#4e9a06">&#34;cr&#34;</span>:<span style="color:#4e9a06">&#34;jenkins-example&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
...
<span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;level&#34;</span>:<span style="color:#4e9a06">&#34;info&#34;</span>,<span style="color:#4e9a06">&#34;ts&#34;</span>:1612790820.9473379,<span style="color:#4e9a06">&#34;logger&#34;</span>:<span style="color:#4e9a06">&#34;controller-jenkins&#34;</span>,<span style="color:#4e9a06">&#34;msg&#34;</span>:<span style="color:#4e9a06">&#34;base-groovy ConfigMap &#39;jenkins-operator-base-configuration-jenkins-example&#39; name &#39;8-disable-job-dsl-script-approval.groovy&#39; running groovy script&#34;</span>,<span style="color:#4e9a06">&#34;cr&#34;</span>:<span style="color:#4e9a06">&#34;jenkins-example&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
<span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;level&#34;</span>:<span style="color:#4e9a06">&#34;info&#34;</span>,<span style="color:#4e9a06">&#34;ts&#34;</span>:1612790821.244055,<span style="color:#4e9a06">&#34;logger&#34;</span>:<span style="color:#4e9a06">&#34;controller-jenkins&#34;</span>,<span style="color:#4e9a06">&#34;msg&#34;</span>:<span style="color:#4e9a06">&#34;Base configuration phase is complete, took 2m6s&#34;</span>,<span style="color:#4e9a06">&#34;cr&#34;</span>:<span style="color:#4e9a06">&#34;jenkins-example&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
<span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;level&#34;</span>:<span style="color:#4e9a06">&#34;info&#34;</span>,<span style="color:#4e9a06">&#34;ts&#34;</span>:1612790821.7953842,<span style="color:#4e9a06">&#34;logger&#34;</span>:<span style="color:#4e9a06">&#34;controller-jenkins&#34;</span>,<span style="color:#4e9a06">&#34;msg&#34;</span>:<span style="color:#4e9a06">&#34;Waiting for Seed Job Agent `seed-job-agent`...&#34;</span>,<span style="color:#4e9a06">&#34;cr&#34;</span>:<span style="color:#4e9a06">&#34;jenkins-example&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
...
2020-04-27T10:00:03.886+0200 INFO controller-jenkins seedjobs/seedjobs.go:232 Waiting <span style="color:#204a87;font-weight:bold">for</span> Seed Job Agent <span style="color:#4e9a06">`</span>seed-job-agent<span style="color:#4e9a06">`</span>... <span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;cr&#34;</span>: <span style="color:#4e9a06">&#34;example&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
2020-04-27T10:00:06.140+0200 INFO controller-jenkins jenkins/jenkins_controller.go:338 User configuration phase is complete, took 3m26s <span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;cr&#34;</span>: <span style="color:#4e9a06">&#34;example&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span></code></pre></div>
<p>Two log lines says that Jenkins Operator works correctly:</p>
<ul>
<li><code>Base configuration phase is complete</code> - ensures manifests, Jenkins pod, Jenkins configuration and Jenkins API token<br /></li>
<li><code>User configuration phase is complete</code> - ensures Jenkins restore, backup and seed jobs along with user configuration</li>
</ul>
<span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;level&#34;</span>:<span style="color:#4e9a06">&#34;info&#34;</span>,<span style="color:#4e9a06">&#34;ts&#34;</span>:1612790851.843638,<span style="color:#4e9a06">&#34;logger&#34;</span>:<span style="color:#4e9a06">&#34;controller-jenkins&#34;</span>,<span style="color:#4e9a06">&#34;msg&#34;</span>:<span style="color:#4e9a06">&#34;Waiting for Seed Job Agent `seed-job-agent`...&#34;</span>,<span style="color:#4e9a06">&#34;cr&#34;</span>:<span style="color:#4e9a06">&#34;jenkins-example&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
<span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#4e9a06">&#34;level&#34;</span>:<span style="color:#4e9a06">&#34;info&#34;</span>,<span style="color:#4e9a06">&#34;ts&#34;</span>:1612790853.489524,<span style="color:#4e9a06">&#34;logger&#34;</span>:<span style="color:#4e9a06">&#34;controller-jenkins&#34;</span>,<span style="color:#4e9a06">&#34;msg&#34;</span>:<span style="color:#4e9a06">&#34;User configuration phase is complete, took 2m38s&#34;</span>,<span style="color:#4e9a06">&#34;cr&#34;</span>:<span style="color:#4e9a06">&#34;jenkins-example&#34;</span><span style="color:#ce5c00;font-weight:bold">}</span>
<blockquote>
<p>Details about base and user phase can be found <a href="https://jenkinsci.github.io/kubernetes-operator/docs/how-it-works/architecture-and-design/">here</a>.</p>
</blockquote>
<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 jenkins -o yaml
Two log lines says that Jenkins Operator works correctly:
* <span style="color:#4e9a06">`</span>Base configuration phase is <span style="color:#204a87">complete</span><span style="color:#4e9a06">`</span> - ensures manifests, Jenkins pod, Jenkins configuration and Jenkins API token
* <span style="color:#4e9a06">`</span>User configuration phase is <span style="color:#204a87">complete</span><span style="color:#4e9a06">`</span> - ensures Jenkins restore, backup and seed <span style="color:#204a87">jobs</span> along with user configuration
&gt; Details about base and user phase can be found <span style="color:#ce5c00;font-weight:bold">[</span>here<span style="color:#ce5c00;font-weight:bold">]</span><span style="color:#ce5c00;font-weight:bold">(</span>https://jenkinsci.github.io/kubernetes-operator/docs/how-it-works/architecture-and-design/<span style="color:#ce5c00;font-weight:bold">)</span>.</code></pre></div><div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">kubectl get jenkins -o yaml
apiVersion: v1
items:
- apiVersion: jenkins.io/v1alpha2
kind: Jenkins
metadata:
...
...
spec:
backup:
action: <span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#ce5c00;font-weight:bold">}</span>
@ -963,18 +1027,19 @@ items:
interval: <span style="color:#0000cf;font-weight:bold">0</span>
makeBackupBeforePodDeletion: <span style="color:#204a87">false</span>
configurationAsCode:
configurations: null
configurations: <span style="color:#ce5c00;font-weight:bold">[</span><span style="color:#ce5c00;font-weight:bold">]</span>
secret:
name: <span style="color:#4e9a06">&#34;&#34;</span>
groovyScripts:
configurations: null
configurations: <span style="color:#ce5c00;font-weight:bold">[</span><span style="color:#ce5c00;font-weight:bold">]</span>
secret:
name: <span style="color:#4e9a06">&#34;&#34;</span>
jenkinsAPISettings:
authorizationStrategy: createUser
master:
basePlugins:
...
...
containers:
- command:
- bash
- -c
@ -983,13 +1048,12 @@ items:
- name: JAVA_OPTS
value: -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap
-XX:MaxRAMFraction<span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#0000cf;font-weight:bold">1</span> -Djenkins.install.runSetupWizard<span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#204a87">false</span> -Djava.awt.headless<span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#204a87">true</span>
image: jenkins/jenkins:lts
image: jenkins/jenkins:2.263.3-lts-alpine
imagePullPolicy: Always
livenessProbe:
...
name: jenkins-master
...
readinessProbe:
...
...
resources:
limits:
cpu: 1500m
@ -998,7 +1062,6 @@ items:
cpu: <span style="color:#4e9a06">&#34;1&#34;</span>
memory: 500Mi
disableCSRFProtection: <span style="color:#204a87">false</span>
securityContext: <span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#ce5c00;font-weight:bold">}</span>
restore:
action: <span style="color:#ce5c00;font-weight:bold">{</span><span style="color:#ce5c00;font-weight:bold">}</span>
containerName: <span style="color:#4e9a06">&#34;&#34;</span>
@ -1029,28 +1092,39 @@ items:
- configurationType: base-groovy
hash: <span style="color:#000">2ownqpRyBjQYmzTRttUx7axok3CKe2E45frI5iRwH0w</span><span style="color:#ce5c00;font-weight:bold">=</span>
name: 1-basic-settings.groovy
source: jenkins-operator-base-configuration-example
...
baseConfigurationCompletedTime: <span style="color:#4e9a06">&#34;2020-04-27T07:59:49Z&#34;</span>
source: jenkins-operator-base-configuration-jenkins-example
...
baseConfigurationCompletedTime: <span style="color:#4e9a06">&#34;2021-02-08T13:27:01Z&#34;</span>
createdSeedJobs:
- jenkins-operator
operatorVersion: v0.4.0
provisionStartTime: <span style="color:#4e9a06">&#34;2020-04-27T07:56:40Z&#34;</span>
userAndPasswordHash: kAeBnhHKU3LZuw+uo9oHILB59kAFSGDUbHwCSDgtMnE<span style="color:#ce5c00;font-weight:bold">=</span>
userConfigurationCompletedTime: <span style="color:#4e9a06">&#34;2020-04-27T08:00:06Z&#34;</span>
operatorVersion: v0.5.0
provisionStartTime: <span style="color:#4e9a06">&#34;2021-02-08T13:24:55Z&#34;</span>
userAndPasswordHash: <span style="color:#000">nnfZsWmFfAYlYyVYeKhWW2KB4L8mE61JUfetAsr9IMM</span><span style="color:#ce5c00;font-weight:bold">=</span>
userConfigurationCompletedTime: <span style="color:#4e9a06">&#34;2021-02-08T13:27:33Z&#34;</span>
kind: List
metadata:
resourceVersion: <span style="color:#4e9a06">&#34;&#34;</span>
selfLink: <span style="color:#4e9a06">&#34;&#34;</span></code></pre></div><div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">kubectl get po
NAME READY STATUS RESTARTS AGE
jenkins-example 1/1 Running <span style="color:#0000cf;font-weight:bold">0</span> 15m
seed-job-agent-example-56569459c9-l69qf 1/1 Running <span style="color:#0000cf;font-weight:bold">0</span> 12m</code></pre></div>
<p>Upon every next start of local <strong>Jenkins Operator</strong> switch first command with:</p>
<pre><code>make minikube-start
make minikube-run</code></pre>
NAME READY STATUS RESTARTS AGE
jenkins-jenkins-example 1/1 Running <span style="color:#0000cf;font-weight:bold">0</span> 23m
seed-job-agent-jenkins-example-758cc7cc5c-82hbl 1/1 Running <span style="color:#0000cf;font-weight:bold">0</span> 21m</code></pre></div>
<h2 id="build-and-run-with-docker-desktop">Build and run with Docker Desktop</h2>
<p>Install Docker Desktop. If you are using Docker Desktop for Windows, you will also need to install WSL or WSL2. Ensure that Docker Desktop is currently running, and that you have enabled Kubernetes in it.</p>
<p>Run <strong>Jenkins Operator</strong> locally.</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">make <span style="color:#000">config</span><span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#4e9a06">&#34;config.docker-desktop.env&#34;</span> run</code></pre></div>
<p>From this point on, Docker Desktop usage is identical to minikube usage.</p>
<h3 id="debug-jenkins-operator">Debug Jenkins Operator</h3>
<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">make build minikube-run <span style="color:#000">OPERATOR_EXTRA_ARGS</span><span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#4e9a06">&#34;--debug&#34;</span></code></pre></div>
<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">make run <span style="color:#000">OPERATOR_EXTRA_ARGS</span><span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#4e9a06">&#34;--debug&#34;</span></code></pre></div>
<h3 id="stop-or-delete-minikube-cluster">Stop or delete minikube cluster</h3>
<p>To stop Kubernetes cluster running locally on 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 stop</code></pre></div>
<p>To delete the cluster altogether:</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 delete</code></pre></div>
<h2 id="build-and-run-with-a-remote-kubernetes-cluster">Build and run with a remote Kubernetes cluster</h2>
<p>You can also run the controller locally and make it listen to a remote Kubernetes server.</p>
@ -1061,29 +1135,41 @@ kubectl --context remote-k8s --namespace default get jenkins -o yaml
kubectl --context remote-k8s --namespace default get po</code></pre></div>
<h2 id="testing">Testing</h2>
<p>Run unit tests:</p>
<p>Tests are written using <a href="https://onsi.github.io/ginkgo/">Ginkgo</a> with <a href="https://onsi.github.io/gomega/">Gomega</a>.</p>
<p>Run unit tests with go fmt, lint, staticcheck, vet:</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">make verify</code></pre></div>
<p>Run unit tests only:</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">make test</code></pre></div>
<h3 id="running-e2e-tests">Running E2E tests</h3>
<p>Run e2e tests with 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">make minikube-start
make e2e</code></pre></div>
<p>Run Helm e2e tests:</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"><span style="color:#204a87">eval</span> <span style="color:#204a87;font-weight:bold">$(</span>bin/minikube docker-env<span style="color:#204a87;font-weight:bold">)</span>
make helm-e2e</code></pre></div>
<p>Run the specific e2e test:</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">make build e2e <span style="color:#000">E2E_TEST_SELECTOR</span><span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#4e9a06">&#39;^TestConfiguration$&#39;</span></code></pre></div>
<h2 id="tips-tricks">Tips &amp; Tricks</h2>
<h3 id="building-docker-image-on-minikube-for-e2e-tests">Building docker image on minikube (for e2e tests)</h3>
<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">make e2e <span style="color:#000">E2E_TEST_SELECTOR</span><span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#4e9a06">&#39;^TestConfiguration$&#39;</span></code></pre></div>
<h3 id="building-docker-image-on-minikube">Building docker image on minikube</h3>
<p>To be able to work with the docker daemon on <code>minikube</code> machine run the following command before building an image:</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"><span style="color:#204a87">eval</span> <span style="color:#204a87;font-weight:bold">$(</span>minikube docker-env<span style="color:#204a87;font-weight:bold">)</span></code></pre></div>
<h3 id="when-pkg-apis-jenkinsio-jenkins-types-go-has-changed">When <code>pkg/apis/jenkinsio/*/jenkins_types.go</code> has changed</h3>
<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"><span style="color:#204a87">eval</span> <span style="color:#204a87;font-weight:bold">$(</span>bin/minikube docker-env<span style="color:#204a87;font-weight:bold">)</span></code></pre></div>
<h3 id="when-api-v1alpha2-jenkins-types-go-has-changed">When <code>api/v1alpha2/jenkins_types.go</code> has changed</h3>
<p>Run:</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">make deepcopy-gen</code></pre></div>
<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">make manifests</code></pre></div>
<h3 id="getting-the-jenkins-url-and-basic-credentials">Getting the Jenkins URL and basic credentials</h3>
<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
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>
<h3 id="webhook">Webhook</h3>
<p>To deploy the operator along with webhook, run :</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"><span style="color:#204a87">eval</span> <span style="color:#204a87;font-weight:bold">$(</span>minikube docker-env<span style="color:#204a87;font-weight:bold">)</span>
make deploy-webhook</code></pre></div>
<p>It uses <a href="https://cert-manager.io/">cert-manager</a> as an external dependency.</p>
<h2 id="self-learning">Self-learning</h2>
<ul>
@ -1091,6 +1177,10 @@ kubectl get secret jenkins-operator-credentials-&lt;cr_name&gt; -o <span style="
</a></p></li>
<li><p><a href="https://www.katacoda.com/openshift/courses/operatorframework">Operator Framework Training By OpenShift</a></p></li>
<li><p><a href="https://sdk.operatorframework.io/docs/building-operators/golang/tutorial/">Operator SDK Tutorial for Go</a></p></li>
<li><p><a href="https://book.kubebuilder.io/cronjob-tutorial/webhook-implementation.html">Kubebuilder Validating Webhook Implementation</a></p></li>
</ul>
<div class="section-index">
@ -1215,13 +1305,13 @@ kubectl get secret jenkins-operator-credentials-&lt;cr_name&gt; -o <span style="
<div class="entry">
<h5>
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/developer-guide/tools/">Tools</a>
</h5>
<p>Required tools for building and running Jenkins Operator
</p>
</div>
@ -1253,13 +1343,19 @@ kubectl get secret jenkins-operator-credentials-&lt;cr_name&gt; -o <span style="
<div class="entry">
<h5>
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/developer-guide/preview/">Developer Guide</a>
</h5>
<p>Jenkins Operator for developers
</p>
</div>
@ -1269,7 +1365,7 @@ kubectl get secret jenkins-operator-credentials-&lt;cr_name&gt; -o <span style="
<div class="text-muted mt-5 pt-3 border-top">Last modified August 5, 2019
<div class="text-muted mt-5 pt-3 border-top">Last modified October 20, 2021
</div>
</div>

View File

@ -4,7 +4,7 @@
<link>https://jenkinsci.github.io/kubernetes-operator/docs/developer-guide/</link>
<description>Recent Hugo news from gohugo.io</description>
<generator>Hugo -- gohugo.io</generator>
<lastBuildDate>Mon, 05 Aug 2019 00:00:00 +0000</lastBuildDate>
<lastBuildDate>Wed, 20 Oct 2021 00:00:00 +0000</lastBuildDate>
<image>
<url>https://jenkinsci.github.io/kubernetes-operator/img/hugo.png</url>
<title>GoHugo.io</title>
@ -19,311 +19,5 @@
<item>
<title>Docs: Tools</title>
<link>https://jenkinsci.github.io/kubernetes-operator/docs/developer-guide/tools/</link>
<pubDate>Mon, 05 Aug 2019 00:00:00 +0000</pubDate>
<guid>https://jenkinsci.github.io/kubernetes-operator/docs/developer-guide/tools/</guid>
<description>
&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;
&lt;p&gt;This document explains how to install the Go tools used by the development process.&lt;/p&gt;
&lt;/div&gt;
&lt;h2 id=&#34;configure-environment-variables&#34;&gt;Configure environment variables&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;color:#204a87&#34;&gt;export&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;GOPATH&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;/home/go &lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# example value&lt;/span&gt;
&lt;span style=&#34;color:#204a87&#34;&gt;export&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;GOROOT&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;/usr/lib/go-1.12 &lt;span style=&#34;color:#8f5902;font-style:italic&#34;&gt;# example value&lt;/span&gt;
&lt;span style=&#34;color:#204a87&#34;&gt;export&lt;/span&gt; &lt;span style=&#34;color:#000&#34;&gt;PATH&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#000&#34;&gt;$GOPATH&lt;/span&gt;/bin:&lt;span style=&#34;color:#000&#34;&gt;$PATH&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2 id=&#34;goimports&#34;&gt;goimports&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;go get golang.org/x/tools/cmd/goimports
cd $GOPATH/src/golang.org/x/tools/cmd/goimports
go build
go install&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&#34;golint&#34;&gt;golint&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;go get -u golang.org/x/lint/golint
cd $GOPATH/src/golang.org/x/lint/golint
go build
go install&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&#34;checkmake&#34;&gt;checkmake&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;go get github.com/mrtazz/checkmake
cd $GOPATH/src/github.com/mrtazz/checkmake
go build
go install&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&#34;staticcheck&#34;&gt;staticcheck&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;mkdir -p $GOPATH/src/github.com/dominikh/
cd $GOPATH/src/github.com/dominikh/
git clone https://github.com/dominikh/go-tools.git
cd $GOPATH/src/github.com/dominikh/go-tools/staticcheck
go build
go install&lt;/code&gt;&lt;/pre&gt;
</description>
</item>
<item>
<title>Docs: Developer Guide</title>
<link>https://jenkinsci.github.io/kubernetes-operator/docs/developer-guide/preview/</link>
<pubDate>Sun, 09 Feb 2020 00:00:00 +0000</pubDate>
<guid>https://jenkinsci.github.io/kubernetes-operator/docs/developer-guide/preview/</guid>
<description>
&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;
&lt;p&gt;This document explains how to setup your development environment.&lt;/p&gt;
&lt;/div&gt;
&lt;h2 id=&#34;prerequisites&#34;&gt;Prerequisites&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/operator-framework/operator-sdk&#34;&gt;operator_sdk&lt;/a&gt; version 1.3.0&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://git-scm.com/downloads&#34;&gt;git&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://golang.org/dl/&#34;&gt;go&lt;/a&gt; version 1.15.6&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://jenkinsci.github.io/kubernetes-operator/docs/developer-guide/tools/&#34;&gt;goimports, golint, checkmake and staticcheck&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://kubernetes.io/docs/tasks/tools/install-minikube/&#34;&gt;minikube&lt;/a&gt; version 1.17.1 (preferred Hypervisor - &lt;a href=&#34;https://www.virtualbox.org/wiki/Downloads&#34;&gt;virtualbox&lt;/a&gt;) (automatically downloaded)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://docs.docker.com/install/&#34;&gt;docker&lt;/a&gt; version 17.03+&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;clone-repository-and-download-dependencies&#34;&gt;Clone repository and download dependencies&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;git clone git@github.com:jenkinsci/kubernetes-operator.git
&lt;span style=&#34;color:#204a87&#34;&gt;cd&lt;/span&gt; kubernetes-operator
make go-dependencies&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2 id=&#34;build-and-run-with-a-minikube&#34;&gt;Build and run with a minikube&lt;/h2&gt;
&lt;p&gt;Start minikube instance configured for &lt;strong&gt;Jenkins Operator&lt;/strong&gt;. Appropriate minikube version will be downloaded to bin folder.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;make minikube-start&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Next run &lt;strong&gt;Jenkins Operator&lt;/strong&gt; locally.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;make run&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Console output indicating readiness of this phase:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;+ build
+ run
kubectl config use-context minikube
Switched to context &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;minikube&amp;#34;&lt;/span&gt;.
Watching &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#39;default&amp;#39;&lt;/span&gt; namespace
bin/manager --jenkins-api-hostname&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;192.168.99.252 --jenkins-api-port&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#0000cf;font-weight:bold&#34;&gt;0&lt;/span&gt; --jenkins-api-use-nodeport&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#204a87&#34;&gt;true&lt;/span&gt; --cluster-domain&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;=&lt;/span&gt;cluster.local
2021-02-08T14:14:45.263+0100 INFO cmd Version: v0.5.0
2021-02-08T14:14:45.263+0100 INFO cmd Git commit: 305dbeda-dirty-dirty
2021-02-08T14:14:45.264+0100 INFO cmd Go Version: go1.15.6
2021-02-08T14:14:45.264+0100 INFO cmd Go OS/Arch: darwin/amd64
2021-02-08T14:14:45.264+0100 INFO cmd Watch namespace: default
2021-02-08T14:14:45.592+0100 INFO controller-runtime.metrics metrics server is starting to listen &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;addr&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;0.0.0.0:8383&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;
2021-02-08T14:14:45.599+0100 INFO cmd starting manager
2021-02-08T14:14:45.599+0100 INFO controller-runtime.manager starting metrics server &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;path&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;/metrics&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;
2021-02-08T14:14:45.599+0100 INFO controller-runtime.manager.controller.jenkins Starting EventSource &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;reconciler group&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;jenkins.io&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;reconciler kind&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Jenkins&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;source&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;kind source: jenkins.io/v1alpha2, Kind=Jenkins&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;
2021-02-08T14:14:45.700+0100 INFO controller-runtime.manager.controller.jenkins Starting EventSource &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;reconciler group&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;jenkins.io&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;reconciler kind&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Jenkins&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;source&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;kind source: /, Kind=&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;
2021-02-08T14:14:45.800+0100 INFO controller-runtime.manager.controller.jenkins Starting EventSource &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;reconciler group&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;jenkins.io&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;reconciler kind&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Jenkins&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;source&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;kind source: /, Kind=&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;
2021-02-08T14:14:45.901+0100 INFO controller-runtime.manager.controller.jenkins Starting EventSource &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;reconciler group&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;jenkins.io&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;reconciler kind&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Jenkins&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;source&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;kind source: /, Kind=&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;
2021-02-08T14:14:46.003+0100 INFO controller-runtime.manager.controller.jenkins Starting EventSource &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;reconciler group&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;jenkins.io&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;reconciler kind&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Jenkins&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;source&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;kind source: core/v1, Kind=Secret&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;
2021-02-08T14:14:46.004+0100 INFO controller-runtime.manager.controller.jenkins Starting EventSource &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;reconciler group&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;jenkins.io&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;reconciler kind&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Jenkins&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;source&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;kind source: core/v1, Kind=ConfigMap&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;
2021-02-08T14:14:46.004+0100 INFO controller-runtime.manager.controller.jenkins Starting EventSource &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;reconciler group&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;jenkins.io&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;reconciler kind&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Jenkins&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;source&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;kind source: jenkins.io/v1alpha2, Kind=Jenkins&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;
2021-02-08T14:14:46.004+0100 INFO controller-runtime.manager.controller.jenkins Starting Controller &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;reconciler group&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;jenkins.io&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;reconciler kind&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Jenkins&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;
2021-02-08T14:14:46.004+0100 INFO controller-runtime.manager.controller.jenkins Starting workers &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;reconciler group&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;jenkins.io&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;reconciler kind&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Jenkins&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;worker count&amp;#34;&lt;/span&gt;: 1&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Lastly apply Jenkins Custom Resource to minikube cluster:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;kubectl apply -f config/samples/jenkins.io_v1alpha2_jenkins.yaml
&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;level&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;info&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;ts&amp;#34;&lt;/span&gt;:1612790690.875426,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;logger&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;controller-jenkins&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;msg&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Setting default Jenkins container command&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;cr&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;jenkins-example&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;level&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;info&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;ts&amp;#34;&lt;/span&gt;:1612790690.8754492,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;logger&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;controller-jenkins&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;msg&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Setting default Jenkins container JAVA_OPTS environment variable&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;cr&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;jenkins-example&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;level&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;info&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;ts&amp;#34;&lt;/span&gt;:1612790690.875456,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;logger&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;controller-jenkins&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;msg&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Setting default operator plugins&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;cr&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;jenkins-example&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;level&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;info&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;ts&amp;#34;&lt;/span&gt;:1612790690.875463,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;logger&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;controller-jenkins&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;msg&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Setting default Jenkins master service&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;cr&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;jenkins-example&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;level&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;info&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;ts&amp;#34;&lt;/span&gt;:1612790690.875467,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;logger&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;controller-jenkins&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;msg&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Setting default Jenkins slave service&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;cr&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;jenkins-example&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;level&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;info&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;ts&amp;#34;&lt;/span&gt;:1612790690.881811,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;logger&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;controller-jenkins&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;msg&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;*v1alpha2.Jenkins/jenkins-example has been updated&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;cr&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;jenkins-example&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;level&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;info&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;ts&amp;#34;&lt;/span&gt;:1612790691.252834,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;logger&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;controller-jenkins&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;msg&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Creating a new Jenkins Master Pod default/jenkins-jenkins-example&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;cr&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;jenkins-example&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;level&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;info&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;ts&amp;#34;&lt;/span&gt;:1612790691.322793,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;logger&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;controller-jenkins&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;msg&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Jenkins master pod restarted by operator:&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;cr&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;jenkins-example&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;level&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;info&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;ts&amp;#34;&lt;/span&gt;:1612790691.322817,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;logger&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;controller-jenkins&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;msg&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Jenkins Operator version has changed, actual &amp;#39;&amp;#39; new &amp;#39;v0.5.0&amp;#39;&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;cr&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;jenkins-example&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;level&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;info&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;ts&amp;#34;&lt;/span&gt;:1612790691.3228202,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;logger&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;controller-jenkins&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;msg&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Jenkins CR has been replaced&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;cr&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;jenkins-example&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;level&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;info&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;ts&amp;#34;&lt;/span&gt;:1612790695.8789551,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;logger&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;controller-jenkins&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;msg&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Creating a new Jenkins Master Pod default/jenkins-jenkins-example&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;cr&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;jenkins-example&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;level&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;warn&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;ts&amp;#34;&lt;/span&gt;:1612790817.9423082,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;logger&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;controller-jenkins&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;msg&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Reconcile loop failed: couldn&amp;#39;t init Jenkins API client: Get \&amp;#34;http://192.168.99.254:31998/api/json\&amp;#34;: dial tcp 192.168.99.254:31998: connect: connection refused&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;cr&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;jenkins-example&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;level&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;warn&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;ts&amp;#34;&lt;/span&gt;:1612790817.9998221,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;logger&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;controller-jenkins&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;msg&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Reconcile loop failed: couldn&amp;#39;t init Jenkins API client: Get \&amp;#34;http://192.168.99.254:31998/api/json\&amp;#34;: dial tcp 192.168.99.254:31998: connect: connection refused&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;cr&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;jenkins-example&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;level&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;info&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;ts&amp;#34;&lt;/span&gt;:1612790818.581316,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;logger&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;controller-jenkins&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;msg&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;base-groovy ConfigMap &amp;#39;jenkins-operator-base-configuration-jenkins-example&amp;#39; name &amp;#39;1-basic-settings.groovy&amp;#39; running groovy script&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;cr&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;jenkins-example&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;
...
&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;level&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;info&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;ts&amp;#34;&lt;/span&gt;:1612790820.9473379,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;logger&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;controller-jenkins&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;msg&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;base-groovy ConfigMap &amp;#39;jenkins-operator-base-configuration-jenkins-example&amp;#39; name &amp;#39;8-disable-job-dsl-script-approval.groovy&amp;#39; running groovy script&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;cr&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;jenkins-example&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;level&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;info&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;ts&amp;#34;&lt;/span&gt;:1612790821.244055,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;logger&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;controller-jenkins&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;msg&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Base configuration phase is complete, took 2m6s&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;cr&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;jenkins-example&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;level&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;info&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;ts&amp;#34;&lt;/span&gt;:1612790821.7953842,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;logger&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;controller-jenkins&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;msg&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Waiting for Seed Job Agent `seed-job-agent`...&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;cr&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;jenkins-example&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;
...
&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;level&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;info&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;ts&amp;#34;&lt;/span&gt;:1612790851.843638,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;logger&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;controller-jenkins&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;msg&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;Waiting for Seed Job Agent `seed-job-agent`...&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;cr&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;jenkins-example&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;
&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;{&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;level&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;info&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;ts&amp;#34;&lt;/span&gt;:1612790853.489524,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;logger&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;controller-jenkins&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;msg&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;User configuration phase is complete, took 2m38s&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;cr&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#4e9a06&#34;&gt;&amp;#34;jenkins-example&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;}&lt;/span&gt;
Two log lines says that Jenkins Operator works correctly:
* &lt;span style=&#34;color:#4e9a06&#34;&gt;`&lt;/span&gt;Base configuration phase is &lt;span style=&#34;color:#204a87&#34;&gt;complete&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;`&lt;/span&gt; - ensures manifests, Jenkins pod, Jenkins configuration and Jenkins API token
* &lt;span style=&#34;color:#4e9a06&#34;&gt;`&lt;/span&gt;User configuration phase is &lt;span style=&#34;color:#204a87&#34;&gt;complete&lt;/span&gt;&lt;span style=&#34;color:#4e9a06&#34;&gt;`&lt;/span&gt; - ensures Jenkins restore, backup and seed &lt;span style=&#34;color:#204a87&#34;&gt;jobs&lt;/span&gt; along with user configuration
&amp;gt; Details about base and user phase can be found &lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;[&lt;/span&gt;here&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;(&lt;/span&gt;https://jenkinsci.github.io/kubernetes-operator/docs/how-it-works/architecture-and-design/&lt;span style=&#34;color:#ce5c00;font-weight:bold&#34;&gt;)&lt;/span&gt;.&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;bash
kubectl get jenkins -o yaml&lt;/p&gt;
&lt;p&gt;apiVersion: v1
items:
- apiVersion: jenkins.io/v1alpha2
kind: Jenkins
metadata:
&amp;hellip;
spec:
backup:
action: {}
containerName: &amp;ldquo;&amp;rdquo;
interval: 0
makeBackupBeforePodDeletion: false
configurationAsCode:
configurations: []
secret:
name: &amp;ldquo;&amp;rdquo;
groovyScripts:
configurations: []
secret:
name: &amp;ldquo;&amp;rdquo;
jenkinsAPISettings:
authorizationStrategy: createUser
master:
basePlugins:
&amp;hellip;
containers:
- command:
- bash
- -c
- /var/jenkins/scripts/init.sh &amp;amp;&amp;amp; exec /sbin/tini -s &amp;ndash; /usr/local/bin/jenkins.sh
env:
- name: JAVA_OPTS
value: -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap
-XX:MaxRAMFraction=1 -Djenkins.install.runSetupWizard=false -Djava.awt.headless=true
image: jenkins/jenkins:2.263.3-lts-alpine
imagePullPolicy: Always
livenessProbe:
&amp;hellip;
readinessProbe:
&amp;hellip;
resources:
limits:
cpu: 1500m
memory: 3Gi
requests:
cpu: &amp;ldquo;1&amp;rdquo;
memory: 500Mi
disableCSRFProtection: false
restore:
action: {}
containerName: &amp;ldquo;&amp;rdquo;
getLatestAction: {}
seedJobs:
- additionalClasspath: &amp;ldquo;&amp;rdquo;
bitbucketPushTrigger: false
buildPeriodically: &amp;ldquo;&amp;rdquo;
description: Jenkins Operator repository
failOnMissingPlugin: false
githubPushTrigger: false
id: jenkins-operator
ignoreMissingFiles: false
pollSCM: &amp;ldquo;&amp;rdquo;
repositoryBranch: master
repositoryUrl: &lt;a href=&#34;https://github.com/jenkinsci/kubernetes-operator.git&#34;&gt;https://github.com/jenkinsci/kubernetes-operator.git&lt;/a&gt;
targets: cicd/jobs/*.jenkins
unstableOnDeprecation: false
service:
port: 8080
type: NodePort
serviceAccount: {}
slaveService:
port: 50000
type: ClusterIP
status:
appliedGroovyScripts:
- configurationType: base-groovy
hash: 2ownqpRyBjQYmzTRttUx7axok3CKe2E45frI5iRwH0w=
name: 1-basic-settings.groovy
source: jenkins-operator-base-configuration-jenkins-example
&amp;hellip;
baseConfigurationCompletedTime: &amp;ldquo;2021-02-08T13:27:01Z&amp;rdquo;
createdSeedJobs:
- jenkins-operator
operatorVersion: v0.5.0
provisionStartTime: &amp;ldquo;2021-02-08T13:24:55Z&amp;rdquo;
userAndPasswordHash: nnfZsWmFfAYlYyVYeKhWW2KB4L8mE61JUfetAsr9IMM=
userConfigurationCompletedTime: &amp;ldquo;2021-02-08T13:27:33Z&amp;rdquo;
kind: List
metadata:
resourceVersion: &amp;ldquo;&amp;rdquo;
selfLink: &amp;ldquo;&amp;rdquo;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;bash
kubectl get po&lt;/p&gt;
&lt;p&gt;NAME READY STATUS RESTARTS AGE
jenkins-jenkins-example &lt;sup&gt;1&lt;/sup&gt;&amp;frasl;&lt;sub&gt;1&lt;/sub&gt; Running 0 23m
seed-job-agent-jenkins-example-758cc7cc5c-82hbl &lt;sup&gt;1&lt;/sup&gt;&amp;frasl;&lt;sub&gt;1&lt;/sub&gt; Running 0 21m&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;### Debug Jenkins Operator&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;bash
make run OPERATOR_EXTRA_ARGS=&amp;ldquo;&amp;ndash;debug&amp;rdquo;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;## Build and run with a remote Kubernetes cluster
You can also run the controller locally and make it listen to a remote Kubernetes server.&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;bash
make run NAMESPACE=default KUBECTL_CONTEXT=remote-k8s EXTRA_ARGS=&amp;lsquo;&amp;ndash;kubeconfig ~/.kube/config&amp;rsquo;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Once **Jenkins Operator** are up and running, apply Jenkins custom resource:&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;bash
kubectl &amp;ndash;context remote-k8s &amp;ndash;namespace default apply -f deploy/crds/jenkins_v1alpha2_jenkins_cr.yaml
kubectl &amp;ndash;context remote-k8s &amp;ndash;namespace default get jenkins -o yaml
kubectl &amp;ndash;context remote-k8s &amp;ndash;namespace default get po&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;## Testing
Tests are written using [Ginkgo](https://onsi.github.io/ginkgo/) with [Gomega](https://onsi.github.io/gomega/).
Run unit tests with go fmt, lint, statickcheck, vet:&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;bash
make verify&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Run unit tests only:&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;bash
make test&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;### Running E2E tests
Run e2e tests with minikube:&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;bash
make minikube-start
make e2e&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Run the specific e2e test:&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;bash
make e2e E2E_TEST_SELECTOR=&amp;lsquo;^TestConfiguration$&amp;rsquo;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;### Building docker image on minikube
To be able to work with the docker daemon on `minikube` machine run the following command before building an image:&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;bash
eval $(bin/minikube docker-env)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;### When `api/v1alpha2/jenkins_types.go` has changed
Run:&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;bash
make manifests&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;### Getting the Jenkins URL and basic credentials&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;bash
minikube service jenkins-operator-http-&lt;cr_name&gt; &amp;ndash;url
kubectl get secret jenkins-operator-credentials-&lt;cr_name&gt; -o &amp;lsquo;jsonpath={.data.user}&amp;rsquo; | base64 -d
kubectl get secret jenkins-operator-credentials-&lt;cr_name&gt; -o &amp;lsquo;jsonpath={.data.password}&amp;rsquo; | base64 -d
```&lt;/p&gt;
&lt;h2 id=&#34;self-learning&#34;&gt;Self-learning&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=8_DaCcRMp5I&#34;&gt;Tutorial: Deep Dive into the Operator Framework for&amp;hellip; Melvin Hillsman, Michael Hrivnak, &amp;amp; Matt Dorn
&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&#34;https://www.katacoda.com/openshift/courses/operatorframework&#34;&gt;Operator Framework Training By OpenShift&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
</item>
</channel>
</rss>

File diff suppressed because it is too large Load Diff

View File

@ -7,6 +7,7 @@
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
<link rel="alternate" type="application/rss&#43;xml" href="https://jenkinsci.github.io/kubernetes-operator/docs/faq/index.xml">
<link rel="shortcut icon" href="/favicons/favicon.ico" >
@ -20,25 +21,17 @@
<link rel="icon" type="image/png" href="/kubernetes-operator/favicons/android-144x144.png" sizes="144x144">
<link rel="icon" type="image/png" href="/kubernetes-operator/favicons/android-192x192.png"sizes="192x192">
<title>Tools | Jenkins Operator</title><meta property="og:title" content="Tools" />
<meta property="og:description" content="Required tools for building and running Jenkins Operator
<title>FAQ | Jenkins Operator</title><meta property="og:title" content="FAQ" />
<meta property="og:description" content="Frequently Asked Questions about running Jenkins Operator
" />
<meta property="og:type" content="article" />
<meta property="og:url" content="https://jenkinsci.github.io/kubernetes-operator/docs/developer-guide/tools/" />
<meta property="article:published_time" content="2019-08-05T00:00:00+00:00" />
<meta property="article:modified_time" content="2019-08-05T00:00:00+00:00" /><meta property="og:site_name" content="Jenkins Operator" />
<meta itemprop="name" content="Tools">
<meta itemprop="description" content="Required tools for building and running Jenkins Operator
">
<meta itemprop="datePublished" content="2019-08-05T00:00:00&#43;00:00" />
<meta itemprop="dateModified" content="2019-08-05T00:00:00&#43;00:00" />
<meta itemprop="wordCount" content="75">
<meta itemprop="keywords" content="" /><meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Tools"/>
<meta name="twitter:description" content="Required tools for building and running Jenkins Operator
<meta property="og:type" content="website" />
<meta property="og:url" content="https://jenkinsci.github.io/kubernetes-operator/docs/faq/" />
<meta property="og:updated_time" content="2021-08-19T00:00:00+00:00" /><meta property="og:site_name" content="Jenkins Operator" />
<meta itemprop="name" content="FAQ">
<meta itemprop="description" content="Frequently Asked Questions about running Jenkins Operator
"><meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="FAQ"/>
<meta name="twitter:description" content="Frequently Asked Questions about running Jenkins Operator
"/>
@ -54,9 +47,9 @@
crossorigin="anonymous"></script>
<title>Tools | Jenkins Operator</title>
<title>FAQ | Jenkins Operator</title>
</head>
<body class="td-page">
<body class="td-section">
<header>
<nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar">
@ -125,52 +118,6 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/installation/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Installation</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-installation">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/installation/preview/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Installation - Preview</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-installation-preview">
</li>
</ul>
</ul>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/how-it-works/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">How it works</a>
@ -225,7 +172,7 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/getting-started/latest/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Latest (v0.5.x)</a>
<a href="/kubernetes-operator/docs/getting-started/latest/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Latest (v0.7.x)</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-getting-started-latest">
@ -235,25 +182,43 @@
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-deploy-jenkins" href="/kubernetes-operator/docs/getting-started/latest/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-installing-the-operator" href="/kubernetes-operator/docs/getting-started/latest/installing-the-operator/">Installing the Operator</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-configuration" href="/kubernetes-operator/docs/getting-started/latest/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-deploying-jenkins" href="/kubernetes-operator/docs/getting-started/latest/deploying-jenkins/">Deploying Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-customization" href="/kubernetes-operator/docs/getting-started/latest/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-customizing-jenkins" href="/kubernetes-operator/docs/getting-started/latest/customizing-jenkins/">Customizing Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-configure-backup-and-restore" href="/kubernetes-operator/docs/getting-started/latest/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-configuring-seed-jobs-and-pipelines" href="/kubernetes-operator/docs/getting-started/latest/configuring-seed-jobs-and-pipelines/">Configuring Seed Jobs and Pipelines</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-configuring-backup-and-restore" href="/kubernetes-operator/docs/getting-started/latest/configuring-backup-and-restore/">Configuring backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-separate-namespaces" href="/kubernetes-operator/docs/getting-started/latest/separate-namespaces/">Separate namespaces for Jenkins and Operator</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-custom-backup-and-restore" href="/kubernetes-operator/docs/getting-started/latest/custom-backup-and-restore/">Custom backup and restore providers</a>
@ -265,13 +230,7 @@
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-custom-backup-and-restore" href="/kubernetes-operator/docs/getting-started/latest/custom-backup-and-restore/">Custom Backup and Restore Providers</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-notifications" href="/kubernetes-operator/docs/getting-started/latest/notifications/">Notifications</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-ldap" href="/kubernetes-operator/docs/getting-started/latest/ldap/">LDAP</a>
@ -283,12 +242,6 @@
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-diagnostics" href="/kubernetes-operator/docs/getting-started/latest/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-schema" href="/kubernetes-operator/docs/getting-started/latest/schema/">Schema</a>
@ -308,71 +261,160 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/getting-started/preview/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Preview</a>
<a href="/kubernetes-operator/docs/getting-started/v0.6.x/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.6.x</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-getting-started-preview">
<li class="collapse " id="kubernetes-operator-docs-getting-started-v0-6-x">
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-deploy-jenkins" href="/kubernetes-operator/docs/getting-started/preview/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-installing-the-operator" href="/kubernetes-operator/docs/getting-started/v0.6.x/installing-the-operator/">Installing the Operator</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-configuration" href="/kubernetes-operator/docs/getting-started/preview/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-deploying-jenkins" href="/kubernetes-operator/docs/getting-started/v0.6.x/deploying-jenkins/">Deploying Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-customization" href="/kubernetes-operator/docs/getting-started/preview/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-customizing-jenkins" href="/kubernetes-operator/docs/getting-started/v0.6.x/customizing-jenkins/">Customizing Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-configure-backup-and-restore" href="/kubernetes-operator/docs/getting-started/preview/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-configuring-seed-jobs-and-pipelines" href="/kubernetes-operator/docs/getting-started/v0.6.x/configuring-seed-jobs-and-pipelines/">Configuring Seed Jobs and Pipelines</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-aks" href="/kubernetes-operator/docs/getting-started/preview/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-configuring-backup-and-restore" href="/kubernetes-operator/docs/getting-started/v0.6.x/configuring-backup-and-restore/">Configuring backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-custom-backup-and-restore" href="/kubernetes-operator/docs/getting-started/preview/custom-backup-and-restore/">Custom Backup and Restore Providers</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-separate-namespaces" href="/kubernetes-operator/docs/getting-started/v0.6.x/separate-namespaces/">Separate namespaces for Jenkins and Operator</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-notifications" href="/kubernetes-operator/docs/getting-started/preview/notifications/">Notifications</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-custom-backup-and-restore" href="/kubernetes-operator/docs/getting-started/v0.6.x/custom-backup-and-restore/">Custom backup and restore providers</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-openshift" href="/kubernetes-operator/docs/getting-started/preview/openshift/">OpenShift</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-aks" href="/kubernetes-operator/docs/getting-started/v0.6.x/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-diagnostics" href="/kubernetes-operator/docs/getting-started/preview/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-ldap" href="/kubernetes-operator/docs/getting-started/v0.6.x/ldap/">LDAP</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-schema" href="/kubernetes-operator/docs/getting-started/preview/schema/">Schema</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-openshift" href="/kubernetes-operator/docs/getting-started/v0.6.x/openshift/">OpenShift</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-schema" href="/kubernetes-operator/docs/getting-started/v0.6.x/schema/">Schema</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/getting-started/v0.5.x/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.5.x</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-getting-started-v0-5-x">
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-deploy-jenkins" href="/kubernetes-operator/docs/getting-started/v0.5.x/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-configuration" href="/kubernetes-operator/docs/getting-started/v0.5.x/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-customization" href="/kubernetes-operator/docs/getting-started/v0.5.x/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-configure-backup-and-restore" href="/kubernetes-operator/docs/getting-started/v0.5.x/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-aks" href="/kubernetes-operator/docs/getting-started/v0.5.x/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-custom-backup-and-restore" href="/kubernetes-operator/docs/getting-started/v0.5.x/custom-backup-and-restore/">Custom Backup and Restore Providers</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-notifications" href="/kubernetes-operator/docs/getting-started/v0.5.x/notifications/">Notifications</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-openshift" href="/kubernetes-operator/docs/getting-started/v0.5.x/openshift/">OpenShift</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-diagnostics" href="/kubernetes-operator/docs/getting-started/v0.5.x/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-schema" href="/kubernetes-operator/docs/getting-started/v0.5.x/schema/">Schema</a>
</li>
@ -555,77 +597,6 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/getting-started/v0.1.x/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.1.x</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-getting-started-v0-1-x">
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-deploy-jenkins" href="/kubernetes-operator/docs/getting-started/v0.1.x/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-configuration" href="/kubernetes-operator/docs/getting-started/v0.1.x/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-customization" href="/kubernetes-operator/docs/getting-started/v0.1.x/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-aks" href="/kubernetes-operator/docs/getting-started/v0.1.x/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-configure-backup-and-restore" href="/kubernetes-operator/docs/getting-started/v0.1.x/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-diagnostics" href="/kubernetes-operator/docs/getting-started/v0.1.x/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-scheme" href="/kubernetes-operator/docs/getting-started/v0.1.x/scheme/">Scheme</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-migration-guide-v1alpha1-to-v1alpha2" href="/kubernetes-operator/docs/getting-started/v0.1.x/migration-guide-v1alpha1-to-v1alpha2/">Migration guide from v1alpha1 to v1alpha2</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/getting-started/v0.2.x/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.2.x</a>
@ -695,6 +666,77 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/getting-started/v0.1.x/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.1.x</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-getting-started-v0-1-x">
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-deploy-jenkins" href="/kubernetes-operator/docs/getting-started/v0.1.x/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-configuration" href="/kubernetes-operator/docs/getting-started/v0.1.x/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-customization" href="/kubernetes-operator/docs/getting-started/v0.1.x/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-aks" href="/kubernetes-operator/docs/getting-started/v0.1.x/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-configure-backup-and-restore" href="/kubernetes-operator/docs/getting-started/v0.1.x/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-diagnostics" href="/kubernetes-operator/docs/getting-started/v0.1.x/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-scheme" href="/kubernetes-operator/docs/getting-started/v0.1.x/scheme/">Scheme</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-migration-guide-v1alpha1-to-v1alpha2" href="/kubernetes-operator/docs/getting-started/v0.1.x/migration-guide-v1alpha1-to-v1alpha2/">Migration guide from v1alpha1 to v1alpha2</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
@ -734,17 +776,17 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/developer-guide/" class="align-left pl-0 pr-2 active td-sidebar-link td-sidebar-link__section">Developer Guide</a>
<a href="/kubernetes-operator/docs/troubleshooting/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Troubleshooting</a>
</li>
<ul>
<li class="collapse show" id="kubernetes-operator-docs-developer-guide">
<li class="collapse " id="kubernetes-operator-docs-troubleshooting">
<a class="td-sidebar-link td-sidebar-link__page active" id="m-kubernetes-operator-docs-developer-guide-tools" href="/kubernetes-operator/docs/developer-guide/tools/">Tools</a>
</li>
</ul>
</ul>
@ -757,10 +799,10 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/developer-guide/preview/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Developer Guide - Preview</a>
<a href="/kubernetes-operator/docs/developer-guide/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Developer Guide</a>
</li>
<ul>
<li class="collapse show" id="kubernetes-operator-docs-developer-guide-preview">
<li class="collapse " id="kubernetes-operator-docs-developer-guide">
@ -770,6 +812,23 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/faq/" class="align-left pl-0 pr-2 active td-sidebar-link td-sidebar-link__section">FAQ</a>
</li>
<ul>
<li class="collapse show" id="kubernetes-operator-docs-faq">
</li>
</ul>
</ul>
@ -796,11 +855,11 @@
<a href="https://github.com/jenkinsci/kubernetes-operator/edit/master/website/content/en/docs/Developer%20Guide/tools.md" target="_blank"><i class="fa fa-edit fa-fw"></i> Edit this page</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new?title=Tools" target="_blank"><i class="fab fa-github fa-fw"></i> Create documentation issue</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/edit/master/website/content/en/docs/FAQ/_index.md" target="_blank"><i class="fa fa-edit fa-fw"></i> Edit this page</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new?labels=documentation&amp;template=documentation.md&amp;title=FAQ" target="_blank"><i class="fab fa-github fa-fw"></i> Create documentation issue</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new" target="_blank"><i class="fas fa-tasks fa-fw"></i> Create project issue</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new/choose" target="_blank"><i class="fas fa-tasks fa-fw"></i> Create project issue</a>
</div>
@ -813,11 +872,12 @@
<ul>
<li>
<ul>
<li><a href="#configure-environment-variables">Configure environment variables</a></li>
<li><a href="#goimports">goimports</a></li>
<li><a href="#golint">golint</a></li>
<li><a href="#checkmake">checkmake</a></li>
<li><a href="#staticcheck">staticcheck</a></li>
<li>
<ul>
<li><a href="#my-jenkins-pod-keeps-restarting-with-missing-plugins-errors">My Jenkins pod keeps restarting with missing-plugins errors.</a></li>
<li><a href="#my-job-fails-saying-i-don-t-have-necessary-permissions">My job fails saying I don&rsquo;t have necessary permissions.</a></li>
<li><a href="#how-can-i-change-jenkins-home-from-volume-to-persistent-volume">How can I change JENKINS_HOME from volume to Persistent Volume?</a></li>
</ul></li>
</ul></li>
</ul>
</nav>
@ -836,9 +896,6 @@
<li class="breadcrumb-item" >
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/">Documentation</a>
</li>
@ -846,15 +903,8 @@
<li class="breadcrumb-item" >
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/developer-guide/">Developer Guide</a>
</li>
<li class="breadcrumb-item active" aria-current="page">
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/developer-guide/tools/">Tools</a>
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/faq/">FAQ</a>
</li>
</ol>
@ -862,51 +912,219 @@
<div class="td-content">
<h1>Tools</h1>
<div class="lead">Required tools for building and running Jenkins Operator</div>
<h1>FAQ</h1>
<div class="lead">Frequently Asked Questions about running Jenkins Operator</div>
<p>This document answers the most frequently asked questions.</p>
<h3 id="my-jenkins-pod-keeps-restarting-with-missing-plugins-errors">My Jenkins pod keeps restarting with missing-plugins errors.</h3>
<div class="pageinfo pageinfo-primary">
<p>This document explains how to install the Go tools used by the development process.</p>
<p>Jenkins can lose compatibility with its plugins or their dependencies.
If you want to reduce the probability of it happening, dont use latest Jenkins image tag.
Use set version of Jenkins image and declare plugins and all their dependencies in the Jenkins
Custom Resource under plugins. If you are not sure which plugins to pin, you can check the logs
from the initial-config initcontainer or jenkins-master.</p>
<h3 id="my-job-fails-saying-i-don-t-have-necessary-permissions">My job fails saying I don&rsquo;t have necessary permissions.</h3>
<p>You can always add a custom Role for your Jenkins with the permissions you need and reference it in the
Jenkins Custom Resource under &lsquo;spec.roles&rsquo;. The Operator will create a RoleBinding for it. Be careful.
Operator may also not have these permissions. As a quick temporary workaround, you can manually bind this
role to the Operator service account.</p>
<h3 id="how-can-i-change-jenkins-home-from-volume-to-persistent-volume">How can I change JENKINS_HOME from volume to Persistent Volume?</h3>
<p>In order to provide smooth extension, scalability and errorless backups, Jenkins needs to stay ephemeral.
There is no way to change volume for JENKINS_HOME. All the configurations should be volatile in Jenkins
and kept in a VCS.</p>
<div class="section-index">
<hr class="panel-line">
</div>
<h2 id="configure-environment-variables">Configure environment variables</h2>
<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"><span style="color:#204a87">export</span> <span style="color:#000">GOPATH</span><span style="color:#ce5c00;font-weight:bold">=</span>/home/go <span style="color:#8f5902;font-style:italic"># example value</span>
<span style="color:#204a87">export</span> <span style="color:#000">GOROOT</span><span style="color:#ce5c00;font-weight:bold">=</span>/usr/lib/go-1.12 <span style="color:#8f5902;font-style:italic"># example value</span>
<span style="color:#204a87">export</span> <span style="color:#000">PATH</span><span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#000">$GOPATH</span>/bin:<span style="color:#000">$PATH</span></code></pre></div>
<h2 id="goimports">goimports</h2>
<pre><code>go get golang.org/x/tools/cmd/goimports
cd $GOPATH/src/golang.org/x/tools/cmd/goimports
go build
go install</code></pre>
<h2 id="golint">golint</h2>
<pre><code>go get -u golang.org/x/lint/golint
cd $GOPATH/src/golang.org/x/lint/golint
go build
go install</code></pre>
<h2 id="checkmake">checkmake</h2>
<pre><code>go get github.com/mrtazz/checkmake
cd $GOPATH/src/github.com/mrtazz/checkmake
go build
go install</code></pre>
<h2 id="staticcheck">staticcheck</h2>
<pre><code>mkdir -p $GOPATH/src/github.com/dominikh/
cd $GOPATH/src/github.com/dominikh/
git clone https://github.com/dominikh/go-tools.git
cd $GOPATH/src/github.com/dominikh/go-tools/staticcheck
go build
go install</code></pre>
<div class="text-muted mt-5 pt-3 border-top">Last modified August 5, 2019
<div class="text-muted mt-5 pt-3 border-top">Last modified August 19, 2021
</div>
</div>
</main>
</div>
</div>

View File

@ -1,17 +1,17 @@
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Jenkins Operator Installation - Preview</title>
<link>https://jenkinsci.github.io/kubernetes-operator/docs/installation/preview/</link>
<title>Jenkins Operator FAQ</title>
<link>https://jenkinsci.github.io/kubernetes-operator/docs/faq/</link>
<description>Recent Hugo news from gohugo.io</description>
<generator>Hugo -- gohugo.io</generator>
<lastBuildDate>Mon, 05 Oct 2020 00:00:00 +0000</lastBuildDate>
<lastBuildDate>Thu, 19 Aug 2021 00:00:00 +0000</lastBuildDate>
<image>
<url>https://jenkinsci.github.io/kubernetes-operator/img/hugo.png</url>
<title>GoHugo.io</title>
<link>https://jenkinsci.github.io/kubernetes-operator/docs/installation/preview/</link>
<link>https://jenkinsci.github.io/kubernetes-operator/docs/faq/</link>
</image>
<atom:link href="https://jenkinsci.github.io/kubernetes-operator/docs/installation/preview/index.xml" rel="self" type="application/rss+xml" />
<atom:link href="https://jenkinsci.github.io/kubernetes-operator/docs/faq/index.xml" rel="self" type="application/rss+xml" />

View File

@ -22,16 +22,16 @@
<link rel="icon" type="image/png" href="/kubernetes-operator/favicons/android-192x192.png"sizes="192x192">
<title>Getting Started | Jenkins Operator</title><meta property="og:title" content="Getting Started" />
<meta property="og:description" content="How to work with jenkins-operator
<meta property="og:description" content="How to work with Jenkins Operator
" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/" />
<meta property="og:updated_time" content="2019-08-05T00:00:00+00:00" /><meta property="og:site_name" content="Jenkins Operator" />
<meta property="og:updated_time" content="2021-08-19T00:00:00+00:00" /><meta property="og:site_name" content="Jenkins Operator" />
<meta itemprop="name" content="Getting Started">
<meta itemprop="description" content="How to work with jenkins-operator
<meta itemprop="description" content="How to work with Jenkins Operator
"><meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Getting Started"/>
<meta name="twitter:description" content="How to work with jenkins-operator
<meta name="twitter:description" content="How to work with Jenkins Operator
"/>
@ -118,52 +118,6 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/installation/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Installation</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-installation">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/installation/preview/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Installation - Preview</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-installation-preview">
</li>
</ul>
</ul>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/how-it-works/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">How it works</a>
@ -218,35 +172,53 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/getting-started/latest/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Latest (v0.5.x)</a>
<a href="/kubernetes-operator/docs/getting-started/latest/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Latest (v0.7.x)</a>
</li>
<ul>
<li class="collapse show" id="kubernetes-operator-docs-getting-started-latest">
<li class="collapse " id="kubernetes-operator-docs-getting-started-latest">
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-deploy-jenkins" href="/kubernetes-operator/docs/getting-started/latest/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-installing-the-operator" href="/kubernetes-operator/docs/getting-started/latest/installing-the-operator/">Installing the Operator</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-configuration" href="/kubernetes-operator/docs/getting-started/latest/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-deploying-jenkins" href="/kubernetes-operator/docs/getting-started/latest/deploying-jenkins/">Deploying Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-customization" href="/kubernetes-operator/docs/getting-started/latest/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-customizing-jenkins" href="/kubernetes-operator/docs/getting-started/latest/customizing-jenkins/">Customizing Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-configure-backup-and-restore" href="/kubernetes-operator/docs/getting-started/latest/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-configuring-seed-jobs-and-pipelines" href="/kubernetes-operator/docs/getting-started/latest/configuring-seed-jobs-and-pipelines/">Configuring Seed Jobs and Pipelines</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-configuring-backup-and-restore" href="/kubernetes-operator/docs/getting-started/latest/configuring-backup-and-restore/">Configuring backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-separate-namespaces" href="/kubernetes-operator/docs/getting-started/latest/separate-namespaces/">Separate namespaces for Jenkins and Operator</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-custom-backup-and-restore" href="/kubernetes-operator/docs/getting-started/latest/custom-backup-and-restore/">Custom backup and restore providers</a>
@ -258,13 +230,7 @@
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-custom-backup-and-restore" href="/kubernetes-operator/docs/getting-started/latest/custom-backup-and-restore/">Custom Backup and Restore Providers</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-notifications" href="/kubernetes-operator/docs/getting-started/latest/notifications/">Notifications</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-ldap" href="/kubernetes-operator/docs/getting-started/latest/ldap/">LDAP</a>
@ -276,12 +242,6 @@
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-diagnostics" href="/kubernetes-operator/docs/getting-started/latest/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-schema" href="/kubernetes-operator/docs/getting-started/latest/schema/">Schema</a>
@ -301,71 +261,77 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/getting-started/preview/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">Preview</a>
<a href="/kubernetes-operator/docs/getting-started/v0.6.x/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.6.x</a>
</li>
<ul>
<li class="collapse show" id="kubernetes-operator-docs-getting-started-preview">
<li class="collapse " id="kubernetes-operator-docs-getting-started-v0-6-x">
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-deploy-jenkins" href="/kubernetes-operator/docs/getting-started/preview/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-installing-the-operator" href="/kubernetes-operator/docs/getting-started/v0.6.x/installing-the-operator/">Installing the Operator</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-configuration" href="/kubernetes-operator/docs/getting-started/preview/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-deploying-jenkins" href="/kubernetes-operator/docs/getting-started/v0.6.x/deploying-jenkins/">Deploying Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-customization" href="/kubernetes-operator/docs/getting-started/preview/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-customizing-jenkins" href="/kubernetes-operator/docs/getting-started/v0.6.x/customizing-jenkins/">Customizing Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-configure-backup-and-restore" href="/kubernetes-operator/docs/getting-started/preview/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-configuring-seed-jobs-and-pipelines" href="/kubernetes-operator/docs/getting-started/v0.6.x/configuring-seed-jobs-and-pipelines/">Configuring Seed Jobs and Pipelines</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-aks" href="/kubernetes-operator/docs/getting-started/preview/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-configuring-backup-and-restore" href="/kubernetes-operator/docs/getting-started/v0.6.x/configuring-backup-and-restore/">Configuring backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-custom-backup-and-restore" href="/kubernetes-operator/docs/getting-started/preview/custom-backup-and-restore/">Custom Backup and Restore Providers</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-separate-namespaces" href="/kubernetes-operator/docs/getting-started/v0.6.x/separate-namespaces/">Separate namespaces for Jenkins and Operator</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-notifications" href="/kubernetes-operator/docs/getting-started/preview/notifications/">Notifications</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-custom-backup-and-restore" href="/kubernetes-operator/docs/getting-started/v0.6.x/custom-backup-and-restore/">Custom backup and restore providers</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-openshift" href="/kubernetes-operator/docs/getting-started/preview/openshift/">OpenShift</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-aks" href="/kubernetes-operator/docs/getting-started/v0.6.x/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-diagnostics" href="/kubernetes-operator/docs/getting-started/preview/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-ldap" href="/kubernetes-operator/docs/getting-started/v0.6.x/ldap/">LDAP</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-schema" href="/kubernetes-operator/docs/getting-started/preview/schema/">Schema</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-openshift" href="/kubernetes-operator/docs/getting-started/v0.6.x/openshift/">OpenShift</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-schema" href="/kubernetes-operator/docs/getting-started/v0.6.x/schema/">Schema</a>
</li>
@ -384,10 +350,93 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/getting-started/v0.4.x/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">v0.4.x</a>
<a href="/kubernetes-operator/docs/getting-started/v0.5.x/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.5.x</a>
</li>
<ul>
<li class="collapse show" id="kubernetes-operator-docs-getting-started-v0-4-x">
<li class="collapse " id="kubernetes-operator-docs-getting-started-v0-5-x">
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-deploy-jenkins" href="/kubernetes-operator/docs/getting-started/v0.5.x/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-configuration" href="/kubernetes-operator/docs/getting-started/v0.5.x/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-customization" href="/kubernetes-operator/docs/getting-started/v0.5.x/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-configure-backup-and-restore" href="/kubernetes-operator/docs/getting-started/v0.5.x/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-aks" href="/kubernetes-operator/docs/getting-started/v0.5.x/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-custom-backup-and-restore" href="/kubernetes-operator/docs/getting-started/v0.5.x/custom-backup-and-restore/">Custom Backup and Restore Providers</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-notifications" href="/kubernetes-operator/docs/getting-started/v0.5.x/notifications/">Notifications</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-openshift" href="/kubernetes-operator/docs/getting-started/v0.5.x/openshift/">OpenShift</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-diagnostics" href="/kubernetes-operator/docs/getting-started/v0.5.x/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-schema" href="/kubernetes-operator/docs/getting-started/v0.5.x/schema/">Schema</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/getting-started/v0.4.x/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.4.x</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-getting-started-v0-4-x">
@ -467,10 +516,10 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/getting-started/v0.3.x/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">v0.3.x</a>
<a href="/kubernetes-operator/docs/getting-started/v0.3.x/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.3.x</a>
</li>
<ul>
<li class="collapse show" id="kubernetes-operator-docs-getting-started-v0-3-x">
<li class="collapse " id="kubernetes-operator-docs-getting-started-v0-3-x">
@ -550,81 +599,10 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/getting-started/v0.1.x/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">v0.1.x</a>
<a href="/kubernetes-operator/docs/getting-started/v0.2.x/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.2.x</a>
</li>
<ul>
<li class="collapse show" id="kubernetes-operator-docs-getting-started-v0-1-x">
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-deploy-jenkins" href="/kubernetes-operator/docs/getting-started/v0.1.x/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-configuration" href="/kubernetes-operator/docs/getting-started/v0.1.x/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-customization" href="/kubernetes-operator/docs/getting-started/v0.1.x/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-aks" href="/kubernetes-operator/docs/getting-started/v0.1.x/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-configure-backup-and-restore" href="/kubernetes-operator/docs/getting-started/v0.1.x/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-diagnostics" href="/kubernetes-operator/docs/getting-started/v0.1.x/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-scheme" href="/kubernetes-operator/docs/getting-started/v0.1.x/scheme/">Scheme</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-migration-guide-v1alpha1-to-v1alpha2" href="/kubernetes-operator/docs/getting-started/v0.1.x/migration-guide-v1alpha1-to-v1alpha2/">Migration guide from v1alpha1 to v1alpha2</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/getting-started/v0.2.x/" class="align-left pl-0 pr-2 td-sidebar-link td-sidebar-link__section">v0.2.x</a>
</li>
<ul>
<li class="collapse show" id="kubernetes-operator-docs-getting-started-v0-2-x">
<li class="collapse " id="kubernetes-operator-docs-getting-started-v0-2-x">
@ -688,6 +666,77 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/getting-started/v0.1.x/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.1.x</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-getting-started-v0-1-x">
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-deploy-jenkins" href="/kubernetes-operator/docs/getting-started/v0.1.x/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-configuration" href="/kubernetes-operator/docs/getting-started/v0.1.x/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-customization" href="/kubernetes-operator/docs/getting-started/v0.1.x/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-aks" href="/kubernetes-operator/docs/getting-started/v0.1.x/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-configure-backup-and-restore" href="/kubernetes-operator/docs/getting-started/v0.1.x/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-diagnostics" href="/kubernetes-operator/docs/getting-started/v0.1.x/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-scheme" href="/kubernetes-operator/docs/getting-started/v0.1.x/scheme/">Scheme</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-migration-guide-v1alpha1-to-v1alpha2" href="/kubernetes-operator/docs/getting-started/v0.1.x/migration-guide-v1alpha1-to-v1alpha2/">Migration guide from v1alpha1 to v1alpha2</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
@ -727,17 +776,17 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/developer-guide/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Developer Guide</a>
<a href="/kubernetes-operator/docs/troubleshooting/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Troubleshooting</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-developer-guide">
<li class="collapse " id="kubernetes-operator-docs-troubleshooting">
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-developer-guide-tools" href="/kubernetes-operator/docs/developer-guide/tools/">Tools</a>
</li>
</ul>
</ul>
@ -750,10 +799,10 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/developer-guide/preview/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Developer Guide - Preview</a>
<a href="/kubernetes-operator/docs/developer-guide/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Developer Guide</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-developer-guide-preview">
<li class="collapse " id="kubernetes-operator-docs-developer-guide">
@ -763,6 +812,23 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/faq/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">FAQ</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-faq">
</li>
</ul>
</ul>
@ -790,10 +856,10 @@
<a href="https://github.com/jenkinsci/kubernetes-operator/edit/master/website/content/en/docs/Getting%20Started/_index.md" target="_blank"><i class="fa fa-edit fa-fw"></i> Edit this page</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new?title=Getting%20Started" target="_blank"><i class="fab fa-github fa-fw"></i> Create documentation issue</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new?labels=documentation&amp;template=documentation.md&amp;title=Getting%20Started" target="_blank"><i class="fab fa-github fa-fw"></i> Create documentation issue</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new" target="_blank"><i class="fas fa-tasks fa-fw"></i> Create project issue</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new/choose" target="_blank"><i class="fas fa-tasks fa-fw"></i> Create project issue</a>
</div>
@ -833,7 +899,7 @@
<div class="td-content">
<h1>Getting Started</h1>
<div class="lead">How to work with jenkins-operator</div>
<div class="lead">How to work with Jenkins Operator</div>
@ -848,7 +914,8 @@
<p>Prepare your Kubernetes cluster and set up your <code>kubectl</code> access.</p>
<p>Once you have a running Kubernetes cluster you can focus on installing <strong>Jenkins Operator</strong> according to the <a href="/docs/installation/">Installation</a> guide.</p>
<p>Once you have a running Kubernetes cluster you can focus on installing <strong>Jenkins Operator</strong> according to the
<a href="/kubernetes-operator/docs/getting-started/latest/installing-the-operator/">Installation</a> guide.</p>
<div class="section-index">
@ -862,33 +929,23 @@
<div class="entry">
<h5>
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/">Latest (v0.7.x)</a>
</h5>
<p>How to work with the latest, currently supported Jenkins Operator version.
</p>
</div>
<div class="entry">
<h5>
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/v0.6.x/">v0.6.x</a>
</h5>
<p>How to work with Jenkins Operator 0.6.x version. We recommend migrating to a newer version.
</p>
</div>
@ -916,9 +973,9 @@
<div class="entry">
<h5>
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/">Latest (v0.5.x)</a>
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/v0.5.x/">v0.5.x</a>
</h5>
<p>How to work with jenkins-operator latest version
<p>How to work with Jenkins Operator 0.5.x version. We recommend migrating to a newer version.
</p>
</div>
@ -928,13 +985,7 @@
<div class="entry">
<h5>
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/preview/">Preview</a>
</h5>
<p>How to work with jenkins-operator to be released version
</p>
</div>
@ -950,7 +1001,7 @@
<h5>
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/v0.4.x/">v0.4.x</a>
</h5>
<p>How to work with jenkins-operator latest version
<p>How to work with Jenkins Operator 0.4.x version. We recommend migrating to a newer version.
</p>
</div>
@ -966,11 +1017,15 @@
<div class="entry">
<h5>
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/v0.3.x/">v0.3.x</a>
</h5>
<p>How to work with an older version of jenkins-operator. We recommend migration to a newer version.
<p>How to work with Jenkins Operator 0.3.x version. We recommend migrating to a newer version.
</p>
</div>
@ -982,7 +1037,13 @@
<div class="entry">
<h5>
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/v0.2.x/">v0.2.x</a>
</h5>
<p>How to work with Jenkins Operator 0.2.x version. We recommend migrating to a newer version.
</p>
</div>
@ -996,19 +1057,55 @@
<h5>
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/v0.1.x/">v0.1.x</a>
</h5>
<p>How to work with an older version of jenkins-operator. We recommend migration to a newer version.
<p>How to work with Jenkins Operator 0.1.x version. We recommend migrating to a newer version.
</p>
</div>
<div class="entry">
<h5>
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/v0.2.x/">v0.2.x</a>
</h5>
<p>How to work with an older version of jenkins-operator. We recommend migration to a newer version.
</p>
</div>
@ -1058,7 +1155,7 @@
<div class="text-muted mt-5 pt-3 border-top">Last modified August 5, 2019
<div class="text-muted mt-5 pt-3 border-top">Last modified August 19, 2021
</div>
</div>

View File

@ -4,7 +4,7 @@
<link>https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/</link>
<description>Recent Hugo news from gohugo.io</description>
<generator>Hugo -- gohugo.io</generator>
<lastBuildDate>Mon, 05 Aug 2019 00:00:00 +0000</lastBuildDate>
<lastBuildDate>Thu, 19 Aug 2021 00:00:00 +0000</lastBuildDate>
<image>
<url>https://jenkinsci.github.io/kubernetes-operator/img/hugo.png</url>
<title>GoHugo.io</title>
@ -20,9 +20,9 @@
<item>
<title>Docs: Latest (v0.5.x)</title>
<title>Docs: Latest (v0.7.x)</title>
<link>https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/</link>
<pubDate>Mon, 18 Jan 2021 00:00:00 +0000</pubDate>
<pubDate>Wed, 08 Dec 2021 00:00:00 +0000</pubDate>
<guid>https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/</guid>
<description>
@ -33,7 +33,7 @@
&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;
&lt;p&gt;This document describes a getting started guide for &lt;strong&gt;Jenkins Operator&lt;/strong&gt; &lt;code&gt;v0.5.x&lt;/code&gt; and an additional configuration.&lt;/p&gt;
&lt;p&gt;This document describes a getting started guide for &lt;strong&gt;Jenkins Operator&lt;/strong&gt; &lt;code&gt;v0.7.x&lt;/code&gt; and also additional configuration.&lt;/p&gt;
&lt;/div&gt;
@ -42,17 +42,18 @@
&lt;p&gt;Prepare your Kubernetes cluster and set up your &lt;code&gt;kubectl&lt;/code&gt; access.&lt;/p&gt;
&lt;p&gt;Once you have running Kubernetes cluster you can focus on installing &lt;strong&gt;Jenkins Operator&lt;/strong&gt; according to the &lt;a href=&#34;https://jenkinsci.github.io/kubernetes-operator/kubernetes-operator/docs/installation/&#34;&gt;Installation&lt;/a&gt; guide.&lt;/p&gt;
&lt;p&gt;Once you have a running Kubernetes cluster you can focus on installing &lt;strong&gt;Jenkins Operator&lt;/strong&gt; according to the
&lt;a href=&#34;https://jenkinsci.github.io/kubernetes-operator/kubernetes-operator/docs/getting-started/latest/installing-the-operator/&#34;&gt;Installation&lt;/a&gt; guide.&lt;/p&gt;
</description>
</item>
<item>
<title>Docs: Preview</title>
<link>https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/preview/</link>
<pubDate>Mon, 18 Jan 2021 00:00:00 +0000</pubDate>
<title>Docs: v0.6.x</title>
<link>https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/v0.6.x/</link>
<pubDate>Wed, 08 Dec 2021 00:00:00 +0000</pubDate>
<guid>https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/preview/</guid>
<guid>https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/v0.6.x/</guid>
<description>
@ -61,7 +62,36 @@
&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;
&lt;p&gt;This document describes a getting started guide for &lt;strong&gt;Jenkins Operator&lt;/strong&gt; currently in preview version and an additional configuration.&lt;/p&gt;
&lt;p&gt;This document describes a getting started guide for &lt;strong&gt;Jenkins Operator&lt;/strong&gt; &lt;code&gt;v0.6.x&lt;/code&gt; and also additional configuration.&lt;/p&gt;
&lt;/div&gt;
&lt;h2 id=&#34;first-steps&#34;&gt;First Steps&lt;/h2&gt;
&lt;p&gt;Prepare your Kubernetes cluster and set up your &lt;code&gt;kubectl&lt;/code&gt; access.&lt;/p&gt;
&lt;p&gt;Once you have a running Kubernetes cluster you can focus on installing &lt;strong&gt;Jenkins Operator&lt;/strong&gt; according to the
&lt;a href=&#34;https://jenkinsci.github.io/kubernetes-operator/kubernetes-operator/docs/getting-started/latest/installing-the-operator/&#34;&gt;Installation&lt;/a&gt; guide.&lt;/p&gt;
</description>
</item>
<item>
<title>Docs: v0.5.x</title>
<link>https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/v0.5.x/</link>
<pubDate>Thu, 19 Aug 2021 00:00:00 +0000</pubDate>
<guid>https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/v0.5.x/</guid>
<description>
&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;
&lt;p&gt;This document describes a getting started guide for &lt;strong&gt;Jenkins Operator&lt;/strong&gt; &lt;code&gt;v0.5.x&lt;/code&gt; and also additional configuration.&lt;/p&gt;
&lt;/div&gt;
@ -78,7 +108,7 @@
<item>
<title>Docs: v0.4.x</title>
<link>https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/v0.4.x/</link>
<pubDate>Mon, 13 Apr 2020 00:00:00 +0000</pubDate>
<pubDate>Thu, 19 Aug 2021 00:00:00 +0000</pubDate>
<guid>https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/v0.4.x/</guid>
<description>
@ -89,7 +119,7 @@
&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;
&lt;p&gt;This document describes a getting started guide for &lt;strong&gt;Jenkins Operator&lt;/strong&gt; &lt;code&gt;v0.4.x&lt;/code&gt; and an additional configuration.&lt;/p&gt;
&lt;p&gt;This document describes a getting started guide for &lt;strong&gt;Jenkins Operator&lt;/strong&gt; &lt;code&gt;v0.4.x&lt;/code&gt; and also additional configuration.&lt;/p&gt;
&lt;/div&gt;
@ -106,7 +136,7 @@
<item>
<title>Docs: v0.3.x</title>
<link>https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/v0.3.x/</link>
<pubDate>Fri, 20 Dec 2019 00:00:00 +0000</pubDate>
<pubDate>Thu, 19 Aug 2021 00:00:00 +0000</pubDate>
<guid>https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/v0.3.x/</guid>
<description>
@ -117,7 +147,35 @@
&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;
&lt;p&gt;This document describes a getting started guide for &lt;strong&gt;Jenkins Operator&lt;/strong&gt; &lt;code&gt;v0.3.x&lt;/code&gt; and an additional configuration.&lt;/p&gt;
&lt;p&gt;This document describes a getting started guide for &lt;strong&gt;Jenkins Operator&lt;/strong&gt; &lt;code&gt;v0.3.x&lt;/code&gt; and also additional configuration.&lt;/p&gt;
&lt;/div&gt;
&lt;h2 id=&#34;first-steps&#34;&gt;First Steps&lt;/h2&gt;
&lt;p&gt;Prepare your Kubernetes cluster and set up your &lt;code&gt;kubectl&lt;/code&gt; access.&lt;/p&gt;
&lt;p&gt;Once you have running Kubernetes cluster you can focus on installing &lt;strong&gt;Jenkins Operator&lt;/strong&gt; according to the &lt;a href=&#34;https://jenkinsci.github.io/kubernetes-operator/kubernetes-operator/docs/installation/&#34;&gt;Installation&lt;/a&gt; guide.&lt;/p&gt;
</description>
</item>
<item>
<title>Docs: v0.2.x</title>
<link>https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/v0.2.x/</link>
<pubDate>Thu, 19 Aug 2021 00:00:00 +0000</pubDate>
<guid>https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/v0.2.x/</guid>
<description>
&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;
&lt;p&gt;This document describes a getting started guide for &lt;strong&gt;Jenkins Operator&lt;/strong&gt; &lt;code&gt;v0.2.x&lt;/code&gt; and also additional configuration.&lt;/p&gt;
&lt;/div&gt;
@ -134,7 +192,7 @@
<item>
<title>Docs: v0.1.x</title>
<link>https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/v0.1.x/</link>
<pubDate>Mon, 05 Aug 2019 00:00:00 +0000</pubDate>
<pubDate>Thu, 19 Aug 2021 00:00:00 +0000</pubDate>
<guid>https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/v0.1.x/</guid>
<description>
@ -145,7 +203,7 @@
&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;
&lt;p&gt;This document describes a getting started guide for &lt;strong&gt;Jenkins Operator&lt;/strong&gt; &lt;code&gt;v0.1.x&lt;/code&gt; and an additional configuration.&lt;/p&gt;
&lt;p&gt;This document describes a getting started guide for &lt;strong&gt;Jenkins Operator&lt;/strong&gt; &lt;code&gt;v0.1.x&lt;/code&gt; and also additional configuration.&lt;/p&gt;
&lt;/div&gt;
@ -159,33 +217,5 @@
</description>
</item>
<item>
<title>Docs: v0.2.x</title>
<link>https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/v0.2.x/</link>
<pubDate>Mon, 05 Aug 2019 00:00:00 +0000</pubDate>
<guid>https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/v0.2.x/</guid>
<description>
&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;
&lt;p&gt;This document describes a getting started guide for &lt;strong&gt;Jenkins Operator&lt;/strong&gt; &lt;code&gt;v0.2.x&lt;/code&gt; and an additional configuration.&lt;/p&gt;
&lt;/div&gt;
&lt;h2 id=&#34;first-steps&#34;&gt;First Steps&lt;/h2&gt;
&lt;p&gt;Prepare your Kubernetes cluster and set up your &lt;code&gt;kubectl&lt;/code&gt; access.&lt;/p&gt;
&lt;p&gt;Once you have running Kubernetes cluster you can focus on installing &lt;strong&gt;Jenkins Operator&lt;/strong&gt; according to the &lt;a href=&#34;https://jenkinsci.github.io/kubernetes-operator/kubernetes-operator/docs/installation/&#34;&gt;Installation&lt;/a&gt; guide.&lt;/p&gt;
</description>
</item>
</channel>
</rss>

View File

@ -25,13 +25,13 @@
" />
<meta property="og:type" content="article" />
<meta property="og:url" content="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/aks/" />
<meta property="article:published_time" content="2021-01-18T00:00:00+00:00" />
<meta property="article:modified_time" content="2021-01-18T00:00:00+00:00" /><meta property="og:site_name" content="Jenkins Operator" />
<meta property="article:published_time" content="2021-12-08T00:00:00+00:00" />
<meta property="article:modified_time" content="2021-12-08T00:00:00+00:00" /><meta property="og:site_name" content="Jenkins Operator" />
<meta itemprop="name" content="AKS">
<meta itemprop="description" content="Additional configuration for Azure Kubernetes Service
">
<meta itemprop="datePublished" content="2021-01-18T00:00:00&#43;00:00" />
<meta itemprop="dateModified" content="2021-01-18T00:00:00&#43;00:00" />
<meta itemprop="datePublished" content="2021-12-08T00:00:00&#43;00:00" />
<meta itemprop="dateModified" content="2021-12-08T00:00:00&#43;00:00" />
<meta itemprop="wordCount" content="47">
@ -125,52 +125,6 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/installation/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Installation</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-installation">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/installation/preview/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Installation - Preview</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-installation-preview">
</li>
</ul>
</ul>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/how-it-works/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">How it works</a>
@ -225,7 +179,7 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/getting-started/latest/" class="align-left pl-0 pr-2 active td-sidebar-link td-sidebar-link__section">Latest (v0.5.x)</a>
<a href="/kubernetes-operator/docs/getting-started/latest/" class="align-left pl-0 pr-2 active td-sidebar-link td-sidebar-link__section">Latest (v0.7.x)</a>
</li>
<ul>
<li class="collapse show" id="kubernetes-operator-docs-getting-started-latest">
@ -235,25 +189,43 @@
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-deploy-jenkins" href="/kubernetes-operator/docs/getting-started/latest/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-installing-the-operator" href="/kubernetes-operator/docs/getting-started/latest/installing-the-operator/">Installing the Operator</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-configuration" href="/kubernetes-operator/docs/getting-started/latest/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-deploying-jenkins" href="/kubernetes-operator/docs/getting-started/latest/deploying-jenkins/">Deploying Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-customization" href="/kubernetes-operator/docs/getting-started/latest/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-customizing-jenkins" href="/kubernetes-operator/docs/getting-started/latest/customizing-jenkins/">Customizing Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-configure-backup-and-restore" href="/kubernetes-operator/docs/getting-started/latest/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-configuring-seed-jobs-and-pipelines" href="/kubernetes-operator/docs/getting-started/latest/configuring-seed-jobs-and-pipelines/">Configuring Seed Jobs and Pipelines</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-configuring-backup-and-restore" href="/kubernetes-operator/docs/getting-started/latest/configuring-backup-and-restore/">Configuring backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-separate-namespaces" href="/kubernetes-operator/docs/getting-started/latest/separate-namespaces/">Separate namespaces for Jenkins and Operator</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-custom-backup-and-restore" href="/kubernetes-operator/docs/getting-started/latest/custom-backup-and-restore/">Custom backup and restore providers</a>
@ -265,13 +237,7 @@
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-custom-backup-and-restore" href="/kubernetes-operator/docs/getting-started/latest/custom-backup-and-restore/">Custom Backup and Restore Providers</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-notifications" href="/kubernetes-operator/docs/getting-started/latest/notifications/">Notifications</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-ldap" href="/kubernetes-operator/docs/getting-started/latest/ldap/">LDAP</a>
@ -283,12 +249,6 @@
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-diagnostics" href="/kubernetes-operator/docs/getting-started/latest/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-schema" href="/kubernetes-operator/docs/getting-started/latest/schema/">Schema</a>
@ -308,71 +268,160 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/getting-started/preview/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Preview</a>
<a href="/kubernetes-operator/docs/getting-started/v0.6.x/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.6.x</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-getting-started-preview">
<li class="collapse " id="kubernetes-operator-docs-getting-started-v0-6-x">
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-deploy-jenkins" href="/kubernetes-operator/docs/getting-started/preview/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-installing-the-operator" href="/kubernetes-operator/docs/getting-started/v0.6.x/installing-the-operator/">Installing the Operator</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-configuration" href="/kubernetes-operator/docs/getting-started/preview/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-deploying-jenkins" href="/kubernetes-operator/docs/getting-started/v0.6.x/deploying-jenkins/">Deploying Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-customization" href="/kubernetes-operator/docs/getting-started/preview/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-customizing-jenkins" href="/kubernetes-operator/docs/getting-started/v0.6.x/customizing-jenkins/">Customizing Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-configure-backup-and-restore" href="/kubernetes-operator/docs/getting-started/preview/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-configuring-seed-jobs-and-pipelines" href="/kubernetes-operator/docs/getting-started/v0.6.x/configuring-seed-jobs-and-pipelines/">Configuring Seed Jobs and Pipelines</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-aks" href="/kubernetes-operator/docs/getting-started/preview/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-configuring-backup-and-restore" href="/kubernetes-operator/docs/getting-started/v0.6.x/configuring-backup-and-restore/">Configuring backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-custom-backup-and-restore" href="/kubernetes-operator/docs/getting-started/preview/custom-backup-and-restore/">Custom Backup and Restore Providers</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-separate-namespaces" href="/kubernetes-operator/docs/getting-started/v0.6.x/separate-namespaces/">Separate namespaces for Jenkins and Operator</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-notifications" href="/kubernetes-operator/docs/getting-started/preview/notifications/">Notifications</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-custom-backup-and-restore" href="/kubernetes-operator/docs/getting-started/v0.6.x/custom-backup-and-restore/">Custom backup and restore providers</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-openshift" href="/kubernetes-operator/docs/getting-started/preview/openshift/">OpenShift</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-aks" href="/kubernetes-operator/docs/getting-started/v0.6.x/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-diagnostics" href="/kubernetes-operator/docs/getting-started/preview/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-ldap" href="/kubernetes-operator/docs/getting-started/v0.6.x/ldap/">LDAP</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-schema" href="/kubernetes-operator/docs/getting-started/preview/schema/">Schema</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-openshift" href="/kubernetes-operator/docs/getting-started/v0.6.x/openshift/">OpenShift</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-schema" href="/kubernetes-operator/docs/getting-started/v0.6.x/schema/">Schema</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/getting-started/v0.5.x/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.5.x</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-getting-started-v0-5-x">
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-deploy-jenkins" href="/kubernetes-operator/docs/getting-started/v0.5.x/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-configuration" href="/kubernetes-operator/docs/getting-started/v0.5.x/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-customization" href="/kubernetes-operator/docs/getting-started/v0.5.x/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-configure-backup-and-restore" href="/kubernetes-operator/docs/getting-started/v0.5.x/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-aks" href="/kubernetes-operator/docs/getting-started/v0.5.x/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-custom-backup-and-restore" href="/kubernetes-operator/docs/getting-started/v0.5.x/custom-backup-and-restore/">Custom Backup and Restore Providers</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-notifications" href="/kubernetes-operator/docs/getting-started/v0.5.x/notifications/">Notifications</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-openshift" href="/kubernetes-operator/docs/getting-started/v0.5.x/openshift/">OpenShift</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-diagnostics" href="/kubernetes-operator/docs/getting-started/v0.5.x/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-schema" href="/kubernetes-operator/docs/getting-started/v0.5.x/schema/">Schema</a>
</li>
@ -555,77 +604,6 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/getting-started/v0.1.x/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.1.x</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-getting-started-v0-1-x">
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-deploy-jenkins" href="/kubernetes-operator/docs/getting-started/v0.1.x/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-configuration" href="/kubernetes-operator/docs/getting-started/v0.1.x/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-customization" href="/kubernetes-operator/docs/getting-started/v0.1.x/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-aks" href="/kubernetes-operator/docs/getting-started/v0.1.x/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-configure-backup-and-restore" href="/kubernetes-operator/docs/getting-started/v0.1.x/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-diagnostics" href="/kubernetes-operator/docs/getting-started/v0.1.x/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-scheme" href="/kubernetes-operator/docs/getting-started/v0.1.x/scheme/">Scheme</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-migration-guide-v1alpha1-to-v1alpha2" href="/kubernetes-operator/docs/getting-started/v0.1.x/migration-guide-v1alpha1-to-v1alpha2/">Migration guide from v1alpha1 to v1alpha2</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/getting-started/v0.2.x/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.2.x</a>
@ -695,6 +673,77 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/getting-started/v0.1.x/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.1.x</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-getting-started-v0-1-x">
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-deploy-jenkins" href="/kubernetes-operator/docs/getting-started/v0.1.x/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-configuration" href="/kubernetes-operator/docs/getting-started/v0.1.x/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-customization" href="/kubernetes-operator/docs/getting-started/v0.1.x/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-aks" href="/kubernetes-operator/docs/getting-started/v0.1.x/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-configure-backup-and-restore" href="/kubernetes-operator/docs/getting-started/v0.1.x/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-diagnostics" href="/kubernetes-operator/docs/getting-started/v0.1.x/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-scheme" href="/kubernetes-operator/docs/getting-started/v0.1.x/scheme/">Scheme</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-migration-guide-v1alpha1-to-v1alpha2" href="/kubernetes-operator/docs/getting-started/v0.1.x/migration-guide-v1alpha1-to-v1alpha2/">Migration guide from v1alpha1 to v1alpha2</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
@ -734,17 +783,17 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/developer-guide/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Developer Guide</a>
<a href="/kubernetes-operator/docs/troubleshooting/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Troubleshooting</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-developer-guide">
<li class="collapse " id="kubernetes-operator-docs-troubleshooting">
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-developer-guide-tools" href="/kubernetes-operator/docs/developer-guide/tools/">Tools</a>
</li>
</ul>
</ul>
@ -757,10 +806,10 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/developer-guide/preview/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Developer Guide - Preview</a>
<a href="/kubernetes-operator/docs/developer-guide/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Developer Guide</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-developer-guide-preview">
<li class="collapse " id="kubernetes-operator-docs-developer-guide">
@ -770,6 +819,23 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/faq/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">FAQ</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-faq">
</li>
</ul>
</ul>
@ -797,10 +863,10 @@
<a href="https://github.com/jenkinsci/kubernetes-operator/edit/master/website/content/en/docs/Getting%20Started/latest/aks.md" target="_blank"><i class="fa fa-edit fa-fw"></i> Edit this page</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new?title=AKS" target="_blank"><i class="fab fa-github fa-fw"></i> Create documentation issue</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new?labels=documentation&amp;template=documentation.md&amp;title=AKS" target="_blank"><i class="fab fa-github fa-fw"></i> Create documentation issue</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new" target="_blank"><i class="fas fa-tasks fa-fw"></i> Create project issue</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new/choose" target="_blank"><i class="fas fa-tasks fa-fw"></i> Create project issue</a>
</div>
@ -842,7 +908,7 @@
<li class="breadcrumb-item" >
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/">Latest (v0.5.x)</a>
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/">Latest (v0.7.x)</a>
</li>
@ -873,7 +939,7 @@ restart of a Jenkins pod over and over again.</p>
<div class="text-muted mt-5 pt-3 border-top">Last modified January 18, 2021
<div class="text-muted mt-5 pt-3 border-top">Last modified December 8, 2021
</div>
</div>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -20,24 +20,24 @@
<link rel="icon" type="image/png" href="/kubernetes-operator/favicons/android-144x144.png" sizes="144x144">
<link rel="icon" type="image/png" href="/kubernetes-operator/favicons/android-192x192.png"sizes="192x192">
<title>Custom Backup and Restore Providers | Jenkins Operator</title><meta property="og:title" content="Custom Backup and Restore Providers" />
<title>Custom backup and restore providers | Jenkins Operator</title><meta property="og:title" content="Custom backup and restore providers" />
<meta property="og:description" content="Custom backup and restore provider
" />
<meta property="og:type" content="article" />
<meta property="og:url" content="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/custom-backup-and-restore/" />
<meta property="article:published_time" content="2021-01-18T00:00:00+00:00" />
<meta property="article:modified_time" content="2021-01-18T00:00:00+00:00" /><meta property="og:site_name" content="Jenkins Operator" />
<meta itemprop="name" content="Custom Backup and Restore Providers">
<meta property="article:published_time" content="2021-12-08T00:00:00+00:00" />
<meta property="article:modified_time" content="2021-12-08T00:00:00+00:00" /><meta property="og:site_name" content="Jenkins Operator" />
<meta itemprop="name" content="Custom backup and restore providers">
<meta itemprop="description" content="Custom backup and restore provider
">
<meta itemprop="datePublished" content="2021-01-18T00:00:00&#43;00:00" />
<meta itemprop="dateModified" content="2021-01-18T00:00:00&#43;00:00" />
<meta itemprop="datePublished" content="2021-12-08T00:00:00&#43;00:00" />
<meta itemprop="dateModified" content="2021-12-08T00:00:00&#43;00:00" />
<meta itemprop="wordCount" content="511">
<meta itemprop="keywords" content="" /><meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Custom Backup and Restore Providers"/>
<meta name="twitter:title" content="Custom backup and restore providers"/>
<meta name="twitter:description" content="Custom backup and restore provider
"/>
@ -54,7 +54,7 @@
crossorigin="anonymous"></script>
<title>Custom Backup and Restore Providers | Jenkins Operator</title>
<title>Custom backup and restore providers | Jenkins Operator</title>
</head>
<body class="td-page">
<header>
@ -125,52 +125,6 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/installation/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Installation</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-installation">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/installation/preview/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Installation - Preview</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-installation-preview">
</li>
</ul>
</ul>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/how-it-works/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">How it works</a>
@ -225,7 +179,7 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/getting-started/latest/" class="align-left pl-0 pr-2 active td-sidebar-link td-sidebar-link__section">Latest (v0.5.x)</a>
<a href="/kubernetes-operator/docs/getting-started/latest/" class="align-left pl-0 pr-2 active td-sidebar-link td-sidebar-link__section">Latest (v0.7.x)</a>
</li>
<ul>
<li class="collapse show" id="kubernetes-operator-docs-getting-started-latest">
@ -235,25 +189,43 @@
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-deploy-jenkins" href="/kubernetes-operator/docs/getting-started/latest/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-installing-the-operator" href="/kubernetes-operator/docs/getting-started/latest/installing-the-operator/">Installing the Operator</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-configuration" href="/kubernetes-operator/docs/getting-started/latest/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-deploying-jenkins" href="/kubernetes-operator/docs/getting-started/latest/deploying-jenkins/">Deploying Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-customization" href="/kubernetes-operator/docs/getting-started/latest/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-customizing-jenkins" href="/kubernetes-operator/docs/getting-started/latest/customizing-jenkins/">Customizing Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-configure-backup-and-restore" href="/kubernetes-operator/docs/getting-started/latest/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-configuring-seed-jobs-and-pipelines" href="/kubernetes-operator/docs/getting-started/latest/configuring-seed-jobs-and-pipelines/">Configuring Seed Jobs and Pipelines</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-configuring-backup-and-restore" href="/kubernetes-operator/docs/getting-started/latest/configuring-backup-and-restore/">Configuring backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-separate-namespaces" href="/kubernetes-operator/docs/getting-started/latest/separate-namespaces/">Separate namespaces for Jenkins and Operator</a>
<a class="td-sidebar-link td-sidebar-link__page active" id="m-kubernetes-operator-docs-getting-started-latest-custom-backup-and-restore" href="/kubernetes-operator/docs/getting-started/latest/custom-backup-and-restore/">Custom backup and restore providers</a>
@ -265,13 +237,7 @@
<a class="td-sidebar-link td-sidebar-link__page active" id="m-kubernetes-operator-docs-getting-started-latest-custom-backup-and-restore" href="/kubernetes-operator/docs/getting-started/latest/custom-backup-and-restore/">Custom Backup and Restore Providers</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-notifications" href="/kubernetes-operator/docs/getting-started/latest/notifications/">Notifications</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-ldap" href="/kubernetes-operator/docs/getting-started/latest/ldap/">LDAP</a>
@ -283,12 +249,6 @@
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-diagnostics" href="/kubernetes-operator/docs/getting-started/latest/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-schema" href="/kubernetes-operator/docs/getting-started/latest/schema/">Schema</a>
@ -308,71 +268,160 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/getting-started/preview/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Preview</a>
<a href="/kubernetes-operator/docs/getting-started/v0.6.x/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.6.x</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-getting-started-preview">
<li class="collapse " id="kubernetes-operator-docs-getting-started-v0-6-x">
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-deploy-jenkins" href="/kubernetes-operator/docs/getting-started/preview/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-installing-the-operator" href="/kubernetes-operator/docs/getting-started/v0.6.x/installing-the-operator/">Installing the Operator</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-configuration" href="/kubernetes-operator/docs/getting-started/preview/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-deploying-jenkins" href="/kubernetes-operator/docs/getting-started/v0.6.x/deploying-jenkins/">Deploying Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-customization" href="/kubernetes-operator/docs/getting-started/preview/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-customizing-jenkins" href="/kubernetes-operator/docs/getting-started/v0.6.x/customizing-jenkins/">Customizing Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-configure-backup-and-restore" href="/kubernetes-operator/docs/getting-started/preview/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-configuring-seed-jobs-and-pipelines" href="/kubernetes-operator/docs/getting-started/v0.6.x/configuring-seed-jobs-and-pipelines/">Configuring Seed Jobs and Pipelines</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-aks" href="/kubernetes-operator/docs/getting-started/preview/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-configuring-backup-and-restore" href="/kubernetes-operator/docs/getting-started/v0.6.x/configuring-backup-and-restore/">Configuring backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-custom-backup-and-restore" href="/kubernetes-operator/docs/getting-started/preview/custom-backup-and-restore/">Custom Backup and Restore Providers</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-separate-namespaces" href="/kubernetes-operator/docs/getting-started/v0.6.x/separate-namespaces/">Separate namespaces for Jenkins and Operator</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-notifications" href="/kubernetes-operator/docs/getting-started/preview/notifications/">Notifications</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-custom-backup-and-restore" href="/kubernetes-operator/docs/getting-started/v0.6.x/custom-backup-and-restore/">Custom backup and restore providers</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-openshift" href="/kubernetes-operator/docs/getting-started/preview/openshift/">OpenShift</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-aks" href="/kubernetes-operator/docs/getting-started/v0.6.x/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-diagnostics" href="/kubernetes-operator/docs/getting-started/preview/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-ldap" href="/kubernetes-operator/docs/getting-started/v0.6.x/ldap/">LDAP</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-schema" href="/kubernetes-operator/docs/getting-started/preview/schema/">Schema</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-openshift" href="/kubernetes-operator/docs/getting-started/v0.6.x/openshift/">OpenShift</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-schema" href="/kubernetes-operator/docs/getting-started/v0.6.x/schema/">Schema</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/getting-started/v0.5.x/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.5.x</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-getting-started-v0-5-x">
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-deploy-jenkins" href="/kubernetes-operator/docs/getting-started/v0.5.x/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-configuration" href="/kubernetes-operator/docs/getting-started/v0.5.x/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-customization" href="/kubernetes-operator/docs/getting-started/v0.5.x/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-configure-backup-and-restore" href="/kubernetes-operator/docs/getting-started/v0.5.x/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-aks" href="/kubernetes-operator/docs/getting-started/v0.5.x/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-custom-backup-and-restore" href="/kubernetes-operator/docs/getting-started/v0.5.x/custom-backup-and-restore/">Custom Backup and Restore Providers</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-notifications" href="/kubernetes-operator/docs/getting-started/v0.5.x/notifications/">Notifications</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-openshift" href="/kubernetes-operator/docs/getting-started/v0.5.x/openshift/">OpenShift</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-diagnostics" href="/kubernetes-operator/docs/getting-started/v0.5.x/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-schema" href="/kubernetes-operator/docs/getting-started/v0.5.x/schema/">Schema</a>
</li>
@ -555,77 +604,6 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/getting-started/v0.1.x/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.1.x</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-getting-started-v0-1-x">
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-deploy-jenkins" href="/kubernetes-operator/docs/getting-started/v0.1.x/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-configuration" href="/kubernetes-operator/docs/getting-started/v0.1.x/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-customization" href="/kubernetes-operator/docs/getting-started/v0.1.x/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-aks" href="/kubernetes-operator/docs/getting-started/v0.1.x/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-configure-backup-and-restore" href="/kubernetes-operator/docs/getting-started/v0.1.x/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-diagnostics" href="/kubernetes-operator/docs/getting-started/v0.1.x/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-scheme" href="/kubernetes-operator/docs/getting-started/v0.1.x/scheme/">Scheme</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-migration-guide-v1alpha1-to-v1alpha2" href="/kubernetes-operator/docs/getting-started/v0.1.x/migration-guide-v1alpha1-to-v1alpha2/">Migration guide from v1alpha1 to v1alpha2</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/getting-started/v0.2.x/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.2.x</a>
@ -695,6 +673,77 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/getting-started/v0.1.x/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.1.x</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-getting-started-v0-1-x">
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-deploy-jenkins" href="/kubernetes-operator/docs/getting-started/v0.1.x/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-configuration" href="/kubernetes-operator/docs/getting-started/v0.1.x/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-customization" href="/kubernetes-operator/docs/getting-started/v0.1.x/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-aks" href="/kubernetes-operator/docs/getting-started/v0.1.x/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-configure-backup-and-restore" href="/kubernetes-operator/docs/getting-started/v0.1.x/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-diagnostics" href="/kubernetes-operator/docs/getting-started/v0.1.x/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-scheme" href="/kubernetes-operator/docs/getting-started/v0.1.x/scheme/">Scheme</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-migration-guide-v1alpha1-to-v1alpha2" href="/kubernetes-operator/docs/getting-started/v0.1.x/migration-guide-v1alpha1-to-v1alpha2/">Migration guide from v1alpha1 to v1alpha2</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
@ -734,17 +783,17 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/developer-guide/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Developer Guide</a>
<a href="/kubernetes-operator/docs/troubleshooting/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Troubleshooting</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-developer-guide">
<li class="collapse " id="kubernetes-operator-docs-troubleshooting">
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-developer-guide-tools" href="/kubernetes-operator/docs/developer-guide/tools/">Tools</a>
</li>
</ul>
</ul>
@ -757,10 +806,10 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/developer-guide/preview/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Developer Guide - Preview</a>
<a href="/kubernetes-operator/docs/developer-guide/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Developer Guide</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-developer-guide-preview">
<li class="collapse " id="kubernetes-operator-docs-developer-guide">
@ -770,6 +819,23 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/faq/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">FAQ</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-faq">
</li>
</ul>
</ul>
@ -797,10 +863,10 @@
<a href="https://github.com/jenkinsci/kubernetes-operator/edit/master/website/content/en/docs/Getting%20Started/latest/custom-backup-and-restore.md" target="_blank"><i class="fa fa-edit fa-fw"></i> Edit this page</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new?title=Custom%20Backup%20and%20Restore%20Providers" target="_blank"><i class="fab fa-github fa-fw"></i> Create documentation issue</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new?labels=documentation&amp;template=documentation.md&amp;title=Custom%20backup%20and%20restore%20providers" target="_blank"><i class="fab fa-github fa-fw"></i> Create documentation issue</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new" target="_blank"><i class="fas fa-tasks fa-fw"></i> Create project issue</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new/choose" target="_blank"><i class="fas fa-tasks fa-fw"></i> Create project issue</a>
</div>
@ -855,14 +921,14 @@
<li class="breadcrumb-item" >
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/">Latest (v0.5.x)</a>
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/">Latest (v0.7.x)</a>
</li>
<li class="breadcrumb-item active" aria-current="page">
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/custom-backup-and-restore/">Custom Backup and Restore Providers</a>
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/custom-backup-and-restore/">Custom backup and restore providers</a>
</li>
</ol>
@ -870,7 +936,7 @@
<div class="td-content">
<h1>Custom Backup and Restore Providers</h1>
<h1>Custom backup and restore providers</h1>
<div class="lead">Custom backup and restore provider</div>
@ -1045,7 +1111,7 @@ the number of backups under control, e.g. Cloud Formation fragment:</p>
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>DaysAfterInitiation<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#0000cf;font-weight:bold">3</span></code></pre></div>
<div class="text-muted mt-5 pt-3 border-top">Last modified January 18, 2021
<div class="text-muted mt-5 pt-3 border-top">Last modified December 8, 2021
</div>
</div>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -21,17 +21,17 @@
<link rel="icon" type="image/png" href="/kubernetes-operator/favicons/android-144x144.png" sizes="144x144">
<link rel="icon" type="image/png" href="/kubernetes-operator/favicons/android-192x192.png"sizes="192x192">
<title>Latest (v0.5.x) | Jenkins Operator</title><meta property="og:title" content="Latest (v0.5.x)" />
<meta property="og:description" content="How to work with jenkins-operator latest version
<title>Latest (v0.7.x) | Jenkins Operator</title><meta property="og:title" content="Latest (v0.7.x)" />
<meta property="og:description" content="How to work with the latest, currently supported Jenkins Operator version.
" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/" />
<meta property="og:updated_time" content="2021-01-18T00:00:00+00:00" /><meta property="og:site_name" content="Jenkins Operator" />
<meta itemprop="name" content="Latest (v0.5.x)">
<meta itemprop="description" content="How to work with jenkins-operator latest version
<meta property="og:updated_time" content="2021-12-08T00:00:00+00:00" /><meta property="og:site_name" content="Jenkins Operator" />
<meta itemprop="name" content="Latest (v0.7.x)">
<meta itemprop="description" content="How to work with the latest, currently supported Jenkins Operator version.
"><meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Latest (v0.5.x)"/>
<meta name="twitter:description" content="How to work with jenkins-operator latest version
<meta name="twitter:title" content="Latest (v0.7.x)"/>
<meta name="twitter:description" content="How to work with the latest, currently supported Jenkins Operator version.
"/>
@ -47,7 +47,7 @@
crossorigin="anonymous"></script>
<title>Latest (v0.5.x) | Jenkins Operator</title>
<title>Latest (v0.7.x) | Jenkins Operator</title>
</head>
<body class="td-section">
<header>
@ -118,52 +118,6 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/installation/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Installation</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-installation">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/installation/preview/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Installation - Preview</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-installation-preview">
</li>
</ul>
</ul>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/how-it-works/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">How it works</a>
@ -218,7 +172,7 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/getting-started/latest/" class="align-left pl-0 pr-2 active td-sidebar-link td-sidebar-link__section">Latest (v0.5.x)</a>
<a href="/kubernetes-operator/docs/getting-started/latest/" class="align-left pl-0 pr-2 active td-sidebar-link td-sidebar-link__section">Latest (v0.7.x)</a>
</li>
<ul>
<li class="collapse show" id="kubernetes-operator-docs-getting-started-latest">
@ -228,25 +182,43 @@
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-deploy-jenkins" href="/kubernetes-operator/docs/getting-started/latest/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-installing-the-operator" href="/kubernetes-operator/docs/getting-started/latest/installing-the-operator/">Installing the Operator</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-configuration" href="/kubernetes-operator/docs/getting-started/latest/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-deploying-jenkins" href="/kubernetes-operator/docs/getting-started/latest/deploying-jenkins/">Deploying Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-customization" href="/kubernetes-operator/docs/getting-started/latest/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-customizing-jenkins" href="/kubernetes-operator/docs/getting-started/latest/customizing-jenkins/">Customizing Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-configure-backup-and-restore" href="/kubernetes-operator/docs/getting-started/latest/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-configuring-seed-jobs-and-pipelines" href="/kubernetes-operator/docs/getting-started/latest/configuring-seed-jobs-and-pipelines/">Configuring Seed Jobs and Pipelines</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-configuring-backup-and-restore" href="/kubernetes-operator/docs/getting-started/latest/configuring-backup-and-restore/">Configuring backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-separate-namespaces" href="/kubernetes-operator/docs/getting-started/latest/separate-namespaces/">Separate namespaces for Jenkins and Operator</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-custom-backup-and-restore" href="/kubernetes-operator/docs/getting-started/latest/custom-backup-and-restore/">Custom backup and restore providers</a>
@ -258,13 +230,7 @@
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-custom-backup-and-restore" href="/kubernetes-operator/docs/getting-started/latest/custom-backup-and-restore/">Custom Backup and Restore Providers</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-notifications" href="/kubernetes-operator/docs/getting-started/latest/notifications/">Notifications</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-ldap" href="/kubernetes-operator/docs/getting-started/latest/ldap/">LDAP</a>
@ -276,12 +242,6 @@
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-diagnostics" href="/kubernetes-operator/docs/getting-started/latest/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-schema" href="/kubernetes-operator/docs/getting-started/latest/schema/">Schema</a>
@ -301,71 +261,160 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/getting-started/preview/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Preview</a>
<a href="/kubernetes-operator/docs/getting-started/v0.6.x/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.6.x</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-getting-started-preview">
<li class="collapse " id="kubernetes-operator-docs-getting-started-v0-6-x">
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-deploy-jenkins" href="/kubernetes-operator/docs/getting-started/preview/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-installing-the-operator" href="/kubernetes-operator/docs/getting-started/v0.6.x/installing-the-operator/">Installing the Operator</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-configuration" href="/kubernetes-operator/docs/getting-started/preview/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-deploying-jenkins" href="/kubernetes-operator/docs/getting-started/v0.6.x/deploying-jenkins/">Deploying Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-customization" href="/kubernetes-operator/docs/getting-started/preview/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-customizing-jenkins" href="/kubernetes-operator/docs/getting-started/v0.6.x/customizing-jenkins/">Customizing Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-configure-backup-and-restore" href="/kubernetes-operator/docs/getting-started/preview/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-configuring-seed-jobs-and-pipelines" href="/kubernetes-operator/docs/getting-started/v0.6.x/configuring-seed-jobs-and-pipelines/">Configuring Seed Jobs and Pipelines</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-aks" href="/kubernetes-operator/docs/getting-started/preview/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-configuring-backup-and-restore" href="/kubernetes-operator/docs/getting-started/v0.6.x/configuring-backup-and-restore/">Configuring backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-custom-backup-and-restore" href="/kubernetes-operator/docs/getting-started/preview/custom-backup-and-restore/">Custom Backup and Restore Providers</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-separate-namespaces" href="/kubernetes-operator/docs/getting-started/v0.6.x/separate-namespaces/">Separate namespaces for Jenkins and Operator</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-notifications" href="/kubernetes-operator/docs/getting-started/preview/notifications/">Notifications</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-custom-backup-and-restore" href="/kubernetes-operator/docs/getting-started/v0.6.x/custom-backup-and-restore/">Custom backup and restore providers</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-openshift" href="/kubernetes-operator/docs/getting-started/preview/openshift/">OpenShift</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-aks" href="/kubernetes-operator/docs/getting-started/v0.6.x/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-diagnostics" href="/kubernetes-operator/docs/getting-started/preview/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-ldap" href="/kubernetes-operator/docs/getting-started/v0.6.x/ldap/">LDAP</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-schema" href="/kubernetes-operator/docs/getting-started/preview/schema/">Schema</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-openshift" href="/kubernetes-operator/docs/getting-started/v0.6.x/openshift/">OpenShift</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-schema" href="/kubernetes-operator/docs/getting-started/v0.6.x/schema/">Schema</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/getting-started/v0.5.x/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.5.x</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-getting-started-v0-5-x">
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-deploy-jenkins" href="/kubernetes-operator/docs/getting-started/v0.5.x/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-configuration" href="/kubernetes-operator/docs/getting-started/v0.5.x/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-customization" href="/kubernetes-operator/docs/getting-started/v0.5.x/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-configure-backup-and-restore" href="/kubernetes-operator/docs/getting-started/v0.5.x/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-aks" href="/kubernetes-operator/docs/getting-started/v0.5.x/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-custom-backup-and-restore" href="/kubernetes-operator/docs/getting-started/v0.5.x/custom-backup-and-restore/">Custom Backup and Restore Providers</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-notifications" href="/kubernetes-operator/docs/getting-started/v0.5.x/notifications/">Notifications</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-openshift" href="/kubernetes-operator/docs/getting-started/v0.5.x/openshift/">OpenShift</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-diagnostics" href="/kubernetes-operator/docs/getting-started/v0.5.x/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-schema" href="/kubernetes-operator/docs/getting-started/v0.5.x/schema/">Schema</a>
</li>
@ -548,77 +597,6 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/getting-started/v0.1.x/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.1.x</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-getting-started-v0-1-x">
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-deploy-jenkins" href="/kubernetes-operator/docs/getting-started/v0.1.x/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-configuration" href="/kubernetes-operator/docs/getting-started/v0.1.x/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-customization" href="/kubernetes-operator/docs/getting-started/v0.1.x/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-aks" href="/kubernetes-operator/docs/getting-started/v0.1.x/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-configure-backup-and-restore" href="/kubernetes-operator/docs/getting-started/v0.1.x/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-diagnostics" href="/kubernetes-operator/docs/getting-started/v0.1.x/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-scheme" href="/kubernetes-operator/docs/getting-started/v0.1.x/scheme/">Scheme</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-migration-guide-v1alpha1-to-v1alpha2" href="/kubernetes-operator/docs/getting-started/v0.1.x/migration-guide-v1alpha1-to-v1alpha2/">Migration guide from v1alpha1 to v1alpha2</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/getting-started/v0.2.x/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.2.x</a>
@ -688,6 +666,77 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/getting-started/v0.1.x/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.1.x</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-getting-started-v0-1-x">
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-deploy-jenkins" href="/kubernetes-operator/docs/getting-started/v0.1.x/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-configuration" href="/kubernetes-operator/docs/getting-started/v0.1.x/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-customization" href="/kubernetes-operator/docs/getting-started/v0.1.x/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-aks" href="/kubernetes-operator/docs/getting-started/v0.1.x/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-configure-backup-and-restore" href="/kubernetes-operator/docs/getting-started/v0.1.x/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-diagnostics" href="/kubernetes-operator/docs/getting-started/v0.1.x/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-scheme" href="/kubernetes-operator/docs/getting-started/v0.1.x/scheme/">Scheme</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-migration-guide-v1alpha1-to-v1alpha2" href="/kubernetes-operator/docs/getting-started/v0.1.x/migration-guide-v1alpha1-to-v1alpha2/">Migration guide from v1alpha1 to v1alpha2</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
@ -727,17 +776,17 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/developer-guide/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Developer Guide</a>
<a href="/kubernetes-operator/docs/troubleshooting/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Troubleshooting</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-developer-guide">
<li class="collapse " id="kubernetes-operator-docs-troubleshooting">
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-developer-guide-tools" href="/kubernetes-operator/docs/developer-guide/tools/">Tools</a>
</li>
</ul>
</ul>
@ -750,10 +799,10 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/developer-guide/preview/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Developer Guide - Preview</a>
<a href="/kubernetes-operator/docs/developer-guide/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Developer Guide</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-developer-guide-preview">
<li class="collapse " id="kubernetes-operator-docs-developer-guide">
@ -763,6 +812,23 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/faq/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">FAQ</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-faq">
</li>
</ul>
</ul>
@ -790,10 +856,10 @@
<a href="https://github.com/jenkinsci/kubernetes-operator/edit/master/website/content/en/docs/Getting%20Started/latest/_index.md" target="_blank"><i class="fa fa-edit fa-fw"></i> Edit this page</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new?title=Latest%20%28v0.5.x%29" target="_blank"><i class="fab fa-github fa-fw"></i> Create documentation issue</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new?labels=documentation&amp;template=documentation.md&amp;title=Latest%20%28v0.7.x%29" target="_blank"><i class="fab fa-github fa-fw"></i> Create documentation issue</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new" target="_blank"><i class="fas fa-tasks fa-fw"></i> Create project issue</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new/choose" target="_blank"><i class="fas fa-tasks fa-fw"></i> Create project issue</a>
</div>
@ -834,7 +900,7 @@
<li class="breadcrumb-item active" aria-current="page">
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/">Latest (v0.5.x)</a>
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/">Latest (v0.7.x)</a>
</li>
</ol>
@ -842,14 +908,14 @@
<div class="td-content">
<h1>Latest (v0.5.x)</h1>
<div class="lead">How to work with jenkins-operator latest version</div>
<h1>Latest (v0.7.x)</h1>
<div class="lead">How to work with the latest, currently supported Jenkins Operator version.</div>
<div class="pageinfo pageinfo-primary">
<p>This document describes a getting started guide for <strong>Jenkins Operator</strong> <code>v0.5.x</code> and an additional configuration.</p>
<p>This document describes a getting started guide for <strong>Jenkins Operator</strong> <code>v0.7.x</code> and also additional configuration.</p>
</div>
@ -858,7 +924,8 @@
<p>Prepare your Kubernetes cluster and set up your <code>kubectl</code> access.</p>
<p>Once you have running Kubernetes cluster you can focus on installing <strong>Jenkins Operator</strong> according to the <a href="/kubernetes-operator/docs/installation/">Installation</a> guide.</p>
<p>Once you have a running Kubernetes cluster you can focus on installing <strong>Jenkins Operator</strong> according to the
<a href="/kubernetes-operator/docs/getting-started/latest/installing-the-operator/">Installation</a> guide.</p>
<div class="section-index">
@ -870,9 +937,39 @@
<div class="entry">
<h5>
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/deploy-jenkins/">Deploy Jenkins</a>
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/installing-the-operator/">Installing the Operator</a>
</h5>
<p>Deploy production ready Jenkins Operator manifest
<p>How to install Jenkins Operator
</p>
</div>
<div class="entry">
<h5>
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/deploying-jenkins/">Deploying Jenkins</a>
</h5>
<p>Deploy production ready Jenkins manifest
</p>
</div>
@ -896,27 +993,7 @@
<div class="entry">
<h5>
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/configuration/">Configuration</a>
</h5>
<p>How to configure Jenkins with Operator
</p>
</div>
<div class="entry">
<h5>
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/customization/">Customization</a>
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/customizing-jenkins/">Customizing Jenkins</a>
</h5>
<p>How to customize Jenkins
</p>
@ -936,9 +1013,29 @@
<div class="entry">
<h5>
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/configure-backup-and-restore/">Configure backup and restore</a>
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/configuring-seed-jobs-and-pipelines/">Configuring Seed Jobs and Pipelines</a>
</h5>
<p>How to configure Jenkins with Operator
</p>
</div>
<div class="entry">
<h5>
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/configuring-backup-and-restore/">Configuring backup and restore</a>
</h5>
<p>Prevent loss of job history
</p>
@ -948,6 +1045,38 @@
<div class="entry">
<h5>
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/separate-namespaces/">Separate namespaces for Jenkins and Operator</a>
</h5>
<p>How to install Jenkins and Jenkins Operator in separate namespaces
</p>
</div>
<div class="entry">
<h5>
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/custom-backup-and-restore/">Custom backup and restore providers</a>
</h5>
<p>Custom backup and restore provider
</p>
</div>
<div class="entry">
<h5>
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/aks/">AKS</a>
@ -962,69 +1091,11 @@
<div class="entry">
<h5>
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/custom-backup-and-restore/">Custom Backup and Restore Providers</a>
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/ldap/">LDAP</a>
</h5>
<p>Custom backup and restore provider
<p>Additional configuration for LDAP
</p>
</div>
<div class="entry">
<h5>
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/notifications/">Notifications</a>
</h5>
<p>How to setup operator notifications.
</p>
</div>
@ -1048,13 +1119,35 @@
<div class="entry">
<h5>
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/diagnostics/">Diagnostics</a>
</h5>
<p>How to deal with Jenkins Operator problems
</p>
</div>
@ -1090,6 +1183,10 @@
@ -1100,7 +1197,7 @@
<div class="text-muted mt-5 pt-3 border-top">Last modified January 18, 2021
<div class="text-muted mt-5 pt-3 border-top">Last modified December 8, 2021
</div>
</div>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -25,14 +25,14 @@
" />
<meta property="og:type" content="article" />
<meta property="og:url" content="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/openshift/" />
<meta property="article:published_time" content="2020-04-29T00:00:00+00:00" />
<meta property="article:modified_time" content="2020-04-29T00:00:00+00:00" /><meta property="og:site_name" content="Jenkins Operator" />
<meta property="article:published_time" content="2021-12-08T00:00:00+00:00" />
<meta property="article:modified_time" content="2021-12-08T00:00:00+00:00" /><meta property="og:site_name" content="Jenkins Operator" />
<meta itemprop="name" content="OpenShift">
<meta itemprop="description" content="Additional configuration for OpenShift
">
<meta itemprop="datePublished" content="2020-04-29T00:00:00&#43;00:00" />
<meta itemprop="dateModified" content="2020-04-29T00:00:00&#43;00:00" />
<meta itemprop="wordCount" content="256">
<meta itemprop="datePublished" content="2021-12-08T00:00:00&#43;00:00" />
<meta itemprop="dateModified" content="2021-12-08T00:00:00&#43;00:00" />
<meta itemprop="wordCount" content="7">
@ -125,52 +125,6 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/installation/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Installation</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-installation">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/installation/preview/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Installation - Preview</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-installation-preview">
</li>
</ul>
</ul>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/how-it-works/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">How it works</a>
@ -225,7 +179,7 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/getting-started/latest/" class="align-left pl-0 pr-2 active td-sidebar-link td-sidebar-link__section">Latest (v0.5.x)</a>
<a href="/kubernetes-operator/docs/getting-started/latest/" class="align-left pl-0 pr-2 active td-sidebar-link td-sidebar-link__section">Latest (v0.7.x)</a>
</li>
<ul>
<li class="collapse show" id="kubernetes-operator-docs-getting-started-latest">
@ -235,25 +189,43 @@
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-deploy-jenkins" href="/kubernetes-operator/docs/getting-started/latest/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-installing-the-operator" href="/kubernetes-operator/docs/getting-started/latest/installing-the-operator/">Installing the Operator</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-configuration" href="/kubernetes-operator/docs/getting-started/latest/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-deploying-jenkins" href="/kubernetes-operator/docs/getting-started/latest/deploying-jenkins/">Deploying Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-customization" href="/kubernetes-operator/docs/getting-started/latest/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-customizing-jenkins" href="/kubernetes-operator/docs/getting-started/latest/customizing-jenkins/">Customizing Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-configure-backup-and-restore" href="/kubernetes-operator/docs/getting-started/latest/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-configuring-seed-jobs-and-pipelines" href="/kubernetes-operator/docs/getting-started/latest/configuring-seed-jobs-and-pipelines/">Configuring Seed Jobs and Pipelines</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-configuring-backup-and-restore" href="/kubernetes-operator/docs/getting-started/latest/configuring-backup-and-restore/">Configuring backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-separate-namespaces" href="/kubernetes-operator/docs/getting-started/latest/separate-namespaces/">Separate namespaces for Jenkins and Operator</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-custom-backup-and-restore" href="/kubernetes-operator/docs/getting-started/latest/custom-backup-and-restore/">Custom backup and restore providers</a>
@ -265,13 +237,7 @@
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-custom-backup-and-restore" href="/kubernetes-operator/docs/getting-started/latest/custom-backup-and-restore/">Custom Backup and Restore Providers</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-notifications" href="/kubernetes-operator/docs/getting-started/latest/notifications/">Notifications</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-ldap" href="/kubernetes-operator/docs/getting-started/latest/ldap/">LDAP</a>
@ -283,12 +249,6 @@
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-diagnostics" href="/kubernetes-operator/docs/getting-started/latest/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-schema" href="/kubernetes-operator/docs/getting-started/latest/schema/">Schema</a>
@ -308,71 +268,160 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/getting-started/preview/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Preview</a>
<a href="/kubernetes-operator/docs/getting-started/v0.6.x/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.6.x</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-getting-started-preview">
<li class="collapse " id="kubernetes-operator-docs-getting-started-v0-6-x">
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-deploy-jenkins" href="/kubernetes-operator/docs/getting-started/preview/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-installing-the-operator" href="/kubernetes-operator/docs/getting-started/v0.6.x/installing-the-operator/">Installing the Operator</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-configuration" href="/kubernetes-operator/docs/getting-started/preview/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-deploying-jenkins" href="/kubernetes-operator/docs/getting-started/v0.6.x/deploying-jenkins/">Deploying Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-customization" href="/kubernetes-operator/docs/getting-started/preview/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-customizing-jenkins" href="/kubernetes-operator/docs/getting-started/v0.6.x/customizing-jenkins/">Customizing Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-configure-backup-and-restore" href="/kubernetes-operator/docs/getting-started/preview/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-configuring-seed-jobs-and-pipelines" href="/kubernetes-operator/docs/getting-started/v0.6.x/configuring-seed-jobs-and-pipelines/">Configuring Seed Jobs and Pipelines</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-aks" href="/kubernetes-operator/docs/getting-started/preview/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-configuring-backup-and-restore" href="/kubernetes-operator/docs/getting-started/v0.6.x/configuring-backup-and-restore/">Configuring backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-custom-backup-and-restore" href="/kubernetes-operator/docs/getting-started/preview/custom-backup-and-restore/">Custom Backup and Restore Providers</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-separate-namespaces" href="/kubernetes-operator/docs/getting-started/v0.6.x/separate-namespaces/">Separate namespaces for Jenkins and Operator</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-notifications" href="/kubernetes-operator/docs/getting-started/preview/notifications/">Notifications</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-custom-backup-and-restore" href="/kubernetes-operator/docs/getting-started/v0.6.x/custom-backup-and-restore/">Custom backup and restore providers</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-openshift" href="/kubernetes-operator/docs/getting-started/preview/openshift/">OpenShift</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-aks" href="/kubernetes-operator/docs/getting-started/v0.6.x/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-diagnostics" href="/kubernetes-operator/docs/getting-started/preview/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-ldap" href="/kubernetes-operator/docs/getting-started/v0.6.x/ldap/">LDAP</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-schema" href="/kubernetes-operator/docs/getting-started/preview/schema/">Schema</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-openshift" href="/kubernetes-operator/docs/getting-started/v0.6.x/openshift/">OpenShift</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-schema" href="/kubernetes-operator/docs/getting-started/v0.6.x/schema/">Schema</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/getting-started/v0.5.x/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.5.x</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-getting-started-v0-5-x">
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-deploy-jenkins" href="/kubernetes-operator/docs/getting-started/v0.5.x/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-configuration" href="/kubernetes-operator/docs/getting-started/v0.5.x/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-customization" href="/kubernetes-operator/docs/getting-started/v0.5.x/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-configure-backup-and-restore" href="/kubernetes-operator/docs/getting-started/v0.5.x/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-aks" href="/kubernetes-operator/docs/getting-started/v0.5.x/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-custom-backup-and-restore" href="/kubernetes-operator/docs/getting-started/v0.5.x/custom-backup-and-restore/">Custom Backup and Restore Providers</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-notifications" href="/kubernetes-operator/docs/getting-started/v0.5.x/notifications/">Notifications</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-openshift" href="/kubernetes-operator/docs/getting-started/v0.5.x/openshift/">OpenShift</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-diagnostics" href="/kubernetes-operator/docs/getting-started/v0.5.x/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-schema" href="/kubernetes-operator/docs/getting-started/v0.5.x/schema/">Schema</a>
</li>
@ -555,77 +604,6 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/getting-started/v0.1.x/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.1.x</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-getting-started-v0-1-x">
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-deploy-jenkins" href="/kubernetes-operator/docs/getting-started/v0.1.x/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-configuration" href="/kubernetes-operator/docs/getting-started/v0.1.x/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-customization" href="/kubernetes-operator/docs/getting-started/v0.1.x/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-aks" href="/kubernetes-operator/docs/getting-started/v0.1.x/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-configure-backup-and-restore" href="/kubernetes-operator/docs/getting-started/v0.1.x/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-diagnostics" href="/kubernetes-operator/docs/getting-started/v0.1.x/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-scheme" href="/kubernetes-operator/docs/getting-started/v0.1.x/scheme/">Scheme</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-migration-guide-v1alpha1-to-v1alpha2" href="/kubernetes-operator/docs/getting-started/v0.1.x/migration-guide-v1alpha1-to-v1alpha2/">Migration guide from v1alpha1 to v1alpha2</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/getting-started/v0.2.x/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.2.x</a>
@ -695,6 +673,77 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/getting-started/v0.1.x/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.1.x</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-getting-started-v0-1-x">
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-deploy-jenkins" href="/kubernetes-operator/docs/getting-started/v0.1.x/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-configuration" href="/kubernetes-operator/docs/getting-started/v0.1.x/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-customization" href="/kubernetes-operator/docs/getting-started/v0.1.x/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-aks" href="/kubernetes-operator/docs/getting-started/v0.1.x/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-configure-backup-and-restore" href="/kubernetes-operator/docs/getting-started/v0.1.x/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-diagnostics" href="/kubernetes-operator/docs/getting-started/v0.1.x/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-scheme" href="/kubernetes-operator/docs/getting-started/v0.1.x/scheme/">Scheme</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-migration-guide-v1alpha1-to-v1alpha2" href="/kubernetes-operator/docs/getting-started/v0.1.x/migration-guide-v1alpha1-to-v1alpha2/">Migration guide from v1alpha1 to v1alpha2</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
@ -734,17 +783,17 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/developer-guide/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Developer Guide</a>
<a href="/kubernetes-operator/docs/troubleshooting/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Troubleshooting</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-developer-guide">
<li class="collapse " id="kubernetes-operator-docs-troubleshooting">
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-developer-guide-tools" href="/kubernetes-operator/docs/developer-guide/tools/">Tools</a>
</li>
</ul>
</ul>
@ -757,10 +806,10 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/developer-guide/preview/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Developer Guide - Preview</a>
<a href="/kubernetes-operator/docs/developer-guide/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Developer Guide</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-developer-guide-preview">
<li class="collapse " id="kubernetes-operator-docs-developer-guide">
@ -770,6 +819,23 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/faq/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">FAQ</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-faq">
</li>
</ul>
</ul>
@ -797,10 +863,10 @@
<a href="https://github.com/jenkinsci/kubernetes-operator/edit/master/website/content/en/docs/Getting%20Started/latest/openshift.md" target="_blank"><i class="fa fa-edit fa-fw"></i> Edit this page</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new?title=OpenShift" target="_blank"><i class="fab fa-github fa-fw"></i> Create documentation issue</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new?labels=documentation&amp;template=documentation.md&amp;title=OpenShift" target="_blank"><i class="fab fa-github fa-fw"></i> Create documentation issue</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new" target="_blank"><i class="fas fa-tasks fa-fw"></i> Create project issue</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new/choose" target="_blank"><i class="fas fa-tasks fa-fw"></i> Create project issue</a>
</div>
@ -809,20 +875,6 @@
<nav id="TableOfContents">
<ul>
<li>
<ul>
<li><a href="#securitycontext">SecurityContext</a></li>
<li><a href="#openshift-jenkins-image">OpenShift Jenkins image</a>
<ul>
<li><a href="#sample-openshift-cr">Sample OpenShift CR</a></li>
<li><a href="#openshift-oauth-integration">OpenShift OAuth integration</a></li>
</ul></li>
</ul></li>
</ul>
</nav>
</div>
@ -858,7 +910,7 @@
<li class="breadcrumb-item" >
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/">Latest (v0.5.x)</a>
<a href="https://jenkinsci.github.io/kubernetes-operator/docs/getting-started/latest/">Latest (v0.7.x)</a>
</li>
@ -877,98 +929,11 @@
<div class="lead">Additional configuration for OpenShift</div>
<h2 id="securitycontext">SecurityContext</h2>
<p>OpenShift enforces Security Constraints Context (scc) when deploying an image.
By default, container images run in restricted scc which prevents from setting
a fixed user id to run with. You need to have ensure that you do not provide a
securityContext with a runAsUser and that your image does not use a hardcoded user.</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">securityContext<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>{}</code></pre></div>
<h2 id="openshift-jenkins-image">OpenShift Jenkins image</h2>
<p>OpenShift provides a pre-configured Jenkins image containing 3 openshift plugins for
jenkins (openshift-login-plugin, openshift-sync-plugin and openshift-client-plugin)
which allows better jenkins integration with kubernetes and OpenShift.</p>
<p>The OpenShift Jenkins image requires additional configuration to be fully enabled.</p>
<h3 id="sample-openshift-cr">Sample OpenShift CR</h3>
<p>The following Custom Resource can be used to create a Jenkins instance using the<br />
OpenShift Jenkins image and sets values for:
- `image: &lsquo;quay.io/openshift/origin-jenkins:latest&rsquo; : This is the OpenShift Jenkins image.</p>
<ul>
<li><p>serviceAccount: to allow oauth authentication to work, the service account needs
a specific annotation pointing to the route exposing the jenkins service. Here,
the route is named <code>jenkins-route</code></p></li>
<li><p><code>OPENSHIFT_ENABLE_OAUTH</code> environment variable for the master container is set to true.</p></li>
</ul>
<p>Here is a complete Jenkins CR allowing the deployment of the Jenkins OpenShift image.</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>annotations<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>jenkins.io/openshift-mode<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#39;true&#39;</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<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>serviceAccount<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>annotations<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>serviceaccounts.openshift.io/oauth-redirectreference.jenkins<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#39;{&#34;kind&#34;:&#34;OAuthRedirectReference&#34;,&#34;apiVersion&#34;:&#34;v1&#34;,&#34;reference&#34;:{&#34;kind&#34;:&#34;Route&#34;,&#34;name&#34;:&#34;jenkins-route&#34;}}&#39;</span><span style="color:#f8f8f8;text-decoration:underline">
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>master<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>containers<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>jenkins-master<span style="color:#f8f8f8;text-decoration:underline">
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>image<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#39;quay.io/openshift/origin-jenkins:latest&#39;</span><span style="color:#f8f8f8;text-decoration:underline">
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>command<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>/usr/bin/go-init<span style="color:#f8f8f8;text-decoration:underline">
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#39;-main&#39;</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>/usr/libexec/s2i/run<span style="color:#f8f8f8;text-decoration:underline">
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>env<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-<span style="color:#f8f8f8;text-decoration:underline"> </span>name<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>OPENSHIFT_ENABLE_OAUTH<span style="color:#f8f8f8;text-decoration:underline">
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>value<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#39;true&#39;</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>OPENSHIFT_ENABLE_REDIRECT_PROMPT<span style="color:#f8f8f8;text-decoration:underline">
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>value<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#39;true&#39;</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>DISABLE_ADMINISTRATIVE_MONITORS<span style="color:#f8f8f8;text-decoration:underline">
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>value<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#39;false&#39;</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_MASTER<span style="color:#f8f8f8;text-decoration:underline">
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>value<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#39;https://kubernetes.default:443&#39;</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_TRUST_CERTIFICATES<span style="color:#f8f8f8;text-decoration:underline">
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>value<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#39;true&#39;</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_SERVICE_NAME<span style="color:#f8f8f8;text-decoration:underline">
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>value<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>jenkins-operator-http-jenkins<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>JNLP_SERVICE_NAME<span style="color:#f8f8f8;text-decoration:underline">
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>value<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>jenkins-operator-slave-jenkins<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_UC_INSECURE<span style="color:#f8f8f8;text-decoration:underline">
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>value<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#39;false&#39;</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_HOME<span style="color:#f8f8f8;text-decoration:underline">
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>value<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>/var/lib/jenkins<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>JAVA_OPTS<span style="color:#f8f8f8;text-decoration:underline">
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>value<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>&gt;<span style="color:#8f5902;font-style:italic">-
</span><span style="color:#8f5902;font-style:italic"> </span><span style="color:#8f5902;font-style:italic"> </span><span style="color:#8f5902;font-style:italic">-XX:+UnlockExperimentalVMOptions -XX:+UnlockExperimentalVMOptions</span><span style="color:#f8f8f8;text-decoration:underline">
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-XX<span style="color:#000;font-weight:bold">:</span>+UseCGroupMemoryLimitForHeap<span style="color:#f8f8f8;text-decoration:underline"> </span>-XX<span style="color:#000;font-weight:bold">:</span>MaxRAMFraction=<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>-Djenkins.install.runSetupWizard=<span style="color:#204a87;font-weight:bold">false</span><span style="color:#f8f8f8;text-decoration:underline"> </span>-Djava.awt.headless=<span style="color:#204a87;font-weight:bold">true</span><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>service<span style="color:#000;font-weight:bold">:</span><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><span style="color:#0000cf;font-weight:bold">8080</span><span style="color:#f8f8f8;text-decoration:underline">
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>type<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>ClusterIP<span style="color:#f8f8f8;text-decoration:underline">
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>slaveService<span style="color:#000;font-weight:bold">:</span><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><span style="color:#0000cf;font-weight:bold">50000</span><span style="color:#f8f8f8;text-decoration:underline">
</span><span style="color:#f8f8f8;text-decoration:underline"> </span>type<span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>ClusterIP</code></pre></div>
<h3 id="openshift-oauth-integration">OpenShift OAuth integration</h3>
<p>The creation of a Route is required for the integraiton of Jenkins with
OpenShift oauth authentication. By default, the jenkins http service is named
<code>jenkins-operator-http-${jenkins-cr-name}</code></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">oc create route edge jenkins-route --service<span style="color:#ce5c00;font-weight:bold">=</span>jenkins-operator-http-jenkins</code></pre></div>
<p>Note: the route name (jenkins-route) must match the pointed route on the serviceaccount annotation.</p>
<p>After the creation of the Route. It can be used to navigate to the Jenkins Login Page and login with your Openshift Credentials.</p>
<h2 id="release-0-7-0-is-not-compatible-with-openshift">Release 0.7.0 is not compatible with OpenShift.</h2>
<div class="text-muted mt-5 pt-3 border-top">Last modified April 29, 2020
<div class="text-muted mt-5 pt-3 border-top">Last modified December 8, 2021
</div>
</div>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -125,52 +125,6 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/installation/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Installation</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-installation">
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/installation/preview/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Installation - Preview</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-installation-preview">
</li>
</ul>
</ul>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/how-it-works/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">How it works</a>
@ -225,7 +179,7 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/getting-started/latest/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Latest (v0.5.x)</a>
<a href="/kubernetes-operator/docs/getting-started/latest/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Latest (v0.7.x)</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-getting-started-latest">
@ -235,25 +189,43 @@
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-deploy-jenkins" href="/kubernetes-operator/docs/getting-started/latest/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-installing-the-operator" href="/kubernetes-operator/docs/getting-started/latest/installing-the-operator/">Installing the Operator</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-configuration" href="/kubernetes-operator/docs/getting-started/latest/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-deploying-jenkins" href="/kubernetes-operator/docs/getting-started/latest/deploying-jenkins/">Deploying Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-customization" href="/kubernetes-operator/docs/getting-started/latest/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-customizing-jenkins" href="/kubernetes-operator/docs/getting-started/latest/customizing-jenkins/">Customizing Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-configure-backup-and-restore" href="/kubernetes-operator/docs/getting-started/latest/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-configuring-seed-jobs-and-pipelines" href="/kubernetes-operator/docs/getting-started/latest/configuring-seed-jobs-and-pipelines/">Configuring Seed Jobs and Pipelines</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-configuring-backup-and-restore" href="/kubernetes-operator/docs/getting-started/latest/configuring-backup-and-restore/">Configuring backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-separate-namespaces" href="/kubernetes-operator/docs/getting-started/latest/separate-namespaces/">Separate namespaces for Jenkins and Operator</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-custom-backup-and-restore" href="/kubernetes-operator/docs/getting-started/latest/custom-backup-and-restore/">Custom backup and restore providers</a>
@ -265,13 +237,7 @@
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-custom-backup-and-restore" href="/kubernetes-operator/docs/getting-started/latest/custom-backup-and-restore/">Custom Backup and Restore Providers</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-notifications" href="/kubernetes-operator/docs/getting-started/latest/notifications/">Notifications</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-ldap" href="/kubernetes-operator/docs/getting-started/latest/ldap/">LDAP</a>
@ -283,12 +249,6 @@
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-diagnostics" href="/kubernetes-operator/docs/getting-started/latest/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-latest-schema" href="/kubernetes-operator/docs/getting-started/latest/schema/">Schema</a>
@ -308,71 +268,160 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/getting-started/preview/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Preview</a>
<a href="/kubernetes-operator/docs/getting-started/v0.6.x/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.6.x</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-getting-started-preview">
<li class="collapse " id="kubernetes-operator-docs-getting-started-v0-6-x">
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-deploy-jenkins" href="/kubernetes-operator/docs/getting-started/preview/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-installing-the-operator" href="/kubernetes-operator/docs/getting-started/v0.6.x/installing-the-operator/">Installing the Operator</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-configuration" href="/kubernetes-operator/docs/getting-started/preview/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-deploying-jenkins" href="/kubernetes-operator/docs/getting-started/v0.6.x/deploying-jenkins/">Deploying Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-customization" href="/kubernetes-operator/docs/getting-started/preview/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-customizing-jenkins" href="/kubernetes-operator/docs/getting-started/v0.6.x/customizing-jenkins/">Customizing Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-configure-backup-and-restore" href="/kubernetes-operator/docs/getting-started/preview/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-configuring-seed-jobs-and-pipelines" href="/kubernetes-operator/docs/getting-started/v0.6.x/configuring-seed-jobs-and-pipelines/">Configuring Seed Jobs and Pipelines</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-aks" href="/kubernetes-operator/docs/getting-started/preview/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-configuring-backup-and-restore" href="/kubernetes-operator/docs/getting-started/v0.6.x/configuring-backup-and-restore/">Configuring backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-custom-backup-and-restore" href="/kubernetes-operator/docs/getting-started/preview/custom-backup-and-restore/">Custom Backup and Restore Providers</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-separate-namespaces" href="/kubernetes-operator/docs/getting-started/v0.6.x/separate-namespaces/">Separate namespaces for Jenkins and Operator</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-notifications" href="/kubernetes-operator/docs/getting-started/preview/notifications/">Notifications</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-custom-backup-and-restore" href="/kubernetes-operator/docs/getting-started/v0.6.x/custom-backup-and-restore/">Custom backup and restore providers</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-openshift" href="/kubernetes-operator/docs/getting-started/preview/openshift/">OpenShift</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-aks" href="/kubernetes-operator/docs/getting-started/v0.6.x/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-diagnostics" href="/kubernetes-operator/docs/getting-started/preview/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-ldap" href="/kubernetes-operator/docs/getting-started/v0.6.x/ldap/">LDAP</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-preview-schema" href="/kubernetes-operator/docs/getting-started/preview/schema/">Schema</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-openshift" href="/kubernetes-operator/docs/getting-started/v0.6.x/openshift/">OpenShift</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-6-x-schema" href="/kubernetes-operator/docs/getting-started/v0.6.x/schema/">Schema</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/getting-started/v0.5.x/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.5.x</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-getting-started-v0-5-x">
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-deploy-jenkins" href="/kubernetes-operator/docs/getting-started/v0.5.x/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-configuration" href="/kubernetes-operator/docs/getting-started/v0.5.x/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-customization" href="/kubernetes-operator/docs/getting-started/v0.5.x/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-configure-backup-and-restore" href="/kubernetes-operator/docs/getting-started/v0.5.x/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-aks" href="/kubernetes-operator/docs/getting-started/v0.5.x/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-custom-backup-and-restore" href="/kubernetes-operator/docs/getting-started/v0.5.x/custom-backup-and-restore/">Custom Backup and Restore Providers</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-notifications" href="/kubernetes-operator/docs/getting-started/v0.5.x/notifications/">Notifications</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-openshift" href="/kubernetes-operator/docs/getting-started/v0.5.x/openshift/">OpenShift</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-diagnostics" href="/kubernetes-operator/docs/getting-started/v0.5.x/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-5-x-schema" href="/kubernetes-operator/docs/getting-started/v0.5.x/schema/">Schema</a>
</li>
@ -555,77 +604,6 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/getting-started/v0.1.x/" class="align-left pl-0 pr-2 active td-sidebar-link td-sidebar-link__section">v0.1.x</a>
</li>
<ul>
<li class="collapse show" id="kubernetes-operator-docs-getting-started-v0-1-x">
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-deploy-jenkins" href="/kubernetes-operator/docs/getting-started/v0.1.x/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-configuration" href="/kubernetes-operator/docs/getting-started/v0.1.x/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-customization" href="/kubernetes-operator/docs/getting-started/v0.1.x/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page active" id="m-kubernetes-operator-docs-getting-started-v0-1-x-aks" href="/kubernetes-operator/docs/getting-started/v0.1.x/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-configure-backup-and-restore" href="/kubernetes-operator/docs/getting-started/v0.1.x/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-diagnostics" href="/kubernetes-operator/docs/getting-started/v0.1.x/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-scheme" href="/kubernetes-operator/docs/getting-started/v0.1.x/scheme/">Scheme</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-migration-guide-v1alpha1-to-v1alpha2" href="/kubernetes-operator/docs/getting-started/v0.1.x/migration-guide-v1alpha1-to-v1alpha2/">Migration guide from v1alpha1 to v1alpha2</a>
</li>
</ul>
</ul>
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/getting-started/v0.2.x/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">v0.2.x</a>
@ -695,6 +673,77 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/getting-started/v0.1.x/" class="align-left pl-0 pr-2 active td-sidebar-link td-sidebar-link__section">v0.1.x</a>
</li>
<ul>
<li class="collapse show" id="kubernetes-operator-docs-getting-started-v0-1-x">
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-deploy-jenkins" href="/kubernetes-operator/docs/getting-started/v0.1.x/deploy-jenkins/">Deploy Jenkins</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-configuration" href="/kubernetes-operator/docs/getting-started/v0.1.x/configuration/">Configuration</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-customization" href="/kubernetes-operator/docs/getting-started/v0.1.x/customization/">Customization</a>
<a class="td-sidebar-link td-sidebar-link__page active" id="m-kubernetes-operator-docs-getting-started-v0-1-x-aks" href="/kubernetes-operator/docs/getting-started/v0.1.x/aks/">AKS</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-configure-backup-and-restore" href="/kubernetes-operator/docs/getting-started/v0.1.x/configure-backup-and-restore/">Configure backup and restore</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-diagnostics" href="/kubernetes-operator/docs/getting-started/v0.1.x/diagnostics/">Diagnostics</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-scheme" href="/kubernetes-operator/docs/getting-started/v0.1.x/scheme/">Scheme</a>
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-getting-started-v0-1-x-migration-guide-v1alpha1-to-v1alpha2" href="/kubernetes-operator/docs/getting-started/v0.1.x/migration-guide-v1alpha1-to-v1alpha2/">Migration guide from v1alpha1 to v1alpha2</a>
</li>
</ul>
</ul>
</li>
</ul>
</ul>
@ -734,17 +783,17 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/developer-guide/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Developer Guide</a>
<a href="/kubernetes-operator/docs/troubleshooting/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Troubleshooting</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-developer-guide">
<li class="collapse " id="kubernetes-operator-docs-troubleshooting">
<a class="td-sidebar-link td-sidebar-link__page " id="m-kubernetes-operator-docs-developer-guide-tools" href="/kubernetes-operator/docs/developer-guide/tools/">Tools</a>
</li>
</ul>
</ul>
@ -757,10 +806,10 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/developer-guide/preview/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Developer Guide - Preview</a>
<a href="/kubernetes-operator/docs/developer-guide/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">Developer Guide</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-developer-guide-preview">
<li class="collapse " id="kubernetes-operator-docs-developer-guide">
@ -770,6 +819,23 @@
<ul class="td-sidebar-nav__section pr-md-3">
<li class="td-sidebar-nav__section-title">
<a href="/kubernetes-operator/docs/faq/" class="align-left pl-0 pr-2 collapsed td-sidebar-link td-sidebar-link__section">FAQ</a>
</li>
<ul>
<li class="collapse " id="kubernetes-operator-docs-faq">
</li>
</ul>
</ul>
@ -797,10 +863,10 @@
<a href="https://github.com/jenkinsci/kubernetes-operator/edit/master/website/content/en/docs/Getting%20Started/v0.1.x/aks.md" target="_blank"><i class="fa fa-edit fa-fw"></i> Edit this page</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new?title=AKS" target="_blank"><i class="fab fa-github fa-fw"></i> Create documentation issue</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new?labels=documentation&amp;template=documentation.md&amp;title=AKS" target="_blank"><i class="fab fa-github fa-fw"></i> Create documentation issue</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new" target="_blank"><i class="fas fa-tasks fa-fw"></i> Create project issue</a>
<a href="https://github.com/jenkinsci/kubernetes-operator/issues/new/choose" target="_blank"><i class="fas fa-tasks fa-fw"></i> Create project issue</a>
</div>

Some files were not shown because too many files have changed in this diff Show More