Versions Compared

Key

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


datatypenetworkInterfaceRequirements
Code Block
title tosca.datatypedatatypes.asd.extCpdData
collapsetrue
tosca.datatypes.asd.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
        virtualLinkRequirementdescription: 
        description: >
          Refers in anThis abstractproperty waydescribes tofor thea networkparticular orExtCpd multipleinstance networks that 
          the ExtCpd shallwhat beservice exposed on (ex: OAM, EndUser, backhaul, LI, etc)it exposes.
        required: true
        type: string 
      virtual_link_requirement:  
      networkInterfaceRequirements:
        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.asd.networkInterfaceRequirements
      inputParamMappingsrequired: true
        descriptiontype: >
string       
   Information on what helm chart input parameters that 
 network_interface_realization_requirements:
        description: >
          Details container implementation  are required to be configured for this extCpdspecific requirements on 
          the NetworkAttachmentDefinition
        required: false
        type: datatypetosca.datatypes.asd.paramMappingsnetworkInterfaceRequirements
      resourceMappinginput_param_mappings:
        description: >
          KubernetesInformation APIon resourcewhat namehelm forchart theinput resourceparameters manifest for the service, ingress controller or pod
       that 
          are required to be configured for this extCpd
        required: false
        type: string
Code Block
title
tosca.
datatypes.asd.
collapsetrue
networkInterfaceRequirements:paramMappings
    derived  resource_frommapping: tosca.datatypes.Root
     
    versiondescription: 0.1>
    description: "Describes the datatype for network interfaceKubernetes requirements"
API resource name for properties:
the resource manifest for the service, trunkMode:
        description: >
 ingress controller or pod
        required: false
     Information about whether type: string


Code Block
title tosca.datatypes.asd.networkInterfaceRequirements
collapsetrue
tosca.datatypes.asd.networkInterfaceRequirements:
    derived_from: tosca.datatypes.Root  
    version: 0.1
    description: "Describes the datatype for network interface requirements"
    properties:
      trunk_mode:
        description: >
  the CP instantiated from this Cp is in Trunk mode (802.1Q or other). 
               When operating in "trunk mode", the Cp is capable of carrying traffic for several VLANs. 
             Information about Absencewhether ofthe thisCP propertyinstantiated impliesfrom thatthis trunkModeCp is not
 configured for the Cp i.e. 
         in Trunk mode (802.1Q or other). ItWhen isoperating equivalentin to boolean value "false".
        required: true
        type: boolean
"trunk mode", 
               the Cp is capable default:of false
carrying traffic  for  several ipam:VLANs. 
        description: > 
           Absence  of Identifiesthis whetherproperty applicationimplies expectsthat IPtrunkMode addressis assignmentnot toconfigured be
 managed by the cluster 
          for the Cp i.e. infrastructureIt (CNIis IPAMequivalent plugin),to orboolean configured by orchestrator via for example helm input parameter, value "false".
        required: true
        type: boolean
        default: false
      ipam: 
 or if IP assignment is handled by thedescription: application> itself.
         required: true
        type:Identifies string
whether application expects IP address assignment to be constraints:
          -  valid_values: ["infraProvided", "orchestrated", "userManaged"]
        default: "infraProvided"
      interfaceType:
 managed by the cluster infrastructure (CNI IPAM plugin), or 
            description: > 
configured by  orchestrator  via  for  example  helm Indicatesinput whatparameter, type
 of network interface the application expects.
        or if IP assignment Kernelis basedhandled virtualby netdevthe basedapplication onitself.
 CNIs  such  as  “ovs required: |true
 bridge |  macvlan  |  ipvlan, or  type: string
        constraints:
    PCIe dev directly visible in application namespace with kernel or userspace driver or- valid_values: ["infraProvided", "orchestrated", "userManaged"]
        default: "infraProvided"
    or bonded with the Bond CNI, or userspace-CNI based network interface (requires DPDK-OVS/VPP vSwitch).
  interface_type:
        description: > 
             required: false
     Indicates what type of network interface the application expects.
   type: string
        constraints:
Kernel based virtual netdev based on CNIs such as ovs - valid_values: ["kernel.netdev", "direct.userdriver", "direct.kerneldriver", "direct.bond", "userspace"]| bridge | 
        default: "kernel.netdev"
      interfaceOption:
macvlan | ipvlan, or PCIe dev directly visible description:in >application 
             This attribute is applicable fornamespace passthroughwith andkernel memifor interfaces.userspace 
