How do I find what is the exact path for any sub-package of the Kubernetes Go client?
I am confused by the whole Go dependency (go get k8s.io/client-go@latest) because I see lots of equivalent/similar V1, or V1beta1 or prefixes like XXX that sometimes work some other times panic in what I perceive as an arbitrary way.
However, when I check the docs it's hard to find the information about interfaces, structure definitions and package names (the thing I am blocked on at the moment).
When I go here after many clicks: https://pkg.go.dev/k8s.io/api@v0.23.1/core/v1#Container
then how do I translate this URL into a Go package? It could be the package for the Container struct, but the same for any other "Kubernetes thing".
Looking at the examples at https://github.com/kubernetes/client-go/blob/master/examples/out-of-cluster-client-configuration/main.go I found they were importing metav1 "k8s.io/apimachinery/pkg/apis/meta/v1", so I tried corev1 "k8s.io/apimachinery/pkg/apis/core/v1", but the compiler panics with
no required module provides package k8s.io/apimachinery/pkg/apis/core/v1; to add it:
go get k8s.io/apimachinery/pkg/apis/core/v1So I tried go mod tidy, but I get the same error.
I've also tried "k8s.io/client-go/util/core" or "k8s.io/client-go/core" - it doesn't work, but there must be a consistent rule to figure out these package names.
I was used to infer package names from the GitHub repository URLs e.g. importing github.com/kubernetes/client-go or similar, but for some reason here with Kubernetes they don't seem to be used that way.
How do I find the rules to infer package imports from those docs at those URLs at https://pkg.go.dev?