Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,10 @@ MOVE_AGA_CRDS = mkdir -p config/crd/aga && mv config/crd/bases/aga.k8s.aws_* con
# Copy combined Gateway API CRDs from bases directory to helm directory
COPY_GATEWAY_CRDS_TO_HELM = cp config/crd/gateway/gateway-crds.yaml helm/aws-load-balancer-controller/crds/gateway-crds.yaml

# Copy upstream Gateway API CRDs to helm files directory
COPY_STANDARD_GATEWAY_CRDS_TO_HELM = cp config/crd/gateway/upstream/standard-install.yaml helm/aws-load-balancer-controller/files/standard-gatewayapi-crds.yaml
COPY_EXPERIMENTAL_GATEWAY_CRDS_TO_HELM = cp config/crd/gateway/upstream/experimental-install.yaml helm/aws-load-balancer-controller/files/experimental-gatewayapi-crds.yaml


# Get the currently used golang install path (in GOPATH/bin, unless GOBIN is set)
ifeq (,$(shell go env GOBIN))
Expand Down Expand Up @@ -90,6 +94,8 @@ crds: manifests
echo '---' > config/crd/gateway/gateway-crds.yaml
$(KUSTOMIZE) build config/crd/gateway >> config/crd/gateway/gateway-crds.yaml
$(COPY_GATEWAY_CRDS_TO_HELM)
$(COPY_STANDARD_GATEWAY_CRDS_TO_HELM)
$(COPY_EXPERIMENTAL_GATEWAY_CRDS_TO_HELM)
$(KUSTOMIZE) build config/crd/aga > config/crd/aga/aga-crds.yaml
echo '---' > config/crd/aga/aga-crds.yaml
$(KUSTOMIZE) build config/crd/aga >> config/crd/aga/aga-crds.yaml
Expand Down
22,084 changes: 22,084 additions & 0 deletions config/crd/gateway/upstream/experimental-install.yaml

Large diffs are not rendered by default.

17,527 changes: 17,527 additions & 0 deletions config/crd/gateway/upstream/standard-install.yaml

Large diffs are not rendered by default.

32 changes: 28 additions & 4 deletions docs/guide/gateway/gateway.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,34 @@ The LBC is built for Gateway API version v1.5.0.
* LBC >= v2.13.0
* For `ip` target type:
* Pods have native AWS VPC networking configured. For more information, see the [Amazon VPC CNI plugin](https://github.com/aws/amazon-vpc-cni-k8s#readme) documentation.
* Installation of Gateway API CRDs
* Standard Gateway API CRDs: `kubectl apply --server-side=true -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.5.0/standard-install.yaml` [REQUIRED]
* Experimental Gateway API CRDs: `kubectl apply --server-side=true -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.5.0/experimental-install.yaml` [OPTIONAL: Used for L4 Routes]
* Installation of LBC Gateway API specific CRDs: `kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/refs/heads/main/config/crd/gateway/gateway-crds.yaml`
* Installation of Gateway API CRDs — choose one of:
* **`helm template` (recommended):** render the chart locally and pipe into `kubectl apply --server-side`. This installs CRDs without creating a Helm release secret, bypassing the 1 MB limit that causes `helm install`/`helm upgrade` to fail when CRDs are enabled.

Standard channel only (required for L7 — HTTPRoute, GRPCRoute):
```bash
helm template aws-load-balancer-controller eks/aws-load-balancer-controller \
--set crds.gatewayAPI.standard.enabled=true \
--include-crds \
| kubectl apply --server-side -f -
```

Standard + experimental (also enables L4 — TCPRoute, UDPRoute, TLSRoute):
```bash
helm template aws-load-balancer-controller eks/aws-load-balancer-controller \
--set crds.gatewayAPI.standard.enabled=true \
--set crds.gatewayAPI.experimental.enabled=true \
--include-crds \
| kubectl apply --server-side -f -
```

* **Manual:** apply directly from the upstream release:
* Standard: `kubectl apply --server-side -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.5.0/standard-install.yaml` [REQUIRED]
* Experimental: `kubectl apply --server-side -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.5.0/experimental-install.yaml` [OPTIONAL: Used for L4 Routes]

* Installation of LBC Gateway API specific CRDs:
```bash
kubectl apply --server-side -f https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/refs/heads/main/config/crd/gateway/gateway-crds.yaml
```


## Upgrading Gateway API CRDs
Expand Down
22,084 changes: 22,084 additions & 0 deletions helm/aws-load-balancer-controller/files/experimental-gatewayapi-crds.yaml

Large diffs are not rendered by default.

17,527 changes: 17,527 additions & 0 deletions helm/aws-load-balancer-controller/files/standard-gatewayapi-crds.yaml

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{{- if .Values.crds.gatewayAPI.standard.enabled }}
{{ .Files.Get "files/standard-gatewayapi-crds.yaml" }}
{{- end }}
{{- if .Values.crds.gatewayAPI.experimental.enabled }}
{{ .Files.Get "files/experimental-gatewayapi-crds.yaml" }}
{{- end }}
11 changes: 11 additions & 0 deletions helm/aws-load-balancer-controller/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -515,3 +515,14 @@ loadBalancerClass:

# creator will disable helm default labels, so you can only add yours
# creator: "me"

# crds controls installation of Kubernetes standard Gateway API CRDs.
# These are opt-in (default: false) to avoid conflicting with existing installations.
# standard: used for L7 (HTTP/TLS) routing
# experimental: used for L4 (TCP/UDP) routing and experimental features
crds:
gatewayAPI:
standard:
enabled: false
experimental:
enabled: false