Versions Compared

Key

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

...

Code Block
title tosca.datatype.asd.extCpdData
collapsetrue
extCpdData:
    version: 0.1
    derived_from: tosca.datatypes.Root  
    description: "Describes the datatype for external connection point definition data"
    properties:
      id:
        description: "The identifier of this extCpdData"
        required: true
        type: string
      description:
        description: ">
            This property describes for a particular ExtCpd instance 
            what service it exposes."
        required: true
        type: string 
      virtualLinkRequirement: 
        description: >
          Refers in an abstract way to the network or multiple networks that 
          the ExtCpd shall be exposed on (ex: OAM, EndUser, backhaul, LI, etc)
        required: true
        type: string       
      networkInterfaceRequirements:
        description: >
          Details container implementation specific requirements on 
          the NetworkAttachmentDefinition
        required: false
        type: datatype.asd.networkInterfaceRequirements
      inputParamMappings:
        description: >
          Information on what helm chart input parameters that 
          are required to be configured for this extCpd
        required: false
        type: datatype.asd.paramMappings
      resourceMapping:
        description: >
          Kubernetes API resource name for the resource manifest for the service, 
          ingress controller or pod
        required: false
        type: string

...

Code Block
title tosca.datatype.asd.networkInterfaceRequirements
collapsetrue
networkInterfaceRequirements:
    derived_from: tosca.datatypes.Root  
    version: 0.1
    description: "Describes the datatype for network interface requirements"
    properties:
      trunkMode:
        description: >
               Information about whether the CP instantiated from this Cp is in
 Trunk mode (802.1Q or other). 
         in Trunk mode (802.1Q or other). When operating in "trunk mode", the
 Cp is capable             the Cp is capable of carrying traffic for several VLANs. 
               Absence of this property implies that trunkMode is not configured for
 the Cp i.e. 
           for the Cp i.e. It is equivalent to boolean value "false".
        required: true
        type: boolean
        default: false
      ipam: 
        description: > 
              Identifies whether application expects IP address assignment to be managed
 by the cluster 
          managed by the cluster infrastructure (CNI IPAM plugin), or 
              configured by orchestrator via for example helm input parameter, 
              or if IP assignment is handled by the application itself.
        required: true
        type: string
        constraints:
          - valid_values: ["infraProvided", "orchestrated", "userManaged"]
        default: "infraProvided"
      interfaceType:
        description: > 
            Indicates what type of network interface the application expects.
            Kernel based virtual netdev based on CNIs such as “ovsovs | bridge | macvlan
 | ipvlan, or  
       macvlan | ipvlan, or  PCIe dev directly visible in application 
            namespace with kernel or userspace driver or
 bonded with the Bond 
       or bonded with the Bond CNI, or userspace-CNI based network interface 
            (requires DPDK-OVS/VPP vSwitch).
          required: true
        type: string
        constraints:
          - valid_values: ["kernel.netdev", "direct.userdriver", "direct.kerneldriver", "direct.bond", "userspace"]
        default: "kernel.netdev"
      interfaceOption:
        description: > 
            This attribute describes verified realization options for the 
            network interface in question.
 Currently listed options 
        Currently  listed options (virtio and memif) are applicable for the interfaceType “userspace”.
        required: false
        type: list
        entry_schema:
              type: string
              constraints:
                  - valid_values: [“virtio", "memif“]
     interfaceRedundancy:
        description: > 
             Identifies switch-plane redundancy method the application uses, and
 that node            and 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 
             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          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"
      nicOptions:
        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
title tosca.datatype.asd.paramMappings
collapsetrue
paramMappings:
    version: 0.1
    derived_from: tosca.datatypes.Root  
    description: "Describes the datatype for parameter mapping"
    properties:
      loadbalancerIP:
        description: >
              When present, this attribute specifies the name of the deployment 
 artifact input parameter
           artifact input parameter through which the orchestrator can 
              configure the loadbalancerIP parameter of the K8s service 
              or ingress controller that the ExtCpd represents.
        required: false
        type: string
      externalIPs:
        description: >
              When present, this attribute specifies the name of the deployment artifact
  input parameter
           artifact input parameter through which the orchestrator can configure
 the extermalIPs             configure the extermalIPs parameter of the K8s service 
or ingress 
            or ingress controller, or the pod network interface annotation, that the 
              ExtCpd represents.
        required: false
        type: list
        entry_schema:
           type: string
      nadName: 
        description: >
              Specifies, for an ExtCpd respesenting a secondary network interface,
              the name(s) of the NetworkAttachmentDefinitions the orchestrator has created
                     created as base for the network interface the ExtCpd represents. 
        required: false
        type: list
        entry_schema:
           type: string
      nadNamespace: 
        description: >
              Specifies, for an asdExtCpd respesenting a secondary network interface,
              the namespace where the NetworkAttachmentDefinitions (NADs) are located.
              Attribute may be omitted if the namespace is same as the application 
              namespace.
        required: false
        type: string 

...

Code Block
title tosca.datatype.asd.enhancedClusterCapabilities
collapsetrue
enhancedClusterCapabilities:
    version: 0.1
    derived_from: tosca.datatypes.Root 
    description: "Describes the datatype for parameter mapping"
    properties:
      minKernelVersion:
        description: ">
               Describes the minimal required Kernel version, e.g. 4.15.0. 
               Coded as displayed by linux command uname –r"
        required: true
        type: string  
      requiredKernelModules:
        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 
      conflictingKernelModules:
        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 
          proprietary user space SCTP stack provided by the application.​ 
        required: false
        type: list
        entry_schema:
              type: string   
      requiredCustomResources:
        description: >               
            List the custom resource kinds required to be supported in the target environment.
 
           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
      clusterLabels:
        description: > 
             This attribute allows to associate arbitrary labels to clusters.
             These can indicate special infrastructure capabilities (e.g., NW acceleration, GPU
 compute, etc.). 
          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 (            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               
        required: false
        type: list
        entry_schema:
              type: string  
      requiredPodAnnotationsrequiredPlugin:
        description: > 
             Annotations required to be supported.
             Example that list requirement for Kubernetes cluster infrastructure support for the Multus network attachment annotations:
             requiredPodAnnotations: {"k8s.v1.cncf.io/networks", ... } 
  a list of the name of the required K8s plugin
       required required: false
        type: list
        entry_schema:
              type: string  

...