Broker access to the Kubernetes API #12086
Closed
griffindvs
started this conversation in
General
Replies: 1 comment 4 replies
-
|
There are several reasons for the changes. For example:
While some of them are not achieved immediately, these changes are a key part of the path towards it. There is no plan to support the old approaches. Please also keep in mind that you are the first one raising this as a concern. While there were people in the past who preferred to avoid giving the operator any rights to cluster-wide resources, nobody raised any concerns about the API access. (While they actually asked for the features listed above because of how they lead to improved security) |
Beta Was this translation helpful? Give feedback.
4 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
In versions of Strimzi prior to the upcoming 0.49.0, the only case where broker pods interact directly with the Kubernetes API is for rack awareness. When rack awareness is enabled, an init container is added to the broker pods to fetch the rack ID from the Kubernetes node.
My team embeds Strimzi into a product that our clients deploy onto their own Kubernetes clusters. Many of these clients have very strict security requirements including a requirement that only operators interact with the Kubernetes API. The operands that manage the client data then do not have any access to the Kubernetes API.
These requirements were part of the motivation for opening strimzi/proposals#184 which suggests an alternative approach to rack awareness which removes the broker usage of the Kubernetes API.
With the changes delivered in #11447 in support of #11294, it looks like Strimzi 0.49.0 will be extending the usage of the Kubernetes API by the broker pods.
Previously, a container startup script populated PKCS12 trust and key stores using the PEM format certificates mounted as volumes into the broker pods. The changes in 0.49.0 look to be moving away from this script by instead fetching the secrets from the Kubernetes API and then building the trust and key stores as a part of the KafkaAgent.
Is there a reason for fetching the secrets from the Kubernetes API instead of continuing to mount them as volumes and having the KafkaAgent read from those mounted files? Also, would there be an opportunity to allow adopters to opt back into the old approach of mounting secrets as volumes?
Thank you for the help with these questions!
Beta Was this translation helpful? Give feedback.
All reactions