Documentation ¶
Overview ¶
Package options is the public flags and options used by a generic api server. It takes a minimal set of dependencies and does not reference implementations, in order to ensure it may be reused by multiple components (such as CLI commands that wish to generate or validate config).
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type CertKey ¶
type CertKey struct { // CertFile is a file containing a PEM-encoded certificate, and possibly the complete certificate chain CertFile string `json:"cert-file" mapstructure:"cert-file"` // KeyFile is a file containing a PEM-encoded private key for the certificate specified by CertFile KeyFile string `json:"private-key-file" mapstructure:"private-key-file"` }
CertKey contains configuration items related to certificate.
type ClusterOptions ¶
type ClusterOptions struct { Enable bool `json:"enable" mapstructure:"enable"` Role string `json:"role" mapstructure:"role"` IsMasterHandle bool `json:"is_master_handle" mapstructure:"is_master_handle"` // Name is this cluster name Name string `json:"name" mapstructure:"name"` // LoadPolicy can choose rr, shuffle and consistent-hash LoadPolicy string `json:"policy" mapstructure:"policy"` }
ClusterOptions contains role, enable and so on of current server.
type EtcdOptions ¶
type EtcdOptions struct { Endpoints []string `json:"endpoints" mapstructure:"endpoints"` Timeout int `json:"timeout" mapstructure:"timeout"` RequestTimeout int `json:"request-timeout" mapstructure:"request-timeout"` LeaseExpire int `json:"lease-expire" mapstructure:"lease-expire"` Username string `json:"username" mapstructure:"username"` Password string `json:"password" mapstructure:"password"` UseTLS bool `json:"use-tls" mapstructure:"use-tls"` CaCert string `json:"ca-cert" mapstructure:"ca-cert"` Cert string `json:"cert" mapstructure:"cert"` Key string `json:"key" mapstructure:"key"` HealthBeatPathPrefix string `json:"health_beat_path_prefix" mapstructure:"health_beat_path_prefix"` HealthBeatIFaceName string `json:"health_beat_iface_name" mapstructure:"health_beat_iface_name"` Namespace string `json:"namespace" mapstructure:"namespace"` }
EtcdOptions defines options for etcd cluster.
func NewEtcdOptions ¶
func NewEtcdOptions() *EtcdOptions
NewEtcdOptions create a `zero` value instance.
func (*EtcdOptions) AddFlags ¶
func (o *EtcdOptions) AddFlags(fs *pflag.FlagSet)
AddFlags adds flags related to redis storage for a specific APIServer to the specified FlagSet.
func (*EtcdOptions) GetEtcdTLSConfig ¶
func (o *EtcdOptions) GetEtcdTLSConfig() (*tls.Config, error)
GetEtcdTLSConfig returns etcd tls config.
func (*EtcdOptions) Validate ¶
func (o *EtcdOptions) Validate() []error
Validate verifies flags passed to RedisOptions.
type FeatureOptions ¶
type FeatureOptions struct { EnableProfiling bool `json:"profiling" mapstructure:"profiling"` EnableMetrics bool `json:"enable-metrics" mapstructure:"enable-metrics"` }
FeatureOptions contains configuration items related to API server features.
func NewFeatureOptions ¶
func NewFeatureOptions() *FeatureOptions
NewFeatureOptions creates a FeatureOptions object with default parameters.
func (*FeatureOptions) AddFlags ¶
func (o *FeatureOptions) AddFlags(fs *pflag.FlagSet)
AddFlags adds flags related to features for a specific api server to the specified FlagSet.
func (*FeatureOptions) ApplyTo ¶
func (o *FeatureOptions) ApplyTo(c *server.Config) error
ApplyTo applies the run options to the method receiver and returns self.
func (*FeatureOptions) Validate ¶
func (o *FeatureOptions) Validate() []error
Validate is used to parse and validate the parameters entered by the user at the command line when the program starts.
type GeneratableKeyCert ¶
type GeneratableKeyCert struct { // CertKey allows setting an explicit cert/key file to use. CertKey CertKey `json:"cert-key" mapstructure:"cert-key"` // CertDirectory specifies a directory to write generated certificates to if CertFile/KeyFile aren't explicitly set. // PairName is used to determine the filenames within CertDirectory. // If CertDirectory and PairName are not set, an in-memory certificate will be generated. CertDirectory string `json:"cert-dir" mapstructure:"cert-dir"` // PairName is the name which will be used with CertDirectory to make a cert and key filenames. // It becomes CertDirectory/PairName.crt and CertDirectory/PairName.key PairName string `json:"pair-name" mapstructure:"pair-name"` }
GeneratableKeyCert contains configuration items related to certificate.
type InsecureServingOptions ¶
type InsecureServingOptions struct { BindAddress string `json:"bind-address" mapstructure:"bind-address"` BindPort int `json:"bind-port" mapstructure:"bind-port"` }
InsecureServingOptions are for creating an unauthenticated, unauthorized, insecure port. No one should be using these anymore.
func NewInsecureServingOptions ¶
func NewInsecureServingOptions() *InsecureServingOptions
NewInsecureServingOptions is for creating an unauthenticated, unauthorized, insecure port. No one should be using these anymore.
func (*InsecureServingOptions) AddFlags ¶
func (s *InsecureServingOptions) AddFlags(fs *pflag.FlagSet)
AddFlags adds flags related to features for a specific api server to the specified FlagSet.
func (*InsecureServingOptions) ApplyTo ¶
func (s *InsecureServingOptions) ApplyTo(c *server.Config) error
ApplyTo applies the run options to the method receiver and returns self.
func (*InsecureServingOptions) Validate ¶
func (s *InsecureServingOptions) Validate() []error
Validate is used to parse and validate the parameters entered by the user at the command line when the program starts.
type MySQLOptions ¶
type MySQLOptions struct { Host string `json:"host,omitempty" mapstructure:"host"` Username string `json:"username,omitempty" mapstructure:"username"` Password string `json:"-" mapstructure:"password"` Database string `json:"database" mapstructure:"database"` MaxIdleConnections int `json:"max-idle-connections,omitempty" mapstructure:"max-idle-connections"` MaxOpenConnections int `json:"max-open-connections,omitempty" mapstructure:"max-open-connections"` MaxConnectionLifeTime time.Duration `json:"max-connection-life-time,omitempty" mapstructure:"max-connection-life-time"` LogLevel int `json:"log-level" mapstructure:"log-level"` }
MySQLOptions defines options for mysql database.
func NewMySQLOptions ¶
func NewMySQLOptions() *MySQLOptions
NewMySQLOptions create a `zero` value instance.
func (*MySQLOptions) AddFlags ¶
func (o *MySQLOptions) AddFlags(fs *pflag.FlagSet)
AddFlags adds flags related to mysql storage for a specific APIServer to the specified FlagSet.
func (*MySQLOptions) NewClient ¶
func (o *MySQLOptions) NewClient() (*gorm.DB, error)
NewClient create mysql transport with the given config.
func (*MySQLOptions) Validate ¶
func (o *MySQLOptions) Validate() []error
Validate verifies flags passed to MySQLOptions.
type ProxyHandlerOptions ¶
type ProxyHandlerOptions struct { // ForceProxyHttps will enable that deal with https stream ForceProxyHttps bool // HttpServerOptions http/https server HttpServerOptions *server.InsecureServingInfo HttpsServerOptions *server.SecureServingInfo // Plugins work within proxy server processing Plugins []string }
ProxyHandlerOptions proxy handler options.
func (*ProxyHandlerOptions) ApplyTo ¶
func (s *ProxyHandlerOptions) ApplyTo(c *server.Config) error
ApplyTo applies the run options to the method receiver and returns self.
func (*ProxyHandlerOptions) NewProxyHandlerOptions ¶
func (s *ProxyHandlerOptions) NewProxyHandlerOptions() *ProxyHandlerOptions
NewProxyHandlerOptions creates a NewProxyHandlerOptions object with default parameters.
type RedisOptions ¶
type RedisOptions struct { Host string `json:"host" mapstructure:"host" description:"Redis service host address"` Port int `json:"port"` Addrs []string `json:"addrs" mapstructure:"addrs"` Username string `json:"username" mapstructure:"username"` Password string `json:"password" mapstructure:"password"` Database int `json:"database" mapstructure:"database"` MasterName string `json:"master-name" mapstructure:"master-name"` MaxIdle int `json:"optimisation-max-idle" mapstructure:"optimisation-max-idle"` MaxActive int `json:"optimisation-max-active" mapstructure:"optimisation-max-active"` Timeout int `json:"timeout" mapstructure:"timeout"` EnableCluster bool `json:"enable-cluster" mapstructure:"enable-cluster"` UseSSL bool `json:"use-ssl" mapstructure:"use-ssl"` SSLInsecureSkipVerify bool `json:"ssl-insecure-skip-verify" mapstructure:"ssl-insecure-skip-verify"` }
RedisOptions defines options for redis cluster.
func NewRedisOptions ¶
func NewRedisOptions() *RedisOptions
NewRedisOptions create a `zero` value instance.
func (*RedisOptions) AddFlags ¶
func (o *RedisOptions) AddFlags(fs *pflag.FlagSet)
AddFlags adds flags related to redis storage for a specific APIServer to the specified FlagSet.
func (*RedisOptions) Validate ¶
func (o *RedisOptions) Validate() []error
Validate verifies flags passed to RedisOptions.
type SecureServingOptions ¶
type SecureServingOptions struct { BindAddress string `json:"bind-address" mapstructure:"bind-address"` // BindPort is ignored when Listener is set, will serve HTTPS even with 0. BindPort int `json:"bind-port" mapstructure:"bind-port"` // Required set to true means that BindPort cannot be zero. Required bool // ServerCert is the TLS cert info for serving secure traffic ServerCert GeneratableKeyCert `json:"tls" mapstructure:"tls"` }
SecureServingOptions contains configuration items related to HTTPS server startup.
func NewSecureServingOptions ¶
func NewSecureServingOptions() *SecureServingOptions
NewSecureServingOptions creates a SecureServingOptions object with default parameters.
func (*SecureServingOptions) AddFlags ¶
func (s *SecureServingOptions) AddFlags(fs *pflag.FlagSet)
AddFlags adds flags related to HTTPS server for a specific APIServer to the specified FlagSet.
func (*SecureServingOptions) ApplyTo ¶
func (s *SecureServingOptions) ApplyTo(c *server.Config) error
ApplyTo applies the run options to the method receiver and returns self.
func (*SecureServingOptions) Complete ¶
func (s *SecureServingOptions) Complete() error
Complete fills in any fields not set that are required to have valid data.
func (*SecureServingOptions) Validate ¶
func (s *SecureServingOptions) Validate() []error
Validate is used to parse and validate the parameters entered by the user at the command line when the program starts.
type ServerRunOptions ¶
type ServerRunOptions struct { Mode string `json:"mode" mapstructure:"mode"` Healthz bool `json:"healthz" mapstructure:"healthz"` Middlewares []string `json:"middlewares" mapstructure:"middlewares"` Plugins []string `json:"plugin.md" mapstructure:"plugin.md"` Cluster ClusterOptions `json:"cluster" mapstructure:"cluster"` }
ServerRunOptions contains the options while running a generic api server.
func NewServerRunOptions ¶
func NewServerRunOptions() *ServerRunOptions
NewServerRunOptions creates a new ServerRunOptions object with default parameters.
func (*ServerRunOptions) AddFlags ¶
func (s *ServerRunOptions) AddFlags(fs *pflag.FlagSet)
AddFlags adds flags for a specific APIServer to the specified FlagSet.
func (*ServerRunOptions) ApplyTo ¶
func (s *ServerRunOptions) ApplyTo(c *server.Config) error
ApplyTo applies the run options to the method receiver and returns self.
func (*ServerRunOptions) Validate ¶
func (s *ServerRunOptions) Validate() []error
Validate checks validation of ServerRunOptions.