kubebuilder 에서 namespace, label 조건으로 watch 하는 방법(=Watch event for specific object in kubebuilder)

jelly
3 min readNov 28, 2023

--

kubebuilder 를 이용해서 custom controller 를 개발 하다 보면 namespace, label 조건을 주어 watch 를 하고 싶은 경우가 생긴다. 이런 경우는 cache.Options 을 이용하면 아주 쉽게 처리 할 수 있다. :)

아래는 default namespace , label 이 foo: barCustom Resource Sample 이다.

apiVersion: "jellay/v1alpha1"
kind: Jellybeanz
metadata:
name: jellybeanz-sample
namespace: "default"
labels:
foo: bar
spec:
startJob: true"

Custom Resourceeventnamespace, label 조건을 주어 watch 하는 방법은 아래와 같다.

default namespaceCustom ResourceWatch 하고 싶다면,

mrg, mrgErr := ctrl.NewManager(ctrl.GetConfigOrDie(), ctrl.Options{
Scheme: scheme,
HealthProbeBindAddress: probeAddr,
LeaderElection: enableLeaderElection,
LeaderElectionID: "44d540b2.hana.sap.com",
Cache: cache.Options{
DefaultNamespaces: map[string]cache.Config{"default": {}},
},
})

label 이 foo: barCustom ResourceWatch 하고 싶다면,

 mrg, mrgErr := ctrl.NewManager(ctrl.GetConfigOrDie(), ctrl.Options{
Scheme: scheme,
HealthProbeBindAddress: probeAddr,
LeaderElection: enableLeaderElection,
LeaderElectionID: "44d540b2.hana.sap.com",
Cache: cache.Options{
DefaultLabelSelector: labels.SelectorFromSet(labels.Set{"foo": "bar"}),
},
})

그럼 즐거운 개발 세발~~

--

--

jelly
jelly

Written by jelly

Test Eng? Test Devloper? Devloper?

No responses yet