Merge remote-tracking branch 'origin/master' into version-9.0
This commit is contained in:
commit
75b8a3a678
|
|
@ -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}
|
|
||||||
|
|
|
||||||
|
|
@ -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'
|
||||||
|
|
|
||||||
|
|
@ -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
105
Makefile
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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"
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
|
||||||
|
|
@ -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
|
||||||
|
|
@ -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
|
|
||||||
|
|
@ -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": {
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
@ -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())
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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{
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue