Add stx-fm-rest-api loci image

This change reorganizes the source directories of the stx-fm-rest-api
container to be reused by both CentOS and Debian Dockerfiles in order
to build the images having the corresponding OS-specic base.

As part of this, the fm-api, fm-rest-api, fm-common and
python-fmclient packages have been ported in order to generate deb
files that contain .whl.

Test plan:
PASS: Build debian iso and perform fresh install. Verify fm commands are
working as expected.
PASS: Build python3 wheels tarball on Debian. Verify fm, fm_api, fm_core
and fmclient .whl files are added.
PASS: Build Debian-based container and push it to a public registry.
Apply openstack application and update the fm-rest-api url to pull
this new image. Verify that:
    - pods are up and running with the new image/tag specified.
    - the container is running on Debian.
    - from inside the container, fm querys are working as expected.

Story: 2009831
Task: 46634

Depends-On: https://review.opendev.org/c/starlingx/config/+/862498

Signed-off-by: Enzo Candotti <enzo.candotti@windriver.com>
Change-Id: I2b35139f8775141e39f97a5a6037c5de2b4d5d76
This commit is contained in:
Enzo Candotti 2022-10-24 12:06:45 -03:00
parent 8a07de3ea1
commit cd0f5c38c2
13 changed files with 90 additions and 13 deletions

View File

@ -0,0 +1 @@
fm-rest-api

4
debian_stable_wheels.inc Normal file
View File

@ -0,0 +1,4 @@
fm-api-wheel
fm-common-wheel
fm-rest-api-wheel
python-fmclient-wheel

View File

@ -2,7 +2,7 @@ Source: fm-api
Section: admin
Priority: optional
Maintainer: Starlingx Developers <starlingx-discuss@lists.starlingx.io>
Build-Depends: debhelper-compat (= 13), dh-python, python3-setuptools, python3-all
Build-Depends: debhelper-compat (= 13), dh-python, python3-setuptools, python3-all, python3-wheel
Standards-Version: 4.4.1
Homepage: https://www.starlingx.io
@ -14,3 +14,8 @@ Description: Starlingx fault management api
active alarms.
.
This package installs the library for Python 3.
Package: fm-api-wheel
Architecture: all
Depends: ${python3:Depends}, ${misc:Depends}
Description: Contains python wheels for fm-api

View File

