### Apply Quickstart Resources Source: https://github.com/envoyproxy/gateway/blob/main/site/content/en/v1.8/install/install-helm.md Applies the GatewayClass, Gateway, HTTPRoute, and an example application using a provided YAML file. This is useful for initial testing and setup. ```shell kubectl apply -f https://github.com/envoyproxy/gateway/releases/download/{{< yaml-version >}}/quickstart.yaml -n default ``` -------------------------------- ### Install HTTP Routing Example Resources Source: https://github.com/envoyproxy/gateway/blob/main/site/content/en/v1.8/tasks/traffic/http-routing.md Apply the provided YAML manifest to install the necessary GatewayClass, Gateway, Deployments, Services, and HTTPRoute resources for the HTTP routing example. ```shell kubectl apply -f https://raw.githubusercontent.com/envoyproxy/gateway/latest/examples/kubernetes/http-routing.yaml ``` -------------------------------- ### Install GRPC Routing Example Source: https://github.com/envoyproxy/gateway/blob/main/site/content/en/v1.8/tasks/traffic/grpc-routing.md Apply the Kubernetes manifest to install the necessary resources for the gRPC routing example, including a GatewayClass, Gateway, Deployment, Service, and GRPCRoute. ```shell kubectl apply -f https://raw.githubusercontent.com/envoyproxy/gateway/latest/examples/kubernetes/grpc-routing.yaml ``` -------------------------------- ### Install Application and Export Service Source: https://github.com/envoyproxy/gateway/blob/main/site/content/en/v1.8/tasks/traffic/multicluster-service.md Apply the example application manifest to cluster2 and then use subctl to export the 'backend' service, making it available across the multicluster environment. ```shell kubectl apply -f https://raw.githubusercontent.com/envoyproxy/gateway/latest/examples/kubernetes/application.yaml --kubeconfig output/kubeconfigs/kind-config-cluster2 subctl export service backend --namespace default --kubeconfig output/kubeconfigs/kind-config-cluster2 ``` -------------------------------- ### Install CoreDNS Example Backend Source: https://github.com/envoyproxy/gateway/blob/main/site/content/en/v1.8/tasks/traffic/udp-routing.md Installs the CoreDNS service in the Kubernetes cluster to serve as the UDP backend. This is a prerequisite for UDP routing. ```shell kubectl apply -f https://raw.githubusercontent.com/envoyproxy/gateway/latest/examples/kubernetes/udp-routing-example-backend.yaml ``` -------------------------------- ### Customize Envoy Gateway installation with Helm values Source: https://github.com/envoyproxy/gateway/blob/main/site/content/en/v1.8/install/install-flux.md This example demonstrates how to customize the Envoy Gateway installation by specifying resource limits for the Envoy Gateway deployment within the HelmRelease configuration. ```yaml apiVersion: helm.toolkit.fluxcd.io/v2 kind: HelmRelease metadata: name: envoy-gateway namespace: envoy- বাহ্যিক-system spec: interval: 5m releaseName: eg chartRef: kind: OCIRepository name: gateway-helm upgrade: strategy: name: RetryOnFailure retryInterval: 5m values: deployment: envoyGateway: resources: limits: cpu: 700m memory: 256Mi ``` -------------------------------- ### Delete Quickstart Resources Source: https://github.com/envoyproxy/gateway/blob/main/site/content/en/v1.8/tasks/quickstart.md Deletes the quickstart resources, including the GatewayClass, Gateway, HTTPRoute, and example app. The `--ignore-not-found=true` flag prevents errors if resources are already deleted. ```shell kubectl delete -f https://github.com/envoyproxy/gateway/releases/download/{{< yaml-version >}}/quickstart.yaml --ignore-not-found=true ``` -------------------------------- ### Download and Install egctl using Installer Script Source: https://github.com/envoyproxy/gateway/blob/main/site/content/en/v1.8/install/install-egctl.md Fetch and execute a script to automatically download and install the latest egctl release. The script is documented for review before execution. ```shell curl -fsSL -o get-egctl.sh https://gateway.envoyproxy.io/get-egctl.sh chmod +x get-egctl.sh bash get-egctl.sh --help ``` ```shell curl -fsSL https://gateway.envoyproxy.io/get-egctl.sh | VERSION={{< yaml-version >}} bash ``` -------------------------------- ### Example Enterprise Support Entry Source: https://github.com/envoyproxy/gateway/blob/main/site/content/en/community/ENTERPRISE_SUPPORT.md This is an example of how to format your company's details in the `enterprise_support.yaml` file. Ensure all fields are correctly populated. ```yaml - name: Your Company Name logo: /logos/your-company-logo.png url: https://your-company.com description: Brief description of your Envoy Gateway support services, training programs, or consulting offerings. ``` -------------------------------- ### Start Envoy Gateway Server (Bash) Source: https://github.com/envoyproxy/gateway/blob/main/examples/otel-headers/README.md Launches the Envoy Gateway server in standalone mode using a specified configuration file. This command is essential for running the example without Kubernetes. ```bash envoy-gateway server --config-path envoy-gateway.yaml ``` -------------------------------- ### Apply Example Manifests with kubectl Source: https://github.com/envoyproxy/gateway/blob/main/site/content/en/v1.8/boilerplates/prerequisites.md Applies the GatewayClass, Gateway, HTTPRoute, and example application manifests using kubectl. Ensure you are in the correct release directory. ```shell kubectl apply -f https://github.com/envoyproxy/gateway/releases/download/{{< yaml-version >}}/quickstart.yaml -n default ``` -------------------------------- ### Development Commands for Benchmark Dashboard (Bash) Source: https://github.com/envoyproxy/gateway/blob/main/site/tools/benchmark-dashboard/README.md Provides commands for local development of the benchmark dashboard, including installing dependencies, starting a development server, and building for production. ```bash # Install dependencies npm install # Start development server npm run dev # Build for production npm run build ``` -------------------------------- ### Build Example Backend Image Source: https://github.com/envoyproxy/gateway/blob/main/site/content/en/v1.8/tasks/traffic/backend-utilization.md Builds the Docker image for the example backend that emits ORCA metrics. This image is not published to a public registry and must be built locally. ```shell make -C examples/backend-utilization docker-buildx ``` -------------------------------- ### Deploy Gateway Namespace Mode Example Source: https://github.com/envoyproxy/gateway/blob/main/site/content/en/v1.8/tasks/operations/gateway-namespace-mode.md Shell command to apply the example Kubernetes resources for Gateway Namespace Mode, deploying Gateways and HTTPRoutes in specified namespaces. ```shell kubectl apply -f https://raw.githubusercontent.com/envoyproxy/gateway/{{< yaml-version >}}/examples/kubernetes/gateway-namespace-mode.yaml ``` -------------------------------- ### Start Local HTTP Server Source: https://github.com/envoyproxy/gateway/blob/main/site/content/en/v1.8/tasks/operations/standalone-deployment-mode.md Starts a simple Python HTTP server on port 3000 for testing. ```shell python3 -m http.server 3000 ``` -------------------------------- ### Basic GRPCRoute Example Source: https://github.com/envoyproxy/gateway/blob/main/site/content/en/v1.8/api/gateway_api/grpcroute.md This example demonstrates a basic GRPCRoute that sends all traffic to a single service. It shows how to define the GRPCRoute kind and attach it to a Gateway. ```yaml apiVersion: gateway.networking.k8s.io/v1 kind: GRPCRoute metadata: name: grpcroute-example spec: parentRefs: - name: acme-lb ``` -------------------------------- ### Start Envoy Gateway Source: https://github.com/envoyproxy/gateway/blob/main/site/content/en/community/design/config-api.md Starts the Envoy Gateway executable. If no configuration file exists, it will use default parameters. ```shell $ ./envoy-gateway ``` -------------------------------- ### Install and Build Benchmark Dashboard (Bash) Source: https://github.com/envoyproxy/gateway/blob/main/site/tools/benchmark-dashboard/README.md Installs project dependencies and builds the benchmark dashboard for production using npm. This is a prerequisite for deploying the dashboard. ```bash npm install npm run build ``` -------------------------------- ### Install Extension Server Helm Chart Source: https://github.com/envoyproxy/gateway/blob/main/site/content/en/v1.8/tasks/extensibility/extension-server.md Installs the extension server using a Helm chart. Ensure to update 'values.yaml' with your custom image details if using a different repository or tag. ```shell helm install -n envoy-gateway-system extension-server ./examples/extension-server/charts/extension-server ``` -------------------------------- ### Example Ingress Configuration Source: https://github.com/envoyproxy/gateway/blob/main/site/content/en/v1.8/install/migrating-to-envoy.md An example of a Kubernetes Ingress resource with NGINX-specific annotations, which can be converted to Envoy Gateway resources. ```yaml apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: example-ingress namespace: default annotations: nginx.ingress.kubernetes.io/rewrite-target: / spec: rules: - host: example.com http: paths: - path: /foo pathType: Prefix backend: service: name: foo-service port: number: 80 ``` -------------------------------- ### HTTPRoute and ReferenceGrant Example Source: https://github.com/envoyproxy/gateway/blob/main/site/content/en/v1.8/api/gateway_api/referencegrant.md This example demonstrates how an HTTPRoute in one namespace can reference a Service in another namespace. A ReferenceGrant resource in the target namespace explicitly permits this cross-namespace reference. ```yaml apiVersion: gateway.networking.k8s.io/v1 kind: HTTPRoute metadata: name: foo namespace: foo spec: rules: - matches: - path: /bar backendRefs: - name: bar namespace: bar --- apiVersion: gateway.networking.k8s.io/v1 kind: ReferenceGrant metadata: name: bar namespace: bar spec: from: - group: gateway.networking.k8s.io kind: HTTPRoute namespace: foo to: - group: "" kind: Service ``` -------------------------------- ### Apply Example Backend Utilization Manifest Source: https://github.com/envoyproxy/gateway/blob/main/site/content/en/v1.8/tasks/traffic/backend-utilization.md Applies the Kubernetes manifest for the backend utilization example, which includes a Service, two Deployments (low and high utilization), and an HTTPRoute. ```shell kubectl apply -f https://raw.githubusercontent.com/envoyproxy/gateway/latest/examples/kubernetes/backend-utilization.yaml -n default ``` -------------------------------- ### Benchmark Gateway with Fortio Source: https://github.com/envoyproxy/gateway/blob/main/site/content/en/v1.8/tasks/security/private-key-provider.md Use fortio to load test the gateway. Ensure you have followed the TLS termination setup instructions prior to benchmarking. ```shell fortio load -c 64 -k -qps 0 -t 30s -keepalive=false https://www.example.com:${NODE_PORT} ``` -------------------------------- ### Install Submariner CLI (subctl) Source: https://github.com/envoyproxy/gateway/blob/main/site/content/en/v1.8/tasks/traffic/multicluster-service.md Download and install the Submariner command-line tool (subctl) for managing the multicluster setup. ```shell curl -Ls https://get.submariner.io | VERSION=v0.14.6 bash ``` -------------------------------- ### Apply Example Manifests Source: https://github.com/envoyproxy/gateway/blob/main/site/content/en/v1.8/tasks/traffic/zone-aware-routing.md Apply the example manifests to create two Deployments and an HTTPRoute for testing zone-aware routing. One deployment uses affinity for EnvoyProxy Pods, and the other uses anti-affinity. ```shell kubectl apply -f https://raw.githubusercontent.com/envoyproxy/gateway/latest/examples/kubernetes/zone-aware-routing.yaml -n default ``` -------------------------------- ### Serve Documentation Locally Source: https://github.com/envoyproxy/gateway/blob/main/site/content/en/community/DOCS.md Builds and previews the documentation site locally. This command is useful for testing changes before releasing. ```shell make docs-serve ``` -------------------------------- ### Load Example Image to Kind Cluster Source: https://github.com/envoyproxy/gateway/blob/main/site/content/en/v1.8/tasks/traffic/backend-utilization.md Loads the locally built example backend image into a kind Kubernetes cluster. For other Kubernetes servers, push the image to a registry and update the manifest. ```shell kind load docker-image --name envoy-gateway envoyproxy/gateway-backend-utilization:latest ``` -------------------------------- ### Set GATEWAY_HOST Environment Variable Source: https://github.com/envoyproxy/gateway/blob/main/site/content/en/v1.8/tasks/extensibility/wasm.md Ensure the GATEWAY_HOST environment variable is set before sending test requests. Refer to the Quickstart guide if it is not set. ```shell echo $GATEWAY_HOST ``` -------------------------------- ### Start otel-tui with Auth Token Validation (Bash) Source: https://github.com/envoyproxy/gateway/blob/main/examples/otel-headers/README.md Starts the otel-tui application, which acts as an OpenTelemetry collector, and configures it to validate a specific authentication token. This is used to demonstrate how Envoy Gateway sends custom headers to the collector. ```bash AUTH_TOKEN=fake otel-tui ``` -------------------------------- ### HTTPRoute Status Output Source: https://github.com/envoyproxy/gateway/blob/main/site/content/en/v1.8/troubleshooting/configuration.md Example output from 'kubectl get httproute/backend -o yaml' showing that the HTTPRoute is Accepted but ResolvedRefs is false due to a BackendNotFound reason. ```yaml apiVersion: gateway.networking.k8s.io/v1 kind: HTTPRoute metadata: name: backend namespace: default spec: hostnames: - www.example.com parentRefs: - group: gateway.networking.k8s.io kind: Gateway name: eg rules: - backendRefs: - group: "" kind: Service name: backend-does-not-exist port: 3000 weight: 1 matches: - path: type: PathPrefix value: "/" status: parents: - conditions: - lastTransitionTime: "2025-03-08T02:07:53Z" message: Route is accepted observedGeneration: 3 reason: Accepted status: "True" type: Accepted - lastTransitionTime: "2025-03-08T02:07:53Z" message: Service default/backend-does-not-exist not found observedGeneration: 3 reason: BackendNotFound status: "False" type: ResolvedRefs controllerName: gateway.envoyproxy.io/gatewayclass-controller parentRef: group: gateway.networking.k8s.io kind: Gateway name: eg ``` -------------------------------- ### Push Example Image to Docker Registry Source: https://github.com/envoyproxy/gateway/blob/main/site/content/en/v1.8/tasks/traffic/backend-utilization.md Tags and pushes the locally built example backend image to a specified Docker repository. Ensure the image name in the Kubernetes manifest is updated accordingly. ```shell docker tag envoyproxy/gateway-backend-utilization:latest $YOUR_DOCKER_REPO/gateway-backend-utilization:latest docker push $YOUR_DOCKER_REPO/gateway-backend-utilization:latest ``` -------------------------------- ### Build Documentation Source: https://github.com/envoyproxy/gateway/blob/main/site/content/en/community/DOCS.md Generates the static site files for the documentation under the `site/public` directory. ```bash make docs ``` -------------------------------- ### Get Gateway API CRD Version and Channel Source: https://github.com/envoyproxy/gateway/blob/main/charts/gateway-crds-helm/README.md Use this command to check the installed Gateway API version and channel from the CRD annotations. This is useful for compatibility checks. ```shell kubectl get crd gateways.gateway.networking.k8s.io \ -o go-template='version={{ index .metadata.annotations "gateway.networking.k8.io/bundle-version" }} channel={{ index .metadata.annotations "gateway.networking.k8.io/channel"}}{{ "\n" }}' ``` -------------------------------- ### Check HTTPRoute Status Source: https://github.com/envoyproxy/gateway/blob/main/site/content/en/v1.8/tasks/traffic/http-routing.md Inspect the status of the installed HTTPRoute resources to ensure they are accepted by the Gateway and correctly configured with parent references to the example Gateway. This confirms that routing rules are active. ```shell kubectl get httproutes --selector=example=http-routing -o yaml ``` -------------------------------- ### Configure Host File for Local Testing Source: https://github.com/envoyproxy/gateway/blob/main/site/content/en/v1.8/tasks/security/oidc.md Add this entry to your /etc/hosts file to map www.example.com to localhost for testing purposes. ```shell ... 127.0.0.1 www.example.com ``` -------------------------------- ### Install TCPRoute Resources Source: https://github.com/envoyproxy/gateway/blob/main/site/content/en/v1.8/tasks/traffic/tcp-routing.md Apply TCPRoute resources to direct traffic to different backend services. This example shows two TCPRoutes, each referencing a different sectionName on the parent Gateway, which corresponds to distinct listener ports. ```shell cat <}} -n envoy-gateway-system --create-namespace ``` -------------------------------- ### Configure BackendUtilization Load Balancing (Stdin) Source: https://github.com/envoyproxy/gateway/blob/main/site/content/en/v1.8/tasks/traffic/backend-utilization.md Applies a BackendTrafficPolicy to configure BackendUtilization load balancing. This example applies the policy from standard input and shortens the blackoutPeriod and weightUpdatePeriod for quicker demonstration. ```shell cat <}}/install.yaml ``` -------------------------------- ### HTTPRoute Basic Example Source: https://github.com/envoyproxy/gateway/blob/main/site/content/en/v1.8/api/gateway_api/httproute.md An example of an HTTPRoute that sends all traffic to one Service. ```APIDOC ## HTTPRoute Basic Example ### Description This example demonstrates a basic HTTPRoute configuration that directs all incoming traffic to a single backend service. ### Resource Definition ```yaml apiVersion: gateway.networking.k8s.io/v1 kind: HTTPRoute metadata: name: httproute-basic-example spec: parentRefs: - name: example-gateway hostnames: - "example.com" rules: - backendRefs: - name: example-service port: 8080 ``` ``` -------------------------------- ### Benchmark Dashboard Configuration Example (HTML) Source: https://github.com/envoyproxy/gateway/blob/main/site/tools/benchmark-dashboard/README.md Demonstrates how to configure the benchmark dashboard by setting various data attributes on the main div element. This allows customization of theme, version, displayed tabs, and header visibility. ```html
``` -------------------------------- ### Apply Merged Gateways Example Resources Source: https://github.com/envoyproxy/gateway/blob/main/site/content/en/v1.8/tasks/operations/deployment-mode.md Applies the Kubernetes resources defined in the `merged-gateways.yaml` file to your cluster to deploy the merged Gateways configuration. ```shell kubectl apply -f https://raw.githubusercontent.com/envoyproxy/gateway/latest/examples/kubernetes/merged-gateways.yaml ``` -------------------------------- ### Install Envoy Gateway Helm Chart Skipping CRDs Source: https://github.com/envoyproxy/gateway/blob/main/site/content/en/v1.8/install/install-helm.md Installs the main Envoy Gateway Helm chart after CRDs have been installed separately. The `--skip-crds` flag prevents re-applying the CRDs. ```shell helm install eg oci://docker.io/envoyproxy/gateway-helm \ --version {{< helm-version >}} \ -n envoy-gateway-system \ --create-namespace \ --skip-crds ``` -------------------------------- ### Configure BackendUtilization Load Balancing (File) Source: https://github.com/envoyproxy/gateway/blob/main/site/content/en/v1.8/tasks/traffic/backend-utilization.md Provides the YAML configuration for a BackendTrafficPolicy to set up BackendUtilization load balancing. This example shows the policy definition that can be applied from a file. Shorter blackoutPeriod and weightUpdatePeriod are used for immediate effect. ```yaml --- apiVersion: gateway.envoyproxy.io/v1alpha1 kind: BackendTrafficPolicy metadata: name: backend-utilization namespace: default spec: targetRefs: - group: gateway.networking.k8s.io kind: HTTPRoute name: backend-utilization loadBalancer: type: BackendUtilization backendUtilization: blackoutPeriod: 1s # shorten so the demo shifts traffic quickly weightUpdatePeriod: 500ms ``` -------------------------------- ### Install Envoy Gateway Helm Chart from DockerHub Source: https://github.com/envoyproxy/gateway/blob/main/charts/gateway-helm/README.md Installs the Envoy Gateway Helm chart from DockerHub, including Gateway API and Envoy Gateway CRDs. Ensure Helm is installed and configured. ```shell helm install eg oci://docker.io/envoyproxy/gateway-helm --version v0.0.0-latest -n envoy-gateway-system --create-namespace ``` -------------------------------- ### Install CRDs Separately with Helm Source: https://github.com/envoyproxy/gateway/blob/main/site/content/en/v1.8/install/install-helm.md Installs only the Gateway API and Envoy Gateway CRDs using `helm template` and `kubectl apply`. This provides fine-grained control over CRD installation, especially for large CRDs. ```shell helm template eg oci://docker.io/envoyproxy/gateway-crds-helm \ --version {{< helm-version >}} \ --set crds.gatewayAPI.enabled=true \ --set crds.gatewayAPI.channel=standard \ --set crds.envoyGateway.enabled=true \ | kubectl apply --server-side -f - ``` -------------------------------- ### Install Envoy Gateway with Backend API Enabled Source: https://github.com/envoyproxy/gateway/blob/main/site/content/en/v1.8/install/install-helm.md Install Envoy Gateway with the Backend API enabled using Helm values. This can be done directly via the command line or by using a values.yaml file. ```shell helm install eg oci://docker.io/envoyproxy/gateway-helm --version {{< helm-version >}} -n envoy-gateway-system --create-namespace --set config.envoyGateway.extensionApis.enableBackend=true ``` ```yaml config: envoyGateway: extensionApis: enableBackend: true ``` ```shell helm install eg oci://docker.io/envoyproxy/gateway-helm --version {{< helm-version >}} -n envoy-gateway-system --create-namespace -f values.yaml ``` -------------------------------- ### Verify Backend Deployments Source: https://github.com/envoyproxy/gateway/blob/main/site/content/en/v1.8/tasks/traffic/backend-utilization.md Verifies that the backend utilization example Deployments (low and high utilization) are ready in the default namespace. ```shell kubectl get deployment/backend-utilization-low deployment/backend-utilization-high -n default ``` -------------------------------- ### Example mTLS Response Snippet Source: https://github.com/envoyproxy/gateway/blob/main/site/content/en/v1.8/tasks/security/backend-mtls.md An example of the response from a successful mTLS handshake, showing the 'peerCertificates' attribute. ```json < HTTP/1.1 200 OK [...] "tls": { "version": "TLSv1.2", "serverName": "www.example.com", "negotiatedProtocol": "http/1.1", "cipherSuite": "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256" "peerCertificates": ["-----BEGIN CERTIFICATE-----\n[...]-----END CERTIFICATE-----\n"] } ``` -------------------------------- ### Install Envoy Gateway using Helm and values.yaml Source: https://github.com/envoyproxy/gateway/blob/main/site/content/en/v1.8/install/install-helm.md Install Envoy Gateway using the Helm CLI, specifying the chart OCI location, version, namespace, and a custom values.yaml file for configuration. ```shell helm install eg oci://docker.io/envoyproxy/gateway-helm --version {{< helm-version >}} -n envoy-gateway-system --create-namespace -f values.yaml ``` -------------------------------- ### Unauthenticated Request Response Example Source: https://github.com/envoyproxy/gateway/blob/main/site/content/en/v1.8/tasks/security/basic-auth.md Example output showing a 401 Unauthorized response, indicating that authentication is required. ```shell * Connected to 127.0.0.1 (127.0.0.1) port 443 ... * Server certificate: * subject: CN=www.example.com; O=example organization * issuer: O=example Inc.; CN=example.com > GET / HTTP/2 > Host: www.example.com > User-Agent: curl/8.6.0 > Accept: */* ... < HTTP/2 401 < content-length: 58 < content-type: text/plain < date: Wed, 06 Mar 2024 15:59:36 GMT * Connection #0 to host 127.0.0.1 left intact User authentication failed. Missing username and password. ``` -------------------------------- ### Add Host Entry for Local Testing Source: https://github.com/envoyproxy/gateway/blob/main/site/content/en/v1.8/tasks/security/private-key-provider.md Adds an entry to the /etc/hosts file to map 'www.example.com' to '127.0.0.1'. This is useful for local testing scenarios where you want to direct traffic to your local machine. ```shell echo "127.0.0.1 www.example.com" >> /etc/hosts ``` -------------------------------- ### Query Example App with HTTP3 Source: https://github.com/envoyproxy/gateway/blob/main/site/content/en/v1.8/tasks/traffic/http3.md Tests the HTTP3 configuration by sending a request to the example app through the Gateway. Requires a custom curl binary with HTTP3 support and the Gateway's external IP. ```shell docker run --net=host --rm ghcr.io/macbre/curl-http3 curl -kv --http3 -HHost:www.example.com --resolve "www.example.com:443:${GATEWAY_HOST}" https://www.example.com/get ``` -------------------------------- ### Curl Example App Source: https://github.com/envoyproxy/gateway/blob/main/site/content/en/v1.8/tasks/traffic/client-traffic-policy.md This command sends requests to an example application through the Envoy proxy to test the applied ClientTrafficPolicy settings. ```shell curl --verbose --header "Host: www.example.com" http://$GATEWAY_HOST/get --next --header "Host: www.example.com" http://$GATEWAY_HOST/get ``` -------------------------------- ### Example HTTPRoute Resource Source: https://github.com/envoyproxy/gateway/blob/main/site/content/en/v1.8/tasks/observability/gateway-api-metadata.md This YAML defines an example HTTPRoute resource with annotations, name, and namespace, which will be translated into XDS resources. ```yaml kind: HTTPRoute apiVersion: gateway.networking.k8s.io/v1 metadata: annotations: gateway.envoyproxy.io/foo: bar name: myroute namespace: myns spec: rules: - name: myrule matches: - path: type: PathPrefix value: /mypath ``` -------------------------------- ### Install Envoy Gateway Helm Chart with Skipped CRDs Source: https://github.com/envoyproxy/gateway/blob/main/charts/gateway-helm/README.md Installs the Envoy Gateway Helm chart without CRDs, using the `--skip-crds` flag. This requires that the necessary CRDs are already installed in the cluster. The safe upgrade policy is also disabled. ```shell helm install eg --create-namespace oci://docker.io/envoyproxy/gateway-helm --version v0.0.0-latest -n envoy-gateway-system --skip-crds --set crds.gatewayAPI.safeUpgradePolicy.enabled=false ``` -------------------------------- ### Configure Listener Context Example Source: https://github.com/envoyproxy/gateway/blob/main/site/content/en/v1.8/tasks/extensibility/extension-server.md Apply a ListenerContextExample custom resource to add a username and password combination for authentication. ```yaml apiVersion: example.extensions.io/v1alpha1 kind: ListenerContextExample metadata: name: listeneruser spec: targetRefs: - kind: Gateway name: eg group: gateway.networking.k8s.io username: user password: p@ssw0rd ```