Skip to content

Commit 180bcf3

Browse files
authored
Merge branch 'main' into patch-6
2 parents c5c97cb + 7ec79f6 commit 180bcf3

File tree

369 files changed

+2885
-2646
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

369 files changed

+2885
-2646
lines changed

articles/container-instances/azure-container-instances-support-policy.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ author: tomvcassidy
66
ms.service: azure-container-instances
77
services: container-instances
88
ms.topic: conceptual
9-
ms.date: 04/16/2025
9+
ms.date: 11/17/2025
1010
---
1111
# Support policy for Azure Container Instances
1212

articles/container-instances/big-containers.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ author: tomvcassidy
66
ms.service: azure-container-instances
77
services: container-instances
88
ms.topic: concept-article
9-
ms.date: 03/27/2025
9+
ms.date: 11/17/2025
1010
# Customer intent: As a cloud developer, I want to deploy high-performance container workloads with increased vCPU and memory on Azure Container Instances, so that I can efficiently handle data-intensive applications and scale resources seamlessly according to business demands.
1111
---
1212
# Big Containers on Azure Container Instances

articles/container-instances/confidential-containers-attestation-concepts.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ ms.author: tomcassidy
66
author: tomcassidy
77
ms.service: azure-container-instances
88
services: container-instances
9-
ms.date: 08/29/2024
9+
ms.date: 11/17/2025
1010
# Customer intent: As a cloud developer, I want to implement attestation in my confidential container groups on Azure Container Instances, so that I can ensure they run on trusted hardware and comply with security policies essential for safeguarding sensitive data.
1111
---
1212

articles/container-instances/container-instance-ngroups/container-instances-about-ngroups.md

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@ description: Introduction to NGroups and its features describing how customers c
44
ms.author: shivg
55
author: shivg
66
ms.service: azure-container-instances
7-
ms.custom: devx-track-azurecli
87
services: container-instances
98
ms.topic: how-to
10-
ms.date: 11/05/2024
9+
ms.date: 11/17/2025
10+
ms.custom:
11+
- devx-track-azurecli
12+
- sfi-image-nochange
1113
# Customer intent: As a cloud architect, I want to manage multiple container group instances using a single API call through NGroups, so that I can streamline operations, enhance scalability, and improve the availability of my cloud applications.
1214
---
1315

@@ -47,14 +49,14 @@ NGroups references this Container Group Profile and then calls ACI APIs in order
4749

4850
### Container Group Profile (CG Profile)
4951

50-
A large-scale cloud application may require you to manage multiple container groups. As of today, in order to run multiple CGs (Container Groups), customers need to provide relevant properties such as container images, restart policy, and other properties each time. This can result in throttling, duplicated effort, and management overhead.
52+
A large-scale cloud application may require you to manage multiple container groups. As of today, in order to run multiple CGs (Container Groups), customers need to provide relevant properties such as container images, restart policy, and other properties each time. This requirement can result in throttling, duplicated effort, and management overhead.
5153

5254
To alleviate this concern, NGroups introduced Container Group Profiles. The container group profile (CGProfile) serves as a *template* for creating container groups with same set of properties.
5355

5456
Here are some of the common properties that can be specified in a container group profile:
5557

5658
- osType (Example: Linux, Windows)
57-
- containers. Image name, memory, CPU etc.
59+
- containers. Image name, memory, CPU, etc.
5860
- restartPolicy
5961
- ipAddress protocol and internal port
6062
- shutdownGracePeriod
@@ -106,10 +108,10 @@ And here's a sample CG profile:
106108

107109
### NGroups
108110

109-
NGroups resource provides a way to create and manage ‘n’ container groups with a rich set of operations. An NGroups resource references a container group profile resource and uses that to create N instances of similar looking CGs. Within NGroups resource, customers can also specify other properties including but not limited to number of CGs, update preferences (manual or rolling update), load balancers, subnets, and other relevant properties which they want to associate with CGs under an NGroups resource.
111+
NGroups resource provides a way to create and manage ‘n’ container groups with a rich set of operations. An NGroups resource references a container group profile resource and uses that to create N instances of similar looking CGs. Within NGroups resource, customers can also specify other properties including but not limited to number of CGs, update preferences (manual or rolling update), load balancers, subnets, and other relevant properties they want to associate with CGs under an NGroups resource.
110112

