-
Notifications
You must be signed in to change notification settings - Fork 3.4k
Update TLS Interception Helm values #37076
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update TLS Interception Helm values #37076
Conversation
6d88a2d
to
0e66f25
Compare
/test |
0e66f25
to
ed99b19
Compare
ed99b19
to
96c9f3f
Compare
b3da573
to
a150dda
Compare
Found some issues, looking at them, will have this ready for review tomorrow EU time. |
a150dda
to
f351ca0
Compare
f351ca0
to
e0bcaa6
Compare
Okay, issue found, and fixed. |
e0bcaa6
to
1a0b150
Compare
This commit updates TLS Interception Helm values to both be more understandable and allow greater flexibility in rollout. * `tls.secretsBackend: k8s|local` is DEPRECATED and will be removed in a future version. * `tls.readSecretsOnlyFromSecretsNamespace` is the replacement for the _actual_ effect of `tls.secretsBackend`, named to make the tradeoffs clearer. * `tls.secretSync.secretsNamespace` is moved up one level, as it now applies in more cases than the secret-sync and SDS one There are some code changes in the Policy secret handling to ensure that we support three scenarios for where TLS Policy Secrets are located: * Secrets placed in the `cilium-secrets` namespace, and read from there by the Cilium Agent, then sent to Envoy inline in Network Policy Discovery Service. This case came from user reports about how TLS Interception was being used in the real world - it used to be possible by turning on other config that created the `cilium-secrets` namespace, but now works by default. * Secrets located anywhere in the cluster, and read directly by the Cilium agent - this requires the `tls.readSecretsOnlyFromSecretsNamespace` setting to be `false`, or `tls.secretsBackend: k8s` to be set. * Secrets located anywhere in the cluster, synchronized by the Cilium Operator into the `cilium-secrets` namespace, then read from there by the Cilium Agent and sent to Envoy via SDS. This is a new feature added since Cilium 1.16. Signed-off-by: Nick Young <nick@isovalent.com>
This commit updates the TLS Interception docs to match the new install process, including more explanation of how the Helm configuration works. Signed-off-by: Nick Young <nick@isovalent.com>
1a0b150
to
66f1f0f
Compare
/test |
It looks like the Hubble team is called out for review because of changes on |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Docs good.
The Helm changes should be documented in the upgrade notes, but main has 1.18 upgrade notes already, so this would fall in the backport.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As the Hubble team doesn't need to review changes in this PR (see #37204) and the Envoy team is already a reviewer, I'm blindly approving the PR to unblock it (I can't remove the review request for sig-hubble until the aforementioned PR is merged and this one rebased).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Detailed context and explanation 👍
Since #37076 was merged we have a new mode of synchronizing TLS secrets to Envoy. Previously we used NPDS, while new way uses SDS. However, by setting secretsBackend=k8s we were forcing old behaviour. Let's start testing SDS as it's a new default. Signed-off-by: Marcel Zieba <marcel.zieba@isovalent.com>
Since #37076 was merged we have a new mode of synchronizing TLS secrets to Envoy. Previously we used NPDS, while new way uses SDS. However, by setting secretsBackend=k8s we were forcing old behaviour. Let's start testing SDS as it's a new default. Signed-off-by: Marcel Zieba <marcel.zieba@isovalent.com>
Since cilium#37076 was merged we have a new mode of synchronizing TLS secrets to Envoy. Previously we used NPDS, while new way uses SDS. However, by setting secretsBackend=k8s we were forcing old behaviour. Let's start testing SDS as it's a new default. Signed-off-by: Marcel Zieba <marcel.zieba@isovalent.com>
Since cilium#37076 was merged we have a new mode of synchronizing TLS secrets to Envoy. Previously we used NPDS, while new way uses SDS. However, by setting secretsBackend=k8s we were forcing old behaviour. Let's start testing SDS as it's a new default. Signed-off-by: Marcel Zieba <marcel.zieba@isovalent.com>
This commit updates TLS Interception Helm values to both be more understandable and allow greater
flexibility in rollout.
tls.secretsBackend: k8s|local
is DEPRECATED and will be removed in a future version.tls.readSecretsOnlyFromSecretsNamespace
is the replacement for the actual effect oftls.secretsBackend
, named to make the tradeoffs clearer. This setting controls whether the agent will read only from the configured Secrets namespace, or from any namespace in the cluster.tls.secretSync.secretsNamespace
is moved up one level, as it now applies in more cases than the secret-sync and SDS oneThere are some code changes in the Policy secret handling to ensure that we support three scenarios for where TLS Policy Secrets are located:
cilium-secrets
namespace, and read from there by the Cilium Agent, then sent to Envoy inline in Network Policy Discovery Service. This case came from user reports about how TLS Interception was being used in the real world - it used to be possible by turning on other config that created thecilium-secrets
namespace, but now works by default.tls.readSecretsOnlyFromSecretsNamespace
setting to befalse
, ortls.secretsBackend: k8s
to be set.cilium-secrets
namespace, then read from there by the Cilium Agent and sent to Envoy via SDS. This is a new feature added since Cilium 1.16.It also adds code to handle only enabling secret sync on new clusters. Testing done manually with
helm template
: