Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

In today, many complex applications are consisting in a mixed, complex workload, that is described in many Kubernetes resources, e.g. to be run on a certain cluster, etc.  In order to deploy the application, the orchestration task would be requiring dealing with different abstract layers of resources, different templates system mapping, and application packaging.  Another challenge is to keep up with changes in the cloud infrastructures features enhancement mapping into abstract resource template.

Initial proposal and the background information can be found at: Application Service Descriptor (ASD) and packaging Proposals for CNF - Developer Wiki - Confluence (onap.org)

The proposal focuses on two main parts:

...

The attributes “enhancedClusterCapabilities” will be used for multi-app or multi-cloud orchestrationprovides information which is used to aid placement of the application service on a suitable cluster.

Finally, “deploymentItems” is a list of deployment items, i.e. Helm Charts, that together can deploy an application. The table below shows the information element of these deployment item descriptors.

...

AttributeQualifierCardinalityContentDescription
IdM1StringAsd local unique name for the enhanceClusterCapabilities instance
minKernelVersionM1StringDescribes the minimal required Kernel version, e.g. 4.15.0. Coded as displayed by linux command uname –r
requiredKernelModulesM0..1List of StringRequired kernel modules are coded as listed by linux lsmod command, e.g. ip6_tables, cryptd, nf_nat etc.
conflictingKernelModulesM0..1List of StringKernel modules, which must not be present in the target environment. The kernel modules are coded as listed by linux lsmod command, e.g. ip6_tables, cryptd, nf_nat etc. Example: Linux kernel SCTP module, which would conflict with use of proprietary user space SCTP stack provided by the application.
requiredCRDs M0..1List of StringList the required CRDs and their versions in the target environment. The list shall include those CRDs which are not delivered with the application. Example: Redis CRD, version 5.0.
clusterLabels M0..1List of String

This attribute allows to associate arbitrary labels to clusters.

These can indicate special infrastructure capabilities (e.g., NW acceleration, GPGPU compute, etc.). The intent of these labels is to serve as a set of values that can help in application placement decisions.

This can be specified with the attribute

-m: Mandatory, means deployment is not attempted if such support is not available in the target system

-p: As preference - it means orchestrator will try to select a system with specific requirements, but if not found it will attempt deployment in a system not having such HW. 
secondaryInterfacePluginM0..1StringThe plug-in name / revision of the operator to handle secondary interface (e.g. Multus-CNI, v3.8)


References: