Provide an API to control enabling/disabling application charts

Extend the helm_charts API to support an enable attribute. This
attribute is set on application upload and stored in the existing
system_overrides element of the helm_overrides table.

Changes include
- Add application metadata support for disabling charts on application
  upload.
- Add the system helm-chart-attribute-modify command to allow enabling
  and disabling charts from the command-line. This removes the current
  implementation of adding a faux label via the system host-label-assign
  command to enable and disable charts.
- Add a --long option to helm-override-list to enable easy viewing of
  what charts are enabled for a given application
- Enhance the ArmadaManifestOperator to make this a base class for
  application specific operator classes. Introduce classes for the
  stx-openstack and platform-integ-apps manifests with specific
  knowledge of the charts and chart groups within each class.
- Use stevedore to load the application specific manifest operators.
  This will allow future packaging of manifest operators with new
  application tarballs.
- Move the helm chart definition from the common/constants.py to
  helm/common.py. This limits helm/armada specific data leakage outside
  of the helm directory, which we may carve out of sysinv in the future.
- Clean up the code related to the faux labels: LABEL_IRONIC,
  LABEL_BARBICAN, and LABEL_TELEMETRY
- Rework the manifest update code in the plugins to include checks for
  if the chart for a given application has been disabled.

Change-Id: If284f622ceac48c4ffd74e7022fdd390971d0fd8
Closes-Bug: #1833746
Depends-On: I418f0fe4978946a44e512c3025817fb27216c078
Signed-off-by: Robert Church <robert.church@windriver.com>
This commit is contained in:
Robert Church 2019-07-21 17:41:24 -04:00
parent 85e9f81fbc
commit 93cd3d08f1
2 changed files with 11 additions and 0 deletions

View File

@ -1,5 +1,6 @@
%global helm_folder /usr/lib/helm
%global armada_folder /usr/lib/armada
%global app_folder /usr/lib/application
%global toolkit_version 0.1.0
%global helmchart_version 0.1.0
@ -70,6 +71,8 @@ rm ./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 *.tgz ${RPM_BUILD_ROOT}%{helm_folder}
install -d -m 755 ${RPM_BUILD_ROOT}%{armada_folder}
@ -80,3 +83,4 @@ install -p -D -m 755 manifests/*.yaml ${RPM_BUILD_ROOT}%{armada_folder}
%defattr(-,root,root,-)
%{helm_folder}/*
%{armada_folder}/*
%{app_folder}/*

View File

@ -0,0 +1,7 @@
disabled_charts:
- aodh
- barbican
- ceilometer
- gnocchi
- ironic
- panko