Versions Compared

Key

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


datatypeonap.networkInterfaceRequirements
Code Block
title tosca.datatypedatatypes.onapasd.extCpdData
collapsetrue
data_typestosca.datatypes.asd.extCpdData:
    extCpdDataversion: 0.1
    versionderived_from: 1.0tosca.datatypes.Root  
     description: "Describes the datatype for external connection point definition data"
    properties:
      id:
        description: "The identifier of this extCpdData"
        required: true
        type: string
      virtualLinkRequirementdescription: 
        description: >
          Refers in anThis abstractproperty waydescribes tofor thea networkparticular orExtCpd multipleinstance networks
 that 
          thewhat ExtCpdservice shall be exposed on (ex: OAM, EndUser, backhaul, LI, etc)it exposes.
        required: true
        type: string       
       networkInterfaceRequirements:  virtual_link_requirement: 
        description: >
          DetailsRefers containerin implementationan specificabstract requirementsway onto 
the network or multiple networks that 
    the NetworkAttachmentDefinition
     the ExtCpd shall required:be false
exposed on (ex: OAM, EndUser, backhaul, LI, etc)
 type: datatype.networkInterfaceRequirements
      inputParamMappingsrequired: true
        descriptiontype: >
string       
   Information on what helm chart input parameters that 
 network_interface_realization_requirements:
        description: >
      are required to be configured for this extCpdDetails container implementation specific requirements on 
          the NetworkAttachmentDefinition
        required: false
        type: datatype.paramMappingstosca.datatypes.asd.networkInterfaceRequirements
      resourceMappinginput_param_mappings:
        description: >
          KubernetesInformation on APIwhat resourcehelm namechart forinput theparameters resourcethat manifest
 for the service
       are required: false
to be configured for this extCpd
        required: false
        type: string

Code Block
title
tosca.
datatypes.
collapsetrue
data_types:asd.paramMappings
   networkInterfaceRequirements:
    version: 1.0resource_mapping:
    description: "Describes the datatype fordescription: network>
 interface requirements"
    properties:
    Kubernetes API trunkMode:
resource name for the resource manifest for the description:service, >
          ingress controller or pod
  Information  about  whether  therequired: CPfalse
 instantiated from this Cp is in Trunk type: string


Code Block
title tosca.datatypes.asd.networkInterfaceRequirements
collapsetrue
tosca.datatypes.asd.networkInterfaceRequirements:
    derived_from: tosca.datatypes.Root  
    version: 0.1
mode (802.1Q or other). 
            description: "Describes the Whendatatype operatingfor innetwork "trunkinterface moderequirements",
 the Cp is capableproperties:
 of carrying traffic for several VLANs. 
 trunk_mode:
        description: >
       Absence of this property implies that trunkMode is notInformation configuredabout forwhether the CP instantiated from this Cp i.e.is 
               Itin isTrunk equivalent to boolean value "false".
        required: false
        type: boolean
      ipam: 
        description: >
              The default value ("infraProvided") means that the CNI specifies how IPAM is done and assigns 
mode (802.1Q or other). When operating in "trunk mode", 
               the Cp is capable of carrying traffic for several VLANs. 
               Absence of this property implies that trunkMode is not configured 
               for the IP address Cp i.e. It is equivalent to theboolean podvalue interface"false". 
        required required: falsetrue
        type: stringboolean
        constraintsdefault: false
      ipam: 
       - valid_valuesdescription: ["infraProvided", "orchestrated", "userManaged"]
> 
            interfaceType:
  Identifies whether application expects IP address assignment description:to >be 
               This attribute is applicable formanaged passthroughby andthe memifcluster interfaces.infrastructure 
(CNI IPAM plugin), or 
         The default value is ”kernel.netdev”.​ 
    configured by orchestrator via for example helm input parameter, 
              or if IP assignment is handled by the application itself.
       required required: falsetrue
           type: string
        constraints:
          - valid_values: ["kernel.netdevinfraProvided", "direct.userdriverorchestrated", "direct.kerneldriver", "direct.bond", "userspace"]
 userManaged"]
        default: "infraProvided"
      interfaceOptioninterface_type:
        description: > 
             ThisIndicates attributewhat istype applicableof fornetwork passthroughinterface andthe memifapplication interfacesexpects. 
            Kernel Thebased defaultvirtual valuenetdev is ”kernel.netdev”.​ 
        required: falsebased on CNIs such as ovs | bridge | 
        type: list
   macvlan | ipvlan, or PCIe entry_schema:
dev directly visible in application 
         type: string
  namespace with kernel or userspace driver or bonded with the  Bond constraints:
            CNI, or userspace-CNI based network interface -
 valid_values: [“virtio", "memif“]
     interfaceRedundancy:
        description: > (requires DPDK-OVS/VPP vSwitch).
          required: true
      Default  valuetype: is "infra-provided”, which means that the infrastructure is expected to provide 
