Skip to content

Commit 4be11cd

Browse files
authored
Merge pull request #55 from cloudogu/bugfix/54-fix-problem-to-chown-while-post-upgrade-deletes-the-pgdata
#54 - Fix problem to chown while post-upgrade script deletes pdgata
2 parents f94f1b9 + d0b7613 commit 4be11cd

20 files changed

+174
-58
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

88
## [Unreleased]
9+
### Fixed
10+
- [#54] Fix problem to chown files while post-upgrade script deletes the pgdata
11+
- [#54] Upgrade makefiles to 10.2.0
912

1013
## [v14.17-3] - 2025-07-24
1114
### Fixed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
MAKEFILES_VERSION=9.5.0
1+
MAKEFILES_VERSION=10.2.0
22

33
.DEFAULT_GOAL:=dogu-release
44

build/make/build.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
ADDITIONAL_LDFLAGS?=-extldflags -static
44
LDFLAGS?=-ldflags "$(ADDITIONAL_LDFLAGS) -X main.Version=$(VERSION) -X main.CommitID=$(COMMIT_ID)"
55
GOIMAGE?=golang
6-
GOTAG?=1.23
6+
GOTAG?=1.24
77
GOOS?=linux
88
GOARCH?=amd64
99
PRE_COMPILE?=

build/make/k8s-component.mk

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
COMPONENT_DEV_VERSION?=${VERSION}-dev
1+
COMPONENT_BUILD_VERSION := $(shell date +%s)
2+
COMPONENT_DEV_VERSION?=${VERSION}-dev.${COMPONENT_BUILD_VERSION}
23

34
include ${BUILD_DIR}/make/k8s.mk
45

@@ -15,8 +16,9 @@ HELM_RELEASE_TGZ=${HELM_TARGET_DIR}/${ARTIFACT_ID}-${VERSION}.tgz
1516
HELM_DEV_RELEASE_TGZ=${HELM_TARGET_DIR}/${ARTIFACT_ID}-${COMPONENT_DEV_VERSION}.tgz
1617
HELM_ARTIFACT_NAMESPACE?=k8s
1718
ifeq (${RUNTIME_ENV}, remote)
18-
HELM_ARTIFACT_NAMESPACE?=testing/k8s
19+
HELM_ARTIFACT_NAMESPACE=testing/k8s
1920
endif
21+
$(info HELM_ARTIFACT_NAMESPACE=$(HELM_ARTIFACT_NAMESPACE))
2022

2123
K8S_RESOURCE_COMPONENT ?= "${K8S_RESOURCE_TEMP_FOLDER}/component-${ARTIFACT_ID}-${VERSION}.yaml"
2224
K8S_RESOURCE_COMPONENT_CR_TEMPLATE_YAML ?= $(BUILD_DIR)/make/k8s-component.tpl
@@ -93,10 +95,10 @@ helm-reinstall: helm-delete helm-apply ## Uninstalls the current helm chart and
9395
.PHONY: helm-chart-import
9496
helm-chart-import: ${CHECK_VAR_TARGETS} helm-generate helm-package ${IMAGE_IMPORT_TARGET} ## Imports the currently available chart into the cluster-local registry.
9597
@if [[ ${STAGE} == "development" ]]; then \
96-
echo "Import ${HELM_DEV_RELEASE_TGZ} into K8s cluster ${CES_REGISTRY_HOST}..."; \
98+
echo "Import ${HELM_DEV_RELEASE_TGZ} into K8s cluster ${CES_REGISTRY_HOST}/${HELM_ARTIFACT_NAMESPACE}..."; \
9799
${BINARY_HELM} push ${HELM_DEV_RELEASE_TGZ} oci://${CES_REGISTRY_HOST}/${HELM_ARTIFACT_NAMESPACE} ${BINARY_HELM_ADDITIONAL_PUSH_ARGS}; \
98100
else \
99-
echo "Import ${HELM_RELEASE_TGZ} into K8s cluster ${CES_REGISTRY_HOST}..."; \
101+
echo "Import ${HELM_RELEASE_TGZ} into K8s cluster ${CES_REGISTRY_HOST}/${HELM_ARTIFACT_NAMESPACE}..."; \
100102
${BINARY_HELM} push ${HELM_RELEASE_TGZ} oci://${CES_REGISTRY_HOST}/${HELM_ARTIFACT_NAMESPACE} ${BINARY_HELM_ADDITIONAL_PUSH_ARGS}; \
101103
fi
102104
@echo "Done."
@@ -142,7 +144,7 @@ ${K8S_RESOURCE_COMPONENT_CR_TEMPLATE_YAML}: ${K8S_RESOURCE_TEMP_FOLDER}
142144
fi
143145

144146
.PHONY: component-apply
145-
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.
147+
component-apply: isProduction 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.
146148
@kubectl apply -f "${K8S_RESOURCE_COMPONENT}" --namespace="${NAMESPACE}" --context="${KUBE_CONTEXT_NAME}"
147149
@echo "Done."
148150

build/make/k8s-crd.mk

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
1-
ARTIFACT_CRD_ID = $(ARTIFACT_ID)-crd
2-
DEV_CRD_VERSION ?= ${VERSION}-dev
1+
# we set this default to maintain compatibility with CRDs that are still inside monorepos
2+
APPEND_CRD_SUFFIX ?= true
3+
ifeq ($(APPEND_CRD_SUFFIX), true)
4+
ARTIFACT_CRD_ID = $(ARTIFACT_ID)-crd
5+
else ifeq ($(APPEND_CRD_SUFFIX), false)
6+
ARTIFACT_CRD_ID = $(ARTIFACT_ID)
7+
endif
8+
CRD_BUILD_VERSION := $(shell date +%s).$(TIMESTAMP)
9+
DEV_CRD_VERSION ?= ${VERSION}-dev.${COMPONENT_BUILD_VERSION}
310
HELM_CRD_SOURCE_DIR ?= ${WORKDIR}/k8s/helm-crd
411
HELM_CRD_TARGET_DIR ?= $(K8S_RESOURCE_TEMP_FOLDER)/helm-crd
512
HELM_CRD_RELEASE_TGZ = ${HELM_CRD_TARGET_DIR}/${ARTIFACT_CRD_ID}-${VERSION}.tgz
@@ -28,7 +35,7 @@ crd-add-labels: $(BINARY_YQ)
2835
@echo "Adding labels to CRD..."
2936
@for file in ${HELM_CRD_SOURCE_DIR}/templates/*.yaml ; do \
3037
$(BINARY_YQ) -i e ".metadata.labels.app = \"ces\"" $${file} ;\
31-
$(BINARY_YQ) -i e ".metadata.labels.\"app.kubernetes.io/name\" = \"${ARTIFACT_ID}\"" $${file} ;\
38+
$(BINARY_YQ) -i e ".metadata.labels.\"app.kubernetes.io/name\" = \"${ARTIFACT_CRD_ID}\"" $${file} ;\
3239
done
3340

3441
.PHONY: crd-helm-generate ## Generates the Helm CRD chart
@@ -83,10 +90,10 @@ ${HELM_CRD_RELEASE_TGZ}: ${BINARY_HELM} crd-helm-generate ## Generates and packa
8390
.PHONY: crd-helm-chart-import
8491
crd-helm-chart-import: ${CHECK_VAR_TARGETS} check-k8s-artifact-id crd-helm-generate crd-helm-package ## Imports the currently available Helm CRD chart into the cluster-local registry.
8592
@if [[ ${STAGE} == "development" ]]; then \
86-
echo "Import ${HELM_CRD_DEV_RELEASE_TGZ} into K8s cluster ${CES_REGISTRY_HOST}..."; \
93+
echo "Import ${HELM_CRD_DEV_RELEASE_TGZ} into K8s cluster ${CES_REGISTRY_HOST}/${HELM_ARTIFACT_NAMESPACE}..."; \
8794
${BINARY_HELM} push ${HELM_CRD_DEV_RELEASE_TGZ} oci://${CES_REGISTRY_HOST}/${HELM_ARTIFACT_NAMESPACE} ${BINARY_HELM_ADDITIONAL_PUSH_ARGS}; \
8895
else \
89-
echo "Import ${HELM_CRD_RELEASE_TGZ} into K8s cluster ${CES_REGISTRY_HOST}..."; \
96+
echo "Import ${HELM_CRD_RELEASE_TGZ} into K8s cluster ${CES_REGISTRY_HOST}/${HELM_ARTIFACT_NAMESPACE}..."; \
9097
${BINARY_HELM} push ${HELM_CRD_RELEASE_TGZ} oci://${CES_REGISTRY_HOST}/${HELM_ARTIFACT_NAMESPACE} ${BINARY_HELM_ADDITIONAL_PUSH_ARGS}; \
9198
fi
9299
@echo "Done."
@@ -105,7 +112,7 @@ crd-component-generate: ${K8S_RESOURCE_TEMP_FOLDER} ## Generate the CRD componen
105112
fi
106113

107114
.PHONY: crd-component-apply
108-
crd-component-apply: check-k8s-namespace-env-var crd-helm-chart-import crd-component-generate ## Applies the CRD component YAML resource to the actual defined context.
115+
crd-component-apply: isProduction check-k8s-namespace-env-var crd-helm-chart-import crd-component-generate ## Applies the CRD component YAML resource to the actual defined context.
109116
@kubectl apply -f "${K8S_RESOURCE_CRD_COMPONENT}" --namespace="${NAMESPACE}" --context="${KUBE_CONTEXT_NAME}"
110117
@echo "Done."
111118

build/make/k8s.mk

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,11 @@ K3S_LOCAL_REGISTRY_PORT?=30099
3636

3737
# The URL of the container-registry to use. Defaults to the registry of the local-cluster.
3838
# If RUNTIME_ENV is "remote" it is "registry.cloudogu.com/testing"
39-
CES_REGISTRY_HOST?="${K3S_CLUSTER_FQDN}:${K3S_LOCAL_REGISTRY_PORT}"
39+
CES_REGISTRY_HOST?=${K3S_CLUSTER_FQDN}:${K3S_LOCAL_REGISTRY_PORT}
4040
CES_REGISTRY_NAMESPACE ?=
4141
ifeq (${RUNTIME_ENV}, remote)
42-
CES_REGISTRY_HOST="registry.cloudogu.com"
43-
CES_REGISTRY_NAMESPACE="/testing"
42+
CES_REGISTRY_HOST=registry.cloudogu.com
43+
CES_REGISTRY_NAMESPACE=/testing
4444
endif
4545
$(info CES_REGISTRY_HOST=$(CES_REGISTRY_HOST))
4646

@@ -203,3 +203,14 @@ envtest: ${ENVTEST} ## Download envtest-setup locally if necessary.
203203

204204
${ENVTEST}:
205205
$(call go-get-tool,$(ENVTEST),sigs.k8s.io/controller-runtime/tools/setup-envtest@latest)
206+
207+
.PHONY: isProduction
208+
isProduction:
209+
@if [[ "${STAGE}" == "production" ]]; then \
210+
echo "Command executed in production stage. Aborting."; \
211+
exit 1; \
212+
else \
213+
echo "Command executed in development stage. Continuing."; \
214+
fi
215+
216+

build/make/mocks.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
##@ Mocking
22

33
MOCKERY_BIN=${UTILITY_BIN_PATH}/mockery
4-
MOCKERY_VERSION?=v2.42.1
4+
MOCKERY_VERSION?=v2.53.3
55
MOCKERY_YAML=${WORKDIR}/.mockery.yaml
66

77
${MOCKERY_BIN}: ${UTILITY_BIN_PATH}

build/make/prerelease.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@
33

44
.PHONY: prerelease_namespace
55
prerelease_namespace:
6-
build/make/stagex.sh prerelease_namespace
6+
build/make/prerelease.sh prerelease_namespace

build/make/prerelease.sh

100644100755
Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,23 +5,49 @@ set -o pipefail
55

66
prerelease_namespace() {
77

8+
TIMESTAMP=$(date +"%Y%m%d%H%M%S")
9+
810
# Update version in dogu.json
911
if [ -f "dogu.json" ]; then
1012
echo "Updating name in dogu.json..."
1113
ORIG_NAME="$(jq -r ".Name" ./dogu.json)"
14+
ORIG_VERSION="$(jq -r ".Version" ./dogu.json)"
1215
PRERELEASE_NAME="prerelease_${ORIG_NAME}"
16+
PRERELEASE_VERSION="${ORIG_VERSION}${TIMESTAMP}"
1317
jq ".Name = \"${PRERELEASE_NAME}\"" dogu.json >dogu2.json && mv dogu2.json dogu.json
18+
jq ".Version = \"${PRERELEASE_VERSION}\"" dogu.json >dogu2.json && mv dogu2.json dogu.json
1419
jq ".Image = \"registry.cloudogu.com/${PRERELEASE_NAME}\"" dogu.json >dogu2.json && mv dogu2.json dogu.json
1520
fi
1621

1722
# Update version in Dockerfile
1823
if [ -f "Dockerfile" ]; then
1924
echo "Updating version in Dockerfile..."
20-
ORIG_NAME="$(grep -oP "^[ ]*NAME=\"([^\"]*)" Dockerfile | awk -F "\"" '{print $2}')"
21-
PRERELEASE_NAME="prerelease_$( echo -e "$ORIG_NAME" | sed 's/\//\\\//g' )"
22-
sed -i "s/\(^[ ]*NAME=\"\)\([^\"]*\)\(.*$\)/\1${PRERELEASE_NAME}\3/" Dockerfile
23-
fi
25+
LABEL_BLOCK=$(sed -n '/^LABEL[[:space:]]/ {N; /NAME=".*"/ {N; /VERSION=".*"/ {p}}}' Dockerfile)
26+
27+
# Extract NAME and VERSION from the LABEL block
28+
ORIG_NAME=$(echo "$LABEL_BLOCK" | sed -n 's/.*NAME="\([^"]*\)".*/\1/p')
29+
ORIG_VERSION=$(echo "$LABEL_BLOCK" | sed -n 's/.*VERSION="\([^"]*\)".*/\1/p')
2430

31+
# Output the extracted values for debugging
32+
echo "ORIG_NAME Dockerfile: ${ORIG_NAME}"
33+
echo "ORIG_VERSION Dockerfile: ${ORIG_VERSION}"
34+
35+
# Prepare prerelease name and version
36+
PRERELEASE_NAME="prerelease_$(echo -e "$ORIG_NAME" | sed 's/\//\\\//g')"
37+
PRERELEASE_VERSION="${ORIG_VERSION}${TIMESTAMP}"
38+
39+
# Output the new values for debugging
40+
echo "PRERELEASE_NAME Dockerfile: ${PRERELEASE_NAME}"
41+
echo "PRERELEASE_VERSION Dockerfile: ${PRERELEASE_VERSION}"
42+
43+
# Only replace NAME= and VERSION= and only inside the LABEL block
44+
# This assumes LABEL block is between 'LABEL' and first non-indented line
45+
sed -i '/^LABEL/,/^[^[:space:]]/ {
46+
s/\(NAME="\)[^"]*\("\)/\1'"${PRERELEASE_NAME}"'\2/
47+
s/\(VERSION="\)[^"]*\("\)/\1'"${PRERELEASE_VERSION}"'\2/
48+
}' Dockerfile
49+
fi
50+
2551
}
2652

2753

build/make/release.mk

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
.PHONY: dogu-release
66
dogu-release: ## Start a dogu release
7-
build/make/release.sh dogu
7+
build/make/release.sh dogu "${FIXED_CVE_LIST}" $(DRY_RUN)
88

99
.PHONY: node-release
1010
node-release: ## Start a node package release
@@ -14,6 +14,10 @@ node-release: ## Start a node package release
1414
go-release: ## Start a go tool release
1515
build/make/release.sh go-tool
1616

17+
.PHONY: image-release
18+
image-release: ## Start a go tool release
19+
build/make/release.sh image
20+
1721
.PHONY: dogu-cve-release
1822
dogu-cve-release: ## Start a dogu release of a new build if the local build fixes critical CVEs
1923
@bash -c "build/make/release_cve.sh \"${REGISTRY_USERNAME}\" \"${REGISTRY_PASSWORD}\" \"${TRIVY_IMAGE_SCAN_FLAGS}\" \"${DRY_RUN}\" \"${CVE_SEVERITY}\""

0 commit comments

Comments
 (0)