kubectl

package
v0.12.1-0...-0a124f2 Latest Latest
Warning

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

Go to latest
Published: Feb 11, 2017 License: Apache-2.0 Imports: 86 Imported by: 0

Documentation

Overview

Package kubectl is a set of libraries that are used by the kubectl command line tool. They are separated out into a library to support unit testing. Most functionality should be included in this package, and the main kubectl should really just be an entry point.

A set of common functions needed by cmd/kubectl and pkg/kubectl packages.

Index

Constants

View Source
const (
	LEVEL_0 = iota
	LEVEL_1
	LEVEL_2
	LEVEL_3
)

Each level has 2 spaces for PrefixWriter

View Source
const (
	DefaultHostAcceptRE   = "^localhost$,^127\\.0\\.0\\.1$,^\\[::1\\]$"
	DefaultPathAcceptRE   = "^.*"
	DefaultPathRejectRE   = "^/api/.*/pods/.*/exec,^/api/.*/pods/.*/attach"
	DefaultMethodRejectRE = "POST,PUT,PATCH"
)
View Source
const (
	Interval = time.Second * 1
	Timeout  = time.Minute * 5
)
View Source
const (
	ChangeCauseAnnotation = "kubernetes.io/change-cause"
)

Variables

View Source
var ResourcesShortcutStatic = []ResourceShortcuts{

	{
		ShortForm: schema.GroupResource{Resource: "cm"},
		LongForm:  schema.GroupResource{Resource: "configmaps"},
	},
	{
		ShortForm: schema.GroupResource{Resource: "cs"},
		LongForm:  schema.GroupResource{Resource: "componentstatuses"},
	},
	{
		ShortForm: schema.GroupResource{Resource: "ep"},
		LongForm:  schema.GroupResource{Resource: "endpoints"},
	},
	{
		ShortForm: schema.GroupResource{Resource: "ev"},
		LongForm:  schema.GroupResource{Resource: "events"},
	},
	{
		ShortForm: schema.GroupResource{Resource: "limits"},
		LongForm:  schema.GroupResource{Resource: "limitranges"},
	},
	{
		ShortForm: schema.GroupResource{Resource: "no"},
		LongForm:  schema.GroupResource{Resource: "nodes"},
	},
	{
		ShortForm: schema.GroupResource{Resource: "ns"},
		LongForm:  schema.GroupResource{Resource: "namespaces"},
	},
	{
		ShortForm: schema.GroupResource{Resource: "po"},
		LongForm:  schema.GroupResource{Resource: "pods"},
	},
	{
		ShortForm: schema.GroupResource{Resource: "pvc"},
		LongForm:  schema.GroupResource{Resource: "persistentvolumeclaims"},
	},
	{
		ShortForm: schema.GroupResource{Resource: "pv"},
		LongForm:  schema.GroupResource{Resource: "persistentvolumes"},
	},
	{
		ShortForm: schema.GroupResource{Resource: "quota"},
		LongForm:  schema.GroupResource{Resource: "resourcequotas"},
	},
	{
		ShortForm: schema.GroupResource{Resource: "rc"},
		LongForm:  schema.GroupResource{Resource: "replicationcontrollers"},
	},
	{
		ShortForm: schema.GroupResource{Resource: "rs"},
		LongForm:  schema.GroupResource{Resource: "replicasets"},
	},
	{
		ShortForm: schema.GroupResource{Resource: "sa"},
		LongForm:  schema.GroupResource{Resource: "serviceaccounts"},
	},
	{
		ShortForm: schema.GroupResource{Resource: "svc"},
		LongForm:  schema.GroupResource{Resource: "services"},
	},
	{
		ShortForm: schema.GroupResource{Group: "autoscaling", Resource: "hpa"},
		LongForm:  schema.GroupResource{Group: "autoscaling", Resource: "horizontalpodautoscalers"},
	},
	{
		ShortForm: schema.GroupResource{Group: "certificates.k8s.io", Resource: "csr"},
		LongForm:  schema.GroupResource{Group: "certificates.k8s.io", Resource: "certificatesigningrequests"},
	},
	{
		ShortForm: schema.GroupResource{Group: "policy", Resource: "pdb"},
		LongForm:  schema.GroupResource{Group: "policy", Resource: "poddisruptionbudgets"},
	},
	{
		ShortForm: schema.GroupResource{Group: "extensions", Resource: "deploy"},
		LongForm:  schema.GroupResource{Group: "extensions", Resource: "deployments"},
	},
	{
		ShortForm: schema.GroupResource{Group: "extensions", Resource: "ds"},
		LongForm:  schema.GroupResource{Group: "extensions", Resource: "daemonsets"},
	},
	{
		ShortForm: schema.GroupResource{Group: "extensions", Resource: "hpa"},
		LongForm:  schema.GroupResource{Group: "extensions", Resource: "horizontalpodautoscalers"},
	},
	{
		ShortForm: schema.GroupResource{Group: "extensions", Resource: "ing"},
		LongForm:  schema.GroupResource{Group: "extensions", Resource: "ingresses"},
	},
	{
		ShortForm: schema.GroupResource{Group: "extensions", Resource: "psp"},
		LongForm:  schema.GroupResource{Group: "extensions", Resource: "podSecurityPolicies"},
	},
}

ResourcesShortcutStatic is the list of short names to their expanded names. Note that the list is ordered by group.

View Source
var (
	// The reverse proxy will periodically flush the io writer at this frequency.
	// Only matters for long poll connections like the one used to watch. With an
	// interval of 0 the reverse proxy will buffer content sent on any connection
	// with transfer-encoding=chunked.
	// TODO: Flush after each chunk so the client doesn't suffer a 100ms latency per
	// watch event.
	ReverseProxyFlushInterval = 100 * time.Millisecond
)

Functions

func AbortRollingUpdate

func AbortRollingUpdate(c *RollingUpdaterConfig) error

func AddDeploymentKeyToReplicationController

func AddDeploymentKeyToReplicationController(oldRc *api.ReplicationController, rcClient coreclient.ReplicationControllersGetter, podClient coreclient.PodsGetter, deploymentKey, deploymentValue, namespace string, out io.Writer) (*api.ReplicationController, error)

func AddJsonFilenameFlag

func AddJsonFilenameFlag(cmd *cobra.Command, value *[]string, usage string)

func AnnotateFlags

func AnnotateFlags(cmd *cobra.Command, generators map[string]Generator)

AnnotateFlags annotates all flags that are used by generators.

func AppendAllLabels

func AppendAllLabels(showLabels bool, itemLabels map[string]string) string

Append all labels to a single column. We need this even when show-labels flag* is false, since this adds newline delimiter to the end of each row.

func AppendLabelTabs

func AppendLabelTabs(columnLabels []string) string

Append a set of tabs for each label column. We need this in the case where we have extra lines so that the tabwriter will still line things up.

func AppendLabels

func AppendLabels(itemLabels map[string]string, columnLabels []string) string

func CreateApplyAnnotation

func CreateApplyAnnotation(info *resource.Info, codec runtime.Encoder) error

CreateApplyAnnotation gets the modified configuration of the object, without embedding it again, and then sets it on the object as the annotation.

func CreateOrUpdateAnnotation

func CreateOrUpdateAnnotation(createAnnotation bool, info *resource.Info, codec runtime.Encoder) error

Create the annotation used by kubectl apply only when createAnnotation is true Otherwise, only update the annotation when it already exists

func DecodeUnknownObject

func DecodeUnknownObject(obj runtime.Object) (runtime.Object, error)

check if the object is unstructured. If so, let's attempt to convert it to a type we can understand.

func DescribableResources

func DescribableResources() []string

List of all resource types we can describe

func DescribeEvents

func DescribeEvents(el *api.EventList, w *PrefixWriter)

func DescribeLimitRanges

func DescribeLimitRanges(limitRanges *api.LimitRangeList, w *PrefixWriter)

DescribeLimitRanges merges a set of limit range items into a single tabular description

func DescribePodTemplate

func DescribePodTemplate(template *api.PodTemplateSpec, out io.Writer)

func DescribeProbe

func DescribeProbe(probe *api.Probe) string

DescribeProbe is exported for consumers in other API groups that have probes

func DescribeResourceQuotas

func DescribeResourceQuotas(quotas *api.ResourceQuotaList, w *PrefixWriter)

DescribeResourceQuotas merges a set of quota items into a single tabular description of all quotas

func EnsureFlagsValid

func EnsureFlagsValid(cmd *cobra.Command, generators map[string]Generator, generatorInUse string) error

EnsureFlagsValid ensures that no invalid flags are being used against a generator.

func FindSourceController

func FindSourceController(r coreclient.ReplicationControllersGetter, namespace, name string) (*api.ReplicationController, error)

func GetBool

