Documentation
¶
Index ¶
- Constants
- Variables
- type AuthConfig
- type CacheConfig
- type Config
- type DatabaseConfig
- type GRPCConfig
- type GRPCTLSServerConfig
- type JWTConfig
- type JobConfig
- type LocalCacheConfig
- type MetricsConfig
- type MysqlConfig
- type MysqlTLSClientConfig
- type NetworkConfig
- type ObjectStorageConfig
- type PostgresConfig
- type PreheatConfig
- type PreheatTLSClientConfig
- type RESTConfig
- type RESTTLSServerConfig
- type RedisCacheConfig
- type RedisConfig
- type RedisProxyConfig
- type ServerConfig
- type SyncPeersConfig
- type TCPListenPortRange
Constants ¶
View Source
const ( AttributeID = attribute.Key("d7y.manager.id") AttributePreheatType = attribute.Key("d7y.manager.preheat.type") AttributePreheatURL = attribute.Key("d7y.manager.preheat.url") AttributeDeleteTaskID = attribute.Key("d7y.manager.delete_task.id") AttributeGetTaskID = attribute.Key("d7y.manager.get_task.id") )
View Source
const ( SpanPreheat = "preheat" SpanSyncPeers = "sync-peers" SpanGetLayers = "get-layers" SpanAuthWithRegistry = "auth-with-registry" SpanDeleteTask = "delete-task" SpanGetTask = "get-task" )
View Source
const ( // DatabaseTypeMysql is database type of mysql. DatabaseTypeMysql = "mysql" // DatabaseTypeMariaDB is database type of mariadb. DatabaseTypeMariaDB = "mariadb" // DatabaseTypePostgres is database type of postgres. DatabaseTypePostgres = "postgres" )
View Source
const ( // DefaultServerName is default server name. DefaultServerName = "d7y/manager" // DefaultGRPCPort is default port for grpc server. DefaultGRPCPort = 65003 // DefaultRESTAddr is default address for rest server. DefaultRESTAddr = ":8080" )
View Source
const ( // DefaultJWTTimeout is default of name in jwt. DefaultJWTRealm = "Dragonfly" // DefaultJWTTimeout is default of timeout in jwt. DefaultJWTTimeout = 14 * 24 * time.Hour // DefaultJWTMaxRefresh is default of max refresh in jwt. DefaultJWTMaxRefresh = 7 * 24 * time.Hour )
View Source
const ( // DefaultRedisPoolSize is default pool size for redis. DefaultRedisPoolSize = 40 // DefaultRedisPoolTimeout is default pool timeout for redis. DefaultRedisPoolTimeout = 10 * time.Second // DefaultRedisDB is default db for redis. DefaultRedisDB = 0 // DefaultRedisBrokerDB is default db for redis broker. DefaultRedisBrokerDB = 1 // DefaultRedisBackendDB is default db for redis backend. DefaultRedisBackendDB = 2 // DefaultRedisProxyAddr is default address for redis proxy. DefaultRedisProxyAddr = ":65100" )
View Source
const ( // DefaultRedisCacheTTL is default ttl for redis cache. DefaultRedisCacheTTL = 5 * time.Minute // DefaultLFUCacheTTL is default ttl for lfu cache. DefaultLFUCacheTTL = 3 * time.Minute // DefaultLFUCacheSize is default size for lfu cache. DefaultLFUCacheSize = 8 * 1000 )
View Source
const ( // DefaultMysqlPort is default port for mysql. DefaultMysqlPort = 3306 // DefaultMysqlDBName is default db name for mysql. DefaultMysqlDBName = "manager" )
View Source
const ( // DefaultJobSyncPeersInterval is the default interval for syncing all peers information from the scheduler. DefaultJobSyncPeersInterval = 24 * time.Hour // MinJobSyncPeersInterval is the min interval for syncing all peers information from the scheduler. MinJobSyncPeersInterval = 12 * time.Hour // DefaultJobSyncPeersTimeout is the default timeout for syncing all peers information from the scheduler. DefaultJobSyncPeersTimeout = 10 * time.Minute // DefaultClusterJobRateLimit is default rate limit(requests per second) for job Open API by cluster. DefaultClusterJobRateLimit uint32 = 10 // DefaultJobSyncPeersBatchSize is the default batch size for syncing all peers information from the scheduler and // operating on the database. DefaultJobSyncPeersBatchSize = 500 )
View Source
const ( // DefaultPostgresPort is default port for postgres. DefaultPostgresPort = 5432 // DefaultPostgresDBName is default db name for postgres. DefaultPostgresDBName = "manager" // DefaultPostgresSSLMode is default ssl mode for postgres. DefaultPostgresSSLMode = "disable" // DefaultPostgresPreferSimpleProtocol is default disable prepared statement option for postgres. DefaultPostgresPreferSimpleProtocol = false // DefaultPostgresTimezone is default timezone for postgres. DefaultPostgresTimezone = "UTC" )
View Source
const ( // DefaultLogRotateMaxSize is the default maximum size in megabytes of log files before rotation. DefaultLogRotateMaxSize = 1024 // DefaultLogRotateMaxAge is the default number of days to retain old log files. DefaultLogRotateMaxAge = 7 // DefaultLogRotateMaxBackups is the default number of old log files to keep. DefaultLogRotateMaxBackups = 20 )
View Source
const (
// DefaultMetricsAddr is default address for metrics server.
DefaultMetricsAddr = ":8000"
)
Variables ¶
View Source
var ( // DefaultCertIPAddresses is default ip addresses of certificate. DefaultCertIPAddresses = []net.IP{ip.IPv4, ip.IPv6} // DefaultCertDNSNames is default dns names of certificate. DefaultCertDNSNames = []string{"dragonfly-manager", "dragonfly-manager.dragonfly-system.svc", "dragonfly-manager.dragonfly-system.svc.cluster.local"} // DefaultCertValidityPeriod is default validity period of certificate. DefaultCertValidityPeriod = 10 * 365 * 24 * time.Hour )
View Source
var ( // DefaultNetworkEnableIPv6 is default value of enableIPv6. DefaultNetworkEnableIPv6 = false )
Functions ¶
This section is empty.
Types ¶
type AuthConfig ¶ added in v2.0.9
type AuthConfig struct {
// JWT configuration.
JWT JWTConfig `yaml:"jwt" mapstructure:"jwt"`
}
type CacheConfig ¶
type CacheConfig struct {
// Redis cache configuration.
Redis RedisCacheConfig `yaml:"redis" mapstructure:"redis"`
// Local cache configuration.
Local LocalCacheConfig `yaml:"local" mapstructure:"local"`
}
type Config ¶
type Config struct {
// Base options.
base.Options `yaml:",inline" mapstructure:",squash"`
// Server configuration.
Server ServerConfig `yaml:"server" mapstructure:"server"`
// Auth configuration.
Auth AuthConfig `yaml:"auth" mapstructure:"auth"`
// Database configuration.
Database DatabaseConfig `yaml:"database" mapstructure:"database"`
// Cache configuration.
Cache CacheConfig `yaml:"cache" mapstructure:"cache"`
// Job configuration.
Job JobConfig `yaml:"job" mapstructure:"job"`
// ObjectStorage configuration.
ObjectStorage ObjectStorageConfig `yaml:"objectStorage" mapstructure:"objectStorage"`
// Metrics configuration.
Metrics MetricsConfig `yaml:"metrics" mapstructure:"metrics"`
// Network configuration.
Network NetworkConfig `yaml:"network" mapstructure:"network"`
}
type DatabaseConfig ¶
type DatabaseConfig struct {
// Database type.
Type string `yaml:"type" mapstructure:"type"`
// Mysql configuration.
Mysql MysqlConfig `yaml:"mysql" mapstructure:"mysql"`
// Postgres configuration.
Postgres PostgresConfig `yaml:"postgres" mapstructure:"postgres"`
// Redis configuration.
Redis RedisConfig `yaml:"redis" mapstructure:"redis"`
}
type GRPCConfig ¶ added in v2.0.7
type GRPCConfig struct {
// AdvertiseIP is advertise ip.
AdvertiseIP net.IP `yaml:"advertiseIP" mapstructure:"advertiseIP"`
// ListenIP is listen ip, like: 0.0.0.0, 192.168.0.1.
ListenIP net.IP `mapstructure:"listenIP" yaml:"listenIP"`
// Port is listen port.
Port TCPListenPortRange `yaml:"port" mapstructure:"port"`
// TLS server configuration.
TLS *GRPCTLSServerConfig `yaml:"tls" mapstructure:"tls"`
}
GRPCConfig is gRPC server configuration.
type GRPCTLSServerConfig ¶ added in v2.1.61
type GRPCTLSServerConfig struct {
// CACert is the file path of CA certificate for mTLS.
CACert string `yaml:"caCert" mapstructure:"caCert"`
// Cert is the file path of server certificate for mTLS.
Cert string `yaml:"cert" mapstructure:"cert"`
// Key is the file path of server key for mTLS.
Key string `yaml:"key" mapstructure:"key"`
}
type JWTConfig ¶ added in v2.0.9
type JWTConfig struct {
// Realm name to display to the user, default value is Dragonfly.
Realm string `yaml:"realm" mapstructure:"realm"`
// Key is secret key used for signing. Please change the key in production
Key string `yaml:"key" mapstructure:"key"`
// Timeout is duration that a jwt token is valid, default duration is two days.
Timeout time.Duration `yaml:"timeout" mapstructure:"timeout"`
// MaxRefresh field allows clients to refresh their token until MaxRefresh has passed, default duration is two days.
MaxRefresh time.Duration `yaml:"maxRefresh" mapstructure:"maxRefresh"`
}
type JobConfig ¶ added in v2.0.30
type JobConfig struct {
// Preheat configuration.
Preheat PreheatConfig `yaml:"preheat" mapstructure:"preheat"`
// Sync peers configuration.
SyncPeers SyncPeersConfig `yaml:"syncPeers" mapstructure:"syncPeers"`
}
type LocalCacheConfig ¶
type MetricsConfig ¶ added in v2.0.4
type MysqlConfig ¶
type MysqlConfig struct {
// Server username.
User string `yaml:"user" mapstructure:"user"`
// Server password.
Password string `yaml:"password" mapstructure:"password"`
// Server host.
Host string `yaml:"host" mapstructure:"host"`
// Server port.
Port int `yaml:"port" mapstructure:"port"`
// Server DB name.
DBName string `yaml:"dbname" mapstructure:"dbname"`
// TLS mode (can be one of "true", "false", "skip-verify", or "preferred").
TLSConfig string `yaml:"tlsConfig" mapstructure:"tlsConfig"`
// Custom TLS client configuration (overrides "TLSConfig" setting above).
TLS *MysqlTLSClientConfig `yaml:"tls" mapstructure:"tls"`
// Enable migration.
Migrate bool `yaml:"migrate" mapstructure:"migrate"`
}
type MysqlTLSClientConfig ¶ added in v2.0.30
type MysqlTLSClientConfig struct {
// CACert is the file path of CA certificate for mysql.
CACert string `yaml:"caCert" mapstructure:"caCert"`
// Cert is the client certificate file path.
Cert string `yaml:"cert" mapstructure:"cert"`
// Key is the client key file path.
Key string `yaml:"key" mapstructure:"key"`
// InsecureSkipVerify controls whether a client verifies the
// server's certificate chain and host name.
InsecureSkipVerify bool `yaml:"insecureSkipVerify" mapstructure:"insecureSkipVerify"`
}
type NetworkConfig ¶ added in v2.0.7
type NetworkConfig struct {
// EnableIPv6 enables ipv6 for server.
EnableIPv6 bool `mapstructure:"enableIPv6" yaml:"enableIPv6"`
}
type ObjectStorageConfig ¶ added in v2.0.4
type ObjectStorageConfig struct {
// Enable object storage.
Enable bool `yaml:"enable" mapstructure:"enable"`
// Name is object storage name of type, it can be s3, oss or obs.
Name string `mapstructure:"name" yaml:"name"`
// Region is storage region.
Region string `mapstructure:"region" yaml:"region"`
// Endpoint is datacenter endpoint.
Endpoint string `mapstructure:"endpoint" yaml:"endpoint"`
// AccessKey is access key ID.
AccessKey string `mapstructure:"accessKey" yaml:"accessKey"`
// SecretKey is access key secret.
SecretKey string `mapstructure:"secretKey" yaml:"secretKey"`
// S3ForcePathStyle sets force path style for s3, true by default.
// Set this to `true` to force the request to use path-style addressing,
// i.e., `http://s3.amazonaws.com/BUCKET/KEY`. By default, the S3 client
// will use virtual hosted bucket addressing when possible
// (`http://BUCKET.s3.amazonaws.com/KEY`).
// Refer to https://github.com/aws/aws-sdk-go/blob/main/aws/config.go#L118.
S3ForcePathStyle bool `mapstructure:"s3ForcePathStyle" yaml:"s3ForcePathStyle"`
}
type PostgresConfig ¶ added in v2.0.5
type PostgresConfig struct {
// Server username.
User string `yaml:"user" mapstructure:"user"`
// Server password.
Password string `yaml:"password" mapstructure:"password"`
// Server host.
Host string `yaml:"host" mapstructure:"host"`
// Server port.
Port int `yaml:"port" mapstructure:"port"`
// Server DB name.
DBName string `yaml:"dbname" mapstructure:"dbname"`
// SSL mode.
SSLMode string `yaml:"sslMode" mapstructure:"sslMode"`
// Disable prepared statement.
PreferSimpleProtocol bool `yaml:"preferSimpleProtocol" mapstructure:"preferSimpleProtocol"`
// Server timezone.
Timezone string `yaml:"timezone" mapstructure:"timezone"`
// Enable migration.
Migrate bool `yaml:"migrate" mapstructure:"migrate"`
}
type PreheatConfig ¶ added in v2.0.30
type PreheatConfig struct {
// TLS client configuration.
TLS PreheatTLSClientConfig `yaml:"tls" mapstructure:"tls"`
}
type PreheatTLSClientConfig ¶ added in v2.0.30
type PreheatTLSClientConfig struct {
// InsecureSkipVerify controls whether a client verifies the
// server's certificate chain and host name.
InsecureSkipVerify bool `yaml:"insecureSkipVerify" mapstructure:"insecureSkipVerify"`
// CACert is the file path of CA certificate for preheating.
CACert types.PEMContent `yaml:"caCert" mapstructure:"caCert"`
}
type RESTConfig ¶ added in v2.0.30
type RESTConfig struct {
// REST server address.
Addr string `yaml:"addr" mapstructure:"addr"`
// TLS server configuration.
TLS *RESTTLSServerConfig `yaml:"tls" mapstructure:"tls"`
}
type RESTTLSServerConfig ¶ added in v2.1.61
type RedisCacheConfig ¶
type RedisConfig ¶
type RedisConfig struct {
// DEPRECATED: Please use the `addrs` field instead.
Host string `yaml:"host" mapstructure:"host"`
// DEPRECATED: Please use the `addrs` field instead.
Port int `yaml:"port" mapstructure:"port"`
// Addrs is server addresses.
Addrs []string `yaml:"addrs" mapstructure:"addrs"`
// MasterName is the sentinel master name.
MasterName string `yaml:"masterName" mapstructure:"masterName"`
// Username is server username.
Username string `yaml:"username" mapstructure:"username"`
// Password is server password.
Password string `yaml:"password" mapstructure:"password"`
// SentinelUsername is sentinel server username.
SentinelUsername string `yaml:"sentinelUsername" mapstructure:"sentinelUsername"`
// SentinelPassword is sentinel server password.
SentinelPassword string `yaml:"sentinelPassword" mapstructure:"sentinelPassword"`
// DB is server cache DB name.
DB int `yaml:"db" mapstructure:"db"`
// BrokerDB is server broker DB name.
BrokerDB int `yaml:"brokerDB" mapstructure:"brokerDB"`
// BackendDB is server backend DB name.
BackendDB int `yaml:"backendDB" mapstructure:"backendDB"`
// PoolSize is the maximum number of connections in the idle connection pool.
PoolSize int `yaml:"poolSize" mapstructure:"poolSize"`
// PoolTimeout is the maximum amount of time a connection may be idle before being closed.
PoolTimeout time.Duration `yaml:"poolTimeout" mapstructure:"poolTimeout"`
// Proxy is redis proxy configuration.
// If enabled, the manager starts a TCP proxy (defaulting to port 65100) that
// forwards requests to the Redis service. This allows Schedulers to connect to Redis
// via the manager's local port, which is useful for network isolation as only the
// manager's IP and port need to be exposed.
// Note: Only a single Redis address is supported by the proxy.
Proxy RedisProxyConfig `yaml:"proxy" mapstructure:"proxy"`
}
RedisConfig is redis configuration. see: https://redis.uptrace.dev/guide/universal.html
type RedisProxyConfig ¶ added in v2.2.3
type ServerConfig ¶
type ServerConfig struct {
// Server name.
Name string `yaml:"name" mapstructure:"name"`
// Server dynamic config cache directory.
CacheDir string `yaml:"cacheDir" mapstructure:"cacheDir"`
// Server log directory.
LogDir string `yaml:"logDir" mapstructure:"logDir"`
// LogLevel is log level of server, supported values are "debug", "info", "warn", "error", "panic", "fatal".
LogLevel string `yaml:"logLevel" mapstructure:"logLevel"`
// Maximum size in megabytes of log files before rotation (default: 1024)
LogMaxSize int `yaml:"logMaxSize" mapstructure:"logMaxSize"`
// Maximum number of days to retain old log files (default: 7)
LogMaxAge int `yaml:"logMaxAge" mapstructure:"logMaxAge"`
// Maximum number of old log files to keep (default: 20)
LogMaxBackups int `yaml:"logMaxBackups" mapstructure:"logMaxBackups"`
// Server plugin directory.
PluginDir string `yaml:"pluginDir" mapstructure:"pluginDir"`
// GRPC server configuration.
GRPC GRPCConfig `yaml:"grpc" mapstructure:"grpc"`
// REST server configuration.
REST RESTConfig `yaml:"rest" mapstructure:"rest"`
}
type SyncPeersConfig ¶ added in v2.0.30
type SyncPeersConfig struct {
// Interval is the interval for syncing all peers information from the scheduler and
// display peers information in the manager console.
Interval time.Duration `yaml:"interval" mapstructure:"interval"`
// Timeout is the timeout for syncing peers information from the single scheduler.
Timeout time.Duration `yaml:"timeout" mapstructure:"timeout"`
// BatchSize is the batch size when operating gorm database.
BatchSize int `yaml:"batchSize" mapstructure:"batchSize"`
}
type TCPListenPortRange ¶
Click to show internal directories.
Click to hide internal directories.