Where is the complete list of kubernetes objects?

10/29/2018

kubernetes seems to have lot of objects. I can't seem to find the full list of objects anywhere. After briefly searching on google, I can find results which mention a subset of kubernetes objects. Is the full list of objects documented somewhere, perhaps in source code? Thank you.

-- user674669
kubernetes

3 Answers

3/14/2019

Following command successfully display all kubernetes objects

kubectl api-resources

Example

[root@hsk-controller ~]# kubectl api-resources
NAME                              SHORTNAMES       KIND
bindings                                           Binding
componentstatuses                 cs               ComponentStatus
configmaps                        cm               ConfigMap
endpoints                         ep               Endpoints
events                            ev               Event
limitranges                       limits           LimitRange
namespaces                        ns               Namespace
nodes                             no               Node
persistentvolumeclaims            pvc              PersistentVolumeClaim
persistentvolumes                 pv               PersistentVolume
pods                              po               Pod
podtemplates                                       PodTemplate
replicationcontrollers            rc               ReplicationController
resourcequotas                    quota            ResourceQuota
secrets                                            Secret
serviceaccounts                   sa               ServiceAccount
services                          svc              Service
initializerconfigurations                          InitializerConfiguration
mutatingwebhookconfigurations                      MutatingWebhookConfiguration
validatingwebhookconfigurations                    ValidatingWebhookConfiguration
customresourcedefinitions         crd,crds         CustomResourceDefinition
apiservices                                        APIService
controllerrevisions                                ControllerRevision
daemonsets                        ds               DaemonSet
deployments                       deploy           Deployment
replicasets                       rs               ReplicaSet
statefulsets                      sts              StatefulSet
tokenreviews                                       TokenReview
localsubjectaccessreviews                          LocalSubjectAccessReview
selfsubjectaccessreviews                           SelfSubjectAccessReview
selfsubjectrulesreviews                            SelfSubjectRulesReview
subjectaccessreviews                               SubjectAccessReview
horizontalpodautoscalers          hpa              HorizontalPodAutoscaler
cronjobs                          cj               CronJob
jobs                                               Job
brpolices                         br,bp            BrPolicy
clusters                          rcc              Cluster
filesystems                       rcfs             Filesystem
objectstores                      rco              ObjectStore
pools                             rcp              Pool
certificatesigningrequests        csr              CertificateSigningRequest
leases                                             Lease
events                            ev               Event
daemonsets                        ds               DaemonSet
deployments                       deploy           Deployment
ingresses                         ing              Ingress
networkpolicies                   netpol           NetworkPolicy
podsecuritypolicies               psp              PodSecurityPolicy
replicasets                       rs               ReplicaSet
nodes                                              NodeMetrics
pods                                               PodMetrics
networkpolicies                   netpol           NetworkPolicy
poddisruptionbudgets              pdb              PodDisruptionBudget
podsecuritypolicies               psp              PodSecurityPolicy
clusterrolebindings                                ClusterRoleBinding
clusterroles                                       ClusterRole
rolebindings                                       RoleBinding
roles                                              Role
volumes                           rv               Volume
priorityclasses                   pc               PriorityClass
storageclasses                    sc               StorageClass
volumeattachments                                  VolumeAttachment

Note: kubernate version is v1.12*

kubectl version
-- Harsimranjit Singh Kler
Source: StackOverflow

10/30/2018

The following command list all supported API versions:

$ kubectl api-versions

You can have a bit detailed information from kube-apiserver REST API:

Open connection to kube-apiserver

$ kubectl proxy &

Now you can discover API resources:

This request gives you all existed paths on apiserver (in JSON format):

$ curl http://localhost:8001/

    "/apis/extensions/v1beta1",
    "/apis/networking.k8s.io",
    "/apis/networking.k8s.io/v1",
    "/apis/policy",
    "/apis/policy/v1beta1",
    "/apis/rbac.authorization.k8s.io",
    "/apis/rbac.authorization.k8s.io/v1",
 ...
   "/version"
  ]
}

You can request details about particular path:

curl http://localhost:8001/api/v1

