Skip to content

Instantly share code, notes, and snippets.

@brianpursley
Created May 13, 2022 19:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save brianpursley/5de3ffbffad58f95ddf9aaa1362f1f87 to your computer and use it in GitHub Desktop.
Save brianpursley/5de3ffbffad58f95ddf9aaa1362f1f87 to your computer and use it in GitHub Desktop.
Validate functions that operate on cmd and args

Most Validate functions take no parameters, and only validate against Options:

~/go/src/k8s.io/kubernetes (master) $ grep -r ./staging/src/k8s.io/kubectl -Pe 'func.*\(.*Options\).Validate\(\)'
./staging/src/k8s.io/kubectl/pkg/cmd/set/set_resources.go:func (o *SetResourcesOptions) Validate() error {
./staging/src/k8s.io/kubectl/pkg/cmd/set/set_selector.go:func (o *SetSelectorOptions) Validate() error {
./staging/src/k8s.io/kubectl/pkg/cmd/set/set_image.go:func (o *SetImageOptions) Validate() error {
./staging/src/k8s.io/kubectl/pkg/cmd/set/set_subject.go:func (o *SubjectOptions) Validate() error {
./staging/src/k8s.io/kubectl/pkg/cmd/set/set_env.go:func (o *EnvOptions) Validate() error {
./staging/src/k8s.io/kubectl/pkg/cmd/proxy/proxy.go:func (o ProxyOptions) Validate() error {
./staging/src/k8s.io/kubectl/pkg/cmd/label/label.go:func (o *LabelOptions) Validate() error {
./staging/src/k8s.io/kubectl/pkg/cmd/attach/attach.go:func (o *AttachOptions) Validate() error {
./staging/src/k8s.io/kubectl/pkg/cmd/apply/apply_set_last_applied.go:func (o *SetLastAppliedOptions) Validate() error {
./staging/src/k8s.io/kubectl/pkg/cmd/portforward/portforward.go:func (o PortForwardOptions) Validate() error {
./staging/src/k8s.io/kubectl/pkg/cmd/auth/reconcile.go:func (o *ReconcileOptions) Validate() error {
./staging/src/k8s.io/kubectl/pkg/cmd/auth/cani.go:func (o *CanIOptions) Validate() error {
./staging/src/k8s.io/kubectl/pkg/cmd/autoscale/autoscale.go:func (o *AutoscaleOptions) Validate() error {
./staging/src/k8s.io/kubectl/pkg/cmd/taint/taint.go:func (o TaintOptions) Validate() error {
./staging/src/k8s.io/kubectl/pkg/cmd/annotate/annotate.go:func (o AnnotateOptions) Validate() error {
./staging/src/k8s.io/kubectl/pkg/cmd/certificates/certificates.go:func (o *CertificateOptions) Validate() error {
./staging/src/k8s.io/kubectl/pkg/cmd/exec/exec.go:func (p *ExecOptions) Validate() error {
./staging/src/k8s.io/kubectl/pkg/cmd/apiresources/apiresources.go:func (o *APIResourceOptions) Validate() error {
./staging/src/k8s.io/kubectl/pkg/cmd/rollout/rollout_history.go:func (o *RolloutHistoryOptions) Validate() error {
./staging/src/k8s.io/kubectl/pkg/cmd/rollout/rollout_status.go:func (o *RolloutStatusOptions) Validate() error {
./staging/src/k8s.io/kubectl/pkg/cmd/rollout/rollout_resume.go:func (o *ResumeOptions) Validate() error {
./staging/src/k8s.io/kubectl/pkg/cmd/rollout/rollout_undo.go:func (o *UndoOptions) Validate() error {
./staging/src/k8s.io/kubectl/pkg/cmd/rollout/rollout_restart.go:func (o *RestartOptions) Validate() error {
./staging/src/k8s.io/kubectl/pkg/cmd/rollout/rollout_pause.go:func (o *PauseOptions) Validate() error {
./staging/src/k8s.io/kubectl/pkg/cmd/create/create_clusterrole.go:func (c *CreateClusterRoleOptions) Validate() error {
./staging/src/k8s.io/kubectl/pkg/cmd/create/create_token.go:func (o *TokenOptions) Validate() error {
./staging/src/k8s.io/kubectl/pkg/cmd/create/create_role.go:func (o *CreateRoleOptions) Validate() error {
./staging/src/k8s.io/kubectl/pkg/cmd/create/create_secret_docker.go:func (o *CreateSecretDockerRegistryOptions) Validate() error {
./staging/src/k8s.io/kubectl/pkg/cmd/create/create_namespace.go:func (o *NamespaceOptions) Validate() error {
./staging/src/k8s.io/kubectl/pkg/cmd/create/create_job.go:func (o *CreateJobOptions) Validate() error {
./staging/src/k8s.io/kubectl/pkg/cmd/create/create_configmap.go:func (o *ConfigMapOptions) Validate() error {
./staging/src/k8s.io/kubectl/pkg/cmd/create/create_ingress.go:func (o *CreateIngressOptions) Validate() error {
./staging/src/k8s.io/kubectl/pkg/cmd/create/create_service.go:func (o *ServiceOptions) Validate() error {
./staging/src/k8s.io/kubectl/pkg/cmd/create/create_rolebinding.go:func (o *RoleBindingOptions) Validate() error {
./staging/src/k8s.io/kubectl/pkg/cmd/create/create_secret.go:func (o *CreateSecretOptions) Validate() error {
./staging/src/k8s.io/kubectl/pkg/cmd/create/create_secret_tls.go:func (o *CreateSecretTLSOptions) Validate() error {
./staging/src/k8s.io/kubectl/pkg/cmd/create/create_deployment.go:func (o *CreateDeploymentOptions) Validate() error {
./staging/src/k8s.io/kubectl/pkg/cmd/top/top_node.go:func (o *TopNodeOptions) Validate() error {
./staging/src/k8s.io/kubectl/pkg/cmd/top/top_pod.go:func (o *TopPodOptions) Validate() error {
./staging/src/k8s.io/kubectl/pkg/cmd/logs/logs.go:func (o LogsOptions) Validate() error {
./staging/src/k8s.io/kubectl/pkg/cmd/config/rename_context.go:func (o RenameContextOptions) Validate() error {
./staging/src/k8s.io/kubectl/pkg/cmd/config/delete_user.go:func (o *DeleteUserOptions) Validate() error {
./staging/src/k8s.io/kubectl/pkg/cmd/config/view.go:func (o ViewOptions) Validate() error {
./staging/src/k8s.io/kubectl/pkg/cmd/delete/delete.go:func (o *DeleteOptions) Validate() error {
./staging/src/k8s.io/kubectl/pkg/cmd/util/editor/editoptions.go:func (o *EditOptions) Validate() error {
./staging/src/k8s.io/kubectl/pkg/cmd/patch/patch.go:func (o *PatchOptions) Validate() error {

Some Validate functions take cmd and args as parameters:

~/go/src/k8s.io/kubernetes (master) $ grep -r ./staging/src/k8s.io/kubectl -Pe 'func.*\(.*Options\).Validate\(.+\)'
./staging/src/k8s.io/kubectl/pkg/cmd/replace/replace.go:func (o *ReplaceOptions) Validate(cmd *cobra.Command) error {
./staging/src/k8s.io/kubectl/pkg/cmd/get/get.go:func (o *GetOptions) Validate(cmd *cobra.Command) error {
./staging/src/k8s.io/kubectl/pkg/cmd/describe/describe.go:func (o *DescribeOptions) Validate(args []string) error {
./staging/src/k8s.io/kubectl/pkg/cmd/cp/cp.go:func (o *CopyOptions) Validate(cmd *cobra.Command, args []string) error {
./staging/src/k8s.io/kubectl/pkg/cmd/scale/scale.go:func (o *ScaleOptions) Validate(cmd *cobra.Command) error {
./staging/src/k8s.io/kubectl/pkg/cmd/apply/apply.go:func (o *ApplyOptions) Validate(cmd *cobra.Command, args []string) error {
./staging/src/k8s.io/kubectl/pkg/cmd/apply/apply_view_last_applied.go:func (o *ViewLastAppliedOptions) Validate(cmd *cobra.Command) error {
./staging/src/k8s.io/kubectl/pkg/cmd/explain/explain.go:func (o *ExplainOptions) Validate(args []string) error {
./staging/src/k8s.io/kubectl/pkg/cmd/version/version.go:func (o *Options) Validate(args []string) error {
./staging/src/k8s.io/kubectl/pkg/cmd/debug/debug.go:func (o *DebugOptions) Validate(cmd *cobra.Command) error {
./staging/src/k8s.io/kubectl/pkg/cmd/config/get_contexts.go:func (o *GetContextsOptions) Validate(cmd *cobra.Command) error {
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment