clientcmd

package
v0.0.0-...-0905698 Latest Latest
Warning

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

Go to latest
Published: Jun 9, 2022 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
const (
	RecommendedConfigPathFlag   = "elmtconfig"
	RecommendedConfigPathEnvVar = "ELMTCONFIG"
	RecommendedHomeDir          = ".elmt"
	RecommendedFileName         = "config"
	RecommendedSchemaName       = "scheme"
)

Variables

View Source
var (
	RecommendedConfigDir  = path.Join(os.Getenv("HOME"), RecommendedHomeDir)
	RecommendedHomeFile   = path.Join(RecommendedConfigDir, RecommendedFileName)
	RecommendedSchemaFile = path.Join(RecommendedConfigDir, RecommendedSchemaName)
)
View Source
var (
	// ErrNoContext defines no context chosen error.
	ErrNoContext = errors.New("no context chosen")

	// ErrEmptyConfig defines no configuration has been provided error.
	ErrEmptyConfig = NewEmptyConfigError("no configuration has been provided")

	// ErrEmptyServer defines a no server defined error.
	ErrEmptyServer = errors.New("no server has been defined")
)

Functions

func BuildConfigFromFlags

func BuildConfigFromFlags(serverURL, elmtconfigPath string) (*restclient.Config, error)

BuildConfigFromFlags - a helper function that builds configs from a server url and .elmtconfig filepath

- 示例: config, err := clientcmd.BuildConfigFromFlags("", "/root/.elmt/config.yaml")

func IsConfigurationInvalid

func IsConfigurationInvalid(err error) bool

IsConfigurationInvalid returns true if the provided error indicates the configuration is invalid.

func IsEmptyConfig

func IsEmptyConfig(err error) bool

IsEmptyConfig returns true if the provided error indicates the provided configuration is empty.

func NewEmptyConfigError

func NewEmptyConfigError(message string) error

func ParseTimeout

func ParseTimeout(duration string) (time.Duration, error)

ParseTimeout - return a parsed duration from a string - a duration string value must be a positive integer, optionally followed by a corresponding time unit (s|m|h).

func RESTConfigFromELMTConfig

func RESTConfigFromELMTConfig(configBytes []byte) (*restclient.Config, error)

Types

type AuthInfo

type AuthInfo struct {
	LocationOfOrigin string

	Username  string `yaml:"username,omitempty" mapstructure:"username,omitempty"`
	Password  string `yaml:"password,omitempty" mapstructure:"password,omitempty"`
	SecretID  string `yaml:"secret-id,omitempty"  mapstructure:"secret-id,omitempty"`
	SecretKey string `yaml:"secret-key,omitempty" mapstructure:"secret-key,omitempty"`

	// Token is the bearer token for authentication to the elmt cluster.
	// +optional
	Token string `yaml:"token,omitempty" mapstructure:"token,omitempty"`

	// ClientCertificate is the path to a client certificate file for TLS.
	// +optional
	ClientCertificate string `yaml:"client-certificate,omitempty" mapstructure:"client-certificate,omitempty"`

	// ClientCertificateData contains PEM-encoded data from a client cert file for TLS. Overrides ClientCertificate.
	// +optional
	ClientCertificateData string `yaml:"client-certificate-data,omitempty" mapstructure:"client-certificate-data,omitempty"`

	// ClientKey is the path to a client key file for TLS.
	// +optional
	ClientKey string `yaml:"client-key,omitempty" mapstructure:"client-key,omitempty"`

	// ClientKeyData contains PEM-encoded data from a client key file for TLS. It overrides ClientKey.
	// +optional
	ClientKeyData string `yaml:"client-key-data,omitempty" mapstructure:"client-key-data,omitempty"`
}

AuthInfo contains information that describes identity information.

type ClientConfig

type ClientConfig interface {
	ClientConfig() (*restclient.Config, error)
}

ClientConfig interface - be used to make it easy to get an API server client - it returns a complete client config

func NewClientConfigFromBytes

func NewClientConfigFromBytes(configBytes []byte) (ClientConfig, error)

func NewClientConfigFromConfig

func NewClientConfigFromConfig(config *Config) ClientConfig

type Config

type Config struct {
	APIVersion string      `yaml:"apiVersion,omitempty" mapstructure:"apiVersion,omitempty"`
	Server     *Server     `yaml:"server,omitempty"     mapstructure:"server,omitempty"`
	AuthInfo   *AuthInfo   `yaml:"user,omitempty"       mapstructure:"user,omitempty"`
	ZabbixInfo *ZabbixInfo `yaml:"zabbix,omitempty"     mapstructure:"zabbix,omitempty"`
}

Config defines a config struct used by sdk.

func Load

func Load(data []byte) (*Config, error)

Load - take a byte slice and deserialize the contents into Config object - encapsulate deserialization without assuming the source is a file

func LoadFromFile

func LoadFromFile(filename string) (*Config, error)

LoadFromFile - load config from file

func NewConfig

func NewConfig() *Config

NewConfig is a convenience function that returns a new Config object with non-nil maps.

type DirectClientConfig

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

func (*DirectClientConfig) ClientConfig

func (config *DirectClientConfig) ClientConfig() (*restclient.Config, error)

ClientConfig implements ClientConfig interface.

func (*DirectClientConfig) ConfirmUsable

func (config *DirectClientConfig) ConfirmUsable() error

ConfirmUsable - look a particular context and determine 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.

type Server

type Server struct {
	LocationOfOrigin string
	Timeout          time.Duration `yaml:"timeout,omitempty"        mapstructure:"timeout,omitempty"`
	MaxRetries       int           `yaml:"max-retries,omitempty"    mapstructure:"max-retries,omitempty"`
	RetryInterval    time.Duration `yaml:"retry-interval,omitempty" mapstructure:"retry-interval,omitempty"`
	Address          string        `yaml:"address,omitempty"        mapstructure:"address,omitempty"`

	// TLSServerName is used to check server certificate.
	// If TLSServerName is empty, the hostname used to contact the server is used.
	// +optional
	TLSServerName string `yaml:"tls-server-name,omitempty" mapstructure:"tls-server-name,omitempty"`

	// InsecureSkipTLSVerify skips the validity check for the server's certificate.
	// This will make your HTTPS connections insecure.
	// +optional
	InsecureSkipTLSVerify bool `yaml:"insecure-skip-tls-verify,omitempty" mapstructure:"insecure-skip-tls-verify,omitempty"`

	// CertificateAuthority is the path to a cert file for the certificate authority.
	// +optional
	CertificateAuthority string `yaml:"certificate-authority,omitempty" mapstructure:"certificate-authority,omitempty"`

	// CertificateAuthorityData contains PEM-encoded certificate authority certificates.
	// Overrides CertificateAuthority
	// +optional
	CertificateAuthorityData string `yaml:"certificate-authority-data,omitempty" mapstructure:"certificate-authority-data,omitempty"`
}

Server contains information about how to communicate with the elmt api server.

type ZabbixInfo

type ZabbixInfo struct {
	ApiUrl  string `yaml:"api-url,omitempty" mapstructure:"api-url,omitempty"`
	ApiUser string `yaml:"api-user,omitempty" mapstructure:"api-user,omitempty"`
	ApiPass string `yaml:"api-pass,omitempty" mapstructure:"api-pass,omitempty"`
}

ZabbixInfo contains information that describes Zabbix JSON-RPC API information.

Jump to

Keyboard shortcuts

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