Repository: kubernetes
Issue: feature: support the (X/Y) display mode for the printcolumn field in CR resource
Labels: sig/api-machinery,kind/feature,sig/cli,triage/accepted

### What would you like to be added?

When I was working on implementing a CR controller using kubebuilder, I wanted to implement a way to display columns using a fraction format (i.e. X/Y).
```go
// +genclient
...
//+kubebuilder:printcolumn:name="Ready",type="string",JSONPath="{.status.readyReplicas}/{.spec.replicas}",description="Ratio of ready replicas to desired replicas."
//+kubebuilder:printcolumn:name="UP-TO-DATE",type="string",JSONPath=".status.updatedReplicas",description="Number of groups that have been updated (ready or not)."
//+kubebuilder:printcolumn:name="Age",JSONPath=".metadata.creationTimestamp",type=date,description="Age is the time LeaderWorkerSet was created."

// LeaderWorkerSet is the Schema for the leaderworkersets API
type LeaderWorkerSet struct {
	...
}
```

`//+kubebuilder:printcolumn:name="Ready",type="string",JSONPath="{.status.readyReplicas}/{.spec.replicas}",description="Ratio of ready replicas to desired replicas."
` 

I used the following method and found that an error would be reported. The error is as follows:
```bash
root@VM-0-8-ubuntu:/home/ubuntu/lws# make uninstall
make: go: Permission denied
test -s /home/ubuntu/lws/bin/controller-gen && /home/ubuntu/lws/bin/controller-gen --version | grep -q v0.16.2 || \
GOBIN=/home/ubuntu/lws/bin go install sigs.k8s.io/controller-tools/cmd/controller-gen@v0.16.2
/home/ubuntu/lws/bin/controller-gen \
	rbac:roleName=manager-role output:rbac:artifacts:config=config/rbac \
	crd:generateEmbeddedObjectMeta=true output:crd:artifacts:config=config/crd/bases \
	webhook output:webhook:artifacts:config=config/webhook \
	paths="./..."
/home/ubuntu/lws/bin/kustomize build config/crd | kubectl delete --ignore-not-found=false -f -
customresourcedefinition.apiextensions.k8s.io "leaderworkersets.leaderworkerset.x-k8s.io" deleted
root@VM-0-8-ubuntu:/home/ubuntu/lws# make install
make: go: Permission denied
test -s /home/ubuntu/lws/bin/controller-gen && /home/ubuntu/lws/bin/controller-gen --version | grep -q v0.16.2 || \
GOBIN=/home/ubuntu/lws/bin go install sigs.k8s.io/controller-tools/cmd/controller-gen@v0.16.2
/home/ubuntu/lws/bin/controller-gen \
	rbac:roleName=manager-role output:rbac:artifacts:config=config/rbac \
	crd:generateEmbeddedObjectMeta=true output:crd:artifacts:config=config/crd/bases \
	webhook output:webhook:artifacts:config=config/webhook \
	paths="./..."
/home/ubuntu/lws/bin/kustomize build config/crd | kubectl create -f -
The CustomResourceDefinition "leaderworkersets.leaderworkerset.x-k8s.io" is invalid: spec.additionalPrinterColumns[0].JSONPath: Invalid value: "{.status.readyReplicas}/{.spec.replicas}": must be a simple json path starting with .
make: *** [Makefile:187: install] Error 1
```
When I asked for help from the kubebuilder project, it seemed to ask me to submit an issue to controller-tool https://github.com/kubernetes-sigs/kubebuilder/discussions/4134#discussioncomment-10575562 , such as:
When I submitted an issue to controller-tool, it seemed to say that this was not a function that this project could provide. https://github.com/kubernetes-sigs/controller-tools/issues/1051#issuecomment-2337525823

I don't understand how it's generated. Therefore, I will submit an issue here for discussion (if it is not a function that can be provided by kubernetes/kubernetes, I will close this issue)

I don't know if my usage is wrong or if JsonPath itself only provides simple field parsing.

In addition,is there a way we could support a MultiJsonPath-like approach, allowing multiple JsonPaths to be combined? This would make the display more flexible, rather than being limited to specific JsonPaths only.



My expectation is 3/3. like this
```go
root@VM-0-8-ubuntu:/home/ubuntu/lws/config/samples# kubectl get lws
NAME                     READY   UP-TO-DATE   AGE
leaderworkerset-sample    3/3      3          6s
```

### Why is this needed?

- Make the display of CR resource objects in kubectl commands more flexible