# AUTHORED ONLY — not run from this repo.
# Validate with: kubectl --dry-run=client, kubeval, yamllint.
# Apply to your own EKS cluster per the aws-load-balancer-controller primer
# instructions.
---
id: networking-aws-lbc-gateway-api
name: "AWS LBC Gateway API"
description: >-
  AWS Load Balancer Controller provisions an ALB from a Gateway + HTTPRoute
  pair via Gateway API (LBC v2.8+); smoke-script waits for Gateway IP and
  curls over HTTP.
labels:
  customer: any
  profile: eks
  chart-test-swarm/target-k8s-version: eks-1.30
cluster:
  provider: eks
  k8s_version: "1.30"
  preinstall:
    - kind: raw_manifest
      path: chart-test/fixtures/networking/gateway-api-crds.yaml
    - kind: helm
      repo:
        name: eks
        url: https://aws.github.io/eks-charts
      chart: aws-load-balancer-controller
      version: "1.8.0"
      release: aws-load-balancer-controller
      namespace: kube-system
      values:
        clusterName: "<REPLACE_WITH_CLUSTER_NAME>"
        serviceAccount:
          create: true
          name: aws-load-balancer-controller
          annotations:
            eks.amazonaws.com/role-arn: "<REPLACE_WITH_LBC_ROLE_ARN>"
      wait: pods-ready
      wait_timeout: 5m
product:
  chart: ./chart
  release: sample
  namespace: sample
  set:
    gatewayRoute.enabled: "true"
    gatewayRoute.parentGateway.name: "chart-test-swarm-aws-gateway"
    gatewayRoute.parentGateway.namespace: "<REPLACE_WITH_NAMESPACE>"
asserts:
  - type: helm-status-deployed
    release: sample
    namespace: sample
  - type: pods-ready
    namespace: sample
  - type: smoke-script
    path: chart-test/assertions/cloud-native/eks/gateway-api-lbc.sh
tags: [cloud-native]
mechanisms: ['cloud:eks', 'addon:aws-lbc', 'addon:gateway-api']
category: networking/ingress-lb
tier: authored-only
integration: aws-load-balancer-controller
