This repository is a place to explore use of categories to provide a good experience for federation-v2 resources. This repository was created using kubebuilder.
Categories are sets of arbitrary resources. Resources declare themselves to be
in categories; Kubernetes CRDs can declare themselves to have categories using
the spec.names.categories
field:
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
name: federatedreplicasets.federation.pmorie.toy
spec:
group: federation.pmorie.toy
names:
categories:
- federation
kind: FederatedReplicaSet
plural: federatedreplicasets
scope: Namespaced
validation:
openAPIV3Schema:
properties:
apiVersion:
type: string
kind:
type: string
metadata:
type: object
spec:
type: object
status:
type: object
type: object
version: v1beta1
The kubectl
tool can use categories for get
:
$ k get federation --field-selector=metadata.name=my-rs --show-kind
NAME AGE
federatedreplicasetoverride.federation.pmorie.toy/my-rs 6m
NAME AGE
federatedreplicasetplacement.federation.pmorie.toy/my-rs 6m
NAME AGE
federatedreplicaset.federation.pmorie.toy/my-rs 6m
Install the CRDS as follows:
$ kubectl create -f crd.yaml
$ kubectl get crd
NAME CREATED AT
federatedreplicasetoverrides.federation.pmorie.toy 2018-06-22T15:07:26Z
federatedreplicasetplacements.federation.pmorie.toy 2018-06-22T15:07:26Z
federatedreplicasets.federation.pmorie.toy 2018-06-22T15:07:26Z
You can then create example resources using:
$ kubectl create -f example-resources.yaml
Now you can try out using categories with kubectl
. Try:
$ kubectl get federation --field-selector=metadata.name=my-rs --show-kind
NAME AGE
federatedreplicaset.federation.pmorie.toy/my-rs 2d
NAME AGE
federatedreplicasetoverride.federation.pmorie.toy/my-rs 2d
NAME AGE
federatedreplicasetplacement.federation.pmorie.toy/my-rs 2d
and:
$ kubectl get federation --selector=app=my-federated-app --show-kind
NAME AGE
federatedreplicaset.federation.pmorie.toy/my-rs 2d
NAME AGE
federatedreplicasetoverride.federation.pmorie.toy/my-rs 2d
NAME AGE
federatedreplicasetplacement.federation.pmorie.toy/my-rs 2d