Skip to content

Commit 461b6c0

Browse files
authored
Merge pull request #262724 from MicrosoftDocs/repo_sync_working_branch
Confirm merge from repo_sync_working_branch to main to sync with https://github.com/MicrosoftDocs/azure-docs (branch main)
2 parents cdc1f47 + 6a5997f commit 461b6c0

File tree

5 files changed

+142
-123
lines changed

5 files changed

+142
-123
lines changed

articles/aks/concepts-network.md

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,19 +24,27 @@ This article introduces the core concepts that provide networking to your applic
2424
* [Network policies](#network-policies)
2525

2626
## Kubernetes basics
27+
Kubernetes employs a virtual networking layer to manage access within and between your applications or their components. This involves the following key aspects:
2728

28-
To allow access to your applications or between application components, Kubernetes provides an abstraction layer to virtual networking. Kubernetes nodes connect to a virtual network, providing inbound and outbound connectivity for pods. The *kube-proxy* component runs on each node to provide these network features.
29+
- **Kubernetes nodes and virtual network**: Kubernetes nodes are connected to a virtual network. This setup enables pods (basic units of deployment in Kubernetes) to have both inbound and outbound connectivity.
2930

30-
In Kubernetes:
31+
- **Kube-proxy component**: Running on each node, kube-proxy is responsible for providing the necessary network features.
3132

32-
* *Services* logically group pods to allow for direct access on a specific port via an IP address or DNS name.
33-
* *ServiceTypes* allow you to specify what kind of Service you want.
34-
* You can distribute traffic using a *load balancer*.
35-
* Layer 7 routing of application traffic can also be achieved with *ingress controllers*.
36-
* You can *control outbound (egress) traffic* for cluster nodes.
37-
* Security and filtering of the network traffic for pods is possible with *network policies*.
33+
Regarding specific Kubernetes functionalities:
3834

39-
The Azure platform also simplifies virtual networking for AKS clusters. When you create a Kubernetes load balancer, you also create and configure the underlying Azure load balancer resource. As you open network ports to pods, the corresponding Azure network security group rules are configured. For HTTP application routing, Azure can also configure *external DNS* as new Ingress routes are configured.
35+
- **Services**: These are used to logically group pods, allowing direct access to them through a specific IP address or DNS name on a designated port.
36+
- **Service types**: This feature lets you specify the kind of Service you wish to create.
37+
- **Load balancer**: You can use a load balancer to distribute network traffic evenly across various resources.
38+
- **Ingress controllers**: These facilitate Layer 7 routing, which is essential for directing application traffic.
39+
- **Egress traffic control**: Kubernetes allows you to manage and control outbound traffic from cluster nodes.
40+
- **Network policies**: These policies enable security measures and filtering for network traffic in pods.
41+
42+
In the context of the Azure platform:
43+
44+
- Azure streamlines virtual networking for AKS (Azure Kubernetes Service) clusters.
45+
- Creating a Kubernetes load balancer on Azure simultaneously sets up the corresponding Azure load balancer resource.
46+
- As you open network ports to pods, Azure automatically configures the necessary network security group rules.
47+
- Azure can also manage external DNS configurations for HTTP application routing as new Ingress routes are established.
4048

4149
## Services
4250

articles/azure-functions/functions-scale.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ The Azure Functions hosting plan you choose dictates the following behaviors:
1616
* The resources available to each function app instance.
1717
* Support for advanced functionality, such as Azure Virtual Network connectivity.
1818

19-
In addition to Azure Functions hosting, you can also host containerized function apps in containers can also be deployed to Kubernetes clusters and to Azure Container Apps. If you choose to host your functions in a Kubernetes cluster, consider using an [Azure Arc-enabled Kubernetes cluster](../azure-arc/kubernetes/overview.md). To learn more about deploying custom container apps, see [Azure Container Apps hosting of Azure Functions](./functions-container-apps-hosting.md).
19+
In addition to Azure Functions hosting, you can also host containerized function apps in containers that can be deployed to Kubernetes clusters or to Azure Container Apps. If you choose to host your functions in a Kubernetes cluster, consider using an [Azure Arc-enabled Kubernetes cluster](../azure-arc/kubernetes/overview.md). To learn more about deploying custom container apps, see [Azure Container Apps hosting of Azure Functions](./functions-container-apps-hosting.md).
2020

2121
This article provides a detailed comparison between the various hosting plans, including container-based hosting options.
2222

articles/iot-operations/deploy-iot-ops/howto-manage-secrets.md

Lines changed: 102 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ author: kgremban
55
ms.author: kgremban
66
# ms.subservice: orchestrator
77
ms.topic: how-to
8-
ms.date: 12/06/2023
8+
ms.date: 12/19/2023
99
ms.custom:
1010
- ignite-2023
1111

@@ -26,6 +26,107 @@ Azure IoT Operations supports Azure Key Vault for storing secrets and certificat
2626

2727
For more information, see [Deploy Azure IoT Operations extensions](./howto-deploy-iot-operations.md?tabs=cli).
2828

29+
## Configure service principal and Azure Key Vault upfront
30+
31+
If the Azure account executing the `az iot ops init` command does not have permissions to query the Azure Resource Graph and create service principals, you can prepare these upfront and use extra arguments when running the CLI command as described in [Deploy Azure IoT Operations extensions](./howto-deploy-iot-operations.md?tabs=cli).
32+
33+
### Configure service principal for interacting with Azure Key Vault via Microsoft Entra ID
34+
35+
Follow these steps to create a new Application Registration that will be used by the AIO application to authenticate to Key Vault.
36+
37+
First, register an application with Microsoft Entra ID.
38+
39+
1. In the Azure portal search bar, search for and select **Microsoft Entra ID**.
40+
41+
1. Select **App registrations** from the **Manage** section of the Microsoft Entra ID menu.
42+
43+
1. Select **New registration**.
44+
45+
1. On the **Register an application** page, provide the following information:
46+
47+
| Field | Value |
48+
| ----- | ----- |
49+
| **Name** | Provide a name for your application. |
50+
| **Supported account types** | Ensure that **Accounts in this organizational directory only (<YOUR_TENANT_NAME> only - Single tenant)** is selected. |
51+
| **Redirect URI** | Select **Web** as the platform. You can leave the web address empty. |
52+
53+
1. Select **Register**.
54+
55+
When your application is created, you are directed to its resource page.
56+
57+
1. Copy the **Application (client) ID** from the app registration overview page. You'll use this value as an argument when running Azure IoT Operations deployment.
58+
59+
Next, give your application permissions for key vault.
60+
61+
1. On the resource page for your app, select **API permissions** from the **Manage** section of the app menu.
62+
63+
1. Select **Add a permission**.
64+
65+
1. On the **Request API permissions** page, scroll down and select **Azure Key Vault**.
66+
67+
1. Select **Delegated permissions**.
68+
69+
1. Check the box to select **user_impersonation** permissions.
70+
71+
1. Select **Add permissions**.
72+
73+
Create a client secret that will be added to your Kubernetes cluster to authenticate to your key vault.
74+
75+
1. On the resource page for your app, select **Certificates & secrets** from the **Manage** section of the app menu.
76+
77+
1. Select **New client secret**.
78+
79+
1. Provide an optional description for the secret, then select **Add**.
80+
81+
1. Copy the **Value** and **Secret ID** from your new secret. You'll use these values later below.
82+
83+
Retrieve the service principal Object Id
84+
85+
1. On the **Overview** page for your app, under the section **Essentials**, click on the **Application name** link under **Managed application in local directory**. This opens the Enterprise Application properties. Copy the Object Id to use when you run `az iot ops init`.
86+
87+
### Create an Azure Key Vault
88+
89+
Create a new Azure Key Vault service and ensure it has the **Permission Model** set to Vault access policy.
90+
91+
```bash
92+
az keyvault create --enable-rbac-authorization false --name "<your unique key vault name>" --resource-group "<the name of the resource group>"
93+
```
94+
If you have an existing key vault, you can change the permission model by executing the following:
95+
96+
```bash
97+
az keyvault update --name "<your unique key vault name>" --resource-group "<the name of the resource group>" --enable-rbac-authorization false
98+
```
99+
You will need the Key Vault resource ID when you run `az iot ops init`. To retrieve the resource ID, run:
100+
101+
```bash
102+
az keyvault show --name "<your unique key vault name>" --resource-group "<the name of the resource group>" --query id -o tsv
103+
```
104+
105+
### Set service principal access policy in Azue Key Vault
106+
107+
The newly created service principal needs **Secret** `list` and `get` access policy for the Azure IoT Operations to work with the secret store.
108+
109+
Run the following to assign **secret** `get` and `list` permissions to the service principal.
110+
111+
```bash
112+
az keyvault set-policy --name "<your unique key vault name>" --resource-group "<the name of the resource group>" --object-id <Object ID copied from Enterprise Application SP in Microsoft Entra ID> --secret-permissions get list --key-permissions get list
113+
```
114+
115+
### Pass service principal and Key Vault arguments to Azure IoT Operations deployment
116+
117+
When following the guide [Deploy Azure IoT Operations extensions](./howto-deploy-iot-operations.md?tabs=cli), you will need to pass in additional flags to the `az iot ops init` command in order to use the pre-configured service principal and key vault.
118+
119+
The following example shows how to prepare the cluster for Azure IoT Operations without fully deploying it by using `--no-deploy` flag. You can also run the command without this argument for a default Azure IoT Operations deployment.
120+
121+
```bash
122+
az iot ops init --name "<your unique key vault name>" --resource-group "<the name of the resource group>" \
123+
--kv-id <Key Vault Resource ID> \
124+
--sp-app-id <Application registration App ID (client ID) from Microsoft Entra ID> \
125+
--sp-object-id <Object ID copied from Enterprise Application in Microsoft Entra ID> \
126+
--sp-secret "<Client Secret from App registration in Microsoft Entra ID>" \
127+
--no-deploy
128+
```
129+
29130
## Add a secret to an Azure IoT Operations component
30131

31132
Once you have the secret store set up on your cluster, you can create and add Azure Key Vault secrets.

articles/operator-service-manager/publisher-resource-preview-management.md

Lines changed: 21 additions & 111 deletions
Original file line numberDiff line numberDiff line change
@@ -64,37 +64,15 @@ Immutable artifacts are tested artifacts that can't be modified or overwritten.
6464

6565

6666
### Update Artifact Manifest state
67+
Use the following Azure CLI command to change the state of a artifact manifest resource.
6768

68-
### HTTP Method: POST URL
69-
70-
```http
71-
https://management.azure.com/{artifactManifestResourceId}/updateState?api-version=2023-09-01
72-
```
73-
74-
Where artifactManifestResourceId is the full resource ID of the Artifact Manifest resource
75-
76-
### Request body
77-
78-
```json
79-
{
80-
"artifactManifestState": "Uploaded"
81-
}
82-
```
83-
84-
### Submit POST
85-
86-
Submit the POST using `az rest` in the Azure CLI.
87-
8869
```azurecli
89-
az rest --method post --uri {artifactManifestResourceId}/updateState?api-version=2023-09-01 --body "{\"artifactManifestState\": \"Uploaded\"}"
90-
```
91-
92-
Where *{artifactManifestResourceId}* is the full resource ID of the Artifact Manifest resource
93-
94-
Then issue the get command to check that the artifactManifestState change is complete.
95-
96-
```azurecli
97-
az rest --method get --uri {artifactManifestResourceId}?api-version=2023-09-01
70+
az aosm publisher artifact-manifest update-state \
71+
--resource-group <myResourceGroupName> \
72+
--publisher-name <myPublisherName> \
73+
--artifact-store-name <myArtifactStoreName> \
74+
--name <myArtifactManifestName> \
75+
--state Uploaded
9876
```
9977

10078
## Network Function Definition and Network Service Design state machine
@@ -103,93 +81,25 @@ az rest --method post --uri {artifactManifestResourceId}/updateState?api-version
10381
- Deprecated state is a terminal state but can be reversed.
10482

10583
## Update Network Function definition version state
106-
107-
Use the following API to update the state of a Network Function Definition Version (NFDV).
108-
109-
### HTTP Method: POST URL
110-
111-
```http
112-
https://management.azure.com/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.HybridNetwork/publishers/{publisherName}/networkfunctiondefinitiongroups/{networkfunctiondefinitiongroups}/networkfunctiondefinitionversions/{networkfunctiondefinitionversions}/updateState?api-version=2023-09-01
113-
```
114-
115-
### URI parameters
116-
117-
The following table describes the parameters used with the preceding URL.
118-
119-
|Name |Description |
120-
|---------|---------|
121-
|subscriptionId | The subscription ID.
122-
|resourceGroupName | The name of the resource group. |
123-
|publisherName | The name of the publisher. |
124-
|networkfunctiondefinitiongroups | The name of the network function definition groups.
125-
|networkfunctiondefinitionversions | The network function definition version. |
126-
|api-version | The API version to use for this operation. |
127-
128-
129-
### Request body
130-
131-
```json
132-
{
133-
"versionState": "Active | Deprecated"
134-
}
135-
```
136-
### Submit post
137-
138-
Submit the POST using `az rest` in the Azure CLI.
139-
140-
```azurecli
141-
az rest --method post --uri {nfdvresourceId}/updateState?api-version=2023-09-01 --body "{\"versionState\": \"Active\"}"
142-
```
143-
Where *{nfdvresourceId}* is the full resource ID of the Network Function Definition Version
144-
145-
Then issue the get command to check that the versionState change is complete.
84+
Use the following Azure CLI command to change the state of a Network Function Definition Version resource.
14685

14786
```azurecli
148-
az rest --method get --uri {nfdvresourceId}?api-version=2023-09-01
87+
az aosm publisher network-function-definition version update-state \
88+
--resource-group <myResourceGroup> \
89+
--publisher-name <myPublisherName> \
90+
--group-name <myNetworkFunctionDefinitionGroupName> \
91+
--version-name <myNetworkFunctionDefinitionVersionName> \
92+
--version-state Active | Deprecated
14993
```
15094

15195
## Update Network Service Design Version (NSDV) version state
152-
153-
Use the following API to update the state of a Network Service Design Version (NSDV).
154-
155-
### HTTP Method: POST URL
156-
157-
```http
158-
https://management.azure.com/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.HybridNetwork/publishers/{publisherName}/networkservicedesigngroups/{nsdName}/networkservicedesignversions/{nsdVersion}/updateState?api-version=2023-09-01
159-
```
160-
161-
### URI parameters
162-
163-
The following table describes the parameters used with the preceding URL.
164-
165-
|Name |Description |
166-
|---------|---------|
167-
|subscriptionId | The subscription ID.
168-
|resourceGroupName | The name of the resource group. |
169-
|publisherName | The name of the publisher. |
170-
|nsdName | The name of the network service design.
171-
|nsdVersion | The network service design version. |
172-
|api-version | The API version to use for this operation. |
173-
174-
175-
### Request body
176-
177-
```json
178-
{
179-
"versionState": "Active | Deprecated"
180-
}
181-
```
182-
### Submit post
183-
184-
Submit the POST using `az rest` in the Azure CLI.
185-
186-
```azurecli
187-
az rest --method post --uri {nsdvresourceId}/updateState?api-version=2023-09-01 --body "{\"versionState\": \"Active\"}"
188-
```
189-
Where *{nsdvresourceId}* is the full resource ID of the Network Service Design
190-
191-
Then issue the get command to check that the versionState change is complete.
96+
Use the following Azure CLI command to change the state of a Network Service Design Version resource.
19297

19398
```azurecli
194-
az rest --method get --uri {nsdvresourceId}?api-version=2023-09-01
99+
az aosm publisher network-service-design version update-state \
100+
--resource-group <myResourceGroup> \
101+
--publisher-name <myPublisherName> \
102+
--group-name <myNetworkServiceDesignGroupName> \
103+
--version-name <myNetworkServiceDesignVersionName> \
104+
--version-state Active | Deprecated
195105
```

includes/container-apps-get-fully-qualified-domain-name.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ az containerapp show \
2222
# [PowerShell](#tab/powershell)
2323

2424
```powershell
25-
(Get-AzContainerApp -Name <CONTAINER_APP_NAME> -ResourceGroupName <RESOURCE_GROUP_NAME>).IngressFqdn
25+
(Get-AzContainerApp -Name <CONTAINER_APP_NAME> -ResourceGroupName <RESOURCE_GROUP_NAME>).Configuration.IngressFqdn
2626
```
2727

2828
---

0 commit comments

Comments
 (0)