111113
> [!NOTE]
112-
> A CG profile needs to be created **before** creating an NGroups resource. Since the CG profile is an ARM resource, it has its own ARM APIs. A CG profile needs to be created **before** creating an NGroups resource.
114+
> A CG profile needs to be created **before** creating an NGroups resource. Since the CG profile is an Azure Resource Manager (ARM) resource, it has its own Azure Resource Manager APIs. A CG profile needs to be created **before** creating an NGroups resource.
113115
114116
#### Benefits of Referencing Container Group Profile
115117

@@ -154,7 +156,7 @@ NGroups references a CG profile and adds other related properties and capabiliti
154156
- The subnet into which CGs are deployed when using a virtual network
155157
- The Load Balancer or Application Gateway to provide network ingress to the CGs
156158

157-
NGroups in turn invokes the ACI ARM APIs to create and manage each CG. Since it uses the same ARM APIs, there's no difference between the CGs created by NGroups and the CGs created directly by the customer. They have the exact same API experience.
159+
NGroups in turn invokes the ACI Azure Resource Manager APIs to create and manage each CG. Since it uses the same Azure Resource Manager APIs, there's no difference between the CGs created by NGroups and the CGs created directly by the customer. They have the exact same API experience.
158160

159161
### Updating an NGroups Resource
160162

@@ -172,7 +174,7 @@ To update existing CGs with new CGProfile, we issue a *manual update* command wi
172174

173175
This mode gives us flexibility to update CGs selectively and provides full control over impact on production workloads.
174176

175-
In **Rolling** mode, when we update the reference to cgprofile2 and issue an UPDATE NGroups command, existing CGs are updated with cgprofile2. The update to existing CGs happens in small batches (and not all at once). This ensures that there is a minimal impact on your workload since only a small percentage of CGs may be unavailable during the update.
177+
In **Rolling** mode, when we update the reference to cgprofile2 and issue an UPDATE NGroups command, existing CGs are updated with cgprofile2. The update to existing CGs happens in small batches (and not all at once). This ensures that there's a minimal impact on your workload since only a small percentage of CGs may be unavailable during the update.
176178

177179
We can configure the batch size and other related rolling update mode settings with the NGroups API.
178180

