"tosca_definitions_version": "controller_blueprint_1_0_0",
"metadata": {
"template_author": "Samuli Silvius <s.silvius@partner.samsung.com>",
- "author-email": "abdelmuhaimen.seaudi@orange.com",
+ "author-email": "lukasz.rajewski@orange.com",
"user-groups": "ADMIN, OPERATION",
"template_name": "vFW_CNF_CDS",
- "template_version": "1.0.44",
- "template_tags": "Samuli Silvius, vFW_CNF_CDS",
+ "template_version": "8.0.0",
+ "template_tags": "Samuli Silvius, Lukasz Rajewski, vFW_CNF_CDS",
"template_type": "DEFAULT"
},
"imports": [
"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"
- ]
- },
- "profile-modification-decision-data": {
- "get_input": "vpg-management-port"
- },
- "profile-artifacts": {
- "get_attribute": [
- "profile-modification",
- "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"
+ "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": {
"call_operation": "ResourceResolutionComponent.process"
}
],
- "on_success": [
- "profile-modification"
- ]
- },
- "profile-modification": {
- "description": "Profile Modification Resources",
- "target": "profile-modification",
- "activities": [
- {
- "call_operation": "ResourceResolutionComponent.process"
- }
- ],
"on_success": [
"profile-upload"
]
},
"profile-upload": {
- "description": "Upload K8s Profile",
- "target": "profile-upload",
+ "description": "Generate and upload K8s Profile",
+ "target": "k8s-profile-upload",
"activities": [
{
"call_operation": "ComponentScriptExecutor.process"
}
}
},
+ "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-deploy": {
- "description": "Config Deploy Workflow",
- "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"
+ ],
+ "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"
}
- },
- "outputs": {
- "dry-run": {
- "type": "json",
- "value": {
- "get_attribute": [
- "config-deploy-process",
- "assignment-params"
- ]
- }
- }
}
}
},
}
},
"artifacts": {
- "base_template-template": {
+ "helm_base_template-template": {
"type": "artifact-template-velocity",
"file": "Templates/base_template-template.vtl"
},
- "base_template-mapping": {
+ "helm_base_template-mapping": {
"type": "artifact-mapping-resource",
"file": "Templates/base_template-mapping.json"
},
- "vpkg-template": {
+ "helm_vpkg-template": {
"type": "artifact-template-velocity",
"file": "Templates/vpkg-template.vtl"
},
- "vpkg-mapping": {
+ "helm_vpkg-mapping": {
"type": "artifact-mapping-resource",
"file": "Templates/vpkg-mapping.json"
},
- "vfw-template": {
+ "helm_vfw-template": {
"type": "artifact-template-velocity",
"file": "Templates/vfw-template.vtl"
},
- "vfw-mapping": {
+ "helm_vfw-mapping": {
"type": "artifact-mapping-resource",
"file": "Templates/vfw-mapping.json"
},
"type": "artifact-mapping-resource",
"file": "Templates/vnf-mapping.json"
},
- "vsn-template": {
+ "helm_vsn-template": {
"type": "artifact-template-velocity",
"file": "Templates/vsn-template.vtl"
},
- "vsn-mapping": {
+ "helm_vsn-mapping": {
"type": "artifact-mapping-resource",
"file": "Templates/vsn-mapping.json"
}
}
},
- "profile-modification": {
- "type": "component-resource-resolution",
+ "k8s-profile-upload": {
+ "type": "component-k8s-profile-upload",
"interfaces": {
- "ResourceResolutionComponent": {
+ "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": [
- "ssh-service"
- ]
+ "helm_vpkg"
+ ],
+ "resource-assignment-map": {
+ "get_attribute": [
+ "config-setup-process",
+ "",
+ "assignment-map",
+ "config-deploy",
+ "config-deploy-setup"
+ ]
+ }
}
}
}
}
},
"artifacts": {
- "ssh-service-template": {
- "type": "artifact-template-velocity",
- "file": "Templates/k8s-profiles/ssh-service-template.vtl"
+ "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-mapping": {
+ "ssh-service-config-customizable-mapping": {
"type": "artifact-mapping-resource",
- "file": "Templates/k8s-profiles/ssh-service-mapping.json"
+ "file": "Templates/k8s-configs/ssh-service-config/ssh-service-mapping.json"
}
}
},
- "profile-upload": {
+ "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": {
"process": {
"inputs": {
"script-type": "kotlin",
- "script-class-reference": "org.onap.ccsdk.cds.blueprintsprocessor.services.execution.scripts.K8sProfileUpload",
- "dynamic-properties": "*profile-upload-properties"
+ "script-class-reference": "org.onap.ccsdk.cds.blueprintsprocessor.services.execution.scripts.SimpleStatusCheck",
+ "instance-dependencies": [
+ "blueprintPropertiesService"
+ ],
+ "dynamic-properties": "*simple-status-properties"
}
}
}
}
}
},
- "config-deploy-process": {
+ "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"
+ }
+ }
+ }
+ }
+ }
+ },
+ "config-setup-process": {
"type": "component-resource-resolution",
"interfaces": {
"ResourceResolutionComponent": {
"operations": {
"process": {
"inputs": {
+ "resolution-key": {
+ "get_input": "resolution-key"
+ },
+ "store-result": false,
"artifact-prefix-names": [
- "nf-params"
+ "config-deploy"
]
+ },
+ "outputs": {
+ "resource-assignment-params": {
+ "get_attribute": [
+ "SELF",
+ "assignment-params"
+ ]
+ },
+ "status": "success"
}
}
}
}
},
"artifacts": {
- "nf-params-template": {
+ "config-deploy-template": {
"type": "artifact-template-velocity",
- "file": "Templates/nf-params-template.vtl"
+ "file": "Templates/config-setup-template.vtl"
},
- "nf-params-mapping": {
+ "config-deploy-mapping": {
"type": "artifact-mapping-resource",
- "file": "Templates/nf-params-mapping.json"
+ "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": {}
+ }
+ }
}
}
}