| /* |
| Copyright 2020 Whitestack LLC |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or |
| implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| */ |
| |
| module kdu { |
| yang-version 1.1; |
| namespace "urn:etsi:osm:yang:augments:kdu"; |
| prefix "kdu"; |
| |
| import etsi-nfv-vnfd { |
| prefix vnfd; |
| } |
| |
| import common-augments { |
| prefix common; |
| } |
| |
| grouping extended-ext-cpd { |
| leaf k8s-cluster-net { |
| description |
| "Reference to the K8s cluster network |
| to which CPs instantiated from this external CP |
| Descriptor (CPD) connect."; |
| type leafref { |
| path "/vnfd:vnfd/kdu:k8s-cluster/kdu:nets/kdu:id"; |
| } |
| } |
| } |
| |
| grouping extended-kdu-configuration { |
| list kdu-configuration { |
| key "id"; |
| leaf id { |
| description |
| "Internal identifier for the KDU configuration"; |
| type string; |
| } |
| uses common:vnfc-configuration; |
| uses common:vdu-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; |
| } |
| } |
| } |
| } |
| |
| grouping extended-kdu-model { |
| list kdu-model { |
| key "id"; |
| |
| leaf id { |
| description |
| "Internal identifier for the KDU model"; |
| type string; |
| } |
| |
| leaf kdu-model-type { |
| description |
| "Indicates the KDU model, either as a helm-chart or as a juju-bundle."; |
| |
| type enumeration { |
| enum helm-chart; |
| enum juju-bundle; |
| } |
| } |
| |
| leaf kdu-model-locator { |
| description |
| "Indicates the KDU model location, either as a path to a folder in the |
| package or as a URL where to fetch the model."; |
| |
| type string; |
| } |
| } |
| } |
| |
| grouping extended-kdu { |
| 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 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; |
| } |
| } |
| } |
| } |
| |
| augment "/vnfd:vnfd" { |
| uses extended-kdu; |
| uses extended-kdu-configuration; |
| uses extended-kdu-model; |
| } |
| |
| augment "/vnfd:vnfd/vnfd:ext-cpd/vnfd:cp-connection" { |
| uses extended-ext-cpd; |
| } |
| } |