Merge remote-tracking branch 'origin/master' into version-9.0

This commit is contained in:
brokenpip3 2024-02-24 23:59:16 +01:00
commit 75b8a3a678
No known key found for this signature in database
GPG Key ID: 1D9BDC803797B4B6
15 changed files with 109 additions and 159 deletions

View File

@ -19,10 +19,6 @@ on:
- 'backup/**' - 'backup/**'
- '*.md' - '*.md'
env:
MINIKUBE_CPUS_NUMBER: 2
MINIKUBE_MEMORY_AMOUNT: 6144
jobs: jobs:
run-tests: run-tests:
if: github.event.pull_request.draft == false if: github.event.pull_request.draft == false
@ -35,11 +31,9 @@ jobs:
- name: Set up env vars - name: Set up env vars
run: | run: |
echo "GO111MODULE=on" >> $GITHUB_ENV 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 | tr -d '\n' | tr -d '"')" >> $GITHUB_ENV echo "GO_VERSION=v$(sed -n 's/GO_VERSION=//p' config.base.env | tr -d '\n' | tr -d '"')" >> $GITHUB_ENV
echo "HELM_VERSION=v$(sed -n 's/HELM_VERSION=//p' config.base.env | tr -d '\n' | tr -d '"')" >> $GITHUB_ENV echo "HELM_VERSION=v$(sed -n 's/HELM_VERSION=//p' config.base.env | tr -d '\n' | tr -d '"')" >> $GITHUB_ENV
echo "KIND_CLUSTER_NAME=$(sed -n 's/KIND_CLUSTER_NAME=//p' config.base.env | tr -d '\n' | tr -d '"')" >> $GITHUB_ENV
echo "GOPATH=/home/runner/go" >> $GITHUB_ENV echo "GOPATH=/home/runner/go" >> $GITHUB_ENV
- name: Prepare go environment - name: Prepare go environment
@ -53,16 +47,21 @@ jobs:
- name: Verify code formatting - name: Verify code formatting
run: make verify run: make verify
- name: Kind setup
uses: helm/kind-action@v1.9.0
with:
cluster_name: ${{env.KIND_CLUSTER_NAME}}
config: kind-cluster.yaml
- name: Prepare environment for e2e - name: Prepare environment for e2e
run: | run: |
sudo apt-get update sudo apt-get update
sudo apt-get install socat sudo apt-get install socat
sudo mkdir -p $HOME/.kube $HOME/.minikube sudo mkdir -p $HOME/.kube
sudo chown -R $USER $HOME/.kube $HOME/.minikube sudo chown -R $USER $HOME/.kube
make minikube-start \
MINIKUBE_DRIVER='docker' \ - name: Jenkins Operator - e2e - list tests
MEMORY_AMOUNT=${{ env.MINIKUBE_MEMORY_AMOUNT }} \ run: make e2e E2E_TEST_ARGS='-ginkgo.v -ginkgo.dryRun'
CPUS_NUMBER=${{ env.MINIKUBE_CPUS_NUMBER }}
- name: Jenkins Operator - e2e - name: Jenkins Operator - e2e
run: make e2e E2E_TEST_ARGS='-ginkgo.v' run: make e2e E2E_TEST_ARGS='-ginkgo.v'
@ -75,4 +74,3 @@ jobs:
randomns=$(kubectl get ns| grep -i 'ns[0-9]\+' |cut -d ' ' -f 1) randomns=$(kubectl get ns| grep -i 'ns[0-9]\+' |cut -d ' ' -f 1)
kubectl get pods -n ${randomns} kubectl get pods -n ${randomns}
kubectl get events -n ${randomns} kubectl get events -n ${randomns}
kubectl logs -l app=jenkins-operator -n ${randomns}

View File

