To upgrade an NSP cluster from Release 25.11 or later
Purpose
|
CAUTION Network management outage |
The procedure requires a shutdown of the NSP system, which causes a network management outage.
Ensure that you perform the procedure only during a scheduled maintenance period with the assistance of technical support.
Perform this procedure to upgrade a standalone or DR NSP system after you have performed To prepare for an NSP system upgrade from Release 25.11 or later.
Note: Before performing an NSP upgrade, ensure the following:
Note: The NSP RHEL user named nsp on an NSP deployer host or NSP cluster VM requires user ID 1000. If another user has ID 1000, you must make the ID available to the nsp user before the upgrade by doing one of the following, or the upgrade fails:
Note: Each release ID has the following format:
R.r.p-rel.version
where
R.r.p is the NSP release, in the form MAJOR.minor.patch
version is a numeric value
Note: The following denote a specific NSP release ID in a file path:
-
old_base_load—base (GA) version of the NSP release from which you are upgrading
-
old_latest_load—version of the latest available NSP service pack of the NSP release from which you are upgrading
-
new_base_load—base (GA) version of the NSP release to which you are upgrading
-
new_latest_load—version of the latest available NSP service pack of the NSP release to which you are upgrading
-
old-release-ID—currently installed NSP release of the NSP deployer
-
new-release-ID—NSP release of the NSP deployer to which you are upgrading
Steps
Back up NSP deployer host configuration files | |
1 |
Log in as the root user or NSP admin user on the NSP deployer host. |
2 |
Open a console window. |
3 |
Back up the following NSP Kubernetes registry certificate files: Note: The files are in the /opt/nsp/nsp-registry/tls directory from Release 22.11 or later. |
4 |
Back up the following Kubernetes deployer configuration file: /opt/nsp/nsp-k8s-deployer-old-release-ID/config/k8s-deployer.yml |
5 |
Back up the following NSP deployer configuration file: /opt/nsp/NSP-CN-DEP-old-release-ID/config/nsp-deployer.yml |
6 |
Back up the Kubernetes secrets.
|
7 |
Copy the files backed up in Step 3, Step 4, Step 5, and Step 6, and to a separate station outside the NSP cluster for safekeeping. |
Disable SELinux enforcing mode | |
8 |
If SELinux enforcing mode is enabled on the NSP deployer host and NSP cluster members, you must switch to permissive mode on each; otherwise, you can skip this step. Perform “How do I switch between SELinux modes on NSP system components?” in the NSP System Administrator Guide on the NSP deployer host and on each NSP cluster member. Note: If SELinux enforcing mode is enabled on any NSP component during the upgrade, the upgrade fails. |
Apply OS update to NSP deployer host | |
9 |
If the NSP deployer host is deployed in a VM created using an NSP RHEL OS disk image, perform To apply a RHEL update to an NSP image-based OS. |
10 |
If your Kubernetes version is supported, as determined in To prepare for an NSP system upgrade from Release 25.11 or later, you do not need to upgrade Kubernetes; go to Step 47. |
Prepare for Kubernetes upgrade | |
11 |
Log in as the root or NSP admin user on the NSP deployer host. |
12 |
If you performed Step 4, substep c in Steps, perform Step 14 to Step 17. |
13 |
If you did not perform Step 4, substep c in Steps, perform Step 18 to Step 22. |
14 |
Copy the downloaded NSP_K8S_DEPLOYER_R_r.tar.gz bundle file to the following directory: /opt/nsp |
15 |
Enter the following: # cd /opt/nsp ↵ |
16 |
Enter the following: # tar xvf NSP_K8S_DEPLOYER_R_r.tar.gz ↵ where R_r is the NSP release ID, in the form Major_minor The bundle file is expanded, and the following directories are created: |
17 |
Remove the bundle file to save disk space; enter the following: # rm -f NSP_K8S_DEPLOYER_R_r.tar.gz ↵ The file is deleted. Then go to Step 23. |
18 |
Copy the downloaded NSP_R_r-SPx.tar.gz bundle file to the following directory: /opt/nsp R_r is the NSP release ID, in the form Major_minor x is the latest service pack release |
19 |
Enter the following: # cd /opt/nsp ↵ |
20 |
Enter the following: # tar xvf NSP_R_r-SPx.tar.gz ↵ where R_r-SPx is the NSP service pack ID, in the form Major_minor-SPx The bundle file is expanded, and the following directories are created in /opt/nsp/patch/R_r_SPx/, for example, /opt/nsp/patch/26_4_SP1/ |
21 |
Enter the following: # rm -f NSP_R_r-SPx.tar.gz ↵ where R_r-SPx is the NSP service pack ID, in the form Major_minor-SPx The bundle is deleted. |
22 |
Enter the following: # tar xvf patch/R_r_SPx/roles/nsp/files/NSP_DEPLOYER_R_r-SPx.tar.gz ↵ where R_r-SPx is the NSP service pack ID, in the form Major_minor-SPx The bundle file is expanded, and the following directories are created: |
Upgrade Kubernetes registry | |
23 |
You must uninstall the Kubernetes registry in one of the following scenarios:
Otherwise, you can skip this step. Enter the following to uninstall the Kubernetes registry: # cd /opt/nsp/nsp-registry-old-release-ID/bin ↵ # ./nspregistryctl uninstall ↵ The NSP Kubernetes registry is uninstalled. Note: During the registry upgrade, the registry will be temporarily unavailable. During such a period, an NSP pod that restarts on a new cluster node, or a pod that starts, is in the ImagePullBackOff state until the registry upgrade completes. Any such pods recover automatically after the upgrade, and no user intervention is required. |
24 |
Enter the following: # cd /opt/nsp/nsp-registry-new-release-ID/bin ↵ |
25 |
Enter the following to begin the registry upgrade: # ./nspregistryctl install ↵ |
26 |
When the registry upgrade is complete, verify the upgrade.
|
27 |
If you performed Step 23, perform Step 28 to Step 31. Otherwise, go to Step 32. |
28 |
Enter the following to import the original NSP images. # /opt/nsp/NSP-CN-DEP-old_base_load/bin/nspdeployerctl import ↵ where old_base_load is the original deployed version of the installed NSP release Note: Step 28 to Step 31 are necessary for Step 85 or Step 91 to complete successfully. |
29 |
If you have applied any NSP service pack since the original deployment of the installed NSP release, you must import the NSP images from the latest service pack you applied. Enter the following to import the NSP images from the latest service pack. # /opt/nsp/NSP-CN-DEP-old_latest_load/bin/nspdeployerctl import ↵ where old_latest_load is the version of the latest NSP service pack for the old_base_load that you applied |
30 |
Enter the following: # cd /opt/nsp/nsp-k8s-deployer-old_release-ID/bin ↵ |
31 |
Enter the following to push the registries TLS certificate to each NSP cluster member: # ./nspk8sctl update -r ↵ The update is performed, and the containerd service restarts. |
Configure Kubernetes deployer | |
32 |
You must merge the current k8s-deployer.yml settings into the new k8s-deployer.yml file. Open the following files using a plain-text editor such as vi:
|
33 |
Apply the settings in the old file to the same parameters in the new file. |
34 |
Close the old k8s-deployer.yml file. |
35 |
Edit the following line in the cluster section of the new file to read: hosts: "/opt/nsp/nsp-k8s-deployer-new-release-ID/config/hosts.yml" |
36 |
If you have disabled remote root access to the NSP cluster VMs,configure the following parameters in the cluster section, sshAccess subsection: sshAccess: userName: "user" privateKey: "path" where user is the designated NSP ansible user path is the SSH key path for the NSP admin user, for example, /home/NSP admin user/.ssh/id_rsa |
37 |
Configure the following parameters for each NSP cluster VM; see the descriptive text at the head of the file for parameter information, and Hostname configuration requirements for general configuration information. - nodeName: node_name nodeIp: private_IP_address nodeIpv6: private_IPv6_address accessIp: public_IP_address isIngress: value where node_name is the VM name private_IP_address is the VM IP address. All nodeIp addresses need to be in the same subnet. If no accessIp is specified, this needs to be reachable from the deployer host. private_IPv6_address is the optional VM IPv6 address on the environment; in a NAT environment, this is the private IPv6 address. public_IP_address is the optional public IP address corresponding to the private_IP_address in a NAT environment. It defaults to the nodeIP if not specified. This should be reachable from the deployer node. value is true or false, and indicates whether the node acts as a load-balancer endpoint |
38 |
In the following section, specify the virtual IP addresses for the NSP to use as the internal load-balancer endpoints. Note: A single-node NSP cluster requires at least the client_IP address. The addresses are the virtualIP values for NSP client, internal, and mediation access that you specify in Step 63 and Step 64 in the nsp-config.yml file. loadBalancerExternalIps: - client_IP - internal_IP - mediation_IP - trapV4_mediation_IP - trapV6_mediation_IP - flowV4_mediation_IP - flowV6_mediation_IP |
39 |
Configure the following parameter, which specifies whether dual-stack NE management is enabled: Note: Dual-stack NE management can function only when the network environment is appropriately configured, for example:
enableIpv6Stack: value where value must be set to true if the cluster VMs support both IPv4 and IPv6 addressing Note: Each cluster VM must have a hosts.nodeIpv6 value defined in k8s-deployer.yml, or a default IPv6 route must be defined on all of the cluster VMs. |
40 |
Configure the following parameters for artifact import configuration: imageSignatureVerificationFile: "image_path" where image_path is the absolute path to a file in PEM format containing the certificates that are to be used to verify the signature of images imported into the NSP registry The certificate is in the nsp-signing-keys.zip bundle that you downloaded in Obtain installation software. To extract the contents, enter the following: # unzip nsp-signing-keys.zip ↵ The contents are extracted to the current directory. They contain Nokia_Root_Certificate.crt that is used as the value for imageSignatureVerificationFile. |
41 |
Save and close the new k8s-deployer.yml file. |
42 |
Enter the following on the NSP deployer host: # cd /opt/nsp/nsp-k8s-deployer-new-release-ID/bin ↵ |
43 |
Enter the following to create the new hosts.yml file: # ./nspk8sctl config -c ↵ |
44 |
Enter the following to list the node entries in the new hosts.yml file: # ./nspk8sctl config -l ↵ Output like the following example for a four-node cluster is displayed: Note: If NAT is used in the cluster: Otherwise: Note: The ansible_host value must match the access_ip value. Existing cluster hosts configuration is: node_1_name: ansible_host: 203.0.113.11 ip: private_IP access_ip: public_IP node_labels: isIngress: "true" node_2_name: ansible_host: 203.0.113.12 ip: private_IP access_ip: public_IP node_labels: isIngress: "true" node_3_name: ansible_host: 203.0.113.13 ip: private_IP access_ip: public_IP node_labels: isIngress: "true" node_4_name: ansible_host: 203.0.113.14 ip: private_IP access_ip: public_IP node_labels: isIngress: "false" |
45 |
Verify the IP addresses. |
46 |
Enter the following to import the Kubernetes images to the repository: # ./nspk8sctl import ↵ |
Restore NSP system files | |
47 |
Transfer the following downloaded file to the /opt/nsp directory on the NSP deployer host: NSP_DEPLOYER_R_r.tar.gz |
48 |
Enter the following on the NSP deployer host: # cd /opt/nsp ↵ |
49 |
if you performed Step 4, substep c in Steps, perform Step 18 to Step 21 in Steps. |
50 |
Enter the following: # tar xvf patch/R_r_SPx/roles/nsp/files/NSP_DEPLOYER_R_r-SPx.tar.gz ↵ where R_r-SPx is the NSP service pack ID, in the form Major_minor-SPx The bundle file is expanded, and the following directory is created: /opt/nsp/NSP-CN-DEP-release-ID/NSP-CN-release-ID |
51 |
Enter the following: # tar xvf NSP_DEPLOYER_R_r.tar.gz ↵ The bundle file is expanded, and the following directory of NSP installation files is created: /opt/nsp/NSP-CN-DEP-new-release-ID/NSP-CN-new-release-ID |
52 |
Enter the following: # rm -f NSP_DEPLOYER_R_r.tar.gz ↵ The bundle file is deleted. |
53 |
Restore the required NSP configuration files.
|
54 |
Open the following file using a plain-text editor such as vi: /opt/nsp/NSP-CN-DEP-new_latest_load/config/nsp-deployer.yml Update hosts attributes. |
55 |
If you have disabled remote root access to the NSP cluster VMs, configure the following parameters in the cluster section, sshAccess subsection: sshAccess: userName: "user" privateKey: "path" where user is the designated NSP ansible user path is the SSH key path for the NSP admin user, for example, /home/NSP admin user/.ssh/id_rsa |
56 |
In the Artifact import configuration section, configure the following parameters: imageSignatureVerificationFile: "/image_path/Nokia_Root_Certificate.crt" chartSignatureVerificationFile: "/chart_path/nokia_helm_public_keyring.gpg" where image_path is the absolute path to a file in PEM format containing the certificates that are to be used to verify the signature of images imported into the NSP registry chart_path is the absolute path to a GNU Privacy Guard (GPG) file that is to be used to verify the provenance of charts imported into the NSP registry The certificate is in the nsp-signing-keys.zip bundle that you downloaded in Obtain installation software. To extract the contents, enter the following: # unzip nsp-signing-keys.zip ↵ The contents are extracted to the current directory. The contents contain Nokia_Root_Certificate.crt and nokia_helm_public_keyring.gpg that are used as the values for the imageSignatureVerificationFile and chartSignatureVerificationFile parameters. |
57 |
Save and close the new nsp-deployer.yml file. |
58 |
Enter the following: # ln -f NSP-CN-DEP-new_latest_load/config/nsp-deployer.yml NSP-CN-DEP-new_base_load/config/nsp-deployer.yml ↵ |
59 |
Enter the following to import the NSP images and Helm charts for both the new_latest_load and new_base_load to the NSP Kubernetes registry: Note: The import operation for each may take 20 minutes or longer. # /opt/nsp/NSP-CN-DEP-new_latest_load/bin/nspdeployerctl import ↵ # /opt/nsp/NSP-CN-DEP-new_base_load/bin/nspdeployerctl import ↵ |
Configure NSP software | |
60 |
You must merge the nsp-config.yml file content from the existing deployment into the new nsp-config.yml file. Open the following files using a plain-text editor such as vi:
Note: See nsp-config.yml file format for configuration information. |
61 |
Copy each configured parameter line from the previous nsp-config.yml file and use the line to overwrite the same line in the new file, if applicable. The following parameters are not present in the new nsp-config.yml file, and are not to be merged: Note: The peer_address value that you specify must match the advertisedAddress value in the configuration of the peer cluster and have the same format; if one value is a hostname, the other must also be a hostname.
Note: You must maintain the structure of the new file, as any new configuration options for the new release must remain. Note: You must replace each configuration line entirely, and must preserve the leading spaces in each line. Note: If NSP application-log forwarding to NSP Elasticsearch is enabled, special configuration is required.
Note: In a DR deployment, if you use a hostname as the advertisedAddress for DC A, ensure that same hostname is used as the advertisedAddress for DC B. This also applies to using IP addresses for the advertisedAddress for DC A and DC B. |
62 |
Configure the following parameter in the platform section as shown below: Note: You must preserve the lead spacing of the line. clusterHost: "cluster_host_address" where cluster_host_address is the address of NSP cluster member node1, which is subsequently used for cluster management operations |
63 |
You must apply the address values from the former configuration file to the new parameters. Configure the following parameters in the platform section, ingressApplications subsection as shown below. Each address is an address from the ingressApplications section of the k8s-deployer.yml file described in Step 38. Note: The client_IP value is mandatory; the address is used for interfaces that remain unconfigured, such as in a single-interface deployment. Note: If the client network uses IPv6, you must specify the NSP cluster hostname as the client_public_address. Note: The trapForwarder addresses that you specify must differ from the client_IP value, even in a single-interface deployment. ingressApplications: ingressController: clientAddresses: virtualIp: "client_IP" advertised: "client_public_address" internalAddresses: virtualIp: "internal_IP" advertised: "internal_public_address" mediationAddresses: virtualIp: "mediation_IP" advertised: "mediation_public_address" trapForwarder: mediationAddresses: virtualIpV4: "trapV4_mediation_IP" advertisedV4: "trapV4_mediation_public_address" virtualIpV6: "trapV6_mediation_IP" advertisedV6: "trapV6_mediation_public_address" where client_IP is the address for external client access internal_IP is the address for internal communication mediation_IP is the address for network mediation trapV4_mediation_IP is the address for IPv4 network mediation trapV6_mediation_IP is the address for IPv6 network mediation each public_address value is an optional address to advertise instead of the associated _IP value, for example, in a NAT environment |
64 |
If flow collection is enabled, configure the following parameters in the platform section, ingressApplications subsection as shown below: flowForwarder: mediationAddresses: virtualIpV4: "flowV4_mediation_IP" advertisedV4: "flowV4_mediation_public_address" virtualIpV6: "flowV6_mediation_IP" advertisedV6: "flowV6_mediation_public_address" where flowV4_mediation_IP is the address for IPv4 flow collection flowV6_mediation_IP is the address for IPv6 flow collection each _public_address value is an optional address to advertise instead of the associated mediation_IP value, for example, in a NAT environment |
65 |
If you are using your own storage, perform the following steps:
Note: If you are using local or shared storage, the default storage values are used in nsp-config.yml; for example: storage: readWriteOnceLowIOPSClass: "" readWriteOnceHighIOPSClass: "" readWriteOnceClassForDatabases: "" readWriteManyLowIOPSClass: "" readWriteManyHighIOPSClass: "" |
66 |
Configure the type parameter in the deployment section as shown below: deployment: type: "deployment_type" where deployment_type is the deployment type provided in your Platform Sizing Response. |
67 |
If the NSP system currently performs model-driven telemetry or classic telemetry statistics collection, perform the following steps.
|
68 |
If required, configure NSP collection of accounting statistics. Perform the following steps:
Note: If the collectFromClassicNes flag is true, you must disable file rollover traps on the NE to prevent duplicate file collection; see the NE CLI documentation. This change will impact SAA collection: SAA is not supported in NSP. |
69 |
If all of the following are true, configure the following parameters in the integrations section:
nfmpDB: primaryIp: "" standbyIp: "" |
70 |
If both of the following are true, configure the following parameters in the integrations section: auxServer: primaryIpList: "" standbyIpList: "" |
71 |
If required, configure the user authentication parameters in the sso section; see NSP SSO configuration parameters for configuration information. |
72 |
Save and close the new nsp-config.yml file. |
73 |
Close the previous nsp-config.yml file. |
74 |
Enter the following to back up nsp-config.yml: # cp NSP-CN-DEP-new_base_load/NSP-CN-*/config/nsp-config.yml NSP-CN-DEP-new_base_load/NSP-CN-*/config/nsp-config.yml-default ↵ |
75 |
Enter the following: # ln -f NSP-CN-DEP-new_latest_load/NSP-CN-*/config/nsp-config.yml NSP-CN-DEP-new_base_load/NSP-CN-*/config/nsp-config.yml ↵ |
76 |
If you are using your own storage, perform the following steps. See the NSP Planning Guide for the required IOPS and latency storage throughput.
|
77 |
The steps in the following section align with the DR cluster-specific actions described in Pathway for DR NSP system upgrade from Release 25.11 or later. If you are upgrading a standalone NSP system, go to Step 83. |
DR-specific instructions | |
78 |
Perform Step 83 to Step 98 on the standby NSP cluster. |
79 |
Perform Step 83 to Step 128 on the primary NSP cluster. |
80 |
Perform Step 99 to Step 128 on the standby NSP cluster. |
81 |
Perform Step 129 to Step 134 on each NSP cluster. |
82 |
Go to Step 135. |
Stop and undeploy NSP cluster, scenario 1 | |
83 |
Perform the steps in this section if you are using local storage. |
84 |
Perform the following steps on the NSP deployer host to completely remove the existing NSP deployment.
|
85 |
Enter the following on the NSP deployer host to undeploy the NSP cluster: Note: If you are upgrading a standalone NSP system, or the primary NSP cluster in a DR deployment, this step marks the beginning of the network management outage associated with the upgrade. Note: If the NSP cluster VMs do not have the required SSH key, you must include the --ask-pass argument in the command, as shown in the following example, and are subsequently prompted for the root password of each cluster member: nspdeployerctl --ask-pass uninstall --undeploy --clean # /opt/nsp/NSP-CN-DEP-old-release-ID/bin/nspdeployerctl uninstall --undeploy --clean ↵ The NSP cluster is undeployed. |
86 |
Check that all NSP pods are removed from the NSP cluster.
|
87 |
Enter the following: # cd /opt/nsp/NSP-CN-DEP-old-release-ID/bin ↵ |
88 |
Enter the following: # ./nspdeployerctl unconfig ↵ Note: If a label was set manually on a node, you must remove it. |
89 |
Go to Step 93. |
Stop and undeploy NSP cluster, scenario 2 | |
90 |
If you are using your own storage, perform the following steps on the NSP deployer host to preserve the existing cluster data.
|
91 |
Enter the following on the NSP deployer host to undeploy the NSP cluster: Note: If you are upgrading a standalone NSP system, or the primary NSP cluster in a DR deployment, this step marks the beginning of the network management outage associated with the upgrade. Note: If the NSP cluster VMs do not have the required SSH key, you must include the --ask-pass argument in the command, as shown in the following example, and are subsequently prompted for the root password of each cluster member: nspdeployerctl --ask-pass uninstall --undeploy --clean # /opt/nsp/NSP-CN-DEP-old-release-ID/bin/nspdeployerctl uninstall --undeploy --clean ↵ The NSP cluster is undeployed. |
92 |
As the root or NSP admin user on the NSP cluster host, enter the following periodically to display the status of the Kubernetes system pods: Note: You must not proceed to the next step until the output lists only the following: # kubectl get pods -A ↵ The pods are listed. |
Upgrade auxiliary database | |
93 |
If your system includes NFM-P and an auxiliary database, go to Step 98. If the NSP system includes NFMP and auxdb, the auxdb upgrade is performed as part of the the NFM-P upgrade; go to Step 98. If the system has an auxiliary database and no NFM-P, the auxiliary database upgrade is performed as part of the NSP upgrade. |
94 |
On a standalone NSP cluster where NFM-P is not deployed, perform Step 96 or Step 97, depending on the auxiliary database deployment. |
95 |
On a DR NSP cluster where NFM-P is not deployed, perform Step 96 or Step 97 after the primary NSP cluster is undeployed, depending on the auxiliary database deployment. |
96 |
If a standalone auxiliary database is installed, perform To upgrade a standalone Release 25.11 or earlier auxiliary database to upgrade the auxiliary database. |
97 |
If a geo-redundant auxiliary database is installed, perform the following steps:
|
Apply OS update to NSP cluster VMs | |
98 |
If the NSP cluster VMs were created using an NSP RHEL OS disk image, perform the following steps on each NSP cluster VM to apply the required OS update.
|
Upgrade Kubernetes deployment environment | |
99 |
If your Kubernetes version is supported, as determined in To prepare for an NSP system upgrade from Release 25.11 or later, go to Install Kubernetes secrets. See the Host Environment Compatibility Guide for NSP and CLM for Kubernetes version-support information. |
100 |
You must uninstall Kubernetes in one of the following scenarios:
Otherwise, you can skip this step. Enter the following on the NSP deployer host to uninstall Kubernetes: Note: If the NSP cluster VMs do not have the required SSH key, you must include the --ask-pass argument in the command, as shown in the following example, and are subsequently prompted for the root password of each cluster member: nspk8sctl --ask-pass uninstall # /opt/nsp/nsp-k8s-deployer-old-release-ID/bin/nspk8sctl uninstall ↵ The Kubernetes software is uninstalled. |
101 |
Enter the following on the NSP deployer host to install Kubernetes: Note: If the NSP cluster VMs do not have the required SSH key, you must include the --ask-pass argument in the command, as shown in the following example, and are subsequently prompted for the root password of each cluster member: nspk8sctl --ask-pass install # /opt/nsp/nsp-k8s-deployer-new-release-ID/bin/nspk8sctl install ↵ Note: If Kubernetes was not uninstalled in Step 100, the installation takes considerable time; during the process, each cluster node is cordoned, drained, upgraded, and uncordoned, one node at a time. The operation on each node may take 15 minutes or more. The NSP Kubernetes environment is deployed. |
Install Kubernetes secrets | |
102 |
Enter the following: Note: Ensure that you are upgrading to the latest NSP service pack in NSP-CN-DEP-new_latest_load. # cd /opt/nsp/NSP-CN-DEP-new-release-ID/bin ↵ |
103 |
If you uninstalled Kubernetes in Step 100, obtain and restore the secrets backup file. Note: Ensure that you are upgrading to the latest NSP service pack in NSP-CN-DEP-new_latest_load.
|
104 |
Perform the following steps. Note: The Kubernetes secrets from the previous release already exist; you are subsequently prompted for new or optional secrets that were not created in the previous release. An example of an optional secret is custom certificates.
|
105 |
Back up the Kubernetes secrets on a standalone or primary NSP cluster.
|
Add TLS certificates | |
106 |
Enter the following on the NSP deployer host: # cd /opt/nsp/NSP-CN-DEP-old-release-ID/NSP-CN-old-release-ID/tls ↵ |
107 |
Copy all TLS certificates from the tls subdiretories in Step 106 to the appropriate subdirectories in /opt/nsp/NSP-CN-DEP-new-release-ID/NSP-CN-new-release-ID/tls directory. Note: Ensure that you are upgrading to the latest NSP service pack in NSP-CN-DEP-new_latest_load. |
Copy certificate for secure connections | |
108 |
The ca.pem certificate is required for secure gRPC communication and is not required for unsecure telemetry subscriptions. Note: Ensure that you are upgrading to the latest NSP service pack in NSP-CN-DEP-new_latest_load. If your system uses secure telemetry subscriptions, for example, secure gRPC secure with SR Linux, copy all files except .key files from the old telemetry TLS directory to the new directory. # cp /opt/build/NSP-CN-DEP-old-release-ID/NSP-CN-old-release-ID/tls/telemetry/* /opt/build/NSP-CN-DEP-new-release-ID/NSP-CN-new-release-ID/tls/telemetry/ ↵ Note: If this step is not performed, secure telemetry subscriptions fail with a context deadline exceeded error due to missing TLS certificate. |
Restore NSP Data | |
109 |
Perform the steps in this section on the standalone or primary NSP cluster if you performed Stop and undeploy NSP cluster, scenario 1 and are using local storage. Note: If you are using your own storage, you must perform the steps in this section and in Reconfigure storage settings to restore NSP data and reconfigure your own storage settings. The storage configuration is removed when Kubernetes in uninstalled. |
110 |
Enter the following: Note: Ensure that you are upgrading to the latest NSP service pack in NSP-CN-DEP-new_latest_load. # cd /opt/nsp/NSP-CN-DEP-new-release-ID/bin ↵ |
111 |
Enter the following: Note: If the NSP cluster VMs do not have the required SSH key, you must include the --ask-pass argument in the command, as shown in the following example, and are subsequently prompted for the root password of each cluster member: nspdeployerctl --ask-pass config # ./nspdeployerctl config ↵ |
112 |
Enter the following: Note: If the NSP cluster VMs do not have the required SSH key, you must include the --ask-pass argument in the command, as shown in the following example, and are subsequently prompted for the root password of each cluster member: nspdeployerctl --ask-pass install --config --restore # ./nspdeployerctl install --config --restore ↵ The NSP cluster is deployed in restore mode. |
113 |
Perform the steps starting from the “Restore data” section in “How do I restore the NSP cluster databases?” in the NSP System Administrator Guide. |
Reconfigure storage settings | |
114 |
If you are using your own storage and performed Stop and undeploy NSP cluster, scenario 1, you must reconfigure the storage classes for the NSP cluster. Step 65 has examples of storage class configurations; if you are using other types of storage, see the appropriate storage documentation. |
Upgrade NSP software | |
115 |
Return to the console window on the NSP deployer host. |
116 |
If you are configuring the standby cluster in a DR deployment, obtain and restore the secrets backup file from the NSP cluster in the primary data center. Note: Ensure that you are upgrading to the latest NSP service pack in NSP-CN-DEP-new_latest_load.
|
117 |
Enter the following: Note: Ensure that you are upgrading to the latest NSP service pack in NSP-CN-DEP-new_latest_load. # cd /opt/nsp/NSP-CN-DEP-new-release-ID/bin ↵ |
118 |
Enter the following: Note: If the NSP cluster VMs do not have the required SSH key, you must include the --ask-pass argument in the command, as shown in the following example, and are subsequently prompted for the root password of each cluster member: nspdeployerctl --ask-pass install --config --deploy # ./nspdeployerctl install --config --deploy ↵ The NSP is upgraded. |
Monitor NSP initialization | |
119 |
Return to the console window on the NSP cluster host. |
120 |
Monitor and validate the NSP cluster initialization. Note: You must not proceed to the next step until each NSP pod is operational. Note: nfs-storage over linstor is available on two or more nodes for all profile types. nfs-storage uses RWX for access and local-provisioner uses RWO for access.
|
121 |
Enter the following on the NSP cluster host to ensure that all pods are running: # kubectl get pods -A ↵ The status of each pod is listed; all pods are running when the displayed STATUS value is Running or Completed. The nsp deployer log file is /var/log/nspdeployerctl.log. |
122 |
To remove the sensitive NSP security information from the local file system enter the following: # rm -rf /tmp/appliedConfig ↵ The /tmp/appliedConfigs directory is deleted. |
Verify upgraded NSP cluster operation | |
123 |
Use a browser to open the NSP cluster URL. |
124 |
Verify the following.
Note: If the UI fails to open, perform “How do I remove the stale NSP allowlist entries?” in the NSP System Administrator Guide to ensure that unresolvable host entries from the previous deployment do not prevent NSP access. |
Upgrade MDM adaptors | |
125 |
If the NSP system currently performs model-driven telemetry or classic telemetry statistics collection, you must upgrade your MDM adaptors to the latest in the adaptor suite delivered as part of the new NSP release, and install the required Custom Resources, or CRs. Upgrading the adaptors to the latest version is mandatory in order for gNMI telemetry collection to function. Note: After an NSP upgrade, verify all functionality before upgrading installed adaptors or artifact bundles. This activity is best performed during a secondary maintenance window. Perform the following steps.
|
Upgrade or enable additional components and systems | |
126 |
If the NSP deployment includes the VSR-NRC, upgrade the VSR-NRC as described in the VSR-NRC documentation. |
127 |
If you are including an existing NFM-P system in the deployment, perform one of the following.
Note: An NFM-P system upgrade procedure includes steps for upgrading the following components in an orderly fashion: |
128 |
If the NSP system includes the WS-NOC, perform the appropriate procedure in WaveSuite and NSP integration to enable WS-NOC integration with the upgraded NSP system. |
Purge Kubernetes image files | |
129 |
Note: Perform this and the following step only after you verify that the NSP system is operationally stable and that an upgrade rollback is not required. Enter the following on the NSP deployer host: # cd /opt/nsp/nsp-k8s-deployer-new-release-ID/bin ↵ |
130 |
Enter the following: # ./nspk8sctl purge-registry -e ↵ The images are purged. |
Purge NSP image files | |
131 |
Note: Perform this and the following step only after you verify that the NSP system is operationally stable and that an upgrade rollback is not required. Note: Ensure that you are upgrading to the latest NSP service pack in NSP-CN-DEP-new_latest_load. Enter the following on the NSP deployer host: # cd /opt/nsp/NSP-CN-DEP-new-release-ID/bin ↵ |
132 |
Enter the following: # ./nspdeployerctl purge-registry -e ↵ The charts and images are purged. |
Restore SELinux enforcing mode | |
133 |
If either of the following is true, perform “How do I switch between SELinux modes on NSP system components?” in the NSP System Administrator Guide on the NSP deployer host and each NSP cluster VM.
|
134 |
Close the open console windows. |
Import NFM-P users and groups | |
135 |
If you need to import NFM-P users to the NSP local user database as you transition to OAUTH2 user authentication, perform “How do I import users and groups from NFM-P?” in the NSP System Administrator Guide. |
Configure remote authentication sources | |
136 |
If the NSP deployment used remote authentication before the upgrade, perform “How do I configure a remote authentication server?” in the NSP System Administrator Guide. |
Remove path-control subscriptions | |
137 |
If your NSP system has path-control telemetry flow integration enabled, you must remove the older subscriptions, which can no longer be used. Issue the following REST API call: Note: In order to issue a REST API call, you require a token; see the My First NSP API Client tutorial on the Network Developer Portal for information. POST https://address:8443/rest/flow-collector-controller/rest/api/v1/export/unsubscribe where address is the NSP advertised address The message body is the following: { "subscription" : "nrcp-sub" } The subscriptions are removed. |
Synchronize LSP paths | |
138 |
You must update the path properties for existing LSP paths. For each model-driven NE that the NSP manages, Issue the following RESTCONF API call to ensure that the tunnel-id and signaling-type LSP values are updated with the correct device mappings. Note: This step is required for MDM NEs only, and is not required for classically managed NEs. POST https://address/restconf/operations/nsp-admin-resync:trigger-resync where address is the advertised address of the NSP cluster The request body is the following: { "nsp-admin-resync:input": { "plugin-id": "mdm", "network-element": [ { "ne-id": NE_IP, "sbi-classes": [ { "class-id": "nokia-state:/state/router/mpls/lsp/primary" }, { "class-id": "nokia-state:/state/router/mpls/lsp/secondary" } ] } ] } } where NE_IP is the IP address of the NE |
139 |
Confirm the completion of the resync operation for the affected MDM NEs by performing the following steps:
|
140 |
The following API call updates path control UUIDs and properties in existing IETF TE tunnel primary-paths and secondary-paths. This API syncs values from the path control database to the YANG database. The synchronization process occurs in the background when the API call is executed. https://server_IP/lspcore/api/v1/syncLspPaths Method: GET Sample result: HTTP Status OK/40X { response: { data: null, status: 40x, errors: { errorMessage: "" }, startRow: 0, endRow: 0, totalRows: {} } } HTTP Status OK { response: { data: null, status: 200, startRow: 0, endRow: 0, totalRows: {} } } |
Perform post-upgrade tasks | |
141 |
Modify your UAC configuration to maintain user access to the Service Health dashlet in the Network Map and Health view. At a minimum, to maintain user access to the Service Health dashlet, you must open all role objects that control access to the Network Map and Health view, make at least one change to each role (even if only to the Description field), and save your changes. This action is essential to maintain user access to the Service Health dashlet after an upgrade. See “How do I configure a role?” in the NSP System Administrator Guide for information on modifying roles. |
142 |
If you want to remove NFM-P information from the auxiliary database, see Removing NFM-P information. |
143 |
Perform the following steps.
Note: NSP uses the same UUID for both active and standby instances. The same UUID is also used after switchover. To install your NSP license, see “How do I install the NSP license?” in the NSP System Administrator Guide. Note: See “How do I update the NSP license from Release 25.x to 26.4 or later?” in the NSP System Administrator Guide to update your NSP license from Release 25.x to Release 26.4 or later. End of steps |