{
- "tosca_definitions_version" : "controller_blueprint_1_0_0",
- "metadata" : {
- "template_author" : "Samuli Silvius <s.silvius@partner.samsung.com>",
- "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"
+ "tosca_definitions_version": "controller_blueprint_1_0_0",
+ "metadata": {
+ "template_author": "Samuli Silvius <s.silvius@partner.samsung.com>",
+ "author-email": "lukasz.rajewski@orange.com",
+ "user-groups": "ADMIN, OPERATION",
+ "template_name": "vFW_CNF_CDS",
+ "template_version": "8.0.0",
+ "template_tags": "Samuli Silvius, Lukasz Rajewski, vFW_CNF_CDS",
+ "template_type": "DEFAULT"
},
- "vpkg-rest-api" : {
- "type" : "basic-auth",
- "url" : "http://",
- "username" : "admin",
- "password" : "admin"
- },
- "multicloud-k8s-api" : {
- "type" : "basic-auth",
- "username" : "admin",
- "password" : "admin",
- "url" : "http://multicloud-k8s:9015"
- },
- "profile-upload-properties" : {
- "assignment-params": {
- "get_attribute" : [ "resource-assignment", "assignment-params" ]
- },
- "api-access": "*multicloud-k8s-api"
- },
- "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",
- "activities": [
- {
- "call_operation": "ResourceResolutionComponent.process"
- }
- ],
- "on_success": [
- "profile-upload"
- ]
- },
- "profile-upload" : {
- "description" : "Upload K8s Profile",
- "target" : "profile-upload",
- "activities": [
- {
- "call_operation": "ComponentScriptExecutor.process"
- }
- ]
- }
+ "imports": [
+ {
+ "file": "Definitions/data_types.json"
},
- "inputs" : {
- "template-prefix" : {
- "required" : true,
- "type" : "list",
- "entry_schema" : {
- "type" : "string"
- }
- },
- "resolution-key" : {
- "required" : false,
- "type" : "string",
- "entry_schema" : {
- "type" : ""
- }
- },
- "resource-assignment-properties" : {
- "description" : "Dynamic PropertyDefinition for workflow(resource-assignment).",
- "required" : true,
- "type" : "dt-resource-assignment-properties"
- }
+ {
+ "file": "Definitions/relationship_types.json"
},
- "outputs" : {
- "meshed-template" : {
- "type" : "json",
- "value" : {
- "get_attribute" : [ "resource-assignment", "assignment-params" ]
- }
- }
+ {
+ "file": "Definitions/artifact_types.json"
+ },
+ {
+ "file": "Definitions/node_types.json"
+ },
+ {
+ "file": "Definitions/policy_types.json"
}
- },
- "config-deploy" : {
- "steps" : {
- "config-deploy" : {
- "description" : "Config Deploy Workflow",
- "target" : "config-deploy-process"
- }
+ ],
+ "dsl_definitions": {
+ "vpkg-rest-api": {
+ "type": "basic-auth",
+ "url": "http://",
+ "username": "admin",
+ "password": "admin"
},
- "inputs" : {
- "config-deploy-properties" : {
- "description" : "Dynamic PropertyDefinition for workflow(config-deploy).",
- "required" : true,
- "type" : "dt-config-deploy-properties"
- }
+ "config-deploy-properties": {
+ "resolution-key": {
+ "get_input": "resolution-key"
+ }
},
- "outputs" : {
- "dry-run" : {
- "type" : "json",
- "value" : {
- "get_attribute" : [ "config-deploy-process", "assignment-params" ]
+ "simple-status-properties": {
+ "resolution-key": {
+ "get_input": "resolution-key"
+ },
+ "config-deploy-setup": {
+ "get_attribute": [
+ "config-setup-process",
+ "",
+ "assignment-map",
+ "config-deploy",
+ "config-deploy-setup"
+ ]
}
- }
}
- }
},
- "node_templates" : {
- "resource-assignment" : {
- "type" : "component-resource-resolution",
- "interfaces" : {
- "ResourceResolutionComponent" : {
- "operations" : {
- "process" : {
- "inputs" : {
- "artifact-prefix-names" : {
- "get_input" : "template-prefix"
- }
+ "topology_template": {
+ "workflows": {
+ "resource-assignment": {
+ "steps": {
+ "resource-assignment": {
+ "description": "Resource Assign Workflow",
+ "target": "resource-assignment",
+ "activities": [
+ {
+ "call_operation": "ResourceResolutionComponent.process"
+ }
+ ],
+ "on_success": [
+ "profile-upload"
+ ]
+ },
+ "profile-upload": {
+ "description": "Generate and upload K8s Profile",
+ "target": "k8s-profile-upload",
+ "activities": [
+ {
+ "call_operation": "ComponentScriptExecutor.process"
+ }
+ ]
+ }
+ },
+ "inputs": {
+ "template-prefix": {
+ "required": true,
+ "type": "list",
+ "entry_schema": {
+ "type": "string"
+ }
+ },
+ "resolution-key": {
+ "required": false,
+ "type": "string",
+ "entry_schema": {
+ "type": ""
+ }
+ },
+ "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-assign": {
+ "steps": {
+ "config-setup": {
+ "description": "Gather necessary input for config template upload",
+ "target": "config-setup-process",
+ "activities": [
+ {
+ "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"
+ }
+ ]
+ }
+ },
+ "inputs": {
+ "resolution-key": {
+ "required": true,
+ "type": "string"
+ },
+ "store-result": {
+ "required": true,
+ "type": "boolean"
+ },
+ "config-assign-properties": {
+ "description": "Dynamic PropertyDefinition for workflow(config-assign).",
+ "required": true,
+ "type": "dt-config-assign-properties"
+ }
+ }
+ },
+ "config-deploy": {
+ "steps": {
+ "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"
+ ],
+ "on_failure": [
+ "handle_error"
+ ]
+ },
+ "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"
+ }
+ ],
+ "on_success": [
+ "collect-results"
+ ],
+ "on_failure": [
+ "handle_error"
+ ]
+ },
+ "handle_error": {
+ "description": "Simple error verification script",
+ "target": "simple-error-check",
+ "activities": [
+ {
+ "call_operation": "ComponentScriptExecutor.process"
+ }
+ ],
+ "on_success": [
+ "collect-results"
+ ]
+ },
+ "collect-results": {
+ "description": "Final collection of results",
+ "target": "collect-results"
+ }
+ },
+ "inputs": {
+ "resolution-key": {
+ "required": true,
+ "type": "string"
+ },
+ "config-deploy-properties": {
+ "description": "Dynamic PropertyDefinition for workflow(config-deploy).",
+ "required": true,
+ "type": "dt-config-deploy-properties"
+ }
+ }
+ },
+ "health-check": {
+ "steps": {
+ "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"
+ ],
+ "on_failure": [
+ "handle_error"
+ ]
+ },
+ "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"
+ }
+ ],
+ "on_success": [
+ "health-check-process"
+ ],
+ "on_failure": [
+ "handle_error"
+ ]
+ },
+ "health-check-process": {
+ "description": "Start health check script",
+ "target": "health-check-script",
+ "activities": [
+ {
+ "call_operation": "ComponentScriptExecutor.process"
+ }
+ ],
+ "on_success": [
+ "collect-results"
+ ],
+ "on_failure": [
+ "handle_error"
+ ]
+ },
+ "handle_error": {
+ "description": "Simple error verification script",
+ "target": "simple-error-check",
+ "activities": [
+ {
+ "call_operation": "ComponentScriptExecutor.process"
+ }
+ ],
+ "on_success": [
+ "collect-results"
+ ]
+ },
+ "collect-results": {
+ "description": "Final collection of results",
+ "target": "collect-results"
+ }
+ },
+ "inputs": {
+ "resolution-key": {
+ "required": true,
+ "type": "string"
+ },
+ "config-deploy-properties": {
+ "description": "Dynamic PropertyDefinition for workflow(config-deploy).",
+ "required": true,
+ "type": "dt-config-deploy-properties"
+ }
}
- }
}
- }
},
- "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"
- }
- }
- },
- "profile-upload" : {
- "type" : "component-script-executor",
- "interfaces" : {
- "ComponentScriptExecutor" : {
- "operations" : {
- "process" : {
- "inputs" : {
- "script-type" : "kotlin",
- "script-class-reference" : "org.onap.ccsdk.cds.blueprintsprocessor.services.execution.scripts.K8sProfileUpload",
- "instance-dependencies" : [ ],
- "dynamic-properties" : "*profile-upload-properties"
+ "node_templates": {
+ "resource-assignment": {
+ "type": "component-resource-resolution",
+ "interfaces": {
+ "ResourceResolutionComponent": {
+ "operations": {
+ "process": {
+ "inputs": {
+ "artifact-prefix-names": {
+ "get_input": "template-prefix"
+ }
+ }
+ }
+ }
+ }
+ },
+ "artifacts": {
+ "helm_base_template-template": {
+ "type": "artifact-template-velocity",
+ "file": "Templates/base_template-template.vtl"
+ },
+ "helm_base_template-mapping": {
+ "type": "artifact-mapping-resource",
+ "file": "Templates/base_template-mapping.json"
+ },
+ "helm_vpkg-template": {
+ "type": "artifact-template-velocity",
+ "file": "Templates/vpkg-template.vtl"
+ },
+ "helm_vpkg-mapping": {
+ "type": "artifact-mapping-resource",
+ "file": "Templates/vpkg-mapping.json"
+ },
+ "helm_vfw-template": {
+ "type": "artifact-template-velocity",
+ "file": "Templates/vfw-template.vtl"
+ },
+ "helm_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"
+ },
+ "helm_vsn-template": {
+ "type": "artifact-template-velocity",
+ "file": "Templates/vsn-template.vtl"
+ },
+ "helm_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" ]
+ },
+ "k8s-profile-upload": {
+ "type": "component-k8s-profile-upload",
+ "interfaces": {
+ "K8sProfileUploadComponent": {
+ "operations": {
+ "process": {
+ "inputs": {
+ "artifact-prefix-names": {
+ "get_input": "template-prefix"
+ },
+ "resource-assignment-map": {
+ "get_attribute": [
+ "resource-assignment",
+ "assignment-map"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "artifacts": {
+ "vfw-cnf-cds-base-profile": {
+ "type": "artifact-k8sprofile-content",
+ "file": "Templates/k8s-profiles/vfw-cnf-cds-base-profile.tar.gz"
+ },
+ "vfw-cnf-cds-vpkg-profile": {
+ "type": "artifact-k8sprofile-content",
+ "file": "Templates/k8s-profiles/vfw-cnf-cds-vpkg-profile"
+ },
+ "vfw-cnf-cds-vpkg-profile-mapping": {
+ "type": "artifact-mapping-resource",
+ "file": "Templates/k8s-profiles/vfw-cnf-cds-vpkg-profile/ssh-service-mapping.json"
+ }
+ }
+ },
+ "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-k8sconfig-content",
+ "file": "Templates/k8s-configs/ssh-service.tar.gz"
+ },
+ "ssh-service-config-customizable": {
+ "type": "artifact-k8sconfig-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"
+ ],
+ "k8s-config-operation-type": "create",
+ "resource-assignment-map": {
+ "get_attribute": [
+ "config-setup-process",
+ "",
+ "assignment-map",
+ "config-deploy",
+ "config-deploy-setup"
+ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "artifacts": {
+ "ssh-service-default": {
+ "type": "artifact-k8sconfig-content",
+ "file": "Templates/k8s-configs/ssh-service-config/values.yaml"
+ },
+ "ssh-service-config": {
+ "type": "artifact-k8sconfig-content",
+ "file": "Templates/k8s-configs/ssh-service-values/values.yaml.vtl"
+ },
+ "ssh-service-config-mapping": {
+ "type": "artifact-mapping-resource",
+ "file": "Templates/k8s-configs/ssh-service-values/ssh-service-mapping.json"
+ }
+ }
+ },
+ "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"
+ }
+ }
+ }
+ }
+ }
+ },
+ "simple-error-check": {
+ "type": "component-script-executor",
+ "interfaces": {
+ "ComponentScriptExecutor": {
+ "operations": {
+ "process": {
+ "inputs": {
+ "script-type": "kotlin",
+ "script-class-reference": "org.onap.ccsdk.cds.blueprintsprocessor.services.execution.scripts.SimpleErrorCheck",
+ "instance-dependencies": [
+ "blueprintPropertiesService"
+ ],
+ "dynamic-properties": "*simple-status-properties"
+ }
+ }
+ }
+ }
+ }
+ },
+ "health-check-script": {
+ "type": "component-script-executor",
+ "interfaces": {
+ "ComponentScriptExecutor": {
+ "operations": {
+ "process": {
+ "inputs": {
+ "script-type": "kotlin",
+ "script-class-reference": "org.onap.ccsdk.cds.blueprintsprocessor.services.execution.scripts.K8sHealthCheck",
+ "instance-dependencies": [
+ "blueprintPropertiesService"
+ ],
+ "dynamic-properties": "*simple-status-properties"
+ }
+ }
+ }
+ }
+ }
+ },
+ "config-setup-process": {
+ "type": "component-resource-resolution",
+ "interfaces": {
+ "ResourceResolutionComponent": {
+ "operations": {
+ "process": {
+ "inputs": {
+ "resolution-key": {
+ "get_input": "resolution-key"
+ },
+ "store-result": false,
+ "artifact-prefix-names": [
+ "config-deploy"
+ ]
+ },
+ "outputs": {
+ "resource-assignment-params": {
+ "get_attribute": [
+ "SELF",
+ "assignment-params"
+ ]
+ },
+ "status": "success"
+ }
+ }
+ }
+ }
+ },
+ "artifacts": {
+ "config-deploy-template": {
+ "type": "artifact-template-velocity",
+ "file": "Templates/config-setup-template.vtl"
+ },
+ "config-deploy-mapping": {
+ "type": "artifact-mapping-resource",
+ "file": "Templates/config-setup-mapping.json"
+ }
+ }
+ },
+ "config-deploy-process": {
+ "type": "component-script-executor",
+ "interfaces": {
+ "ComponentScriptExecutor": {
+ "operations": {
+ "process": {
+ "inputs": {
+ "script-type": "kotlin",
+ "script-class-reference": "org.onap.ccsdk.cds.blueprintsprocessor.services.execution.scripts.ConfigDeploy",
+ "dynamic-properties": "*config-deploy-properties"
+ }
+ }
+ }
+ }
+ }
+ },
+ "collect-results": {
+ "type": "component-script-executor",
+ "interfaces": {
+ "ComponentScriptExecutor": {
+ "operations": {
+ "process": {
+ "implementation": {
+ "primary": "component-script",
+ "timeout": 180,
+ "operation_host": "SELF"
+ },
+ "inputs": {
+ "script-type": "kotlin",
+ "script-class-reference": "org.onap.ccsdk.cds.blueprintsprocessor.services.execution.scripts.CollectorScript"
+ },
+ "outputs": {}
+ }
+ }
+ }
}
- }
}
- }
- },
- "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
+}