...
    {
      "name": "configmaps",
      "singularName": "",
      "namespaced": true,
      "kind": "ConfigMap",
      "verbs": [
        "create",
        "delete",
        "deletecollection",
        "get",
        "list",
        "patch",
        "update",
        "watch"
      ],
      "shortNames": [
        "cm"
      ]
    },
...

This information helps you to write kubectl commands, e.g.:

$ kubectl get configmaps
$ kubectl get cm

But you may find more convenient to use built-in documentation provided by kubectl explain.

For example, this command shows you a list of Kubernetes objects:

$ kubectl explain

You can have detailed information about any of listed resources:

$ kubectl explain rc
$ kubectl explain rc.spec
$ kubectl explain rc.spec.selector

Or you can print full blown YAML template(or part) of the object by adding --recursive flag:

$ kubectl explain rc --recursive
$ kubectl explain rc.metadata --recursive

Links in the desctiption points to the documentation about particular object. E.g.:

DESCRIPTION:
     If the Labels of a ReplicationController are empty, they are defaulted to
     be the same as the Pod(s) that the replication controller manages. Standard
     object's metadata. More info:
     https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     ObjectMeta is metadata that all persisted resources must have, which
     includes all objects users must create.

If you need complete description with examples you can always find it in the official API Reference (or the older version), mentioned by Matthew L Daniel

You also might find helpful kubectl Reference or kubectl Cheatsheet

-- VAS
Source: StackOverflow

10/19/2019

web https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.16/

resources list

