Skip to content

Commit 36ad4fb

Browse files
nezdolikaanm
authored andcommitted
secretsync: avoid synced Secret name collisions
Synced Secret names were derived by concatenating namespace and name, which allows distinct source objects such as a/b-c and a-b/c to target the same synchronized Secret. Use a shared hashed name derivation for Secret and ConfigMap sync outputs and all SDS references. Keep legacy-name cleanup for migration, but guard cleanup and updates with ownership-label validation so unrelated existing Secrets are not deleted or overwritten. Add regression coverage for Secret and ConfigMap collision cases. Signed-off-by: Kateryna Nezdolii <kateryna.nezdolii@gmail.com>
1 parent 3e724aa commit 36ad4fb

43 files changed

Lines changed: 437 additions & 106 deletions

File tree

Some content is hidden

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

operator/pkg/gateway-api/testdata/gateway/gateway-cross-protocol-same-hostname/output/cec-cross-protocol-same-hostname.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ spec:
9494
"@type": type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext
9595
commonTlsContext:
9696
tlsCertificateSdsSecretConfigs:
97-
- name: cilium-secrets/gateway-conformance-infra-cross-protocol-tls
97+
- name: cilium-secrets/cilium-sync-secret-9e3240dd5d81ba618935c49937e7e7dbefac584583bbc8129c126827692366f5
9898
listenerFilters:
9999
- name: envoy.filters.listener.tls_inspector
100100
typedConfig:

operator/pkg/gateway-api/testdata/gateway/gateway-invalid-tls-configuration/output/cec-gateway-certificate-malformed-secret.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ spec:
7979
'@type': type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext
8080
commonTlsContext:
8181
tlsCertificateSdsSecretConfigs:
82-
- name: cilium-secrets/gateway-conformance-infra-malformed-certificate
82+
- name: cilium-secrets/cilium-sync-secret-f6a590ea119ae69b4e1296bcca9a7e17f98fe1ec740b68bf166967deab342dd5
8383
listenerFilters:
8484
- name: envoy.filters.listener.tls_inspector
8585
typedConfig:

operator/pkg/gateway-api/testdata/gateway/gateway-invalid-tls-configuration/output/cec-gateway-certificate-nonexistent-secret.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ spec:
7979
'@type': type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext
8080
commonTlsContext:
8181
tlsCertificateSdsSecretConfigs:
82-
- name: cilium-secrets/gateway-conformance-infra-nonexistent-certificate
82+
- name: cilium-secrets/cilium-sync-secret-f0a504d62c5263d63e5d3af48a6ddd004f022b8b54c0b23da6ff37987c66e17a
8383
listenerFilters:
8484
- name: envoy.filters.listener.tls_inspector
8585
typedConfig:

operator/pkg/gateway-api/testdata/gateway/gateway-invalid-tls-configuration/output/cec-gateway-certificate-unsupported-group.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ spec:
7979
'@type': type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext
8080
commonTlsContext:
8181
tlsCertificateSdsSecretConfigs:
82-
- name: cilium-secrets/gateway-conformance-infra-tls-validity-checks-certificate
82+
- name: cilium-secrets/cilium-sync-secret-261c3c0ed7182ef9200310151d846ebc492656fb3bcdf448223b3495dcc9016a
8383
listenerFilters:
8484
- name: envoy.filters.listener.tls_inspector
8585
typedConfig:

operator/pkg/gateway-api/testdata/gateway/gateway-invalid-tls-configuration/output/cec-gateway-certificate-unsupported-kind.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ spec:
7979
'@type': type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext
8080
commonTlsContext:
8181
tlsCertificateSdsSecretConfigs:
82-
- name: cilium-secrets/gateway-conformance-infra-tls-validity-checks-certificate
82+
- name: cilium-secrets/cilium-sync-secret-261c3c0ed7182ef9200310151d846ebc492656fb3bcdf448223b3495dcc9016a
8383
listenerFilters:
8484
- name: envoy.filters.listener.tls_inspector
8585
typedConfig:

operator/pkg/gateway-api/testdata/gateway/gateway-modify-listeners/output/cec-gateway-add-listener.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ spec:
8686
'@type': type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext
8787
commonTlsContext:
8888
tlsCertificateSdsSecretConfigs:
89-
- name: cilium-secrets/gateway-conformance-infra-tls-validity-checks-certificate
89+
- name: cilium-secrets/cilium-sync-secret-261c3c0ed7182ef9200310151d846ebc492656fb3bcdf448223b3495dcc9016a
9090
listenerFilters:
9191
- name: envoy.filters.listener.tls_inspector
9292
typedConfig:

