diff options
Diffstat (limited to 'src/monitor/pkg/controller/resourcebundlestate/helpers.go')
-rw-r--r-- | src/monitor/pkg/controller/resourcebundlestate/helpers.go | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/src/monitor/pkg/controller/resourcebundlestate/helpers.go b/src/monitor/pkg/controller/resourcebundlestate/helpers.go new file mode 100644 index 00000000..dab78825 --- /dev/null +++ b/src/monitor/pkg/controller/resourcebundlestate/helpers.go @@ -0,0 +1,54 @@ +package resourcebundlestate + +import ( + "context" + "log" + + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + "sigs.k8s.io/controller-runtime/pkg/client" +) + +// checkLabel verifies if the expected label exists and returns bool +func checkLabel(labels map[string]string) bool { + + _, ok := labels["k8splugin.io/rb-inst-id"] + if !ok { + log.Printf("Pod does not have label. Filter it.") + return false + } + return true +} + +// returnLabel verifies if the expected label exists and returns a map +func returnLabel(labels map[string]string) map[string]string { + + l, ok := labels["k8splugin.io/rb-inst-id"] + if !ok { + log.Printf("Pod does not have label. Filter it.") + return nil + } + return map[string]string{ + "k8splugin.io/rb-inst-id": l, + } +} + +// listResources lists resources based on the selectors provided +// The data is returned in the pointer to the runtime.Object +// provided as argument. +func listResources(cli client.Client, namespace string, + labelSelector map[string]string, returnData runtime.Object) error { + + listOptions := &client.ListOptions{ + Namespace: namespace, + LabelSelector: labels.SelectorFromSet(labelSelector), + } + + err := cli.List(context.TODO(), listOptions, returnData) + if err != nil { + log.Printf("Failed to list CRs: %v", err) + return err + } + + return nil +} |