Skip to content

Commit 9817f6f

Browse files
authored
devbox cache improve. (#5122)
1 parent 6489ce6 commit 9817f6f

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

controllers/devbox/cmd/main.go

+19
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,16 @@ import (
2424
// Import all Kubernetes client auth plugins (e.g. Azure, GCP, OIDC, etc.)
2525
// to ensure that exec-entrypoint and run can make use of them.
2626
_ "k8s.io/client-go/plugin/pkg/client/auth"
27+
"k8s.io/client-go/rest"
2728

29+
corev1 "k8s.io/api/core/v1"
30+
"k8s.io/apimachinery/pkg/labels"
2831
"k8s.io/apimachinery/pkg/runtime"
2932
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
3033
clientgoscheme "k8s.io/client-go/kubernetes/scheme"
3134
ctrl "sigs.k8s.io/controller-runtime"
35+
"sigs.k8s.io/controller-runtime/pkg/cache"
36+
"sigs.k8s.io/controller-runtime/pkg/client"
3237
"sigs.k8s.io/controller-runtime/pkg/healthz"
3338
"sigs.k8s.io/controller-runtime/pkg/log/zap"
3439
"sigs.k8s.io/controller-runtime/pkg/metrics/filters"
@@ -133,6 +138,11 @@ func main() {
133138
metricsServerOptions.FilterProvider = filters.WithAuthenticationAndAuthorization
134139
}
135140

141+
cacheObjLabelSelector := labels.SelectorFromSet(map[string]string{
142+
"app.kubernetes.io/managed-by": "sealos",
143+
"app.kubernetes.io/part-of": "devbox",
144+
})
145+
136146
mgr, err := ctrl.NewManager(ctrl.GetConfigOrDie(), ctrl.Options{
137147
Scheme: scheme,
138148
Metrics: metricsServerOptions,
@@ -151,6 +161,15 @@ func main() {
151161
// if you are doing or is intended to do any operation such as perform cleanups
152162
// after the manager stops then its usage might be unsafe.
153163
// LeaderElectionReleaseOnCancel: true,
164+
165+
NewCache: func(config *rest.Config, opts cache.Options) (cache.Cache, error) {
166+
opts.ByObject = map[client.Object]cache.ByObject{
167+
&corev1.Service{}: {Label: cacheObjLabelSelector},
168+
&corev1.Pod{}: {Label: cacheObjLabelSelector},
169+
&corev1.Secret{}: {Label: cacheObjLabelSelector},
170+
}
171+
return cache.New(config, opts)
172+
},
154173
})
155174
if err != nil {
156175
setupLog.Error(err, "unable to start manager")

0 commit comments

Comments
 (0)