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.0
    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 shall bewhat exposedservice 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: >
          Details container implementation specific  are required to be configured for this extCpdrequirements on 
          the NetworkAttachmentDefinition
        required: false
        type: datatype.paramMappingstosca.datatypes.asd.networkInterfaceRequirements
      resourceMappinginput_param_mappings:
        description: >
          KubernetesInformation APIon resourcewhat namehelm forchart theinput resourceparameters manifest for the servicethat 
          are required to be configured for this extCpd
        required: false
        type: string
Code Block
title
tosca.
datatypes.asd.
collapsetrue
networkInterfaceRequirements:
paramMappings
     derived resource_from: tosca.datatypes.Root  mapping:
    version: 1.0
    description: "Describes>
 the datatype for network interface requirements"
    properties:
Kubernetes API resource name for the trunkMode:
resource manifest for      description: >the 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:
mode (802.1Q or other). 
      derived_from: tosca.datatypes.Root  
    version: 0.1
  When operating indescription: "trunkDescribes mode", the Cpdatatype isfor capablenetwork of carrying traffic for several VLANs. interface requirements"
    properties:
      trunk_mode:
        description: Absence>
 of this property implies that trunkMode is not configured for the Cp i.e. 
 Information about whether the CP instantiated from this Cp is 
    It is equivalent to boolean value "false".
        required: false
in Trunk       type: boolean
      ipam:mode (802.1Q or other). When operating in "trunk mode", 
        description: >
         the  Cp  is Thecapable defaultof value ("infraProvided") means that the CNI specifies how IPAM is done and assigns 
carrying traffic for several VLANs. 
               Absence of this property implies that trunkMode theis IP address to the pod interface.not configured 
        required: false
        type: string
   for the Cp i.e. It is equivalent to boolean value "false".
     constraints   required: true
        type: boolean
     - valid_values: ["infraProvided", "orchestrated", "userManaged"]
  default: false
      interfaceTypeipam: 
        description: > 
               ThisIdentifies attributewhether isapplication applicableexpects forIP passthroughaddress andassignment memifto interfaces.be 
             The default value is ”kernel.netdev”.​  managed by the cluster infrastructure (CNI IPAM plugin), or 
        required: false
        type:configured string
by orchestrator via for example helm input parameter, constraints:
          - valid_values: ["kernel.netdev", "direct.userdriver", "direct.kerneldriver", "direct.bond", "userspace"]
     interfaceOption:
        description: > 
       or if IP assignment is handled by the application itself.
        required: true
            This attribute is applicable for passthrough and memif interfaces. type: string
        constraints:
          -   The default value is ”kernel.netdev”.​ 
        required: false
        type: listvalid_values: ["infraProvided", "orchestrated", "userManaged"]
        default: "infraProvided"
      interface_type:
        entry_schema:description: > 
            Indicates what type of network interface the type:application stringexpects.
            Kernel based constraints:
virtual netdev based on CNIs such as ovs | bridge | 
       - valid_values: [“virtio", "memif“]
    macvlan interfaceRedundancy:
| ipvlan, or PCIe dev directly visible in description: >application 
             Default value is "infra-provided”, which meansnamespace thatwith thekernel infrastructureor isuserspace expecteddriver toor providebonded 
with the Bond 
          network redundancy forCNI, theor pod interface. Value "none" means that the application has no 
userspace-CNI based network interface 
            (requires DPDK-OVS/VPP vSwitch).
         requirement required: ontrue
 network redundancy.  Value  ”matedPair”  meanstype: thatstring
 the Pod asks for a mated pair constraints:
             of non-redundant left/right network attachments (typically SRIOV) and handles redundancy on 
   - valid_values: ["kernel.netdev", "direct.userdriver", "direct.kerneldriver", "direct.bond", "userspace"]
        default: "kernel.netdev"
      interface_option:
        description: > application
 level. The  same set of networks shall be configured on both interfaces. 
        required: false
        This attribute describes verified realization options for the 
            network interface in type: string
   question. Currently listed options 
     constraints:
       (virtio and memif) - valid_values: ["infraProvided", "actPassBond", "actActBond", "actPassL3", "actActL3", "Left", "Right"] 
     nicOptions:are applicable for the interfaceType “userspace”.
        required: false
        descriptiontype: >list
 
             nicsentry_schema:
 a direct user space driver the application is verified to work with. Allowed valuestype: fromstring
 ETSI registry.​ 
        required: false
        type: listconstraints:
        entry_schema:
          - valid_values: [“virtio",  type: string 
Code Block
title tosca.datatype.asd.paramMappings
collapsetrue
paramMappings"memif“]
     interface_redundancy:
    version: 1.0
    derived_fromdescription: tosca.datatypes.Root>  
     description: "Describes the datatype for parameter mapping"
    properties:
      ipAddressParameter:
        Identifies switch-plane redundancy method the application uses, 
            description: >
and  that  node  infrastructure  is  required  to  When present, this attribute specifies the name of the deployment artifact input parameter 
         comply with.
             "infraProvided", “left” and “right”: The container sees a 
     through which the orchestrator can configure the IP address(es), ipv4 and/or IPv6, for this 
      single vNIC that a) the infrastructure bonds over both switchplanes 
        asdExtCpd. The param name and providedor IPb) addressthat value will be passedis connected to the deploymentnetwork 
via only left or 
          tool  when deployingright the DeploymentArtifactsswitchplane. 
        required: false
        type: string
    The other nadName:cases 