func GetBool(params map[string]string, key string, defValue bool) (bool, error)

func GetModifiedConfiguration

func GetModifiedConfiguration(info *resource.Info, annotate bool, codec runtime.Encoder) ([]byte, error)

GetModifiedConfiguration retrieves the modified configuration of the object. If annotate is true, it embeds the result as an annotation in the modified configuration. If an object was read from the command input, it will use that version of the object. Otherwise, it will use the version from the server.

func GetNewTabWriter

func GetNewTabWriter(output io.Writer) *tabwriter.Writer

GetNewTabWriter returns a tabwriter that translates tabbed columns in input into properly aligned text.

func GetNextControllerAnnotation

func GetNextControllerAnnotation(rc *api.ReplicationController) (string, bool)

func GetOriginalConfiguration

func GetOriginalConfiguration(mapping *meta.RESTMapping, obj runtime.Object) ([]byte, error)

GetOriginalConfiguration retrieves the original configuration of the object from the annotation, or nil if no annotation was found.

func HandleResourceRequirements

func HandleResourceRequirements(params map[string]string) (api.ResourceRequirements, error)

HandleResourceRequirements parses the limits and requests parameters if specified

func IsNoSuchReaperError

func IsNoSuchReaperError(err error) bool

func IsZero

func IsZero(i interface{}) bool

func LoadExistingNextReplicationController

func LoadExistingNextReplicationController(c coreclient.ReplicationControllersGetter, namespace, newName string) (*api.ReplicationController, error)

func MakeLabels

func MakeLabels(labels map[string]string) string

func MakeParams

func MakeParams(cmd *cobra.Command, params []GeneratorParam) map[string]interface{}

MakeParams is a utility that creates generator parameters from a command line

func MakeProtocols

func MakeProtocols(protocols map[string]string) string

func MakeRegexpArray

func MakeRegexpArray(str string) ([]*regexp.Regexp, error)

Splits a comma separated list of regexps into an array of Regexp objects.

func MakeRegexpArrayOrDie

func MakeRegexpArrayOrDie(str string) []*regexp.Regexp

func ParseLabels

func ParseLabels(labelSpec interface{}) (map[string]string, error)

ParseLabels turns a string representation of a label set into a map[string]string

func ParseProtocols

func ParseProtocols(protocols interface{}) (map[string]string, error)

func PrintModelDescription

func PrintModelDescription(inModel string, fieldsPath []string, w io.Writer, swaggerSchema *swagger.ApiDeclaration, r bool) error

PrintModelDescription prints the description of a specific model or dot path

func ResourceAliases

func ResourceAliases(rs []string) []string

ResourceAliases returns the resource shortcuts and plural forms for the given resources.

func ResourceShortFormFor

func ResourceShortFormFor(resource string) (string, bool)

ResourceShortFormFor looks up for a short form of resource names. TODO: Change the signature of this function so that it can make use of ResourceShortcuts.

func ScaleCondition

func ScaleCondition(r Scaler, precondition *ScalePrecondition, namespace, name string, count uint, updatedResourceVersion *string) wait.ConditionFunc

ScaleCondition is a closure around Scale that facilitates retries via util.wait

func SetNextControllerAnnotation

func SetNextControllerAnnotation(rc *api.ReplicationController, name string)

func SetOriginalConfiguration

func SetOriginalConfiguration(info *resource.Info, original []byte) error

SetOriginalConfiguration sets the original configuration of the object as the annotation on the object for later use in computing a three way patch.

func ShortHumanDuration

func ShortHumanDuration(d time.Duration) string

func SortedQoSResourceNames

func SortedQoSResourceNames(list qos.QOSList) []api.ResourceName

SortedQoSResourceNames returns the sorted resource names of a QoS list.

func SortedResourceNames

func SortedResourceNames(list api.ResourceList) []api.ResourceName

SortedResourceNames returns the sorted resource names of a resource list.

func SplitAndParseResourceRequest

func SplitAndParseResourceRequest(inResource string, mapper meta.RESTMapper) (string, []string, error)

SplitAndParseResourceRequest separates the users input into a model and fields

func UpdateApplyAnnotation

func UpdateApplyAnnotation(info *resource.Info, codec runtime.Encoder) error

UpdateApplyAnnotation calls CreateApplyAnnotation if the last applied configuration annotation is already present. Otherwise, it does nothing.

func UpdateExistingReplicationController

func UpdateExistingReplicationController(rcClient coreclient.ReplicationControllersGetter, podClient coreclient.PodsGetter, oldRc *api.ReplicationController, namespace, newName, deploymentKey, deploymentValue string, out io.Writer) (*api.ReplicationController, error)

func ValidateParams

func ValidateParams(paramSpec []GeneratorParam, params map[string]interface{}) error

ValidateParams ensures that all required params are present in the params map

Types

type BasicPod

type BasicPod struct{}

func (BasicPod) Generate

func (BasicPod) Generate(genericParams map[string]interface{}) (runtime.Object, error)

func (BasicPod) ParamNames

func (BasicPod) ParamNames() []GeneratorParam

type BasicReplicationController

type BasicReplicationController struct{}

func (BasicReplicationController) Generate

func (BasicReplicationController) Generate(genericParams map[string]interface{}) (runtime.Object, error)

func (BasicReplicationController) ParamNames

type CertificateSigningRequestDescriber

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

func (*CertificateSigningRequestDescriber) Describe

func (p *CertificateSigningRequestDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error)

type ClusterDescriber

type ClusterDescriber struct {
	fedclientset.Interface
}

func (*ClusterDescriber) Describe

func (d *ClusterDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error)

type ClusterGeneratorV1Beta1

type ClusterGeneratorV1Beta1 struct {
	// Name of the cluster context (required)
	Name string
	// ClientCIDR is the CIDR range in which the Kubernetes APIServer
	// is available for the client (optional)
	ClientCIDR string
	// ServerAddress is the APIServer address of the Kubernetes cluster
	// that is being registered (required)
	ServerAddress string
	// SecretName is the name of the secret that stores the credentials
	// for the Kubernetes cluster that is being registered (optional)
	SecretName string
}

ClusterGeneratorV1Beta1 supports stable generation of a federation/cluster resource.

func (ClusterGeneratorV1Beta1) Generate

func (s ClusterGeneratorV1Beta1) Generate(genericParams map[string]interface{}) (runtime.Object, error)

Generate returns a cluster resource using the specified parameters.

func (ClusterGeneratorV1Beta1) ParamNames

func (s ClusterGeneratorV1Beta1) ParamNames() []GeneratorParam

ParamNames returns the set of supported input parameters when using the parameter injection generator pattern.

func (ClusterGeneratorV1Beta1) StructuredGenerate

func (s ClusterGeneratorV1Beta1) StructuredGenerate() (runtime.Object, error)

StructuredGenerate outputs a federation cluster resource object using the configured fields.

type ClusterRoleBindingGeneratorV1

type ClusterRoleBindingGeneratorV1 struct {
	// Name of clusterRoleBinding (required)
	Name string
	// ClusterRole for the clusterRoleBinding (required)
	ClusterRole string
	// Users to derive the clusterRoleBinding from (optional)
	Users []string
	// Groups to derive the clusterRoleBinding from (optional)
	Groups []string
	// ServiceAccounts to derive the clusterRoleBinding from in namespace:name format(optional)
	ServiceAccounts []string
}

ClusterRoleBindingGeneratorV1 supports stable generation of a clusterRoleBinding.

func (ClusterRoleBindingGeneratorV1) Generate

func (s ClusterRoleBindingGeneratorV1) Generate(genericParams map[string]interface{}) (runtime.Object, error)

Generate returns a clusterRoleBinding using the specified parameters.

func (ClusterRoleBindingGeneratorV1) ParamNames

ParamNames returns the set of supported input parameters when using the parameter injection generator pattern.

func (ClusterRoleBindingGeneratorV1) StructuredGenerate

func (s ClusterRoleBindingGeneratorV1) StructuredGenerate() (runtime.Object, error)

StructuredGenerate outputs a clusterRoleBinding object using the configured fields.

type Column

type Column struct {
	// The header to print above the column, general style is ALL_CAPS
	Header string
	// The pointer to the field in the object to print in JSONPath form
	// e.g. {.ObjectMeta.Name}, see pkg/util/jsonpath for more details.
	FieldSpec string
}

Column represents a user specified column

type ConfigMapDescriber

type ConfigMapDescriber struct {
	clientset.Interface
}

ConfigMapDescriber generates information about a ConfigMap

func (*ConfigMapDescriber) Describe

func (d *ConfigMapDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error)

type ConfigMapGeneratorV1

type ConfigMapGeneratorV1 struct {
	// Name of configMap (required)
	Name string
	// Type of configMap (optional)
	Type string
	// FileSources to derive the configMap from (optional)
	FileSources []string
	// LiteralSources to derive the configMap from (optional)
	LiteralSources []string
}