@@ -199,9 +201,9 @@ If these prerequisites aren't met, requests fail, and the NGroups resource type
199201
Create CG Profile: [ContainerGroupProfile-Sample.json](#container-group-profile-sample)
200202
Create Zonal NGroups with CGProfile: [NGroups-Zonal-Sample.json](#ngroups-with-zones-sample)
201203

202-
Customers can see if a container group is associated to an NGroups resource by checking container group orchestratorId property under the JSON view. The orchestratorId represents the associated NGroups ARM resource ID.
204+
Customers can see if a container group is associated to an NGroups resource by checking container group orchestratorId property under the JSON view. The orchestratorId represents the associated NGroups Azure Resource Manager resource ID.
203205

204-
:::image type="content" source="../media/container-instances-ngroups/cg-arm-json-structure.png" alt-text="A screenshot of an NGroups CG ARM JSON displaying OrchestratorId property.":::
206+
:::image type="content" source="../media/container-instances-ngroups/cg-arm-json-structure.png" alt-text="A screenshot of an NGroups CG Azure Resource Manager JSON displaying OrchestratorId property.":::
205207

206208
## How-To Guide
207209

@@ -284,7 +286,7 @@ While creating or updating container groups, NGroups relies on the same ACI APIs
284286

285287
- Once an NGroups resource is created with a set of zones (for example, { “1”, “2” }), the zones can't be removed. However, a new zone can be added to the list. For example, { “1”, “2”, “3” }
286288

287-
- If a specified zone is down, then the overall NGroups operation to create the CGs fails. Retry the request once the zone is back up. Another option is to delete the failed CGs.
289+
- If a specified zone is down, then the overall NGroups operation to create the CGs fails. Retry the request once the zone is operational again. Another option is to delete the failed CGs.
288290

289291
- During scale down, NGroups randomly deletes instances, which might not always maintain AZ spread. However, subsequent scale-out operations always try to rebalance the AZ spread.
290292

@@ -326,15 +328,15 @@ This can be useful when you have multiple NGroups in a single resource group and
326328

327329
Yes, you can set the properties.elasticProfile.maintainDesiredCount bool property to true.
328330

329-
It creates a new CG for every CG that is being deleted/detached from the NGroups. It tries to maintain the desiredCount property of the NGroups to its set value.
331+
It creates a new CG for every CG that's being deleted/detached from the NGroups. It tries to maintain the desiredCount property of the NGroups at its set value.
330332

331-
This is useful when you want to use the NGroups as a *pool* which automatically gets replenished when you take away CGs from the pool for your workload scenarios.
333+
This is useful when you want to use the NGroups as a *pool*, which automatically gets replenished when you take away CGs from the pool for your workload scenarios.
332334

333-
It is a nullable bool property. If you omit it for subsequent NGroups PUT/update calls, it doesn't reset to false. To reset, you must explicitly set it to false. When it is null/false, and when a CG is deleted/detached from the NGroups, the desiredCount property for the NGroups reduces accordingly.
335+
It's a nullable bool property. If you omit it for subsequent NGroups PUT/update calls, it doesn't reset to false. To reset, you must explicitly set it to false. When it's null/false, and when a CG is deleted/detached from the NGroups, the desiredCount property for the NGroups reduces accordingly.
334336

335337
#### How do I get the CG name, NGroups ID and other metadata propagated down into the container?
336338

337-
Currently, we expose only the CG name and orchestrator ID (the ARM resource ID). In the future, other relevant properties could be considered. These two properties show up as container environment variables.
339+
Currently, we expose only the CG name and orchestrator ID (the Azure Resource Manager resource ID). In the future, other relevant properties could be considered. These two properties show up as container environment variables.
338340

339341
To get these environment variables on the container, specify these tags *at the NGroups level*:
340342

@@ -358,7 +360,7 @@ For workloads that offer higher availability (for example, NGroups spread across
358360

359361
This update is done AZ by AZ with not much automated coordination across AZs. Coordination is manually tracked and best-effort.
360362

361-
So, if by chance, a platform update happens simultaneously across 2 or more AZs, then CGs across these AZs can be down simultaneously thus causing unavailability for your NGroups.
363+
So, if by chance, a platform update happens simultaneously across two or more AZs, then CGs across these AZs can be down simultaneously thus causing unavailability for your NGroups.
362364

363365
#### How to use Confidential Containers with NGroups
364366

@@ -538,7 +540,7 @@ Refer to the ACI documentation of confidential containers here: [Tutorial: Prepa
538540
}
539541
```
540542

541-
## Learn Related Topics
543+
## Related articles
542544

543545
- [Azure Container Instances](../container-instances-overview.md)
544546
- [NGroups Rolling Update](container-instances-rolling-update.md)

articles/container-instances/container-instance-ngroups/container-instances-rolling-update.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ ms.service: azure-container-instances
77
ms.custom: devx-track-azurecli
88
services: container-instances
99
ms.topic: how-to
10-
ms.date: 11/07/2024
10+
ms.date: 11/17/2025
1111
# Customer intent: As a cloud administrator, I want to perform rolling updates on container groups in NGroups, so that I can ensure minimal workload disruption and maintain service availability during updates.
1212
---
1313

@@ -57,11 +57,11 @@ NGroups then automatically group instances into batches and updates one batch at
5757

5858
- An **in-place** update invokes a CG PUT call to update each CG of the batch.
5959

60-
- A **replace** update invokes a CG PUT call to create new CGs and delete existing CGs of the batch. There exists a 1:1 correspondence between the CGs being created and the CGs being deleted. However, the CG names will be different.
60+
- A **replace** update invokes a CG PUT call to create new CGs and delete existing CGs of the batch. There exists a 1:1 correspondence between the CGs being created and the CGs being deleted. However, the CG names are different.
6161

62-
If a sufficient number of CGs in the batch provide healthy signals after the pauseTimeBetweenBatches period, NGroups automatically starts the next batch for the update. Otherwise, it stops the rollout. The *maxUnhealthyPercent* parameter specifies the total number of unhealthy CGs, while the *maxUnhealthyUpdatedPercent* parameter specifies the total number of unhealthy CGs after the update.
62+
If a sufficient number of container groups in the batch provide healthy signals after the pauseTimeBetweenBatches period, NGroups automatically starts the next batch for the update. Otherwise, it stops the rollout. The *maxUnhealthyPercent* parameter specifies the total number of unhealthy CGs, while the *maxUnhealthyUpdatedPercent* parameter specifies the total number of unhealthy CGs after the update.
6363

64-
Here is an example to issue a rolling update request to NGroups:
64+
Here's an example to issue a rolling update request to NGroups:
6565

6666
``` json
6767
{
@@ -108,7 +108,7 @@ Here is an example to issue a rolling update request to NGroups:
108108
}
109109
```
110110

111-
If image version is set to the **latest** tag for container images within the CG profile, then NGroups automatically picks up the latest image version during the RU. To prevent unexpected behavior in your application, it is recommended to not use the *latest* tag for images. Instead, use specific versions.
111+
If image version is set to the **latest** tag for container images within the CG profile, then NGroups automatically picks up the latest image version during the RU. To prevent unexpected behavior in your application, it's recommended to not use the *latest* tag for images. Instead, use specific versions.
112112

113113

114114
> [!NOTE]
@@ -131,17 +131,17 @@ This returns a response containing relevant information about the RU.
131131

132132
### Canceling a Rolling Update
133133

134-
To cancel a rolling update, use the following API. Once canceled, the RU cannot be resumed/restarted. A new RU needs to be triggered.
134+
To cancel a rolling update, use the following API. Once canceled, the RU can't be resumed/restarted. A new RU needs to be triggered.
135135

136136
`POST /subscriptions/{subscriptionId}/resourceGroups/{{rgName}}/providers/Microsoft.ContainerInstance/NGroups/{{ngroupsName}}/cancelRollingUpdate`
137137

138-
You do not need to provide a request body when calling this API.
138+
You don't need to provide a request body when calling this API.
139139

140-
It's also important to know that canceling an RU won't automatically roll it back to the previous state, but it will remain in the state that it was at the moment it was canceled. For example, in case during an RU one wants to update a CG profile reference from *cgprofile1* to *cgprofile2*, and at some point the operation is canceled, some CGs might have the new profile *cgprofile2* and others remain with *cgprofile1*.
140+
It's also important to know that canceling an RU won't automatically roll it back to the previous state, but it remains in the state that it was at the moment it was canceled. For example, in case during an RU one wants to update a CG profile reference from *cgprofile1* to *cgprofile2*, and at some point the operation is canceled, some CGs might have the new profile *cgprofile2* and others remain with *cgprofile1*.
141141

142142
### Boundary of a Batch in a Rolling Update
143143

144-
The CGs of a specific batch in an RU do not cross a fault model boundary. A fault model represents a zone/fault-domain (FD) combination. For example, zone 1 / FD 0 is a fault model boundary, zone 1 / FD 1 is another fault model boundary, and zone 2 / FD 0 is yet another fault model boundary.
144+
The CGs of a specific batch in an RU don't cross a fault model boundary. A fault model represents a zone/fault-domain (FD) combination. For example, zone 1 / FD 0 is a fault model boundary, zone 1 / FD 1 is another fault model boundary, and zone 2 / FD 0 is yet another fault model boundary.
145145

146146
If a customer has a multi-zonal NGroups set up with three zones, a batch is confined to CGs belonging to only one zone at most. A batch never consists of CGs spread across multiple zones.
147147

@@ -151,7 +151,7 @@ NGroups maintains this fault model boundary in a batch, even when the number of
151151

152152
The only time a fault model boundary is crossed when the RU selects unhealthy CGs for the first batch. In this batch, the RU attempts to update all unhealthy CGs to improve the overall availability of NGroups. As a result, when updating unhealthy CGs, the RU may exceed the maxBatchPercent setting.
153153

154-
## Learn Related Topics
154+
## Related articles
155155

156156
- [Azure Container Instances](../container-instances-overview.md)
157157
- [About NGroups](container-instances-about-ngroups.md)

articles/container-instances/container-instances-application-gateway.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ ms.service: azure-container-instances
77
ms.custom: devx-track-azurecli
88
services: container-instances
99
ms.topic: how-to
10-
ms.date: 08/29/2024
10+
ms.date: 11/17/2025
1111
# Customer intent: "As a cloud architect, I want to configure a static public IP address for a container group using an application gateway, so that I can ensure stable external access to my containerized web applications."
1212
---
1313

articles/container-instances/container-instances-best-practices-and-considerations.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ ms.author: tomcassidy
66
author: tomvcassidy
77
ms.service: azure-container-instances
88
services: container-instances
9-
ms.date: 08/29/2024
9+
ms.date: 11/17/2025
1010
# Customer intent: As a cloud administrator, I want to implement best practices for deploying workloads on container instances, so that I can ensure security, efficiency, and scalability in my containerized applications.
1111
---
1212

articles/container-instances/container-instances-confidential-overview.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ ms.author: tomcassidy
66
author: tomvcassidy
77
ms.service: azure-container-instances
88
services: container-instances
9-
ms.date: 08/29/2024
9+
ms.date: 11/17/2025
1010
ms.custom: mvc
1111
# Customer intent: "As a cloud operator, I want to implement confidential containers on Azure Container Instances, so that I can securely run containerized applications while protecting sensitive data through hardware-based execution environments and verifiable attestation."
1212
---

0 commit comments

Comments
 (0)