Skip to content

Commit b05f828

Browse files
authored
docs: edit air gapped docs to clean up envoy proxy customizations (#6577)
* docs: edit ar gap docs to clean up envoy proxy customizations Fixes: #6570 Signed-off-by: Arko Dasgupta <[email protected]>
1 parent 954c858 commit b05f828

File tree

2 files changed

+106
-68
lines changed

2 files changed

+106
-68
lines changed
Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
---
2+
title: 'Deploy Envoy Gateway in Air-Gapped Environments'
3+
---
4+
5+
Deploying the Envoy Gateway in an air-gapped environment using a Helm chart
6+
requires careful configuration of the `values.yaml` file as well as adjustments
7+
when deploying a Gateway resource.
8+
9+
You will need to specify custom image repositories for the following components
10+
in the Helm chart. This can be done on a global level or image level.
11+
12+
- Gateway
13+
- Ratelimit
14+
15+
## Gateway – `values.yaml` Configuration
16+
17+
Example done in image level:
18+
19+
```yaml
20+
deployment:
21+
envoyGateway:
22+
image:
23+
repository: custom-cr.internal.io/envoyproxy/gateway
24+
tag: v1.4.1
25+
```
26+
27+
It's also possible to define the registry on a global level:
28+
29+
```yaml
30+
# Global settings
31+
global:
32+
# If set, these take highest precedence and change both envoyGateway and ratelimit's container registry and pull secrets.
33+
# -- Global override for image registry
34+
imageRegistry: 'custom-cr.internal.io'
35+
```
36+
37+
## Ratelimit - `values.yaml` Configuration
38+
39+
Example done on global level:
40+
41+
```yaml
42+
global:
43+
images:
44+
ratelimit:
45+
image: custom-cr.internal.io/envoyproxy/ratelimit:master
46+
```
47+
48+
Furthermore for private registries you might need to define imagePullSecrets.
49+
50+
On global level:
51+
52+
```yaml
53+
global:
54+
imagePullSecrets:
55+
- my-private-registry-secret
56+
```
57+
58+
or per image
59+
60+
```yaml
61+
global:
62+
images:
63+
ratelimit:
64+
pullSecrets:
65+
- name: my-private-registry-secret
66+
```
67+
68+
## Gateway Requires a Custom EnvoyProxy Reference
69+
70+
Either the Gateway or GatewayClass must reference a custom EnvoyProxy resource
71+
that explicitly specifies the location of the distroless Envoy container image.
72+
Without this, the image will be pulled implicitly from Docker Hub.
73+
74+
For air-gapped deployments, you must configure the EnvoyProxy to use your internal container registry:
75+
76+
```yaml
77+
apiVersion: gateway.envoyproxy.io/v1alpha1
78+
kind: EnvoyProxy
79+
metadata:
80+
name: custom-envoy-proxy
81+
namespace: default
82+
spec:
83+
provider:
84+
type: Kubernetes
85+
kubernetes:
86+
envoyDeployment:
87+
container:
88+
image: custom-cr.internal.io/envoyproxy/envoy:distroless-v1.34.1
89+
```
90+
91+
For comprehensive EnvoyProxy configuration options including deployment settings, resource limits, annotations, and other customizations, see [Customize EnvoyProxy](customize-envoyproxy).
92+
93+
## Default LoadBalancer Service Type
94+
95+
By default, Envoy uses a Service of type `LoadBalancer`. In air-gapped environments,
96+
you may need to configure service annotations or change the service type depending
97+
on your Kubernetes environment and network restrictions.
98+
99+
For detailed service configuration options including annotations, service types, and other networking customizations, see [Customize EnvoyProxy](customize-envoyproxy).

site/content/en/v1.4/tasks/operations/airgap-deployment.md

Lines changed: 7 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,8 @@ Either the Gateway or GatewayClass must reference a custom EnvoyProxy resource
7171
that explicitly specifies the location of the distroless Envoy container image.
7272
Without this, the image will be pulled implicitly from Docker Hub.
7373

74+
For air-gapped deployments, you must configure the EnvoyProxy to use your internal container registry:
75+
7476
```yaml
7577
apiVersion: gateway.envoyproxy.io/v1alpha1
7678
kind: EnvoyProxy
@@ -86,75 +88,12 @@ spec:
8688
image: custom-cr.internal.io/envoyproxy/envoy:distroless-v1.34.1
8789
```
8890

89-
Then, reference the `custom-envoy-proxy` in your Gateway manifest
90-
91-
```yaml
92-
apiVersion: gateway.networking.k8s.io/v1
93-
kind: Gateway
94-
metadata:
95-
name: envoy-gateway
96-
namespace: default
97-
annotations:
98-
cert-manager.io/cluster-issuer: cluster-wide-ca-issuer
99-
cert-manager.io/duration: 8760h
100-
cert-manager.io/renew-before: 360h
101-
cert-manager.io/usages: server auth, client auth
102-
spec:
103-
gatewayClassName: envoy-gateway-class
104-
infrastructure:
105-
parametersRef:
106-
group: gateway.envoyproxy.io
107-
kind: EnvoyProxy
108-
name: custom-envoy-proxy
109-
listeners:
110-
- hostname: example.com
111-
name: https
112-
port: 443
113-
protocol: HTTPS
114-
tls:
115-
certificateRefs:
116-
- name: example-tls
117-
mode: Terminate
118-
```
119-
120-
or reference it in your GatewayClass, so that each new Gateway uses the
121-
EnvoyProxy automatically:
122-
123-
```yaml
124-
apiVersion: gateway.networking.k8s.io/v1
125-
kind: GatewayClass
126-
metadata:
127-
name: envoy-gateway-class
128-
spec:
129-
controllerName: gateway.envoyproxy.io/gatewayclass-controller
130-
parametersRef:
131-
group: gateway.envoyproxy.io
132-
kind: EnvoyProxy
133-
name: custom-envoy-proxy
134-
namespace: default
135-
```
91+
For comprehensive EnvoyProxy configuration options including deployment settings, resource limits, annotations, and other customizations, see [Customize EnvoyProxy](customize-envoyproxy).
13692

13793
## Default LoadBalancer Service Type
13894

139-
By default, Envoy uses a Service of type `LoadBalancer`. Depending on your
140-
Kubernetes environment, you might need to add custom annotations. For example,
141-
when deploying in Azure, you can configure the service as follows:
95+
By default, Envoy uses a Service of type `LoadBalancer`. In air-gapped environments,
96+
you may need to configure service annotations or change the service type depending
97+
on your Kubernetes environment and network restrictions.
14298

143-
```yaml
144-
apiVersion: gateway.envoyproxy.io/v1alpha1
145-
kind: EnvoyProxy
146-
metadata:
147-
name: custom-envoy-proxy
148-
namespace: default
149-
spec:
150-
provider:
151-
type: Kubernetes
152-
kubernetes:
153-
envoyService:
154-
type: LoadBalancer
155-
annotations:
156-
service.beta.kubernetes.io/azure-load-balancer-internal: 'true'
157-
envoyDeployment:
158-
container:
159-
image: custom-cr.internal.io/envoyproxy/envoy:distroless-v1.34.1
160-
```
99+
For detailed service configuration options including annotations, service types, and other networking customizations, see [Customize EnvoyProxy](customize-envoyproxy).

0 commit comments

Comments
 (0)