Skip to content

Commit 95e8ecb

Browse files
authored
Update release-notes.md
1 parent 91fed62 commit 95e8ecb

File tree

1 file changed

+277
-5
lines changed

1 file changed

+277
-5
lines changed
Lines changed: 277 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
2-
title: Release Notes for Azure Operator Service Manager
3-
description: Release Notes for Azure Operator Service Manager
2+
title: Azure Operator Service Manager Release Notes
3+
description: Tracking of notes for major and minor release of AOSM.
44
author: msftadam
55
ms.author: adamdor
66
ms.date: 08/09/2024
@@ -10,8 +10,280 @@ ms.service: azure-operator-service-manager
1010

1111
# Release Notes
1212

13-
Below find release notes for both major and minor release of AOSM.
13+
This pages contains major and minor releas for Azure Operator Service Manager
1414

15-
## 7/31 Release
15+
## Overview
1616

17-
TBD
17+
The following release notes are presently generally available:
18+
19+
[Release Notes for Version 2.0.2763-119 7/31/24](https://github.com/msftadam/azure-docs-pr/edit/patch-2/articles/operator-service-manager/release-notes.md?pr=%2FMicrosoftDocs%2Fazure-docs-pr%2Fpull%2F284200#731-release)
20+
21+
## Release 2.0.2763-119 - 7/31
22+
23+
Azure Operator Service Manager Release Notes
24+
7/31/2024 – Document Version 1.5
25+
26+
### Release Summary
27+
Azure Operator Service Manager is a cloud orchestration service that enables automation of operator network-intensive workloads, and mission critical applications hosted on Azure Operator Nexus. Azure Operator Service Manager unifies infrastructure, software and configuration management with a common model into a single interface, both based on trusted Azure industry standards.
28+
This 07-31-2024 Azure Operator Service Manager release includes updating the NFO version to 2.0.2763-119, the details of which are further outlined in the remainder of this document.
29+
30+
### Release Details
31+
* Release Version: 2.0.2763-119
32+
* Release Date: 07-31-2024
33+
34+
### Release Installation
35+
**[BREAKING CHANGE INSTALLATION]** This is a major version release which includes a breaking change. To safely install this version, please follow the steps:
36+
1. Delete all site network services and network functions from the custom location.
37+
2. Uninstall the network function extension:
38+
3. Delete custom location
39+
4. _If Required:_ Update the CSN to whitelist the endpoint: "linuxgeneva-microsoft.azurecr.io" port 443. This step can be skipped if a wildcard is being used or if running Nexus 3.12 or later.
40+
5. Install the network function extension
41+
- For further reference, complete extension syntax in Appendix B.
42+
6. Create custom location
43+
7. Redeploy site network services and network functions to the custom location.
44+
45+
For more Azure Operator Service Manager documentation, please visit; <br> [Azure Operator Service Manager Documentation | Microsoft Learn](https://learn.microsoft.com/en-us/azure/operator-service-manager/)
46+
47+
### Release Attestation
48+
This release has been produced in accordance with Microsoft’s Secure Development Lifecycle, including processes for authorizing software changes, antimalware scanning, and scanning and mitigating security bugs and vulnerabilities.”
49+
50+
### Release Highlights
51+
#### Cluster Registry & Webhook – High Availability
52+
Introduced in this release is an enhancement of the cluster registry and webhook service to support high availability operations. When enabled, this replaces the singleton pod, used in earlier releases, with a replica set and optionally allows for horizontal auto scaling. Other notable improvements include:
53+
* Changing registry storage volume from "nexus-volume" to "nexus-shared"
54+
* Implementing options to allow for the future deletion of the extension with minimal impact.
55+
* Adds tracking references for cluster registry container images usage
56+
57+
The following new parameters are now available, and should be appropriately set, when creating the network function extension using the “az k8s-extension” command.
58+
59+
--config global.networkfunctionextension.clusterRegistry.highAvailability.enabled=
60+
This configuration will provision the cluster registry in high availability mode, if enabled.
61+
By default, uses NAKS nexus-shared volume on AKS.
62+
Accepted values: true, false.
63+
Default value: true.
64+
65+
--config global.networkfunctionextension.clusterRegistry.autoScaling.enabled=
66+
This configuration will provision the cluster registry pods with horizontal auto scaling.
67+
Accepted values: true, false.
68+
Default value: true.
69+
70+
--config global.networkfunctionextension.webhook.highAvailability.enabled=
71+
This configuration will provision multiple replicas of webhook for high availability.
72+
Accepted values: true, false.
73+
Default value: true.
74+
75+
--config global.networkfunctionextension.webhook.autoScaling.enabled=
76+
This configuration will provision the webhook pods with horizontal auto scaling.
77+
Accepted values: true, false.
78+
Default value: true.
79+
80+
#### Safe Upgrades – Downgrade to Lower Version
81+
With this release a SNS re-put operation now supports downgrading a network function to a lower version. The downgrade re-put operation uses the “helm update” method and is not the same as a rollback operation. Downgrade operations support the same capabilities as upgrades, such as atomic parameter, test-option parameters and pause-on-failure behavior.
82+
83+
### Issues Resolved in This Release
84+
85+
#### Bugfix Related Updates
86+
The following bugfixes, or other defect resolutions, have been delivered with this release.
87+
88+
* NFO - Fix for Out Of Memory(OOM) condition in artifact-controller pod when installing fed-smf with Cluster Registry.
89+
* NFO - Prevent mutation of non-AOSM managed pods within "kube-system" namespace. AT&T can use the default value for the new parameter to selectively apply mutations to AOSM-managed pods. (see Appendix B)
90+
* NFO - Improved logging, fixing situations where logs were being dropped
91+
* NFO - Tuning of memory and CPU resources, to limit resource consumption.
92+
93+
#### Security Related Updates
94+
Through Microsoft’s Secure Future Initiative | Microsoft, the Nexus product has introduced the following security focused enhancements in this release and will continue to do so in future releases.
95+
96+
* NFO - Signing of helm package used by network function extension.
97+
* NFO - Signing of core image used by network function extension.
98+
* NFO - Use of Cert-manager for service certificate management and rotation. This change can result in failed SNS deployments if not properly reconciled. For guidance on the impact of this change, see Appendix C.
99+
* NFO - Automated refresh of AOSM certificates during extension installation.
100+
* NFO - A dedicated service account for the pre-upgrade job to safeguard against modifications to the existing network function extension service account.
101+
* RP - The service principles (SPs) used for deploying site & NF now require “Microsoft.ExtendedLocation/customLocations/read” permission. The SP's which deploy day N scenario now require "Microsoft.Kubernetes/connectedClusters/listClusterUserCredentials/action" permission. This change can result in failed SNS deployments if not properly reconciled
102+
* CVE - The following CVE’s are addressed in this release: CVE-2019-25210, CVE-2024-2511, CVE-2023-42366, CVE-2024-4603, CVE-2023-42363
103+
104+
### Appendix A
105+
#### Detailed Syntax to Create NF Extension
106+
az k8s-extension create --cluster-name
107+
--cluster-type {connectedClusters}
108+
--extension-type {Microsoft.Azure.HybridNetwork}
109+
--name
110+
--resource-group
111+
--scope {cluster}
112+
--release-namespace {azurehybridnetwork}
113+
--release-train {preview, stable}
114+
--config Microsoft.CustomLocation.ServiceAccount=azurehybridnetwork-networkfunction-operator
115+
[--auto-upgrade {false, true}]
116+
[--config global.networkfunctionextension.enableClusterRegistry={false, true}]
117+
[--config global.networkfunctionextension.enableLocalRegistry={false, true}]
118+
[--config global.networkfunctionextension.enableEarlyLoading={false,true}]
119+
[--config global.networkfunctionextension.clusterRegistry.highAvailability.enabled={true, false}]
120+
[--config global.networkfunctionextension.clusterRegistry.autoScaling.enabled={true, false}]
121+
[--config global.networkfunctionextension.webhook.highAvailability.enabled={true, false}]
122+
[--config global.networkfunctionextension.webhook.autoScaling.enabled={true, false}]
123+
[--config global.networkfunctionextension.clusterRegistry.storageClassName=]
124+
[--config global.networkfunctionextension.clusterRegistry.storageSize=]
125+
[--config global.networkfunctionextension.webhook.pod.mutation.matchConditionExpression=]
126+
[--version]
127+
128+
#### Required Parameters
129+
130+
--cluster-name -c
131+
Name of the Kubernetes cluster.
132+
133+
--cluster-type -t
134+
Specify Arc clusters or AKS managed clusters or Arc appliances or provisionedClusters.
135+
Accepted values: connectedClusters.
136+
137+
--extension-type
138+
Name of the extension type.
139+
Accepted values: Microsoft.Azure.HybridNetwork.
140+
141+
--name -n
142+
Name of the extension instance.
143+
144+
--resource-group -g
145+
Name of resource group. You can configure the default group using az configure --defaults group=.
146+
--config Microsoft.CustomLocation.ServiceAccount=azurehybridnetwork-networkfunction-operator
147+
This configuration must be provided.
148+
149+
#### Optional Parameters
150+
151+
--auto-upgrade
152+
Automatically upgrade minor version of the extension instance.
153+
Accepted values: false, true.
154+
Default value: true.
155+
156+
--release-train
157+
Specify the release train for the extension type.
158+
Accepted values: preview, stable.
159+
Default value: stable.
160+
161+
--version
162+
Specify the version to install for the extension instance if --auto-upgrade-minor-version is not enabled.
163+
Availabe version can be found on Network Function Extension Release notes
164+
165+
#### Optional feature specific configurations
166+
167+
**Pod Mutating Webhook**
168+
169+
--config global.networkfunctionextension.webhook.pod.mutation.matchConditionExpression=
170+
This configuration is an optional parameter. It comes into play when CNF is getting installed and as a part of its installation corresponding pods are spin up in the CNF's release namespace. This configuration configures more granular control on top of rules and namespaceSelectors defined in Pod Mutating Webhook Configuration.
171+
172+
Default value:
173+
"((object.metadata.namespace != \"kube-system\") || (object.metadata.namespace == \"kube-system\" && has(object.metadata.labels) && (has(object.metadata.labels.app) && (object.metadata.labels.app == \"commissioning\") || (has(object.metadata.labels.name) && object.metadata.labels.name == \"cert-exporter\") || (has(object.metadata.labels.app) && object.metadata.labels.app == \"descheduler\"))))"
174+
175+
The above matchCondition implies that the pods getting admitted in kube-system namespace will be mutated only if they have atleast one of the following labels:
176+
app == "commissioning"
177+
name == "cert-exporter"
178+
app == "descheduler"
179+
else they will not be mutated and continue to be pulled from the original.
180+
Accepted value: Any valid CEL expressions
181+
To learn more about matchConditions reference Kubernetes doc link.
182+
183+
This configuration parameter can be set or updated during NF Extension's installation or update.
184+
Also, this condition comes into play only when the CNF/Component/Application is getting installed into the namespace as per the rules and namespaceSelectors defined in Pod Mutating Webhook Configuration. If there are more pods getting spin up in that namespace, this condition will still be applied to them.
185+
186+
**Cluster registry**
187+
188+
--config global.networkfunctionextension.enableClusterRegistry=
189+
This configuration will provision a regsitry in the cluster to locally cache artifacts.
190+
By default this will enable lazy loading mode unless global.networkfunctionextension.enableEarlyLoading=true.
191+
Accepted values: false, true.
192+
Default value: false.
193+
194+
--config global.networkfunctionextension.clusterRegistry.highAvailability.enabled=
195+
This configuration will provision the cluster regsitry in high availability mode if cluster registry is enabled.
196+
By default is true and uses NAKS nexus-shared volume on AKS recommendation is to set this as false.
197+
Accepted values: true, false.
198+
Default value: true.
199+
200+
--config global.networkfunctionextension.clusterRegistry.autoScaling.enabled=
201+
This configuration will provision the cluster registry pods with horizontal auto scaling.
202+
Accepted values: true, false.
203+
Default value: true.
204+
205+
--config global.networkfunctionextension.webhook.highAvailability.enabled=
206+
This configuration will provision multiple replicas of webhook for high availability.
207+
Accepted values: true, false.
208+
Default value: true.
209+
210+
--config global.networkfunctionextension.webhook.autoScaling.enabled=
211+
This configuration will provision the webhook pods with horizontal auto scaling.
212+
Accepted values: true, false.
213+
Default value: true.
214+
215+
--config global.networkfunctionextension.enableEarlyLoading=
216+
This configuration will enable artifacts early loading into cluster regsitry before helm installation or upgrade.
217+
This configuration can only be enabled when global.networkfunctionextension.enableClusterRegistry=true.
218+
Accetped values: false, true.
219+
Default value: false.
220+
221+
--config global.networkfunctionextension.clusterRegistry.storageClassName=
222+
This configuration must be provided when global.networkfunctionextension.enableClusterRegistry=true.
223+
NetworkFunctionExtension will provision a PVC to local cache artifacts from this storage class.
224+
Platform specific values
225+
AKS: managed-csi
226+
NAKS(Default): nexus-shared
227+
NAKS(Non-HA): nexus-volume
228+
ASE: managed-premium
229+
Default value: nexus-shared.
230+
231+
--config global.networkfunctionextension.clusterRegistry.storageSize=
232+
This configuration must be provided when global.networkfunctionextension.enableClusterRegistry=true.
233+
This configuration configures the size we reserve for cluster registry.
234+
Recommend carefully choose a value that needed to cache artifacts.
235+
Please notes to use unit as Gi and Ti for sizing.
236+
Default value: 100Gi
237+
Side loading
238+
239+
--config global.networkfunctionextension.enableLocalRegistry=
240+
This configuration will allow artifacts to be delivered to edge via hardware drive.
241+
It is only used for Tempnet with AP5GC.
242+
Accepted values: false, true.
243+
Default value: false.
244+
Recommended NFO config for AKS
245+
The default NFO config is configured for HA on NAKS as none of the csi disk drives on AKS support ReadWriteX access mode, HA needs to be disabled on AKS.Use the following config options on AKS
246+
247+
--config global.networkfunctionextension.clusterRegistry.highAvailability.enabled=false--config global.networkfunctionextension.webhook.highAvailability.enabled=false (optional)--config global.networkfunctionextension.clusterRegistry.storageClassName=managed-csi
248+
249+
#### Examples
250+
251+
Create a network function extension with auto upgrade.
252+
253+
az k8s-extension create --resource-group myresourcegroup --cluster-name mycluster --name myextension --cluster-type connectedClusters --extension-type Microsoft.Azure.HybridNetwork --scope cluster --config Microsoft.CustomLocation.ServiceAccount=azurehybridnetwork-networkfunction-operator --release-namespace azurehybridnetwork
254+
255+
Create a network function extension with a pined version.
256+
257+
az k8s-extension create --resource-group myresourcegroup --cluster-name mycluster --name myextension --cluster-type connectedClusters --extension-type Microsoft.Azure.HybridNetwork --auto-upgrade-minor-version false --scope cluster --config Microsoft.CustomLocation.ServiceAccount=azurehybridnetwork-networkfunction-operator --release-namespace azurehybridnetwork --version <put-version-value-here>
258+
259+
Create a network function extension with cluster registry (default lazy loading mode) feature enabled on NAKS.
260+
261+
az k8s-extension create --resource-group myresourcegroup --cluster-name mycluster --name myextension --cluster-type connectedClusters --extension-type Microsoft.Azure.HybridNetwork --scope cluster --config Microsoft.CustomLocation.ServiceAccount=azurehybridnetwork-networkfunction-operator --release-namespace azurehybridnetwork --config global.networkfunctionextension.enableClusterRegistry=true --config global.networkfunctionextension.clusterRegistry.storageSize=100Gi
262+
263+
Create a network function extension with cluster registry (default lazy loading mode) feature enabled on AKS.
264+
265+
az k8s-extension create --resource-group myresourcegroup --cluster-name mycluster --name myextension --cluster-type connectedClusters --extension-type Microsoft.Azure.HybridNetwork --scope cluster --config Microsoft.CustomLocation.ServiceAccount=azurehybridnetwork-networkfunction-operator --release-namespace azurehybridnetwork --config global.networkfunctionextension.enableClusterRegistry=true --config global.networkfunctionextension.clusterRegistry.highAvailability.enabled=false --config global.networkfunctionextension.clusterRegistry.storageClassName=managed-csi --config global.networkfunctionextension.clusterRegistry.storageSize=100Gi
266+
267+
Create a network function extension with cluster registry (early loading) feature enabled.
268+
269+
az k8s-extension create --resource-group myresourcegroup --cluster-name mycluster --name myextension --cluster-type connectedClusters --extension-type Microsoft.Azure.HybridNetwork --scope cluster --config Microsoft.CustomLocation.ServiceAccount=azurehybridnetwork-networkfunction-operator --release-namespace azurehybridnetwork --config global.networkfunctionextension.enableClusterRegistry=true --config global.networkfunctionextension.enableEarlyLoading=true --config global.networkfunctionextension.clusterRegistry.storageClassName=managed-csi --config global.networkfunctionextension.clusterRegistry.storageSize=100Gi
270+
271+
Create a network function extension with side loading feature enabled.
272+
273+
az k8s-extension create --resource-group myresourcegroup --cluster-name mycluster --name myextension --cluster-type connectedClusters --extension-type Microsoft.Azure.HybridNetwork --scope cluster --config Microsoft.CustomLocation.ServiceAccount=azurehybridnetwork-networkfunction-operator --release-namespace azurehybridnetwork --config global.networkfunctionextension.enableLocalRegistry=true
274+
275+
### Appendix B
276+
#### Cert-manager Usage Guidance for NEPS
277+
With this release, AOSM now uses cert-manager to store and rotate certificates. As part of this change, AOSM deploys a cert-manager operator, and associate CRDs, in the azurehybridnetwork namespace. Since having multiple cert-manager operators, even deployed in separate namespaces, will watch across all namespaces, only one cert-manager can be effectively run on the cluster.
278+
279+
Any user trying to install cert-manager on the cluster, as part of a workload deployment, will get a deployment failure with an error that the CRD “exists and cannot be imported into the current release.” To avoid this error, the recommendation is to skip installing cert-manager, instead take dependency on cert-manager operator and CRD already installed by AOSM.
280+
281+
#### Other Configuration Changes to Consider
282+
In addition to disabling the NfApp associated with the old user cert-manager, we have found other changes may be needed.
283+
1. If any other NfApps have DependsOn references to the old user cert-manager NfApp, these will need to be removed.
284+
2. If any other NfApps reference the old user cert-manager namespace value, this will need to be changed to the new azurehybridnetwork namespace value.
285+
286+
#### Cert-Manager Version Compatibility & Management
287+
For the cert-manager operator, our current deployed version is 1.14.5. Users should test for compatibility with this version. Future cert-manager operator upgrades will be supported via the NFO extension upgrade process.
288+
289+
For the CRD resources, our current deployed version is 1.14.5. Users should test for compatibility with this version. Since management of a common cluster CRD is something typically handled by a cluster administrator, we are working to enable CRD resource upgrades via standard Nexus Add-on process.

0 commit comments

Comments
 (0)