Documentation
¶
Overview ¶
osdconfig is a package to work with distributed config parameters
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AWSConfig ¶
type AWSConfig struct { AccessKeyId string `json:"aws_access_key_id,omitempty" enable:"true" hidden:"false" usage:"AWS access key ID"` SecretAccessKey string `json:"aws_secret_access_key,omitempty" enable:"true" hidden:"false" usage:"AWS secret access key"` SecretTokenKey string `json:"aws_secret_token_key,omitempty" enable:"true" hidden:"false" usage:"AWS secret token key"` Cmk string `json:"aws_cmk,omitempty" enable:"true" hidden:"false" usage:"AWS CMK"` Region string `json:"aws_region,omitempty" enable:"true" hidden:"false" usage:"AWS region"` }
AWS configuration parameters struct swagger:model
type CallbackClusterConfigFunc ¶
type CallbackClusterConfigFunc func(config *ClusterConfig) error
type for callback func for cluster
type CallbackNodeConfigFunc ¶
type CallbackNodeConfigFunc func(config *NodeConfig) error
type ClusterConfig ¶
type ClusterConfig struct { Description string `json:"description,omitempty" enable:"true" hidden:"false" usage:"Cluster description"` Mode string `json:"mode,omitempty" enable:"true" hidden:"false" usage:"Mode for cluster"` Version string `json:"version,omitempty" enable:"true" hidden:"false" usage:"Version info for cluster"` Created time.Time `json:"created,omitempty" enable:"true" hidden:"false" usage:"Creation info for cluster"` ClusterId string `json:"cluster_id,omitempty" enable:"true" hidden:"false" usage:"Cluster ID info"` Domain string `json:"domain,omitempty" enable:"true" hidden:"false" usage:"usage to be added"` Secrets *SecretsConfig `json:"secrets,omitempty" enable:"true" hidden:"false" usage:"usage to be added" description:"description to be added"` Kvdb *KvdbConfig `json:"kvdb,omitempty" enable:"false" hidden:"false" usage:"usage to be added" description:"description to be added"` Private interface{} `json:"private,omitempty" enable:"true" hidden:"false" usage:"usage to be added"` }
ClusterConfig is a cluster level config parameter struct swagger:model
func (*ClusterConfig) Init ¶
func (conf *ClusterConfig) Init() *ClusterConfig
type ConfigCaller ¶
type ConfigCaller interface { // GetClusterConf fetches cluster configuration data from a backend such as kvdb GetClusterConf() (*ClusterConfig, error) // GetNodeConf fetches node configuration data using node id GetNodeConf(nodeID string) (*NodeConfig, error) // EnumerateNodeConf fetches data for all nodes EnumerateNodeConf() (*NodesConfig, error) // SetClusterConf pushes cluster configuration data to the backend // It is assumed that the backend will notify the implementor of this interface // when a change is triggered SetClusterConf(config *ClusterConfig) error // SetNodeConf pushes node configuration data to the backend // It is assumed that the backend will notify the implementor of this interface // when a change is triggered SetNodeConf(config *NodeConfig) error // DeleteNodeConf removes node config for a particular node DeleteNodeConf(nodeID string) error }
ConfigCaller interface defines the setters/getters for osdconfig
type ConfigManager ¶
type ConfigManager interface { ConfigCaller ConfigWatcher }
ConfigManager is the overall osdconfig interface including callers and watchers
func NewManager ¶
func NewManager(kv kvdb.Kvdb) (ConfigManager, error)
NewManager can be used to instantiate ConfigManager Users of this function are expected to manage the execution via context github.com/sirupsen/logrus package is used for logging internally
type ConfigWatcher ¶
type ConfigWatcher interface { // WatchCluster registers a user defined function as callback watching for changes // in the cluster configuration WatchCluster(name string, cb func(config *ClusterConfig) error) error // WatchNode registers a user defined function as callback watching for changes // in the node configuration WatchNode(name string, cb func(config *NodeConfig) error) error }
ConfigWatcher defines watches on cluster and nodes
type GeoConfig ¶
type GeoConfig struct { Rack string `json:"rack,omitempty" enable:"true" hidden:"false" usage:"Rack info"` Zone string `json:"zone,omitempty" enable:"true" hidden:"false" usage:"Zone info"` Region string `json:"region,omitempty" enable:"true" hidden:"false" usage:"Region info"` }
GeoConfig holds geographic information
type KvdbConfig ¶
type KvdbConfig struct { Name string `json:"name,omitempty" enable:"true" hidden:"false" usage:"Name for kvdb"` Username string `json:"username,omitempty" enable:"true" hidden:"false" usage:"Username for kvdb"` Password string `json:"password,omitempty" enable:"true" hidden:"false" usage:"Passwd for kvdb"` CAFile string `json:"ca_file,omitempty" enable:"true" hidden:"false" usage:"CA file for kvdb"` CertFile string `json:"cert_file,omitempty" enable:"true" hidden:"false" usage:"Cert file for kvdb"` CertKeyFile string `json:"cert_key_file,omitempty" enable:"true" hidden:"false" usage:"Cert key file for kvdb"` TrustedCAFile string `json:"trusted_ca_file,omitempty" enable:"true" hidden:"false" usage:"Trusted CA file for kvdb"` ClientCertAuth string `json:"client_cert_auth,omitempty" enable:"true" hidden:"false" usage:"Client cert auth"` AclToken string `json:"acl_token,omitempty" enable:"true" hidden:"false" usage:"ACL token"` Discovery []string `json:"discovery,omitempty" enable:"true" hidden:"false" usage:"List of etcd endpoints"` }
KvdbConfig stores parameters defining kvdb configuration swagger:model
func (*KvdbConfig) Init ¶
func (conf *KvdbConfig) Init() *KvdbConfig
type NetworkConfig ¶
type NetworkConfig struct { MgtIface string `json:"mgt_interface,omitempty" enable:"true" hidden:"false" usage:"Management interface"` DataIface string `json:"data_interface,omitempty" enable:"true" hidden:"false" usage:"Data interface"` }
NetworkConfig is a network configuration parameters struct swagger:model
func (*NetworkConfig) Init ¶
func (conf *NetworkConfig) Init() *NetworkConfig
type NodeConfig ¶
type NodeConfig struct { NodeId string `json:"node_id,omitempty" enable:"true" hidden:"false" usage:"ID for the node"` CSIEndpoint string `json:"csi_endpoint,omitempty" enable:"true" hidden:"false" usage:"CSI endpoint"` Network *NetworkConfig `` /* 133-byte string literal not displayed */ Storage *StorageConfig `` /* 133-byte string literal not displayed */ Geo *GeoConfig `json:"geo,omitempty" enable:"true" hidden:"false" usage:"Geographic configuration" description:"Stores geo info for node"` Private interface{} `json:"private,omitempty" enable:"false" hidden:"false" usage:"Private node data"` }
NodeConfig is a node level config data swagger:model
func (*NodeConfig) Init ¶
func (conf *NodeConfig) Init() *NodeConfig
type NodesConfig ¶
type NodesConfig []*NodeConfig
NodesConfig contains all of node level data swagger:model
type SecretsConfig ¶
type SecretsConfig struct { SecretType string `json:"secret_type,omitempty" enable:"true" hidden:"false" usage:"Secret type"` ClusterSecretKey string `json:"cluster_secret_key,omitempty" enable:"true" hidden:"false" usage:"Secret key"` Vault *VaultConfig `json:"vault,omitempty" enable:"true" hidden:"false" usage:"Vault configuration"` Aws *AWSConfig `json:"aws,omitempty" enable:"true" hidden:"false" usage:"AWS configuration"` }
SecretsConfig is a secrets configuration parameters struct swagger:model
func (*SecretsConfig) Init ¶
func (conf *SecretsConfig) Init() *SecretsConfig
type StorageConfig ¶
type StorageConfig struct { DevicesMd []string `json:"devices_md,omitempty" enable:"true" hidden:"false" usage:"Devices MD"` Devices []string `json:"devices,omitempty" enable:"true" hidden:"false" usage:"Devices list"` MaxCount uint32 `json:"max_count,omitempty" enable:"true" hidden:"false" usage:"Maximum count"` MaxDriveSetCount uint32 `json:"max_drive_set_count,omitempty" enable:"true" hidden:"false" usage:"Max drive set count"` RaidLevel string `json:"raid_level,omitempty" enable:"true" hidden:"false" usage:"RAID level info"` RaidLevelMd string `json:"raid_level_md,omitempty" enable:"true" hidden:"false" usage:"RAID level MD"` }
StorageConfig is a storage configuration parameters struct swagger:model
func (*StorageConfig) Init ¶
func (conf *StorageConfig) Init() *StorageConfig
type VaultConfig ¶
type VaultConfig struct { Token string `json:"token,omitempty" enable:"true" hidden:"false" usage:"Vault token"` Address string `json:"address,omitempty" enable:"true" hidden:"false" usage:"Vault address"` CACert string `json:"ca_cert,omitempty" enable:"true" hidden:"false" usage:"Vault CA certificate"` CAPath string `json:"ca_path,omitempty" enable:"true" hidden:"false" usage:"Vault CA path"` ClientCert string `json:"client_cert,omitempty" enable:"true" hidden:"false" usage:"Vault client certificate"` ClientKey string `json:"client_key,omitempty" enable:"true" hidden:"false" usage:"Vault client key"` TLSSkipVerify string `json:"skip_verify,omitempty" enable:"true" hidden:"false" usage:"Vault skip verification"` TLSServerName string `json:"tls_server_name,omitempty" enable:"true" hidden:"false" usage:"Vault TLS server name"` BasePath string `json:"base_path,omitempty" enable:"true" hidden:"false" usage:"Vault base path"` BackendPath string `json:"backend_path,omitempty" enable:"true" hidden:"false" usage:"Vault secrets backend mount path"` }
VaultConfig is a vault configuration parameters struct swagger:model
func (*VaultConfig) Init ¶
func (conf *VaultConfig) Init() *VaultConfig