Skip to content

Commit e39a049

Browse files
author
Jill Grant
authored
Merge pull request #286886 from JackStromberg/patch-255
mcr updates
2 parents 01a9964 + c581606 commit e39a049

7 files changed

+54
-51
lines changed

articles/application-gateway/ingress-controller-add-health-probes.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,17 @@ services: application-gateway
55
author: greg-lindsay
66
ms.service: azure-application-gateway
77
ms.topic: how-to
8-
ms.date: 06/10/2022
8+
ms.date: 9/17/2024
99
ms.author: greglin
1010
---
1111

1212
# Add Health Probes to your service
13-
By default, Ingress controller will provision an HTTP GET probe for the exposed pods.
13+
By default, Ingress controller provisions an HTTP GET probe for the exposed pods.
1414
The probe properties can be customized by adding a [Readiness or Liveness Probe](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/) to your `deployment`/`pod` spec.
1515

16+
> [!TIP]
17+
> Also see [What is Application Gateway for Containers](for-containers/overview.md).
18+
1619
## With `readinessProbe` or `livenessProbe`
1720
```yaml
1821
apiVersion: networking.k8s.io/v1

articles/application-gateway/ingress-controller-annotations.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,17 @@ services: application-gateway
55
author: greg-lindsay
66
ms.service: azure-application-gateway
77
ms.topic: conceptual
8-
ms.date: 5/13/2024
8+
ms.date: 9/17/2024
99
ms.author: greglin
1010
---
1111

1212
# Annotations for Application Gateway Ingress Controller
1313

1414
You can annotate the Kubernetes ingress resource with arbitrary key/value pairs. Application Gateway Ingress Controller (AGIC) relies on annotations to program Azure Application Gateway features that aren't configurable via the ingress YAML. Ingress annotations are applied to all HTTP settings, backend pools, and listeners derived from an ingress resource.
1515

16+
> [!TIP]
17+
> Also see [What is Application Gateway for Containers](for-containers/overview.md).
18+
1619
## List of supported annotations
1720

1821
For AGIC to observe an ingress resource, the resource *must be annotated* with `kubernetes.io/ingress.class: azure/application-gateway`.
@@ -284,7 +287,7 @@ spec:
284287

285288
## Request Timeout
286289

287-
Use the following annotation to specify the request timeout in seconds. After the timeout, Application Gateway fails a request if the response is not received.
290+
Use the following annotation to specify the request timeout in seconds. After the timeout, Application Gateway fails a request if the response isn't received.
288291

289292
### Usage
290293

articles/application-gateway/ingress-controller-autoscale-pods.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ author: greg-lindsay
66
ms.service: azure-application-gateway
77
ms.custom:
88
ms.topic: how-to
9-
ms.date: 10/26/2023
9+
ms.date: 9/17/2024
1010
ms.author: greglin
1111
---
1212

@@ -25,6 +25,9 @@ Use following two components:
2525
> The Azure Kubernetes Metrics Adapter is no longer maintained. Kubernetes Event-driven Autoscaling (KEDA) is an alternative.<br>
2626
> Also see [Application Gateway for Containers](for-containers/overview.md).
2727
28+
> [!TIP]
29+
> Also see [What is Application Gateway for Containers](for-containers/overview.md).
30+
2831
## Setting up Azure Kubernetes Metric Adapter
2932

3033
1. First, create a Microsoft Entra service principal and assign it `Monitoring Reader` access over Application Gateway's resource group.

articles/application-gateway/ingress-controller-cookie-affinity.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,16 @@ services: application-gateway
55
author: greg-lindsay
66
ms.service: azure-application-gateway
77
ms.topic: how-to
8-
ms.date: 11/4/2019
8+
ms.date: 9/17/2024
99
ms.author: greglin
1010
---
1111

1212
# Enable Cookie based affinity with an Application Gateway
1313
As outlined in the [Azure Application Gateway Documentation](./application-gateway-components.md#http-settings), Application Gateway supports cookie based affinity, which means it can direct subsequent traffic from a user session to the same server for processing.
1414

15+
> [!TIP]
16+
> Also see [What is Application Gateway for Containers](for-containers/overview.md).
17+
1518
## Example
1619
```yaml
1720
apiVersion: networking.k8s.io/v1