$ kubectl api-resources -o wide 
    NAME                              SHORTNAMES   APIGROUP                       NAMESPACED   KIND                             VERBS
    bindings                                                                      true         Binding                          [create]
    componentstatuses                 cs                                          false        ComponentStatus                  [get list]
    configmaps                        cm                                          true         ConfigMap                        [create delete deletecollection get list patch update watch]
    endpoints                         ep                                          true         Endpoints                        [create delete deletecollection get list patch update watch]
    events                            ev                                          true         Event                            [create delete deletecollection get list patch update watch]
    limitranges                       limits                                      true         LimitRange                       [create delete deletecollection get list patch update watch]
    namespaces                        ns                                          false        Namespace                        [create delete get list patch update watch]
    nodes                             no                                          false        Node                             [create delete deletecollection get list patch update watch]
    persistentvolumeclaims            pvc                                         true         PersistentVolumeClaim            [create delete deletecollection get list patch update watch]
    persistentvolumes                 pv                                          false        PersistentVolume                 [create delete deletecollection get list patch update watch]
    pods                              po                                          true         Pod                              [create delete deletecollection get list patch update watch]
    podtemplates                                                                  true         PodTemplate                      [create delete deletecollection get list patch update watch]
    replicationcontrollers            rc                                          true         ReplicationController            [create delete deletecollection get list patch update watch]
    resourcequotas                    quota                                       true         ResourceQuota                    [create delete deletecollection get list patch update watch]
    secrets                                                                       true         Secret                           [create delete deletecollection get list patch update watch]
    serviceaccounts                   sa                                          true         ServiceAccount                   [create delete deletecollection get list patch update watch]
    services                          svc                                         true         Service                          [create delete get list patch update watch]
    mutatingwebhookconfigurations                  admissionregistration.k8s.io   false        MutatingWebhookConfiguration     [create delete deletecollection get list patch update watch]
    validatingwebhookconfigurations                admissionregistration.k8s.io   false        ValidatingWebhookConfiguration   [create delete deletecollection get list patch update watch]
    customresourcedefinitions         crd,crds     apiextensions.k8s.io           false        CustomResourceDefinition         [create delete deletecollection get list patch update watch]
    apiservices                                    apiregistration.k8s.io         false        APIService                       [create delete deletecollection get list patch update watch]
    controllerrevisions                            apps                           true         ControllerRevision               [create delete deletecollection get list patch update watch]
    daemonsets                        ds           apps                           true         DaemonSet                        [create delete deletecollection get list patch update watch]
    deployments                       deploy       apps                           true         Deployment                       [create delete deletecollection get list patch update watch]
    replicasets                       rs           apps                           true         ReplicaSet                       [create delete deletecollection get list patch update watch]
    statefulsets                      sts          apps                           true         StatefulSet                      [create delete deletecollection get list patch update watch]
    tokenreviews                                   authentication.k8s.io          false        TokenReview                      [create]
    localsubjectaccessreviews                      authorization.k8s.io           true         LocalSubjectAccessReview         [create]
    selfsubjectaccessreviews                       authorization.k8s.io           false        SelfSubjectAccessReview          [create]
    selfsubjectrulesreviews                        authorization.k8s.io           false        SelfSubjectRulesReview           [create]
    subjectaccessreviews                           authorization.k8s.io           false        SubjectAccessReview              [create]
    horizontalpodautoscalers          hpa          autoscaling                    true         HorizontalPodAutoscaler          [create delete deletecollection get list patch update watch]
    cronjobs                          cj           batch                          true         CronJob                          [create delete deletecollection get list patch update watch]
    jobs                                           batch                          true         Job                              [create delete deletecollection get list patch update watch]
    certificatesigningrequests        csr          certificates.k8s.io            false        CertificateSigningRequest        [create delete deletecollection get list patch update watch]
    leases                                         coordination.k8s.io            true         Lease                            [create delete deletecollection get list patch update watch]
    events                            ev           events.k8s.io                  true         Event                            [create delete deletecollection get list patch update watch]
    ingresses                         ing          extensions                     true         Ingress                          [create delete deletecollection get list patch update watch]
    ingresses                         ing          networking.k8s.io              true         Ingress                          [create delete deletecollection get list patch update watch]
    networkpolicies                   netpol       networking.k8s.io              true         NetworkPolicy                    [create delete deletecollection get list patch update watch]
    runtimeclasses                                 node.k8s.io                    false        RuntimeClass                     [create delete deletecollection get list patch update watch]
    poddisruptionbudgets              pdb          policy                         true         PodDisruptionBudget              [create delete deletecollection get list patch update watch]
    podsecuritypolicies               psp          policy                         false        PodSecurityPolicy                [create delete deletecollection get list patch update watch]
    clusterrolebindings                            rbac.authorization.k8s.io      false        ClusterRoleBinding               [create delete deletecollection get list patch update watch]
    clusterroles                                   rbac.authorization.k8s.io      false        ClusterRole                      [create delete deletecollection get list patch update watch]
    rolebindings                                   rbac.authorization.k8s.io      true         RoleBinding                      [create delete deletecollection get list patch update watch]
    roles                                          rbac.authorization.k8s.io      true         Role                             [create delete deletecollection get list patch update watch]
    priorityclasses                   pc           scheduling.k8s.io              false        PriorityClass                    [create delete deletecollection get list patch update watch]
    csidrivers                                     storage.k8s.io                 false        CSIDriver                        [create delete deletecollection get list patch update watch]
    csinodes                                       storage.k8s.io                 false        CSINode                          [create delete deletecollection get list patch update watch]
    storageclasses                    sc           storage.k8s.io                 false        StorageClass                     [create delete deletecollection get list patch update watch]
    volumeattachments                              storage.k8s.io                 false        VolumeAttachment                 [create delete deletecollection get list patch update watch]

details about each object

    $ kubectl explain --help
    List the fields for supported resources

     This command describes the fields associated with each supported API resource. Fields are identified via a simple JSONPath identifier:

      <type>.<fieldName>[.<fieldName>]

 Add the --recursive flag to display all of the fields at once without descriptions. Information about each field is retrieved from the server in OpenAPI format.

Use "kubectl api-resources" for a complete list of supported resources.

Examples:
  # Get the documentation of the resource and its fields
  kubectl explain pods

  # Get the documentation of a specific field of a resource
  kubectl explain pods.spec.containers

Options:
      --api-version='': Get different explanations for particular API version
      --recursive=false: Print the fields of fields (Currently only 1 level deep)

Usage:
  kubectl explain RESOURCE [options]

Use "kubectl options" for a list of global command-line options (applies to all commands).
-- ManishSingh
Source: StackOverflow