aboutsummaryrefslogtreecommitdiffstats
path: root/heat/vFW_CNF_CDS/templates/cba/Definitions
diff options
context:
space:
mode:
authorLukasz Rajewski <lukasz.rajewski@orange.com>2021-03-19 17:50:37 +0100
committerLukasz Rajewski <lukasz.rajewski@orange.com>2021-03-19 18:59:53 +0100
commitd2c5f361fa3a246dfa23c2c582ec498322a97282 (patch)
tree50f8ecf48470eac3845444b42dc29fa8a0033549 /heat/vFW_CNF_CDS/templates/cba/Definitions
parent1ff5827ffde7af1d8aed23890a571455300ade6d (diff)
Implementation of config-assign and config-deploy actions
Implementation of config-assign and config-deploy actions Issue-ID: INT-1868 Signed-off-by: Lukasz Rajewski <lukasz.rajewski@orange.com> Change-Id: Ibe61ea32bb1d0fbfc5396adf54c7d2fcbc7bbf30
Diffstat (limited to 'heat/vFW_CNF_CDS/templates/cba/Definitions')
-rw-r--r--heat/vFW_CNF_CDS/templates/cba/Definitions/data_types.json48
-rw-r--r--heat/vFW_CNF_CDS/templates/cba/Definitions/node_types.json229
-rw-r--r--heat/vFW_CNF_CDS/templates/cba/Definitions/resources_definition_types.json115
-rw-r--r--heat/vFW_CNF_CDS/templates/cba/Definitions/vFW_CNF_CDS.json166
4 files changed, 528 insertions, 30 deletions
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 b5697555..5fb59cf5 100644
--- a/heat/vFW_CNF_CDS/templates/cba/Definitions/data_types.json
+++ b/heat/vFW_CNF_CDS/templates/cba/Definitions/data_types.json
@@ -7,14 +7,18 @@
"service-instance-id": {
"description": "",
"required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
+ "type": "string"
+ },
+ "vnf-id": {
+ "description": "",
+ "required": false,
+ "type": "string"
+ },
+ "vf-modules-list": {
+ "type": "json"
+ },
+ "config-deploy-setup": {
+ "type": "json"
}
},
"derived_from": "tosca.datatypes.Dynamic"
@@ -26,14 +30,18 @@
"service-instance-id": {
"description": "",
"required": false,
- "type": "string",
- "status": "",
- "constraints": [
- {}
- ],
- "entry_schema": {
- "type": ""
- }
+ "type": "string"
+ },
+ "vnf-id": {
+ "description": "",
+ "required": false,
+ "type": "string"
+ },
+ "vf-modules-list": {
+ "type": "json"
+ },
+ "config-deploy-setup": {
+ "type": "json"
}
},
"derived_from": "tosca.datatypes.Dynamic"
@@ -60,6 +68,14 @@
"description": "The source folder or file relative to 'Templates/k8s-profiles' folder",
"type": "string"
},
+ "k8s-rb-config-template-name": {
+ "description": "The name of configuration template for config-assign operation",
+ "type": "string"
+ },
+ "k8s-rb-config-template-source": {
+ "description": "The source of configuration template for config-assign operation",
+ "type": "string"
+ },
"private1-prefix-id": {
"description": "",
"required": false,
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 9ee224b5..95db7aec 100644
--- a/heat/vFW_CNF_CDS/templates/cba/Definitions/node_types.json
+++ b/heat/vFW_CNF_CDS/templates/cba/Definitions/node_types.json
@@ -139,6 +139,14 @@
"required": true,
"type": "string"
},
+ "instance-dependencies": {
+ "description": "Instance names to inject to Jython or Kotlin Script.",
+ "required": true,
+ "type": "list",
+ "entry_schema": {
+ "type": "string"
+ }
+ },
"dynamic-properties": {
"description": "Dynamic Json Content or DSL Json reference.",
"required": false,
@@ -233,6 +241,150 @@
},
"derived_from": "tosca.nodes.Component"
},
+ "component-k8s-config-template": {
+ "description": "This component is rendering and sending the k8s template to the multicloud plugin.",
+ "version": "1.0.0",
+ "attributes": {
+ "statuses": {
+ "required": true,
+ "type": "json"
+ }
+ },
+ "capabilities": {
+ "component-node": {
+ "type": "tosca.capabilities.Node"
+ }
+ },
+ "interfaces": {
+ "K8sConfigTemplateComponent": {
+ "operations": {
+ "process": {
+ "inputs": {
+ "k8s-rb-config-template-name": {
+ "description": "K8s template name",
+ "required": false,
+ "type": "string"
+ },
+ "k8s-rb-definition-name": {
+ "description": "K8s definition name",
+ "required": false,
+ "type": "string"
+ },
+ "k8s-rb-definition-version": {
+ "description": "Version of the definition",
+ "required": false,
+ "type": "string"
+ },
+ "k8s-rb-config-template-source": {
+ "description": "Source (tgz/folder) for the template in CBA",
+ "required": false,
+ "type": "string"
+ },
+ "artifact-prefix-names": {
+ "description": "Resource Assignment Artifact Prefix names",
+ "required": false,
+ "type": "list",
+ "entry_schema": {
+ "type": "string"
+ }
+ },
+ "resource-assignment-map": {
+ "description": "Holds resolved values for each artifact prefix eg. { vdns: { vnf-id: 123 } }",
+ "required": false,
+ "type": "json"
+ }
+ },
+ "outputs": {
+ "statuses": {
+ "required": true,
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ "derived_from": "tosca.nodes.Component"
+ },
+ "component-k8s-config-value": {
+ "description": "This component is sending the k8s config value to the multicloud plugin.",
+ "version": "1.0.0",
+ "attributes": {
+ "statuses": {
+ "required": true,
+ "type": "json"
+ }
+ },
+ "capabilities": {
+ "component-node": {
+ "type": "tosca.capabilities.Node"
+ }
+ },
+ "interfaces": {
+ "K8sConfigValueComponent": {
+ "operations": {
+ "process": {
+ "inputs": {
+ "k8s-template-name": {
+ "description": "K8s template name",
+ "required": false,
+ "type": "string"
+ },
+ "k8s-config-name": {
+ "description": "K8s config name",
+ "required": false,
+ "type": "string"
+ },
+ "k8s-instance-id": {
+ "description": "K8s instance id",
+ "required": false,
+ "type": "string"
+ },
+ "k8s-rb-template-value-source": {
+ "description": "Location of value source in CBA",
+ "required": false,
+ "type": "string"
+ },
+ "k8s-operation-type": {
+ "required": false,
+ "type": "string",
+ "constraints": [
+ {
+ "valid_values": [
+ "create",
+ "update",
+ "rollback"
+ ]
+ }
+ ],
+ "default": "create"
+ },
+ "artifact-prefix-names": {
+ "description": "Resource Assignment Artifact Prefix names",
+ "required": false,
+ "type": "list",
+ "entry_schema": {
+ "type": "string"
+ }
+ },
+ "resource-assignment-map": {
+ "description": "Holds resolved values for each artifact prefix eg. { vdns: { vnf-id: 123 } }",
+ "required": false,
+ "type": "json"
+ }
+ },
+ "outputs": {
+ "statuses": {
+ "required": true,
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ "derived_from": "tosca.nodes.Component"
+ },
"source-capability": {
"description": "This is Component Resource Source Node Type",
"version": "1.0.0",
@@ -437,6 +589,83 @@
"description": "TOSCA base type for Resource Sources",
"version": "1.0.0",
"derived_from": "tosca.nodes.Root"
+ },
+ "tosca.nodes.Vnf": {
+ "description": "This is VNF Node Type",
+ "version": "1.0.0",
+ "derived_from": "tosca.nodes.Root"
+ },
+ "tosca.nodes.Workflow": {
+ "description": "This is Directed Graph Node Type",
+ "version": "1.0.0",
+ "derived_from": "tosca.nodes.Root"
+ },
+ "vnf-netconf-device": {
+ "description": "This is VNF Device with Netconf Capability",
+ "version": "1.0.0",
+ "capabilities": {
+ "netconf": {
+ "type": "tosca.capabilities.Netconf",
+ "properties": {
+ "login-key": {
+ "required": true,
+ "type": "string",
+ "default": "sdnc"
+ },
+ "login-account": {
+ "required": true,
+ "type": "string",
+ "default": "sdnc-tacacs"
+ },
+ "source": {
+ "required": false,
+ "type": "string",
+ "default": "npm"
+ },
+ "target-ip-address": {
+ "required": true,
+ "type": "string"
+ },
+ "port-number": {
+ "required": true,
+ "type": "integer",
+ "default": 830
+ },
+ "connection-time-out": {
+ "required": false,
+ "type": "integer",
+ "default": 30
+ }
+ }
+ },
+ "restconf": {
+ "type": "tosca.capabilities.Restconf",
+ "properties": {
+ "login-key": {
+ "required": true,
+ "type": "string"
+ },
+ "login-account": {
+ "required": true,
+ "type": "string"
+ },
+ "target-ip-address": {
+ "required": true,
+ "type": "string"
+ },
+ "port-number": {
+ "required": true,
+ "type": "integer"
+ },
+ "connection-time-out": {
+ "required": false,
+ "type": "integer",
+ "default": 30
+ }
+ }
+ }
+ },
+ "derived_from": "tosca.nodes.Vnf"
}
}
}
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 63d83e44..6277e01b 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
@@ -328,6 +328,44 @@
}
}
},
+ "k8s-rb-config-template-name": {
+ "tags": "k8s, cnf, config, k8s-rb-config-template-name",
+ "name": "k8s-rb-config-template-name",
+ "property": {
+ "description": "The name of configuration template for config-assign operation",
+ "type": "string"
+ },
+ "group": "default",
+ "updated-by": "Rajewski, Lukasz <lukasz.rajewski@orange.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ }
+ }
+ },
+ "k8s-rb-config-template-source": {
+ "tags": "k8s, cnf, config, k8s-rb-config-template-source",
+ "name": "k8s-rb-config-template-source",
+ "property": {
+ "description": "The source of configuration template for config-assign operation",
+ "type": "string"
+ },
+ "group": "default",
+ "updated-by": "Rajewski, Lukasz <lukasz.rajewski@orange.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ }
+ }
+ },
"management-prefix-id": {
"tags": "management-prefix-id",
"name": "management-prefix-id",
@@ -978,5 +1016,82 @@
}
}
}
+ },
+ "vf-modules-list": {
+ "tags": "vf-modules-list",
+ "name": "vf-modules-list",
+ "property": {
+ "description": "List of vf-modules associated with vnf",
+ "type": "json"
+ },
+ "group": "default",
+ "updated-by": "Lukasz Rajewski <lukasz.rajewski@orange.com>",
+ "sources": {
+ "input": {
+ "type": "source-input"
+ },
+ "default": {
+ "type": "source-default",
+ "properties": {}
+ },
+ "aai-data": {
+ "type": "source-rest",
+ "properties": {
+ "verb": "GET",
+ "type": "JSON",
+ "url-path": "/aai/v19/network/generic-vnfs/generic-vnf/${vnf-id}?depth=1",
+ "path": "/vf-modules",
+ "input-key-mapping": {
+ "vnf-id": "vnf-id"
+ },
+ "output-key-mapping": {
+ "vf-modules": "vf-module"
+ },
+ "key-dependencies": [
+ "vnf-id"
+ ]
+ }
+ },
+ "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/vf-modules",
+ "path": "/vf-modules",
+ "input-key-mapping": {
+ "service-instance-id": "service-instance-id",
+ "vnf-id": "vnf-id"
+ },
+ "output-key-mapping": {
+ "vf-modules": "vf-module"
+ },
+ "key-dependencies": [
+ "service-instance-id",
+ "vnf-id"
+ ]
+ }
+ }
+ }
+ },
+ "config-deploy-setup": {
+ "tags": "config-deploy-setup",
+ "name": "config-deploy-setup",
+ "property": {
+ "description": "Configuration Input setup for config-deploy operation",
+ "type": "json"
+ },
+ "group": "default",
+ "updated-by": "Lukasz Rajewski <lukasz.rajewski@orange.com>",
+ "sources": {
+ "capability": {
+ "type": "source-capability",
+ "properties": {
+ "script-type": "kotlin",
+ "script-class-reference": "org.onap.ccsdk.cds.blueprintsprocessor.services.execution.scripts.ConfigDeploySetup",
+ "instance-dependencies": []
+ }
+ }
+ }
}
}
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
index 9053c9b2..6c71ca22 100644
--- a/heat/vFW_CNF_CDS/templates/cba/Definitions/vFW_CNF_CDS.json
+++ b/heat/vFW_CNF_CDS/templates/cba/Definitions/vFW_CNF_CDS.json
@@ -37,6 +37,20 @@
"resolution-key": {
"get_input": "resolution-key"
}
+ },
+ "simple-status-properties": {
+ "resolution-key": {
+ "get_input": "resolution-key"
+ },
+ "config-deploy-setup": {
+ "get_attribute": [
+ "config-setup-process",
+ "",
+ "assignment-map",
+ "config-deploy",
+ "config-deploy-setup"
+ ]
+ }
}
},
"topology_template": {
@@ -100,12 +114,24 @@
},
"config-assign": {
"steps": {
- "config-assign": {
- "description": "Create a message",
- "target": "config-assign-process",
+ "config-setup": {
+ "description": "Gather necessary input for config template upload",
+ "target": "config-setup-process",
"activities": [
{
- "call_operation": ""
+ "call_operation": "ResourceResolutionComponent.process"
+ }
+ ],
+ "on_success": [
+ "config-template"
+ ]
+ },
+ "config-template": {
+ "description": "Generate and upload K8s config template",
+ "target": "k8s-config-template",
+ "activities": [
+ {
+ "call_operation": "K8sConfigTemplateComponent.process"
}
]
}
@@ -128,9 +154,38 @@
},
"config-deploy": {
"steps": {
- "config-deploy": {
- "description": "Run kotlin script",
- "target": "config-deploy-process"
+ "config-setup": {
+ "description": "Gather necessary input for config init and status verification",
+ "target": "config-setup-process",
+ "activities": [
+ {
+ "call_operation": "ResourceResolutionComponent.process"
+ }
+ ],
+ "on_success": [
+ "config-apply"
+ ]
+ },
+ "config-apply": {
+ "description": "Activate K8s config template",
+ "target": "k8s-config-apply",
+ "activities": [
+ {
+ "call_operation": "K8sConfigTemplateComponent.process"
+ }
+ ],
+ "on_success": [
+ "status-verification-script"
+ ]
+ },
+ "status-verification-script": {
+ "description": "Simple status verification script",
+ "target": "simple-status-check",
+ "activities": [
+ {
+ "call_operation": "ComponentScriptExecutor.process"
+ }
+ ]
}
},
"inputs": {
@@ -241,7 +296,90 @@
}
}
},
- "config-assign-process": {
+ "k8s-config-template": {
+ "type": "component-k8s-config-template",
+ "interfaces": {
+ "K8sConfigTemplateComponent": {
+ "operations": {
+ "process": {
+ "inputs": {
+ "artifact-prefix-names": [
+ "helm_vpkg"
+ ],
+ "resource-assignment-map": {
+ "get_attribute": [
+ "config-setup-process",
+ "",
+ "assignment-map",
+ "config-deploy",
+ "config-deploy-setup"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "artifacts": {
+ "ssh-service-config": {
+ "type": "artifact-k8sprofile-content",
+ "file": "Templates/k8s-configs/ssh-service.tar.gz"
+ },
+ "ssh-service-config-customizable": {
+ "type": "artifact-k8sprofile-content",
+ "file": "Templates/k8s-configs/ssh-service-config"
+ },
+ "ssh-service-config-customizable-mapping": {
+ "type": "artifact-mapping-resource",
+ "file": "Templates/k8s-configs/ssh-service-config/ssh-service-mapping.json"
+ }
+ }
+ },
+ "k8s-config-apply": {
+ "type": "component-k8s-config-value",
+ "interfaces": {
+ "K8sConfigValueComponent": {
+ "operations": {
+ "process": {
+ "inputs": {
+ "artifact-prefix-names": [
+ "helm_vpkg"
+ ],
+ "resource-assignment-map": {
+ "get_attribute": [
+ "config-setup-process",
+ "",
+ "assignment-map",
+ "config-deploy",
+ "config-deploy-setup"
+ ]
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "simple-status-check": {
+ "type": "component-script-executor",
+ "interfaces": {
+ "ComponentScriptExecutor": {
+ "operations": {
+ "process": {
+ "inputs": {
+ "script-type": "kotlin",
+ "script-class-reference": "org.onap.ccsdk.cds.blueprintsprocessor.services.execution.scripts.SimpleStatusCheck",
+ "instance-dependencies": [
+ "blueprintPropertiesService"
+ ],
+ "dynamic-properties": "*simple-status-properties"
+ }
+ }
+ }
+ }
+ }
+ },
+ "config-setup-process": {
"type": "component-resource-resolution",
"interfaces": {
"ResourceResolutionComponent": {
@@ -251,9 +389,9 @@
"resolution-key": {
"get_input": "resolution-key"
},
- "store-result": true,
+ "store-result": false,
"artifact-prefix-names": [
- "cnf"
+ "config-deploy"
]
},
"outputs": {
@@ -270,13 +408,13 @@
}
},
"artifacts": {
- "cnf-template": {
+ "config-deploy-template": {
"type": "artifact-template-velocity",
- "file": "Templates/cnf-template.vtl"
+ "file": "Templates/config-setup-template.vtl"
},
- "cnf-mapping": {
+ "config-deploy-mapping": {
"type": "artifact-mapping-resource",
- "file": "Templates/cnf-mapping.json"
+ "file": "Templates/config-setup-mapping.json"
}
}
},