Auto-increment chart versions

Chart versions are auto-incremented.
Auto-versioning of helm charts has been enabled to ensure
recognition of chart changes by the FluxCD helm controller

Test Plan:
PASS: All packages have been built.
PASS: Introduce temporary chart changes and ensure that the versions
      increment as expected.
PASS: Validate basic application lifecycle operations:
      upload/apply/remove/delete.

Story: 2010929
Task: 49932

Change-Id: I2a6060cd7521a6856373828235ebc7602c45bb65
Signed-off-by: AbhishekJ <abhishek.jaiswal@windriver.com>
This commit is contained in:
AbhishekJ 2024-04-24 18:07:30 +05:30
parent 498f0122c4
commit d7c6c05d1d
19 changed files with 132 additions and 21 deletions

View File

@ -1,2 +1,3 @@
helm-charts/custom/node-interface-metrics-exporter-helm
python3-k8sapp-node-interface-metrics-exporter
stx-node-interface-metrics-exporter-helm

View File

@ -0,0 +1,5 @@
node-interface-metrics-exporter-helm (0.1.0) unstable; urgency=medium
* Initial release of chart starting a version 0.1.0.
-- Abhishek Jaiswal <abhishek.jaiswal@windriver.com> Thu, 25 Apr 2024 20:07:42 +0000

View File

@ -0,0 +1,15 @@
Source: node-interface-metrics-exporter-helm
Section: libs
Priority: optional
Maintainer: StarlingX Developers <starlingx-discuss@lists.starlingx.io>
Build-Depends: debhelper-compat (= 13),
helm,
Standards-Version: 4.5.1
Homepage: https://www.starlingx.io
Package: node-interface-metrics-exporter-helm
Section: libs
Architecture: any
Depends: ${misc:Depends}
Description: StarlingX Platform Node interface metrics exporter Helm Chart
This package contains a helm chart for Node interface metrics exporter Helm

View File

@ -0,0 +1,41 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: node-interface-metrics-exporter-helm
Source: https://opendev.org/starlingx/app-node-interface-metrics-exporter
Files: *
Copyright: (c) 2019-2024 Wind River Systems, Inc
License: Apache-2
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
.
https://www.apache.org/licenses/LICENSE-2.0
.
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.
On Debian-based systems the full text of the Apache version 2.0 license
can be found in `/usr/share/common-licenses/Apache-2.0'.
# If you want to use GPL v2 or later for the /debian/* files use
# the following clauses, or change it to suit. Delete these two lines
Files: debian/*
Copyright: 2024 Wind River Systems, Inc
License: Apache-2
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
.
https://www.apache.org/licenses/LICENSE-2.0
.
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
.
On Debian-based systems the full text of the Apache version 2.0 license
can be found in `/usr/share/common-licenses/Apache-2.0'.

View File

@ -0,0 +1,27 @@
#!/usr/bin/make -f
# export DH_VERBOSE = 1
export ROOT = debian/tmp
export APP_FOLDER = $(ROOT)/usr/lib/helm
export DEB_VERSION = $(shell dpkg-parsechangelog | egrep '^Version:' | cut -f 2 -d ' ')
export RELEASE = $(shell echo $(DEB_VERSION) | cut -f 1 -d '-')
export REVISION = $(shell echo $(DEB_VERSION) | cut -f 4 -d '.')
export CHART_VERSION = $(RELEASE).$(REVISION)
%:
dh $@
override_dh_auto_build:
# Stage the chart for building
mkdir -p build
mv Makefile node-interface-metrics-exporter build
# Build the chart
cd build && make CHART_VERSION=$(CHART_VERSION) node-interface-metrics-exporter
override_dh_auto_install:
install -d -m 755 $(APP_FOLDER)
install -p -D -m 755 build/node-interface-metrics-exporter*.tgz $(APP_FOLDER)
override_dh_auto_test:

View File

@ -0,0 +1,10 @@
---
debname: node-interface-metrics-exporter-helm
debver: 0.1.0
src_path: node-interface-metrics-exporter-helm
revision:
dist: $STX_DIST
stx_patch: 0
GITREVCOUNT:
SRC_DIR: ${MY_REPO}/stx/app-node-interface-metrics-exporter/helm-charts/custom/node-interface-metrics-exporter-helm/node-interface-metrics-exporter-helm/node-interface-metrics-exporter
BASE_SRCREV: 498f0122c459481dba1b2d3780dca0f1cab26402

View File

