Documentation ¶
Overview ¶
Package clientcmd provides one stop shopping for building a working client from a fixed config, from a .kubeconfig file, from command line flags, or from any merged combination.
Sample usage from merged .kubeconfig files (local directory, home directory)
loadingRules := clientcmd.NewKubeConfigLoadingRules() // if you want to change the loading rules (which files in which order), you can do so here configOverrides := &clientcmd.ConfigOverrides{} // if you want to change override values or bind them to flags, there are methods to help you kubeConfig := clientcmd.NewNonInteractiveDeferredLoadingKubeConfig(loadingRules, configOverrides) kubeConfig.Client()
Index ¶
- Constants
- Variables
- func BindAuthInfoFlags(authInfo *clientcmdapi.AuthInfo, flags *pflag.FlagSet, ...)
- func BindClusterFlags(clusterInfo *clientcmdapi.Cluster, flags *pflag.FlagSet, ...)
- func BindContextFlags(contextInfo *clientcmdapi.Context, flags *pflag.FlagSet, ...)
- func BindOverrideFlags(overrides *ConfigOverrides, flags *pflag.FlagSet, ...)
- func ConfirmUsable(config clientcmdapi.Config, passedContextName string) error
- func IsContextNotFound(err error) bool
- func LoadFromFile(filename string) (*clientcmdapi.Config, error)
- func Validate(config clientcmdapi.Config) error
- func WriteToFile(config clientcmdapi.Config, filename string) error
- type AuthLoader
- type AuthOverrideFlags
- type ClientConfig
- func NewDefaultClientConfig(config clientcmdapi.Config, overrides *ConfigOverrides) ClientConfig
- func NewInteractiveClientConfig(config clientcmdapi.Config, contextName string, overrides *ConfigOverrides, ...) ClientConfig
- func NewInteractiveDeferredLoadingClientConfig(loadingRules *ClientConfigLoadingRules, overrides *ConfigOverrides, ...) ClientConfig
- func NewNonInteractiveClientConfig(config clientcmdapi.Config, contextName string, overrides *ConfigOverrides) ClientConfig
- func NewNonInteractiveDeferredLoadingClientConfig(loadingRules *ClientConfigLoadingRules, overrides *ConfigOverrides) ClientConfig
- type ClientConfigLoadingRules
- type ClusterOverrideFlags
- type ConfigOverrideFlags
- type ConfigOverrides
- type ContextOverrideFlags
- type DeferredLoadingClientConfig
- type DirectClientConfig
- type PromptingAuthLoader
Constants ¶
const ( RecommendedConfigPathFlag = "kubeconfig" RecommendedConfigPathEnvVar = "KUBECONFIG" )
const ( FlagClusterName = "cluster" FlagAuthInfoName = "user" FlagContext = "context" FlagNamespace = "namespace" FlagNamespacePath = "ns-path" FlagAPIServer = "server" FlagAPIVersion = "api-version" FlagAuthPath = "auth-path" FlagInsecure = "insecure-skip-tls-verify" FlagCertFile = "client-certificate" FlagKeyFile = "client-key" FlagCAFile = "certificate-authority" FlagBearerToken = "token" )
Variables ¶
var ErrNoContext = errors.New("no context chosen")
Functions ¶
func BindAuthInfoFlags ¶ added in v0.9.0
func BindAuthInfoFlags(authInfo *clientcmdapi.AuthInfo, flags *pflag.FlagSet, flagNames AuthOverrideFlags)
BindAuthInfoFlags is a convenience method to bind the specified flags to their associated variables
func BindClusterFlags ¶ added in v0.9.0
func BindClusterFlags(clusterInfo *clientcmdapi.Cluster, flags *pflag.FlagSet, flagNames ClusterOverrideFlags)
BindClusterFlags is a convenience method to bind the specified flags to their associated variables
func BindContextFlags ¶ added in v0.9.1
func BindContextFlags(contextInfo *clientcmdapi.Context, flags *pflag.FlagSet, flagNames ContextOverrideFlags)
BindFlags is a convenience method to bind the specified flags to their associated variables
func BindOverrideFlags ¶ added in v0.9.0
func BindOverrideFlags(overrides *ConfigOverrides, flags *pflag.FlagSet, flagNames ConfigOverrideFlags)
BindOverrideFlags is a convenience method to bind the specified flags to their associated variables
func ConfirmUsable ¶ added in v0.9.0
func ConfirmUsable(config clientcmdapi.Config, passedContextName string) error
ConfirmUsable looks a particular context and determines if that particular part of the config is useable. There might still be errors in the config, but no errors in the sections requested or referenced. It does not return early so that it can find as many errors as possible.
func IsContextNotFound ¶ added in v0.9.0
IsContextNotFound returns a boolean indicating whether the error is known to report that a context was not found
func LoadFromFile ¶ added in v0.9.0
func LoadFromFile(filename string) (*clientcmdapi.Config, error)
LoadFromFile takes a filename and deserializes the contents into Config object
func Validate ¶ added in v0.9.0
func Validate(config clientcmdapi.Config) error
Validate checks for errors in the Config. It does not return early so that it can find as many errors as possible.
func WriteToFile ¶ added in v0.9.0
func WriteToFile(config clientcmdapi.Config, filename string) error
WriteToFile serializes the config to yaml and writes it out to a file. If no present, it creates the file with 0644. If it is present it stomps the contents
Types ¶
type AuthLoader ¶
type AuthLoader interface { // LoadAuth takes a path to a config file and can then do anything it needs in order to return a valid clientauth.Info LoadAuth(path string) (*clientauth.Info, error) }
AuthLoaders are used to build clientauth.Info objects.
func NewDefaultAuthLoader ¶
func NewDefaultAuthLoader() AuthLoader
NewDefaultAuthLoader returns a default implementation of an AuthLoader that only reads from a config file
type AuthOverrideFlags ¶ added in v0.9.0
type AuthOverrideFlags struct { AuthPath string AuthPathShort string ClientCertificate string ClientKey string Token string }
AuthOverrideFlags holds the flag names to be used for binding command line flags for AuthInfo objects
func RecommendedAuthOverrideFlags ¶ added in v0.9.0
func RecommendedAuthOverrideFlags(prefix string) AuthOverrideFlags
RecommendedAuthOverrideFlags is a convenience method to return recommended flag names prefixed with a string of your choosing
type ClientConfig ¶ added in v0.9.0
type ClientConfig interface { // RawConfig returns the merged result of all overrides RawConfig() (clientcmdapi.Config, error) // ClientConfig returns a complete client config ClientConfig() (*client.Config, error) // Namespace returns the namespace resulting from the merged result of all overrides Namespace() (string, error) }
ClientConfig is used to make it easy to get an api server client
func NewDefaultClientConfig ¶ added in v0.9.0
func NewDefaultClientConfig(config clientcmdapi.Config, overrides *ConfigOverrides) ClientConfig
NewDefaultClientConfig creates a DirectClientConfig using the config.CurrentContext as the context name
func NewInteractiveClientConfig ¶ added in v0.9.0
func NewInteractiveClientConfig(config clientcmdapi.Config, contextName string, overrides *ConfigOverrides, fallbackReader io.Reader) ClientConfig
NewInteractiveClientConfig creates a DirectClientConfig using the passed context name and a reader in case auth information is not provided via files or flags
func NewInteractiveDeferredLoadingClientConfig ¶ added in v0.9.0
func NewInteractiveDeferredLoadingClientConfig(loadingRules *ClientConfigLoadingRules, overrides *ConfigOverrides, fallbackReader io.Reader) ClientConfig
NewInteractiveDeferredLoadingClientConfig creates a ConfigClientClientConfig using the passed context name and the fallback auth reader
func NewNonInteractiveClientConfig ¶ added in v0.9.0
func NewNonInteractiveClientConfig(config clientcmdapi.Config, contextName string, overrides *ConfigOverrides) ClientConfig
NewNonInteractiveClientConfig creates a DirectClientConfig using the passed context name and does not have a fallback reader for auth information
func NewNonInteractiveDeferredLoadingClientConfig ¶ added in v0.9.0
func NewNonInteractiveDeferredLoadingClientConfig(loadingRules *ClientConfigLoadingRules, overrides *ConfigOverrides) ClientConfig
NewNonInteractiveDeferredLoadingClientConfig creates a ConfigClientClientConfig using the passed context name
type ClientConfigLoadingRules ¶ added in v0.9.0
type ClientConfigLoadingRules struct { CommandLinePath string EnvVarPath string CurrentDirectoryPath string HomeDirectoryPath string }
ClientConfigLoadingRules is a struct that calls our specific locations that are used for merging together a Config
func NewClientConfigLoadingRules ¶ added in v0.9.0
func NewClientConfigLoadingRules() *ClientConfigLoadingRules
NewClientConfigLoadingRules returns a ClientConfigLoadingRules object with default fields filled in. You are not required to use this constructor
func (*ClientConfigLoadingRules) Load ¶ added in v0.9.0
func (rules *ClientConfigLoadingRules) Load() (*clientcmdapi.Config, error)
Load takes the loading rules and merges together a Config object based on following order.
- CommandLinePath
- EnvVarPath
- CurrentDirectoryPath
- HomeDirectoryPath
Empty filenames are ignored. Files with non-deserializable content produced errors. The first file to set a particular value or map key wins and the value or map key is never changed. This means that the first file to set CurrentContext will have its context preserved. It also means that if two files specify a "red-user", only values from the first file's red-user are used. Even non-conflicting entries from the second file's "red-user" are discarded.
type ClusterOverrideFlags ¶ added in v0.9.0
type ClusterOverrideFlags struct { APIServer string APIServerShort string APIVersion string CertificateAuthority string InsecureSkipTLSVerify string }
ClusterOverride holds the flag names to be used for binding command line flags for Cluster objects
func RecommendedClusterOverrideFlags ¶ added in v0.9.0
func RecommendedClusterOverrideFlags(prefix string) ClusterOverrideFlags
RecommendedClusterOverrideFlags is a convenience method to return recommended flag names prefixed with a string of your choosing
type ConfigOverrideFlags ¶ added in v0.9.0
type ConfigOverrideFlags struct { AuthOverrideFlags AuthOverrideFlags ClusterOverrideFlags ClusterOverrideFlags ContextOverrideFlags ContextOverrideFlags CurrentContext string }
ConfigOverrideFlags holds the flag names to be used for binding command line flags. Notice that this structure tightly corresponds to ConfigOverrides
func RecommendedConfigOverrideFlags ¶ added in v0.9.0
func RecommendedConfigOverrideFlags(prefix string) ConfigOverrideFlags
RecommendedConfigOverrideFlags is a convenience method to return recommended flag names prefixed with a string of your choosing
type ConfigOverrides ¶ added in v0.9.0
type ConfigOverrides struct { AuthInfo clientcmdapi.AuthInfo ClusterInfo clientcmdapi.Cluster Context clientcmdapi.Context CurrentContext string }
ConfigOverrides holds values that should override whatever information is pulled from the actual Config object. You can't simply use an actual Config object, because Configs hold maps, but overrides are restricted to "at most one"
type ContextOverrideFlags ¶ added in v0.9.1
type ContextOverrideFlags struct { ClusterName string AuthInfoName string Namespace string NamespacePath string }
ContextOverrideFlags holds the flag names to be used for binding command line flags for Cluster objects
func RecommendedContextOverrideFlags ¶ added in v0.9.1
func RecommendedContextOverrideFlags(prefix string) ContextOverrideFlags
RecommendedContextOverrideFlags is a convenience method to return recommended flag names prefixed with a string of your choosing
type DeferredLoadingClientConfig ¶ added in v0.9.0
type DeferredLoadingClientConfig struct {
// contains filtered or unexported fields
}
DeferredLoadingClientConfig is a ClientConfig interface that is backed by a set of loading rules It is used in cases where the loading rules may change after you've instantiated them and you want to be sure that the most recent rules are used. This is useful in cases where you bind flags to loading rule parameters before the parse happens and you want your calling code to be ignorant of how the values are being mutated to avoid passing extraneous information down a call stack
func (DeferredLoadingClientConfig) ClientConfig ¶ added in v0.9.0
func (config DeferredLoadingClientConfig) ClientConfig() (*client.Config, error)
ClientConfig implements ClientConfig
func (DeferredLoadingClientConfig) Namespace ¶ added in v0.9.1
func (config DeferredLoadingClientConfig) Namespace() (string, error)
Namespace implements KubeConfig
func (DeferredLoadingClientConfig) RawConfig ¶ added in v0.9.0
func (config DeferredLoadingClientConfig) RawConfig() (clientcmdapi.Config, error)
type DirectClientConfig ¶ added in v0.9.0
type DirectClientConfig struct {
// contains filtered or unexported fields
}
DirectClientConfig is a ClientConfig interface that is backed by a clientcmdapi.Config, options overrides, and an optional fallbackReader for auth information
func (DirectClientConfig) ClientConfig ¶ added in v0.9.0
func (config DirectClientConfig) ClientConfig() (*client.Config, error)
ClientConfig implements ClientConfig
func (DirectClientConfig) ConfirmUsable ¶ added in v0.9.0
func (config DirectClientConfig) ConfirmUsable() error
ConfirmUsable looks a particular context and determines if that particular part of the config is useable. There might still be errors in the config, but no errors in the sections requested or referenced. It does not return early so that it can find as many errors as possible.
func (DirectClientConfig) Namespace ¶ added in v0.9.1
func (config DirectClientConfig) Namespace() (string, error)
Namespace implements KubeConfig
func (DirectClientConfig) RawConfig ¶ added in v0.9.0
func (config DirectClientConfig) RawConfig() (clientcmdapi.Config, error)
type PromptingAuthLoader ¶ added in v0.9.0
type PromptingAuthLoader struct {
// contains filtered or unexported fields
}
func NewPromptingAuthLoader ¶
func NewPromptingAuthLoader(reader io.Reader) *PromptingAuthLoader
NewDefaultAuthLoader is an AuthLoader that parses an AuthInfo object from a file path. It prompts user and creates file if it doesn't exist.
func (*PromptingAuthLoader) LoadAuth ¶ added in v0.9.0
func (a *PromptingAuthLoader) LoadAuth(path string) (*clientauth.Info, error)
LoadAuth parses an AuthInfo object from a file path. It prompts user and creates file if it doesn't exist.
func (*PromptingAuthLoader) Prompt ¶ added in v0.9.0
func (a *PromptingAuthLoader) Prompt() *clientauth.Info
Prompt pulls the user and password from a reader