ConfigMapGeneratorV1 supports stable generation of a configMap.

func (ConfigMapGeneratorV1) Generate

func (s ConfigMapGeneratorV1) Generate(genericParams map[string]interface{}) (runtime.Object, error)

Generate returns a configMap using the specified parameters.

func (ConfigMapGeneratorV1) ParamNames

func (s ConfigMapGeneratorV1) ParamNames() []GeneratorParam

ParamNames returns the set of supported input parameters when using the parameter injection generator pattern.

func (ConfigMapGeneratorV1) StructuredGenerate

func (s ConfigMapGeneratorV1) StructuredGenerate() (runtime.Object, error)

StructuredGenerate outputs a configMap object using the configured fields.

type CronJobDescriber

type CronJobDescriber struct {
	clientset.Interface
}

CronJobDescriber generates information about a scheduled job and the jobs it has created.

func (*CronJobDescriber) Describe

func (d *CronJobDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error)

type CronJobV2Alpha1

type CronJobV2Alpha1 struct{}

func (CronJobV2Alpha1) Generate

func (CronJobV2Alpha1) Generate(genericParams map[string]interface{}) (runtime.Object, error)

func (CronJobV2Alpha1) ParamNames

func (CronJobV2Alpha1) ParamNames() []GeneratorParam

type CustomColumnsPrinter

type CustomColumnsPrinter struct {
	Columns   []Column
	Decoder   runtime.Decoder
	NoHeaders bool
}

CustomColumnPrinter is a printer that knows how to print arbitrary columns of data from templates specified in the `Columns` array

func NewCustomColumnsPrinterFromSpec

func NewCustomColumnsPrinterFromSpec(spec string, decoder runtime.Decoder, noHeaders bool) (*CustomColumnsPrinter, error)

NewCustomColumnsPrinterFromSpec creates a custom columns printer from a comma separated list of <header>:<jsonpath-field-spec> pairs. e.g. NAME:metadata.name,API_VERSION:apiVersion creates a printer that prints:

NAME               API_VERSION
foo                bar

func NewCustomColumnsPrinterFromTemplate

func NewCustomColumnsPrinterFromTemplate(templateReader io.Reader, decoder runtime.Decoder) (*CustomColumnsPrinter, error)

NewCustomColumnsPrinterFromTemplate creates a custom columns printer from a template stream. The template is expected to consist of two lines, whitespace separated. The first line is the header line, the second line is the jsonpath field spec For example, the template below: NAME API_VERSION {metadata.name} {apiVersion}

func (*CustomColumnsPrinter) AfterPrint

func (s *CustomColumnsPrinter) AfterPrint(w io.Writer, res string) error

func (*CustomColumnsPrinter) HandledResources

func (s *CustomColumnsPrinter) HandledResources() []string

func (*CustomColumnsPrinter) PrintObj

func (s *CustomColumnsPrinter) PrintObj(obj runtime.Object, out io.Writer) error

type DaemonSetDescriber

type DaemonSetDescriber struct {
	clientset.Interface
}

DaemonSetDescriber generates information about a daemon set and the pods it has created.

func (*DaemonSetDescriber) Describe

func (d *DaemonSetDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error)

type DaemonSetReaper

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

func (*DaemonSetReaper) Stop

func (reaper *DaemonSetReaper) Stop(namespace, name string, timeout time.Duration, gracePeriod *metav1.DeleteOptions) error

type DeploymentBasicGeneratorV1

type DeploymentBasicGeneratorV1 struct {
	Name   string
	Images []string
}

DeploymentGeneratorV1 supports stable generation of a deployment

func (DeploymentBasicGeneratorV1) Generate

func (s DeploymentBasicGeneratorV1) Generate(params map[string]interface{}) (runtime.Object, error)

func (DeploymentBasicGeneratorV1) ParamNames

func (*DeploymentBasicGeneratorV1) StructuredGenerate

func (s *DeploymentBasicGeneratorV1) StructuredGenerate() (runtime.Object, error)

StructuredGenerate outputs a deployment object using the configured fields

type DeploymentDescriber

type DeploymentDescriber struct {
	clientset.Interface
	// contains filtered or unexported fields
}

DeploymentDescriber generates information about a deployment.

func (*DeploymentDescriber) Describe

func (dd *DeploymentDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error)

type DeploymentHistoryViewer

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

func (*DeploymentHistoryViewer) ViewHistory

func (h *DeploymentHistoryViewer) ViewHistory(namespace, name string, revision int64) (string, error)

ViewHistory returns a revision-to-replicaset map as the revision history of a deployment

type DeploymentReaper

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

func (*DeploymentReaper) Stop

func (reaper *DeploymentReaper) Stop(namespace, name string, timeout time.Duration, gracePeriod *metav1.DeleteOptions) error

type DeploymentRollbacker

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

func (*DeploymentRollbacker) Rollback

func (r *DeploymentRollbacker) Rollback(obj runtime.Object, updatedAnnotations map[string]string, toRevision int64, dryRun bool) (string, error)

type DeploymentScaler

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

func (*DeploymentScaler) Scale

func (scaler *DeploymentScaler) Scale(namespace, name string, newSize uint, preconditions *ScalePrecondition, retry, waitForReplicas *RetryParams) error

Scale updates a deployment to a new size, with optional precondition check (if preconditions is not nil), optional retries (if retry is not nil), and then optionally waits for the status to reach desired count.

func (*DeploymentScaler) ScaleSimple

func (scaler *DeploymentScaler) ScaleSimple(namespace, name string, preconditions *ScalePrecondition, newSize uint) (string, error)

ScaleSimple is responsible for updating a deployment's desired replicas count. It returns the resourceVersion of the deployment if the update is successful.

type DeploymentStatusViewer

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

func (*DeploymentStatusViewer) Status

func (s *DeploymentStatusViewer) Status(namespace, name string, revision int64) (string, bool, error)

Status returns a message describing deployment status, and a bool value indicating if the status is considered done

type DeploymentV1Beta1

type DeploymentV1Beta1 struct{}

func (DeploymentV1Beta1) Generate

func (DeploymentV1Beta1) Generate(genericParams map[string]interface{}) (runtime.Object, error)

func (DeploymentV1Beta1) ParamNames

func (DeploymentV1Beta1) ParamNames() []GeneratorParam

type Describer

type Describer interface {
	Describe(namespace, name string, describerSettings DescriberSettings) (output string, err error)
}

Describer generates output for the named resource or an error if the output could not be generated. Implementers typically abstract the retrieval of the named object from a remote server.

func DescriberFor

func DescriberFor(kind schema.GroupKind, c clientset.Interface) (Describer, bool)

Describer returns the default describe functions for each of the standard Kubernetes types.

func GenericDescriberFor

func GenericDescriberFor(mapping *meta.RESTMapping, dynamic *dynamic.Client, events coreclient.EventsGetter) Describer

GenericDescriberFor returns a generic describer for the specified mapping that uses only information available from runtime.Unstructured

type DescriberSettings

type DescriberSettings struct {
	ShowEvents bool
}

DescriberSettings holds display configuration for each object describer to control what is printed.

type Describers

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

Describers implements ObjectDescriber against functions registered via Add. Those functions can be strongly typed. Types are exactly matched (no conversion or assignable checks).

func (*Describers) Add

func (d *Describers) Add(fns ...interface{}) error

Add adds one or more describer functions to the Describer. The passed function must match the signature:

func(...) (string, error)

Any number of arguments may be provided.

func (*Describers) DescribeObject

func (d *Describers) DescribeObject(exact interface{}, extra ...interface{}) (string, error)

DescribeObject implements ObjectDescriber and will attempt to print the provided object to a string, if at least one describer function has been registered with the exact types passed, or if any describer can print the exact object in its first argument (the remainder will be provided empty values). If no function registered with Add can satisfy the passed objects, an ErrNoDescriber will be returned TODO: reorder and partial match extra.

type EndpointsDescriber

type EndpointsDescriber struct {
	clientset.Interface
}

EndpointsDescriber generates information about an Endpoint.

func (*EndpointsDescriber) Describe

func (d *EndpointsDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error)

type EnvVarResolverFunc

type EnvVarResolverFunc func(e api.EnvVar) string

func EnvValueRetriever

func EnvValueRetriever(pod *api.Pod) EnvVarResolverFunc

EnvValueFrom is exported for use by describers in other packages

type ErrNoDescriber

type ErrNoDescriber struct {
	Types []string
}

ErrNoDescriber is a structured error indicating the provided object or objects cannot be described.

func (ErrNoDescriber) Error

func (e ErrNoDescriber) Error() string

Error implements the error interface.

type FilterFunc

