Thiago Brito a045e88335 Use fluxcd app by default for ptp-notification
This commit switches ptp-notification to use the fluxcd app by
default and also preserves the armada app on the build for future
tests.

TEST PLAN
PASS Build iso and verify apps
PASS Upload
PASS Apply
PASS Verify resources [1] pod stuck at ContainerCreating due to ptp
     misconfiguration on StarlingX, unrelated to the app or FluxCD)
PASS Remove
PASS Delete

Logs: https://paste.opendev.org/show/bZuqIQIdGAXOAAVO3jRl/

[1] On the 1st attempt to verify the resources created, we got the
ptp-ptp-notification pod stuck on ContainerCreating due to ptp
misconfiguration on StarlingX (unrelated to the app or FluxCD). After
troubleshooting the configuration, the pod got running OK and we used
the ptp-notification-demo-app to verify the protocol was acting as
expected.

2nd verification log: https://paste.opendev.org/show/bGDjZu6jrxw6lCdYQZNo/

Story: 2009138
Task: 45371

Signed-off-by: Thiago Brito <thiago.brito@windriver.com>
Change-Id: Ib4812f2def774a83c5838700006ee686b8d28198
2022-05-13 20:15:22 +00:00

121 lines
3.1 KiB
RPMSpec

#
# Copyright (c) 2021-2022 Wind River Systems, Inc.
#
# SPDX-License-Identifier: Apache-2.0
#
# Application tunables (maps to metadata)
%global app_name ptp-notification
%global helm_repo stx-platform
%global armada_folder /usr/lib/armada
# Install location
%global app_folder /usr/local/share/applications/helm
# Build variables
%global helm_folder /usr/lib/helm
Summary: StarlingX PTP Notification FluxCD Helm Charts
Name: stx-ptp-notification-helm
Version: 1.0
Release: %{tis_patch_ver}%{?_tis_dist}
License: Apache-2.0
Group: base
Packager: Wind River <info@windriver.com>
URL: unknown
Source0: %{name}-%{version}.tar.gz
BuildArch: noarch
BuildRequires: helm
BuildRequires: chartmuseum
BuildRequires: python-k8sapp-ptp-notification
BuildRequires: python-k8sapp-ptp-notification-wheels
%description
StarlingX PTP Notification Helm Charts
%package armada
Summary: StarlingX PTP Notification Application Armada Helm Charts
Group: base
License: Apache-2.0
%description armada
StarlingX PTP Notification Application Armada Helm Charts
%prep
%setup -n %{name}-%{version}
%build
chartmuseum --debug --port=8879 --context-path='/charts' --storage="local" --storage-local-rootdir="." &
sleep 2
helm repo add local http://localhost:8879/charts
cd helm-charts
make ptp-notification
make psp-rolebinding
cd -
# Terminate helm server (the last backgrounded task)
kill %1
# Create a chart tarball compliant with sysinv kube-app.py
%define app_staging %{_builddir}/staging
%define app_tarball_armada %{app_name}-armada-%{version}-%{tis_patch_ver}.tgz
%define app_tarball_fluxcd %{app_name}-%{version}-%{tis_patch_ver}.tgz
%define armada_app_path %{_builddir}/%{app_tarball_armada}
%define fluxcd_app_path %{_builddir}/%{app_tarball_fluxcd}
# Setup staging
mkdir -p %{app_staging}
cp files/metadata.yaml %{app_staging}
cp manifests/ptp_notification_manifest.yaml %{app_staging}
mkdir -p %{app_staging}/charts
cp helm-charts/*.tgz %{app_staging}/charts
#cp %{helm_folder}/*.tgz %{app_staging}/charts
cd %{app_staging}
# Populate metadata
sed -i 's/@APP_NAME@/%{app_name}/g' %{app_staging}/metadata.yaml
sed -i 's/@APP_VERSION@/%{version}-%{tis_patch_ver}/g' %{app_staging}/metadata.yaml
sed -i 's/@HELM_REPO@/%{helm_repo}/g' %{app_staging}/metadata.yaml
# Copy the plugins: installed in the buildroot
mkdir -p %{app_staging}/plugins
cp /plugins/%{app_name}/*.whl %{app_staging}/plugins
# package it up
find . -type f ! -name '*.md5' -print0 | xargs -0 md5sum > checksum.md5
tar -zcf %armada_app_path -C %{app_staging}/ .
# package fluxcd
rm -f %{app_staging}/ptp_notification_manifest.yaml
cd -
cp -R fluxcd-manifests %{app_staging}/
# calculate checksum of all files in app_staging
cd %{app_staging}
find . -type f ! -name '*.md5' -print0 | xargs -0 md5sum > checksum.md5
tar -zcf %fluxcd_app_path -C %{app_staging}/ .
cd -
# Cleanup staging
rm -fr %{app_staging}
%install
install -d -m 755 %{buildroot}/%{app_folder}
install -p -D -m 755 %armada_app_path %{buildroot}/%{app_folder}
install -p -D -m 755 %fluxcd_app_path %{buildroot}/%{app_folder}
%files armada
%defattr(-,root,root,-)
%{app_folder}/%{app_tarball_armada}
%files
%defattr(-,root,root,-)
%{app_folder}/%{app_tarball_fluxcd}