articles/application-gateway/ingress-controller-disable-addon.md

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,22 @@ services: application-gateway
55
author: greg-lindsay
66
ms.service: azure-application-gateway
77
ms.topic: how-to
8-
ms.date: 06/10/2020
8+
ms.date: 9/17/2024
99
ms.author: greglin
1010
---
1111

1212
# Disable and re-enable AGIC add-on for your AKS cluster
13-
Application Gateway Ingress Controller (AGIC) deployed as an AKS add-on allows you to enable and disable the add-on with one line in Azure CLI. The life cycle of the Application Gateway will differ when you disable the AGIC add-on, depending on if the Application Gateway was created by the AGIC add-on, or if it was deployed separately from the AGIC add-on. You can run the same command to re-enable the AGIC add-on if you ever disable it, or to enable the AGIC add-on using an existing AKS cluster and Application Gateway.
13+
Application Gateway Ingress Controller (AGIC) deployed as an AKS add-on allows you to enable and disable the add-on with one line in Azure CLI. The life cycle of the Application Gateway differs when you disable the AGIC add-on, depending on if the Application Gateway was created by the AGIC add-on, or if it was deployed separately from the AGIC add-on. You can run the same command to re-enable the AGIC add-on if you ever disable it, or to enable the AGIC add-on using an existing AKS cluster and Application Gateway.
14+
15+
> [!TIP]
16+
> Also see [What is Application Gateway for Containers](for-containers/overview.md).
1417
1518
## Disabling AGIC add-on with associated Application Gateway
16-
If the AGIC add-on automatically deployed the Application Gateway for you when you first set everything up, then disabling the AGIC add-on will by default delete the Application Gateway based on a couple criteria. There are two criteria that the AGIC add-on looks for to determine if it should delete the associated Application Gateway when you disable it:
19+
If the AGIC add-on automatically deployed the Application Gateway for you when you first set up everything, then disabling the AGIC add-on will by default delete the Application Gateway based on a couple criteria. There are two criteria that the AGIC add-on looks for to determine if it should delete the associated Application Gateway when you disable it:
1720
- Is the Application Gateway that the AGIC add-on is associated with deployed in the MC_* node resource group?
1821
- Does the Application Gateway that the AGIC add-on is associated with have the tag "created-by: ingress-appgw"? The tag is used by AGIC to determine if the Application Gateway was deployed by the add-on or not.
1922

20-
If both criteria are met, then the AGIC add-on will delete the Application Gateway it created when the add-on is disabled; however, it won't delete the public IP or the subnet in which the Application Gateway was deployed with/in. If the first criteria is not met, then it won't matter if the Application Gateway has the "created-by: ingress-appgw" tag - disabling the add-on won't delete the Application Gateway. Likewise, if the second criteria is not met, i.e. the Application Gateway lacks that tag, then disabling the add-on won't delete the Application Gateway in the MC_* node resource group.
23+
If both criteria are met, then the AGIC add-on will delete the Application Gateway it created when the add-on is disabled; however, it won't delete the public IP or the subnet in which the Application Gateway was deployed with/in. If the first criteria isn't met, then it won't matter if the Application Gateway has the "created-by: ingress-appgw" tag - disabling the add-on won't delete the Application Gateway. Likewise, if the second criteria isn't met, that is. The Application Gateway lacks that tag, then disabling the add-on won't delete the Application Gateway in the MC_* node resource group.
2124

