...
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.
...
Attribute | Qualifier | Cardinality | Content | Description |
---|---|---|---|---|
Id | M | 1 | String | Asd local unique name for the enhanceClusterCapabilities instance |
minKernelVersion | M | 1 | String | Describes the minimal required Kernel version, e.g. 4.15.0. Coded as displayed by linux command uname –r |
requiredKernelModules | M | 0..1 | List of String | Required kernel modules are coded as listed by linux lsmod command, e.g. ip6_tables, cryptd, nf_nat etc. |
conflictingKernelModules | M | 0..1 | List of String | Kernel 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 | M | 0..1 | List of String | List 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 | M | 0..1 | List 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. |
secondaryInterfacePlugin | M | 0..1 | String | The plug-in name / revision of the operator to handle secondary interface (e.g. Multus-CNI, v3.8) |
References:
- Initial proposal and the background information can be found at: Application Service Descriptor (ASD) and packaging Proposals for CNF - Developer Wiki - Confluence (onap.org)