2 min read | by Jordi Prats
When you have several kubernetes objects (CRDs) that work together it can be useful to be able to query them all together to get a better idea of what's deployed without having to query all the individial resources. With operator-SDK we just need to annotate the objects.
To do so we just need to annotate the main struct with //+kubebuilder:resource, for example:
//+kubebuilder:resource:categories="postgres"
We can add multiple categories by using the ; separator as follows:
//+kubebuilder:object:root=true //+kubebuilder:subresource:status //+kubebuilder:resource:categories="postgres";"servicecatalog" // PgCluster is the Schema for the mskclusters API type PgCluster struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec PgClusterSpec `json:"spec,omitempty"` Status PgClusterStatus `json:"status,omitempty"` }
As soon as we generate the manifests and install them in the cluster (make install) we'll be able to query all the objects that have the same group with kubectl get:
$ kubectl get postgres NAME PG CLUSTER ADMIN SYNC STATUS pguser.msk.pet2cattle.com/operator-user sample true in-sync pguser.msk.pet2cattle.com/developer sample in-sync NAME CLUSTER NAME SYNC STATUS pgcluster.msk.pet2cattle.com/sample sample in-sync
Posted on 01/08/2023