2225
> [!TIP]
2326
> If you don't want the Application Gateway to be deleted when disabling the add-on, but it meets both criteria then remove the "created-by: ingress-appgw" tag to prevent the add-on from deleting your Application Gateway.
@@ -36,4 +39,4 @@ az aks enable-addons -n <AKS-cluster-name> -g <AKS-cluster-resource-group> -a in
3639
```
3740

3841
## Next steps
39-
For more details on how to enable the AGIC add-on using an existing Application Gateway and AKS cluster, see [AGIC add-on brownfield deployment](tutorial-ingress-controller-add-on-existing.md).
42+
For more information on how to enable the AGIC add-on using an existing Application Gateway and AKS cluster, see [AGIC add-on brownfield deployment](tutorial-ingress-controller-add-on-existing.md).

articles/application-gateway/ingress-controller-install-existing.md

Lines changed: 19 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ author: greg-lindsay
66
ms.service: azure-application-gateway
77
ms.custom: devx-track-arm-template, devx-track-azurecli
88
ms.topic: how-to
9-
ms.date: 02/07/2024
9+
ms.date: 9/17/2024
1010
ms.author: greglin
1111
---
1212

@@ -51,23 +51,17 @@ Gateway should that become necessary
5151
[Helm](/azure/aks/kubernetes-helm) is a package manager for Kubernetes, used to install the `application-gateway-kubernetes-ingress` package.
5252

5353
> [!NOTE]
54-
> If you use [Cloud Shell](https://shell.azure.com/), you don't need to install Helm. Azure Cloud Shell comes with Helm version 3. Skip the first step and just add the AGIC Helm repository.
54+
> If you use [Cloud Shell](https://shell.azure.com/), you don't need to install Helm. Azure Cloud Shell comes with Helm version 3.
5555
56-
1. Install [Helm](/azure/aks/kubernetes-helm) and run the following to add `application-gateway-kubernetes-ingress` helm package:
56+
Install [Helm](/azure/aks/kubernetes-helm) and run the following:
5757

58-
- *Kubernetes RBAC enabled* AKS cluster
58+
- *Kubernetes RBAC enabled* AKS cluster
5959

60-
```bash
61-
kubectl create serviceaccount --namespace kube-system tiller-sa
62-
kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller-sa
63-
helm init --tiller-namespace kube-system --service-account tiller-sa
64-
```
65-
66-
2. Add the AGIC Helm repository:
67-
```bash
68-
helm repo add application-gateway-kubernetes-ingress https://appgwingress.blob.core.windows.net/ingress-azure-helm-package/
69-
helm repo update
70-
```
60+
```bash
61+
kubectl create serviceaccount --namespace kube-system tiller-sa
62+
kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller-sa
63+
helm init --tiller-namespace kube-system --service-account tiller-sa
64+
```
7165

7266
## Azure Resource Manager Authentication
7367

@@ -206,12 +200,11 @@ kubectl apply -f $file -n $namespace
206200

207201
## Install Ingress Controller as a Helm Chart
208202

209-
In the first few steps, we install Helm's Tiller on your Kubernetes cluster. Use [Cloud Shell](https://shell.azure.com/) to install the AGIC Helm package:
203+
In the first few steps, we installed Helm's Tiller on your Kubernetes cluster. Use [Cloud Shell](https://shell.azure.com/) to install the AGIC Helm package:
210204

211-
1. Add the `application-gateway-kubernetes-ingress` helm repo and perform a helm update
205+
1. Perform a helm update
212206

213207
```bash
214-
helm repo add application-gateway-kubernetes-ingress https://appgwingress.blob.core.windows.net/ingress-azure-helm-package/
215208
helm repo update
216209
```
217210

@@ -280,17 +273,18 @@ In the first few steps, we install Helm's Tiller on your Kubernetes cluster. Use
280273
> [!NOTE]
281274
> The `<identity-client-id>` is a property of the Microsoft Entra Workload ID you setup in the previous section. You can retrieve this information by running the following command: `az identity show -g <resourcegroup> -n <identity-name>`, where `<resourcegroup>` is the resource group hosting the infrastructure resources related to the AKS cluster, Application Gateway and managed identity.
282275

283-
1. Install Helm chart `application-gateway-kubernetes-ingress` with the `helm-config.yaml` configuration from the previous step
276+
1. Install Helm chart with the `helm-config.yaml` configuration from the previous step
284277

285278
```bash
286-
helm install -f <helm-config.yaml> application-gateway-kubernetes-ingress/ingress-azure
279+
helm install agic-controller oci://mcr.microsoft.com/azure-application-gateway/charts/ingress-azure --version 1.7.5 -f helm-config.yaml
287280
```
288281

289282
Alternatively you can combine the `helm-config.yaml` and the Helm command in one step:
290283

291284
```bash
292-
helm install ./helm/ingress-azure \
293-
--name ingress-azure \
285+
helm install oci://mcr.microsoft.com/azure-application-gateway/charts/ingress-azure \
286+
--name agic-controller \
287+
--version 1.7.5 \
294288
--namespace default \
295289
--debug \
296290
--set appgw.name=applicationgatewayABCD \
@@ -379,7 +373,8 @@ Apply the Helm changes:
379373
helm upgrade \
380374
--recreate-pods \
381375
-f helm-config.yaml \
382-
ingress-azure application-gateway-kubernetes-ingress/ingress-azure
376+
agic-controller
377+
oci://mcr.microsoft.com/azure-application-gateway/charts/ingress-azure
383378
```
384379
385380
As a result, your AKS cluster has a new instance of `AzureIngressProhibitedTarget` called `prohibit-all-targets`:
@@ -418,8 +413,7 @@ Since Helm with `appgw.shared=true` and the default `prohibit-all-targets` block
418413
419414
Let's assume that we already have a working AKS cluster, Application Gateway, and configured AGIC in our cluster. We have an Ingress for
420415
`prod.contoso.com` and are successfully serving traffic for it from the cluster. We want to add `staging.contoso.com` to our
421-
existing Application Gateway, but need to host it on a [VM](https://azure.microsoft.com/services/virtual-machines/). We
422-
are going to reuse the existing Application Gateway and manually configure a listener and backend pools for
416+
existing Application Gateway, but need to host it on a [VM](https://azure.microsoft.com/services/virtual-machines/). We're going to reuse the existing Application Gateway and manually configure a listener and backend pools for
423417
`staging.contoso.com`. But manually tweaking Application Gateway config (using
424418
[portal](https://portal.azure.com), [ARM APIs](/rest/api/resources/) or
425419
[Terraform](https://www.terraform.io/)) would conflict with AGIC's assumptions of full ownership. Shortly after we apply

articles/application-gateway/ingress-controller-install-new.md

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@ author: greg-lindsay
66
ms.service: azure-application-gateway
77
ms.custom:
88
ms.topic: how-to
9-
ms.date: 07/28/2023
9+
ms.date: 9/17/2024
1010
ms.author: greglin
1111
---
1212

1313
# How to Install an Application Gateway Ingress Controller (AGIC) Using a New Application Gateway
1414

1515
The instructions below assume Application Gateway Ingress Controller (AGIC) will be
16-
installed in an environment with no pre-existing components.
16+
installed in an environment with no preexisting components.
1717

1818
> [!TIP]
1919
> Also see [What is Application Gateway for Containers](for-containers/overview.md).
@@ -39,7 +39,7 @@ choose to use another environment, ensure the following command-line tools are i
3939

4040
## Create an Identity
4141

42-
Follow the steps below to create a Microsoft Entra [service principal object](../active-directory/develop/app-objects-and-service-principals.md#service-principal-object). Record the `appId`, `password`, and `objectId` values - these values will be used in the following steps.
42+
Follow the steps below to create a Microsoft Entra [service principal object](../active-directory/develop/app-objects-and-service-principals.md#service-principal-object). Record the `appId`, `password`, and `objectId` values - these values are used in the following steps.
4343

4444
1. Create AD service principal ([Read more about Azure RBAC](../role-based-access-control/overview.md)):
4545
```azurecli
@@ -56,7 +56,7 @@ Follow the steps below to create a Microsoft Entra [service principal object](..
5656
```
5757
The output of this command is `objectId`, which will be used in the Azure Resource Manager template below
5858
59-
1. Create the parameter file that will be used in the Azure Resource Manager template deployment later.
59+
1. Create the parameter file that is used in the Azure Resource Manager template deployment later.
6060
```bash
6161
cat <<EOF > parameters.json
6262
{
@@ -70,7 +70,7 @@ Follow the steps below to create a Microsoft Entra [service principal object](..
7070
To deploy an **Kubernetes RBAC** enabled cluster, set the `aksEnableRBAC` field to `true`
7171
7272
## Deploy Components
73-
This step will add the following components to your subscription:
73+
This step adds the following components to your subscription:
7474
7575
- [Azure Kubernetes Service](/azure/aks/intro-kubernetes)
7676
- [Application Gateway](./overview.md) v2
@@ -112,7 +112,7 @@ With the instructions in the previous section, we created and configured a new A
112112
113113
### Set up Kubernetes Credentials
114114
For the following steps, we need setup [kubectl](https://kubectl.docs.kubernetes.io/) command,
115-
which we'll use to connect to our new Kubernetes cluster. [Cloud Shell](https://shell.azure.com/) has `kubectl` already installed. We'll use `az` CLI to obtain credentials for Kubernetes.
115+
which we use to connect to our new Kubernetes cluster. [Cloud Shell](https://shell.azure.com/) has `kubectl` already installed. We'll use `az` CLI to obtain credentials for Kubernetes.
116116
117117
Get credentials for your newly deployed AKS ([read more](/azure/aks/manage-azure-rbac#use-azure-rbac-for-kubernetes-authorization-with-kubectl)):
118118
@@ -150,12 +150,12 @@ To install Microsoft Entra Pod Identity to your cluster:
150150
```
151151

152152
### Install Helm
153-
[Helm](/azure/aks/kubernetes-helm) is a package manager for Kubernetes. We'll use it to install the `application-gateway-kubernetes-ingress` package.
153+
[Helm](/azure/aks/kubernetes-helm) is a package manager for Kubernetes. We use it to install the `application-gateway-kubernetes-ingress` package.
154154

155155
> [!NOTE]
156156
> If you use [Cloud Shell](https://shell.azure.com/), you don't need to install Helm. Azure Cloud Shell comes with Helm version 3. Skip the first step and just add the AGIC Helm repository.
157157
158-
1. Install [Helm](/azure/aks/kubernetes-helm) and run the following to add `application-gateway-kubernetes-ingress` helm package:
158+
1. Install [Helm](/azure/aks/kubernetes-helm) and run the following:
159159
160160
- *Kubernetes RBAC enabled* AKS cluster
161161
@@ -171,12 +171,6 @@ To install Microsoft Entra Pod Identity to your cluster:
171171
helm init
172172
```
173173
174-
2. Add the AGIC Helm repository:
175-
```bash
176-
helm repo add application-gateway-kubernetes-ingress https://appgwingress.blob.core.windows.net/ingress-azure-helm-package/
177-
helm repo update
178-
```
179-
180174
### Install Ingress Controller Helm Chart
181175
182176
1. Use the `deployment-outputs.json` file created above and create the following variables.
@@ -285,7 +279,7 @@ To install Microsoft Entra Pod Identity to your cluster:
285279
1. Install the Application Gateway ingress controller package:
286280
287281
```bash
288-
helm install -f helm-config.yaml --generate-name application-gateway-kubernetes-ingress/ingress-azure
282+
helm install agic-controller oci://mcr.microsoft.com/azure-application-gateway/charts/ingress-azure --version 1.7.5 -f helm-config.yaml
289283
```
290284
291285
## Install a Sample App

0 commit comments

Comments
 (0)