Skip to content

Commit 3e8730f

Browse files
authored
feat: set full URI for the envoy-gateway service using name and namespace (#4533)
* feat: set full URI for the envoy-gateway service using name and namespace Signed-off-by: Rajat Vig <[email protected]> * Use the correct namespace and dnsdomain from Gateway config Signed-off-by: Rajat Vig <[email protected]> * Use constant from config Signed-off-by: Rajat Vig <[email protected]> --------- Signed-off-by: Rajat Vig <[email protected]>
1 parent 6f5ae8e commit 3e8730f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+65
-54
lines changed

internal/infrastructure/kubernetes/infra.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,9 @@ type Infra struct {
5050
// Namespace is the Namespace used for managed infra.
5151
Namespace string
5252

53+
// DNSDomain is the dns domain used by k8s services. Defaults to "cluster.local".
54+
DNSDomain string
55+
5356
// EnvoyGateway is the configuration used to startup Envoy Gateway.
5457
EnvoyGateway *egv1a1.EnvoyGateway
5558

@@ -61,6 +64,7 @@ type Infra struct {
6164
func NewInfra(cli client.Client, cfg *config.Server) *Infra {
6265
return &Infra{
6366
Namespace: cfg.Namespace,
67+
DNSDomain: cfg.DNSDomain,
6468
EnvoyGateway: cfg.EnvoyGateway,
6569
Client: New(cli),
6670
}

internal/infrastructure/kubernetes/proxy/resource.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,8 @@ func expectedProxyContainers(infra *ir.ProxyInfra,
8383
containerSpec *egv1a1.KubernetesContainerSpec,
8484
shutdownConfig *egv1a1.ShutdownConfig,
8585
shutdownManager *egv1a1.ShutdownManager,
86+
namespace string,
87+
dnsDomain string,
8688
) ([]corev1.Container, error) {
8789
// Define slice to hold container ports
8890
var ports []corev1.ContainerPort
@@ -132,6 +134,7 @@ func expectedProxyContainers(infra *ir.ProxyInfra,
132134
TrustedCA: filepath.Join("/sds", common.SdsCAFilename),
133135
},
134136
MaxHeapSizeBytes: maxHeapSizeBytes,
137+
XdsServerHost: ptr.To(fmt.Sprintf("%s.%s.svc.%s", config.EnvoyGatewayServiceName, namespace, dnsDomain)),
135138
}
136139

137140
args, err := common.BuildProxyArgs(infra, shutdownConfig, bootstrapConfigOptions, fmt.Sprintf("$(%s)", envoyPodEnvVar))

internal/infrastructure/kubernetes/proxy/resource_provider.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,16 @@ type ResourceRender struct {
4545
// Namespace is the Namespace used for managed infra.
4646
Namespace string
4747

48+
// DNSDomain is the dns domain used by k8s services. Defaults to "cluster.local".
49+
DNSDomain string
50+
4851
ShutdownManager *egv1a1.ShutdownManager
4952
}
5053

51-
func NewResourceRender(ns string, infra *ir.ProxyInfra, gateway *egv1a1.EnvoyGateway) *ResourceRender {
54+
func NewResourceRender(ns string, dnsDomain string, infra *ir.ProxyInfra, gateway *egv1a1.EnvoyGateway) *ResourceRender {
5255
return &ResourceRender{
5356
Namespace: ns,
57+
DNSDomain: dnsDomain,
5458
infra: infra,
5559
ShutdownManager: gateway.GetEnvoyGatewayProvider().GetEnvoyGatewayKubeProvider().ShutdownManager,
5660
}
@@ -258,7 +262,7 @@ func (r *ResourceRender) Deployment() (*appsv1.Deployment, error) {
258262

259263
proxyConfig := r.infra.GetProxyConfig()
260264
// Get expected bootstrap configurations rendered ProxyContainers
261-
containers, err := expectedProxyContainers(r.infra, deploymentConfig.Container, proxyConfig.Spec.Shutdown, r.ShutdownManager)
265+
containers, err := expectedProxyContainers(r.infra, deploymentConfig.Container, proxyConfig.Spec.Shutdown, r.ShutdownManager, r.Namespace, r.DNSDomain)
262266
if err != nil {
263267
return nil, err
264268
}
@@ -360,7 +364,7 @@ func (r *ResourceRender) DaemonSet() (*appsv1.DaemonSet, error) {
360364
proxyConfig := r.infra.GetProxyConfig()
361365

362366
// Get expected bootstrap configurations rendered ProxyContainers
363-
containers, err := expectedProxyContainers(r.infra, daemonSetConfig.Container, proxyConfig.Spec.Shutdown, r.ShutdownManager)
367+
containers, err := expectedProxyContainers(r.infra, daemonSetConfig.Container, proxyConfig.Spec.Shutdown, r.ShutdownManager, r.Namespace, r.DNSDomain)
364368
if err != nil {
365369
return nil, err
366370
}

internal/infrastructure/kubernetes/proxy/resource_provider_test.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -564,7 +564,7 @@ func TestDeployment(t *testing.T) {
564564
tc.infra.Proxy.Config.Spec.ExtraArgs = tc.extraArgs
565565
}
566566

567-
r := NewResourceRender(cfg.Namespace, tc.infra.GetProxyInfra(), cfg.EnvoyGateway)
567+
r := NewResourceRender(cfg.Namespace, cfg.DNSDomain, tc.infra.GetProxyInfra(), cfg.EnvoyGateway)
568568
dp, err := r.Deployment()
569569
require.NoError(t, err)
570570

@@ -993,7 +993,7 @@ func TestDaemonSet(t *testing.T) {
993993
tc.infra.Proxy.Config.Spec.ExtraArgs = tc.extraArgs
994994
}
995995

996-
r := NewResourceRender(cfg.Namespace, tc.infra.GetProxyInfra(), cfg.EnvoyGateway)
996+
r := NewResourceRender(cfg.Namespace, cfg.DNSDomain, tc.infra.GetProxyInfra(), cfg.EnvoyGateway)
997997
ds, err := r.DaemonSet()
998998
require.NoError(t, err)
999999

@@ -1143,7 +1143,7 @@ func TestService(t *testing.T) {
11431143
provider.EnvoyService = tc.service
11441144
}
11451145

1146-
r := NewResourceRender(cfg.Namespace, tc.infra.GetProxyInfra(), cfg.EnvoyGateway)
1146+
r := NewResourceRender(cfg.Namespace, cfg.DNSDomain, tc.infra.GetProxyInfra(), cfg.EnvoyGateway)
11471147
svc, err := r.Service()
11481148
require.NoError(t, err)
11491149

@@ -1186,7 +1186,7 @@ func TestConfigMap(t *testing.T) {
11861186

11871187
for _, tc := range cases {
11881188
t.Run(tc.name, func(t *testing.T) {
1189-
r := NewResourceRender(cfg.Namespace, tc.infra.GetProxyInfra(), cfg.EnvoyGateway)
1189+
r := NewResourceRender(cfg.Namespace, cfg.DNSDomain, tc.infra.GetProxyInfra(), cfg.EnvoyGateway)
11901190
cm, err := r.ConfigMap()
11911191
require.NoError(t, err)
11921192

@@ -1229,7 +1229,7 @@ func TestServiceAccount(t *testing.T) {
12291229

12301230
for _, tc := range cases {
12311231
t.Run(tc.name, func(t *testing.T) {
1232-
r := NewResourceRender(cfg.Namespace, tc.infra.GetProxyInfra(), cfg.EnvoyGateway)
1232+
r := NewResourceRender(cfg.Namespace, cfg.DNSDomain, tc.infra.GetProxyInfra(), cfg.EnvoyGateway)
12331233
sa, err := r.ServiceAccount()
12341234
require.NoError(t, err)
12351235

@@ -1285,7 +1285,7 @@ func TestPDB(t *testing.T) {
12851285

12861286
provider.GetEnvoyProxyKubeProvider()
12871287

1288-
r := NewResourceRender(cfg.Namespace, tc.infra.GetProxyInfra(), cfg.EnvoyGateway)
1288+
r := NewResourceRender(cfg.Namespace, cfg.DNSDomain, tc.infra.GetProxyInfra(), cfg.EnvoyGateway)
12891289

12901290
pdb, err := r.PodDisruptionBudget()
12911291
require.NoError(t, err)
@@ -1371,7 +1371,7 @@ func TestHorizontalPodAutoscaler(t *testing.T) {
13711371
}
13721372
provider.GetEnvoyProxyKubeProvider()
13731373

1374-
r := NewResourceRender(cfg.Namespace, tc.infra.GetProxyInfra(), cfg.EnvoyGateway)
1374+
r := NewResourceRender(cfg.Namespace, cfg.DNSDomain, tc.infra.GetProxyInfra(), cfg.EnvoyGateway)
13751375
hpa, err := r.HorizontalPodAutoscaler()
13761376
require.NoError(t, err)
13771377

internal/infrastructure/kubernetes/proxy/testdata/daemonsets/custom.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ spec:
131131
endpoint:
132132
address:
133133
socket_address:
134-
address: envoy-gateway
134+
address: envoy-gateway.envoy-gateway-system.svc.cluster.local
135135
port_value: 18000
136136
typed_extension_protocol_options:
137137
envoy.extensions.upstreams.http.v3.HttpProtocolOptions:

internal/infrastructure/kubernetes/proxy/testdata/daemonsets/default-env.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ spec:
130130
endpoint:
131131
address:
132132
socket_address:
133-
address: envoy-gateway
133+
address: envoy-gateway.envoy-gateway-system.svc.cluster.local
134134
port_value: 18000
135135
typed_extension_protocol_options:
136136
envoy.extensions.upstreams.http.v3.HttpProtocolOptions:

internal/infrastructure/kubernetes/proxy/testdata/daemonsets/default.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ spec:
130130
endpoint:
131131
address:
132132
socket_address:
133-
address: envoy-gateway
133+
address: envoy-gateway.envoy-gateway-system.svc.cluster.local
134134
port_value: 18000
135135
typed_extension_protocol_options:
136136
envoy.extensions.upstreams.http.v3.HttpProtocolOptions:

internal/infrastructure/kubernetes/proxy/testdata/daemonsets/disable-prometheus.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ spec:
104104
endpoint:
105105
address:
106106
socket_address:
107-
address: envoy-gateway
107+
address: envoy-gateway.envoy-gateway-system.svc.cluster.local
108108
port_value: 18000
109109
typed_extension_protocol_options:
110110
envoy.extensions.upstreams.http.v3.HttpProtocolOptions:

internal/infrastructure/kubernetes/proxy/testdata/daemonsets/extension-env.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ spec:
130130
endpoint:
131131
address:
132132
socket_address:
133-
address: envoy-gateway
133+
address: envoy-gateway.envoy-gateway-system.svc.cluster.local
134134
port_value: 18000
135135
typed_extension_protocol_options:
136136
envoy.extensions.upstreams.http.v3.HttpProtocolOptions:

internal/infrastructure/kubernetes/proxy/testdata/daemonsets/override-labels-and-annotations.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ spec:
139139
endpoint:
140140
address:
141141
socket_address:
142-
address: envoy-gateway
142+
address: envoy-gateway.envoy-gateway-system.svc.cluster.local
143143
port_value: 18000
144144
typed_extension_protocol_options:
145145
envoy.extensions.upstreams.http.v3.HttpProtocolOptions:

0 commit comments

Comments
 (0)