# AUTHORED ONLY — not run from this repo.
# Validate with: kubectl --dry-run=client, kubeval, yamllint.
# Apply to your own AKS cluster per the AKS primer instructions.
---
id: cloud-native-aks-agic
name: "AKS Application Gateway Ingress Controller (AGIC)"
description: "AGIC provisions Azure Application Gateway rules from a Kubernetes Ingress; smoke-script curls the Application Gateway frontend IP."
labels:
  customer: any
  profile: aks
  chart-test-swarm/target-k8s-version: aks-1.30
cluster:
  provider: aks
  k8s_version: "1.30"
  preinstall:
    - kind: helm
      repo:
        name: application-gateway-kubernetes-ingress
        url: oci://mcr.microsoft.com/azure-application-gateway/charts/ingress-azure
      chart: ingress-azure
      version: "1.8.1"
      release: ingress-azure
      namespace: kube-system
      values:
        appgw:
          name: "<REPLACE_WITH_APPGW_NAME>"
          resourceGroup: "<REPLACE_WITH_APPGW_RG>"
          subscriptionId: "<REPLACE_WITH_SUBSCRIPTION_ID>"
          usePrivateIP: "false"
        armAuth:
          type: workloadIdentity
          identityClientID: "<REPLACE_WITH_AGIC_CLIENT_ID>"
        kubernetes:
          watchNamespace: "<REPLACE_WITH_NAMESPACE>"
      wait: pods-ready
      wait_timeout: 5m
    - kind: raw_manifest
      path: chart-test/fixtures/cloud-native/aks/agic-ingress.yaml
      namespace: sample
product:
  chart: ./chart
  release: sample
  namespace: sample
  set:
    aks.agic.enabled: "true"
    aks.agic.appgwName: "<REPLACE_WITH_APPGW_NAME>"
    aks.agic.appgwResourceGroup: "<REPLACE_WITH_APPGW_RG>"
    aks.agic.appgwSubnetCidr: "<REPLACE_WITH_APPGW_SUBNET>"
    ingress.enabled: "true"
asserts:
  - type: helm-status-deployed
    release: sample
    namespace: sample
  - type: pods-ready
    namespace: sample
  - type: smoke-script
    path: chart-test/assertions/cloud-native/aks/agic.sh
tags: [cloud-native]
mechanisms: ['cloud:aks', 'addon:agic']
category: cloud-native
tier: authored-only
integration: aks-agic
