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 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