Skip to content

Commit c1bb8e3

Browse files
ppxlcesmarvin
authored andcommitted
Merge branch 'release/v3.68.1-1'
2 parents dfa1e1d + f535a16 commit c1bb8e3

15 files changed

+305
-241
lines changed

CHANGELOG.md

+7
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
66

77
## [Unreleased]
88

9+
## [v3.68.1-1] - 2024-05-17
10+
### Changed
11+
- [#128] Upgrade nexus to 3.68.1 to fix CVE-2024-4956
12+
13+
### Fixed
14+
- [#126] Align Cypress versions of Jenkinsfile and package.json to avoid failing integration tests
15+
916
## [v3.59.0-2] - 2023-10-23
1017
### Fixed
1118
- [#124] Fixed CVE-2023-38039 CVE-2023-38545 CVE-2023-44487

Dockerfile

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
# registry.cloudogu.com/official/nexus
2-
FROM registry.cloudogu.com/official/java:8u362-1 as builder
2+
FROM registry.cloudogu.com/official/java:11.0.20-1 as builder
33
LABEL maintainer="[email protected]" \
44
NAME="official/nexus" \
5-
VERSION="3.59.0-2"
5+
VERSION="3.68.1-1"
66

77
WORKDIR /build
88

99
# The version of nexus to install
10-
ENV NEXUS_VERSION=3.59.0-01 \
10+
ENV NEXUS_VERSION=3.68.1-02 \
1111
TINI_VERSION=0.19.0 \
1212
NEXUS_CLAIM_VERSION=1.0.0 \
1313
NEXUS_CARP_VERSION=1.3.1 \
@@ -16,7 +16,7 @@ ENV NEXUS_VERSION=3.59.0-01 \
1616
NEXUS_BUILD_DIR=/build/opt/sonatype/nexus \
1717
BUILD_BIN_DIR=/build/usr/bin \
1818
SHA256_TINI="c5b0666b4cb676901f90dfcb37106783c5fe2077b04590973b885950611b30ee" \
19-
SHA256_NEXUS_TAR="19bc207fbf05e232d9c521e95cb7253e946a5e56521b828c4252a0b72f7262a8" \
19+
SHA256_NEXUS_TAR="6a04eb770e0c4415d3033de757b07ddfdfd15beadbf839d4b33438246e4325a7" \
2020
SHA256_NEXUS_CLAIM="a34608ac7b516d6bc91f8a157bea286919c14e5fb5ecc76fc15edccb35adec42" \
2121
SHA256_NEXUS_SCRIPTING="60c7f3d8a0c97b1d90d954ebad9dc07dbeb7927934b618c874b2e72295cafb48" \
2222
SHA256_NEXUS_CARP="f9a9d9f9efcabd27fb4df2544142000d5607c8feb9772e77f23239d7a6647458"
@@ -36,7 +36,7 @@ RUN set -o errexit \
3636
# install nexus
3737
&& mkdir -p ${NEXUS_BUILD_DIR} \
3838
&& curl --fail --silent --location --retry 3 -o nexus.tar.gz \
39-
https://download.sonatype.com/nexus/3/nexus-${NEXUS_VERSION}-unix.tar.gz \
39+
https://download.sonatype.com/nexus/3/nexus-${NEXUS_VERSION}-java11-unix.tar.gz \
4040
&& echo "${SHA256_NEXUS_TAR} *nexus.tar.gz" |sha256sum -c - \
4141
&& tar -xf nexus.tar.gz -C /tmp nexus-${NEXUS_VERSION} \
4242
&& mv /tmp/nexus-${NEXUS_VERSION}/* ${NEXUS_BUILD_DIR}/ \
@@ -59,7 +59,7 @@ RUN set -o errexit \
5959
&& cp /root/.m2/repository/org/apache/shiro/tools/shiro-tools-hasher/${SHIRO_VERSION}/shiro-tools-hasher-${SHIRO_VERSION}-cli.jar /build/shiro-tools-hasher.jar
6060

6161

62-
FROM registry.cloudogu.com/official/java:8u362-1
62+
FROM registry.cloudogu.com/official/java:11.0.20-1
6363

6464
ENV SERVICE_TAGS=webapp \
6565
SERVICE_ADDITIONAL_SERVICES='[{"name": "docker-registry", "port": 8082, "location": "v2", "pass": "nexus/repository/docker-registry/v2/"}]' \

Jenkinsfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#!groovy
2-
@Library(['github.com/cloudogu/ces-build-lib@1.65.1', 'github.com/cloudogu/dogu-build-lib@v2.2.0'])
2+
@Library(['github.com/cloudogu/ces-build-lib@2.2.1', 'github.com/cloudogu/dogu-build-lib@v2.3.0'])
33
import com.cloudogu.ces.cesbuildlib.*
44
import com.cloudogu.ces.dogubuildlib.*
55

Makefile

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
MAKEFILES_VERSION=8.7.3
2-
VERSION=3.59.0-2
1+
MAKEFILES_VERSION=9.0.4
2+
VERSION=3.68.1-1
33

44
.DEFAULT_GOAL:=dogu-release
55

build/make/k8s-component.mk

+87-79
Original file line numberDiff line numberDiff line change
@@ -1,128 +1,143 @@
1-
DEV_VERSION?=${VERSION}-dev
2-
## Image URL to use all building/pushing image targets
3-
IMAGE_DEV?=${K3CES_REGISTRY_URL_PREFIX}/${ARTIFACT_ID}:${DEV_VERSION}
1+
COMPONENT_DEV_VERSION?=${VERSION}-dev
42

5-
include $(WORKDIR)/build/make/k8s.mk
3+
include ${BUILD_DIR}/make/k8s.mk
64

7-
BINARY_HELM = $(UTILITY_BIN_PATH)/helm
8-
BINARY_HELM_VERSION?=v3.13.0
95
BINARY_HELM_ADDITIONAL_PUSH_ARGS?=--plain-http
106
BINARY_HELM_ADDITIONAL_PACK_ARGS?=
117
BINARY_HELM_ADDITIONAL_UNINST_ARGS?=
128
BINARY_HELM_ADDITIONAL_UPGR_ARGS?=
139

14-
K8S_HELM_TARGET ?= $(K8S_RESOURCE_TEMP_FOLDER)/helm
15-
K8S_HELM_RESSOURCES ?= k8s/helm
16-
K8S_HELM_RELEASE_TGZ=${K8S_HELM_TARGET}/${ARTIFACT_ID}-${VERSION}.tgz
17-
K8S_HELM_DEV_RELEASE_TGZ=${K8S_HELM_TARGET}/${ARTIFACT_ID}-${DEV_VERSION}.tgz
18-
K8S_HELM_ARTIFACT_NAMESPACE?=k8s
10+
HELM_TARGET_DIR ?= $(K8S_RESOURCE_TEMP_FOLDER)/helm
11+
HELM_SOURCE_DIR ?= k8s/helm
12+
HELM_RELEASE_TGZ=${HELM_TARGET_DIR}/${ARTIFACT_ID}-${VERSION}.tgz
13+
HELM_DEV_RELEASE_TGZ=${HELM_TARGET_DIR}/${ARTIFACT_ID}-${COMPONENT_DEV_VERSION}.tgz
14+
HELM_ARTIFACT_NAMESPACE?=k8s
1915

2016
K8S_RESOURCE_COMPONENT ?= "${K8S_RESOURCE_TEMP_FOLDER}/component-${ARTIFACT_ID}-${VERSION}.yaml"
21-
K8S_RESOURCE_COMPONENT_CR_TEMPLATE_YAML ?= $(WORKDIR)/build/make/k8s-component.tpl
17+
K8S_RESOURCE_COMPONENT_CR_TEMPLATE_YAML ?= $(BUILD_DIR)/make/k8s-component.tpl
18+
# HELM_PRE_GENERATE_TARGETS allows to execute targets that affect Helm source files AND Helm target files.
19+
HELM_PRE_GENERATE_TARGETS ?=
20+
# HELM_POST_GENERATE_TARGETS allows to execute targets that only affect Helm target files.
21+
HELM_POST_GENERATE_TARGETS ?=
22+
HELM_PRE_APPLY_TARGETS ?=
23+
COMPONENT_PRE_APPLY_TARGETS ?=
24+
25+
# This can be used by components with own images to build and push to the dev registry.
26+
# These components should override this variable with `image-import`.
27+
IMAGE_IMPORT_TARGET?=
2228

2329
##@ K8s - Helm general
2430
.PHONY: helm-init-chart
2531
helm-init-chart: ${BINARY_HELM} ## Creates a Chart.yaml-template with zero values
26-
@echo "Initialize ${K8S_HELM_RESSOURCES}/Chart.yaml..."
27-
@mkdir -p ${K8S_HELM_RESSOURCES}/tmp/
28-
@${BINARY_HELM} create ${K8S_HELM_RESSOURCES}/tmp/${ARTIFACT_ID}
29-
@cp ${K8S_HELM_RESSOURCES}/tmp/${ARTIFACT_ID}/Chart.yaml ${K8S_HELM_RESSOURCES}/
30-
@rm -dr ${K8S_HELM_RESSOURCES}/tmp
31-
@sed -i 's/appVersion: ".*"/appVersion: "0.0.0-replaceme"/' ${K8S_HELM_RESSOURCES}/Chart.yaml
32-
@sed -i 's/version: .*/version: 0.0.0-replaceme/' ${K8S_HELM_RESSOURCES}/Chart.yaml
33-
34-
.PHONY: helm-generate-chart
35-
helm-generate-chart: k8s-generate ${K8S_HELM_TARGET}/Chart.yaml ## Generates the final helm chart.
36-
37-
.PHONY: ${K8S_HELM_TARGET}/Chart.yaml
38-
${K8S_HELM_TARGET}/Chart.yaml: $(K8S_RESOURCE_TEMP_FOLDER) k8s-generate helm-update-dependencies
39-
@echo "Generate helm chart..."
40-
@rm -drf ${K8S_HELM_TARGET} # delete folder, so the chart is newly created.
41-
@mkdir -p ${K8S_HELM_TARGET}/templates
42-
@cp $(K8S_RESOURCE_TEMP_YAML) ${K8S_HELM_TARGET}/templates
43-
@${BINARY_YQ} 'select(document_index != (select(.kind == "CustomResourceDefinition") | document_index))' $(K8S_RESOURCE_TEMP_YAML) > ${K8S_HELM_TARGET}/templates/$(ARTIFACT_ID)_$(VERSION).yaml # select all documents without the CRD
44-
@sed -i "s/'{{ .Namespace }}'/'{{ .Release.Namespace }}'/" ${K8S_HELM_TARGET}/templates/$(ARTIFACT_ID)_$(VERSION).yaml
45-
@cp -r ${K8S_HELM_RESSOURCES}/** ${K8S_HELM_TARGET}
32+
@echo "Initialize ${HELM_SOURCE_DIR}/Chart.yaml..."
33+
@mkdir -p ${HELM_SOURCE_DIR}/tmp/
34+
@${BINARY_HELM} create ${HELM_SOURCE_DIR}/tmp/${ARTIFACT_ID}
35+
@cp ${HELM_SOURCE_DIR}/tmp/${ARTIFACT_ID}/Chart.yaml ${HELM_SOURCE_DIR}/
36+
@rm -dr ${HELM_SOURCE_DIR}/tmp
37+
@sed -i 's/appVersion: ".*"/appVersion: "0.0.0-replaceme"/' ${HELM_SOURCE_DIR}/Chart.yaml
38+
@sed -i 's/version: .*/version: 0.0.0-replaceme/' ${HELM_SOURCE_DIR}/Chart.yaml
39+
40+
.PHONY: helm-generate
41+
helm-generate: ${HELM_TARGET_DIR}/Chart.yaml ${HELM_POST_GENERATE_TARGETS} ## Generates the final helm chart.
42+
43+
# this is phony because of it is easier this way than the makefile-single-run way
44+
.PHONY: ${HELM_TARGET_DIR}/Chart.yaml
45+
${HELM_TARGET_DIR}/Chart.yaml: $(K8S_RESOURCE_TEMP_FOLDER) validate-chart ${HELM_PRE_GENERATE_TARGETS} copy-helm-files
46+
@echo "Generate Helm chart..."
4647
@if [[ ${STAGE} == "development" ]]; then \
47-
sed -i 's/appVersion: "0.0.0-replaceme"/appVersion: '$(DEV_VERSION)'/' ${K8S_HELM_TARGET}/Chart.yaml; \
48-
sed -i 's/version: 0.0.0-replaceme/version: '$(DEV_VERSION)'/' ${K8S_HELM_TARGET}/Chart.yaml; \
48+
sed -i 's/appVersion: "0.0.0-replaceme"/appVersion: '$(COMPONENT_DEV_VERSION)'/' ${HELM_TARGET_DIR}/Chart.yaml; \
49+
sed -i 's/version: 0.0.0-replaceme/version: '$(COMPONENT_DEV_VERSION)'/' ${HELM_TARGET_DIR}/Chart.yaml; \
4950
else \
50-
sed -i 's/appVersion: "0.0.0-replaceme"/appVersion: "${VERSION}"/' ${K8S_HELM_TARGET}/Chart.yaml; \
51-
sed -i 's/version: 0.0.0-replaceme/version: ${VERSION}/' ${K8S_HELM_TARGET}/Chart.yaml; \
51+
sed -i 's/appVersion: "0.0.0-replaceme"/appVersion: "${VERSION}"/' ${HELM_TARGET_DIR}/Chart.yaml; \
52+
sed -i 's/version: 0.0.0-replaceme/version: ${VERSION}/' ${HELM_TARGET_DIR}/Chart.yaml; \
5253
fi
5354

54-
##@ K8s - Helm dev targets
55+
.PHONY: copy-helm-files
56+
copy-helm-files:
57+
@echo "Copying Helm files..."
58+
@rm -drf ${HELM_TARGET_DIR} # delete folder, so the chart is newly created.
59+
@mkdir -p ${HELM_TARGET_DIR}/templates
60+
@cp -r ${HELM_SOURCE_DIR}/** ${HELM_TARGET_DIR}
61+
62+
.PHONY: validate-chart
63+
validate-chart:
64+
@if [ ! -f ${HELM_SOURCE_DIR}/Chart.yaml ] ; then \
65+
echo "Could not find source Helm chart under \$${HELM_SOURCE_DIR}/Chart.yaml" ; \
66+
exit 22 ; \
67+
fi
5568

56-
.PHONY: helm-generate
57-
helm-generate: helm-generate-chart ## Generates the final helm chart with dev-urls.
69+
.PHONY: helm-update-dependencies
70+
helm-update-dependencies: ${BINARY_HELM} ## Update Helm chart dependencies
71+
@$(BINARY_HELM) dependency update "${HELM_SOURCE_DIR}"
72+
73+
##@ K8s - Helm dev targets
5874

5975
.PHONY: helm-apply
60-
helm-apply: ${BINARY_HELM} check-k8s-namespace-env-var $(PRE_APPLY_TARGETS) helm-generate $(K8S_POST_GENERATE_TARGETS) ## Generates and installs the helm chart.
76+
helm-apply: ${BINARY_HELM} check-k8s-namespace-env-var ${IMAGE_IMPORT_TARGET} helm-generate ${HELM_PRE_APPLY_TARGETS} ## Generates and installs the Helm chart.
6177
@echo "Apply generated helm chart"
62-
@${BINARY_HELM} upgrade -i ${ARTIFACT_ID} ${K8S_HELM_TARGET} ${BINARY_HELM_ADDITIONAL_UPGR_ARGS} --namespace ${NAMESPACE}
78+
@${BINARY_HELM} upgrade -i ${ARTIFACT_ID} ${HELM_TARGET_DIR} ${BINARY_HELM_ADDITIONAL_UPGR_ARGS} --namespace ${NAMESPACE}
6379

6480
.PHONY: helm-delete
65-
helm-delete: ${BINARY_HELM} check-k8s-namespace-env-var ## Uninstalls the current helm chart.
81+
helm-delete: ${BINARY_HELM} check-k8s-namespace-env-var ## Uninstalls the current Helm chart.
6682
@echo "Uninstall helm chart"
6783
@${BINARY_HELM} uninstall ${ARTIFACT_ID} --namespace=${NAMESPACE} ${BINARY_HELM_ADDITIONAL_UNINST_ARGS} || true
6884

6985
.PHONY: helm-reinstall
7086
helm-reinstall: helm-delete helm-apply ## Uninstalls the current helm chart and reinstalls it.
7187

7288
.PHONY: helm-chart-import
73-
helm-chart-import: check-all-vars check-k8s-artifact-id helm-generate-chart helm-package-release ## Imports the currently available chart into the cluster-local registry.
89+
helm-chart-import: ${CHECK_VAR_TARGETS} helm-generate helm-package ${IMAGE_IMPORT_TARGET} ## Imports the currently available chart into the cluster-local registry.
7490
@if [[ ${STAGE} == "development" ]]; then \
75-
echo "Import ${K8S_HELM_DEV_RELEASE_TGZ} into K8s cluster ${K3CES_REGISTRY_URL_PREFIX}..."; \
76-
${BINARY_HELM} push ${K8S_HELM_DEV_RELEASE_TGZ} oci://${K3CES_REGISTRY_URL_PREFIX}/${K8S_HELM_ARTIFACT_NAMESPACE} ${BINARY_HELM_ADDITIONAL_PUSH_ARGS}; \
91+
echo "Import ${HELM_DEV_RELEASE_TGZ} into K8s cluster ${K3CES_REGISTRY_URL_PREFIX}..."; \
92+
${BINARY_HELM} push ${HELM_DEV_RELEASE_TGZ} oci://${K3CES_REGISTRY_URL_PREFIX}/${HELM_ARTIFACT_NAMESPACE} ${BINARY_HELM_ADDITIONAL_PUSH_ARGS}; \
7793
else \
78-
echo "Import ${K8S_HELM_RELEASE_TGZ} into K8s cluster ${K3CES_REGISTRY_URL_PREFIX}..."; \
79-
${BINARY_HELM} push ${K8S_HELM_RELEASE_TGZ} oci://${K3CES_REGISTRY_URL_PREFIX}/${K8S_HELM_ARTIFACT_NAMESPACE} ${BINARY_HELM_ADDITIONAL_PUSH_ARGS}; \
94+
echo "Import ${HELM_RELEASE_TGZ} into K8s cluster ${K3CES_REGISTRY_URL_PREFIX}..."; \
95+
${BINARY_HELM} push ${HELM_RELEASE_TGZ} oci://${K3CES_REGISTRY_URL_PREFIX}/${HELM_ARTIFACT_NAMESPACE} ${BINARY_HELM_ADDITIONAL_PUSH_ARGS}; \
8096
fi
8197
@echo "Done."
8298

8399
##@ K8s - Helm release targets
84100

85101
.PHONY: helm-generate-release
86-
helm-generate-release: ${K8S_HELM_TARGET}/templates/$(ARTIFACT_ID)_$(VERSION).yaml ## Generates the final helm chart with release urls.
102+
helm-generate-release: update-urls ## Generates the final helm chart with release URLs.
87103

88-
${K8S_HELM_TARGET}/templates/$(ARTIFACT_ID)_$(VERSION).yaml: $(K8S_PRE_GENERATE_TARGETS) ${K8S_HELM_TARGET}/Chart.yaml
89-
@sed -i "s/'{{ .Namespace }}'/'{{ .Release.Namespace }}'/" ${K8S_HELM_TARGET}/templates/$(ARTIFACT_ID)_$(VERSION).yaml
90104

91-
.PHONY: helm-package-release
92-
helm-package-release: ${BINARY_HELM} helm-delete-existing-tgz ${K8S_HELM_RELEASE_TGZ} ## Generates and packages the helm chart with release urls.
105+
.PHONY: helm-package
106+
helm-package: helm-delete-existing-tgz ${HELM_RELEASE_TGZ} ## Generates and packages the helm chart with release URLs.
107+
108+
${HELM_RELEASE_TGZ}: ${BINARY_HELM} ${HELM_TARGET_DIR}/Chart.yaml ${HELM_POST_GENERATE_TARGETS} ## Generates and packages the helm chart with release URLs.
109+
@echo "Package generated helm chart"
110+
@if [[ ${STAGE} == "development" ]]; then \
111+
echo "WARNING: You are using a development environment" ; \
112+
fi
113+
@${BINARY_HELM} package ${HELM_TARGET_DIR} -d ${HELM_TARGET_DIR} ${BINARY_HELM_ADDITIONAL_PACK_ARGS}
93114

94115
.PHONY: helm-delete-existing-tgz
95-
helm-delete-existing-tgz: ## Remove an existing Helm package.
96-
# remove
97-
@rm -f ${K8S_HELM_RELEASE_TGZ}*
116+
helm-delete-existing-tgz: ## Remove an existing Helm package from the target directory.
117+
@echo "Delete ${HELM_RELEASE_TGZ}*"
118+
@rm -f ${HELM_TARGET_DIR}/${ARTIFACT_ID}-*.tgz
98119

99-
${K8S_HELM_RELEASE_TGZ}: ${BINARY_HELM} ${K8S_HELM_TARGET}/templates/$(ARTIFACT_ID)_$(VERSION).yaml helm-generate-chart $(K8S_POST_GENERATE_TARGETS) ## Generates and packages the helm chart with release urls.
100-
@echo "Package generated helm chart"
101-
@${BINARY_HELM} package ${K8S_HELM_TARGET} -d ${K8S_HELM_TARGET} ${BINARY_HELM_ADDITIONAL_PACK_ARGS}
120+
##@ K8s - Helm lint targets
102121

103-
${BINARY_HELM}: $(UTILITY_BIN_PATH) ## Download helm locally if necessary.
104-
$(call go-get-tool,$(BINARY_HELM),helm.sh/helm/v3/cmd/helm@${BINARY_HELM_VERSION})
122+
.PHONY: helm-lint
123+
helm-lint: $(BINARY_HELM) helm-generate
124+
@$(BINARY_HELM) lint "${HELM_TARGET_DIR}"
105125

106126
##@ K8s - Component dev targets
107127

108128
.PHONY: component-generate
109-
component-generate: ${K8S_RESOURCE_TEMP_FOLDER} ${BINARY_YQ} ## Generate the component yaml resource.
110-
@echo "Generating temporary K8s component resource: $'{K8S_RESOURCE_COMPONENT}"
111-
@cp "${K8S_RESOURCE_COMPONENT_CR_TEMPLATE_YAML}" "${K8S_RESOURCE_COMPONENT}"
112-
@$(BINARY_YQ) -i ".metadata.name = \"$(ARTIFACT_ID)\"" "${K8S_RESOURCE_COMPONENT}"
113-
@$(BINARY_YQ) -i ".spec.namespace = \"$(K8S_HELM_ARTIFACT_NAMESPACE)\"" "${K8S_RESOURCE_COMPONENT}"
114-
@$(BINARY_YQ) -i ".spec.name = \"$(ARTIFACT_ID)\"" "${K8S_RESOURCE_COMPONENT}"
129+
component-generate: ${K8S_RESOURCE_COMPONENT_CR_TEMPLATE_YAML} ${COMPONENT_POST_GENERATE_TARGETS} ## Generate the component yaml resource.
130+
131+
${K8S_RESOURCE_COMPONENT_CR_TEMPLATE_YAML}: ${K8S_RESOURCE_TEMP_FOLDER}
132+
@echo "Generating temporary K8s component resource: ${K8S_RESOURCE_COMPONENT}"
115133
@if [[ ${STAGE} == "development" ]]; then \
116-
$(BINARY_YQ) -i ".spec.version = \"$(DEV_VERSION)\"" "${K8S_RESOURCE_COMPONENT}"; \
134+
sed "s|NAMESPACE|$(HELM_ARTIFACT_NAMESPACE)|g" "${K8S_RESOURCE_COMPONENT_CR_TEMPLATE_YAML}" | sed "s|NAME|$(ARTIFACT_ID)|g" | sed "s|VERSION|$(COMPONENT_DEV_VERSION)|g" > "${K8S_RESOURCE_COMPONENT}"; \
117135
else \
118-
$(BINARY_YQ) -i ".spec.version = \"$(VERSION)\"" "${K8S_RESOURCE_COMPONENT}"; \
119-
fi
120-
@if [[ -n "${COMPONENT_DEPLOY_NAMESPACE}" ]]; then \
121-
$(BINARY_YQ) -i ".spec.deployNamespace = \"$(COMPONENT_DEPLOY_NAMESPACE)\"" "${K8S_RESOURCE_COMPONENT}"; \
136+
sed "s|NAMESPACE|$(HELM_ARTIFACT_NAMESPACE)|g" "${K8S_RESOURCE_COMPONENT_CR_TEMPLATE_YAML}" | sed "s|NAME|$(ARTIFACT_ID)|g" | sed "s|VERSION|$(VERSION)|g" > "${K8S_RESOURCE_COMPONENT}"; \
122137
fi
123138

124139
.PHONY: component-apply
125-
component-apply: check-k8s-namespace-env-var $(PRE_APPLY_TARGETS) helm-generate helm-chart-import component-generate $(K8S_POST_GENERATE_TARGETS) ## Applies the component yaml resource to the actual defined context.
140+
component-apply: check-k8s-namespace-env-var ${COMPONENT_PRE_APPLY_TARGETS} ${IMAGE_IMPORT_TARGET} helm-generate helm-chart-import component-generate ## Applies the component yaml resource to the actual defined context.
126141
@kubectl apply -f "${K8S_RESOURCE_COMPONENT}" --namespace="${NAMESPACE}"
127142
@echo "Done."
128143

@@ -133,10 +148,3 @@ component-delete: check-k8s-namespace-env-var component-generate $(K8S_POST_GENE
133148

134149
.PHONY: component-reinstall
135150
component-reinstall: component-delete component-apply ## Reinstalls the component yaml resource from the actual defined context.
136-
137-
.PHONY: helm-update-dependencies
138-
helm-update-dependencies: ${BINARY_HELM}
139-
@$(BINARY_HELM) dependency update "${K8S_HELM_RESSOURCES}"
140-
141-
.PHONY: install-helm
142-
install-helm: ${BINARY_HELM}

build/make/k8s-controller.mk

+9-44
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,6 @@
1-
# This script can be used to build and deploy kubernetes controllers. It is required to implement the controller
2-
# specific targets `manifests` and `generate`:
3-
#
4-
# Examples:
5-
#
6-
#.PHONY: manifests
7-
#manifests: controller-gen ## Generate WebhookConfiguration, ClusterRole and CustomResourceDefinition objects.
8-
# @echo "Generate manifests..."
9-
# @$(CONTROLLER_GEN) rbac:roleName=manager-role crd webhook paths="./..." output:crd:artifacts:config=config/crd/bases
10-
#
11-
#.PHONY: generate
12-
#generate: controller-gen ## Generate code containing DeepCopy, DeepCopyInto, and DeepCopyObject method implementations.
13-
# @echo "Auto-generate deepcopy functions..."
14-
# @$(CONTROLLER_GEN) object:headerFile="hack/boilerplate.go.txt" paths="./..."
15-
161
# This script requires the k8s.mk script
17-
include $(WORKDIR)/build/make/k8s-component.mk
18-
include $(WORKDIR)/build/make/k8s-crd.mk
2+
include ${BUILD_DIR}/make/k8s-component.mk
3+
include ${BUILD_DIR}/make/k8s-crd.mk
194

205
## Variables
216

@@ -50,7 +35,7 @@ build-controller: ${SRC} compile ## Builds the controller Go binary.
5035
# Allows to perform tasks before locally running the controller
5136
K8S_RUN_PRE_TARGETS ?=
5237
.PHONY: run
53-
run: manifests generate $(K8S_RUN_PRE_TARGETS) ## Run a controller from your host.
38+
run: generate-deepcopy $(K8S_RUN_PRE_TARGETS) ## Run a controller from your host.
5439
go run -ldflags "-X main.Version=$(VERSION)" ./main.go
5540

5641
##@ K8s - Integration test with envtest
@@ -59,33 +44,13 @@ $(K8S_INTEGRATION_TEST_DIR):
5944
@mkdir -p $@
6045

6146
.PHONY: k8s-integration-test
62-
k8s-integration-test: $(K8S_INTEGRATION_TEST_DIR) manifests generate envtest ## Run k8s integration tests.
47+
k8s-integration-test: $(K8S_INTEGRATION_TEST_DIR) ${ENVTEST} ## Run k8s integration tests.
6348
@echo "Running K8s integration tests..."
6449
@KUBEBUILDER_ASSETS="$(shell $(ENVTEST) use $(ENVTEST_K8S_VERSION) -p path)" go test -tags=k8s_integration ./... -coverprofile ${K8S_INTEGRATION_TEST_DIR}/report-k8s-integration.out
6550

66-
##@ K8s - Controller Resource
67-
68-
# The pre generation script creates a K8s resource yaml containing generated manager yaml.
69-
.PHONY: k8s-create-temporary-resource
70-
k8s-create-temporary-resource: $(K8S_RESOURCE_TEMP_FOLDER) manifests kustomize
71-
@echo "Generating temporary k8s resources $(K8S_RESOURCE_TEMP_YAML)..."
72-
cd $(WORKDIR)/config/manager && $(KUSTOMIZE) edit set image controller=$(IMAGE)
73-
$(KUSTOMIZE) build config/default > $(K8S_RESOURCE_TEMP_YAML)
74-
@echo "Done."
75-
76-
##@ K8s - Download Kubernetes Utility Tools
77-
78-
CONTROLLER_GEN = $(UTILITY_BIN_PATH)/controller-gen
79-
.PHONY: controller-gen
80-
controller-gen: ## Download controller-gen locally if necessary.
81-
$(call go-get-tool,$(CONTROLLER_GEN),sigs.k8s.io/controller-tools/cmd/[email protected])
82-
83-
KUSTOMIZE = $(UTILITY_BIN_PATH)/kustomize
84-
.PHONY: kustomize
85-
kustomize: ## Download kustomize locally if necessary.
86-
$(call go-get-tool,$(KUSTOMIZE),sigs.k8s.io/kustomize/kustomize/[email protected])
51+
##@ Controller specific targets
8752

88-
ENVTEST = $(UTILITY_BIN_PATH)/setup-envtest
89-
.PHONY: envtest
90-
envtest: ## Download envtest-setup locally if necessary.
91-
$(call go-get-tool,$(ENVTEST),sigs.k8s.io/controller-runtime/tools/setup-envtest@latest)
53+
.PHONY: generate-deepcopy
54+
generate-deepcopy: ${CONTROLLER_GEN} ## Generate code containing DeepCopy* method implementations.
55+
@echo "Auto-generate deepcopy functions..."
56+
@$(CONTROLLER_GEN) object:headerFile="hack/boilerplate.go.txt" paths="./..."

0 commit comments

Comments
 (0)