type FilterFunc func(runtime.Object, PrintOptions) bool

FilterFunc is a function that knows how to filter a specific resource kind. It receives a generic runtime.Object which must be type-checked by the function. Returns a boolean value true if a resource is filtered, or false otherwise.

type FilterServer

type FilterServer struct {
	// Only paths that match this regexp will be accepted
	AcceptPaths []*regexp.Regexp
	// Paths that match this regexp will be rejected, even if they match the above
	RejectPaths []*regexp.Regexp
	// Hosts are required to match this list of regexp
	AcceptHosts []*regexp.Regexp
	// Methods that match this regexp are rejected
	RejectMethods []*regexp.Regexp
	// contains filtered or unexported fields
}

FilterServer rejects requests which don't match one of the specified regular expressions

func (*FilterServer) HandlerFor

func (f *FilterServer) HandlerFor(delegate http.Handler) *FilterServer

Make a copy of f which passes requests along to the new delegate.

func (*FilterServer) ServeHTTP

func (f *FilterServer) ServeHTTP(rw http.ResponseWriter, req *http.Request)

type Filters

type Filters []FilterFunc

Filters is a collection of filter funcs

func NewResourceFilter

func NewResourceFilter() Filters

func (Filters) Filter

func (f Filters) Filter(obj runtime.Object, opts *PrintOptions) (bool, error)

Filter loops through a collection of FilterFuncs until it finds one that can filter the given resource

type Generator

type Generator interface {
	// Generate creates an API object given a set of parameters
	Generate(params map[string]interface{}) (runtime.Object, error)
	// ParamNames returns the list of parameters that this generator uses
	ParamNames() []GeneratorParam
}

Generator is an interface for things that can generate API objects from input parameters.

type GeneratorParam

type GeneratorParam struct {
	Name     string
	Required bool
}

GeneratorParam is a parameter for a generator TODO: facilitate structured json generator input schemes

type HistoryViewer

type HistoryViewer interface {
	ViewHistory(namespace, name string, revision int64) (string, error)
}

HistoryViewer provides an interface for resources have historical information.

func HistoryViewerFor

func HistoryViewerFor(kind schema.GroupKind, c clientset.Interface) (HistoryViewer, error)

type HorizontalPodAutoscalerDescriber

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

HorizontalPodAutoscalerDescriber generates information about a horizontal pod autoscaler.

func (*HorizontalPodAutoscalerDescriber) Describe

func (d *HorizontalPodAutoscalerDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error)

type HorizontalPodAutoscalerV1

type HorizontalPodAutoscalerV1 struct{}

func (HorizontalPodAutoscalerV1) Generate

func (HorizontalPodAutoscalerV1) Generate(genericParams map[string]interface{}) (runtime.Object, error)

func (HorizontalPodAutoscalerV1) ParamNames

type HumanReadablePrinter

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

HumanReadablePrinter is an implementation of ResourcePrinter which attempts to provide more elegant output. It is not threadsafe, but you may call PrintObj repeatedly; headers will only be printed if the object type changes. This makes it useful for printing items received from watches.

func NewHumanReadablePrinter

func NewHumanReadablePrinter(options PrintOptions) *HumanReadablePrinter

NewHumanReadablePrinter creates a HumanReadablePrinter.

func (*HumanReadablePrinter) AfterPrint

func (h *HumanReadablePrinter) AfterPrint(output io.Writer, res string) error

func (*HumanReadablePrinter) EnsurePrintHeaders

func (h *HumanReadablePrinter) EnsurePrintHeaders()

EnsurePrintHeaders sets the HumanReadablePrinter option "NoHeaders" to false and removes the .lastType that was printed, which forces headers to be printed in cases where multiple lists of the same resource are printed consecutively, but are separated by non-printer related information.

func (*HumanReadablePrinter) EnsurePrintWithKind

func (h *HumanReadablePrinter) EnsurePrintWithKind(kind string)

EnsurePrintWithKind sets HumanReadablePrinter options "WithKind" to true and "Kind" to the string arg it receives, pre-pending this string to the "NAME" column in an output of resources.

func (*HumanReadablePrinter) GetResourceKind

func (h *HumanReadablePrinter) GetResourceKind() string

GetResourceKind returns the type currently set for a resource

func (*HumanReadablePrinter) HandledResources

func (h *HumanReadablePrinter) HandledResources() []string

func (*HumanReadablePrinter) Handler

func (h *HumanReadablePrinter) Handler(columns, columnsWithWide []string, printFunc interface{}) error

Handler adds a print handler with a given set of columns to HumanReadablePrinter instance. See validatePrintHandlerFunc for required method signature.

func (*HumanReadablePrinter) PrintObj

func (h *HumanReadablePrinter) PrintObj(obj runtime.Object, output io.Writer) error

PrintObj prints the obj in a human-friendly format according to the type of the obj.

type IngressDescriber

type IngressDescriber struct {
	clientset.Interface
}

func (*IngressDescriber) Describe

func (i *IngressDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error)

type JSONPathPrinter

type JSONPathPrinter struct {
	*jsonpath.JSONPath
	// contains filtered or unexported fields
}

JSONPathPrinter is an implementation of ResourcePrinter which formats data with jsonpath expression.

func NewJSONPathPrinter

func NewJSONPathPrinter(tmpl string) (*JSONPathPrinter, error)

func (*JSONPathPrinter) AfterPrint

func (j *JSONPathPrinter) AfterPrint(w io.Writer, res string) error

func (*JSONPathPrinter) HandledResources

func (p *JSONPathPrinter) HandledResources() []string

TODO: implement HandledResources()

func (*JSONPathPrinter) PrintObj

func (j *JSONPathPrinter) PrintObj(obj runtime.Object, w io.Writer) error

PrintObj formats the obj with the JSONPath Template.

type JSONPrinter

type JSONPrinter struct {
}

JSONPrinter is an implementation of ResourcePrinter which outputs an object as JSON.

func (*JSONPrinter) AfterPrint

func (p *JSONPrinter) AfterPrint(w io.Writer, res string) error

func (*JSONPrinter) HandledResources

func (p *JSONPrinter) HandledResources() []string

TODO: implement HandledResources()

func (*JSONPrinter) PrintObj

func (p *JSONPrinter) PrintObj(obj runtime.Object, w io.Writer) error

PrintObj is an implementation of ResourcePrinter.PrintObj which simply writes the object to the Writer.

type JobDescriber

type JobDescriber struct {
	clientset.Interface
}

JobDescriber generates information about a job and the pods it has created.

func (*JobDescriber) Describe

func (d *JobDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error)

type JobReaper

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

func (*JobReaper) Stop

func (reaper *JobReaper) Stop(namespace, name string, timeout time.Duration, gracePeriod *metav1.DeleteOptions) error

type JobScaler

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

func (*JobScaler) Scale

func (scaler *JobScaler) Scale(namespace, name string, newSize uint, preconditions *ScalePrecondition, retry, waitForReplicas *RetryParams) error

Scale updates a Job to a new size, with optional precondition check (if preconditions is not nil), optional retries (if retry is not nil), and then optionally waits for parallelism to reach desired number, which can be less than requested based on job's current progress.

func (*JobScaler) ScaleSimple

func (scaler *JobScaler) ScaleSimple(namespace, name string, preconditions *ScalePrecondition, newSize uint) (string, error)

ScaleSimple is responsible for updating job's parallelism. It returns the resourceVersion of the job if the update is successful.

type JobV1

type JobV1 struct{}

func (JobV1) Generate

func (JobV1) Generate(genericParams map[string]interface{}) (runtime.Object, error)

func (JobV1) ParamNames

func (JobV1) ParamNames() []GeneratorParam

type LimitRangeDescriber

type LimitRangeDescriber struct {
	clientset.Interface
}

LimitRangeDescriber generates information about a limit range

func (*LimitRangeDescriber) Describe

func (d *LimitRangeDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error)

type NamePrinter

type NamePrinter struct {
	Decoder runtime.Decoder
	Typer   runtime.ObjectTyper
}

NamePrinter is an implementation of ResourcePrinter which outputs "resource/name" pair of an object.

func (*NamePrinter) AfterPrint

func (p *NamePrinter) AfterPrint(w io.Writer, res string) error

func (*NamePrinter) HandledResources

func (p *NamePrinter) HandledResources() []string

TODO: implement HandledResources()

func (*NamePrinter) PrintObj

func (p *NamePrinter) PrintObj(obj runtime.Object, w io.Writer) error

PrintObj is an implementation of ResourcePrinter.PrintObj which decodes the object and print "resource/name" pair. If the object is a List, print all items in it.

type NamespaceDescriber

type NamespaceDescriber struct {
	clientset.Interface
}

NamespaceDescriber generates information about a namespace

func (*NamespaceDescriber) Describe

