blob: 9e0021f5d5f04dbce848c43f24fc8c87b06eb2d9 [file] [log] [blame]
garciaale76f6a622020-11-19 17:57:42 -03001/*
2 Copyright 2020 Whitestack LLC
3
4 Licensed under the Apache License, Version 2.0 (the "License");
5 you may not use this file except in compliance with the License.
6 You may obtain a copy of the License at
7
8 http://www.apache.org/licenses/LICENSE-2.0
9
10 Unless required by applicable law or agreed to in writing, software
11 distributed under the License is distributed on an "AS IS" BASIS,
12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
13 implied.
14 See the License for the specific language governing permissions and
15 limitations under the License.
16*/
17
18module kdu {
19 yang-version 1.1;
20 namespace "urn:etsi:osm:yang:augments:kdu";
21 prefix "kdu";
22
23 import etsi-nfv-vnfd {
24 prefix vnfd;
25 }
26
27 import common-augments {
28 prefix common;
29 }
30
31 grouping extended-ext-cpd {
32 leaf k8s-cluster-net {
33 description
34 "Reference to the K8s cluster network
35 to which CPs instantiated from this external CP
36 Descriptor (CPD) connect.";
37 type leafref {
38 path "/vnfd:vnfd/kdu:k8s-cluster/kdu:nets/kdu:id";
39 }
40 }
41 }
42
43 grouping extended-kdu-configuration {
44 list kdu-configuration {
45 key "id";
46 leaf id {
47 description
48 "Internal identifier for the KDU configuration";
49 type string;
50 }
51 uses common:vnfc-configuration;
52 uses common:vdu-config-access;
53
54 leaf-list blacklist-config-primitive {
55 description
56 "List of blacklisted config primitives from the list of
57 default kdu config primitives";
58
59 type enumeration {
60 enum upgrade;
61 enum rollback;
62 }
63 }
64 }
65 }
66
67 grouping extended-kdu-model {
68 list kdu-model {
69 key "id";
70
71 leaf id {
72 description
73 "Internal identifier for the KDU model";
74 type string;
75 }
76
77 leaf kdu-model-type {
78 description
79 "Indicates the KDU model, either as a helm-chart or as a juju-bundle.";
80
81 type enumeration {
82 enum helm-chart;
83 enum juju-bundle;
84 }
85 }
86
garciadeblas5989fe32020-12-14 15:37:31 +000087 leaf kdu-model-helm-version {
88 description
89 "Helm version to use for this helm-chart, v3 by default.";
90
91 type enumeration {
92 enum v2;
93 enum v3;
94 }
95 default v3;
96 }
97
garciaale76f6a622020-11-19 17:57:42 -030098 leaf kdu-model-locator {
99 description
100 "Indicates the KDU model location, either as a path to a folder in the
101 package or as a URL where to fetch the model.";
102
103 type string;
104 }
105 }
106 }
107
108 grouping extended-kdu {
109 list kdu {
110 description
111 "List of K8s Deployment Units";
112 key "name";
113
114 leaf name {
115 description
116 "Unique name for the KDU";
117 type string;
118 }
119
120 leaf description {
121 description
122 "Description of the KDU.";
123 type string;
124 }
125 }
126
127 container k8s-cluster {
128 leaf-list version {
129 description
130 "List of supported K8s versions.
131 The cluster where the KDUs will be deployed will have to match
132 one of these versions.";
133
134 type string;
135 }
136
137 leaf-list cni {
138 description
139 "List of supported CNI plugins.
140 The cluster where the KDUs will be deployed will have to use
141 one of these CNI plugins.";
142
143 type enumeration {
144 enum calico;
145 enum flannel;
146 enum multus;
147 }
148 }
149
150 list nets {
151 description
152 "List of required networks in the K8s cluster.
153 The cluster where the KDUs will be deployed will have to use
154 one of these CNI plugins.";
155
156 key "id";
157
158 leaf id {
159 description
160 "Internal identifier for the K8s cluster network in this VNF";
161 type string;
162 }
163 }
164 }
165 }
166
167 augment "/vnfd:vnfd" {
168 uses extended-kdu;
169 uses extended-kdu-configuration;
170 uses extended-kdu-model;
171 }
172
173 augment "/vnfd:vnfd/vnfd:ext-cpd/vnfd:cp-connection" {
174 uses extended-ext-cpd;
175 }
garciadeblas5989fe32020-12-14 15:37:31 +0000176}