openstack-armada-app/stx-openstack-helm-fluxcd/centos/stx-openstack-helm-fluxcd.spec
Robert Church daef54697f Partial FluxCD version of stx-openstack: initial
This is a mini test version of the openstack app based on FluxCD.
It only has a subset of the charts enabled for testing:
 - build-helm-chart.sh changes
 - FluxCD application framework changes

This change includes the following charts:
psp-rolebinding, ingress, nginx-ports-control, mariadb,
garbd, memcached, rabbitmq.

NOTE: This new change includes the same code from [1] and the fix
for debian package build, the reason why the original change had to
be reverted originally.

Test Plan:
PASS - package build (CentOS)
PASS - package build (Debian)
PASS - build-helm-charts.sh builds a basic FluxCD app tarball
PASS - application upload and overrides generated
PASS - application apply/remove/delete

Debian build logs: https://paste.opendev.org/show/bty7r5Zcn6JJawuwDBm7/
Application Logs: https://paste.opendev.org/show/bFL2fixBwc0vBhqXDC0K/

Story: 2009138
Task: 45462

Signed-off-by: Thales Elero Cervi <thaleselero.cervi@windriver.com>
Co-Authored-by: Robert Church <robert.church@windriver.com>
Change-Id: Id501b4a34b1b54ca72943044fb59b18e064d1042
2022-09-01 11:54:42 -03:00

75 lines
1.9 KiB
RPMSpec

%global helm_folder /usr/lib/helm
%global fluxcd_folder /usr/lib/fluxcd
%global app_folder /usr/lib/application
%global toolkit_version 0.2.19
%global helmchart_version 0.1.0
Summary: StarlingX Openstack Application Helm charts
Name: stx-openstack-helm-fluxcd
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: openstack-helm-infra
BuildRequires: chartmuseum
Requires: openstack-helm-infra
Requires: openstack-helm
Requires: python-k8sapp-openstack-wheels
%description
StarlingX Openstack Application Helm charts
%prep
%setup
%build
# Stage helm-toolkit in the local repo
cp %{helm_folder}/helm-toolkit-%{toolkit_version}.tgz helm-charts/
# Host a server for the charts
chartmuseum --debug --port=8879 --context-path='/charts' --storage="local" --storage-local-rootdir="./helm-charts" &
sleep 2
helm repo add local http://localhost:8879/charts
# Make the charts. These produce a tgz file
cd helm-charts
make nova-api-proxy
make pci-irq-affinity-agent
make garbd
make keystone-api-proxy
make fm-rest-api
make nginx-ports-control
make dcdbsync
make psp-rolebinding
cd -
# terminate helm server (the last backgrounded task)
kill %1
# remove helm-toolkit. This will be packaged with openstack-helm-infra
rm ./helm-charts/helm-toolkit-%{toolkit_version}.tgz
%install
# helm_folder is created by openstack-helm-infra
install -d -m 755 ${RPM_BUILD_ROOT}%{app_folder}
install -p -D -m 755 files/metadata.yaml ${RPM_BUILD_ROOT}%{app_folder}
install -d -m 755 ${RPM_BUILD_ROOT}%{helm_folder}
install -p -D -m 755 helm-charts/*.tgz ${RPM_BUILD_ROOT}%{helm_folder}
install -d -m 755 ${RPM_BUILD_ROOT}%{fluxcd_folder}
cp -R manifests/* ${RPM_BUILD_ROOT}%{fluxcd_folder}
%files
#helm_folder is owned by openstack-helm-infra
%defattr(-,root,root,-)
%{helm_folder}/*
%{fluxcd_folder}/*
%{app_folder}/*