// Where possible, json tags match the cli argument names.
// Top level config objects and all values required for proper functioning are not "omitempty". Any truly optional piece of config is allowed to be omitted.
// Config holds the information needed to build connect to remote kubernetes clusters as a given user
typeConfigstruct{
// Legacy field from pkg/api/types.go TypeMeta.
// TODO(jlowdermilk): remove this after eliminating downstream dependencies.
Kindstring`yaml:"kind,omitempty"`
// DEPRECATED: APIVersion is the preferred api version for communicating with the kubernetes cluster (v1, v2, etc).
// Because a cluster can run multiple API groups and potentially multiple versions of each, it no longer makes sense to specify
// a single value for the cluster version.
// This field isn't really needed anyway, so we are deprecating it without replacement.
// It will be ignored if it is present.
APIVersionstring`yaml:"apiVersion,omitempty"`
// Preferences holds general information to be use for cli interactions
PreferencesPreferences`yaml:"preferences"`
// Clusters is a map of referencable names to cluster configs
Clusters[]NamedCluster`yaml:"clusters"`
// AuthInfos is a map of referencable names to user configs
AuthInfos[]NamedAuthInfo`yaml:"users"`
// Contexts is a map of referencable names to context configs
Contexts[]NamedContext`yaml:"contexts"`
// CurrentContext is the name of the context that you would like to use by default
CurrentContextstring`yaml:"current-context"`
// Extensions holds additional information. This is useful for extenders so that reads and writes don't clobber unknown fields
// Context is a tuple of references to a cluster (how do I communicate with a kubernetes cluster), a user (how do I identify myself), and a namespace (what subset of resources do I want to work with)
typeContextstruct{
// Cluster is the name of the cluster for this context
Clusterstring`yaml:"cluster"`
// AuthInfo is the name of the authInfo for this context
AuthInfostring`yaml:"user"`
// Namespace is the default namespace to use on unspecified requests
Namespacestring`yaml:"namespace,omitempty"`
// Extensions holds additional information. This is useful for extenders so that reads and writes don't clobber unknown fields