func (d *NamespaceDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error)

type NamespaceGeneratorV1

type NamespaceGeneratorV1 struct {
	// Name of namespace
	Name string
}

NamespaceGeneratorV1 supports stable generation of a namespace

func (NamespaceGeneratorV1) Generate

func (g NamespaceGeneratorV1) Generate(genericParams map[string]interface{}) (runtime.Object, error)

Generate returns a namespace using the specified parameters

func (NamespaceGeneratorV1) ParamNames

func (g NamespaceGeneratorV1) ParamNames() []GeneratorParam

ParamNames returns the set of supported input parameters when using the parameter injection generator pattern

func (*NamespaceGeneratorV1) StructuredGenerate

func (g *NamespaceGeneratorV1) StructuredGenerate() (runtime.Object, error)

StructuredGenerate outputs a namespace object using the configured fields

type NamespaceInfo

type NamespaceInfo struct {
	Namespace string
}

type NetworkPolicyDescriber

type NetworkPolicyDescriber struct {
	clientset.Interface
}

NetworkPolicyDescriber generates information about a NetworkPolicy

func (*NetworkPolicyDescriber) Describe

func (d *NetworkPolicyDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error)

type NewControllerConfig

type NewControllerConfig struct {
	Namespace        string
	OldName, NewName string
	Image            string
	Container        string
	DeploymentKey    string
	PullPolicy       api.PullPolicy
}

type NoSuchReaperError

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

func (*NoSuchReaperError) Error

func (n *NoSuchReaperError) Error() string

type NodeDescriber

type NodeDescriber struct {
	clientset.Interface
}

NodeDescriber generates information about a node.

func (*NodeDescriber) Describe

func (d *NodeDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error)

type ObjectDescriber

type ObjectDescriber interface {
	DescribeObject(object interface{}, extra ...interface{}) (output string, err error)
}

ObjectDescriber is an interface for displaying arbitrary objects with extra information. Use when an object is in hand (on disk, or already retrieved). Implementers may ignore the additional information passed on extra, or use it by default. ObjectDescribers may return ErrNoDescriber if no suitable describer is found.

var DefaultObjectDescriber ObjectDescriber

DefaultObjectDescriber can describe the default Kubernetes objects.

type OutputVersionMapper

type OutputVersionMapper struct {
	meta.RESTMapper

	// output versions takes a list of preferred GroupVersions. Only the first
	// hit for a given group will have effect.  This allows different output versions
	// depending upon the group of the kind being requested
	OutputVersions []schema.GroupVersion
}

OutputVersionMapper is a RESTMapper that will prefer mappings that correspond to a preferred output version (if feasible)

func (OutputVersionMapper) RESTMapping

func (m OutputVersionMapper) RESTMapping(gk schema.GroupKind, versions ...string) (*meta.RESTMapping, error)

RESTMapping implements meta.RESTMapper by prepending the output version to the preferred version list.

type PersistentVolumeClaimDescriber

type PersistentVolumeClaimDescriber struct {
	clientset.Interface
}

func (*PersistentVolumeClaimDescriber) Describe

func (d *PersistentVolumeClaimDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error)

type PersistentVolumeDescriber

type PersistentVolumeDescriber struct {
	clientset.Interface
}

func (*PersistentVolumeDescriber) Describe

func (d *PersistentVolumeDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error)

type PodDescriber

type PodDescriber struct {
	clientset.Interface
}

PodDescriber generates information about a pod and the replication controllers that create it.

func (*PodDescriber) Describe

func (d *PodDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error)

type PodDisruptionBudgetDescriber

type PodDisruptionBudgetDescriber struct {
	clientset.Interface
}

func (*PodDisruptionBudgetDescriber) Describe

func (p *PodDisruptionBudgetDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error)

type PodDisruptionBudgetV1Generator

type PodDisruptionBudgetV1Generator struct {
	Name         string
	MinAvailable string
	Selector     string
}

PodDisruptionBudgetV1Generator supports stable generation of a pod disruption budget.

func (PodDisruptionBudgetV1Generator) Generate

func (s PodDisruptionBudgetV1Generator) Generate(params map[string]interface{}) (runtime.Object, error)

func (PodDisruptionBudgetV1Generator) ParamNames

func (*PodDisruptionBudgetV1Generator) StructuredGenerate

func (s *PodDisruptionBudgetV1Generator) StructuredGenerate() (runtime.Object, error)

StructuredGenerate outputs a pod disruption budget object using the configured fields.

type PodReaper

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

func (*PodReaper) Stop

func (reaper *PodReaper) Stop(namespace, name string, timeout time.Duration, gracePeriod *metav1.DeleteOptions) error

type PreconditionError

type PreconditionError struct {
	Precondition  string
	ExpectedValue string
	ActualValue   string
}

A PreconditionError is returned when a resource fails to match the scale preconditions passed to kubectl.

func (PreconditionError) Error

func (pe PreconditionError) Error() string

type PrefixWriter

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

func (*PrefixWriter) Write

func (pw *PrefixWriter) Write(level int, format string, a ...interface{})

func (*PrefixWriter) WriteLine

func (pw *PrefixWriter) WriteLine(a ...interface{})

type PrintOptions

type PrintOptions struct {
	NoHeaders          bool
	WithNamespace      bool
	WithKind           bool
	Wide               bool
	ShowAll            bool
	ShowLabels         bool
	AbsoluteTimestamps bool
	Kind               string
	ColumnLabels       []string
}

type ProxyServer

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

ProxyServer is a http.Handler which proxies Kubernetes APIs to remote API server.

func NewProxyServer

func NewProxyServer(filebase string, apiProxyPrefix string, staticPrefix string, filter *FilterServer, cfg *restclient.Config) (*ProxyServer, error)

NewProxyServer creates and installs a new ProxyServer. It automatically registers the created ProxyServer to http.DefaultServeMux. 'filter', if non-nil, protects requests to the api only.

func (*ProxyServer) Listen

func (s *ProxyServer) Listen(address string, port int) (net.Listener, error)

Listen is a simple wrapper around net.Listen.

func (*ProxyServer) ListenUnix

func (s *ProxyServer) ListenUnix(path string) (net.Listener, error)

ListenUnix does net.Listen for a unix socket

func (*ProxyServer) ServeOnListener

func (s *ProxyServer) ServeOnListener(l net.Listener) error

Serve starts the server using given listener, loops forever.

type RESTClient

type RESTClient interface {
	Get() *client.Request
	Post() *client.Request
	Patch(types.PatchType) *client.Request
	Delete() *client.Request
	Put() *client.Request
}

RESTClient is a client helper for dealing with RESTful resources in a generic way.

type Reaper

type Reaper interface {
	Stop(namespace, name string, timeout time.Duration, gracePeriod *metav1.DeleteOptions) error
}

A Reaper handles terminating an object as gracefully as possible. timeout is how long we'll wait for the termination to be successful gracePeriod is time given to an API object for it to delete itself cleanly, e.g., pod shutdown. It may or may not be supported by the API object.

func ReaperForReplicationController

func ReaperForReplicationController(rcClient coreclient.ReplicationControllersGetter, timeout time.Duration) (Reaper, error)

type ReplicaSetDescriber

type ReplicaSetDescriber struct {
	clientset.Interface
}

ReplicaSetDescriber generates information about a ReplicaSet and the pods it has created.

func (*ReplicaSetDescriber) Describe

func (d *ReplicaSetDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error)

type ReplicaSetReaper

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

func (*ReplicaSetReaper) Stop

func (reaper *ReplicaSetReaper) Stop(namespace, name string, timeout time.Duration, gracePeriod *metav1.DeleteOptions) error

type ReplicaSetScaler

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

func (*ReplicaSetScaler) Scale

func (scaler *ReplicaSetScaler) Scale(namespace, name string, newSize uint, preconditions *ScalePrecondition, retry, waitForReplicas *RetryParams) error

Scale updates a ReplicaSet to a new size, with optional precondition check (if preconditions is not nil), optional retries (if retry is not nil), and then optionally waits for it's replica count to reach the new value (if wait is not nil).

func (*ReplicaSetScaler) ScaleSimple

func (scaler *ReplicaSetScaler) ScaleSimple(namespace, name string, preconditions *ScalePrecondition, newSize uint) (string, error)

ScaleSimple does a simple one-shot attempt at scaling. It returns the resourceVersion of the replicaset if the update is successful.

type ReplicationControllerDescriber

type ReplicationControllerDescriber struct {
	clientset.Interface
}

ReplicationControllerDescriber generates information about a replication controller and the pods it has created.

func (*ReplicationControllerDescriber) Describe

func (d *ReplicationControllerDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error)

type ReplicationControllerReaper

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

func (*ReplicationControllerReaper) Stop

