Cloudify Blueprint validation under OOM
For DCAE services deployed via blueprint, below steps can be followed to trial out new blueprint/inputs
1) Using ONAP key, you can login into rancher vm on required tenant DCAE/integration-SB04/Integration-OOM-Daily/Integration-OOM-Staging-Daily
For e.g – for SB04 rancher ip
>>ssh -i ~/onap_dev ubuntu@10.12.5.47
Note: Use DCAE tenant if your components is not targeted for current release. The onap_dev is common key used across all VM in WINlab.
2) Using kubectl find the pod for bootstrap and exec into it
>>kubectl exec -it -n onap dev-dcaegen2-dcae-bootstrap-776cf86d49-mxzq6 /bin/bash
3) The blueprint for Holmes rules/engine component are under /blueprints (this is basically pulled from nexus raw during container build) and corresponding input file is under /inputs (this gets mapped during deployment from what is specified under oom repo). Here you can basically modify the image tag or any other blueprint changes to trial/deploy.
4) Deploy (or undeploy) commands.
If the component is already deployed (run "cfy deployments list" to check), then uninstall first
Uninstall
Syntax - cfy uninstall <deployment to be uninstalled>
>>cfy uninstall holmes_rules
Remove the deployment (this is required if uninstall does not remove the deployment automatically)
Syntax - cfy deployments delete -f <deployment name>
>>cfy deployments delete -f holmes_rules
Delete older version of blueprint (run "cfy blueprints list" to get current list; this is required if uninstall does not remove the deployment automatically)
Syntax - cfy blueprints delete <blueprint name>
>>cfy blueprints delete holmes_rules
Validate the new blueprint changes
Syntax - cfy blueprints validate <blueprint filename>
>> cfy blueprints validate k8s-holmes-rules.yaml
Upload the new blueprint
Syntax - cfy blueprints upload -b <blueprintname> <blueprint file path>
>>cfy blueprints upload -b holmes_rules /blueprints/k8s-holmes-rules.yaml
Create a new deployment with updated blueprint
Syntax - cfy deployments create -b <blueprint name> -i <input file path> <deployment name>
>>cfy deployments create -b holmes_rules -i /inputs/k8s-holmes_rules-inputs.yaml holmes_rules
Execute install workflow
Syntax - cfy executions start -d <deployment name> install
>>cfy executions start -d holmes_rules install
Note: Examples are captured around holmes_engine; replace holmes_engine and corresponding blueprint/input file name required.
5) Verify status/logs
>>root@onap-oom-rancher:~# kubectl get pods -n onap | grep holmes
dep-holmes-engine-mgmt-885d86d49-czh28 0/1 Running 61 10h
dep-holmes-rule-mgmt-5ffd74f697-bb7xp 0/1 Running 61 10h
The component version used in deployment can be checked using below command.
>> kubectl describe pod -n onap dep-holmes-engine-mgmt-885d86d49-czh28
Rolling upgrade of deployed components
DCAE platform for R3 supports rolling upgrade of individual component deployed via cloudify.
To upgrade a running pod, follow below syntax
cfy execution start -d <deployment name> <inputfile> execute_operation
<input file> - should be under following structure
operation: update_image
operation_kwargs:
image: <complete path of image:tag>
node_ids:
- <list of node_id's in blueprint to be updated>
Example: cfy executions start -d ves -p k8s-ves-image.yaml execute_operation
Where k8s-ves-image.yaml is set as below
operation: update_image
operation_kwargs:
image: nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.ves.vescollector:1.3.0
node_ids:
- "ves"
Example of rolling upgrade executions (logs for Data-file collector)
cfy executions start -d datafile-collector -p k8s-datafile-collector-image.yaml execute_operation
Executing workflow execute_operation on deployment datafile-collector [timeout=900 seconds]
2018-10-10 20:42:07.234 CFY <datafile-collector> Starting 'execute_operation' workflow execution
2018-10-10 20:42:07.971 CFY <datafile-collector> [datafile-collector_8avn6c] Starting operation update_image (Operation parameters: {u'image':u'10.12.5.2:5000/onap/org.onap.dcaegen2.collectors.datafile.datafile-app-server:1.0.2'})
2018-10-10 20:42:07.971 CFY <datafile-collector> [datafile-collector_8avn6c.update_image] Sending task 'k8splugin.update_image'
2018-10-10 20:42:07.971 CFY <datafile-collector> [datafile-collector_8avn6c.update_image] Task started 'k8splugin.update_image'
2018-10-10 20:42:08.682 LOG <datafile-collector> [datafile-collector_8avn6c.update_image] INFO: Updating app image for dcae-datafile-collector from 10.12.5.2:5000/onap/org.onap.dcaegen2.collectors.datafile.datafile-app-server:1.0.0 to 10.12.5.2:5000/onap/org.onap.dcaegen2.collectors.datafile.datafile-app-server:1.0.2
2018-10-10 20:42:09.358 LOG <datafile-collector> [datafile-collector_8avn6c.update_image] INFO: Waiting up to 300 secs for dcae-datafile-collector to be updated and become ready 2018-10-10 20:42:25.703 LOG <datafile-collector> [datafile-collector_8avn6c.update_image] INFO: Update complete: dcae-datafile-collector from 10.12.5.2:5000/onap/org.onap.dcaegen2.collectors.datafile.datafile-app-server:1.0.0 to 10.12.5.2:5000/onap/org.onap.dcaegen2.collectors.datafile.datafile-app-server:1.0.2
2018-10-10 20:42:26.250 CFY <datafile-collector> [datafile-collector_8avn6c.update_image] Task succeeded 'k8splugin.update_image' 2018-10-10 20:42:26.991 CFY <datafile-collector> [datafile-collector_8avn6c] Finished operation update_image
2018-10-10 20:42:26.991 CFY <datafile-collector> 'execute_operation' workflow execution succeeded
Finished executing workflow execute_operation on deployment datafile-collector
* Run 'cfy events list -e 14cca5f1-ea89-4a0b-9ce0-bb8b25cc8cc1' to retrieve the execution's events/logs