X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FIM.git;a=blobdiff_plain;f=models%2Fyang%2Fvnfd-base.yang;h=8ee13c0b106202968b1fe373f1394c5b9894918a;hp=6b627b20f1b5d662f7d3e1027f77597ed4d2d46c;hb=a4dfd7b54d77e019c9d59033bc365295ae0e6dba;hpb=d13a7498b2a45f57be4b71a827ed426dcded55f3 diff --git a/models/yang/vnfd-base.yang b/models/yang/vnfd-base.yang index 6b627b2..8ee13c0 100644 --- a/models/yang/vnfd-base.yang +++ b/models/yang/vnfd-base.yang @@ -1,7 +1,7 @@ - /* * * Copyright 2017 RIFT.IO Inc + * Copyright 2018-2020 ETSI * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -568,12 +568,12 @@ module vnfd-base leaf mac-address { description - "MAC address of the interface. - Some VNFs require a specific MAC address to be configured - in the interface. While this is not recommended at all in - NFV environments, this parameter exists to allow those - scenarios. - This parameter will be likely deprecated in the future."; + "MAC address of the interface. + Some VNFs require a specific MAC address to be configured + in the interface. While this is not recommended at all in + NFV environments, this parameter exists to allow those + scenarios. + This parameter will be likely deprecated in the future."; type string; } @@ -581,19 +581,19 @@ module vnfd-base case internal { leaf internal-connection-point-ref { description - "Leaf Ref to the particular internal connection point"; + "Leaf Ref to the particular internal connection point"; type leafref { - path "../../internal-connection-point/id"; - } + path "../../internal-connection-point/id"; + } } } case external { leaf external-connection-point-ref { description - "Leaf Ref to the particular external connection point"; + "Leaf Ref to the particular external connection point"; type leafref { - path "../../../connection-point/name"; - } + path "../../../connection-point/name"; + } } } } @@ -614,6 +614,159 @@ module vnfd-base } } + list kdu { + description "List of K8s Deployment Units"; + key "name"; + + leaf name { + description "Unique name for the KDU"; + type string; + } + + leaf description { + description "Description of the KDU."; + type string; + } + + container kdu-configuration { + uses manotypes:vca-configuration; + uses manotypes:vca-config-access; + + leaf-list blacklist-config-primitive { + description + "List of blacklisted config primitives from the list of + default kdu config primitives"; + + type enumeration { + enum upgrade; + enum rollback; + } + + } + + } + + choice kdu-model { + description + "Indicates the KDU model, either as a helm-chart or as a juju-bundle."; + + case helm-chart { + leaf helm-chart { + description + "Helm chart that models the KDU, in any of the following ways: + - / + - + - + - + "; + type string; + } + leaf helm-version { + description + "Helm version to use for this helm-chart, v3 by default"; + type enumeration { + enum v2; + enum v3; + } + default v3; + } + } + + case juju-bundle { + leaf juju-bundle { + description + "Juju bundle that models the KDU, in any of the following ways: + - / + - + - + - + "; + type string; + } + } + } + + list service { + description + "List of Kubernetes services exposed by the KDU. + If empty, all services are assumed to be exposed in the CP associated to the first network + in k8s-cluster.nets."; + key name; + + leaf name { + description "Name of the Kubernetes service exposed by he KDU model"; + type string; + } + + leaf mgmt-service { + description + "Flag to indicate that this Kubernetes service is a mgmt service + to be used for KDU configuration. Defaults to false (if no present). + All services with mgmt-service set to true will be passed to the execution + environment in charge of the KDU configuration."; + type boolean; + default false; + } + + leaf external-connection-point-ref { + description + "Leaf Ref to the particular external connection point"; + type leafref { + path "../../../connection-point/name"; + } + } + + } + + } + + container k8s-cluster { + leaf-list version { + description + "List of supported K8s versions. + The cluster where the KDUs will be deployed will have to match + one of these versions."; + + type string; + } + + leaf-list cni { + description + "List of supported CNI plugins. + The cluster where the KDUs will be deployed will have to use + one of these CNI plugins."; + + type enumeration { + enum calico; + enum flannel; + enum multus; + } + } + + list nets { + description + "List of required networks in the K8s cluster. + The cluster where the KDUs will be deployed will have to use + one of these CNI plugins."; + + key "id"; + + leaf id { + description "Internal identifier for the K8s cluster network in this VNF"; + type string; + } + + leaf external-connection-point-ref { + description + "Leaf Ref to the particular external connection point"; + type leafref { + path "../../../connection-point/name"; + } + } + + } + } + list vdu-dependency { description "List of VDU dependencies.";