This document describe the example GatewayClassBlueprint definitions
that are provided as part of the bifrost-gateway-controller. Sample
GatewayClass definitions are also provided that reference the
blueprints.
This blueprint builds a data-path that consists of the following Kubernetes resources:
- A 'child'
Gatewayusing the istioGatewayClass. This creates an Istio ingress gateway. - An
Ingressresource, which serves to 'simulate' a load-balancer. TheIngressresource use the ingress-classcontourand forwards traffic to the Istio ingress gateway. - A
Certificateresource (a cert-manager CRD) to allow termination of HTTPS through the ingress.
This definition is provided in the following files:
gatewayclassblueprint-contour-istio-cert.yaml
(with attached TLS certificate).
gatewayclassblueprint-contour-istio.yaml
(without attached TLS certificate) and in
gatewayclassblueprint-contour-istio-values.yaml
(RBAC for bifrost-gateway-controller Helm deployment suited for the contour-istio blueprint).
This blueprint builds a data-path that consists of the following AWS infrastructure:
- Application load balancer (ALB).
- Security group for ALB, together with ingress and egress rules (for both data and healthchecks).
- ALB target group and listener definitions.
This definition also includes the following Kubernetes infrastructure:
- A 'child'
Gatewayusing the istioGatewayClass. This creates an Istio ingress gateway. TargetGroupBinding(an AWS load balancer controller CRD for propagating Kubernetes endpoints for the Istio ingress gateway to the AWS ALB target group. This links the Kubernetes internal and AWS infrastructure.
Note the ALB terminates TLS and forwards traffic un-encrypted to the Istio ingress gateway.
This definition is provided in the following files:
gatewayclassblueprint-aws-alb-crossplane.yamlblueprint for infrastructure implementationgatewayclass-aws-alb-crossplane.yamldefinitions ofGatewayClasses referencing the aboveGatewayClassBlueprint. TwoGatewayClasses are created, one that is intended for internet exposed gateways, and one for non internet exposed gateways.gatewayclassconfig-aws-alb-crossplane-dev-env.yamlexample settings for the twoGatewayClasses defined ingatewayclass-aws-alb-crossplane.yaml, i.e. with different subnet settings for the internet-exposed and non internet-exposed `GatewayClass'es.gatewayclassblueprint-crossplane-aws-alb-values.yamlRBAC for bifrost-gateway-controller Helm deployment suited for theaws-alb-crossplaneblueprint.
This blueprint use AWS Crossplane resources through the Upbound AWS Provider. The following compatibility between this blueprint, Crossplane, Crossplane Upbound AWS provider and Istio versions has been verified:
| Blueprint | AWS Provider | Crossplane | Istio | Status |
| ------------- | ------------- |
| 0.0.18 | v0.28.0 | v1.11.0 | 1.16.1 | ✔️ |
| 0.0.18 | v0.32.1 | v1.11.0 | 1.16.1 | ❌ |
| 0.0.18 | v0.33.0 | v1.11.0 | 1.16.1 | ✔️ |
| 0.0.19 | v0.33.0 | v1.11.0 | 1.16.1 | ✔️ |