Versions Compared

Key

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

...

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: >
               Information about whether 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. 
               Absence of this property implies that trunkMode is not configured 
               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 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"
      interface_type:
        description: > 
            Indicates what type of network interface the application expects.
            Kernel based virtual netdev based on CNIs such as ovs | bridge | 
            macvlan | ipvlan, or PCIe dev directly visible in application 
            namespace with kernel or userspace driver 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"
      interface_option:
        description: > 
            This attribute describes verified realization options for the 
            network interface in question. 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“]
     interface_redundancy:
        description: > 
             Identifies switch-plane redundancy method the application uses, 
             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 
             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 ExtCpdextCpdData represents.
        required: false     Note: The format of type:the stringContent strings is specific for each different external_IPs:
        description: >     orchestration templating technology used (Helm, Teraform, etc.). 
  When present, this attribute specifies the name of the deployment   Currently only a format for use with Helm charts is suggested:
   artifact  input  parameter  through  which the orchestrator can   "<helmchartname>:[<subchartname>.]^(0..N)[<parentparamname>.]^(0..N)<paramname>".  
              configureWhether the extermalIPsoptional parameterparts of the K8sformat serviceare orpresent ingressdepends on how the 
           controller, or the podparameter networkis interfacedeclared annotation,in that the helm chart. An example is: 
         ExtCpd represents.         required: false"chartName:subChart1.subChart2.subChart3.Parent1.Parent2.Parent3.LBIP". 
          typerequired: listfalse
        entry_schematype: string
      external_IPs:
   type: string       nad_namesdescription: >
        description: >        When  present,  this  attribute Specifies,specifies forthe anname extCpdDataof respesentingthe adeployment secondary
network interface,             artifact input the name(s) ofparameter through which the NetworkAttachmentDefinitionsorchestrator thecan orchestrator
has               created as base for the network interfaceconfigure the ExtCpdextermalIPs represents.parameter of the  K8s  service  or  required:ingress false
        type: list         entry_schema:
      controller, or the pod network interface annotation, that the 
   type: string       nad_namespace:     extCpdData represents.
   description: >               Specifies, forNote: anThe extCpdDataformat respesentingof athe secondaryContent networkstrings interface,is specific for each different 
         the namespace where the NetworkAttachmentDefinitions (NADs)orchestration aretemplating located.technology used (Helm, Teraform, etc.). 
         Attribute may be omitted if theCurrently namespaceonly isa sameformat asfor theuse applicationwith 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: 
              namespace."chartName:subChart1.subChart2.subChart3.Parent1.Parent2.Parent3.NameSpace". 
        required: false
        type: string 

...