config/sysinv/sysinv/sysinv/sysinv
Igor Soares ea00765271 Introduce support for multiple application bundles
Parse the metadata of all application bundles under the helm application
folder and save to the kube_app_bundle table. This is done during sysinv
startup and when a new ostree commit is deployed.

The auto update logic was changed to enable retrieving metadata from
the database for all available bundles of a given app and compute which
bundle should be used to carry out the upgrade.

The bundle choice is done based on the minimum and maximum Kubernetes
versions supported by the application. If multiple bundles fit that
criteria then the application with the highest version number is chosen.

The 65-k8s-app-upgrade.sh script also takes into account multiple
bundles during the platform upgrade activation step, prioritizing
lowest versions available to ensure compatibility with the Kubernetes
version carried over from the N release. A follow-up change will improve
this mechanism to discover specific app versions.

When platform patches are applied and the ostree is changed then the
content of the helm application folder is reevaluated and the database
updated accordingly if there are new or removed bundles.

Test plan:
PASS: build-pkgs -a & build-image
PASS: Fresh AIO-SX install.
PASS: Fresh AIO-DX install.
PASS: Manually place multiple tarballs of one application with
      different versions under /usr/local/share/applications/helm/
      and check if the app is updated correctly.
PASS: Build a reboot required patch that removes the istio
      bundle and adds a new metrics-server version.
      Apply the reboot required patch.
      Check if istio was removed from the kube_app_bundle table.
      Check if the metrics-server previous version was removed from the
      kube_app_bundle table.
      Check if the metrics-server new version was added to the
      kube_app_bundle table.
      Check if metrics-server was updated to the new version added
      to the database.
PASS: Build a no reboot required patch that does not restart
      sysinv, removes the istio bundle and adds a new metrics-server
      version.
      Apply the no reboot required patch.
      Check if istio was removed from the kube_app_bundle table.
      Check if the metrics-server previous version was removed from the
      kube_app_bundle table.
      Check if the metrics-server new version was added to the
      kube_app_bundle table.
      Check if metrics-server was updated to the new version added
      to the database.
PASS: Build a no reboot required patch that restarts sysinv,
      removes the istio bundle and adds a new metrics-server version.
      Apply the no reboot required patch.
      Check if istio was removed from the kube_app_bundle table.
      Check if the metrics-server previous version was removed from the
      kube_app_bundle table.
      Check if the metrics-server new version was added to the
      kube_app_bundle table and was updated.
      Check if metrics-server was updated to the new version added
      to the database.
PASS: Install power-metrics on stx-8.
      Run platform upgrade from stx-8 placing two different versions of
      metrics-server under /usr/local/share/applications/helm/.
      Check if default apps and metrics-server were properly updated
      during upgrade-activate step.
      Check if power-metrics was auto updated after upgrade-complete
      step.

Story: 2010929
Task: 49097

Change-Id: I46f7cb6ebc59ad49157e9044a4937a406313671e
Signed-off-by: Igor Soares <Igor.PiresSoares@windriver.com>
2024-01-15 17:49:29 -03:00
..
agent MGMT address_pool reconfiguration for AIO-SX 2023-11-20 14:59:08 -03:00
api Merge "Check duplicate in host-record service parameter" 2024-01-04 16:52:19 +00:00
cert_alarm Clear ssl_ca certificate alarm 2023-12-21 14:32:25 -05:00
cert_mon Merge "Disable cert-mon audit for subclouds being rehomed" 2023-11-09 21:37:53 +00:00
cmd Merge "Command line method to validate app metadata." 2023-12-11 19:39:45 +00:00
common Introduce support for multiple application bundles 2024-01-15 17:49:29 -03:00
conductor Introduce support for multiple application bundles 2024-01-15 17:49:29 -03:00
db Create kube_app_bundle table 2024-01-08 16:53:40 -03:00
helm Enforce Helm chart version uniqueness 2023-10-16 16:12:23 -03:00
loads Update extract playbooks target directory 2023-05-02 13:50:36 +00:00
objects Create kube_app_bundle table 2024-01-08 16:53:40 -03:00
openstack Restore openstack/common/context file 2023-05-24 12:43:16 +00:00
puppet Merge "add post-down op for vlan's data class interfaces" 2023-12-13 16:00:28 +00:00
tests Introduce support for multiple application bundles 2024-01-15 17:49:29 -03:00
zmq_rpc Use FQDN for MGMT network 2023-10-31 20:45:40 -04:00
__init__.py Fix tox certificate issues in python2 2021-11-18 15:14:51 -06:00
_i18n.py Eliminate sdist step from sysinv zuul 2021-04-12 09:34:17 -05:00
netconf.py Fix bad syntax in requirements.txt file 2021-09-14 09:15:56 -05:00
sanity_coverage.py Fix tox-docs failing sphinx 2022-05-31 13:56:30 +00:00
version.py Remove python2 jobs from zuul for this repo 2023-02-07 19:36:45 +00:00