How to get or list a k8s object from the controller?
Read
To read a resource within a reconciler:
var ns corev1.Namespace
key := client.ObjectKey{
Name: "hello-world",
}
// r.Client() is the controller-runtime Client to perform CRUD operations on
// a Kubernetes API server.
if err := r.Client().Get(ctx, key, &ns); err != nil {
return ctrl.Result{}, err
}
List
To get a list of resources within a reconciler:
var nsList corev1.NamespaceList
// r.Client() is the controller-runtime Client to perform CRUD operations on
// a Kubernetes API server.
// client.ListOptions{} can be used to filter or limit results.
if err := r.Client().List(ctx, &nsList, &client.ListOptions{}); err != nil {
return ctrl.Result{}, err
}