Skip to content

Commit a13a272

Browse files
committed
Revert "Add controller namespace to infra"
This reverts commit b2fa2ca. Signed-off-by: Karol Szwaj <[email protected]>
1 parent 92ad344 commit a13a272

Some content is hidden

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

50 files changed

+381
-129
lines changed

internal/infrastructure/kubernetes/infra.go

+7-11
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,6 @@ type Infra struct {
4747
// Namespace is the Namespace used for managed infra.
4848
Namespace string
4949

50-
// ControllerNamespace is the Namespace used for Envoy Gateway controller.
51-
ControllerNamespace string
52-
5350
// DNSDomain is the dns domain used by k8s services. Defaults to "cluster.local".
5451
DNSDomain string
5552

@@ -64,17 +61,16 @@ type Infra struct {
6461

6562
// NewInfra returns a new Infra.
6663
func NewInfra(cli client.Client, cfg *config.Server) *Infra {
67-
var infraNamespace string
64+
var ns string
6865
if !cfg.EnvoyGateway.GatewayNamespaceMode() {
69-
infraNamespace = cfg.ControllerNamespace
66+
ns = cfg.ControllerNamespace
7067
}
7168
return &Infra{
72-
Namespace: infraNamespace,
73-
ControllerNamespace: cfg.ControllerNamespace,
74-
DNSDomain: cfg.DNSDomain,
75-
EnvoyGateway: cfg.EnvoyGateway,
76-
Client: New(cli),
77-
logger: cfg.Logger.WithName(string(egv1a1.LogComponentInfrastructureRunner)),
69+
Namespace: ns,
70+
DNSDomain: cfg.DNSDomain,
71+
EnvoyGateway: cfg.EnvoyGateway,
72+
Client: New(cli),
73+
logger: cfg.Logger.WithName(string(egv1a1.LogComponentInfrastructureRunner)),
7874
}
7975
}
8076

internal/infrastructure/kubernetes/proxy/resource.go

+33-7
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,10 @@ func expectedProxyContainers(infra *ir.ProxyInfra,
108108
}
109109

110110
maxHeapSizeBytes := calculateMaxHeapSizeBytes(containerSpec.Resources)
111+
112+
if gatewayNamespaceMode {
113+
egNamespace = config.DefaultNamespace
114+
}
111115
// Get the default Bootstrap
112116
bootstrapConfigOptions := &bootstrap.RenderBootstrapConfigOptions{
113117
ProxyMetrics: proxyMetrics,
@@ -131,7 +135,7 @@ func expectedProxyContainers(infra *ir.ProxyInfra,
131135
ImagePullPolicy: corev1.PullIfNotPresent,
132136
Command: []string{"envoy"},
133137
Args: args,
134-
Env: expectedContainerEnv(containerSpec, egNamespace),
138+
Env: expectedContainerEnv(containerSpec, gatewayNamespaceMode),
135139
Resources: *containerSpec.Resources,
136140
SecurityContext: expectedEnvoySecurityContext(containerSpec),
137141
Ports: ports,
@@ -193,7 +197,7 @@ func expectedProxyContainers(infra *ir.ProxyInfra,
193197
ImagePullPolicy: corev1.PullIfNotPresent,
194198
Command: []string{"envoy-gateway"},
195199
Args: expectedShutdownManagerArgs(shutdownConfig),
196-
Env: expectedContainerEnv(nil, egNamespace),
200+
Env: expectedContainerEnv(nil, gatewayNamespaceMode),
197201
Resources: *egv1a1.DefaultShutdownManagerContainerResourceRequirements(),
198202
TerminationMessagePolicy: corev1.TerminationMessageReadFile,
199203
TerminationMessagePath: "/dev/termination-log",
@@ -308,7 +312,7 @@ func expectedContainerVolumeMounts(containerSpec *egv1a1.KubernetesContainerSpec
308312
}
309313

310314
// expectedVolumes returns expected proxy deployment volumes.
311-
func expectedVolumes(name string, gatewayNamespacedMode bool, pod *egv1a1.KubernetesPodSpec, controllerNamespace, dnsDomain string) []corev1.Volume {
315+
func expectedVolumes(name string, gatewayNamespacedMode bool, pod *egv1a1.KubernetesPodSpec, dnsDomain string) []corev1.Volume {
312316
var volumes []corev1.Volume
313317
certsVolume := corev1.Volume{
314318
Name: "certs",
@@ -339,7 +343,7 @@ func expectedVolumes(name string, gatewayNamespacedMode bool, pod *egv1a1.Kubern
339343
},
340344
},
341345
}
342-
saAudience := fmt.Sprintf("%s.%s.svc.%s", config.EnvoyGatewayServiceName, controllerNamespace, dnsDomain)
346+
saAudience := fmt.Sprintf("%s.%s.svc.%s", config.EnvoyGatewayServiceName, config.DefaultNamespace, dnsDomain)
343347
saTokenProjectedVolume := corev1.Volume{
344348
Name: "sa-token",
345349
VolumeSource: corev1.VolumeSource{
@@ -409,11 +413,16 @@ func expectedVolumes(name string, gatewayNamespacedMode bool, pod *egv1a1.Kubern
409413
}
410414

411415
// expectedContainerEnv returns expected proxy container envs.
412-
func expectedContainerEnv(containerSpec *egv1a1.KubernetesContainerSpec, controllerNamespace string) []corev1.EnvVar {
416+
func expectedContainerEnv(containerSpec *egv1a1.KubernetesContainerSpec, gatewayNamespaceMode bool) []corev1.EnvVar {
413417
env := []corev1.EnvVar{
414418
{
415-
Name: envoyNsEnvVar,
416-
Value: controllerNamespace,
419+
Name: envoyNsEnvVar,
420+
ValueFrom: &corev1.EnvVarSource{
421+
FieldRef: &corev1.ObjectFieldSelector{
422+
APIVersion: "v1",
423+
FieldPath: "metadata.namespace",
424+
},
425+
},
417426
},
418427
{
419428
Name: envoyZoneEnvVar,
@@ -425,6 +434,23 @@ func expectedContainerEnv(containerSpec *egv1a1.KubernetesContainerSpec, control
425434
},
426435
},
427436
}
437+
if gatewayNamespaceMode {
438+
env = []corev1.EnvVar{
439+
{
440+
Name: envoyNsEnvVar,
441+
Value: config.DefaultNamespace,
442+
},
443+
{
444+
Name: envoyZoneEnvVar,
445+
ValueFrom: &corev1.EnvVarSource{
446+
FieldRef: &corev1.ObjectFieldSelector{
447+
APIVersion: "v1",
448+
FieldPath: fmt.Sprintf("metadata.labels['%s']", corev1.LabelTopologyZone),
449+
},
450+
},
451+
},
452+
}
453+
}
428454

429455
env = append(env, corev1.EnvVar{
430456
Name: envoyPodEnvVar,

internal/infrastructure/kubernetes/proxy/resource_provider.go

+6-10
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,6 @@ type ResourceRender struct {
4949
// Namespace is the Namespace used for managed infra.
5050
Namespace string
5151

52-
// ControllerNamespace is the Namespace used for Envoy Gateway controller.
53-
ControllerNamespace string
54-
5552
// DNSDomain is the dns domain used by k8s services. Defaults to "cluster.local".
5653
DNSDomain string
5754

@@ -60,10 +57,9 @@ type ResourceRender struct {
6057
GatewayNamespaceMode bool
6158
}
6259

63-
func NewResourceRender(infraNamespace, controllerNamespace, dnsDomain string, infra *ir.ProxyInfra, gateway *egv1a1.EnvoyGateway) *ResourceRender {
60+
func NewResourceRender(ns, dnsDomain string, infra *ir.ProxyInfra, gateway *egv1a1.EnvoyGateway) *ResourceRender {
6461
return &ResourceRender{
65-
Namespace: infraNamespace,
66-
ControllerNamespace: controllerNamespace,
62+
Namespace: ns,
6763
DNSDomain: dnsDomain,
6864
infra: infra,
6965
ShutdownManager: gateway.GetEnvoyGatewayProvider().GetEnvoyGatewayKubeProvider().ShutdownManager,
@@ -284,7 +280,7 @@ func (r *ResourceRender) Deployment() (*appsv1.Deployment, error) {
284280
}
285281

286282
// Get expected bootstrap configurations rendered ProxyContainers
287-
containers, err := expectedProxyContainers(r.infra, deploymentConfig.Container, proxyConfig.Spec.Shutdown, r.ShutdownManager, r.ControllerNamespace, r.DNSDomain, r.GatewayNamespaceMode)
283+
containers, err := expectedProxyContainers(r.infra, deploymentConfig.Container, proxyConfig.Spec.Shutdown, r.ShutdownManager, r.Namespace, r.DNSDomain, r.GatewayNamespaceMode)
288284
if err != nil {
289285
return nil, err
290286
}
@@ -329,7 +325,7 @@ func (r *ResourceRender) Deployment() (*appsv1.Deployment, error) {
329325
SecurityContext: deploymentConfig.Pod.SecurityContext,
330326
Affinity: deploymentConfig.Pod.Affinity,
331327
Tolerations: deploymentConfig.Pod.Tolerations,
332-
Volumes: expectedVolumes(r.infra.Name, r.GatewayNamespaceMode, deploymentConfig.Pod, r.ControllerNamespace, r.DNSDomain),
328+
Volumes: expectedVolumes(r.infra.Name, r.GatewayNamespaceMode, deploymentConfig.Pod, r.DNSDomain),
333329
ImagePullSecrets: deploymentConfig.Pod.ImagePullSecrets,
334330
NodeSelector: deploymentConfig.Pod.NodeSelector,
335331
TopologySpreadConstraints: deploymentConfig.Pod.TopologySpreadConstraints,
@@ -372,7 +368,7 @@ func (r *ResourceRender) DaemonSet() (*appsv1.DaemonSet, error) {
372368
}
373369

374370
// Get expected bootstrap configurations rendered ProxyContainers
375-
containers, err := expectedProxyContainers(r.infra, daemonSetConfig.Container, proxyConfig.Spec.Shutdown, r.ShutdownManager, r.ControllerNamespace, r.DNSDomain, r.GatewayNamespaceMode)
371+
containers, err := expectedProxyContainers(r.infra, daemonSetConfig.Container, proxyConfig.Spec.Shutdown, r.ShutdownManager, r.Namespace, r.DNSDomain, r.GatewayNamespaceMode)
376372
if err != nil {
377373
return nil, err
378374
}
@@ -552,7 +548,7 @@ func (r *ResourceRender) getPodSpec(
552548
SecurityContext: pod.SecurityContext,
553549
Affinity: pod.Affinity,
554550
Tolerations: pod.Tolerations,
555-
Volumes: expectedVolumes(r.infra.Name, r.GatewayNamespaceMode, pod, r.ControllerNamespace, r.DNSDomain),
551+
Volumes: expectedVolumes(r.infra.Name, r.GatewayNamespaceMode, pod, r.DNSDomain),
556552
ImagePullSecrets: pod.ImagePullSecrets,
557553
NodeSelector: pod.NodeSelector,
558554
TopologySpreadConstraints: pod.TopologySpreadConstraints,

internal/infrastructure/kubernetes/proxy/resource_provider_test.go

+9-9
Original file line numberDiff line numberDiff line change
@@ -614,7 +614,7 @@ func TestDeployment(t *testing.T) {
614614
if len(tc.extraArgs) > 0 {
615615
tc.infra.Proxy.Config.Spec.ExtraArgs = tc.extraArgs
616616
}
617-
infraNamespace := cfg.ControllerNamespace
617+
namespace := cfg.ControllerNamespace
618618
if tc.gatewayNamespaceMode {
619619
deployType := egv1a1.KubernetesDeployModeType(egv1a1.KubernetesDeployModeTypeGatewayNamespace)
620620
cfg.EnvoyGateway.Provider = &egv1a1.EnvoyGatewayProvider{
@@ -625,10 +625,10 @@ func TestDeployment(t *testing.T) {
625625
},
626626
},
627627
}
628-
infraNamespace = tc.infra.GetProxyInfra().Namespace
628+
namespace = tc.infra.GetProxyInfra().Namespace
629629
}
630630

631-
r := NewResourceRender(infraNamespace, cfg.ControllerNamespace, cfg.DNSDomain, tc.infra.GetProxyInfra(), cfg.EnvoyGateway)
631+
r := NewResourceRender(namespace, cfg.DNSDomain, tc.infra.GetProxyInfra(), cfg.EnvoyGateway)
632632
dp, err := r.Deployment()
633633
require.NoError(t, err)
634634

@@ -1057,7 +1057,7 @@ func TestDaemonSet(t *testing.T) {
10571057
tc.infra.Proxy.Config.Spec.ExtraArgs = tc.extraArgs
10581058
}
10591059

1060-
r := NewResourceRender(cfg.ControllerNamespace, cfg.ControllerNamespace, cfg.DNSDomain, tc.infra.GetProxyInfra(), cfg.EnvoyGateway)
1060+
r := NewResourceRender(cfg.ControllerNamespace, cfg.DNSDomain, tc.infra.GetProxyInfra(), cfg.EnvoyGateway)
10611061
ds, err := r.DaemonSet()
10621062
require.NoError(t, err)
10631063

@@ -1222,7 +1222,7 @@ func TestService(t *testing.T) {
12221222
provider.EnvoyService = tc.service
12231223
}
12241224

1225-
r := NewResourceRender(cfg.ControllerNamespace, cfg.ControllerNamespace, cfg.DNSDomain, tc.infra.GetProxyInfra(), cfg.EnvoyGateway)
1225+
r := NewResourceRender(cfg.ControllerNamespace, cfg.DNSDomain, tc.infra.GetProxyInfra(), cfg.EnvoyGateway)
12261226
svc, err := r.Service()
12271227
require.NoError(t, err)
12281228

@@ -1265,7 +1265,7 @@ func TestConfigMap(t *testing.T) {
12651265

12661266
for _, tc := range cases {
12671267
t.Run(tc.name, func(t *testing.T) {
1268-
r := NewResourceRender(cfg.ControllerNamespace, cfg.ControllerNamespace, cfg.DNSDomain, tc.infra.GetProxyInfra(), cfg.EnvoyGateway)
1268+
r := NewResourceRender(cfg.ControllerNamespace, cfg.DNSDomain, tc.infra.GetProxyInfra(), cfg.EnvoyGateway)
12691269
cm, err := r.ConfigMap("")
12701270
require.NoError(t, err)
12711271

@@ -1308,7 +1308,7 @@ func TestServiceAccount(t *testing.T) {
13081308

13091309
for _, tc := range cases {
13101310
t.Run(tc.name, func(t *testing.T) {
1311-
r := NewResourceRender(cfg.ControllerNamespace, cfg.ControllerNamespace, cfg.DNSDomain, tc.infra.GetProxyInfra(), cfg.EnvoyGateway)
1311+
r := NewResourceRender(cfg.ControllerNamespace, cfg.DNSDomain, tc.infra.GetProxyInfra(), cfg.EnvoyGateway)
13121312
sa, err := r.ServiceAccount()
13131313
require.NoError(t, err)
13141314

@@ -1423,7 +1423,7 @@ func TestPDB(t *testing.T) {
14231423

14241424
provider.GetEnvoyProxyKubeProvider()
14251425

1426-
r := NewResourceRender(cfg.ControllerNamespace, cfg.ControllerNamespace, cfg.DNSDomain, tc.infra.GetProxyInfra(), cfg.EnvoyGateway)
1426+
r := NewResourceRender(cfg.ControllerNamespace, cfg.DNSDomain, tc.infra.GetProxyInfra(), cfg.EnvoyGateway)
14271427

14281428
pdb, err := r.PodDisruptionBudget()
14291429
require.NoError(t, err)
@@ -1535,7 +1535,7 @@ func TestHorizontalPodAutoscaler(t *testing.T) {
15351535
}
15361536
provider.GetEnvoyProxyKubeProvider()
15371537

1538-
r := NewResourceRender(cfg.ControllerNamespace, cfg.ControllerNamespace, cfg.DNSDomain, tc.infra.GetProxyInfra(), cfg.EnvoyGateway)
1538+
r := NewResourceRender(cfg.ControllerNamespace, cfg.DNSDomain, tc.infra.GetProxyInfra(), cfg.EnvoyGateway)
15391539
hpa, err := r.HorizontalPodAutoscaler()
15401540
require.NoError(t, err)
15411541

internal/infrastructure/kubernetes/proxy/testdata/daemonsets/component-level.yaml

+8-2
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,10 @@ spec:
4646
- envoy
4747
env:
4848
- name: ENVOY_GATEWAY_NAMESPACE
49-
value: envoy-gateway-system
49+
valueFrom:
50+
fieldRef:
51+
apiVersion: v1
52+
fieldPath: metadata.namespace
5053
- name: ENVOY_SERVICE_ZONE
5154
valueFrom:
5255
fieldRef:
@@ -130,7 +133,10 @@ spec:
130133
- envoy-gateway
131134
env:
132135
- name: ENVOY_GATEWAY_NAMESPACE
133-
value: envoy-gateway-system
136+
valueFrom:
137+
fieldRef:
138+
apiVersion: v1
139+
fieldPath: metadata.namespace
134140
- name: ENVOY_SERVICE_ZONE
135141
valueFrom:
136142
fieldRef:

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

+8-2
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,10 @@ spec:
249249
- envoy
250250
env:
251251
- name: ENVOY_GATEWAY_NAMESPACE
252-
value: envoy-gateway-system
252+
valueFrom:
253+
fieldRef:
254+
apiVersion: v1
255+
fieldPath: metadata.namespace
253256
- name: ENVOY_SERVICE_ZONE
254257
valueFrom:
255258
fieldRef:
@@ -327,7 +330,10 @@ spec:
327330
- envoy-gateway
328331
env:
329332
- name: ENVOY_GATEWAY_NAMESPACE
330-
value: envoy-gateway-system
333+
valueFrom:
334+
fieldRef:
335+
apiVersion: v1
336+
fieldPath: metadata.namespace
331337
- name: ENVOY_SERVICE_ZONE
332338
valueFrom:
333339
fieldRef:

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

+8-2
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,10 @@ spec:
248248
- envoy
249249
env:
250250
- name: ENVOY_GATEWAY_NAMESPACE
251-
value: envoy-gateway-system
251+
valueFrom:
252+
fieldRef:
253+
apiVersion: v1
254+
fieldPath: metadata.namespace
252255
- name: ENVOY_SERVICE_ZONE
253256
valueFrom:
254257
fieldRef:
@@ -326,7 +329,10 @@ spec:
326329
- envoy-gateway
327330
env:
328331
- name: ENVOY_GATEWAY_NAMESPACE
329-
value: envoy-gateway-system
332+
valueFrom:
333+
fieldRef:
334+
apiVersion: v1
335+
fieldPath: metadata.namespace
330336
- name: ENVOY_SERVICE_ZONE
331337
valueFrom:
332338
fieldRef:

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

+8-2
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,10 @@ spec:
233233
- envoy
234234
env:
235235
- name: ENVOY_GATEWAY_NAMESPACE
236-
value: envoy-gateway-system
236+
valueFrom:
237+
fieldRef:
238+
apiVersion: v1
239+
fieldPath: metadata.namespace
237240
- name: ENVOY_SERVICE_ZONE
238241
valueFrom:
239242
fieldRef:
@@ -317,7 +320,10 @@ spec:
317320
- envoy-gateway
318321
env:
319322
- name: ENVOY_GATEWAY_NAMESPACE
320-
value: envoy-gateway-system
323+
valueFrom:
324+
fieldRef:
325+
apiVersion: v1
326+
fieldPath: metadata.namespace
321327
- name: ENVOY_SERVICE_ZONE
322328
valueFrom:
323329
fieldRef:

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

+8-2
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,10 @@ spec:
182182
- envoy
183183
env:
184184
- name: ENVOY_GATEWAY_NAMESPACE
185-
value: envoy-gateway-system
185+
valueFrom:
186+
fieldRef:
187+
apiVersion: v1
188+
fieldPath: metadata.namespace
186189
- name: ENVOY_SERVICE_ZONE
187190
valueFrom:
188191
fieldRef:
@@ -263,7 +266,10 @@ spec:
263266
- envoy-gateway
264267
env:
265268
- name: ENVOY_GATEWAY_NAMESPACE
266-
value: envoy-gateway-system
269+
valueFrom:
270+
fieldRef:
271+
apiVersion: v1
272+
fieldPath: metadata.namespace
267273
- name: ENVOY_SERVICE_ZONE
268274
valueFrom:
269275
fieldRef:

0 commit comments

Comments
 (0)