Getting Kubernetes documentation using kubectl

3 min read | by Jordi Prats

While forking on Kubernetes manifest it's easy to forget the available fields for each Kubernetes object. Using kubectl explain we can get all the fields available with a short description of them. Pretty much a man inside kubectl

For example, to get all the (first-level) fields for a Pod we just need to run kubectl explain pod:

$ kubectl explain pod KIND: Pod VERSION: v1 DESCRIPTION:  Pod is a collection of containers that can run on a host. This resource is  created by clients and scheduled onto hosts. FIELDS:  apiVersion <string>  APIVersion defines the versioned schema of this representation of an  object. Servers should convert recognized schemas to the latest internal  value, and may reject unrecognized values. More info:  https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources  kind <string>  Kind is a string value representing the REST resource this object  represents. Servers may infer this from the endpoint the client submits  requests to. Cannot be updated. In CamelCase. More info:  https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds  metadata <Object>  Standard object's metadata. More info:  https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata  spec <Object>  Specification of the desired behavior of the pod. More info:  https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status  status <Object>  Most recently observed status of the pod. This data may not be up to date.  Populated by the system. Read-only. More info:  https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status 

If we want to get all the available fields for the spec we just need to append it to the explain as follows:

$ kubectl explain pod.spec KIND: Pod VERSION: v1 RESOURCE: spec <Object> DESCRIPTION:  Specification of the desired behavior of the pod. More info:  https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status  PodSpec is a description of a pod. FIELDS:  activeDeadlineSeconds <integer>  Optional duration in seconds the pod may be active on the node relative to  StartTime before the system will actively try to mark it failed and kill  associated containers. Value must be a positive integer.  affinity <Object>  If specified, the pod's scheduling constraints (...) 

And so on:

$ kubectl explain deployment.spec.template KIND: Deployment VERSION: apps/v1 RESOURCE: template <Object> DESCRIPTION:  Template describes the pods that will be created.  PodTemplateSpec describes the data a pod should have when created from a  template FIELDS:  metadata <Object>  Standard object's metadata. More info:  https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata  spec <Object>  Specification of the desired behavior of the pod. More info:  https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status 

Posted on 13/08/2021