driver or bonded with the Bond 
       The default value is ”kernel.netdev”.​ 
        required: false CNI, or userspace-CNI based network interface 
        type: list
   (requires     entry_schema:
              DPDK-OVS/VPP vSwitch).
          required: true
        type: string
              constraints:
          -        - valid_values: [“virtio", "memif“]valid_values: ["kernel.netdev", "direct.userdriver", "direct.kerneldriver", "direct.bond", "userspace"]
        default: "kernel.netdev"
     interfaceRedundancy interface_option:
        description: > 
             IdentifiesThis switch-planeattribute redundancydescribes methodverified therealization applicationoptions uses,for andthe that
 node infrastructure is required to comply with.
     network interface in question. Currently listed options  "infraProvided", “left” and “right”: The container sees a single vNIC that a) the infrastructure bonds over both
      
            (virtio and memif) are applicable for the interfaceType “userspace”.
        required: false
       switchplanes or b) that is connected to the network via only left or right the switchplane.
type: list
        entry_schema:
              type: string
   The other cases are for a mated pair of vnics connecting toconstraints:
 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. valid_values: [“virtio", "memif“]
     interface_redundancy:
        description: > 
             Identifies switch-plane redundancy method the application uses, 
            "activeActiveBond“: bondedand left/rightthat linksnode mustinfrastructure beis partrequired ofto a multi-chassis LAG comply with.
             "activePassiveL3infraProvided": application will move application IP address between the vNICs.
, “left” and “right”: The container sees a 
             single vNIC  "activeActiveL3":that a) the application uses anycast/ECMP.
        required: true
infrastructure bonds over both switchplanes 
             or b) that type:is string
connected to the network via only left or constraints:
          - valid_values: ["infraProvided", "actPassBond", "actActBond", "actPassL3", "actActL3", "Left", "Right"] 
   right the switchplane.
             The default: "infraProvided"
      nicOptions:
        description: > 
             Identifies for the direct.userdriver interface type, the physical nics the driver is verified to work with.
other cases are for a mated pair of vnics connecting to 
             same network, but where one vNIC connects
             via left switch plane and Allowedthe valuesother forvia nicright typesswitch mustplane, be
 handled via a registry or be standardized.
        required: false
  and where the application manages the type:redundancy. list
        entry_schema:
     "activePassiveBond": the application bonds with move of MAC  type: string 
Code Block
title tosca.datatype.asd.paramMappings
collapsetrue
paramMappings:address. 
    version: 0.1
    derived_from: tosca.datatypes.Root  
    description "activeActiveBond“: "Describes the datatype for parameter mapping"
    properties:bonded left/right links must be part of a multi-chassis LAG 
      loadbalancerIP:
        description"activePassiveL3": >
application will move application IP address between the vNICs.
      When present, this attribute specifies the name of"activeActiveL3": the deploymentapplication artifact input parameteruses anycast/ECMP.
        required: true
        throughtype: whichstring
 the orchestrator can configure the loadbalancerIP parameter ofconstraints:
 the K8s service 
      - valid_values: ["infraProvided", "actPassBond", "actActBond", "actPassL3", "actActL3",  or ingress controller that the ExtCpd represents.
"Left", "Right"] 
        default: "infraProvided"
      required: false nic_options:
        typedescription: string> 
           externalIPs:
  Identifies for the direct.userdriver interface type, the description:physical >
              When present, this attribute specifies nics the namedriver ofis theverified deploymentto artifact input parameterwork with.
             Allowed throughvalues whichfor thenic orchestratortypes canmust configurebe thehandled extermalIPsvia parametera ofregistry theor K8sbe service standardized.
        required: false
        type: orlist
 ingress controller, or the pod network interface annotation, that the ExtCpd represents.
 entry_schema:
            required: false
 type: string 


Code Block
themeConfluence
title tosca.datatypes.asd.paramMappings
collapsetrue
tosca.datatypes.asd.paramMappings:
     typeversion: list0.1
        entry_schema:derived_from: tosca.datatypes.Root  
    description: "Describes the datatype for parameter mapping"
  type  properties:
 string
       nadNameloadbalancer_IP: 
        description: >
              Specifies, for an ExtCpd respesenting a secondaryWhen network interface,
        present, this attribute specifies the name of the deployment 
      the name(s) of the NetworkAttachmentDefinitions the orchestrator has created
artifact input parameter through which the orchestrator can 
      as base for the network interface the ExtCpd represents.configure 
the  loadbalancerIP  parameter  of  required:the false
K8s        type: listservice 
        entry_schema:
      or ingress controller that the type:extCpdData stringrepresents.
       nadNamespace: 
        descriptionNote: >
