Enabling Additional Photon-RT Kernel Versions in Telco Cloud Automation
search cancel

Enabling Additional Photon-RT Kernel Versions in Telco Cloud Automation

book

Article ID: 325362

calendar_today

Updated On:

Products

VMware VMware Telco Cloud Automation

Issue/Introduction

In Telco Cloud Automation (TCA), there may be a partner requirement to support out of band updates to Photon linux-rt kernel versions. These kernel updates address requirements such as enabling kernel config options or additional kernel modules to support partner workloads and bug-fixes to solve issues reported by the partner. These kernel versions are released by the Photon OS team and hence TCA needs to allow them while customizing a node for Network function onboarding.

Note: For details on updating Photon-RT Kernel versions for TCA in an Air-gapped Environment, see Updating Photon-RT Kernel Versions for Telco Cloud Automation System in an Air-gapped Environment (90483)

Environment

VMware Telco Cloud Automation 2.0
VMware Telco Cloud Automation 1.8
VMware Telco Cloud Automation 1.x
VMware Telco Cloud Automation 1.9
VMware Telco Cloud Automation 1.9.5
VMware Telco Cloud Automation 2.1.1
VMware Telco Cloud Automation 2.3

Resolution

For Telco Cloud Automation (TCA) 2.3:

Please refer to the Add Kernel Versions section of the TCA 2.3 product documentation.


For Telco Cloud Automation (TCA) 2.0, 2.1 and 2.2:

Please use an API platform tool (e.g. postman) to run the commands needed to make updates in TCA 2.X.

Please use this as an example and make changes using the appropriate kernel version and DPDK version as needed.

NOTE: The steps below are written to allow RT kernel 4.19.198-9 and DPDK 20.11.
NOTE:  API request using postman requires selecting body type as json.

1. Log into the TCA Manager via the API and obtain the 'x-hm-authorization' token

POST https://TCA-IP-FQDN/hybridity/api/sessions
Header: "x-hm-authorization: <x-hm-token>"
Request Body:
{
    "username": "<tca_login_username@ssoDomain",
    "password": "<password>"
}

Save the cookie or the x-hm-authorization response header for subsequent API calls.

2. Issue a POST call on /hybridity/api/infra/k8s/repodetails with a json payload as noted below:

POST  https://TCA-IP-FQDN/hybridity/api/infra/k8s/repodetails
Header: "x-hm-authorization: <x-hm-token>"
Request Body:
 {
                        "name": "dpdk",
                        "kernel": "linux-rt-4.19.198-9.ph3",  <----------- kernel version(change this based on version needed)
                        "artifactName": "dpdk",
                        "artifactVersion": "20.11",      #<----------- dpdk version(change this based on version needed)
                        "repoFqdn":"vmwaresaas.jfrog.io",   #<------------repoFQDN
                        "repoPath": "registry/dpdk:linux-rt-4.19.198-9.ph3" #<--------------repoPath(change this based on version needed)   
       }

Note: Run this for all DPDK versions of this kernel.

Please refer to the following links for the list of supported DPDK and Kernel versions for the required release:
2.0
2.1
2.1.1

3. Perform a GET call on /hybridity/api/infra/k8s/repodetails to check if the above change has been applied.

4. 
Perform a GET call on /hybridity/api/catalog/infra/params/supportedKernelVersions, copy the contents of the GET response body and paste on the next POST call request body and add the new kernel version.

5. Issue a PUT call on /hybridity/api/catalog/infra/params/supportedKernelVersions with a json payload as noted below:

PUT  https://TCA-IP-FQDN/hybridity/api/catalog/infra/params/supportedKernelVersions
Header: "x-hm-authorization: <x-hm-token>"
Request Body:
{
   "items":[
      {
         "name":"linux-rt",
         "version":[
            "4.19.132-1.ph3",
            "4.19.132-2.ph3",
            "4.19.132-3.ph3",
            "4.19.132-4.ph3",
            "4.19.132-5.ph3",
            "4.19.138-1.ph3",
            "4.19.138-2.ph3",
            "4.19.145-1.ph3",
            "4.19.145-2.ph3",
            "4.19.145-4.ph3",
            "4.19.148-1.ph3",
            "4.19.148-3.ph3",
            "4.19.148-4.ph3",
            "4.19.148-5.ph3",
            "4.19.150-1.ph3",
            "4.19.154-1.ph3",
            "4.19.154-8.ph3",
            "4.19.160-1.ph3",
            "4.19.160-3.ph3",
            "4.19.160-4.ph3",
            "4.19.164-1.ph3",
            "4.19.174-1.ph3",
            "4.19.174-2.ph3",
            "4.19.174-3.ph3",
            "4.19.174-4.ph3",
            "4.19.177-1.ph3",
            "4.19.177-2.ph3",
            "4.19.177-3.ph3",
            "4.19.177-4.ph3",
            "4.19.182-1.ph3",
            "4.19.182-2.ph3",
            "4.19.186-1.ph3",
            "4.19.186-2.ph3",
            "4.19.186-3.ph3",
            "4.19.189-2.ph3",
            "4.19.189-3.ph3",
            "4.19.189-4.ph3",
            "4.19.190-1.ph3",
            "4.19.190-2.ph3",
            "4.19.190-3.ph3",
            "4.19.190-4.ph3",
            "4.19.190-5.ph3",
            "4.19.191-2.ph3",
            "4.19.191-3.ph3",
            "4.19.191-4.ph3",
            "4.19.191-5.ph3",
            "4.19.198-1.ph3",
            "4.19.198-2.ph3",
            "4.19.198-3.ph3",
            "4.19.198-4.ph3",
            "4.19.198-5.ph3",
            "4.19.198-9.ph3",         #<----------- new kernel version for linux-rt
            "4.19.205-1.ph3"
         ]
      },
      {
         "name":"linux",
         "version":[
            "4.19.112-1.ph3",
            "4.19.115-1.ph3",
            "4.19.115-10.ph3",
            "4.19.115-2.ph3",
            "4.19.115-3.ph3",
            "4.19.115-5.ph3",
            "4.19.115-6.ph3",
            "4.19.115-7.ph3",
            "4.19.115-9.ph3",
            "4.19.124-1.ph3",
            "4.19.124-2.ph3",
            "4.19.126-1.ph3",
            "4.19.126-2.ph3",
            "4.19.129-1.ph3",
            "4.19.129-2.ph3",
            "4.19.129-3.ph3",
            "4.19.132-1.ph3",
            "4.19.132-2.ph3",
            "4.19.132-3.ph3",
            "4.19.132-5.ph3",
            "4.19.132-6.ph3",
            "4.19.138-1.ph3",
            "4.19.138-2.ph3",
            "4.19.138-4.ph3",
            "4.19.145-1.ph3",
            "4.19.145-2.ph3",
            "4.19.145-4.ph3",
            "4.19.148-1.ph3",
            "4.19.148-2.ph3",
            "4.19.148-3.ph3",
            "4.19.148-4.ph3",
            "4.19.148-5.ph3",
            "4.19.150-1.ph3",
            "4.19.154-1.ph3",
            "4.19.154-8.ph3",
            "4.19.154-9.ph3",
            "4.19.154-10.ph3",
            "4.19.154-11.ph3",
            "4.19.160-2.ph3",
            "4.19.160-4.ph3",
            "4.19.160-5.ph3",
            "4.19.160-6.ph3",
            "4.19.164-1.ph3",
            "4.19.164-2.ph3",
            "4.19.174-2.ph3",
            "4.19.174-4.ph3",
            "4.19.174-5.ph3",
            "4.19.177-1.ph3",
            "4.19.177-2.ph3",
            "4.19.177-3.ph3",
            "4.19.177-4.ph3",
            "4.19.182-1.ph3",
            "4.19.182-2.ph3",
            "4.19.186-1.ph3",
            "4.19.186-2.ph3",
            "4.19.186-3.ph3",
            "4.19.186-4.ph3",
            "4.19.189-2.ph3",
            "4.19.189-3.ph3",
            "4.19.189-4.ph3",
            "4.19.189-5.ph3",
            "4.19.190-1.ph3",
            "4.19.190-2.ph3",
            "4.19.190-3.ph3",
            "4.19.191-1.ph3",
            "4.19.191-2.ph3",
            "4.19.191-3.ph3",
            "4.19.198-1.ph3",
            "4.19.198-2.ph3",
            "4.19.198-3.ph3",
            "4.19.198-4.ph3"
         ]
      }
   ]
}