string
        constraints:
          - valid_values: ["kernel.netdev", "direct.userdriver", "direct.kerneldriver",  network redundancy for the pod interface. Value "none" means that the application has no 
             requirement on network redundancy. Value ”matedPair” means that the Pod asks for a mated pair 
      "direct.bond", "userspace"]
        default: "kernel.netdev"
      interface_option:
        description: > 
            This attribute describes verified realization options for the 
            network interface in question. Currently listed options 
       of non-redundant left/right network attachments (typicallyvirtio and SRIOVmemif) are applicable for the interfaceType “userspace”.
        required: false
        type: list
        entry_schema:
              type: string
              constraints:
                  - valid_values: [“virtio", "memif“]
     interface_redundancy:
        description: > 
             Identifies switch-plane redundancy method the application uses, 
             and handles redundancy on 
             application level. The same set of networks shall be configured on both interfaces. 
        required: false that node infrastructure is required to comply with.
             "infraProvided", “left” and “right”: The container sees a 
             single vNIC that a) the infrastructure bonds over both switchplanes 
             or b) that is connected to the network via only left or 
             right the switchplane.
             The other cases are for a mated pair of vnics connecting to 
             same network, but where one vNIC connects
             via left switch plane and the other via right switch plane, 
             and where the application manages the redundancy. 
             "activePassiveBond": the application bonds with move of MAC address. 
             "activeActiveBond“: bonded left/right links must be part of a multi-chassis LAG 
             "activePassiveL3": application will move application IP address between the vNICs.
             "activeActiveL3": the application uses anycast/ECMP.
        required: true
        type: string
        constraints:
          - valid_values: ["infraProvided", "actPassBond", "actActBond", "actPassL3", "actActL3", "Left", "Right"] 
        default: "infraProvided"
      nic_options:
        description: > 
             Identifies for the direct.userdriver interface type, the physical 
             nics the driver is verified to work with.
             Allowed values for nic types must be handled via a registry or be standardized.
        required: false
        type: list
        entry_schema:
              type: string 


Code Block
themeConfluence
title tosca.datatypes.asd.paramMappings
collapsetrue
tosca.datatypes.asd.paramMappings:
    version: 0.1
    derived_from: tosca.datatypes.Root  
    description: "Describes the datatype for parameter mapping"
    properties:
      loadbalancer_IP:
        description: >
              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 extCpdData represents.
              Note: The format of the Content strings is specific for each different 
              orchestration templating technology used (Helm, Teraform, etc.). 
              Currently only a format for use with Helm charts is suggested:
              "<helmchartname>:[<subchartname>.]^(0..N)[<parentparamname>.]^(0..N)<paramname>".  
              Whether the optional parts of the format are present depends on how the 
              parameter is declared in the helm chart. An example is: 
              "chartName:subChart1.subChart2.subChart3.Parent1.Parent2.Parent3.LBIP". 
        required: false
        type: string
      external_IPs:
        description: >
              When present, this attribute specifies the name of the deployment 
              artifact input parameter through which the orchestrator can 
              configure the extermalIPs parameter of the K8s service or ingress 
              controller, or the pod network interface annotation, that the 
              extCpdData represents.
              Note: The format of the Content strings is specific for each different 
              orchestration templating technology used (Helm, Teraform, etc.). 
              Currently only a format for use with Helm charts is suggested:
              "<helmchartname>:[<subchartname>.]^(0..N)[<parentparamname>.]^(0..N)<paramname>".  
              Whether the optional parts of the format are present depends on how the 
              parameter is declared in the helm chart. An example is: 
              "chartName:subChart1.subChart2.subChart3.Parent1.Parent2.Parent3.extIP". 
        required: false
        type: list
        entry_schema:
           type: string
      nad_names: 
        description: >
              Specifies, for an extCpdData respesenting a secondary network interface,
              the name(s) of the deployment artifact input parameter(s) through which 
              the orchestrator can provide the names of the network attachment 
              definitions (NADs) the orchestrator has created as base for the network 
              interface the extCpdData represents. 
              Note 1: When the extCpdData represent a networkRedundant/mated-pair of 
              sriov interfaces, there are references to 2 or 3 related NADs needed 
              to be passed, while for other interface types only one NAD reference 
              is needed to be passed.
              Note 2: The format of the Content strings is specific for each different 
              orchestration templating technology used (Helm, Teraform, etc.). 
              Currently only a format for use with Helm charts is suggested:
              "<helmchartname>:[<subchartname>.]^(0..N)[<parentparamname>.]^(0..N)<paramname>".  
              Whether the optional parts of the format are present depends on how the 
              parameter is declared in the helm chart. An example is: 
              chartName:"subChart1.subChart2.subChart3.Parent1.Parent2.Parent3.nadName".
              Note 3: A direct attached (passthrough) network interface, such as an sriov 
              interface, attaches to a network via only one of the two switch planes 
              in the infrastructure.
              When using a direct attached network interface one therefore commonly in a 
              pod uses a mated pair of sriov network attachments, where each interface 
              attaches same network but via different switchplane.
              The application uses the mated pair of network interfaces as a single 
              logical “swith-path-redundant” network interface – and this is represented 
              by a single extCpdData. 
              Also there is a case where a third “bond” attachment interface is used in 
              the pod, bonding the two direct interfaces so that the application do not 
              need to handle the redundancy issues – application just uses the bond interface.
              In this case, all three attachments are together making up a logical 
              “switch-path-redundant” network interface represented by a single extCpdData. 
              When three NADs are used in the extCpdData the NAD implementing the bond attachment 
              interface is provided through the parameter indicated in the third place in 
              the nadNames attribute.
        required: false
        type: list
        entry_schema:
           type: string
      nad_namespace: 
        description: >
              Specifies, for an extCpdData respesenting a secondary network interface,
              the name of the deployment artifact input parameter through which the orchestrator 
              can provide the namespace where the NetworkAttachmentDefinitions (NADs) are located.
              Attribute may be omitted if the namespace is same as the application 
              namespace.
              Note: The format of the Content strings is specific for each different 
              orchestration templating technology used (Helm, Teraform, etc.). 
              Currently only a format for use with Helm charts is suggested:
              "<helmchartname>:[<subchartname>.]^(0..N)[<parentparamname>.]^(0..N)<paramname>".  
              Whether the optional parts of the format are present depends on how the 
              parameter is declared in the helm chart. An example is: 
              "chartName:subChart1.subChart2.subChart3.Parent1.Parent2.Parent3.NameSpace". 
        required: false
        type: string 


