Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>. Make kubectl explain print the Kind and APIVersion of the resource **What this PR does / why we need it**: Kubectl explain currently doesn't print out the Kind and APIversion of the resource being explained. When running `kubectl explain hpa.spec`, for example, there is no way of knowing whether you're looking at the `autoscaling/v1` or the `autoscaling/v2beta1` version. Also, `kubectl explain` is often used as a reference when writing YAML/JSON object manifests. It allows you to look up everything except the API version. Currently, you either need to know the API Version of a resource by heart or look it up in the online API docs. This PR fixes both problems by having `kubectl explain` print out the full Kind and APIVersion of the resource it is explaining. Here are a few examples of the new output: ``` $ kubectl explain deploy KIND: Deployment VERSION: extensions/v1beta1 DESCRIPTION: ... $ kubectl explain hpa.spec KIND: HorizontalPodAutoscaler VERSION: autoscaling/v1 RESOURCE: spec <Object> DESCRIPTION: ... $ kubectl explain hpa.spec.maxReplicas KIND: HorizontalPodAutoscaler VERSION: autoscaling/v1 FIELD: maxReplicas <integer> DESCRIPTION: ... $ kubectl explain hpa.spec --recursive KIND: HorizontalPodAutoscaler VERSION: autoscaling/v1 RESOURCE: spec <Object> DESCRIPTION: behaviour of autoscaler. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. specification of a horizontal pod autoscaler. FIELDS: maxReplicas <integer> minReplicas <integer> scaleTargetRef <Object> apiVersion <string> kind <string> name <string> targetCPUUtilizationPercentage <integer> ``` **Release note**: ```release-note Kubectl explain now prints out the Kind and API version of the resource being explained ```
59 lines
1.7 KiB
Python
59 lines
1.7 KiB
Python
load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
|
|
|
|
go_library(
|
|
name = "go_default_library",
|
|
srcs = [
|
|
"explain.go",
|
|
"field_lookup.go",
|
|
"fields_printer.go",
|
|
"fields_printer_builder.go",
|
|
"formatter.go",
|
|
"model_printer.go",
|
|
"recursive_fields_printer.go",
|
|
"typename.go",
|
|
],
|
|
importpath = "k8s.io/kubernetes/pkg/kubectl/explain",
|
|
visibility = ["//visibility:public"],
|
|
deps = [
|
|
"//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library",
|
|
"//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
|
|
"//vendor/k8s.io/kube-openapi/pkg/util/proto:go_default_library",
|
|
],
|
|
)
|
|
|
|
filegroup(
|
|
name = "package-srcs",
|
|
srcs = glob(["**"]),
|
|
tags = ["automanaged"],
|
|
visibility = ["//visibility:private"],
|
|
)
|
|
|
|
filegroup(
|
|
name = "all-srcs",
|
|
srcs = [":package-srcs"],
|
|
tags = ["automanaged"],
|
|
visibility = ["//visibility:public"],
|
|
)
|
|
|
|
go_test(
|
|
name = "go_default_test",
|
|
srcs = [
|
|
"explain_test.go",
|
|
"field_lookup_test.go",
|
|
"fields_printer_test.go",
|
|
"formatter_test.go",
|
|
"model_printer_test.go",
|
|
"recursive_fields_printer_test.go",
|
|
"typename_test.go",
|
|
],
|
|
data = ["test-swagger.json"],
|
|
importpath = "k8s.io/kubernetes/pkg/kubectl/explain",
|
|
library = ":go_default_library",
|
|
deps = [
|
|
"//pkg/kubectl/cmd/testing:go_default_library",
|
|
"//pkg/kubectl/cmd/util/openapi/testing:go_default_library",
|
|
"//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library",
|
|
"//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
|
|
],
|
|
)
|