The purpose of this workaround is to alleviate the issue of the TCA UI not showing the latest global values even though they have been applied.
Symptoms:
After a successful Helm upgrade the TCA UI continues to show the initial global values even if the global values have been updated in the backend.
TCA 1.x, 2.0, 2.0.1, 2.1
TCA persists the configuration presented via the values.yaml configuration file only during the instantiation workflow and applied into Kubernetes during network function bring up.
The configuration given at the time of upgrade is also passed and applied to Kubernetes system; however, it is NOT persisted in the TCA database.
When a user performs a "terminate and instantiate" workflow, the TCA UI will retrieve the persisted values.yaml configuration file which will map to the values provided during instantiation and not during the upgrade. This may present incorrect values in the TCA UI requiring the end user to correct the auto-filled values before triggering "terminate and instantiate" workflow.
Resolved in TCA 2.2.
Workaround:
To ensure the correct global values are used the end user should provide the latest configuration file via the TCA API or the TCA UI wizard. This will not update the UI with the latest values; however, it will ensure that the correct values are committed in the backend. For the UI to reflect the correct values a code fix will be implemented in TCA 2.2.
Procedure
The following API can be used with a new base64 encoded values.yaml provided in the additionalParams.vduParams.metadata section of the request payload.
Additional details can be found in the VNF Lifecycle Management API:
Sample instantiation request for Nginx with base64 encoded values.yaml :
{
"flavourId": "default",
"vimConnectionInfo": [
{
"id": "vmware_FB7E34C2B5B0413EBF835AD64BACCCEF",
"vimType": ""
}
],
"additionalParams": {
"vduParams": [
{
"namespace": "nginx-ecr-tkg-values",
"vduName": "nginx",
"repoUrl": "http://##.###.###.###",
"username": "admin",
"password": "somepassword",
"metadata": [
{
"values.yaml": "aW1hZ2U6CiAgcmVnaXN0cnk6IDEyOTQwODM4NjQ3MC5ka3IuZWNyLnVzLWVhc3QtMi5hbWF6b25hd3MuY29tCiAgcmVwb3NpdG9yeTogZGluZXNoLWFydGlmYWN0CiAgdGFnOiAxLjIxLjEtZGViaWFuLTEwLXIyNQogIHB1bGxQb2xpY3k6IEFsd2F5cw=="
}
]
}
],
"disableGrant": false,
"ignoreGrantFailure": false,
"disableAutoRollback": false
}
}
This can also be done via the TCA UI.
Note: Updating the global values file through the TCA UI will not update the values shown in the UI, it will simply ensure that the correct values are applied in the backend.
If the end user does not provide a new set of values as part of the upgrade, the network function might get configured with incorrect values.