Versions Compared

Key

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

...

Deployment Item Information Element

Attribute

Qualifier

#

Content

Description

deploymentItemId

M

1

Identifier

The identifier of this deployment item

artifactType

M

1

String/enum

Specify artifact type. e.g. Helm chart, helmfile, CRD etc.

artifactId

M

1

Identifier (reference to)

Reference to a DeploymentArtifact

deploymentOrder

M

0..1

Integer

Specifies the deployment stage that the DeploymentArtifact belongs to. A lower value specifies that the DeploymentArtifact belongs to an earlier deployment stage, i.e. needs to be installed prior to DeploymentArtifact with higher deploymentOrder values.

lifecycleParameters

M

0..1

List of strings

list of parameters that can be overridden at deployment time (e.g., values for values.yaml in the chart this item references)


asdExtCpd Information Element

AttributeQualifierCardinalityContentDescription
descriptionM1StringDescribes the service exposed.
virtualLinkRequirementM1StringRefers in an abstract way to the network or multiple networks that the ExtCpd shall be exposed on (ex: OAM, EndUser, backhaul, LI, etc). The intent is to enable a network operator to take decision on to which actual VPN to connect the extCpd to. NOTE 1.
networkInterfaceRealizationRequirementsM0..1datatype.networkInterfaceRealizationRequirementsDetails container implementation specific requirements on the NetworkAttachmentDefinition to . See NOTE 2 & 3.
inputParamMappingsM0..1datatype.extCpd.ParamMappingsInformation on what parameters that are required to be provided to the deployment tools for the asdExtCpd instance.
resourceMappingM0..1StringKubernetes API resource name for the resource manifest for the service, ingress or pod resource declaring the network interface. Enables, together with knowledge on namespace, the orchestrator to lookup the runtime data related to the extCpd.

NOTE 1: Corresponds more or less to a virtual_link requirement in ETSI NFV SOL001.
NOTE 2: Applies only for ExtCpds representing secondary network interfaces in a pod.
NOTE 3: Several ExtCpd may refer to same additional network interface requirements.

networkInterfaceRealizationRequirements Information Element

AttributeQualifierCardinalityContentDescription
trunkModeM0..1”false” | ”true”If not present or  set to”false”, means that this interface shall connect to single network. If set to ”true” then the network interface shall be a trunk interface (connects to multiple VLANS).
ipamM0..1"infraProvided", "orchestrated", "userManaged"The default value ("infraProvided") means that the CNI specifies how IPAM is done and assigns the IP address to the pod interface. 
interfaceType​M0..1

"kernel.netdev", "direct.userdriver", "direct.kerneldriver", "direct.bond", "userspace

This attribute is applicable for passthrough and memif interfaces. Value default value is ”kernel.netdev”.​ 
interfaceOptionsM0..N

"virtio",
"memif"

Alternative vNIC configurations the network interface is verified to work with.

interfaceRedundancyM0..1"infraProvided", "activePassiveBond", "activeActiveBond", "activePassiveL3", "activeActiveL3",
 ”bondCni”,
"Left", "Right"

”infraProvided” means that the application sees one vNIC but that the infrastruture provides redundant access to the network via both switch planes. ”Left” and ”right” indicates a vNIC connected non-redundantly to the network via one specific (left or right) switchplane. All other attributes indicates a mated vNIC pair in the Pod, one connecting to the network via left switchplane and the other connecting to the network via the right switchplane, and with application using them together as a redundant network interface using a particular redundancy method that need to be accomodated in the node infrastructure.
"activeActiveBond": The bonded left/right links must be part of a multi-chassis LAG in active-active mode
"activePassiveBond": Interfaces bonded in active-passive mode in the application with move of bond MAC address. No specific requirements on DC fabric.
"activePassiveL3":  Move of application IP address
"activeActiveL3": Anycast/ECMP
”bondCni” ; the mated pair network interfaces are used via a 3rd bond cni based network interface.

nicOptionsM0..1"examples": ["i710", "mlx-cx5v"]

nics a direct user space driver the application is verified to work with. Allowed values from ETSI registry.


datatype.ExtCpd.ParamMappings Information Element

AttributeQualifierCardinalityContentDescription
ipAddressParameter
loadbalancerIPM0..1String

When present, this attribute specifies the name of the deployment artifact input parameter through which the orchestrator can configure the loadbalancerIP parameter of the K8s service or ingress controller that the ExtCpd represents.

externalIPsM0..1String

When present, this attribute specifies the name of the deployment artifact input parameter through which the orchestrator can configure the

IP address(es), ipv4 and/or IPv6, for this asdExtCpd

extermalIPs parameter of the K8s service or ingress controller, or the pod network interface annotation, that the ExtCpd represents. The param name and provided IP address(es) value will be passed to the deployment tool when deploying the DeploymentArtifacts. Note 1

nadNameM0..1[String]1..N, Note 2, Note 3

These attributes specifies, for an asdExtCpd respesenting a secondary network interface, the name(s) of the deployment artifact input parameters through which the orchestrator can configure the corresponding network annotation in the pod manifest with references to the NAD(s) to be used for creating the network interface.
It is expected that the NADs themselves have been created prior to the deployment of the deployment artifacts.

nadNamespaceM0..1String

Note 1: When the asdExt Cpd represent a networkRedundant/mated-pair of sriov interfaces, there are references to 2 or 3 related NADs needed to be passed, lwhile for other interface types only one NAD reference is needed to be passed.

...

enhancedClusterCapabilities Information Element

AttributeQualifierCardinalityContentDescription
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 may conflict with use of proprietary user space SCTP stack provided by the application.

requiredCustomResources

>kind

>apiVersion

M0..NStructure (inlined)

List the required custom resources types in the target environment, identifying each by the "kind" and "apiVersion" field in the K8S resource manifests and in the application. The list shall include those custom resource types which are not delivered with the application.

Example:
requiredCustomResources: 
-{kind: "Redis", apiVersion: "kubedb.com/v1alpha1"}


clusterLabels M0..1List of String

This attribute allows to associate arbitrary labels to clusters.

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

clusterLabels follow the Kubernetes label key-value-nomenclature (https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/). It is recommended that labels follow a standardized meaning e.g. for node features (https://kubernetes-sigs.github.io/node-feature-discovery/v0.9/get-started/features.html#table-of-contents) or are mutually agreed between ASD supplier and operators.

Example:

ClusterLabels
- feature.node.kubernetes.io/cpu-cpuid.AESNI: true

requiredPluginM0..NStringA list of the names of the required K8s plugin (e.g. multus v3.8)


References: 

...