@ -19,10 +19,6 @@ on:
- 'backup/**' - 'backup/**'
- '*.md' - '*.md'
env:
MINIKUBE_CPUS_NUMBER: 2
MINIKUBE_MEMORY_AMOUNT: 6144
jobs: jobs:
run-tests: run-tests:
if: github.event.pull_request.draft == false if: github.event.pull_request.draft == false
@ -35,11 +31,9 @@ jobs:
- name: Set up env vars - name: Set up env vars
run: | run: |
echo "GO111MODULE=on" >> $GITHUB_ENV 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 | tr -d '\n' | tr -d '"')" >> $GITHUB_ENV echo "GO_VERSION=v$(sed -n 's/GO_VERSION=//p' config.base.env | tr -d '\n' | tr -d '"')" >> $GITHUB_ENV
echo "HELM_VERSION=v$(sed -n 's/HELM_VERSION=//p' config.base.env | tr -d '\n' | tr -d '"')" >> $GITHUB_ENV echo "HELM_VERSION=v$(sed -n 's/HELM_VERSION=//p' config.base.env | tr -d '\n' | tr -d '"')" >> $GITHUB_ENV
echo "KIND_CLUSTER_NAME=$(sed -n 's/KIND_CLUSTER_NAME=//p' config.base.env | tr -d '\n' | tr -d '"')" >> $GITHUB_ENV
echo "GOPATH=/home/runner/go" >> $GITHUB_ENV echo "GOPATH=/home/runner/go" >> $GITHUB_ENV
- name: Prepare go environment - name: Prepare go environment
@ -53,20 +47,21 @@ jobs:
- name: Verify code formatting - name: Verify code formatting
run: make verify run: make verify
- name: Kind setup
uses: helm/kind-action@v1.9.0
with:
cluster_name: ${{env.KIND_CLUSTER_NAME}}
config: kind-cluster.yaml
- name: Prepare environment for e2e - name: Prepare environment for e2e
run: | run: |
sudo apt-get update sudo apt-get update
sudo apt-get install socat sudo apt-get install socat
sudo mkdir -p $HOME/.kube $HOME/.minikube sudo mkdir -p $HOME/.kube
sudo chown -R $USER $HOME/.kube $HOME/.minikube sudo chown -R $USER $HOME/.kube
make minikube-start \
MINIKUBE_DRIVER='docker' \
MEMORY_AMOUNT=${{ env.MINIKUBE_MEMORY_AMOUNT }} \
CPUS_NUMBER=${{ env.MINIKUBE_CPUS_NUMBER }}
- name: Jenkins Operator - Helm Chart tests - name: Jenkins Operator - Helm Chart tests
run: | run: |
git reset --hard git reset --hard
make helm-lint make helm-lint
eval $(bin/minikube docker-env)
make helm-e2e E2E_TEST_ARGS='-ginkgo.v' make helm-e2e E2E_TEST_ARGS='-ginkgo.v'

View File

@ -8,10 +8,6 @@ on:
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!" 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 required: false
env:
MINIKUBE_CPUS_NUMBER: 2
MINIKUBE_MEMORY_AMOUNT: 6144
jobs: jobs:
publish-image: publish-image:
name: Publish nightly snapshot name: Publish nightly snapshot
@ -23,9 +19,6 @@ jobs:
- name: Prep - Set up env vars - name: Prep - Set up env vars
run: | run: |
echo "GO111MODULE=on" >> $GITHUB_ENV 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 | tr -d '\n' | tr -d '"')" >> $GITHUB_ENV echo "GO_VERSION=v$(sed -n 's/GO_VERSION=//p' config.base.env | tr -d '\n' | tr -d '"')" >> $GITHUB_ENV
echo "HELM_VERSION=v$(sed -n 's/HELM_VERSION=//p' config.base.env | tr -d '\n' | tr -d '"')" >> $GITHUB_ENV echo "HELM_VERSION=v$(sed -n 's/HELM_VERSION=//p' config.base.env | tr -d '\n' | tr -d '"')" >> $GITHUB_ENV
echo "KIND_CLUSTER_NAME=$(sed -n 's/KIND_CLUSTER_NAME=//p' config.base.env | tr -d '\n' | tr -d '"')" >> $GITHUB_ENV echo "KIND_CLUSTER_NAME=$(sed -n 's/KIND_CLUSTER_NAME=//p' config.base.env | tr -d '\n' | tr -d '"')" >> $GITHUB_ENV
@ -56,12 +49,15 @@ jobs:
run: | run: |
sudo apt-get update sudo apt-get update
sudo apt-get install socat sudo apt-get install socat
sudo mkdir -p $HOME/.kube $HOME/.minikube sudo mkdir -p $HOME/.kube
sudo chown -R $USER $HOME/.kube $HOME/.minikube sudo chown -R $USER $HOME/.kube
make minikube-start \
MINIKUBE_DRIVER='docker' \ - name: Prep - Kind setup
MEMORY_AMOUNT=${{ env.MINIKUBE_MEMORY_AMOUNT }} \ if: ${{ github.event.inputs.skipTests != 'true' }}
CPUS_NUMBER=${{ env.MINIKUBE_CPUS_NUMBER }} uses: helm/kind-action@v1.9.0
with:
cluster_name: ${{env.KIND_CLUSTER_NAME}}
config: kind-cluster.yaml
- name: Test - e2e - name: Test - e2e
if: ${{ github.event.inputs.skipTests != 'true' }} if: ${{ github.event.inputs.skipTests != 'true' }}
@ -72,20 +68,8 @@ jobs:
run: | run: |
git reset --hard git reset --hard
make helm-lint make helm-lint
eval $(bin/minikube docker-env)
make helm-e2e E2E_TEST_ARGS='-ginkgo.v' make helm-e2e E2E_TEST_ARGS='-ginkgo.v'
- name: Prep - Destroy minikube
if: ${{ github.event.inputs.skipTests != 'true' }}
run: |
make minikube-destroy
- name: Prep - Kind setup
if: ${{ github.event.inputs.skipTests != 'true' }}
uses: helm/kind-action@v1.9.0
with:
cluster_name: ${{env.KIND_CLUSTER_NAME}}
- name: Test - bats - name: Test - bats
if: ${{ github.event.inputs.skipTests != 'true' }} if: ${{ github.event.inputs.skipTests != 'true' }}
run: make bats-tests run: make bats-tests

