Skip to content

Commit b7eb8f7

Browse files
authored
Merge pull request #11453 from fabriziopandini/improve-control-plane-rollout
🌱 Cache Pods for KCP
2 parents 781d1e4 + 6e059a2 commit b7eb8f7

File tree

1 file changed

+24
-2
lines changed

1 file changed

+24
-2
lines changed

controlplane/kubeadm/main.go

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import (
3030
appsv1 "k8s.io/api/apps/v1"
3131
corev1 "k8s.io/api/core/v1"
3232
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
33+
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
3334
"k8s.io/apimachinery/pkg/labels"
3435
"k8s.io/apimachinery/pkg/runtime"
3536
"k8s.io/apimachinery/pkg/selection"
@@ -341,9 +342,31 @@ func setupReconcilers(ctx context.Context, mgr ctrl.Manager) {
341342
os.Exit(1)
342343
}
343344

345+
must := func(r *labels.Requirement, err error) labels.Requirement {
346+
if err != nil {
347+
panic(err)
348+
}
349+
return *r
350+
}
351+
podSelector := labels.NewSelector().Add(
352+
must(labels.NewRequirement("tier", selection.Equals, []string{"control-plane"})),
353+
must(labels.NewRequirement("component", selection.In, []string{"kube-apiserver", "kube-controller-manager", "kube-scheduler", "etcd"})),
354+
)
355+
344356
clusterCache, err := clustercache.SetupWithManager(ctx, mgr, clustercache.Options{
345357
SecretClient: secretCachingClient,
346-
Cache: clustercache.CacheOptions{},
358+
Cache: clustercache.CacheOptions{
359+
// Only cache kubeadm static pods
360+
ByObject: map[client.Object]cache.ByObject{
361+
&corev1.Pod{}: {
362+
Namespaces: map[string]cache.Config{
363+
metav1.NamespaceSystem: {
364+
LabelSelector: podSelector,
365+
},
366+
},
367+
},
368+
},
369+
},
347370
Client: clustercache.ClientOptions{
348371
QPS: clusterCacheClientQPS,
349372
Burst: clusterCacheClientBurst,
@@ -352,7 +375,6 @@ func setupReconcilers(ctx context.Context, mgr ctrl.Manager) {
352375
DisableFor: []client.Object{
353376
&corev1.ConfigMap{},
354377
&corev1.Secret{},
355-
&corev1.Pod{},
356378
&appsv1.Deployment{},
357379
&appsv1.DaemonSet{},
358380
},

0 commit comments

Comments
 (0)