Documentation
¶
Index ¶
- func Debug(logger log.Logger, msg string, kv ...interface{}) error
- func Error(logger log.Logger, msg string, kv ...interface{}) error
- func Execute()
- func Fatal(logger log.Logger, msg string, kv ...interface{})
- func FileExists(filename ...string) bool
- func Getenv(name, def string) string
- func HashValues(objects ...interface{}) string
- func Info(logger log.Logger, msg string, kv ...interface{}) error
- func InsideKube() bool
- func IsNotFoundError(err error) bool
- func NewEnvClient() (*k.Client, error)
- func NewIngress(name string, namespace string, labels map[string]string, ...) *extensions.Ingress
- func NewIngressSpec(hostname string, serviceName string, servicePort int32, secretName string) *extensions.IngressSpec
- func NewLogger(cmd *cobra.Command, pkg string) log.Logger
- func NewOutofProcessClient() (*k.Client, error)
- func NewSecret(name string, namespace string, data map[string][]byte, ...) *api.Secret
- func NewTLSecret(name string, namespace string, cert []byte, key []byte, ...) *api.Secret
- func Resolve(filename string) (string, error)
- func StringPointer(v string) *string
- func Stringify(v interface{}, opts ...interface{}) string
- func Warn(logger log.Logger, msg string, kv ...interface{}) error
- type AuthInfo
- type AuthProviderConfig
- type Cluster
- type Config
- type Context
- type LogColorTheme
- type LogLevel
- type LogOutputFormat
- type LoggerCloser
- type NamedAuthInfo
- type NamedCluster
- type NamedContext
- type NamedExtension
- type Preferences
- type WithLogOptions
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Execute ¶
func Execute()
Execute adds all child commands to the root command sets flags appropriately. This is called by main.main(). It only needs to happen once to the rootCmd.
func FileExists ¶
FileExists returns true if the path components exist
func HashValues ¶
func HashValues(objects ...interface{}) string
HashValues will convert all objects to a string and return a SHA256 of the concatenated values
func InsideKube ¶
func InsideKube() bool
InsideKube returns true if it looks like we're running inside a pod in kubernetes
func IsNotFoundError ¶
IsNotFoundError returns true if the error return is a status not found (404) error
func NewEnvClient ¶
NewEnvClient will return a k8s Client based on environment running
func NewIngress ¶
func NewIngress(name string, namespace string, labels map[string]string, annotations map[string]string, spec *extensions.IngressSpec) *extensions.Ingress
NewIngress is a helper for creating a new Ingress object
func NewIngressSpec ¶
func NewIngressSpec(hostname string, serviceName string, servicePort int32, secretName string) *extensions.IngressSpec
NewIngressSpec will create a new ingress spec
func NewOutofProcessClient ¶
NewOutofProcessClient returns a out-of-process k8s Client
func NewSecret ¶
func NewSecret(name string, namespace string, data map[string][]byte, labels map[string]string, annotations map[string]string) *api.Secret
NewSecret is a helper for creating a new Secret object
func NewTLSecret ¶
func NewTLSecret(name string, namespace string, cert []byte, key []byte, labels map[string]string, annotations map[string]string) *api.Secret
NewTLSecret is a helper for creating a new TLS Secret object
func StringPointer ¶
StringPointer returns a pointer to a string and if blank nil
Types ¶
type AuthInfo ¶
type AuthInfo struct {
// ClientCertificate is the path to a client cert file for TLS.
// +optional
ClientCertificate string `json:"client-certificate,omitempty" yaml:"client-certificate,omitempty"`
// ClientCertificateData contains PEM-encoded data from a client cert file for TLS. Overrides ClientCertificate
// +optional
ClientCertificateData []byte `json:"client-certificate-data,omitempty" yaml:"client-certificate-data,omitempty"`
// ClientKey is the path to a client key file for TLS.
// +optional
ClientKey string `json:"client-key,omitempty" yaml:"client-key,omitempty"`
// ClientKeyData contains PEM-encoded data from a client key file for TLS. Overrides ClientKey
// +optional
ClientKeyData []byte `json:"client-key-data,omitempty" yaml:"client-key-data,omitempty"`
// Token is the bearer token for authentication to the kubernetes cluster.
// +optional
Token string `json:"token,omitempty" yaml:"token,omitempty"`
// TokenFile is a pointer to a file that contains a bearer token (as described above). If both Token and TokenFile are present, Token takes precedence.
// +optional
TokenFile string `json:"tokenFile,omitempty" yaml:"tokenFile,omitempty"`
// Impersonate is the username to imperonate. The name matches the flag.
// +optional
Impersonate string `json:"as,omitempty" yaml:"as,omitempty"`
// Username is the username for basic authentication to the kubernetes cluster.
// +optional
Username string `json:"username,omitempty" yaml:"username,omitempty"`
// Password is the password for basic authentication to the kubernetes cluster.
// +optional
Password string `json:"password,omitempty" yaml:"password,omitempty"`
// AuthProvider specifies a custom authentication plugin for the kubernetes cluster.
// +optional
AuthProvider *AuthProviderConfig `json:"auth-provider,omitempty" yaml:"auth-provider,omitempty"`
// Extensions holds additional information. This is useful for extenders so that reads and writes don't clobber unknown fields
// +optional
Extensions []NamedExtension `json:"extensions,omitempty" yaml:"extensions,omitempty"`
}
AuthInfo contains information that describes identity information. This is use to tell the kubernetes cluster who you are.
type AuthProviderConfig ¶
type AuthProviderConfig struct {
Name string `json:"name" yaml:"name"`
Config map[string]string `json:"config" yaml:"config"`
}
AuthProviderConfig holds the configuration for a specified auth provider.
type Cluster ¶
type Cluster struct {
// Server is the address of the kubernetes cluster (https://hostname:port).
Server string `json:"server" yaml:"server"`
// APIVersion is the preferred api version for communicating with the kubernetes cluster (v1, v2, etc).
// +optional
APIVersion string `json:"api-version,omitempty" yaml:"api-version,omitempty"`
// InsecureSkipTLSVerify skips the validity check for the server's certificate. This will make your HTTPS connections insecure.
// +optional
InsecureSkipTLSVerify bool `json:"insecure-skip-tls-verify,omitempty" yaml:"insecure-skip-tls-verify,omitempty"`
// CertificateAuthority is the path to a cert file for the certificate authority.
// +optional
CertificateAuthority string `json:"certificate-authority,omitempty" yaml:"certificate-authority,omitempty"`
// CertificateAuthorityData contains PEM-encoded certificate authority certificates. Overrides CertificateAuthority
// +optional
CertificateAuthorityData []byte `json:"certificate-authority-data,omitempty" yaml:"certificate-authority-data,omitempty"`
// Extensions holds additional information. This is useful for extenders so that reads and writes don't clobber unknown fields
// +optional
Extensions []NamedExtension `json:"extensions,omitempty" yaml:"extensions,omitempty"`
}
Cluster contains information about how to communicate with a kubernetes cluster
type Config ¶
type Config struct {
// Legacy field from pkg/api/types.go TypeMeta.
// TODO(jlowdermilk): remove this after eliminating downstream dependencies.
// +optional
Kind string `json:"kind,omitempty" 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.
// +optional
APIVersion string `json:"apiVersion,omitempty" yaml:"apiVersion,omitempty"`
// Preferences holds general information to be use for cli interactions
Preferences Preferences `json:"preferences" yaml:"preferences"`
// Clusters is a map of referencable names to cluster configs
Clusters []NamedCluster `json:"clusters" yaml:"clusters"`
// AuthInfos is a map of referencable names to user configs
AuthInfos []NamedAuthInfo `json:"users" yaml:"users"`
// Contexts is a map of referencable names to context configs
Contexts []NamedContext `json:"contexts" yaml:"contexts"`
// CurrentContext is the name of the context that you would like to use by default
CurrentContext string `json:"current-context" yaml:"current-context"`
// Extensions holds additional information. This is useful for extenders so that reads and writes don't clobber unknown fields
// +optional
Extensions []NamedExtension `json:"extensions,omitempty" yaml:"extensions,omitempty"`
}
Config holds the information needed to build connect to remote kubernetes clusters as a given user
type Context ¶
type Context struct {
// Cluster is the name of the cluster for this context
Cluster string `json:"cluster" yaml:"cluster"`
// AuthInfo is the name of the authInfo for this context
AuthInfo string `json:"user" yaml:"user"`
// Namespace is the default namespace to use on unspecified requests
// +optional
Namespace string `json:"namespace,omitempty" yaml:"namespace,omitempty"`
// Extensions holds additional information. This is useful for extenders so that reads and writes don't clobber unknown fields
// +optional
Extensions []NamedExtension `json:"extensions,omitempty" yaml:"extensions,omitempty"`
}
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)
type LogColorTheme ¶
type LogColorTheme byte
LogColorTheme is the logging color theme
const ( // DarkLogColorTheme is the default color theme for console logging (if enabled) DarkLogColorTheme LogColorTheme = 1 << iota // LightLogColorTheme is for consoles that are light (vs dark) LightLogColorTheme // NoColorTheme will turn off console colors NoColorTheme )
type LogLevel ¶
type LogLevel byte
LogLevel is the minimum logging level
func LevelFromString ¶
LevelFromString will return a LogLevel const from a named string
type LogOutputFormat ¶
type LogOutputFormat byte
LogOutputFormat is the logging output format
const ( // JSONLogFormat will output JSON formatted logs JSONLogFormat LogOutputFormat = 1 << iota // LogFmtLogFormat will output logfmt formatted logs LogFmtLogFormat // ConsoleLogFormat will output logfmt colored logs to console ConsoleLogFormat )
type LoggerCloser ¶
LoggerCloser returns a logger which implements a Close interface
func NewLoggerUtil ¶
func NewLoggerUtil(writer io.Writer, format LogOutputFormat, theme LogColorTheme, minLevel LogLevel, pkg string, opts ...WithLogOptions) LoggerCloser
NewLogger will create a new logger
func NewNoOpTestLogger ¶
func NewNoOpTestLogger() LoggerCloser
NewNoOpTestLogger is a test logger that doesn't log at all
type NamedAuthInfo ¶
type NamedAuthInfo struct {
// Name is the nickname for this AuthInfo
Name string `json:"name" yaml:"name"`
// AuthInfo holds the auth information
AuthInfo AuthInfo `json:"user" yaml:"user"`
}
NamedAuthInfo relates nicknames to auth information
type NamedCluster ¶
type NamedCluster struct {
// Name is the nickname for this Cluster
Name string `json:"name" yaml:"name"`
// Cluster holds the cluster information
Cluster Cluster `json:"cluster" yaml:"cluster"`
}
NamedCluster relates nicknames to cluster information
type NamedContext ¶
type NamedContext struct {
// Name is the nickname for this Context
Name string `json:"name" yaml:"name"`
// Context holds the context information
Context Context `json:"context" yaml:"context"`
}
NamedContext relates nicknames to context information
type NamedExtension ¶
type NamedExtension struct {
// Name is the nickname for this Extension
Name string `json:"name" yaml:"name"`
// Extension holds the extension information
Extension runtime.RawExtension `json:"extension" yaml:"extension"`
}
NamedExtension relates nicknames to extension information
type Preferences ¶
type Preferences struct {
// +optional
Colors bool `json:"colors,omitempty" yaml:"colors,omitempty"`
// Extensions holds additional information. This is useful for extenders so that reads and writes don't clobber unknown fields
// +optional
Extensions []NamedExtension `json:"extensions,omitempty" yaml:"extensions,omitempty"`
}
type WithLogOptions ¶
WithLogOptions is a callback for customizing the logger event further before returning
func WithDefaultTimestampLogOption ¶
func WithDefaultTimestampLogOption() WithLogOptions
WithDefaultTimestampLogOption will add the timestamp in UTC to the ts key
func WithOKLogForwarder ¶
func WithOKLogForwarder(u []*url.URL) WithLogOptions
WithOKLogForwarder will attempt to send logs to OKLog