@ -0,0 +1 @@
usr/lib/python*/dist-packages/*

View File

@ -2,6 +2,14 @@
#export DH_VERBOSE = 1
export PYBUILD_NAME=fm-api
DEBIAN_DESTDIR := $(CURDIR)/debian/tmp
%:
dh $@ --with python3 --buildsystem=pybuild
override_dh_install:
python3 setup.py install -f --install-layout=deb --root=${DEBIAN_DESTDIR}
python3 setup.py bdist_wheel \
--universal \
-d ${CURDIR}/debian/fm-api-wheel/usr/share/python-wheels
dh_install

View File

@ -9,6 +9,7 @@ Build-Depends: debhelper-compat (= 13),
python3,
python3-dev,
python3-setuptools,
python3-wheel,
uuid-dev
Standards-Version: 4.5.1
Rules-Requires-Root: no
@ -26,15 +27,6 @@ Description: StarlingX fault management client library - header files
.
This package contains the header files
Package: fm-common
Architecture: any
Multi-Arch: same
Depends: ${misc:Depends}, ${python3:Depends}, ${shlibs:Depends}
Description: StarlingX fault management client library
StarlingX Fault Management Client Library that provides APIs for applications
to raise/clear/update active alarms. This package contains symbolic links,
header files, and related items necessary for software development.
Package: fm-common-doc
Architecture: all
Section: doc
@ -46,3 +38,16 @@ Description: StarlingX fault management client library - documentation
.
This package contains the documentation for fm-common
Package: fm-common
Architecture: any
Multi-Arch: same
Depends: ${misc:Depends}, ${python3:Depends}, ${shlibs:Depends}
Description: StarlingX fault management client library
StarlingX Fault Management Client Library that provides APIs for applications
to raise/clear/update active alarms. This package contains symbolic links,
header files, and related items necessary for software development.
Package: fm-common-wheel
Architecture: all
Depends: ${python3:Depends}, ${misc:Depends}
Description: Contains python wheels for fm-common

View File

@ -15,7 +15,11 @@ override_dh_auto_install:
LIBDIR=/usr/lib \
INCDIR=/usr/include \
CGCS_DOC_DEPLOY=/opt/deploy/cgcs_doc install
python3 setup.py install --install-layout=deb --root $(ROOT)
python3 setup.py install --install-layout=deb --skip-build --root $(ROOT)
python3 setup.py bdist_wheel \
--universal \
-d $(CURDIR)/debian/fm-common-wheel/usr/share/python-wheels
override_dh_fixperms:
dh_fixperms -XfmClientCli

View File

@ -20,6 +20,7 @@ Build-Depends: debhelper-compat (= 13),
python3-setuptools,
python3-sqlalchemy,
python3-wsme,
python3-wheel,
tsconfig
Standards-Version: 4.5.1
Rules-Requires-Root: no
@ -34,3 +35,8 @@ Depends: ${python3:Depends},
python3-paste
Description: Fault Management Openstack REST API
This package contains the Openstack REST API for fault management.
Package: fm-rest-api-wheel
Architecture: all
Depends: ${python3:Depends}, ${misc:Depends}
Description: Contains python wheels for fm-rest-api

View File

@ -1,4 +1,6 @@
etc/fm/fm.conf
etc/fm/policy.yaml
etc/init.d
usr/bin/
usr/lib/python*/dist-packages/*
usr/share/starlingx/pmon.d/fm-api.conf

View File

@ -11,6 +11,9 @@ export INITDIR=$(ROOT)/etc/init.d
dh $@ --with=python3 --buildsystem=pybuild
override_dh_auto_install:
python3 setup.py install -f --install-layout=deb --root=$(CURDIR)/$(ROOT)
python3 setup.py bdist_wheel --universal \
-d $(CURDIR)/debian/fm-rest-api-wheel/usr/share/python-wheels
install -d -m 755 $(INITDIR)
install -p -D -m 755 scripts/fm-api $(INITDIR)/fm-api
install -d -m 755 $(PMONDIR)

View File

@ -0,0 +1,26 @@
BUILDER=loci
LABEL=stx-fm-rest-api
# Set PROJECT=infra and PROJECT_REPO=nil because we are not cloning a repo
PROJECT=infra
PROJECT_REPO=nil
DIST_PACKAGES="postgresql fm-common"
DIST_REPOS="OS"
PIP_PACKAGES="
cgtsclient \
httplib2 \
keystone \
keystonemiddleware \
oslo.db \
oslo.log \
oslo.middleware \
oslo.policy \
oslo.versionedobjects \
PyMySQL \
python_neutronclient \
tsconfig \
pecan \
fm \
fm_api \
fm_core \
WSME"

View File

@ -2,7 +2,7 @@ Source: python-fmclient
Section: admin
Priority: optional
Maintainer: StarlingX Developers <starlingx-discuss@lists.starlingx.io>
Build-Depends: debhelper-compat (= 12), dh-python, python3-setuptools, python3-all, python3-pbr
Build-Depends: debhelper-compat (= 12), dh-python, python3-setuptools, python3-all, python3-pbr, python3-wheel
Build-Depends-Indep:
python3-oslo.utils,
python3-prettytable,
@ -23,3 +23,8 @@ Depends: ${python3:Depends},
bash-completion
Description: Client library for fault management
A python client library for Fault Management
Package: python-fmclient-wheel
Architecture: all
Depends: ${python3:Depends}, ${misc:Depends}
Description: Contains python wheels for python-fmclient

View File

@ -1,7 +1,14 @@
#!/usr/bin/make -f
#export DH_VERBOSE = 1
export PYBUILD_NAME=python-fmclient
export PYBUILD_NAME=fmclient
export PBR_VERSION=1.0.0
export ROOT=$(CURDIR)/debian/tmp
%:
dh $@ --with python3 --buildsystem=pybuild
override_dh_install:
python3 setup.py install -f --install-layout=deb --root=$(ROOT)
python3 setup.py bdist_wheel --universal -d ${CURDIR}/debian/python-fmclient-wheel/usr/share/python-wheels
dh_install