Versions Compared

Key

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


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
      description: 
        description: Describes the service exposed by the extCpd >
            This property describes for a particular ExtCpd instance 
            what service it exposes.
        required: falsetrue
        type: string 
      virtualLinkRequirementvirtual_link_requirement: 
        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:
network_interface_realization_requirements:
        description: >
          Details container implementation specific requirements on 
          the NetworkAttachmentDefinition
        required: false
        type: datatypetosca.datatypes.asd.networkInterfaceRequirements
      inputParamMappingsinput_param_mappings:
        description: >
          Information on what helm chart input parameters that 
          are required to be configured for this extCpd
        required: false
        type: datatypetosca.datatypes.asd.paramMappings
      resourceMappingresource_mapping:
        description: >
          Kubernetes API resource name for the resource manifest for the service, 
          ingress controller or pod
        required: false
        type: string


Code Block
title tosca.datatypedatatypes.asd.networkInterfaceRequirements
collapsetrue
tosca.datatypes.asd.networkInterfaceRequirements:
    derived_from: tosca.datatypes.Root  
    version: 0.1
    description: "Describes the datatype for network interface requirements"
    properties:
      trunkModetrunk_mode:
        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 of carrying           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"
      interfaceTypeinterface_type:
        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: falsetrue
           type: string
        constraints:
          - valid_values: ["kernel.netdev", "direct.userdriver", "direct.kerneldriver", "direct.bond", "userspace"]
        default: "kernel.netdev"
      interfaceOption interface_option:
        description: > 
             This attribute isdescribes applicableverified forrealization passthroughoptions andfor memifthe interfaces. 
            network Theinterface defaultin value is ”kernel.netdev”.​ 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“]
     interfaceRedundancyinterface_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 
           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"
      nicOptions 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.datatypedatatypes.asd.paramMappings
collapsetrue
tosca.datatypes.asd.paramMappings:
    version: 0.1
    derived_from: tosca.datatypes.Root  
    description: "Describes the datatype for parameter mapping"
    properties:
      loadbalancerIPloadbalancer_IP:
        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 ExtCpdextCpdData represents.
        required:  false
    Note: The format of type:the string
Content strings is specific for each externalIPs:different 
        description: >
     orchestration templating technology used (Helm, Teraform, etc.). 
  When present, this attribute specifies the name of the deployment artifact input parameter
Currently only a format for use with Helm charts is suggested:
       through  which  the orchestrator can configure the extermalIPs parameter of the K8s service 
   "<helmchartname>:[<subchartname>.]^(0..N)[<parentparamname>.]^(0..N)<paramname>".  
              Whether the optional parts of the format are orpresent ingressdepends controller,on orhow the pod
 network interface annotation, that the ExtCpd represents.
       parameter required:is false
declared in the helm chart. An example  typeis: list
        entry_schema:
      "chartName:subChart1.subChart2.subChart3.Parent1.Parent2.Parent3.LBIP". 
    type: string
      nadNamerequired: false
        descriptiontype: >string
                Specifies, for an ExtCpd respesenting a secondary network interface,
  external_IPs:
        description: >
              When present, this attribute specifies the name(s) of the NetworkAttachmentDefinitions the orchestrator has createddeployment 
              asartifact baseinput forparameter thethrough network interfacewhich the ExtCpdorchestrator represents.can 
        required: false
        type: string
     configure nadNamespace:the 
extermalIPs parameter of the K8s service or ingress 
  description: >
              Specifies, for an asdExtCpdcontroller, respesentingor athe secondarypod network interface annotation,
 that the 
           the namespace where the NetworkAttachmentDefinitions (NADs) are locatedextCpdData represents.
              AttributeNote: mayThe beformat omittedof ifthe theContent namespacestrings is samespecific asfor theeach applicationdifferent namespace.
        required: false
        type: string 
Code Block
title tosca.datatype.asd.enhancedClusterCapabilities
collapsetrue
enhancedClusterCapabilities:
  orchestration templating version: 0.1
    derived_from: tosca.datatypes.Roottechnology used (Helm, Teraform, etc.). 
    description: "Describes the datatype for parameter mapping"
    properties:
 Currently  only  a minKernelVersion:
format for use with Helm charts is  descriptionsuggested:
 "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.​ 
           "<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
 
      conflictingKernelModulesnad_names: 
        description: >
 
             Kernel modulesSpecifies, whichfor mustan notextCpdData berespesenting presenta insecondary the target environment. network interface,
             The kernel modules are coded as listed by linux lsmod command, e.g. ip6_tables, cryptd, nf_nat etc. 
the name(s) of the deployment artifact input parameter(s) through which 
              the orchestrator can provide Example:the Linuxnames kernelof SCTPthe module,network whichattachment would
 conflict with use of proprietary user space 
      definitions (NADs) the orchestrator has created as SCTPbase stack providedfor by the application.​network 
        required: false
        type:interface list
the extCpdData represents. 
     entry_schema:
         Note 1: When the extCpdData type: string   represent a networkRedundant/mated-pair of 
      requiredCustomResources:
        description: >  sriov  interfaces,  there  are  references  to  2 
or 3 related NADs needed 
        List the custom resource kinds required to be supportedpassed, inwhile thefor targetother environment.interface 
types only one NAD reference 
       The list shall include those custom resource kindsis whichneeded areto not delivered with the application.			 
        required: false
be passed.
              Note type2: list
The format of the Content strings is specific for  entry_schema:
each different 
               type: tosca.datatypes.asd.customResourceRequirement
      clusterLabels:
        description: > 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 

...