6. Perform a GET call on /hybridity/api/catalog/infra/params/supportedKernelVersions to verify that the updated kernel version is available.

7. Log into the TCA UI (https://<tca_mgr_fqdn>) using the appropriate credentials.

8. Navigate to 'Network functions' → Select the csar → Select the Edit button.

9. Go to 'Infrastructure Requirements' , change the kernel Type → version to 4.19.198-9.ph3 and kernel modules DPDK version to 20.11

10. Click on 'Save' and 'Update Package' from the same UI. Note that 'Update Package' will be deployed if an instance is already deployed using this CSAR. In that case, you can 'SAVE AS NEW' and give an appropriate name for this CSAR.

11. Instantiate the network function based on the modified CSAR from the TCA UI. Provide correct inputs including repoURL, values.yaml, nad files, IP addresses etc. as necessary.

12. Monitor the customize node pool task from CaaS cluster→ Tasks UI view and verify that the corresponding node was upgraded to RT kernel 4.19.198-9.

For additional details on how to upgrade to Photon Kernel versions 198.18 or above, when running Telco Cloud Automation refer to
How to upgrade Photon Kernel when running Telco Cloud Automation (TCA).

For Telco Cloud Automation 1.9.5 and earlier
Follow these steps to make updates for out of band kernel and DPDK versions in TCA 1.9 using API's:
Steps are written to allow RT kernel 4.19.177-7 and DPDK 20.11. Please use this as an example and make changes with the appropriate kernel version and DPDK version as needed.


1. Log into the TCA Manager via API and obtain 'x-hm-authorization' token

For an airgap environment, if the DPDK image is missing from the airgap server, the airgap server needs to sync the image before attempting the steps below.

POST https://TCA-IP-FQDN/hybridity/api/sessions
Request Body:
{
    "username": "<tca_login_username@ssoDomain",
    "password": "<password>"2
}

Save the cookie or the x-hm-authorization response header for subsequent API calls.

2. Issue a POST call on /hybridity/api/infra/k8s/repodetails with a json payload as noted below:

POST  https://TCA-IP-FQDN/hybridity/api/infra/k8s/repodetails
Header: "x-hm-authorization: <x-hm-token>"
Request Body:
 {
                        "name": "dpdk",
                        "kernel": "linux-rt-4.19.177-7.ph3",  <----------- kernel version(change this based on version needed)
                        "artifactName": "dpdk",
                        "artifactVersion": "20.11",      #<----------- dpdk version(change this based on version needed)
                        "repo":"vmwaresaas.jfrog.io/registry/dpdk:linux-rt-4.19.177-7.ph3"   #<------------repoPath(change this based on version needed)    
       }

Note: Run this for all dpdk versions of this kernel.

Please refer to the following link for the list of supported DPDK and Kernel versions for TCA 1.9.X:
1.9
1.9.5
1.8.5

3. Perform a GET call on /hybridity/api/infra/k8s/repodetails to check if the above change has been applied.

4. Perform a GET call on /hybridity/api/catalog/infra/params/supportedKernelVersions, copy the contents of the GET response body and paste on the next POST call request body and add the new kernel version.

5. Issue a PUT call on /hybridity/api/catalog/infra/params/supportedKernelVersions with a json payload as noted below:

PUT  https://TCA-IP-FQDN/hybridity/api/catalog/infra/params/supportedKernelVersions
Header: "x-hm-authorization: <x-hm-token>"
Request Body:
{
   "items":[
      {
         "name":"linux-rt",
         "version":[
            "4.19.132-1.ph3",
            "4.19.132-2.ph3",
            "4.19.132-3.ph3",
            "4.19.132-4.ph3",
            "4.19.132-5.ph3",
            "4.19.138-1.ph3",
            "4.19.138-2.ph3",
            "4.19.145-1.ph3",
            "4.19.145-2.ph3",
            "4.19.145-4.ph3",
            "4.19.148-1.ph3",
            "4.19.148-3.ph3",
            "4.19.148-4.ph3",
            "4.19.148-5.ph3",
            "4.19.150-1.ph3",
            "4.19.154-1.ph3",
            "4.19.154-8.ph3",
            "4.19.160-1.ph3",
            "4.19.160-3.ph3",
            "4.19.160-4.ph3",
            "4.19.164-1.ph3",
            "4.19.174-1.ph3",
            "4.19.174-2.ph3",
            "4.19.174-3.ph3",
            "4.19.174-4.ph3",
            "4.19.177-1.ph3",
            "4.19.177-2.ph3",
            "4.19.177-3.ph3",
            "4.19.177-4.ph3",
            "4.19.177-7.ph3",      # <----------- new kernel version for linux-rt
            "4.19.182-1.ph3",
            "4.19.182-2.ph3",
            "4.19.186-1.ph3",
            "4.19.186-2.ph3",
            "4.19.186-3.ph3",
            "4.19.189-2.ph3",
            "4.19.189-3.ph3",
            "4.19.189-4.ph3",
            "4.19.190-1.ph3",
            "4.19.190-2.ph3",
            "4.19.190-3.ph3",
            "4.19.190-4.ph3",
            "4.19.190-5.ph3",
            "4.19.191-2.ph3",
            "4.19.191-3.ph3",
            "4.19.191-4.ph3",
            "4.19.191-5.ph3",
            "4.19.198-1.ph3",
            "4.19.198-2.ph3",
            "4.19.198-3.ph3",
            "4.19.198-4.ph3",
            "4.19.198-5.ph3",  
            "4.19.205-1.ph3"
         ]
      },
      {
         "name":"linux",
         "version":[
            "4.19.112-1.ph3",
            "4.19.115-1.ph3",
            "4.19.115-10.ph3",
            "4.19.115-2.ph3",
            "4.19.115-3.ph3",
            "4.19.115-5.ph3",
            "4.19.115-6.ph3",
            "4.19.115-7.ph3",
            "4.19.115-9.ph3",
            "4.19.124-1.ph3",
            "4.19.124-2.ph3",
            "4.19.126-1.ph3",
            "4.19.126-2.ph3",
            "4.19.129-1.ph3",
            "4.19.129-2.ph3",
            "4.19.129-3.ph3",
            "4.19.132-1.ph3",
            "4.19.132-2.ph3",
            "4.19.132-3.ph3",
            "4.19.132-5.ph3",
            "4.19.132-6.ph3",
            "4.19.138-1.ph3",
            "4.19.138-2.ph3",
            "4.19.138-4.ph3",
            "4.19.145-1.ph3",
            "4.19.145-2.ph3",
            "4.19.145-4.ph3",
            "4.19.148-1.ph3",
            "4.19.148-2.ph3",
            "4.19.148-3.ph3",
            "4.19.148-4.ph3",
            "4.19.148-5.ph3",
            "4.19.150-1.ph3",
            "4.19.154-1.ph3",
            "4.19.154-8.ph3",
            "4.19.154-9.ph3",
            "4.19.154-10.ph3",
            "4.19.154-11.ph3",
            "4.19.160-2.ph3",
            "4.19.160-4.ph3",
            "4.19.160-5.ph3",
            "4.19.160-6.ph3",
            "4.19.164-1.ph3",
            "4.19.164-2.ph3",
            "4.19.174-2.ph3",
            "4.19.174-4.ph3",
            "4.19.174-5.ph3",
            "4.19.177-1.ph3",
            "4.19.177-2.ph3",
            "4.19.177-3.ph3",
            "4.19.177-4.ph3",
            "4.19.182-1.ph3",
            "4.19.182-2.ph3",
            "4.19.186-1.ph3",
            "4.19.186-2.ph3",
            "4.19.186-3.ph3",
            "4.19.186-4.ph3",
            "4.19.189-2.ph3",
            "4.19.189-3.ph3",
            "4.19.189-4.ph3",
            "4.19.189-5.ph3",
            "4.19.190-1.ph3",
            "4.19.190-2.ph3",
            "4.19.190-3.ph3",
            "4.19.191-1.ph3",
            "4.19.191-2.ph3",
            "4.19.191-3.ph3",
            "4.19.198-1.ph3",
            "4.19.198-2.ph3",
            "4.19.198-3.ph3",
            "4.19.198-4.ph3"
         ]
      }
   ]
}

6. Perform a GET call on /hybridity/api/catalog/infra/params/supportedKernelVersions to verify that the updated kernel version is available.

7. Log into the TCA UI(https://<tca_mgr_fqdn>) using appropriate credentials.

8. Navigate to 'Network functions' → Select the CSAR → Click on the CSAR → Click on the pencil icon on VNFD.yaml

9. Search for 4.19 and find the key in vnfd.yaml where the kernel version needs to be updated.

10. Modify version to 4.19.177-7.ph3 and click on 'SAVE AS DRAFT'

11. Search for DPDK and find the key in vnfd.yaml where the DPDK version needs to be updated.

12. Modify version to 20.11 and click on 'SAVE AS DRAFT' and 'UPDATE CATALOG'. Note that version is a double quoted string here.

13. Log into the cluster worker nodes(capv/<cluster_password> corresponding to the nodepool which is going to be customized with 4.19.177-7.ph3 kernel version.

14. Add telco-photon-updates.repo using the following commands:

cd /etc/yum.repos.d/
sudo vi photon-telco-updates.repo
[photon-telco-updates]
name=VMware Photon Telco Linux $releasever ($basearch) Updates
baseurl=https://packages.vmware.com/photon/photon_telco/$releasever/photon_updates_$releasever_$basearch
gpgkey=file:///etc/pki/rpm-gpg/VMWARE-RPM-GPG-KEY
gpgcheck=1
enabled=1
skip_if_unavailable=True
 
sudo vi photon-telco-debuginfo.repo
[photon-telco-debuginfo]
name=VMware Photon Telco Linux debuginfo $releasever ($basearch)
baseurl=https://packages.vmware.com/photon/photon_telco/$releasever/photon_debuginfo_$releasever_$basearch
gpgkey=file:///etc/pki/rpm-gpg/VMWARE-RPM-GPG-KEY
gpgcheck=1
enabled=1
skip_if_unavailable=True

14. Save both the above mentioned files in /etc/yum.repos.d/ folder path.
 
15. Search for 4.19.177-7 kernel version and confirm that it is available. This is to be done from the same node where the repo was added earlier.
apv@astar1921-master-control-plane-wll2x [ /etc/yum.repos.d ]$ sudo tdnf list linux-rt | grep 4.19.177-7
linux-rt.x86_64                             4.19.177-7.ph3      photon-telco-updates
capv@astar1921-master-control-plane-wll2x [ /etc/yum.repos.d ]$

16. Repeat steps 11,12 and 13 on every worker node that will be upgraded to 4.19.177-7 kernel version that is available only through telco-updates repo.

17. Instantiate the network function based on the modified CSAR from the TCA UI. Provide correct inputs including repoURL, values.yaml, nad files, IP addresses etc. as necessary

18. Monitor the customize node pool task from CaaS cluster→ Tasks UI view and verify that the corresponding node was upgraded to RT kernel 4.19.177-7.