func (reaper *ReplicationControllerReaper) Stop(namespace, name string, timeout time.Duration, gracePeriod *metav1.DeleteOptions) error

type ReplicationControllerScaler

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

func (*ReplicationControllerScaler) Scale

func (scaler *ReplicationControllerScaler) Scale(namespace, name string, newSize uint, preconditions *ScalePrecondition, retry, waitForReplicas *RetryParams) error

Scale updates a ReplicationController to a new size, with optional precondition check (if preconditions is not nil), optional retries (if retry is not nil), and then optionally waits for it's replica count to reach the new value (if wait is not nil).

func (*ReplicationControllerScaler) ScaleSimple

func (scaler *ReplicationControllerScaler) ScaleSimple(namespace, name string, preconditions *ScalePrecondition, newSize uint) (string, error)

ScaleSimple does a simple one-shot attempt at scaling. It returns the resourceVersion of the replication controller if the update is successful.

type ResourcePrinter

type ResourcePrinter interface {
	// Print receives a runtime object, formats it and prints it to a writer.
	PrintObj(runtime.Object, io.Writer) error
	HandledResources() []string
	//Can be used to print out warning/clarifications if needed
	//after all objects were printed
	AfterPrint(io.Writer, string) error
}

ResourcePrinter is an interface that knows how to print runtime objects.

func GetPrinter

func GetPrinter(format, formatArgument string, noHeaders, allowMissingTemplateKeys bool) (ResourcePrinter, bool, error)

GetPrinter takes a format type, an optional format argument. It will return true if the format is generic (untyped), otherwise it will return false. The printer is agnostic to schema versions, so you must send arguments to PrintObj in the version you wish them to be shown using a VersionedPrinter (typically when generic is true).

func NewVersionedPrinter

func NewVersionedPrinter(printer ResourcePrinter, converter runtime.ObjectConvertor, versions ...schema.GroupVersion) ResourcePrinter

NewVersionedPrinter wraps a printer to convert objects to a known API version prior to printing.

type ResourcePrinterFunc

type ResourcePrinterFunc func(runtime.Object, io.Writer) error

ResourcePrinterFunc is a function that can print objects

func (ResourcePrinterFunc) AfterPrint

func (fn ResourcePrinterFunc) AfterPrint(io.Writer, string) error

func (ResourcePrinterFunc) HandledResources

func (fn ResourcePrinterFunc) HandledResources() []string

TODO: implement HandledResources()

func (ResourcePrinterFunc) PrintObj

func (fn ResourcePrinterFunc) PrintObj(obj runtime.Object, w io.Writer) error

PrintObj implements ResourcePrinter

type ResourceQuotaDescriber

type ResourceQuotaDescriber struct {
	clientset.Interface
}

ResourceQuotaDescriber generates information about a resource quota

func (*ResourceQuotaDescriber) Describe

func (d *ResourceQuotaDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error)

type ResourceQuotaGeneratorV1

type ResourceQuotaGeneratorV1 struct {
	// The name of a quota object.
	Name string

	// The hard resource limit string before parsing.
	Hard string

	// The scopes of a quota object before parsing.
	Scopes string
}

ResourceQuotaGeneratorV1 supports stable generation of a resource quota

func (ResourceQuotaGeneratorV1) Generate

func (g ResourceQuotaGeneratorV1) Generate(genericParams map[string]interface{}) (runtime.Object, error)

func (ResourceQuotaGeneratorV1) ParamNames

func (g ResourceQuotaGeneratorV1) ParamNames() []GeneratorParam

ParamNames returns the set of supported input parameters when using the parameter injection generator pattern

func (*ResourceQuotaGeneratorV1) StructuredGenerate

func (g *ResourceQuotaGeneratorV1) StructuredGenerate() (runtime.Object, error)

StructuredGenerate outputs a ResourceQuota object using the configured fields

type ResourceShortcuts

type ResourceShortcuts struct {
	ShortForm schema.GroupResource
	LongForm  schema.GroupResource
}

ResourceShortcuts represents a structure that holds the information how to transition from resource's shortcut to its full name.

type RetryParams

type RetryParams struct {
	Interval, Timeout time.Duration
}

RetryParams encapsulates the retry parameters used by kubectl's scaler.

func NewRetryParams

func NewRetryParams(interval, timeout time.Duration) *RetryParams

type RoleBindingGeneratorV1

type RoleBindingGeneratorV1 struct {
	// Name of roleBinding (required)
	Name string
	// ClusterRole for the roleBinding
	ClusterRole string
	// Role for the roleBinding
	Role string
	// Users to derive the roleBinding from (optional)
	Users []string
	// Groups to derive the roleBinding from (optional)
	Groups []string
	// ServiceAccounts to derive the roleBinding from in namespace:name format(optional)
	ServiceAccounts []string
}

RoleBindingGeneratorV1 supports stable generation of a roleBinding.

func (RoleBindingGeneratorV1) Generate

func (s RoleBindingGeneratorV1) Generate(genericParams map[string]interface{}) (runtime.Object, error)

Generate returns a roleBinding using the specified parameters.

func (RoleBindingGeneratorV1) ParamNames

func (s RoleBindingGeneratorV1) ParamNames() []GeneratorParam

ParamNames returns the set of supported input parameters when using the parameter injection generator pattern.

func (RoleBindingGeneratorV1) StructuredGenerate

func (s RoleBindingGeneratorV1) StructuredGenerate() (runtime.Object, error)

StructuredGenerate outputs a roleBinding object using the configured fields.

type Rollbacker

type Rollbacker interface {
	Rollback(obj runtime.Object, updatedAnnotations map[string]string, toRevision int64, dryRun bool) (string, error)
}

Rollbacker provides an interface for resources that can be rolled back.

func RollbackerFor

func RollbackerFor(kind schema.GroupKind, c clientset.Interface) (Rollbacker, error)

type RollingUpdater

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

RollingUpdater provides methods for updating replicated pods in a predictable, fault-tolerant way.

func NewRollingUpdater

func NewRollingUpdater(namespace string, rcClient coreclient.ReplicationControllersGetter, podClient coreclient.PodsGetter) *RollingUpdater

NewRollingUpdater creates a RollingUpdater from a client.

func (*RollingUpdater) Update

func (r *RollingUpdater) Update(config *RollingUpdaterConfig) error

Update all pods for a ReplicationController (oldRc) by creating a new controller (newRc) with 0 replicas, and synchronously scaling oldRc and newRc until oldRc has 0 replicas and newRc has the original # of desired replicas. Cleanup occurs based on a RollingUpdaterCleanupPolicy.

Each interval, the updater will attempt to make progress however it can without violating any availability constraints defined by the config. This means the amount scaled up or down each interval will vary based on the timeliness of readiness and the updater will always try to make progress, even slowly.

If an update from newRc to oldRc is already in progress, we attempt to drive it to completion. If an error occurs at any step of the update, the error will be returned.

A scaling event (either up or down) is considered progress; if no progress is made within the config.Timeout, an error is returned.

TODO: make this handle performing a rollback of a partially completed rollout.

type RollingUpdaterCleanupPolicy

type RollingUpdaterCleanupPolicy string

RollingUpdaterCleanupPolicy is a cleanup action to take after the deployment is complete.

const (
	// DeleteRollingUpdateCleanupPolicy means delete the old controller.
	DeleteRollingUpdateCleanupPolicy RollingUpdaterCleanupPolicy = "Delete"
	// PreserveRollingUpdateCleanupPolicy means keep the old controller.
	PreserveRollingUpdateCleanupPolicy RollingUpdaterCleanupPolicy = "Preserve"
	// RenameRollingUpdateCleanupPolicy means delete the old controller, and rename
	// the new controller to the name of the old controller.
	RenameRollingUpdateCleanupPolicy RollingUpdaterCleanupPolicy = "Rename"
)

type RollingUpdaterConfig

