chart version auto-increment scheme
Refer to the example for auto-increment presented by Bob Church: https://review.opendev.org/c/starlingx/platform-armada-app/+/904464 Implement these specifics for vault-helm: - Use StarlingX debian git revcount packaging mechanisms to derive the semver BUILD version for upstream helm charts which maintains the upstream chart version and adds a versioned BUILD extension. <valid semver> ::= <version core> "+" <build> Chart version (MAJOR.MINOR.PATCH+STX.REV) is passed to 'helm package' command to force the version, where REV == 'git revcount' - Update the rules to automatically update the chart versions in the fluxCD helmrelease.yaml files. Test Plan: PASS file byte level comparison of package before/after PASS AIO-SX vault sanity PASS application-update Story: 2010929 Task: 49399 Change-Id: Id40547c1001ab8fa2d7c83abbcc5c9d44185ee2f Signed-off-by: Michel Thebeau <Michel.Thebeau@windriver.com>
This commit is contained in:
parent
fae21895d7
commit
d921df347e
@ -10,7 +10,7 @@ export REVISION = $(shell echo $(DEB_VERSION) | cut -f 4 -d '.')
|
|||||||
|
|
||||||
export APP_NAME = vault
|
export APP_NAME = vault
|
||||||
export APP_VERSION = $(RELEASE)-$(REVISION)
|
export APP_VERSION = $(RELEASE)-$(REVISION)
|
||||||
export APP_TARBALL_FLUXCD = $(APP_NAME)-$(APP_VERSION).tgz
|
export APP_TARBALL = $(APP_NAME)-$(APP_VERSION).tgz
|
||||||
export HELM_REPO = stx-platform
|
export HELM_REPO = stx-platform
|
||||||
export STAGING = staging
|
export STAGING = staging
|
||||||
|
|
||||||
@ -30,9 +30,22 @@ override_dh_auto_build:
|
|||||||
# Setup the staging directory.
|
# Setup the staging directory.
|
||||||
mkdir -p $(STAGING)
|
mkdir -p $(STAGING)
|
||||||
cp files/metadata.yaml $(STAGING)
|
cp files/metadata.yaml $(STAGING)
|
||||||
|
cp -Rv fluxcd-manifests $(STAGING)/
|
||||||
mkdir -p $(STAGING)/charts
|
mkdir -p $(STAGING)/charts
|
||||||
cp /usr/lib/helm/vault*.tgz $(STAGING)/charts
|
cp /usr/lib/helm/vault*.tgz $(STAGING)/charts
|
||||||
|
|
||||||
|
# Adjust the helmrelease yamls based on the chart versions
|
||||||
|
for c in $(STAGING)/charts/*; do \
|
||||||
|
chart=$$(basename $$c .tgz); \
|
||||||
|
chart_name=$${chart%-*}; \
|
||||||
|
chart_version=$${chart##*-}; \
|
||||||
|
echo "Found $$chart; name: $$chart_name, version: $$chart_version"; \
|
||||||
|
chart_manifest=$$(find $(STAGING)/fluxcd-manifests -name helmrelease.yaml -exec grep -q $$chart_name {} \; -print); \
|
||||||
|
echo "Updating manifest: $$chart_manifest"; \
|
||||||
|
sed -i "s/REPLACE_HELM_CHART_VERSION/$$chart_version/g" $$chart_manifest; \
|
||||||
|
grep version $$chart_manifest; \
|
||||||
|
done
|
||||||
|
|
||||||
# Populate metadata.
|
# Populate metadata.
|
||||||
sed -i 's/APP_REPLACE_NAME/$(APP_NAME)/g' $(STAGING)/metadata.yaml
|
sed -i 's/APP_REPLACE_NAME/$(APP_NAME)/g' $(STAGING)/metadata.yaml
|
||||||
sed -i 's/APP_REPLACE_VERSION/$(APP_VERSION)/g' $(STAGING)/metadata.yaml
|
sed -i 's/APP_REPLACE_VERSION/$(APP_VERSION)/g' $(STAGING)/metadata.yaml
|
||||||
@ -42,13 +55,10 @@ override_dh_auto_build:
|
|||||||
mkdir -p $(STAGING)/plugins
|
mkdir -p $(STAGING)/plugins
|
||||||
cp /plugins/*.whl $(STAGING)/plugins
|
cp /plugins/*.whl $(STAGING)/plugins
|
||||||
|
|
||||||
# Prepare staging for fluxcd package
|
# calculate checksum of all files in staging for the app
|
||||||
cp -R fluxcd-manifests $(STAGING)/
|
|
||||||
|
|
||||||
# calculate checksum of all files in staging for the fluxcd app
|
|
||||||
cd $(STAGING) && find . -type f ! -name '*.md5' -print0 | xargs -0 md5sum > checksum.md5
|
cd $(STAGING) && find . -type f ! -name '*.md5' -print0 | xargs -0 md5sum > checksum.md5
|
||||||
# package fluxcd app
|
# package the app
|
||||||
tar -zcf $(APP_TARBALL_FLUXCD) -C $(STAGING)/ .
|
tar -zcf $(APP_TARBALL) -C $(STAGING)/ .
|
||||||
|
|
||||||
# Cleanup staging
|
# Cleanup staging
|
||||||
rm -rf $(STAGING)
|
rm -rf $(STAGING)
|
||||||
@ -56,6 +66,6 @@ override_dh_auto_build:
|
|||||||
override_dh_auto_install:
|
override_dh_auto_install:
|
||||||
# Install the app tar file.
|
# Install the app tar file.
|
||||||
install -d -m 755 $(APP_FOLDER)
|
install -d -m 755 $(APP_FOLDER)
|
||||||
install -p -D -m 755 $(APP_TARBALL_FLUXCD) $(APP_FOLDER)
|
install -p -D -m 755 $(APP_TARBALL) $(APP_FOLDER)
|
||||||
|
|
||||||
override_dh_usrlocal:
|
override_dh_usrlocal:
|
||||||
|
@ -15,7 +15,7 @@ spec:
|
|||||||
chart:
|
chart:
|
||||||
spec:
|
spec:
|
||||||
chart: vault
|
chart: vault
|
||||||
version: 0.25.0
|
version: REPLACE_HELM_CHART_VERSION
|
||||||
sourceRef:
|
sourceRef:
|
||||||
kind: HelmRepository
|
kind: HelmRepository
|
||||||
name: stx-platform
|
name: stx-platform
|
||||||
|
@ -3,9 +3,8 @@ Section: libs
|
|||||||
Priority: optional
|
Priority: optional
|
||||||
Maintainer: StarlingX Developers <starlingx-discuss@lists.starlingx.io>
|
Maintainer: StarlingX Developers <starlingx-discuss@lists.starlingx.io>
|
||||||
Build-Depends: debhelper-compat (= 13),
|
Build-Depends: debhelper-compat (= 13),
|
||||||
chartmuseum,
|
|
||||||
helm,
|
helm,
|
||||||
procps
|
build-info,
|
||||||
Standards-Version: 4.5.1
|
Standards-Version: 4.5.1
|
||||||
Homepage: https://www.starlingx.io
|
Homepage: https://www.starlingx.io
|
||||||
|
|
||||||
|
@ -1,12 +1,14 @@
|
|||||||
#!/usr/bin/make -f
|
#!/usr/bin/make -f
|
||||||
export DH_VERBOSE = 1
|
export DH_VERBOSE = 1
|
||||||
|
|
||||||
|
export DEB_VERSION = $(shell dpkg-parsechangelog | egrep '^Version:' | cut -f 2 -d ' ')
|
||||||
|
export PATCH_VERSION = $(shell echo $(DEB_VERSION) | cut -f 4 -d '.')
|
||||||
|
export CHART_BASE_VERSION = "0.25.0"
|
||||||
|
export CHART_VERSION = $(CHART_BASE_VERSION)+STX.$(PATCH_VERSION)
|
||||||
|
|
||||||
export ROOT = debian/tmp
|
export ROOT = debian/tmp
|
||||||
export APP_FOLDER = $(ROOT)/usr/lib/helm
|
export APP_FOLDER = $(ROOT)/usr/lib/helm
|
||||||
|
|
||||||
export APP_TARBALL = vault-0.25.0.tgz
|
|
||||||
export STAGING = staging
|
|
||||||
|
|
||||||
%:
|
%:
|
||||||
dh $@
|
dh $@
|
||||||
|
|
||||||
@ -18,11 +20,11 @@ override_dh_auto_build:
|
|||||||
cat _helpers-CA.tpl >> templates/_helpers.tpl
|
cat _helpers-CA.tpl >> templates/_helpers.tpl
|
||||||
mv templates vault/templates
|
mv templates vault/templates
|
||||||
# Create the TGZ file.
|
# Create the TGZ file.
|
||||||
make vault
|
make CHART_VERSION=$(CHART_VERSION) vault
|
||||||
|
|
||||||
override_dh_auto_install:
|
override_dh_auto_install:
|
||||||
# Install the app tar file.
|
# Install the app tar file.
|
||||||
install -d -m 755 $(APP_FOLDER)
|
install -d -m 755 $(APP_FOLDER)
|
||||||
install -p -D -m 755 $(APP_TARBALL) $(APP_FOLDER)
|
install -p -D -m 755 vault*.tgz $(APP_FOLDER)
|
||||||
|
|
||||||
override_dh_auto_test:
|
override_dh_auto_test:
|
||||||
|
@ -25,18 +25,16 @@ $(CHARTS):
|
|||||||
|
|
||||||
init-%:
|
init-%:
|
||||||
if [ -f $*/Makefile ]; then make -C $*; fi
|
if [ -f $*/Makefile ]; then make -C $*; fi
|
||||||
if [ -f $*/requirements.yaml ]; then helm dep up $*; fi
|
|
||||||
|
|
||||||
lint-%: init-%
|
lint-%: init-%
|
||||||
if [ -d $* ]; then helm lint $*; fi
|
if [ -d $* ]; then helm lint $*; fi
|
||||||
|
|
||||||
build-%:
|
build-%:
|
||||||
if [ -d $* ]; then helm package $*; fi
|
if [ -d $* ]; then helm package --version $(CHART_VERSION) $*; fi
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
@echo "Clean all build artifacts"
|
@echo "Clean all build artifacts"
|
||||||
rm -f */templates/_partials.tpl */templates/_globals.tpl
|
rm -f */templates/_partials.tpl */templates/_globals.tpl
|
||||||
rm -f *tgz */charts/*tgz */requirements.lock
|
|
||||||
rm -rf */charts */tmpcharts
|
rm -rf */charts */tmpcharts
|
||||||
|
|
||||||
%:
|
%:
|
||||||
|
Loading…
Reference in New Issue
Block a user