-
Notifications
You must be signed in to change notification settings - Fork 1
Reduce Secret watch pressure on seeds by splitting ManagedResource data #61
Copy link
Copy link
Open
Labels
Q2/2026This topic is relevant for the hackathon in Q2/2026.This topic is relevant for the hackathon in Q2/2026.area/control-planeControl plane relatedControl plane relatedarea/performancePerformance (across all domains, such as control plane, networking, storage, etc.) relatedPerformance (across all domains, such as control plane, networking, storage, etc.) relatedarea/scalabilityScalability relatedScalability relatedkind/pocProof of concept or prototypeProof of concept or prototypeteamsize/mediumA team of 3 people.A team of 3 people.
Metadata
Metadata
Assignees
Labels
Q2/2026This topic is relevant for the hackathon in Q2/2026.This topic is relevant for the hackathon in Q2/2026.area/control-planeControl plane relatedControl plane relatedarea/performancePerformance (across all domains, such as control plane, networking, storage, etc.) relatedPerformance (across all domains, such as control plane, networking, storage, etc.) relatedarea/scalabilityScalability relatedScalability relatedkind/pocProof of concept or prototypeProof of concept or prototypeteamsize/mediumA team of 3 people.A team of 3 people.
/area control-plane
/area scalability
/area performance
/kind poc
/label teamsize/medium
What is the topic about?:
Problem
gardener-resource-managerstores rendered manifests inSecretobjects referenced byManagedResource.spec.secretRefs. This was deliberate —ManagedResources can contain KubernetesSecretresources that must be encrypted at rest in etcd.However, this means all manifest data (Deployments, Services, RBAC, etc.) lives in Secrets, even when it contains nothing sensitive. On a seed cluster, this leads to:
ManagedResources)Proposed Solution
Split the
ManagedResourcedata store by sensitivity:Secretresources) stay inSecretobjects — encrypted at rest as today.ManagedResourceDataor similar) that is not in the Secret watch surface.gardener-resource-managerwould be adapted to read from both sources. During reconciliation, it already knows which resource types it is deploying, so the split can be determined at write time by the deploying controller.Tasks
Secretresources (e.g.,shoot-dns-servicein control plane namespaces, extension controllers,cert-manager, etc.). Measure the memory and network I/O impact of the current Secret volume on these pods. This provides the data to justify the change and quantifies the expected benefit.ManagedResourcedata. Decide on schema, naming, and namespace scoping.gardener-resource-manager: Support reading manifests from bothSecretrefs (sensitive) and the new CRD refs (non-sensitive). Maintain backward compatibility with existingspec.secretRefs.ManagedResources (e.g., inpkg/component/) to split manifests by sensitivity at write time.ManagedResources with all data in Secrets must continue to work. Consider a phased rollout.