storagebackend

package
v0.0.0-...-fb1d941 Latest Latest
Warning

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

Go to latest
Published: Dec 5, 2022 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

View Source
const (
	StorageTypeUnset = ""
	StorageTypeETCD2 = "etcd2"
	StorageTypeETCD3 = "etcd3"

	StorageTypeMysql       = "mysql"
	StorageTypeMongoDB     = "mongo"
	StorageTypeAWSDynamodb = "awsdynamodb"
	StorageTypeSqlite      = "sqlite"

	DefaultCompactInterval      = 5 * time.Minute
	DefaultDBMetricPollInterval = 30 * time.Second
	DefaultHealthcheckTimeout   = 2 * time.Second
)

Variables

This section is empty.

Functions

This section is empty.

Types

type AWSDynamoDBConfig

type AWSDynamoDBConfig struct {
	Region    string
	Table     string
	AccessKey string
	AccessID  string
	Token     string
}

type Config

type Config struct {
	// Type defines the type of storage backend. Default ("") is "etcd3".
	Type string
	// Prefix is the prefix to all keys passed to storage.Interface methods.
	Prefix string
	// Transport holds all connection related info, i.e. equal TransportConfig means equal servers we talk to.
	Transport TransportConfig
	// Paging indicates whether the server implementation should allow paging (if it is
	// supported). This is generally configured by feature gating, or by a specific
	// resource type not wishing to allow paging, and is not intended for end users to
	// set.
	Paging bool

	Codec runtime.Codec
	// EncodeVersioner is the same groupVersioner used to build the
	// storage encoder. Given a list of kinds the input object might belong
	// to, the EncodeVersioner outputs the gvk the object will be
	// converted to before persisted in etcd.
	EncodeVersioner runtime.GroupVersioner
	// Transformer allows the value to be transformed prior to persisting into etcd.
	Transformer value.Transformer

	// CompactionInterval is an interval of requesting compaction from apiserver.
	// If the value is 0, no compaction will be issued.
	CompactionInterval time.Duration
	// CountMetricPollPeriod specifies how often should count metric be updated
	CountMetricPollPeriod time.Duration
	// DBMetricPollInterval specifies how often should storage backend metric be updated.
	DBMetricPollInterval time.Duration
	// HealthcheckTimeout specifies the timeout used when checking health
	HealthcheckTimeout time.Duration

	LeaseManagerConfig etcd3.LeaseManagerConfig

	// StorageObjectCountTracker is used to keep track of the total
	// number of objects in the storage per resource.
	StorageObjectCountTracker flowcontrolrequest.StorageObjectCountTracker

	//append backend config.
	//mongodb extend config
	Mongodb MongoExtendConfig
	//aws dynamodb config
	AWSDynamoDB AWSDynamoDBConfig
	//mysql config
	Mysql MysqlConfig
	//Sqlite sqlite config
	Sqlite SqliteConfig
}

Config is configuration for creating a storage backend.

func NewDefaultConfig

func NewDefaultConfig(prefix string, codec runtime.Codec) *Config

func (*Config) ForResource

func (config *Config) ForResource(resource schema.GroupResource) *ConfigForResource

ForResource specializes to the given resource

type ConfigForResource

type ConfigForResource struct {
	// Config is the resource-independent configuration
	Config

	// GroupResource is the relevant one
	GroupResource schema.GroupResource
}

ConfigForResource is a Config specialized to a particular `schema.GroupResource`

type MongoExtendConfig

type MongoExtendConfig struct {
	//holds options for establishing a session with a MongoDB cluster
	ServerList []string
	//admin credentials:db,user,pwd
	AdminCred []string
	//normal user credentials:db,user,pwd
	GeneralCred []string
}

type MysqlConfig

type MysqlConfig struct {
	// ServerList is the list of storage servers to connect with.
	ServerList []string
	Debug      bool
	//ListDefaultLimit limit list default value
	ListDefaultLimit int
}

type SqliteConfig

type SqliteConfig struct {
	//DSN a dsn  that a sqlite database file with path.
	//like file:test.db?cache=share&mode=memory we use https://github.com/mattn/go-sqlite3
	DSN   string
	Debug bool
	//ListDefaultLimit limit list default value
	ListDefaultLimit int
}

SqliteConfig sqlite config

type TransportConfig

type TransportConfig struct {
	// ServerList is the list of storage servers to connect with.
	ServerList []string
	// TLS credentials
	KeyFile       string
	CertFile      string
	TrustedCAFile string
	// function to determine the egress dialer. (i.e. konnectivity server dialer)
	EgressLookup egressselector.Lookup
	// The TracerProvider can add tracing the connection
	TracerProvider *trace.TracerProvider
}

TransportConfig holds all connection related info, i.e. equal TransportConfig means equal servers we talk to.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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