type RollingUpdaterConfig struct {
	// Out is a writer for progress output.
	Out io.Writer
	// OldRC is an existing controller to be replaced.
	OldRc *api.ReplicationController
	// NewRc is a controller that will take ownership of updated pods (will be
	// created if needed).
	NewRc *api.ReplicationController
	// UpdatePeriod is the time to wait between individual pod updates.
	UpdatePeriod time.Duration
	// Interval is the time to wait between polling controller status after
	// update.
	Interval time.Duration
	// Timeout is the time to wait for controller updates before giving up.
	Timeout time.Duration
	// MinReadySeconds is the number of seconds to wait after the pods are ready
	MinReadySeconds int32
	// CleanupPolicy defines the cleanup action to take after the deployment is
	// complete.
	CleanupPolicy RollingUpdaterCleanupPolicy
	// MaxUnavailable is the maximum number of pods that can be unavailable during the update.
	// Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).
	// Absolute number is calculated from percentage by rounding up.
	// This can not be 0 if MaxSurge is 0.
	// By default, a fixed value of 1 is used.
	// Example: when this is set to 30%, the old RC can be scaled down to 70% of desired pods
	// immediately when the rolling update starts. Once new pods are ready, old RC
	// can be scaled down further, followed by scaling up the new RC, ensuring
	// that the total number of pods available at all times during the update is at
	// least 70% of desired pods.
	MaxUnavailable intstr.IntOrString
	// MaxSurge is the maximum number of pods that can be scheduled above the desired number of pods.
	// Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).
	// This can not be 0 if MaxUnavailable is 0.
	// Absolute number is calculated from percentage by rounding up.
	// By default, a value of 1 is used.
	// Example: when this is set to 30%, the new RC can be scaled up immediately
	// when the rolling update starts, such that the total number of old and new pods do not exceed
	// 130% of desired pods. Once old pods have been killed, new RC can be scaled up
	// further, ensuring that total number of pods running at any time during
	// the update is atmost 130% of desired pods.
	MaxSurge intstr.IntOrString
	// OnProgress is invoked if set during each scale cycle, to allow the caller to perform additional logic or
	// abort the scale. If an error is returned the cleanup method will not be invoked. The percentage value
	// is a synthetic "progress" calculation that represents the approximate percentage completion.
	OnProgress func(oldRc, newRc *api.ReplicationController, percentage int) error
}

RollingUpdaterConfig is the configuration for a rolling deployment process.

type RuntimeSort

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

RuntimeSort is an implementation of the golang sort interface that knows how to sort lists of runtime.Object

func NewRuntimeSort

func NewRuntimeSort(field string, objs []runtime.Object) *RuntimeSort

func SortObjects

func SortObjects(decoder runtime.Decoder, objs []runtime.Object, fieldInput string) (*RuntimeSort, error)

func (*RuntimeSort) Len

func (r *RuntimeSort) Len() int

func (*RuntimeSort) Less

func (r *RuntimeSort) Less(i, j int) bool

func (*RuntimeSort) OriginalPosition

func (r *RuntimeSort) OriginalPosition(ix int) int

Returns the starting (original) position of a particular index. e.g. If OriginalPosition(0) returns 5 than the the item currently at position 0 was at position 5 in the original unsorted array.

func (*RuntimeSort) Swap

func (r *RuntimeSort) Swap(i, j int)

type ScaleError

type ScaleError struct {
	FailureType     ScaleErrorType
	ResourceVersion string
	ActualError     error
}

A ScaleError is returned when a scale request passes preconditions but fails to actually scale the controller.

func (ScaleError) Error

func (c ScaleError) Error() string

type ScaleErrorType

type ScaleErrorType int
const (
	ScaleGetFailure ScaleErrorType = iota
	ScaleUpdateFailure
	ScaleUpdateConflictFailure
)

type ScalePrecondition

type ScalePrecondition struct {
	Size            int
	ResourceVersion string
}

ScalePrecondition describes a condition that must be true for the scale to take place If CurrentSize == -1, it is ignored. If CurrentResourceVersion is the empty string, it is ignored. Otherwise they must equal the values in the resource for it to be valid.

func (*ScalePrecondition) ValidateDeployment

func (precondition *ScalePrecondition) ValidateDeployment(deployment *extensions.Deployment) error

ValidateDeployment ensures that the preconditions match. Returns nil if they are valid, an error otherwise.

func (*ScalePrecondition) ValidateJob

func (precondition *ScalePrecondition) ValidateJob(job *batch.Job) error

ValidateJob ensures that the preconditions match. Returns nil if they are valid, an error otherwise.

func (*ScalePrecondition) ValidateReplicaSet

func (precondition *ScalePrecondition) ValidateReplicaSet(replicaSet *extensions.ReplicaSet) error

ValidateReplicaSet ensures that the preconditions match. Returns nil if they are valid, an error otherwise

func (*ScalePrecondition) ValidateReplicationController

func (precondition *ScalePrecondition) ValidateReplicationController(controller *api.ReplicationController) error

ValidateReplicationController ensures that the preconditions match. Returns nil if they are valid, an error otherwise

func (*ScalePrecondition) ValidateStatefulSet

func (precondition *ScalePrecondition) ValidateStatefulSet(ps *apps.StatefulSet) error

ValidateStatefulSet ensures that the preconditions match. Returns nil if they are valid, an error otherwise.

type Scaler

type Scaler interface {
	// Scale scales the named resource after checking preconditions. It optionally
	// retries in the event of resource version mismatch (if retry is not nil),
	// and optionally waits until the status of the resource matches newSize (if wait is not nil)
	Scale(namespace, name string, newSize uint, preconditions *ScalePrecondition, retry, wait *RetryParams) error
	// ScaleSimple does a simple one-shot attempt at scaling - not useful on its own, but
	// a necessary building block for Scale
	ScaleSimple(namespace, name string, preconditions *ScalePrecondition, newSize uint) (updatedResourceVersion string, err error)
}

Scaler provides an interface for resources that can be scaled.

type SecretDescriber

type SecretDescriber struct {
	clientset.Interface
}

SecretDescriber generates information about a secret

func (*SecretDescriber) Describe

func (d *SecretDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error)

type SecretForDockerRegistryGeneratorV1

type SecretForDockerRegistryGeneratorV1 struct {
	// Name of secret (required)
	Name string
	// Username for registry (required)
	Username string
	// Email for registry (required)
	Email string
	// Password for registry (required)
	Password string
	// Server for registry (required)
	Server string
}

SecretForDockerRegistryGeneratorV1 supports stable generation of a docker registry secret

func (SecretForDockerRegistryGeneratorV1) Generate

func (s SecretForDockerRegistryGeneratorV1) Generate(genericParams map[string]interface{}) (runtime.Object, error)

Generate returns a secret using the specified parameters

func (SecretForDockerRegistryGeneratorV1) ParamNames

ParamNames returns the set of supported input parameters when using the parameter injection generator pattern

func (SecretForDockerRegistryGeneratorV1) StructuredGenerate

func (s SecretForDockerRegistryGeneratorV1) StructuredGenerate() (runtime.Object, error)

StructuredGenerate outputs a secret object using the configured fields

type SecretForTLSGeneratorV1

type SecretForTLSGeneratorV1 struct {
	// Name is the name of this TLS secret.
	Name string
	// Key is the path to the user's private key.
	Key string
	// Cert is the path to the user's public key certificate.
	Cert string
}

SecretForTLSGeneratorV1 supports stable generation of a TLS secret.

func (SecretForTLSGeneratorV1) Generate

func (s SecretForTLSGeneratorV1) Generate(genericParams map[string]interface{}) (runtime.Object, error)

Generate returns a secret using the specified parameters

func (SecretForTLSGeneratorV1) ParamNames

func (s SecretForTLSGeneratorV1) ParamNames() []GeneratorParam

ParamNames returns the set of supported input parameters when using the parameter injection generator pattern

func (SecretForTLSGeneratorV1) StructuredGenerate

func (s SecretForTLSGeneratorV1) StructuredGenerate() (runtime.Object, error)

StructuredGenerate outputs a secret object using the configured fields

type SecretGeneratorV1

type SecretGeneratorV1 struct {
	// Name of secret (required)
	Name string
	// Type of secret (optional)
	Type string
	// FileSources to derive the secret from (optional)
	FileSources []string
	// LiteralSources to derive the secret from (optional)
	LiteralSources []string
}

SecretGeneratorV1 supports stable generation of an opaque secret

func (SecretGeneratorV1) Generate

func (s SecretGeneratorV1) Generate(genericParams map[string]interface{}) (runtime.Object, error)

Generate returns a secret using the specified parameters

func (SecretGeneratorV1) ParamNames

func (s SecretGeneratorV1) ParamNames() []GeneratorParam

ParamNames returns the set of supported input parameters when using the parameter injection generator pattern

func (SecretGeneratorV1) StructuredGenerate

func (s SecretGeneratorV1) StructuredGenerate() (runtime.Object, error)

StructuredGenerate outputs a secret object using the configured fields

type ServiceAccountDescriber

type ServiceAccountDescriber struct {
	clientset.Interface
}

ServiceAccountDescriber generates information about a service.

func (*ServiceAccountDescriber) Describe

func (d *ServiceAccountDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error)

type ServiceAccountGeneratorV1

type ServiceAccountGeneratorV1 struct {
	// Name of service account
	Name string
}

ServiceAccountGeneratorV1 supports stable generation of a service account

func (*ServiceAccountGeneratorV1) StructuredGenerate

func (g *ServiceAccountGeneratorV1) StructuredGenerate() (runtime.Object, error)

StructuredGenerate outputs a service account object using the configured fields

type ServiceClusterIPGeneratorV1