Code Block
title tosca.datatypes.asd.enhancedClusterCapabilities
collapsetrue
tosca.datatypes.asd.enhancedClusterCapabilities:
    version: 0.1
    derived_from: tosca.datatypes.Root 
    description: "Describes the datatype for parameter mapping"
    properties:
      min_kernel_version:
        description: >
               Describes the minimal required Kernel version, e.g. 4.15.0. 
               Coded as displayed by linux command uname –r
        required: true
        type: string  
      required_kernel_modules:
        description: > 
             Required kernel modules are coded as listed by linux lsmod command, 
             e.g. ip6_tables, cryptd, nf_nat etc.​ 
        required: false
        type: list
        entry_schema:
              type: string 
      conflicting_kernel_modules:
        description: > 
             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.​ 
        required: false
        type: list
        entry_schema:
              type: string   
      required_custom_resources:
        description: >               
            List the custom resource kinds required to be supported in the target 
            environment. The list shall include those custom resource kinds which 
            are not delivered with the application.			 
        required: false
        type: list
        entry_schema:
              type: tosca.datatypes.asd.customResourceRequirement
      cluster_labels:
        description: > 
             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).
             Example: 
             ClusterLabels
               - feature.node.kubernetes.io/cpu-cpuid.AESNI: true               
        required: false
        type: list
        entry_schema:
              type: string
      required_plugin:
        description: a list of the name of the required K8s plugin
        required: false
        type: list
        entry_schema:
              type: tosca.datatypes.asd.requiredPlugin


Code Block
title tosca.datatypes.asd.customResourceRequirement
collapsetrue
tosca.datatypes.asd.customResourceRequirement: 
       version: 0.1
       derived_from: tosca.datatypes.Root 
       description: > 
           kind: "Redis", apiVersion: "kubedb.com/v1alpha1" 
       properties: 
           kind:
              description: "the name of the custom resource requirement"
              type: string 
              required: true 
           api_version:
              description: "the api version of the custom resource requirement"
              type: string 
              required: true 


Code Block
title tosca.datatypes.asd.requiredPlugin
collapsetrue
tosca.datatypes.asd.requiredPlugin: 
       version: 0.1
       derived_from: tosca.datatypes.Root 
       description: "the required K8s plugin"
       properties: 
        type: string
      name:
  constraints:
           - valid_valuesdescription: ["infraProvided", "actPassBond", "actActBond", "actPassL3", "actActL3", "Left", "Right"] 
     nicOptions:
"the name of the required K8s plugin"
              type: string 
            description: > 
required:  true  
         nics a direct user space driver theversion:
 application is verified to  work with. Allowed values from ETSI registry.​ 
description: "the  version  of  the required: K8s falseplugin"
        type: list
    type:    entry_schema:string 
              typerequired: string
true