operator/pkg/gateway-api/testdata/gateway/gateway-modify-listeners/output/cec-gateway-remove-listener.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ spec:
8686
'@type': type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext
8787
commonTlsContext:
8888
tlsCertificateSdsSecretConfigs:
89-
- name: cilium-secrets/gateway-conformance-infra-tls-validity-checks-certificate
89+
- name: cilium-secrets/cilium-sync-secret-261c3c0ed7182ef9200310151d846ebc492656fb3bcdf448223b3495dcc9016a
9090
listenerFilters:
9191
- name: envoy.filters.listener.tls_inspector
9292
typedConfig:

operator/pkg/gateway-api/testdata/gateway/gateway-multi-port-https-with-multi-port-tls-passthrough/output/cec-multi-port-https-with-multi-port-tls-passthrough.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ spec:
6464
"@type": type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext
6565
commonTlsContext:
6666
tlsCertificateSdsSecretConfigs:
67-
- name: cilium-secrets/gateway-conformance-infra-multi-port-https-tls
67+
- name: cilium-secrets/cilium-sync-secret-62f4462c70564aa40ef22396762652f4b3bd572448747e332d134b0c028c0cfb
6868
listenerFilters:
6969
- name: envoy.filters.listener.tls_inspector
7070
typedConfig:
@@ -125,7 +125,7 @@ spec:
125125
"@type": type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext
126126
commonTlsContext:
127127
tlsCertificateSdsSecretConfigs:
128-
- name: cilium-secrets/gateway-conformance-infra-multi-port-https-tls
128+
- name: cilium-secrets/cilium-sync-secret-62f4462c70564aa40ef22396762652f4b3bd572448747e332d134b0c028c0cfb
129129
listenerFilters:
130130
- name: envoy.filters.listener.tls_inspector
131131
typedConfig:

operator/pkg/gateway-api/testdata/gateway/gateway-multi-port-https/output/cec-multi-port-https.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ spec:
6161
"@type": type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext
6262
commonTlsContext:
6363
tlsCertificateSdsSecretConfigs:
64-
- name: cilium-secrets/gateway-conformance-infra-multi-port-https-tls
64+
- name: cilium-secrets/cilium-sync-secret-62f4462c70564aa40ef22396762652f4b3bd572448747e332d134b0c028c0cfb
6565
listenerFilters:
6666
- name: envoy.filters.listener.tls_inspector
6767
typedConfig:
@@ -122,7 +122,7 @@ spec:
122122
"@type": type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext
123123
commonTlsContext:
124124
tlsCertificateSdsSecretConfigs:
125-
- name: cilium-secrets/gateway-conformance-infra-multi-port-https-tls
125+
- name: cilium-secrets/cilium-sync-secret-62f4462c70564aa40ef22396762652f4b3bd572448747e332d134b0c028c0cfb
126126
listenerFilters:
127127
- name: envoy.filters.listener.tls_inspector
128128
typedConfig:

operator/pkg/gateway-api/testdata/gateway/gateway-ns-restricted-same-hostname/output/cec-ns-restricted-same-hostname.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ spec:
5656
"@type": type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext
5757
commonTlsContext:
5858
tlsCertificateSdsSecretConfigs:
59-
- name: cilium-secrets/gateway-conformance-infra-ns-restricted-tls
59+
- name: cilium-secrets/cilium-sync-secret-81d5b0bc773836eb895d632bb828ae299373ed522137978b10722821a7522210
6060
listenerFilters:
6161
- name: envoy.filters.listener.tls_inspector
6262
typedConfig:
@@ -117,7 +117,7 @@ spec:
117117
"@type": type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext
118118
commonTlsContext:
119119
tlsCertificateSdsSecretConfigs:
120-
- name: cilium-secrets/gateway-conformance-infra-ns-restricted-tls
120+
- name: cilium-secrets/cilium-sync-secret-81d5b0bc773836eb895d632bb828ae299373ed522137978b10722821a7522210
121121
listenerFilters:
122122
- name: envoy.filters.listener.tls_inspector
123123
typedConfig:

0 commit comments

Comments
 (0)