Skip to content

Commit b8e52c7

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

File tree

1 file changed

+1
-196
lines changed

1 file changed

+1
-196
lines changed

articles/operator-service-manager/release-notes.md

Lines changed: 1 addition & 196 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ This 07-31-2024 Azure Operator Service Manager release includes updating the NFO
3838
3. Delete custom location
3939
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.
4040
5. Install the network function extension
41-
- For further reference, complete extension syntax in Appendix B.
4241
6. Create custom location
4342
7. Redeploy site network services and network functions to the custom location.
4443

@@ -54,29 +53,6 @@ Introduced in this release is an enhancement of the cluster registry and webhook
5453
* Implementing options to allow for the future deletion of the extension with minimal impact.
5554
* Adds tracking references for cluster registry container images usage
5655

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-
8056
#### Safe Upgrades – Downgrade to Lower Version
8157
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.
8258

@@ -95,184 +71,13 @@ Through Microsoft’s Secure Future Initiative | Microsoft, the Nexus product ha
9571

9672
* NFO - Signing of helm package used by network function extension.
9773
* 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.
74+
* 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 A.
9975
* NFO - Automated refresh of AOSM certificates during extension installation.
10076
* NFO - A dedicated service account for the pre-upgrade job to safeguard against modifications to the existing network function extension service account.
10177
* 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
10278
* 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
10379

10480
### 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
27681
#### Cert-manager Usage Guidance for NEPS
27782
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.
27883

0 commit comments

Comments
 (0)