4 Upgrading NSSF
This chapter provides information about upgrading Oracle Communications Cloud Native Core, Network Slice Selection Function (NSSF) deployment to the latest release. It is recommended to perform NSSF upgrade in a specific order. For more information about the upgrade order, see Oracle Communications Cloud Native Core, Solution Upgrade Guide.
Note:
- In a multisite georedundant setup, perform the steps explained in this section on all the georedundant sites.
- For NSSF georedundant deployments, the difference between the NSSF release versions for all the georedundant sites cannot be more than 1 release. For example, in a three-site NSSF deployment, all the 3 sites are at the same release version as N. During site upgrade, site 1 and site 2 are upgraded to N+1 version, and site 3 is not upgraded yet. At this state, before upgrading site 3 to N+1, upgrading site 1 and/or site 2 from N+1 version to N+2 version is not supported as the difference between the NSSF release versions for all the georedundant sites cannot be more than 1 release.
- For more information about the cnDBTier georedundant deployments, see Oracle Communications Cloud Native Core, cnDBTier Installation, Upgrade, and Fault Recovery Guide.
- For more information about the CNC Console georedundant deployments, see Oracle Communications Cloud Native Core, CNC Console Installation, Upgrade, and Fault Recovery Guide.
4.1 Supported Upgrade Paths
The following table lists the supported upgrade paths for Oracle Communications Cloud Native Core, Network Slice Selection Function (NSSF):
Table 4-1 Supported Upgrade Paths
| Source Release | Target Release |
|---|---|
| 25.1.1xx, 25.1.200 | 25.1.201 |
Note:
In case of georedundant deployment, upgrade all sites first and then cnDBTier on all sites. For example: There are two sites (site 1 and site 2). Both running on release N-1 and cnDBTier is also on N-1. To upgrade NSSF and cnDTier to release N:- Upgrade NSSF at Site 1 to version N. Wait for 10 minutes.
- Upgrade NSSF at Site 2 to version N. Wait for 10 minutes.
- Upgrade cnDBTier at Site 1 to version N. Wait for 10 minutes.
- Upgrade cnDBTier at Site 2 to version N. Wait for 10 minutes.
To rollback from N to N-1:
- Rollback cnDBTier at Site 1 to version N-1. Wait for 10 minutes.
- Rollback cnDBTier at Site 2 to version N-1. Wait for 10 minutes.
- Rollback NSSF at Site 1 to version N-1. Wait for 10 minutes.
- Rollback NSSF at Site 2 to version N-1. Wait for 10 minutes.
4.2 Upgrade Strategy
NSSF supports in-service upgrade. The supported upgrade strategy is
RollingUpdate. The rolling update strategy is a gradual process
that allows you to update your Kubernetes system with only a minor effect on performance
and no downtime. The advantage of the rolling update strategy is that the update is
applied Pod-by-Pod so the greater system can remain active.
Note:
It is recommended to perform in-service upgrade in maintenance window where the recommended traffic rate is 25% of the configured traffic or below. We also expect the traffic failure to stay below 5% during the upgrade and fully recover post upgrade.The following read-only-parameters are used to define upgrade strategy:
upgradeStrategyparameter indicates the update strategy used in NSSF.maxUnavailableparameter determines the maximum number of pods that will be unavailable during upgrade.
Table 4-2 Predefined Upgrade Strategy Value
| Microservice | Upgrade Value (maxUnavailable) |
|---|---|
| <Helm-release-name>-nsselection | 25% |
| <Helm-release-name>-nsavailability | 25% |
| <Helm-release-name>-nssubscription | 25% |
| <Helm-release-name>-nsconfig | 25% |
| <Helm-release-name>-nsauditor | 25% |
| <Helm-release-name>-ocnssf-nrf-client-nfdiscovery | 25% |
| <Helm-release-name>-ocnssf-nrf-client-nfmanagement | 25% |
| <Helm-release-name>-ingressgateway | 25% |
| <Helm-release-name>-egressgateway | 25% |
| <Helm-release-name>-appinfo | 25% |
| <Helm-release-name>-perf-info | 25% |
| <Helm-release-name>-config-server | 25% |
| <Helm-release-name>-alternate-route | 25% |
Note:
- <Helm-release-name> is the Helm release name. For example, if Helm release name is "ocnssf", then nsselection microservice name will be "ocnssf-nsselection"
- When NSSF is deployed with OCCM, follow the specific upgrade sequence as mentioned in the Oracle Communications, Cloud Native Core Solution Upgrade Guide.
4.3 Preupgrade Tasks
This section provides information about preupgrade tasks to be performed before upgrading NSSF.
- To check the preupgrade health of NSSF, perform a Helm test before starting the upgrade. For more information about Helm test, see Performing Helm Test section.
- Keep current ocnssf_custom_values.yaml file as backup.
- Update the new ocnssf_custom_values.yaml file for target NSSF release.
For details on customizing this file, see Customizing NSSF.
Caution:
ThereadOnlyRootFilesystemparameter is set tofalseby default. Do not set this parameter totrue, as NSSF requires elevated privileges during installation. Enabling a read-only root filesystem would block the necessary permissions, resulting in installation failure. - Before starting the upgrade, take a manual backup of NSSF REST based configuration. This helps if preupgrade data has to be restored. For Rest API configuration details, see Oracle Communications Cloud Native Core, Network Slice Selection Function REST Specification Guide.
- Before upgrading your cnDBTier instance, update the
ocnssf_dbtier_25.1.201_custom_values_25.1.201.yamlfile as explained in the cnDBTier Requirement section.
4.4 Upgrade Tasks
This section provides information about the sequence of tasks to be performed for upgrading an existing NSSF deployment.
Helm Upgrade
Upgrading an existing deployment replaces the running containers and pods with new containers and pods. If there is no change in the pod configuration, it is not replaced. Unless there is a change in the service configuration of a microservice, the service endpoints remain unchanged.
Upgrading NSSF
Caution:
- Stop the provisioning traffic before you start the upgrade procedure.
- No configuration should be performed during upgrade.
- Do not exit from
helm upgradecommand manually. After running thehelm upgradecommand, it takes some time (depending upon the number of pods to upgrade) to upgrade all the services. In the meantime, you must not press "ctrl+c" to come out fromhelm upgradecommand. It may lead to anomalous behavior.
- Untar the latest NSSF package and if required, re-tag and push the images to registry. For more information, see Downloading the NSSF Package and Pushing the Images to Customer Docker Registry.
- Modify the
ocnssf_custom_values_25.1.201.yamlfile parameters as per site requirement. - Do not change the
nfInstanceIdconfiguration for the site. In case of multisite deployments, configurenfInstanceIduniquely for each site. - Assign appropriate values to
core_servicesin theappInfoconfiguration based onnssfMode. - Run the following command to upgrade an existing NSSF
deployment:
Note:
If you are upgrading an existing NSSF deployment with georedundancy feature enabled, ensure that you configuredbMonitorSvcHostanddbMonitorSvcPortparameters before runninghelm upgrade. For more information on the parameters, see Global Parameters.- Using local Helm chart:
$ helm upgrade <release_name> <helm_chart> -f <nssf_customized_values.yaml> --namespace <namespace>Where,
<release_name>is the NSSF release name.<helm_chart>is the Helm chart.<nssf_customized_values.yaml>is the latest custom-values.yaml file. For example,ocnssf_custom_values_25.1.201.yaml<namespace>is namespace of NSSF deployment.For example:
$ helm upgrade ocnssf ocnssf-25.1.201.0.0.tgz -f ocnssf_custom_values_25.1.201.yaml --namespace ocnssf - Using chart from Helm repo:
$ helm upgrade <release_name> <helm_repo/helm_chart> --version <chart_version> -f <nssf_customized_values.yaml> --namespace <namespace>Where,
<release_name>is the NSSF release name.<helm_repo/helm_chart>is the Helm repository for NSSF.<nssf_customized_values.yaml>is the latest custom-values.yaml file. For example,ocnssf_custom_values_25.1.201.yaml<namespace>is namespace of NSSF deployment.For example:
$ helm upgrade ocnssf ocnssf-helm-repo/ocnssf--version 25.1.201 -f ocnssf_custom_values_25.1.201.yaml --namespace ocnssf
- Using local Helm chart:
- Run the following command to check the status of the upgrade:
$ helm status <release_name> --namespace <namespace>Where,
<release_name>is the NSSF release name.<namespace>is namespace of NSSF deployment.For example:
$ helm status ocnssf--namespace ocnssf - If the upgrade fails, see Upgrade or Rollback Failure in Oracle Communications Cloud Native Core, Network Slice Selection Function Troubleshooting Guide.
4.5 Postupgrade Tasks
This section provides information about postupgrade tasks to be performed after upgrading NSSF.
- To check the postupgrade health of NSSF, perform a Helm test after the upgrade. For more information about Helm test, see Performing Helm Test section.
- After NSSF upgrade, upgrade cnDBTier using the
ocnssf_dbtier_25.1.201_custom_values_25.1.201.yamlfile provided in theocnssf-custom-configtemplates-25_1_201_0_0file. For information about the steps to downloadocnssf-custom-configtemplates-25_1_201_0_0file, see Customizing NSSF.Note:
There are no customizations required in theocnssf_dbtier_25.1.201_custom_values_25.1.201.yamlfile for installing NSSF 25.1.200. - Run the following command to upgrade your current cnDBTier installation
using the
ocnssf_dbtier_25.1.201_custom_values_25.1.201.yamlfile:helm upgrade <release-name> <chart-path> -f <cndb-custom-values.yaml> -n <namespace>For example:
helm upgrade mysql-cluster occndbtier/ -focnssf_dbtier_25.1.201_custom_values_25.1.201.yaml-n nssf-cndbFor more information about cnDBTier installation and upgrade procedure, see Oracle Communications Cloud Native Core, cnDBTier Installation, Upgrade, and Fault Recovery Guide.
Note:
- To automate the lifecycle management of the certificates through OCCM, you can migrate certificates and keys from NSSF to OCCM. For more information, see "Introducing OCCM in an Existing NF Deployment" in the Oracle Communications Cloud Native Core, Certificate Management User Guide.
- You can remove Kubernetes secrets if the current version of NSSF does not use
that secret by checking the
ocnssf_custom_values_25.1.201.yamlfile. Before deleting, please make sure that there is no plan to rollback to the NSSF version which uses these secrets. Otherwise, the rollback will fail.