Openstack-helm(-infra) conversion to FluxCD

This change aims to edit both openstack-helm and openstack-helm-infra
.spec files to create 2 different rpms, one for each build (armada or
fluxcd).

These rpms are used by stx-openstack-helm(-fluxcd) to build the
openstack app.

Test Plan:

PASS - Build all the packages necessary for the openstack app
PENDING - Create openstack tarball
PENDING - Apply/remove/delete openstack

Relates to: I97402f9d4cacb2130118f49589b13b686d04e13b

Signed-off-by: Pedro Almeida <pedro.monteiroazevedodemouraalmeida@windriver.com>
Change-Id: I6a1cb3832be8dc15930edc226e09a55f6f89951b
This commit is contained in:
Pedro Almeida 2022-08-03 09:57:14 -03:00
parent b87a47d070
commit 2159b1d169
2 changed files with 130 additions and 10 deletions

View File

@ -1,5 +1,6 @@
%global sha 8351fdd0f1228717342c2accc96977b0cdc36dc3
%global helm_folder /usr/lib/helm
%global app_name openstack-helm-infra
Summary: Openstack-Helm-Infra charts
Name: openstack-helm-infra
@ -12,6 +13,7 @@ URL: https://github.com/openstack/openstack-helm-infra
Source0: %{name}-%{sha}.tar.gz
Source1: repositories.yaml
Source16: 0016-Disabling-helm3_hooks.patch
BuildArch: noarch
@ -24,7 +26,6 @@ Patch09: 0009-Enable-override-of-mariadb-server-probe-parameters.patch
Patch11: 0011-Add-mariadb-database-config-override-to-support-ipv6.patch
Patch12: 0012-enable-Values.conf.database.config_override-for-mari.patch
Patch13: 0013-Allow-set-public-endpoint-url-for-all-openstack-types.patch
Patch16: 0016-Disabling-helm3_hooks.patch
Patch17: 0017-Enable-taint-toleration-for-Openstack-services.patch
Patch18: 0018-Add-GaleraDB-Secure-Replica-Traffic.patch
Patch19: 0019-Add-force_boot-command-to-rabbit-start-template.patch
@ -40,6 +41,14 @@ BuildRequires: chartmuseum
%description
Openstack Helm Infra charts
%package fluxcd
Summary: Openstack-Helm-Infra FluxCD charts
Group: base
License: Apache-2.0
%description fluxcd
Openstack-Helm-Infra FluxCD charts
%prep
%setup -n openstack-helm-infra
%patch01 -p1
@ -51,7 +60,6 @@ Openstack Helm Infra charts
%patch11 -p1
%patch12 -p1
%patch13 -p1
%patch16 -p1
%patch17 -p1
%patch18 -p1
%patch19 -p1
@ -62,6 +70,10 @@ Openstack Helm Infra charts
%patch24 -p1
%build
%define app_staging %{_builddir}/staging
%define app_tarball_armada %{app_name}-%{version}-%{tis_patch_ver}.tgz
%define app_tarball_fluxcd %{app_name}-fluxcd-%{version}-%{tis_patch_ver}.tgz
# Host a server for the charts
chartmuseum --debug --port=8879 --context-path='/charts' --storage="local" --storage-local-rootdir="." &
sleep 2
@ -78,14 +90,58 @@ make openvswitch
make rabbitmq
make ceph-rgw
tar cvf %{app_tarball_fluxcd} ceph-rgw-0.1.15.tgz gnocchi-0.1.2.tgz ingress-0.2.3.tgz libvirt-0.1.7.tgz mariadb-0.2.5.tgz memcached-0.1.4.tgz openvswitch-0.1.5.tgz rabbitmq-0.1.14.tgz
rm -f mariadb-0.2.5.tgz rabbitmq-0.1.14.tgz
cp %{SOURCE16} .
patch -p1 < %{SOURCE16}
make mariadb
make rabbitmq
tar cvf %{app_tarball_armada} ceph-rgw-0.1.15.tgz gnocchi-0.1.2.tgz ingress-0.2.3.tgz libvirt-0.1.7.tgz mariadb-0.2.5.tgz memcached-0.1.4.tgz openvswitch-0.1.5.tgz rabbitmq-0.1.14.tgz
# terminate helm server (the last backgrounded task)
kill %1
mkdir %{app_staging}
cd %{app_staging}
mkdir fluxcd
mkdir armada
mv %{_builddir}/openstack-helm-infra/%{app_tarball_fluxcd} fluxcd
mv %{_builddir}/openstack-helm-infra/%{app_tarball_armada} armada
cd fluxcd
tar xvf %{app_tarball_fluxcd}
for f in *.tgz; do tar -xvf "$f"; done
rm -f *.tgz
tar cvf %{app_tarball_fluxcd} *
mv %{app_tarball_fluxcd} %{_builddir}/openstack-helm-infra
cd %{app_staging}/armada
tar xvf %{app_tarball_armada}
for f in *.tgz; do tar -xvf "$f"; done
rm -f *.tgz
tar cvf %{app_tarball_armada} *
mv %{app_tarball_armada} %{_builddir}/openstack-helm-infra
rm -rf %{app_staging}
%install
install -d -m 755 ${RPM_BUILD_ROOT}%{helm_folder}
install -p -D -m 755 *.tgz ${RPM_BUILD_ROOT}%{helm_folder}
install -p -D -m 755 %{app_tarball_armada} ${RPM_BUILD_ROOT}%{helm_folder}
install -p -D -m 755 %{app_tarball_fluxcd} ${RPM_BUILD_ROOT}%{helm_folder}
install -p -D -m 755 helm-toolkit-0.2.19.tgz ${RPM_BUILD_ROOT}%{helm_folder}
%files
%dir %attr(0755,root,root) %{helm_folder}
%defattr(-,root,root,-)
%{helm_folder}/*
%{helm_folder}/%{app_tarball_armada}
%{helm_folder}/helm-toolkit-0.2.19.tgz
%files fluxcd
%dir %attr(0755,root,root) %{helm_folder}
%defattr(-,root,root,-)
%{helm_folder}/%{app_tarball_fluxcd}
%{helm_folder}/helm-toolkit-0.2.19.tgz

View File

@ -3,6 +3,7 @@
%global toolkit_version 0.2.19
%global helmchart_version 0.1.0
%global _default_patch_flags --no-backup-if-mismatch --prefix=/tmp/junk
%global app_name openstack-helm
Summary: Openstack-Helm charts
Name: openstack-helm
@ -16,6 +17,7 @@ URL: https://github.com/openstack/openstack-helm
Source0: %{name}-%{sha}.tar.gz
Source1: repositories.yaml
Source2: index.yaml
Source8: 0008-Disabling-helm3_hook.patch
BuildArch: noarch
@ -26,7 +28,6 @@ Patch04: 0004-Support-ingress-creation-for-keystone-admin-endpoint.patch
Patch05: 0005-Allow-set-public-endpoint-url-for-keystone-endpoints.patch
Patch06: 0006-Wrong-usage-of-rbd_store_chunk_size.patch
Patch07: 0007-Add-stx_admin-account.patch
Patch08: 0008-Disabling-helm3_hook.patch
Patch09: 0009-Add-flavor-extra-spec-hw-pci_irq_affinity_mask.patch
Patch10: 0010-Enable-taint-toleration-for-Openstack-services.patch
Patch11: 0011-Fix-nova-compute-ssh-init-to-execute-as-runAsUser.patch
@ -34,7 +35,7 @@ Patch12: 0012-Replace-deprecated-Nova-VNC-configurations.patch
Patch13: 0013-Remove-TLS-from-openstack-services.patch
Patch14: 0014-Remove-mariadb-and-rabbit-tls.patch
Patch15: 0015-Decrease-terminationGracePeriodSeconds-on-glance-api.patch
Patch16: 0016-Network-Resources-Cleanup-before-OpenStack-Removal.patch
#Patch16: 0016-Network-Resources-Cleanup-before-OpenStack-Removal.patch
Patch17: 0017-Update-RBAC-authorization-api-to-v1.patch
BuildRequires: helm
@ -45,6 +46,14 @@ Requires: openstack-helm-infra
%description
Openstack Helm charts
%package fluxcd
Summary: Openstack-Helm FluxCD charts
Group: base
License: Apache-2.0
%description fluxcd
Openstack-Helm FluxCD charts
%prep
%setup -n openstack-helm
%patch01 -p1
@ -54,7 +63,6 @@ Openstack Helm charts
%patch05 -p1
%patch06 -p1
%patch07 -p1
%patch08 -p1
%patch09 -p1
%patch10 -p1
%patch11 -p1
@ -62,10 +70,14 @@ Openstack Helm charts
%patch13 -p1
%patch14 -p1
%patch15 -p1
%patch16 -p1
#%patch16 -p1
%patch17 -p1
%build
%define app_staging %{_builddir}/staging
%define app_tarball_armada %{app_name}-%{version}-%{tis_patch_ver}.tgz
%define app_tarball_fluxcd %{app_name}-fluxcd-%{version}-%{tis_patch_ver}.tgz
# Stage helm-toolkit in the local repo
cp %{helm_folder}/helm-toolkit-%{toolkit_version}.tgz .
@ -89,18 +101,70 @@ make neutron
make nova
make placement
tar cvf %{app_tarball_fluxcd} *.tgz
rm -f aodh-0.2.1.tgz barbican-0.2.7.tgz ceilometer-0.2.1.tgz cinder-0.2.10.tgz glance-0.2.9.tgz heat-0.2.7.tgz horizon-0.2.10.tgz ironic-0.2.1.tgz keystone-0.2.13.tgz magnum-0.2.2.tgz neutron-0.2.9.tgz nova-0.2.21.tgz placement-0.2.4.tgz
cp %{SOURCE8} .
patch -p1 < %{SOURCE8}
make aodh
make barbican
make ceilometer
make cinder
make glance
make heat
make horizon
make ironic
make keystone
make magnum
make neutron
make nova
make placement
tar cvf %{app_tarball_armada} aodh-0.2.1.tgz barbican-0.2.7.tgz ceilometer-0.2.1.tgz cinder-0.2.10.tgz glance-0.2.9.tgz heat-0.2.7.tgz helm-toolkit-0.2.19.tgz horizon-0.2.10.tgz ironic-0.2.1.tgz keystone-0.2.13.tgz magnum-0.2.2.tgz neutron-0.2.9.tgz nova-0.2.21.tgz placement-0.2.4.tgz
# terminate helm server (the last backgrounded task)
kill %1
# Remove the helm-toolkit tarball
rm helm-toolkit-%{toolkit_version}.tgz
mkdir %{app_staging}
cd %{app_staging}
mkdir fluxcd
mkdir armada
mv %{_builddir}/%{app_name}/%{app_tarball_fluxcd} fluxcd
mv %{_builddir}/%{app_name}/%{app_tarball_armada} armada
cd fluxcd
tar xvf %{app_tarball_fluxcd}
for f in *.tgz; do tar -xvf "$f"; done
rm -f *.tgz
tar cvf %{app_tarball_fluxcd} *
mv %{app_tarball_fluxcd} %{_builddir}/%{app_name}
cd %{app_staging}/armada
tar xvf %{app_tarball_armada}
for f in *.tgz; do tar -xvf "$f"; done
rm -f *.tgz
tar cvf %{app_tarball_armada} *
mv %{app_tarball_armada} %{_builddir}/%{app_name}
rm -rf %{app_staging}
%install
# helm_folder is created by openstack-helm-infra
install -d -m 755 ${RPM_BUILD_ROOT}%{helm_folder}
install -p -D -m 755 *.tgz ${RPM_BUILD_ROOT}%{helm_folder}
install -p -D -m 755 %{app_tarball_armada} ${RPM_BUILD_ROOT}%{helm_folder}
install -p -D -m 755 %{app_tarball_fluxcd} ${RPM_BUILD_ROOT}%{helm_folder}
%files
#helm_folder is owned by openstack-helm-infra
%defattr(-,root,root,-)
%{helm_folder}/*
%{helm_folder}/%{app_tarball_armada}
%files fluxcd
%defattr(-,root,root,-)
%{helm_folder}/%{app_tarball_fluxcd}