@ -1,5 +1,5 @@
#
# Copyright (c) 2023 Wind River Systems, Inc.
# Copyright (c) 2023-2024 Wind River Systems, Inc.
#
# SPDX-License-Identifier: Apache-2.0
#
@ -7,8 +7,8 @@
SHELL := /bin/bash
TASK := build
EXCLUDES := helm-toolkit doc tests tools logs tmp
CHARTS := helm-toolkit $(filter-out $(EXCLUDES), $(patsubst %/.,%,$(wildcard */.)))
EXCLUDES := doc tests tools logs tmp
CHARTS := $(filter-out $(EXCLUDES), $(patsubst %/.,%,$(wildcard */.)))
.PHONY: $(EXCLUDES) $(CHARTS)
@ -23,18 +23,16 @@ $(CHARTS):
init-%:
if [ -f $*/Makefile ]; then make -C $*; fi
if [ -f $*/requirements.yaml ]; then helm dep up $*; fi
lint-%: init-%
if [ -d $* ]; then helm lint $*; fi
build-%: lint-%
if [ -d $* ]; then helm package $*; fi
if [ -d $* ]; then helm package --version $(CHART_VERSION) $*; fi
clean:
@echo "Clean all build artifacts"
rm -f */templates/_partials.tpl */templates/_globals.tpl
rm -f *tgz */charts/*tgz */requirements.lock
rm -rf */charts */tmpcharts
%:

View File

@ -1,3 +1,9 @@
stx-node-interface-metrics-exporter-helm (1.0-2) unstable; urgency=medium
* Break out helm chart into own packages and apply auto versioning.
-- Abhishek Jaiswal <abhishek.jaiswal@windriver.com> Thu, 25 Apr 2024 20:07:42 +0000
stx-node-interface-metrics-exporter-helm (1.0-1) unstable; urgency=medium
* Initial release.

View File

@ -3,8 +3,7 @@ Section: libs
Priority: optional
Maintainer: StarlingX Developers <starlingx-discuss@lists.starlingx.io>
Build-Depends: debhelper-compat (= 13),
helm,
python3-k8sapp-node-interface-metrics-exporter,
node-interface-metrics-exporter-helm,
python3-k8sapp-node-interface-metrics-exporter-wheels,
build-info
Standards-Version: 4.5.1

View File

@ -10,7 +10,7 @@ export REVISION = $(shell echo $(DEB_VERSION) | cut -f 4 -d '.')
export APP_NAME = node-interface-metrics-exporter
export APP_VERSION = $(RELEASE)-$(REVISION)
export APP_TARBALL_FLUXCD = $(APP_NAME)-$(APP_VERSION).tgz
export APP_TARBALL = $(APP_NAME)-$(APP_VERSION).tgz
export HELM_FOLDER = /usr/lib/helm
export HELM_REPO = stx-platform
export STAGING = staging
@ -19,15 +19,24 @@ export STAGING = staging
dh $@
override_dh_auto_build:
# Create the helm-chart TGZ file.
cd helm-charts && make
# Setup the staging directory.
mkdir -p $(STAGING)
cp files/metadata.yaml $(STAGING)
cp -Rv fluxcd-manifests/ $(STAGING)
cp -Rv fluxcd-manifests $(STAGING)
mkdir -p $(STAGING)/charts
cp helm-charts/*.tgz $(STAGING)/charts
cp /usr/lib/helm/*.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:.*$$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.
sed -i 's/APP_REPLACE_NAME/$(APP_NAME)/g' $(STAGING)/metadata.yaml
@ -38,19 +47,17 @@ override_dh_auto_build:
mkdir -p $(STAGING)/plugins
cp /plugins/*.whl $(STAGING)/plugins
# Prepare staging for fluxcd package
cp -R fluxcd-manifests $(STAGING)/
# Create the app package.
cd $(STAGING) && find . -type f ! -name '*.md5' -print0 | xargs -0 md5sum > checksum.md5
tar cfz $(APP_TARBALL_FLUXCD) -C $(STAGING)/ .
tar cfz $(APP_TARBALL) -C $(STAGING)/ .
# Cleanup staging
rm -rf $(STAGING)
override_dh_auto_install:
# Install the app tar file.
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_auto_test:

View File

@ -1,6 +1,6 @@
---
debname: stx-node-interface-metrics-exporter-helm
debver: 1.0-1
debver: 1.0-2
src_path: stx-node-interface-metrics-exporter-helm
revision:
dist: $STX_DIST

View File

@ -15,7 +15,7 @@ spec:
chart:
spec:
chart: node-interface-metrics-exporter
version: 0.1.0
version: REPLACE_HELM_CHART_VERSION
sourceRef:
kind: HelmRepository
name: stx-platform