The format  of  the  Content  strings  is  specific Specifies, for aneach asdExtCpd respesenting a secondary network interface,different 
              theorchestration namespacetemplating wheretechnology theused NetworkAttachmentDefinitions (NADs) are located.Helm, Teraform, etc.). 
              AttributeCurrently mayonly bea omittedformat iffor theuse namespacewith isHelm samecharts as the application namespace.is suggested:
        required: false
         type: string 
Code Block
title tosca.datatype.asd.enhancedClusterCapabilities
collapsetrue
enhancedClusterCapabilities:"<helmchartname>:[<subchartname>.]^(0..N)[<parentparamname>.]^(0..N)<paramname>".  
    version: 0.1
    derived_from: tosca.datatypes.Root 
    description: "DescribesWhether the datatypeoptional forparts parameterof mapping"
the format are present properties:
depends on  how  the minKernelVersion:
        description: "Describes the minimal required Kernel version, e.g. 4.15.0. Coded as displayed by linux command uname –r"parameter is declared in the helm chart. An example is: 
        required: true
        type: string  
      requiredKernelModules:"chartName:subChart1.subChart2.subChart3.Parent1.Parent2.Parent3.LBIP". 
        required: false
        descriptiontype: > string
            external_IPs:
 Required kernel modules are coded as listed bydescription: linux>
 lsmod command, e.g. ip6_tables, cryptd, nf_nat etc.​ 
         required: false
        type: listWhen present, this attribute specifies the name of the deployment 
        entry_schema:
      artifact input parameter through which the orchestrator can type:
 string 
      conflictingKernelModules:
        description: >configure 
the  extermalIPs  parameter  of  the  K8s  service Kernelor modules,ingress which
 must not be present in the target environment. 
     controller, or the pod network interface annotation, that the The
 kernel modules are coded as listed by linux lsmod command, e.g. ip6_tables, cryptd, nf_natextCpdData etcrepresents.
 
             ExampleNote: LinuxThe kernelformat SCTPof module,the whichContent wouldstrings conflictis withspecific usefor ofeach proprietarydifferent user
 space 
            orchestration SCTPtemplating stacktechnology providedused by the application.​ 
        required: false
(Helm, Teraform, etc.). 
              Currently type:only list
a format for use with Helm charts is entry_schemasuggested:
                type: string   
            requiredCustomResources:
        description: >"<helmchartname>:[<subchartname>.]^(0..N)[<parentparamname>.]^(0..N)<paramname>".  
                     
     Whether the optional parts of the format are present depends on how the 
        List the custom resource kinds required toparameter beis supporteddeclared in the targethelm environmentchart. 
An example is: 
         The list shall include those custom resource kinds which are not delivered with the application.			 
         "chartName:subChart1.subChart2.subChart3.Parent1.Parent2.Parent3.extIP". 
        required: false
        type: list
        entry_schema:
              type: tosca.datatypes.asd.customResourceRequirementstring
       clusterLabelsnad_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) This attribute allows to associate arbitrary labels to clusters.
             TheseExample: can
 indicate special infrastructure capabilities (e.g., NW acceleration, GPGPU compute, etc.). 
  ClusterLabels
           The intent of these labels is to serve as a set of values that can help in application placement decisions. 
   - feature.node.kubernetes.io/cpu-cpuid.AESNI: true               
        required: false
        type: list
 This can be specified with the attribute entry_schema:
              -mtype: Mandatory,string
 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,   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: 
  but if not found it will attempt deployment in a system not having such HW.  
        required: falseversion: 0.1
       derived_from: tosca.datatypes.Root 
       description: > 
        type: list   kind: "Redis", apiVersion: "kubedb.com/v1alpha1" 
       properties: entry_schema:
           kind:
   type: string   
      requiredPodAnnotations:
   description: "the name of the description:custom >resource requirement"
              Annotations required to be supported.type: string 
             Example thatrequired: listtrue requirement
 for Kubernetes cluster infrastructure support for the Multus network attachment annotationsapi_version:
              requiredPodAnnotations: {"k8s.v1.cncf.io/networks", ... } 
        required: false
        type: list
        entry_schema:description: "the api version of the custom resource requirement"
              type: string 
              typerequired: stringtrue  


Code Block
title tosca.datatypedatatypes.asd.customResourceRequirementrequiredPlugin
collapsetrue
customResourceRequirementtosca.datatypes.asd.requiredPlugin: 
       version: 0.1
       derived_from: tosca.datatypes.Root 
 
       description: "the required K8s plugin"
       properties: 
         description: > name:
            kind: "Redis", apiVersiondescription: "kubedb.com/v1alpha1" 
       properties: 
       the name of the required K8s plugin"
              type: string 
    kind: 
         required: true 
  type: string 
       version:
       required: true 
    description: "the version of the required K8s apiVersion: plugin"
             type: string 
             required: true 

...