Feature proposal: Manual scaling for native k8s charms
Manual scaling for native K8s charms
Proposer
Emin Aktas (ULAK Haberlesme A.S) David Garcia (Canonical)
Type
Feature
Target MDG/TF
IM, LCM, N2VC, osmclient?
Description
Add the support for scaling native kubernetes charms (manually).
These charms are currently deployed using juju-bundles. A juju-bundle, is a set of K8s applications that are deployed together, as part of the same KDU. With the current status, we can set some initial values for the scale of each application at instantiation time (inside the juju-bundle).
This feature aims to add the needed changes in OSM to be able to perform scaling operations.
Changes in the IM: Right now the IM only includes fields related to scaling for vdus, but not for KDUs. This feature will add the missing bits in the IM in order to support scaling KDUs.
Changes in the LCM: Manual-scaling operations are received by the NBI, which then informs LCM to perform the correspondent action. Currently, LCM does not implement any code for scaling KDUs. Changes in the LCM are needed for the following aspects: - get the information related to scaling from the VNFd - receive messages from the NBI in order to perform the scaling operations at KDUs - do the appropiate calls to N2VC to perform the scaling operation
Changes in N2VC: Add the functions needed to call the VCA in order to perform the scaling operations in k8s native charms.
Changes in the osmclient: This feature can reuse the existing methods in the osmclient, create new ones for scaling kdus, or modifying the existing ones. That should be discussed and decided in the design document.
Considerations
There are two important things that the design for this feature must consider:
-
KDUs include several applications: Unlike a VDU, that usually represents only one single application, KDUs (both juju-bundles and helm-charts) can contains several number of applications. When performing a scaling of a KDU, the users should be able to specify the concrete application from the KDUs that they want to scale.
-
Instantiation-level parameters for scaling might not be needed: For VDUs, there are fields in the current IM to express the initial number of units for each application. This is not needed at all for KDUs. For both juju-bundles and helm-charts the initial scaling number of a particular application is specified inside the juju-bundle or helm-chart.
Definition of done
This feature can be consider done when an OSM user is able to instantiate a juju-bundle, and perform a manual scaling of a particular application in the juju-bundle.