type ServiceClusterIPGeneratorV1 struct {
	ServiceCommonGeneratorV1
}

func (ServiceClusterIPGeneratorV1) Generate

func (s ServiceClusterIPGeneratorV1) Generate(params map[string]interface{}) (runtime.Object, error)

func (ServiceClusterIPGeneratorV1) ParamNames

type ServiceCommonGeneratorV1

type ServiceCommonGeneratorV1 struct {
	Name         string
	TCP          []string
	Type         api.ServiceType
	ClusterIP    string
	NodePort     int
	ExternalName string
}

func (ServiceCommonGeneratorV1) GenerateCommon

func (s ServiceCommonGeneratorV1) GenerateCommon(params map[string]interface{}) error

func (ServiceCommonGeneratorV1) StructuredGenerate

func (s ServiceCommonGeneratorV1) StructuredGenerate() (runtime.Object, error)

type ServiceDescriber

type ServiceDescriber struct {
	clientset.Interface
}

ServiceDescriber generates information about a service.

func (*ServiceDescriber) Describe

func (d *ServiceDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error)

type ServiceExternalNameGeneratorV1

type ServiceExternalNameGeneratorV1 struct {
	ServiceCommonGeneratorV1
}

TODO: is this really necessary?

func (ServiceExternalNameGeneratorV1) Generate

func (s ServiceExternalNameGeneratorV1) Generate(params map[string]interface{}) (runtime.Object, error)

func (ServiceExternalNameGeneratorV1) ParamNames

type ServiceGeneratorV1

type ServiceGeneratorV1 struct{}

The only difference between ServiceGeneratorV1 and V2 is that the service port is named "default" in V1, while it is left unnamed in V2.

func (ServiceGeneratorV1) Generate

func (ServiceGeneratorV1) Generate(params map[string]interface{}) (runtime.Object, error)

func (ServiceGeneratorV1) ParamNames

func (ServiceGeneratorV1) ParamNames() []GeneratorParam

type ServiceGeneratorV2

type ServiceGeneratorV2 struct{}

func (ServiceGeneratorV2) Generate

func (ServiceGeneratorV2) Generate(params map[string]interface{}) (runtime.Object, error)

func (ServiceGeneratorV2) ParamNames

func (ServiceGeneratorV2) ParamNames() []GeneratorParam

type ServiceLoadBalancerGeneratorV1

type ServiceLoadBalancerGeneratorV1 struct {
	ServiceCommonGeneratorV1
}

func (ServiceLoadBalancerGeneratorV1) Generate

func (s ServiceLoadBalancerGeneratorV1) Generate(params map[string]interface{}) (runtime.Object, error)

func (ServiceLoadBalancerGeneratorV1) ParamNames

type ServiceNodePortGeneratorV1

type ServiceNodePortGeneratorV1 struct {
	ServiceCommonGeneratorV1
}

func (ServiceNodePortGeneratorV1) Generate

func (s ServiceNodePortGeneratorV1) Generate(params map[string]interface{}) (runtime.Object, error)

func (ServiceNodePortGeneratorV1) ParamNames

type ServiceReaper

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

func (*ServiceReaper) Stop

func (reaper *ServiceReaper) Stop(namespace, name string, timeout time.Duration, gracePeriod *metav1.DeleteOptions) error

type SortableResourceNames

type SortableResourceNames []api.ResourceName

func (SortableResourceNames) Len

func (list SortableResourceNames) Len() int

func (SortableResourceNames) Less

func (list SortableResourceNames) Less(i, j int) bool

func (SortableResourceNames) Swap

func (list SortableResourceNames) Swap(i, j int)

type SortableResourceQuotas

type SortableResourceQuotas []api.ResourceQuota

func (SortableResourceQuotas) Len

func (list SortableResourceQuotas) Len() int

func (SortableResourceQuotas) Less

func (list SortableResourceQuotas) Less(i, j int) bool

func (SortableResourceQuotas) Swap

func (list SortableResourceQuotas) Swap(i, j int)

type SortableVolumeMounts

type SortableVolumeMounts []api.VolumeMount

func (SortableVolumeMounts) Len

func (list SortableVolumeMounts) Len() int

func (SortableVolumeMounts) Less

func (list SortableVolumeMounts) Less(i, j int) bool

func (SortableVolumeMounts) Swap

func (list SortableVolumeMounts) Swap(i, j int)

type SortingPrinter

type SortingPrinter struct {
	SortField string
	Delegate  ResourcePrinter
	Decoder   runtime.Decoder
}

Sorting printer sorts list types before delegating to another printer. Non-list types are simply passed through

func (*SortingPrinter) AfterPrint

func (s *SortingPrinter) AfterPrint(w io.Writer, res string) error

func (*SortingPrinter) HandledResources

func (p *SortingPrinter) HandledResources() []string

TODO: implement HandledResources()

func (*SortingPrinter) PrintObj

func (s *SortingPrinter) PrintObj(obj runtime.Object, out io.Writer) error

type StatefulSetDescriber

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

func (*StatefulSetDescriber) Describe

func (p *StatefulSetDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error)

type StatefulSetReaper

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

func (*StatefulSetReaper) Stop

func (reaper *StatefulSetReaper) Stop(namespace, name string, timeout time.Duration, gracePeriod *metav1.DeleteOptions) error

type StatefulSetScaler

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

func (*StatefulSetScaler) Scale

func (scaler *StatefulSetScaler) Scale(namespace, name string, newSize uint, preconditions *ScalePrecondition, retry, waitForReplicas *RetryParams) error

func (*StatefulSetScaler) ScaleSimple

func (scaler *StatefulSetScaler) ScaleSimple(namespace, name string, preconditions *ScalePrecondition, newSize uint) (string, error)

ScaleSimple does a simple one-shot attempt at scaling. It returns the resourceVersion of the statefulset if the update is successful.

type StatusViewer

type StatusViewer interface {
	Status(namespace, name string, revision int64) (string, bool, error)
}

StatusViewer provides an interface for resources that have rollout status.

type StorageClassDescriber

type StorageClassDescriber struct {
	clientset.Interface
}

func (*StorageClassDescriber) Describe

func (s *StorageClassDescriber) Describe(namespace, name string, describerSettings DescriberSettings) (string, error)

type StructuredGenerator

type StructuredGenerator interface {
	// StructuredGenerator creates an API object using pre-configured parameters
	StructuredGenerate() (runtime.Object, error)
}

StructuredGenerator is an interface for things that can generate API objects not using parameter injection

type TemplatePrinter

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

TemplatePrinter is an implementation of ResourcePrinter which formats data with a Go Template.

func NewTemplatePrinter

func NewTemplatePrinter(tmpl []byte) (*TemplatePrinter, error)

func (*TemplatePrinter) AfterPrint

func (p *TemplatePrinter) AfterPrint(w io.Writer, res string) error

func (*TemplatePrinter) AllowMissingKeys

func (p *TemplatePrinter) AllowMissingKeys(allow bool)

AllowMissingKeys tells the template engine if missing keys are allowed.

func (*TemplatePrinter) HandledResources

func (p *TemplatePrinter) HandledResources() []string

TODO: implement HandledResources()

func (*TemplatePrinter) PrintObj

func (p *TemplatePrinter) PrintObj(obj runtime.Object, w io.Writer) error

PrintObj formats the obj with the Go Template.

type VersionedPrinter

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

VersionedPrinter takes runtime objects and ensures they are converted to a given API version prior to being passed to a nested printer.

func (*VersionedPrinter) AfterPrint

func (p *VersionedPrinter) AfterPrint(w io.Writer, res string) error

func (*VersionedPrinter) HandledResources

func (p *VersionedPrinter) HandledResources() []string

TODO: implement HandledResources()

func (*VersionedPrinter) PrintObj

func (p *VersionedPrinter) PrintObj(obj runtime.Object, w io.Writer) error

PrintObj implements ResourcePrinter

type YAMLPrinter

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

YAMLPrinter is an implementation of ResourcePrinter which outputs an object as YAML. The input object is assumed to be in the internal version of an API and is converted to the given version first.

func (*YAMLPrinter) AfterPrint

func (p *YAMLPrinter) AfterPrint(w io.Writer, res string) error

func (*YAMLPrinter) HandledResources

func (p *YAMLPrinter) HandledResources() []string

TODO: implement HandledResources()

func (*YAMLPrinter) PrintObj

func (p *YAMLPrinter) PrintObj(obj runtime.Object, w io.Writer) error

PrintObj prints the data as YAML.

Directories

Path Synopsis
cmd
set
Package resource assists clients in dealing with RESTful objects that match the Kubernetes API conventions.
Package resource assists clients in dealing with RESTful objects that match the Kubernetes API conventions.

Jump to

Keyboard shortcuts

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