Documentation ¶
Index ¶
- Constants
- Variables
- func BuildConfigFromFlags(serverURL, elmtconfigPath string) (*restclient.Config, error)
- func IsConfigurationInvalid(err error) bool
- func IsEmptyConfig(err error) bool
- func NewEmptyConfigError(message string) error
- func ParseTimeout(duration string) (time.Duration, error)
- func RESTConfigFromELMTConfig(configBytes []byte) (*restclient.Config, error)
- type AuthInfo
- type ClientConfig
- type Config
- type DirectClientConfig
- type Server
- type ZabbixInfo
Constants ¶
const ( RecommendedConfigPathFlag = "elmtconfig" RecommendedConfigPathEnvVar = "ELMTCONFIG" RecommendedHomeDir = ".elmt" RecommendedFileName = "config" RecommendedSchemaName = "scheme" )
Variables ¶
var ( RecommendedConfigDir = path.Join(os.Getenv("HOME"), RecommendedHomeDir) RecommendedHomeFile = path.Join(RecommendedConfigDir, RecommendedFileName) RecommendedSchemaFile = path.Join(RecommendedConfigDir, RecommendedSchemaName) )
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 ¶
IsConfigurationInvalid returns true if the provided error indicates the configuration is invalid.
func IsEmptyConfig ¶
IsEmptyConfig returns true if the provided error indicates the provided configuration is empty.
func NewEmptyConfigError ¶
func ParseTimeout ¶
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 ¶
Load - take a byte slice and deserialize the contents into Config object - encapsulate deserialization without assuming the source is a file
func LoadFromFile ¶
LoadFromFile - load config from file
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.