mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-24 04:06:03 +00:00
Merge pull request #10806 from hurf/help_describe
Add a better help message for kubectl describe
This commit is contained in:
commit
eff5f17b1e
@ -26,6 +26,12 @@ $ kubectl describe RESOURCE NAME\_PREFIX
|
||||
will first check for an exact match on RESOURCE and NAME\_PREFIX. If no such resource
|
||||
exists, it will output details for every resource that has a name prefixed with NAME\_PREFIX
|
||||
|
||||
.PP
|
||||
Possible resources include pods (po), replicationcontrollers (rc), services
|
||||
(svc), nodes (no), events (ev), componentstatuses (cs), limitRanges (limits),
|
||||
persistentVolumes (pv), persistentVolumeClaims (pvc), resourceQuotas (quota)
|
||||
or secrets.
|
||||
|
||||
|
||||
.SH OPTIONS
|
||||
.PP
|
||||
|
@ -29,6 +29,11 @@ $ kubectl describe RESOURCE NAME_PREFIX
|
||||
will first check for an exact match on RESOURCE and NAME_PREFIX. If no such resource
|
||||
exists, it will output details for every resource that has a name prefixed with NAME_PREFIX
|
||||
|
||||
Possible resources include pods (po), replicationcontrollers (rc), services
|
||||
(svc), nodes (no), events (ev), componentstatuses (cs), limitRanges (limits),
|
||||
persistentVolumes (pv), persistentVolumeClaims (pvc), resourceQuotas (quota)
|
||||
or secrets.
|
||||
|
||||
```
|
||||
kubectl describe (RESOURCE NAME_PREFIX | RESOURCE/NAME)
|
||||
```
|
||||
@ -89,7 +94,7 @@ $ kubectl describe pods frontend
|
||||
### SEE ALSO
|
||||
* [kubectl](kubectl.md) - kubectl controls the Kubernetes cluster manager
|
||||
|
||||
###### Auto generated by spf13/cobra at 2015-07-14 00:11:42.955631296 +0000 UTC
|
||||
###### Auto generated by spf13/cobra at 2015-07-14 08:21:33.374469932 +0000 UTC
|
||||
|
||||
|
||||
<!-- BEGIN MUNGE: GENERATED_ANALYTICS -->
|
||||
|
@ -90,6 +90,18 @@ __custom_func() {
|
||||
;;
|
||||
esac
|
||||
}
|
||||
`
|
||||
valid_resources = `Valid resource types include:
|
||||
* pods (aka 'po')
|
||||
* replicationcontrollers (aka 'rc')
|
||||
* services (aka 'svc')
|
||||
* nodes (aka 'no')
|
||||
* events (aka 'ev')
|
||||
* secrets
|
||||
* limits
|
||||
* persistentVolumes (aka 'pv')
|
||||
* persistentVolumeClaims (aka 'pvc')
|
||||
* quota
|
||||
`
|
||||
)
|
||||
|
||||
|
@ -23,7 +23,7 @@ import (
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
|
||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/api/errors"
|
||||
apierrors "github.com/GoogleCloudPlatform/kubernetes/pkg/api/errors"
|
||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/api/meta"
|
||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubectl"
|
||||
cmdutil "github.com/GoogleCloudPlatform/kubernetes/pkg/kubectl/cmd/util"
|
||||
@ -40,7 +40,12 @@ given resource or group of resources.
|
||||
$ kubectl describe RESOURCE NAME_PREFIX
|
||||
|
||||
will first check for an exact match on RESOURCE and NAME_PREFIX. If no such resource
|
||||
exists, it will output details for every resource that has a name prefixed with NAME_PREFIX`
|
||||
exists, it will output details for every resource that has a name prefixed with NAME_PREFIX
|
||||
|
||||
Possible resources include pods (po), replicationcontrollers (rc), services
|
||||
(svc), nodes (no), events (ev), componentstatuses (cs), limitRanges (limits),
|
||||
persistentVolumes (pv), persistentVolumeClaims (pvc), resourceQuotas (quota)
|
||||
or secrets.`
|
||||
describe_example = `// Describe a node
|
||||
$ kubectl describe nodes kubernetes-minion-emt8.c.myproject.internal
|
||||
|
||||
@ -78,6 +83,11 @@ func RunDescribe(f *cmdutil.Factory, out io.Writer, cmd *cobra.Command, args []s
|
||||
return err
|
||||
}
|
||||
|
||||
if len(args) == 0 {
|
||||
fmt.Fprint(out, "You must specify the type of resource to describe. ", valid_resources)
|
||||
return cmdutil.UsageError(cmd, "Required resource not specified.")
|
||||
}
|
||||
|
||||
mapper, typer := f.Object()
|
||||
r := resource.NewBuilder(mapper, typer, f.ClientMapperForCommand()).
|
||||
ContinueOnError().
|
||||
@ -101,7 +111,7 @@ func RunDescribe(f *cmdutil.Factory, out io.Writer, cmd *cobra.Command, args []s
|
||||
}
|
||||
infos, err := r.Infos()
|
||||
if err != nil {
|
||||
if errors.IsNotFound(err) && len(args) == 2 {
|
||||
if apierrors.IsNotFound(err) && len(args) == 2 {
|
||||
return DescribeMatchingResources(mapper, typer, describer, f, cmdNamespace, args[0], args[1], out)
|
||||
}
|
||||
return err
|
||||
|
@ -17,7 +17,6 @@ limitations under the License.
|
||||
package cmd
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
|
||||
@ -101,25 +100,8 @@ func RunGet(f *cmdutil.Factory, out io.Writer, cmd *cobra.Command, args []string
|
||||
}
|
||||
|
||||
if len(args) == 0 {
|
||||
fmt.Fprint(out, `
|
||||
You must specify the type of resource to get. Valid resource types include:
|
||||
* componentStatuses (aka 'cs')
|
||||
* endpoints (aka 'ep')
|
||||
* events (aka 'ev')
|
||||
* limits
|
||||
* namespaces
|
||||
* nodes (aka 'no')
|
||||
* persistentVolumeClaims (aka 'pvc')
|
||||
* persistentVolumes (aka 'pv')
|
||||
* pods (aka 'po')
|
||||
* podTemplates
|
||||
* quota
|
||||
* replicationcontrollers (aka 'rc')
|
||||
* secrets
|
||||
* serviceAccounts
|
||||
* services
|
||||
`)
|
||||
return errors.New("Required resource not specified.")
|
||||
fmt.Fprint(out, "You must specify the type of resource to get. ", valid_resources)
|
||||
return cmdutil.UsageError(cmd, "Required resource not specified.")
|
||||
}
|
||||
|
||||
// handle watch separately since we cannot watch multiple resource types
|
||||
|
Loading…
Reference in New Issue
Block a user