105
Makefile
View File

@ -94,13 +94,46 @@ e2e: deepcopy-gen manifests ## Runs e2e tests, you can use EXTRA_ARGS
RUNNING_TESTS=1 go test -parallel=1 "./test/e2e/" -ginkgo.v -tags "$(BUILDTAGS) cgo" -v -timeout 60m -run "$(E2E_TEST_SELECTOR)" \ RUNNING_TESTS=1 go test -parallel=1 "./test/e2e/" -ginkgo.v -tags "$(BUILDTAGS) cgo" -v -timeout 60m -run "$(E2E_TEST_SELECTOR)" \
-jenkins-api-hostname=$(JENKINS_API_HOSTNAME) -jenkins-api-port=$(JENKINS_API_PORT) -jenkins-api-use-nodeport=$(JENKINS_API_USE_NODEPORT) $(E2E_TEST_ARGS) -jenkins-api-hostname=$(JENKINS_API_HOSTNAME) -jenkins-api-port=$(JENKINS_API_PORT) -jenkins-api-use-nodeport=$(JENKINS_API_USE_NODEPORT) $(E2E_TEST_ARGS)
## HELM Section
.PHONY: helm
HAS_HELM := $(shell command -v helm 2> /dev/null)
helm: ## Download helm if it's not present, otherwise symlink
@echo "+ $@"
ifeq ($(strip $(HAS_HELM)),)
mkdir -p $(PROJECT_DIR)/bin
curl -Lo $(PROJECT_DIR)/bin/helm.tar.gz https://get.helm.sh/helm-v$(HELM_VERSION)-$(PLATFORM)-amd64.tar.gz && tar xzfv $(PROJECT_DIR)/bin/helm.tar.gz -C $(PROJECT_DIR)/bin
mv $(PROJECT_DIR)/bin/$(PLATFORM)-amd64/helm $(PROJECT_DIR)/bin/helm
rm -rf $(PROJECT_DIR)/bin/$(PLATFORM)-amd64
rm -rf $(PROJECT_DIR)/bin/helm.tar.gz
else
mkdir -p $(PROJECT_DIR)/bin
test -L $(PROJECT_DIR)/bin/helm || ln -sf $(shell command -v helm) $(PROJECT_DIR)/bin/helm
endif
.PHONY: helm-lint
helm-lint: helm
bin/helm lint chart/jenkins-operator
.PHONY: helm-release-latest
helm-release-latest: helm
mkdir -p /tmp/jenkins-operator-charts
mv chart/jenkins-operator/*.tgz /tmp/jenkins-operator-charts
cd chart && ../bin/helm package jenkins-operator
mv chart/jenkins-operator-*.tgz chart/jenkins-operator/
bin/helm repo index chart/ --url https://raw.githubusercontent.com/jenkinsci/kubernetes-operator/master/chart/ --merge chart/index.yaml
mv /tmp/jenkins-operator-charts/*.tgz chart/jenkins-operator/
.PHONY: helm-e2e .PHONY: helm-e2e
IMAGE_NAME := quay.io/$(QUAY_ORGANIZATION)/$(QUAY_REGISTRY):$(GITCOMMIT)-amd64 IMAGE_NAME := quay.io/$(QUAY_ORGANIZATION)/$(QUAY_REGISTRY):$(GITCOMMIT)-amd64
helm-e2e: helm container-runtime-build-amd64 ## Runs helm e2e tests, you can use EXTRA_ARGS helm-e2e: helm container-runtime-build-amd64 ## Runs helm e2e tests, you can use EXTRA_ARGS
kind load docker-image ${IMAGE_NAME} --name $(KIND_CLUSTER_NAME)
@echo "+ $@" @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) 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)
## CODE CHECKS section
.PHONY: vet .PHONY: vet
vet: ## Verifies `go vet` passes vet: ## Verifies `go vet` passes
@echo "+ $@" @echo "+ $@"
@ -155,7 +188,7 @@ run: export WATCH_NAMESPACE = $(NAMESPACE)
run: export OPERATOR_NAME = $(NAME) run: export OPERATOR_NAME = $(NAME)
run: fmt vet install-crds build ## Run the executable, you can use EXTRA_ARGS run: fmt vet install-crds build ## Run the executable, you can use EXTRA_ARGS
@echo "+ $@" @echo "+ $@"
ifeq ($(KUBERNETES_PROVIDER),minikube) ifeq ($(KUBERNETES_PROVIDER),kind)
kubectl config use-context $(KUBECTL_CONTEXT) kubectl config use-context $(KUBECTL_CONTEXT)
endif endif
ifeq ($(KUBERNETES_PROVIDER),crc) ifeq ($(KUBERNETES_PROVIDER),crc)
@ -294,12 +327,6 @@ container-runtime-run: ## Run the container in docker, you can use EXTRA_ARGS
--volume $(HOME)/.kube/config:/home/jenkins-operator/.kube/config \ --volume $(HOME)/.kube/config:/home/jenkins-operator/.kube/config \
quay.io/${QUAY_ORGANIZATION}/$(QUAY_REGISTRY):$(GITCOMMIT) /usr/bin/jenkins-operator $(OPERATOR_ARGS) quay.io/${QUAY_ORGANIZATION}/$(QUAY_REGISTRY):$(GITCOMMIT) /usr/bin/jenkins-operator $(OPERATOR_ARGS)
.PHONY: minikube-run
minikube-run: export WATCH_NAMESPACE = $(NAMESPACE)
minikube-run: export OPERATOR_NAME = $(NAME)
minikube-run: minikube-start run ## Run the operator locally and use minikube as Kubernetes cluster, you can use OPERATOR_ARGS
@echo "+ $@"
.PHONY: crc-run .PHONY: crc-run
crc-run: export WATCH_NAMESPACE = $(NAMESPACE) crc-run: export WATCH_NAMESPACE = $(NAMESPACE)
crc-run: export OPERATOR_NAME = $(NAME) crc-run: export OPERATOR_NAME = $(NAME)
@ -322,14 +349,6 @@ ifndef HAS_GEN_CRD_API_REFERENCE_DOCS
endif 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 $(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
.PHONY: check-minikube
check-minikube: ## Checks if KUBERNETES_PROVIDER is set to minikube
@echo "+ $@"
@echo "KUBERNETES_PROVIDER '$(KUBERNETES_PROVIDER)'"
ifneq ($(KUBERNETES_PROVIDER),minikube)
$(error KUBERNETES_PROVIDER not set to 'minikube')
endif
.PHONY: check-crc .PHONY: check-crc
check-crc: ## Checks if KUBERNETES_PROVIDER is set to crc check-crc: ## Checks if KUBERNETES_PROVIDER is set to crc
@echo "+ $@" @echo "+ $@"
@ -338,44 +357,10 @@ ifneq ($(KUBERNETES_PROVIDER),crc)
$(error KUBERNETES_PROVIDER not set to 'crc') $(error KUBERNETES_PROVIDER not set to 'crc')
endif endif
.PHONY: helm
HAS_HELM := $(shell which $(PROJECT_DIR)/bin/helm)
helm: ## Download helm if it's not present
@echo "+ $@"
ifndef HAS_HELM
mkdir -p $(PROJECT_DIR)/bin
curl -Lo bin/helm.tar.gz https://get.helm.sh/helm-v$(HELM_VERSION)-$(PLATFORM)-amd64.tar.gz && tar xzfv bin/helm.tar.gz -C $(PROJECT_DIR)/bin
mv $(PROJECT_DIR)/bin/$(PLATFORM)-amd64/helm $(PROJECT_DIR)/bin/helm
rm -rf $(PROJECT_DIR)/bin/$(PLATFORM)-amd64
rm -rf $(PROJECT_DIR)/bin/helm.tar.gz
endif
.PHONY: minikube
HAS_MINIKUBE := $(shell which $(PROJECT_DIR)/bin/minikube)
minikube: ## Download minikube if it's not present
@echo "+ $@"
ifndef HAS_MINIKUBE
mkdir -p $(PROJECT_DIR)/bin
wget -O $(PROJECT_DIR)/bin/minikube https://github.com/kubernetes/minikube/releases/download/v$(MINIKUBE_VERSION)/minikube-$(PLATFORM)-amd64
chmod +x $(PROJECT_DIR)/bin/minikube
endif
.PHONY: minikube-start
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 $(MEMORY_AMOUNT) --cpus $(CPUS_NUMBER)
.PHONY: minikube-destroy
minikube-destroy: ## Stop and destroy minikube
@echo "+ $@"
bin/minikube stop
bin/minikube delete
.PHONY: kind-setup .PHONY: kind-setup
kind-setup: ## Setup kind cluster kind-setup: ## Setup kind cluster
@echo "+ $@" @echo "+ $@"
kind create cluster --name $(KIND_CLUSTER_NAME) kind create cluster --config kind-cluster.yaml --name $(KIND_CLUSTER_NAME)
.PHONY: kind-clean .PHONY: kind-clean
kind-clean: ## Delete kind cluster kind-clean: ## Delete kind cluster
@ -464,20 +449,6 @@ endif
go mod vendor -v go mod vendor -v
@echo @echo
.PHONY: helm-lint
helm-lint: helm
@echo "+ $@"
bin/helm lint chart/jenkins-operator
.PHONY: helm-release-latest
helm-release-latest: helm
@echo "+ $@"
mkdir -p /tmp/jenkins-operator-charts
mv chart/jenkins-operator/*.tgz /tmp/jenkins-operator-charts
cd chart && ../bin/helm package jenkins-operator
mv chart/jenkins-operator-*.tgz chart/jenkins-operator/
bin/helm repo index chart/ --url https://raw.githubusercontent.com/jenkinsci/kubernetes-operator/master/chart/ --merge chart/index.yaml
mv /tmp/jenkins-operator-charts/*.tgz chart/jenkins-operator/
# Download and build hugo extended locally if necessary # Download and build hugo extended locally if necessary
HUGO_PATH = $(shell pwd)/bin/hugo HUGO_PATH = $(shell pwd)/bin/hugo
@ -601,12 +572,10 @@ kubebuilder:
source ${ENVTEST_ASSETS_DIR}/setup-envtest.sh; fetch_envtest_tools $(ENVTEST_ASSETS_DIR); setup_envtest_env $(ENVTEST_ASSETS_DIR); 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 v1.5.1
.PHONY: install-cert-manager install-cert-manager: kind-setup
install-cert-manager: minikube-start
kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.5.1/cert-manager.yaml kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.5.1/cert-manager.yaml
.PHONY: uninstall-cert-manager uninstall-cert-manager: kind-setup
uninstall-cert-manager: minikube-start
kubectl delete -f https://github.com/jetstack/cert-manager/releases/download/v1.5.1/cert-manager.yaml 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 the operator locally along with webhook using helm charts

View File

@ -1,16 +1,16 @@
ALL_IN_ONE_DEPLOY_FILE_PREFIX="all-in-one"
API_VERSION_NEXT="v1alpha3"
API_VERSION="v1alpha2"
CLUSTER_DOMAIN="cluster.local"
GEN_CRD_API="gen-crd-api-reference-docs"
GO_VERSION="1.15.6"
HELM_VERSION="3.12.3"
IMAGE_PULL_MODE="local"
KIND_CLUSTER_NAME="jenkins"
LATEST_LTS_VERSION="2.440.1"
NAME="kubernetes-operator" NAME="kubernetes-operator"
OPERATOR_SDK_VERSION="1.33.0" NAMESPACE="default"
GO_VERSION="1.20.3" OPERATOR_SDK_VERSION="1.3.0"
PKG="github.com/jenkinsci/kubernetes-operator" PKG="github.com/jenkinsci/kubernetes-operator"
QUAY_ORGANIZATION="jenkins-kubernetes-operator" QUAY_ORGANIZATION="jenkins-kubernetes-operator"
QUAY_REGISTRY="operator" QUAY_REGISTRY="operator"
NAMESPACE="default"
API_VERSION="v1alpha2"
API_VERSION_NEXT="v1alpha3"
ALL_IN_ONE_DEPLOY_FILE_PREFIX="all-in-one"
GEN_CRD_API="gen-crd-api-reference-docs"
IMAGE_PULL_MODE="local"
HELM_VERSION="3.12.3"
CLUSTER_DOMAIN="cluster.local"
LATEST_LTS_VERSION="2.440.1"
KIND_CLUSTER_NAME="jenkins"

View File

@ -1,7 +0,0 @@
KUBERNETES_PROVIDER=crc
JENKINS_API_HOSTNAME_COMMAND=crc ip
JENKINS_API_PORT=0
JENKINS_API_USE_NODEPORT=true
CRC_OC_PROJECT=default

5
config.kind.env Normal file
View File

@ -0,0 +1,5 @@
JENKINS_API_HOSTNAME_COMMAND=echo localhost
JENKINS_API_PORT=0
JENKINS_API_USE_NODEPORT=true
KUBERNETES_PROVIDER=kind
KUBECTL_CONTEXT=kind-jenkins

View File

@ -1,10 +0,0 @@
KUBERNETES_PROVIDER=minikube
MINIKUBE_KUBERNETES_VERSION=v1.24.8
MINIKUBE_DRIVER=virtualbox
MINIKUBE_VERSION=1.28.0
KUBECTL_CONTEXT=minikube
JENKINS_API_HOSTNAME_COMMAND=bin/minikube ip
JENKINS_API_PORT=0
JENKINS_API_USE_NODEPORT=true

View File

@ -43,11 +43,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1707451808, "lastModified": 1708751719,
"narHash": "sha256-UwDBUNHNRsYKFJzyTMVMTF5qS4xeJlWoeyJf+6vvamU=", "narHash": "sha256-0uWOKSpXJXmXswOvDM5Vk3blB74apFB6rNGWV5IjoN0=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "442d407992384ed9c0e6d352de75b69079904e4e", "rev": "f63ce824cd2f036216eb5f637dfef31e1a03ee89",
"type": "github" "type": "github"
}, },
"original": { "original": {

9
kind-cluster.yaml Normal file
View File

@ -0,0 +1,9 @@
apiVersion: kind.x-k8s.io/v1alpha4
kind: Cluster
nodes:
- role: control-plane
extraPortMappings:
- containerPort: 30303
hostPort: 30303
listenAddress: "0.0.0.0"
protocol: tcp

View File

@ -145,6 +145,7 @@ func createJenkinsCRSafeRestart(name, namespace string, seedJob *[]v1alpha2.Seed
Service: v1alpha2.Service{ Service: v1alpha2.Service{
Type: corev1.ServiceTypeNodePort, Type: corev1.ServiceTypeNodePort,
Port: constants.DefaultHTTPPortInt32, Port: constants.DefaultHTTPPortInt32,
NodePort: 30303,
}, },
}, },
} }
@ -239,10 +240,12 @@ func verifyJenkinsAPIConnection(jenkins *v1alpha2.Jenkins, namespace string) (je
func restartJenkinsMasterPod(jenkins *v1alpha2.Jenkins) { func restartJenkinsMasterPod(jenkins *v1alpha2.Jenkins) {
_, _ = fmt.Fprintf(GinkgoWriter, "Restarting Jenkins master pod\n") _, _ = fmt.Fprintf(GinkgoWriter, "Restarting Jenkins master pod\n")
jenkinsPod := getJenkinsMasterPod(jenkins) jenkinsPod := getJenkinsMasterPod(jenkins)
_, _ = fmt.Fprintf(GinkgoWriter, "Jenkins pod: %+v\n", jenkinsPod)
Expect(K8sClient.Delete(context.TODO(), jenkinsPod)).Should(Succeed()) Expect(K8sClient.Delete(context.TODO(), jenkinsPod)).Should(Succeed())
Eventually(func() (bool, error) { Eventually(func() (bool, error) {
jenkinsPod = getJenkinsMasterPod(jenkins) jenkinsPod = getJenkinsMasterPod(jenkins)
fmt.Printf("Jenkins pod deletion timestamp: %v\n", jenkinsPod.DeletionTimestamp)
return jenkinsPod.DeletionTimestamp != nil, nil return jenkinsPod.DeletionTimestamp != nil, nil
}, 45*retryInterval, retryInterval).Should(BeTrue()) }, 45*retryInterval, retryInterval).Should(BeTrue())

View File

@ -53,7 +53,7 @@ func createPVC(namespace string) {
Namespace: namespace, Namespace: namespace,
}, },
Spec: corev1.PersistentVolumeClaimSpec{ Spec: corev1.PersistentVolumeClaimSpec{
AccessModes: []corev1.PersistentVolumeAccessMode{corev1.ReadWriteMany}, AccessModes: []corev1.PersistentVolumeAccessMode{corev1.ReadWriteOnce},
Resources: corev1.ResourceRequirements{ Resources: corev1.ResourceRequirements{
Requests: corev1.ResourceList{ Requests: corev1.ResourceList{
corev1.ResourceStorage: resource.MustParse("1Gi"), corev1.ResourceStorage: resource.MustParse("1Gi"),
@ -212,6 +212,7 @@ func createJenkinsWithBackupAndRestoreConfigured(name, namespace string) *v1alph
Service: v1alpha2.Service{ Service: v1alpha2.Service{
Type: corev1.ServiceTypeNodePort, Type: corev1.ServiceTypeNodePort,
Port: constants.DefaultHTTPPortInt32, Port: constants.DefaultHTTPPortInt32,
NodePort: 30303,
}, },
}, },
} }

View File

@ -167,6 +167,7 @@ func RenderJenkinsCR(name, namespace string, seedJob *[]v1alpha2.SeedJob, groovy
Service: v1alpha2.Service{ Service: v1alpha2.Service{
Type: corev1.ServiceTypeNodePort, Type: corev1.ServiceTypeNodePort,
Port: constants.DefaultHTTPPortInt32, Port: constants.DefaultHTTPPortInt32,
NodePort: 30303,
}, },
Roles: []rbacv1.RoleRef{ Roles: []rbacv1.RoleRef{
{ {

View File

@ -20,7 +20,7 @@ import (
) )
var ( var (
retryInterval = time.Second * 5 retryInterval = time.Second * 10
) )
func WaitForJenkinsBaseConfigurationToComplete(jenkins *v1alpha2.Jenkins) { func WaitForJenkinsBaseConfigurationToComplete(jenkins *v1alpha2.Jenkins) {
@ -53,6 +53,8 @@ func waitForRecreateJenkinsMasterPod(jenkins *v1alpha2.Jenkins) {
} }
pods := &corev1.PodList{} pods := &corev1.PodList{}
err := K8sClient.List(context.TODO(), pods, lo) err := K8sClient.List(context.TODO(), pods, lo)
// debug print
_, _ = fmt.Fprintf(ginkgo.GinkgoWriter, "Pods: %+v\n", pods)
if err != nil { if err != nil {
return false, err return false, err
} }

View File

@ -18,14 +18,14 @@ define strip_quotes
$(shell echo $(1) | sed -e 's/^"//' -e 's/"$$//') $(shell echo $(1) | sed -e 's/^"//' -e 's/"$$//')
endef endef
include config.base.env
$(foreach var,$(shell cat config.base.env),$(eval $(call strip_quotes,$(var))))
# Import config # Import config
# You can change the default config with `make config="config_special.env" build` # You can change the default config with `make config="config_special.env" build`
config ?= config.minikube.env config ?= config.kind.env
include $(config) include $(config)
include config.base.env
$(foreach var,$(shell cat config.base.env),$(eval $(call strip_quotes,$(var))))
# Set an output prefix, which is the local directory if not specified # Set an output prefix, which is the local directory if not specified
PREFIX?=$(shell pwd) PREFIX?=$(shell pwd)