logo

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
}