For a new Kubernetes cluster, should I use the app and version labels?

I am setting up my Kuberentes cluster CI/CD pipeline and I am a bit confused about what the recommended way to label my services is.

This page is an official documentation page and it recommends the labels app and version.

Most of the general Kubernetes documentation suggests using app.kubernetes.io/name and app.kubernetes.io/version

This issue seems to suggest that there is a fix to allow the use of the general Kubernetes labels. It talks about a feature called canonical_service and canonical_revision that suposedly enables support for this. But it is lite on the details of how to use it.

And it indicates that Kiali will need some separate configuration to work with it. (But I am not sure where to find the config file indicated.)

At this point, it looks as if it would be best to just include all four. Is that the recommended best practice?

For Kiali config you are looking for, it is this: https://github.com/kiali/kiali-operator/blob/1e86bb895cb0b6c0c52d6ed34509f8557688abf3/deploy/kiali/kiali_cr.yaml#L669-L680

Oh, and if you are not familiar with the Kiali CR (the “config file” you are looking for), read these two sections of the kiali.io install docs that talk about the Kiali CR: