genericcli

package
v2.11.26 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 3, 2024 License: Apache-2.0 Imports: 32 Imported by: 0

Documentation

Overview

Package genericcli includes utilities to build generic CLI commands for operating with Kubernetes style resources.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetResourceInterface

func GetResourceInterface(ctx context.Context, t Type, client dynamic.Interface, ns string) dynamic.ResourceInterface

GetResourceInterface is a helper method to return the Resource interface of a given client.

func NewDeleteByNameCommand

func NewDeleteByNameCommand(t Type, p *config.KfParams, opts ...DeleteByNameOption) *cobra.Command

NewDeleteByNameCommand creates a delete command for Kubernetes objects that works by the name of the object.

func NewDescribeCommand

func NewDescribeCommand(t Type, p *config.KfParams, opts ...DescribeOption) *cobra.Command

NewDescribeCommand creates a describe command.

func NewListCommand

func NewListCommand(t Type, p *config.KfParams, opts ...ListOption) *cobra.Command

NewListCommand creates a list command that can print tables.

func NewStubCommand

func NewStubCommand(name string, short string, alt string, example string, opts ...StubOption) *cobra.Command

NewStubCommand creates a stub command.

func NewXargsCommand added in v2.11.18

func NewXargsCommand(t Type, p *config.KfParams, spacesClient spaces.Client, opts ...XargsOption) *cobra.Command

NewListCommand creates a list command that can print tables.

func ValidArgsFunction

func ValidArgsFunction(t Type, p *config.KfParams) func(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective)

ValidArgsFunction creates a cobra.ValidArgsFunction for the generic Type t.

Types

type DeleteByNameOption

type DeleteByNameOption func(*deleteByNameConfig)

DeleteByNameOption is a single option for configuring a deleteByNameConfig

func WithDeleteByNameAdditionalLongText

func WithDeleteByNameAdditionalLongText(val string) DeleteByNameOption

WithDeleteByNameAdditionalLongText creates an Option that sets additional text to append to long.

func WithDeleteByNameAliases

func WithDeleteByNameAliases(val []string) DeleteByNameOption

WithDeleteByNameAliases creates an Option that sets an array of aliases that can be used instead of the command name.

func WithDeleteByNameCommandName

func WithDeleteByNameCommandName(val string) DeleteByNameOption

WithDeleteByNameCommandName creates an Option that sets the name to use for the command.

func WithDeleteByNameExample

func WithDeleteByNameExample(val string) DeleteByNameOption

WithDeleteByNameExample creates an Option that sets the example to use for the command.

func WithDeleteByNameLong

func WithDeleteByNameLong(val string) DeleteByNameOption

WithDeleteByNameLong creates an Option that sets the long description to use for the command.

func WithDeleteByNamePropagationPolicy

func WithDeleteByNamePropagationPolicy(val metav1.DeletionPropagation) DeleteByNameOption

WithDeleteByNamePropagationPolicy creates an Option that sets propagation policy for deleting an object.

func WithDeleteByNameShort

func WithDeleteByNameShort(val string) DeleteByNameOption

WithDeleteByNameShort creates an Option that sets the short description to use for the command.

type DeleteByNameOptions

type DeleteByNameOptions []DeleteByNameOption

DeleteByNameOptions is a configuration set defining a deleteByNameConfig

func DeleteByNameOptionDefaults

func DeleteByNameOptionDefaults() DeleteByNameOptions

DeleteByNameOptionDefaults gets the default values for DeleteByName.

func (DeleteByNameOptions) AdditionalLongText

func (opts DeleteByNameOptions) AdditionalLongText() string

AdditionalLongText returns the last set value for AdditionalLongText or the empty value if not set.

func (DeleteByNameOptions) Aliases

func (opts DeleteByNameOptions) Aliases() []string

Aliases returns the last set value for Aliases or the empty value if not set.

func (DeleteByNameOptions) CommandName

func (opts DeleteByNameOptions) CommandName() string

CommandName returns the last set value for CommandName or the empty value if not set.

func (DeleteByNameOptions) Example

func (opts DeleteByNameOptions) Example() string

Example returns the last set value for Example or the empty value if not set.

func (DeleteByNameOptions) Extend

Extend creates a new DeleteByNameOptions with the contents of other overriding the values set in this DeleteByNameOptions.

func (DeleteByNameOptions) Long

func (opts DeleteByNameOptions) Long() string

Long returns the last set value for Long or the empty value if not set.

func (DeleteByNameOptions) PropagationPolicy

func (opts DeleteByNameOptions) PropagationPolicy() metav1.DeletionPropagation

PropagationPolicy returns the last set value for PropagationPolicy or the empty value if not set.

func (DeleteByNameOptions) Short

func (opts DeleteByNameOptions) Short() string

Short returns the last set value for Short or the empty value if not set.

type DescribeOption

type DescribeOption func(*describeConfig)

DescribeOption is a single option for configuring a describeConfig

func WithDescribeAliases

func WithDescribeAliases(val []string) DescribeOption

WithDescribeAliases creates an Option that sets an array of aliases that can be used instead of the command name.

func WithDescribeCommandName

func WithDescribeCommandName(val string) DescribeOption

WithDescribeCommandName creates an Option that sets the name to use for the command.

func WithDescribeExample

func WithDescribeExample(val string) DescribeOption

WithDescribeExample creates an Option that sets the example to use for the command.

func WithDescribeLong

func WithDescribeLong(val string) DescribeOption

WithDescribeLong creates an Option that sets the long description to use for the command.

func WithDescribeShort

func WithDescribeShort(val string) DescribeOption

WithDescribeShort creates an Option that sets the short description to use for the command.

type DescribeOptions

type DescribeOptions []DescribeOption

DescribeOptions is a configuration set defining a describeConfig

func DescribeOptionDefaults

func DescribeOptionDefaults() DescribeOptions

DescribeOptionDefaults gets the default values for Describe.

func (DescribeOptions) Aliases

func (opts DescribeOptions) Aliases() []string

Aliases returns the last set value for Aliases or the empty value if not set.

func (DescribeOptions) CommandName

func (opts DescribeOptions) CommandName() string

CommandName returns the last set value for CommandName or the empty value if not set.

func (DescribeOptions) Example

func (opts DescribeOptions) Example() string

Example returns the last set value for Example or the empty value if not set.

func (DescribeOptions) Extend

func (opts DescribeOptions) Extend(other DescribeOptions) DescribeOptions

Extend creates a new DescribeOptions with the contents of other overriding the values set in this DescribeOptions.

func (DescribeOptions) Long

func (opts DescribeOptions) Long() string

Long returns the last set value for Long or the empty value if not set.

func (DescribeOptions) Short

func (opts DescribeOptions) Short() string

Short returns the last set value for Short or the empty value if not set.

type KubernetesType

type KubernetesType struct {
	NsScoped bool
	Group    string
	Version  string
	Kind     string
	Resource string
	KfName   string
}

KubernetesType is an implementation of Type that relies on hard-coded values.

func (*KubernetesType) FriendlyName

func (g *KubernetesType) FriendlyName() string

FriendlyName implements Type.FriendlyName

func (*KubernetesType) GroupVersionKind

func (g *KubernetesType) GroupVersionKind(context.Context) schema.GroupVersionKind

GroupVersionKind implements Type.GroupVersionKind

func (*KubernetesType) GroupVersionResource

func (g *KubernetesType) GroupVersionResource(context.Context) schema.GroupVersionResource

GroupVersionResource implements Type.GroupVersionResource

func (*KubernetesType) Namespaced

func (g *KubernetesType) Namespaced() bool

Namespaced implements Type.Namespaced

type ListArgumentFilter

type ListArgumentFilter struct {
	// Name contains the name of the argument.
	Name string
	// Handler is a callback for the argument.
	Handler ListArgumentFilterHandler
	// Required indicates if the argument is required.
	Required bool
}

ListArgumentFilter allows attaching optional filters to arguments.

type ListArgumentFilterHandler

type ListArgumentFilterHandler func(argValue string, opts *metav1.ListOptions) error

ListArgumentFilterHandler is a callback for a CLI argument that modifies a Kubernetes ListOptions selector.

func NewAddLabelFilter

func NewAddLabelFilter(labelKey string) ListArgumentFilterHandler

NewAddLabelFilter creates a ListArgumentFilterHandler that adds an additional label to the existing selector.

type ListOption

type ListOption func(*listConfig)

ListOption is a single option for configuring a listConfig

func WithListAliases

func WithListAliases(val []string) ListOption

WithListAliases creates an Option that sets an array of aliases that can be used instead of the command name.

func WithListArgumentFilters

func WithListArgumentFilters(val []ListArgumentFilter) ListOption

WithListArgumentFilters creates an Option that sets callbacks that can modify the lister.

func WithListCommandName

func WithListCommandName(val string) ListOption

WithListCommandName creates an Option that sets the name to use for the command.

func WithListExample

func WithListExample(val string) ListOption

WithListExample creates an Option that sets the example to use for the command.

func WithListLabelFilters

func WithListLabelFilters(val map[string]string) ListOption

WithListLabelFilters creates an Option that sets flag name to label pairs to use as list filters.

func WithListLabelRequirements

func WithListLabelRequirements(val []labels.Requirement) ListOption

WithListLabelRequirements creates an Option that sets label requirements to filter resources.

func WithListLong

func WithListLong(val string) ListOption

WithListLong creates an Option that sets the long description to use for the command.

func WithListPluralFriendlyName

func WithListPluralFriendlyName(val string) ListOption

WithListPluralFriendlyName creates an Option that sets the plural object name to display for this resource.

func WithListShort

func WithListShort(val string) ListOption

WithListShort creates an Option that sets the short description to use for the command.

type ListOptions

type ListOptions []ListOption

ListOptions is a configuration set defining a listConfig

func ListOptionDefaults

func ListOptionDefaults() ListOptions

ListOptionDefaults gets the default values for List.

func (ListOptions) Aliases

func (opts ListOptions) Aliases() []string

Aliases returns the last set value for Aliases or the empty value if not set.

func (ListOptions) ArgumentFilters

func (opts ListOptions) ArgumentFilters() []ListArgumentFilter

ArgumentFilters returns the last set value for ArgumentFilters or the empty value if not set.

func (ListOptions) CommandName

func (opts ListOptions) CommandName() string

CommandName returns the last set value for CommandName or the empty value if not set.

func (ListOptions) Example

func (opts ListOptions) Example() string

Example returns the last set value for Example or the empty value if not set.

func (ListOptions) Extend

func (opts ListOptions) Extend(other ListOptions) ListOptions

Extend creates a new ListOptions with the contents of other overriding the values set in this ListOptions.

func (ListOptions) LabelFilters

func (opts ListOptions) LabelFilters() map[string]string

LabelFilters returns the last set value for LabelFilters or the empty value if not set.

func (ListOptions) LabelRequirements

func (opts ListOptions) LabelRequirements() []labels.Requirement

LabelRequirements returns the last set value for LabelRequirements or the empty value if not set.

func (ListOptions) Long

func (opts ListOptions) Long() string

Long returns the last set value for Long or the empty value if not set.

func (ListOptions) PluralFriendlyName

func (opts ListOptions) PluralFriendlyName() string

PluralFriendlyName returns the last set value for PluralFriendlyName or the empty value if not set.

func (ListOptions) Short

func (opts ListOptions) Short() string

Short returns the last set value for Short or the empty value if not set.

type StubOption

type StubOption func(*stubConfig)

StubOption is a single option for configuring a stubConfig

func WithStubAliases

func WithStubAliases(val []string) StubOption

WithStubAliases creates an Option that sets an array of aliases that can be used instead of the command name.

func WithStubCommandName

func WithStubCommandName(val string) StubOption

WithStubCommandName creates an Option that sets the name to use for the command.

func WithStubExample

func WithStubExample(val string) StubOption

WithStubExample creates an Option that sets the example to use for the command.

func WithStubLong

func WithStubLong(val string) StubOption

WithStubLong creates an Option that sets the long description to use for the command.

func WithStubShort

func WithStubShort(val string) StubOption

WithStubShort creates an Option that sets the short description to use for the command.

type StubOptions

type StubOptions []StubOption

StubOptions is a configuration set defining a stubConfig

func StubOptionDefaults

func StubOptionDefaults() StubOptions

StubOptionDefaults gets the default values for Stub.

func (StubOptions) Aliases

func (opts StubOptions) Aliases() []string

Aliases returns the last set value for Aliases or the empty value if not set.

func (StubOptions) CommandName

func (opts StubOptions) CommandName() string

CommandName returns the last set value for CommandName or the empty value if not set.

func (StubOptions) Example

func (opts StubOptions) Example() string

Example returns the last set value for Example or the empty value if not set.

func (StubOptions) Extend

func (opts StubOptions) Extend(other StubOptions) StubOptions

Extend creates a new StubOptions with the contents of other overriding the values set in this StubOptions.

func (StubOptions) Long

func (opts StubOptions) Long() string

Long returns the last set value for Long or the empty value if not set.

func (StubOptions) Short

func (opts StubOptions) Short() string

Short returns the last set value for Short or the empty value if not set.

type Type

type Type interface {
	Namespaced() bool
	GroupVersionResource(context.Context) schema.GroupVersionResource
	GroupVersionKind(context.Context) schema.GroupVersionKind
	FriendlyName() string
}

Type is the interface components need to satisfy to generate generic CLI utilities for them.

type XargFlags added in v2.11.18

type XargFlags struct {
	// contains filtered or unexported fields
}

func (*XargFlags) Add added in v2.11.18

func (f *XargFlags) Add(cmd *cobra.Command, t Type)

type XargsOption added in v2.11.18

type XargsOption func(*xargsConfig)

XargsOption is a single option for configuring a xargsConfig

func WithXargsAliases added in v2.11.18

func WithXargsAliases(val []string) XargsOption

WithXargsAliases creates an Option that sets an array of aliases that can be used instead of the command name.

func WithXargsCommandName added in v2.11.18

func WithXargsCommandName(val string) XargsOption

WithXargsCommandName creates an Option that sets the name to use for the command.

func WithXargsExample added in v2.11.18

func WithXargsExample(val string) XargsOption

WithXargsExample creates an Option that sets the example to use for the command.

func WithXargsLabelFilters added in v2.11.18

func WithXargsLabelFilters(val map[string]string) XargsOption

WithXargsLabelFilters creates an Option that sets flag name to label pairs to use as list filters.

func WithXargsLabelRequirements added in v2.11.18

func WithXargsLabelRequirements(val []labels.Requirement) XargsOption

WithXargsLabelRequirements creates an Option that sets label requirements to filter resources.

func WithXargsLong added in v2.11.18

func WithXargsLong(val string) XargsOption

WithXargsLong creates an Option that sets the long description to use for the command.

func WithXargsPluralFriendlyName added in v2.11.18

func WithXargsPluralFriendlyName(val string) XargsOption

WithXargsPluralFriendlyName creates an Option that sets the plural object name to display for this resource.

func WithXargsShort added in v2.11.18

func WithXargsShort(val string) XargsOption

WithXargsShort creates an Option that sets the short description to use for the command.

type XargsOptions added in v2.11.18

type XargsOptions []XargsOption

XargsOptions is a configuration set defining a xargsConfig

func XargsOptionDefaults added in v2.11.18

func XargsOptionDefaults() XargsOptions

XargsOptionDefaults gets the default values for Xargs.

func (XargsOptions) Aliases added in v2.11.18

func (opts XargsOptions) Aliases() []string

Aliases returns the last set value for Aliases or the empty value if not set.

func (XargsOptions) CommandName added in v2.11.18

func (opts XargsOptions) CommandName() string

CommandName returns the last set value for CommandName or the empty value if not set.

func (XargsOptions) Example added in v2.11.18

func (opts XargsOptions) Example() string

Example returns the last set value for Example or the empty value if not set.

func (XargsOptions) Extend added in v2.11.18

func (opts XargsOptions) Extend(other XargsOptions) XargsOptions

Extend creates a new XargsOptions with the contents of other overriding the values set in this XargsOptions.

func (XargsOptions) LabelFilters added in v2.11.18

func (opts XargsOptions) LabelFilters() map[string]string

LabelFilters returns the last set value for LabelFilters or the empty value if not set.

func (XargsOptions) LabelRequirements added in v2.11.18

func (opts XargsOptions) LabelRequirements() []labels.Requirement

LabelRequirements returns the last set value for LabelRequirements or the empty value if not set.

func (XargsOptions) Long added in v2.11.18

func (opts XargsOptions) Long() string

Long returns the last set value for Long or the empty value if not set.

func (XargsOptions) PluralFriendlyName added in v2.11.18

func (opts XargsOptions) PluralFriendlyName() string

PluralFriendlyName returns the last set value for PluralFriendlyName or the empty value if not set.

func (XargsOptions) Short added in v2.11.18

func (opts XargsOptions) Short() string

Short returns the last set value for Short or the empty value if not set.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL