prefix vnfd;
}
- import common-augments {
- prefix common;
- }
-
grouping extended-ext-cpd {
leaf k8s-cluster-net {
description
}
}
- 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
"Description of the KDU.";
type string;
}
+
+ 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:
+ - <helm-repo>/<helm-chart>
+ - <helm-chart folder under k8s_models folder in the package>
+ - <helm-chart tgz file (w/ or w/o extension) under k8s_models folder in the package>
+ - <URL_where_to_fetch_chart>
+ ";
+ 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:
+ - <juju-repo>/<juju-bundle>
+ - <juju-bundle folder under k8s_models folder in the package>
+ - <juju-bundle tgz file (w/ or w/o extension) under k8s_models folder in the package>
+ - <URL_where_to_fetch_juju_bundle>
+ ";
+ type string;
+ }
+ }
+ }
}
container k8s-cluster {
}
}
}
+
+ 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
+ "String representing a leaf reference to the particular external connection point.
+ This field should match /etsi-nfv-vnfd:vnfd/etsi-nfv-vnfd:ext-cpd/etsi-nfv-vnfd:id
+ ";
+ 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;
}
-}
\ No newline at end of file
+}