From bc6e714e001a8c61b06709c61b187d4e3dd22aac Mon Sep 17 00:00:00 2001 From: Samuli Silvius Date: Thu, 5 Dec 2019 14:34:48 +0200 Subject: CDS Blueprint for vFW K8s Use Case Introduce blueprint changes on top of latest vFW demo to also support multicloud/K8s plugin integration. This commit brings resource resolution part for k8s related parameters that are enough to instantiate CNF defined by Helm charts in multicloud/k8s plugin. Issue-ID: INT-1260 Signed-off-by: Samuli Silvius Change-Id: I783e364a201cda25ea812d83795ae2a4be71def9 --- .../templates/cba/Definitions/data_types.json | 37 +++ .../templates/cba/Definitions/node_types.json | 7 + .../Definitions/resources_definition_types.json | 352 ++++++++++++++++++--- .../templates/cba/Definitions/vFW_CDS.json | 181 ----------- .../templates/cba/Definitions/vFW_CNF_CDS.json | 188 +++++++++++ 5 files changed, 539 insertions(+), 226 deletions(-) delete mode 100644 heat/vFW_CNF_CDS/templates/cba/Definitions/vFW_CDS.json create mode 100644 heat/vFW_CNF_CDS/templates/cba/Definitions/vFW_CNF_CDS.json (limited to 'heat/vFW_CNF_CDS/templates/cba/Definitions') diff --git a/heat/vFW_CNF_CDS/templates/cba/Definitions/data_types.json b/heat/vFW_CNF_CDS/templates/cba/Definitions/data_types.json index 4df92dd3..82d4a041 100644 --- a/heat/vFW_CNF_CDS/templates/cba/Definitions/data_types.json +++ b/heat/vFW_CNF_CDS/templates/cba/Definitions/data_types.json @@ -122,6 +122,11 @@ "type" : "" } }, + "int_private1_gw_ip" : { + "description" : "Private unprotected network gateway ip", + "type" : "string", + "default" : "192.168.10.1/24" + }, "sec_group" : { "description" : "", "required" : false, @@ -256,6 +261,11 @@ "type" : "" } }, + "int_private2_subnet_id" : { + "description" : "Private protected subnetwork identification", + "type" : "string", + "default" : "${int_private2_subnet_id}" + }, "vfccustomizationuuid" : { "description" : "", "required" : false, @@ -266,6 +276,10 @@ "type" : "" } }, + "k8s-rb-profile-name" : { + "description" : "Profile name used in multicloud/k8s plugin to identify Helm chart(s) where this mapping is providing override values.", + "type" : "string" + }, "vsn_name_0" : { "description" : "", "required" : false, @@ -359,6 +373,15 @@ "type" : "" } }, + "int_private2_net_id" : { + "description" : "Private protected network identification", + "type" : "string" + }, + "int_private1_subnet_id" : { + "description" : "Private unprotected subnetwork identification", + "type" : "string", + "default" : "${int_private1_subnet_id}" + }, "vnf_name" : { "description" : "", "required" : false, @@ -409,6 +432,10 @@ "type" : "" } }, + "int_private2_gw_ip" : { + "description" : "Private protected network gateway ip", + "type" : "string" + }, "vsn_image_name" : { "description" : "", "required" : false, @@ -439,6 +466,11 @@ "type" : "" } }, + "onap_private_gw_ip" : { + "description" : "Private onap management network gateway ip", + "type" : "string", + "default" : "10.10.0.1/16" + }, "dcae_collector_port" : { "description" : "", "required" : false, @@ -592,6 +624,11 @@ "entry_schema" : { "type" : "" } + }, + "int_private1_net_id" : { + "description" : "Private unprotected network identification", + "type" : "string", + "default" : "${int_private1_net_id}" } }, "derived_from" : "tosca.datatypes.Dynamic" diff --git a/heat/vFW_CNF_CDS/templates/cba/Definitions/node_types.json b/heat/vFW_CNF_CDS/templates/cba/Definitions/node_types.json index e812db1c..91ecafe2 100644 --- a/heat/vFW_CNF_CDS/templates/cba/Definitions/node_types.json +++ b/heat/vFW_CNF_CDS/templates/cba/Definitions/node_types.json @@ -189,6 +189,13 @@ } ], "default" : "JSON" }, + "headers" : { + "required" : false, + "type" : "map", + "entry_schema" : { + "type" : "string" + } + }, "verb" : { "required" : true, "type" : "string", diff --git a/heat/vFW_CNF_CDS/templates/cba/Definitions/resources_definition_types.json b/heat/vFW_CNF_CDS/templates/cba/Definitions/resources_definition_types.json index 6b1efae0..ea053c38 100644 --- a/heat/vFW_CNF_CDS/templates/cba/Definitions/resources_definition_types.json +++ b/heat/vFW_CNF_CDS/templates/cba/Definitions/resources_definition_types.json @@ -6,7 +6,7 @@ "description" : "active-streams", "type" : "string" }, - "updated-by" : "Singal, Kapil ", + "updated-by" : "MALAKOV, YURIY ", "sources" : { "input" : { "type" : "source-input" @@ -277,6 +277,41 @@ } } }, + "int_private1_gw_ip" : { + "tags" : "k8s, cnf, int_private1_gw_ip", + "name" : "int_private1_gw_ip", + "property" : { + "description" : "Private unprotected network gateway ip address", + "type" : "string" + }, + "updated-by" : "Samuli, Silvius ", + "sources" : { + "input" : { + "type" : "source-input" + }, + "default" : { + "type" : "source-default", + "properties" : { } + }, + "sdnc" : { + "type" : "source-rest", + "properties" : { + "verb" : "GET", + "type" : "JSON", + "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/int_private1_gw_ip", + "path" : "/param/0/value", + "input-key-mapping" : { + "service-instance-id" : "service-instance-id", + "vnf-id" : "vnf-id" + }, + "output-key-mapping" : { + "int_private1_gw_ip" : "value" + }, + "key-dependencies" : [ "service-instance-id", "vnf-id" ] + } + } + } + }, "int_private1_net_cidr" : { "tags" : "int_private1_net_cidr", "name" : "int_private1_net_cidr", @@ -293,6 +328,23 @@ "type" : "source-default", "properties" : { } }, + "sdnc" : { + "type" : "source-rest", + "properties" : { + "verb" : "GET", + "type" : "JSON", + "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/int_private1_net_cidr", + "path" : "/param/0/value", + "input-key-mapping" : { + "service-instance-id" : "service-instance-id", + "vnf-id" : "vnf-id" + }, + "output-key-mapping" : { + "int_private1_net_cidr" : "value" + }, + "key-dependencies" : [ "service-instance-id", "vnf-id" ] + } + }, "processor-db" : { "type" : "source-db", "properties" : { @@ -304,20 +356,108 @@ "int_private1_net_cidr" : "prefix" } } + } + } + }, + "int_private1_net_id" : { + "tags" : "k8s, cnf, int_private1_net_id", + "name" : "int_private1_net_id", + "property" : { + "description" : "Private network identification", + "type" : "string" + }, + "updated-by" : "Samuli, Silvius ", + "sources" : { + "input" : { + "type" : "source-input" + }, + "default" : { + "type" : "source-default", + "properties" : { } }, "sdnc" : { "type" : "source-rest", "properties" : { "verb" : "GET", "type" : "JSON", - "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/int_private1_net_cidr", + "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/int_private1_net_id", "path" : "/param/0/value", "input-key-mapping" : { "service-instance-id" : "service-instance-id", "vnf-id" : "vnf-id" }, "output-key-mapping" : { - "int_private1_net_cidr" : "value" + "int_private1_net_id" : "value" + }, + "key-dependencies" : [ "service-instance-id", "vnf-id" ] + } + } + } + }, + "int_private1_subnet_id" : { + "tags" : "k8s, cnf, int_private1_subnet_id", + "name" : "int_private1_subnet_id", + "property" : { + "description" : "Private unprotected subnetwork identification", + "type" : "string" + }, + "updated-by" : "Samuli, Silvius ", + "sources" : { + "input" : { + "type" : "source-input" + }, + "default" : { + "type" : "source-default", + "properties" : { } + }, + "sdnc" : { + "type" : "source-rest", + "properties" : { + "verb" : "GET", + "type" : "JSON", + "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/int_private1_subnet_id", + "path" : "/param/0/value", + "input-key-mapping" : { + "service-instance-id" : "service-instance-id", + "vnf-id" : "vnf-id" + }, + "output-key-mapping" : { + "int_private1_subnet_id" : "value" + }, + "key-dependencies" : [ "service-instance-id", "vnf-id" ] + } + } + } + }, + "int_private2_gw_ip" : { + "tags" : "k8s, cnf, int_private2_gw_ip", + "name" : "int_private2_gw_ip", + "property" : { + "description" : "Private protected network gateway ip address", + "type" : "string" + }, + "updated-by" : "Samuli, Silvius ", + "sources" : { + "input" : { + "type" : "source-input" + }, + "default" : { + "type" : "source-default", + "properties" : { } + }, + "sdnc" : { + "type" : "source-rest", + "properties" : { + "verb" : "GET", + "type" : "JSON", + "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/int_private2_gw_ip", + "path" : "/param/0/value", + "input-key-mapping" : { + "service-instance-id" : "service-instance-id", + "vnf-id" : "vnf-id" + }, + "output-key-mapping" : { + "int_private2_gw_ip" : "value" }, "key-dependencies" : [ "service-instance-id", "vnf-id" ] } @@ -340,6 +480,18 @@ "type" : "source-default", "properties" : { } }, + "processor-db" : { + "type" : "source-db", + "properties" : { + "endpoint-selector" : "dynamic-db-source", + "type" : "SQL", + "query" : "select sdnctl.IPAM_IP_POOL.prefix as prefix from sdnctl.IPAM_IP_POOL where description = \"private2\"", + "output-key-mapping" : { + "int_private2_net_cidr" : "prefix" + }, + "input-key-mapping" : { } + } + }, "sdnc" : { "type" : "source-rest", "properties" : { @@ -356,17 +508,110 @@ }, "key-dependencies" : [ "service-instance-id", "vnf-id" ] } + } + } + }, + "int_private2_net_id" : { + "tags" : "k8s, cnf, int_private2_net_id", + "name" : "int_private2_net_id", + "property" : { + "description" : "Private protected network identification", + "type" : "string" + }, + "updated-by" : "Samuli, Silvius ", + "sources" : { + "input" : { + "type" : "source-input" + }, + "default" : { + "type" : "source-default", + "properties" : { } + }, + "sdnc" : { + "type" : "source-rest", + "properties" : { + "verb" : "GET", + "type" : "JSON", + "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/int_private2_net_id", + "path" : "/param/0/value", + "input-key-mapping" : { + "service-instance-id" : "service-instance-id", + "vnf-id" : "vnf-id" + }, + "output-key-mapping" : { + "int_private2_net_id" : "value" + }, + "key-dependencies" : [ "service-instance-id", "vnf-id" ] + } + } + } + }, + "int_private2_subnet_id" : { + "tags" : "k8s, cnf, int_private2_subnet_id", + "name" : "int_private2_subnet_id", + "property" : { + "description" : "Private protected subnetwork identification", + "type" : "string" + }, + "updated-by" : "Samuli, Silvius ", + "sources" : { + "input" : { + "type" : "source-input" }, - "processor-db" : { - "type" : "source-db", + "default" : { + "type" : "source-default", + "properties" : { } + }, + "sdnc" : { + "type" : "source-rest", "properties" : { - "endpoint-selector" : "dynamic-db-source", - "type" : "SQL", - "query" : "select sdnctl.IPAM_IP_POOL.prefix as prefix from sdnctl.IPAM_IP_POOL where description = \"private2\"", - "input-key-mapping" : { }, + "verb" : "GET", + "type" : "JSON", + "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/int_private2_subnet_id", + "path" : "/param/0/value", + "input-key-mapping" : { + "service-instance-id" : "service-instance-id", + "vnf-id" : "vnf-id" + }, "output-key-mapping" : { - "int_private2_net_cidr" : "prefix" - } + "int_private2_subnet_id" : "value" + }, + "key-dependencies" : [ "service-instance-id", "vnf-id" ] + } + } + } + }, + "k8s-rb-profile-name" : { + "tags" : "k8s, cnf, profile", + "name" : "k8s-rb-profile-name", + "property" : { + "description" : "Profile name used in multicloud/k8s plugin to identify Helm chart(s) where this mapping is providing override values.", + "type" : "string" + }, + "updated-by" : "Samuli, Silvius ", + "sources" : { + "input" : { + "type" : "source-input" + }, + "default" : { + "type" : "source-default", + "properties" : { } + }, + "sdnc" : { + "type" : "source-rest", + "properties" : { + "verb" : "GET", + "type" : "JSON", + "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/k8s-rb-profile-name", + "path" : "/param/0/value", + "input-key-mapping" : { + "service-instance-id" : "service-instance-id", + "vnf-id" : "vnf-id" + }, + "output-key-mapping" : { + "k8s-rb-profile-name" : "value" + }, + "key-dependencies" : [ "service-instance-id", "vnf-id" ] } } } @@ -521,6 +766,41 @@ } } }, + "onap_private_gw_ip" : { + "tags" : "k8s, cnf, onap_private_gw_ip", + "name" : "onap_private_gw_ip", + "property" : { + "description" : "Private onap management network gateway ip address", + "type" : "string" + }, + "updated-by" : "Samuli, Silvius ", + "sources" : { + "input" : { + "type" : "source-input" + }, + "default" : { + "type" : "source-default", + "properties" : { } + }, + "sdnc" : { + "type" : "source-rest", + "properties" : { + "verb" : "GET", + "type" : "JSON", + "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/onap_private_gw_ip", + "path" : "/param/0/value", + "input-key-mapping" : { + "service-instance-id" : "service-instance-id", + "vnf-id" : "vnf-id" + }, + "output-key-mapping" : { + "onap_private_gw_ip" : "value" + }, + "key-dependencies" : [ "service-instance-id", "vnf-id" ] + } + } + } + }, "onap_private_net_cidr" : { "tags" : "onap_private_net_cidr", "name" : "onap_private_net_cidr", @@ -809,8 +1089,15 @@ "description" : "put-active-streams", "type" : "string" }, - "updated-by" : "Singal, Kapil ", + "updated-by" : "MALAKOV, YURIY ", "sources" : { + "input" : { + "type" : "source-input" + }, + "default" : { + "type" : "source-default", + "properties" : { } + }, "sdnc" : { "type" : "source-rest", "properties" : { @@ -827,13 +1114,6 @@ "endpoint-selector" : "vpkg-rest-api", "payload" : "{\"streams\": {\"active-streams\": $active-streams}}" } - }, - "input" : { - "type" : "source-input" - }, - "default" : { - "type" : "source-default", - "properties" : { } } } }, @@ -1339,9 +1619,9 @@ "sdnc" : { "type" : "source-rest", "properties" : { + "verb" : "GET", "type" : "JSON", - "verb": "GET", - "url-path" : "config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/name", + "url-path" : "/restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/vnfs/vnf/$vnf-id/vnf-data/vnf-topology/vnf-parameters-data/param/vnf_name", "path" : "/param/0/value", "input-key-mapping" : { "service-instance-id" : "service-instance-id", @@ -1352,24 +1632,6 @@ }, "key-dependencies" : [ "service-instance-id", "vnf-id" ] } - }, - "aai-data": { - "type": "source-rest", - "properties": { - "type": "JSON", - "verb": "GET", - "url-path": "/aai/v14/network/generic-vnfs/generic-vnf/$vnf-id", - "path": "", - "input-key-mapping": { - "vnf-id": "vnf-id" - }, - "output-key-mapping": { - "vnf_name": "vnf-name" - }, - "key-dependencies": [ - "vnf-id" - ] - } } } }, @@ -1425,15 +1687,15 @@ "processor-db" : { "type" : "source-db", "properties" : { + "endpoint-selector" : "dynamic-db-source", "type" : "SQL", "query" : "select VFC_MODEL.version as vnfc_model_version from VFC_MODEL where customization_uuid=:vfccustomizationuuid", - "output-key-mapping" : { - "vnfc-model-version" : "vnfc_model_version" - }, - "endpoint-selector" : "dynamic-db-source", "input-key-mapping" : { "vfccustomizationuuid" : "vfccustomizationuuid" }, + "output-key-mapping" : { + "vnfc-model-version" : "vnfc_model_version" + }, "key-dependencies" : [ "vfccustomizationuuid" ] } } @@ -1446,7 +1708,7 @@ "description" : "vpg_int_private1_ip_0", "type" : "string" }, - "updated-by" : "Singal, Kapil ", + "updated-by" : "MALAKOV, YURIY ", "sources" : { "input" : { "type" : "source-input" @@ -1478,7 +1740,7 @@ "tags" : "vpg_name_0", "name" : "vpg_name_0", "property" : { - "description" : "vlb_name_0", + "description" : "vpg_name_0", "type" : "string" }, "updated-by" : "MALAKOV, YURIY ", diff --git a/heat/vFW_CNF_CDS/templates/cba/Definitions/vFW_CDS.json b/heat/vFW_CNF_CDS/templates/cba/Definitions/vFW_CDS.json deleted file mode 100644 index 13bec84b..00000000 --- a/heat/vFW_CNF_CDS/templates/cba/Definitions/vFW_CDS.json +++ /dev/null @@ -1,181 +0,0 @@ -{ - "tosca_definitions_version" : "controller_blueprint_1_0_0", - "metadata" : { - "template_author" : "Abdelmuhaimen Seaudi", - "author-email" : "abdelmuhaimen.seaudi@orange.com", - "user-groups" : "ADMIN, OPERATION", - "template_name" : "vFW_CDS", - "template_version" : "1.0.0", - "template_tags" : "vFW-CDS, vfw-CDS, SCALE-OUT" - }, - "imports" : [ { - "file" : "Definitions/data_types.json" - }, { - "file" : "Definitions/relationship_types.json" - }, { - "file" : "Definitions/artifact_types.json" - }, { - "file" : "Definitions/node_types.json" - }, { - "file" : "Definitions/policy_types.json" - } ], - "dsl_definitions" : { - "ipam-1" : { - "type" : "token-auth", - "url" : "http://netbox-nginx:8080", - "token" : "Token 0123456789abcdef0123456789abcdef01234567" - }, - "config-deploy-properties" : { - "resolution-key" : { - "get_input" : "resolution-key" - } - }, - "dynamic-db-source" : { - "type" : "maria-db", - "url" : "jdbc:mysql://mariadb-galera:3306/sdnctl", - "username" : "root", - "password" : "secretpassword" - } - }, - "topology_template" : { - "workflows" : { - "resource-assignment" : { - "steps" : { - "resource-assignment" : { - "description" : "Resource Assign Workflow", - "target" : "resource-assignment" - } - }, - "inputs" : { - "template-prefix" : { - "required" : true, - "type" : "list", - "entry_schema" : { - "type" : "string" - } - }, - "resource-assignment-properties" : { - "description" : "Dynamic PropertyDefinition for workflow(resource-assignment).", - "required" : true, - "type" : "dt-resource-assignment-properties" - } - }, - "outputs" : { - "meshed-template" : { - "type" : "json", - "value" : { - "get_attribute" : [ "resource-assignment", "assignment-params" ] - } - } - } - }, - "config-deploy" : { - "steps" : { - "config-deploy" : { - "description" : "Config Deploy Workflow", - "target" : "config-deploy-process" - } - }, - "inputs" : { - "config-deploy-properties" : { - "description" : "Dynamic PropertyDefinition for workflow(config-deploy).", - "required" : true, - "type" : "dt-config-deploy-properties" - } - }, - "outputs" : { - "dry-run" : { - "type" : "json", - "value" : { - "get_attribute" : [ "config-deploy-process", "assignment-params" ] - } - } - } - } - }, - "node_templates" : { - "resource-assignment" : { - "type" : "component-resource-resolution", - "interfaces" : { - "ResourceResolutionComponent" : { - "operations" : { - "process" : { - "inputs" : { - "artifact-prefix-names" : { - "get_input" : "template-prefix" - } - } - } - } - } - }, - "artifacts" : { - "base_template-template" : { - "type" : "artifact-template-velocity", - "file" : "Templates/base_template-template.vtl" - }, - "base_template-mapping" : { - "type" : "artifact-mapping-resource", - "file" : "Templates/base_template-mapping.json" - }, - "vpkg-template" : { - "type" : "artifact-template-velocity", - "file" : "Templates/vpkg-template.vtl" - }, - "vpkg-mapping" : { - "type" : "artifact-mapping-resource", - "file" : "Templates/vpkg-mapping.json" - }, - "vfw-template" : { - "type" : "artifact-template-velocity", - "file" : "Templates/vfw-template.vtl" - }, - "vfw-mapping" : { - "type" : "artifact-mapping-resource", - "file" : "Templates/vfw-mapping.json" - }, - "vnf-template" : { - "type" : "artifact-template-velocity", - "file" : "Templates/vnf-template.vtl" - }, - "vnf-mapping" : { - "type" : "artifact-mapping-resource", - "file" : "Templates/vnf-mapping.json" - }, - "vsn-template" : { - "type" : "artifact-template-velocity", - "file" : "Templates/vsn-template.vtl" - }, - "vsn-mapping" : { - "type" : "artifact-mapping-resource", - "file" : "Templates/vsn-mapping.json" - } - } - }, - "config-deploy-process" : { - "type" : "component-resource-resolution", - "interfaces" : { - "ResourceResolutionComponent" : { - "operations" : { - "process" : { - "inputs" : { - "artifact-prefix-names" : [ "nf-params" ] - } - } - } - } - }, - "artifacts" : { - "nf-params-template" : { - "type" : "artifact-template-velocity", - "file" : "Templates/nf-params-template.vtl" - }, - "nf-params-mapping" : { - "type" : "artifact-mapping-resource", - "file" : "Templates/nf-params-mapping.json" - } - } - } - } - } -} \ No newline at end of file diff --git a/heat/vFW_CNF_CDS/templates/cba/Definitions/vFW_CNF_CDS.json b/heat/vFW_CNF_CDS/templates/cba/Definitions/vFW_CNF_CDS.json new file mode 100644 index 00000000..405df54e --- /dev/null +++ b/heat/vFW_CNF_CDS/templates/cba/Definitions/vFW_CNF_CDS.json @@ -0,0 +1,188 @@ +{ + "tosca_definitions_version" : "controller_blueprint_1_0_0", + "metadata" : { + "template_author" : "Samuli Silvius ", + "author-email" : "abdelmuhaimen.seaudi@orange.com", + "user-groups" : "ADMIN, OPERATION", + "template_name" : "vFW_CNF_CDS", + "template_version" : "1.0.0", + "template_tags" : "Samuli Silvius, vFW_CNF_CDS", + "template_type" : "DEFAULT" + }, + "imports" : [ { + "file" : "Definitions/data_types.json" + }, { + "file" : "Definitions/relationship_types.json" + }, { + "file" : "Definitions/artifact_types.json" + }, { + "file" : "Definitions/node_types.json" + }, { + "file" : "Definitions/policy_types.json" + } ], + "dsl_definitions" : { + "ipam-1" : { + "type" : "token-auth", + "url" : "http://netbox-nginx:8080", + "token" : "Token 0123456789abcdef0123456789abcdef01234567" + }, + "vpkg-rest-api" : { + "type" : "basic-auth", + "url" : "http://", + "username" : "admin", + "password" : "admin" + }, + "config-deploy-properties" : { + "resolution-key" : { + "get_input" : "resolution-key" + } + }, + "dynamic-db-source" : { + "type" : "maria-db", + "url" : "jdbc:mysql://mariadb-galera:3306/sdnctl", + "username" : "root", + "password" : "secretpassword" + } + }, + "topology_template" : { + "workflows" : { + "resource-assignment" : { + "steps" : { + "resource-assignment" : { + "description" : "Resource Assign Workflow", + "target" : "resource-assignment" + } + }, + "inputs" : { + "template-prefix" : { + "required" : true, + "type" : "list", + "entry_schema" : { + "type" : "string" + } + }, + "resource-assignment-properties" : { + "description" : "Dynamic PropertyDefinition for workflow(resource-assignment).", + "required" : true, + "type" : "dt-resource-assignment-properties" + } + }, + "outputs" : { + "meshed-template" : { + "type" : "json", + "value" : { + "get_attribute" : [ "resource-assignment", "assignment-params" ] + } + } + } + }, + "config-deploy" : { + "steps" : { + "config-deploy" : { + "description" : "Config Deploy Workflow", + "target" : "config-deploy-process" + } + }, + "inputs" : { + "config-deploy-properties" : { + "description" : "Dynamic PropertyDefinition for workflow(config-deploy).", + "required" : true, + "type" : "dt-config-deploy-properties" + } + }, + "outputs" : { + "dry-run" : { + "type" : "json", + "value" : { + "get_attribute" : [ "config-deploy-process", "assignment-params" ] + } + } + } + } + }, + "node_templates" : { + "resource-assignment" : { + "type" : "component-resource-resolution", + "interfaces" : { + "ResourceResolutionComponent" : { + "operations" : { + "process" : { + "inputs" : { + "artifact-prefix-names" : { + "get_input" : "template-prefix" + } + } + } + } + } + }, + "artifacts" : { + "base_template-template" : { + "type" : "artifact-template-velocity", + "file" : "Templates/base_template-template.vtl" + }, + "base_template-mapping" : { + "type" : "artifact-mapping-resource", + "file" : "Templates/base_template-mapping.json" + }, + "vpkg-template" : { + "type" : "artifact-template-velocity", + "file" : "Templates/vpkg-template.vtl" + }, + "vpkg-mapping" : { + "type" : "artifact-mapping-resource", + "file" : "Templates/vpkg-mapping.json" + }, + "vfw-template" : { + "type" : "artifact-template-velocity", + "file" : "Templates/vfw-template.vtl" + }, + "vfw-mapping" : { + "type" : "artifact-mapping-resource", + "file" : "Templates/vfw-mapping.json" + }, + "vnf-template" : { + "type" : "artifact-template-velocity", + "file" : "Templates/vnf-template.vtl" + }, + "vnf-mapping" : { + "type" : "artifact-mapping-resource", + "file" : "Templates/vnf-mapping.json" + }, + "vsn-template" : { + "type" : "artifact-template-velocity", + "file" : "Templates/vsn-template.vtl" + }, + "vsn-mapping" : { + "type" : "artifact-mapping-resource", + "file" : "Templates/vsn-mapping.json" + } + } + }, + "config-deploy-process" : { + "type" : "component-resource-resolution", + "interfaces" : { + "ResourceResolutionComponent" : { + "operations" : { + "process" : { + "inputs" : { + "artifact-prefix-names" : [ "nf-params" ] + } + } + } + } + }, + "artifacts" : { + "nf-params-template" : { + "type" : "artifact-template-velocity", + "file" : "Templates/nf-params-template.vtl" + }, + "nf-params-mapping" : { + "type" : "artifact-mapping-resource", + "file" : "Templates/nf-params-mapping.json" + } + } + } + } + } +} \ No newline at end of file -- cgit 1.2.3-korg