Skip to content

Commit 31192c1

Browse files
authored
Update safe-upgrade-practices.md
updates for skipNfApp
1 parent 134ab80 commit 31192c1

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

articles/operator-service-manager/safe-upgrade-practices.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -296,6 +296,46 @@ The NF ARM template is used by operator to submit the roleOverrideValues variabl
296296
}
297297
```
298298

299+
## How to skip NfApps which have no changes
300+
The SkipUpgrade feature is designed to optimize the time taken for CNF upgrades. By enabling this optional flag in the `RoleOverrideValues` under `UpgradeOptions`, AOSM at the service layer performs certain pre-checks to determine whether an upgrade for a specific `NFApplication` can be skipped. If all pre-check criteria are met, the upgrade is skipped for that application. Otherwise, a traditional full Helm upgrade is executed at the cluster level.
301+
302+
### Pre-Check Criteria
303+
An upgrade can be skipped if all the following conditions are met:
304+
1. The `NFApplication` provisioning state is "Succeeded".
305+
2. There is no change in the Helm chart name or version.
306+
3. There is no change in the Helm values.
307+
308+
### Enabling or Disabling the SkipUpgrade Feature
309+
The SkipUpgrade feature is **disabled by default**. If this optional parameter is not specified in `RoleOverrideValues` under `UpgradeOptions`, CNF upgrades proceed in the traditional manner, where the `NFApplications` are upgraded at the cluster level.
310+
311+
#### Enabling SkipUpgrade withing Network Function Resource
312+
To enable the SkipUpgrade feature via `RoleOverrideValues`, refer to the example below:
313+
314+
```json
315+
{
316+
"location": "eastus2euap",
317+
"properties": {
318+
"publisherName": "xyAzureArcRunnerPublisher",
319+
"publisherScope": "Private",
320+
"networkFunctionDefinitionGroupName": "AzureArcRunnerNFDGroup",
321+
"networkFunctionDefinitionVersion": "1.0.0",
322+
"networkFunctionDefinitionOfferingLocation": "eastus2euap",
323+
"nfviType": "AzureArcKubernetes",
324+
"nfviId": "/subscriptions/4a0479c0-b795-4d0f-96fd-c7edd2a2928f/resourcegroups/ashutosh_test_rg/providers/microsoft.extendedlocation/customlocations/ashutosh_test_cl",
325+
"deploymentValues": "",
326+
"roleOverrideValues": [
327+
"{\"name\":\"hellotest\",\"deployParametersMappingRuleProfile\":{\"helmMappingRuleProfile\":{\"options\":{\"installOptions\":{\"atomic\":\"true\",\"wait\":\"true\",\"timeout\":\"1\"},\"upgradeOptions\":{\"atomic\":\"true\",\"wait\":\"true\",\"timeout\":\"4\",\"skipUpgrade\":\"true\"}}}}}",
328+
"{\"name\":\"runnerTest\",\"deployParametersMappingRuleProfile\":{\"helmMappingRuleProfile\":{\"options\":{\"installOptions\":{\"atomic\":\"true\",\"wait\":\"true\",\"timeout\":\"5\"},\"upgradeOptions\":{\"atomic\":\"true\",\"wait\":\"true\",\"timeout\":\"5\"}}}}}"
329+
]
330+
}
331+
}
332+
```
333+
#### Explanation of the Example
334+
- **NfApplication: `hellotest`**
335+
- The `skipUpgrade` flag is enabled. If the upgrade request for `hellotest` meets the pre-check criteria, the upgrade will be skipped at the service level.
336+
- **NfApplication: `runnerTest`**
337+
- The `skipUpgrade` flag is not specified. Therefore, `runnerTest` will always go through a traditional Helm upgrade at the cluster level, even if the pre-check criteria are met.
338+
299339
## Support for in service upgrades
300340
Azure Operator Service Manager, where possible, supports in service upgrades, an upgrade method which advances a deployment version without interrupting the service. However, the ability for a given service to be upgraded without interruption is a feature of the service itself. Consult further with the service publisher to understand the in-service upgrade capabilities.
301341

0 commit comments

Comments
 (0)