are for a mated pair of vnics connecting description:to >
              These attributes specifies, for an asdExtCpdsame respesentingnetwork, abut secondarywhere networkone interface,vNIC connects
             via left the name(s) ofswitch plane and the deploymentother artifactvia inputright parametersswitch through which the orchestrator plane, 
             and can configurewhere the corresponding network annotation inapplication manages the pod manifest with references redundancy. 
             "activePassiveBond": to the NAD(s) to be used for creating the network interface.It is expected that the NADs 
application bonds with move of MAC address. 
             "activeActiveBond“: bonded  left/right links must themselvesbe havepart beenof createda priormulti-chassis toLAG the
 deployment of the deployment artifacts. 
        required: false
        type: string
      nadNamespace: "activePassiveL3": application will move application IP address between the vNICs.
        description: >
              These attributes specifies, for an asdExtCpd respesenting a secondary network interface, "activeActiveL3": the application uses anycast/ECMP.
        required: true
        type: string
     the name(s) of theconstraints:
 deployment artifact input parameters through which the orchestrator 
 - valid_values: ["infraProvided", "actPassBond", "actActBond", "actPassL3", "actActL3", "Left", "Right"] 
    can configure the corresponding network annotation in the pod manifest with references 
default: "infraProvided"
      nic_options:
        description: > 
             Identifies tofor the NAD(s) to be used for creating the network interface.It is expected that the NADs direct.userdriver interface type, the physical 
             nics the driver is verified to work with.
             Allowed themselvesvalues for havenic beentypes createdmust priorbe tohandled thevia deploymenta ofregistry theor deploymentbe artifactsstandardized. 
        required: false
           type: string 
Code Block
title tosca.datatype.asd.enhancedClusterCapabilities
collapsetrue
enhancedClusterCapabilities:list
        entry_schema:
              type: string 


Code Block
themeConfluence
title tosca.datatypes.asd.paramMappings
collapsetrue
tosca.datatypes.asd.paramMappings:
    version: 0.1.0
    derived_from: tosca.datatypes.Root  
    description: "Describes the datatype for parameter mapping"
    properties:
        minKernelVersionloadbalancer_IP:
        description: "Describes>
 the minimal required Kernel version, e.g. 4.15.0. Coded as displayed by linux command uname –r"
        required: trueWhen present, this attribute specifies the name of the deployment 
        type: string  
     artifact requiredKernelModules:
input parameter through which the orchestrator can 
 description: > 
             Required kernel modules are codedconfigure the asloadbalancerIP listedparameter byof linuxthe lsmodK8s command, e.g. ip6_tables, cryptd, nf_nat etc.​ 
        required: false
        type: listservice 
              or ingress controller that the extCpdData represents.
        entry_schema:
      Note: The format of the Content strings is specific for type:each stringdifferent 
      conflictingKernelModules:
        description: > 
  orchestration  templating  technology  used     Kernel modules, which must not be present in the target environment. 
(Helm, Teraform, etc.). 
              Currently only a format for use with TheHelm kernelcharts modulesis aresuggested:
 coded  as  listed  by  linux  lsmod command, e.g. ip6_tables, cryptd, nf_nat etc.   "<helmchartname>:[<subchartname>.]^(0..N)[<parentparamname>.]^(0..N)<paramname>".  
             Example: LinuxWhether kernelthe SCTPoptional module,parts whichof wouldthe conflictformat withare usepresent ofdepends proprietaryon userhow spacethe 
             SCTP stackparameter providedis bydeclared in the helm application.​chart. An example is: 
        required: false
        type: list"chartName:subChart1.subChart2.subChart3.Parent1.Parent2.Parent3.LBIP". 
        entry_schemarequired: false
              type: string
   
      requiredCustomResourcesexternal_IPs:
        description: >
               
      When present, this attribute specifies the Listname of the customdeployment 
  resource kinds required to be supported in the target environment. 
  artifact input parameter through which the orchestrator can 
  The list shall include those custom resource kinds which are not delivered withconfigure the application.			 
        required: falseextermalIPs parameter of the K8s service or ingress 
        type: list
     controller, or  entry_schema: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).
  type: tosca.datatypes.asd.CustomResourceRequirement
      clusterLabels:
        description: > 
             This attribute allows to associate arbitrary labels to clusters.
           Example: 
 These 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 beentry_schema:
 specified with the attribute 
         type: string
      -mrequired_plugin:
 Mandatory,  means deployment is not attempted ifdescription: sucha supportlist isof notthe availablename inof the required targetK8s systemplugin
        required: false
         -p: As preference - it means orchestrator will try to select a system with specific requirements, 
type: list
        entry_schema:
              type: tosca.datatypes.asd.requiredPlugin


Code Block
title tosca.datatypes.asd.customResourceRequirement
collapsetrue
tosca.datatypes.asd.customResourceRequirement: 
       version: 0.1
   but if not found it will attempt deployment in a system not having such HW. derived_from: tosca.datatypes.Root 
       description: > 
        required: false
     kind: "Redis",  type: listapiVersion: "kubedb.com/v1alpha1" 
       properties: entry_schema:
           kind:
   type:  string   
      requiredPodAnnotations:
  description: "the name of the custom description: > 
resource requirement"
              Annotationstype: required to be supported.string 
             Example thatrequired: listtrue requirement
 for Kubernetes cluster infrastructure support for the Multus network attachment annotationsapi_version:
              requiredPodAnnotationsdescription: {"k8s.v1.cncf.io/networks", ... } 
        required: false
        type: list
        entry_schema:"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.0
       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 

...