config

package
v0.0.0-...-56d6441 Latest Latest
Warning

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

Go to latest
Published: Nov 19, 2024 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BackupService

type BackupService struct {
	Version                    string `yaml:"version"`
	OAuth                      OAuth  `yaml:"oauth"`
	BackupDir                  string `yaml:"backup_dir"`
	RestoreDir                 string `yaml:"restore_dir"`
	FullBackupCronSchedule     string `yaml:"full_backup_cron_schedule"`
	IncrementalBackupInMinutes int    `yaml:"incremental_backup_in_minutes"`
	PurgeBinlogAfterMinutes    int    `yaml:"purge_binlog_after_minutes"`
	EnableInitRestore          bool   `yaml:"enable_init_restore"`
	EnableRestoreOnDBFailure   bool   `yaml:"enable_restore_on_db_failure"`
	DisableBinlogPurgeOnRotate bool   `yaml:"disable_binlog_purge_on_rotate"`
	BinlogMaxReconnectAttempts int    `yaml:"binlog_max_reconnect_attempts"`
}

BackupService holds info for the backup service

type Config

type Config struct {
	ServiceName  string              `yaml:"service_name"`
	SideCar      *bool               `yaml:"sidecar"`
	Namespace    string              `yaml:"namespace"`
	Backup       BackupService       `yaml:"backup"`
	Storages     StorageService      `yaml:"storages"`
	Database     DatabaseConfig      `yaml:"database"`
	Verification VerificationService `yaml:"verification"`
}

Config passed via a yaml file

func GetConfig

func GetConfig(opts Options) (cfg Config, err error)

GetConfig returns the config struct from a yaml file

type DatabaseConfig

type DatabaseConfig struct {
	Type          string    `yaml:"type"`
	DumpTool      DumpTools `yaml:"full_dump_tool"`
	Flavor        string    `yaml:"flavor"`
	LogNameFormat string    `yaml:"log_name_format"`
	Version       string    `yaml:"version"`
	Host          string    `yaml:"host"`
	Port          int       `yaml:"port"`
	User          string    `yaml:"user"`
	Password      string    `yaml:"password"`
	ServerID      int       `yaml:"server_id"`
	DataDir       string    `yaml:"data_dir"`
	Databases     []string  `yaml:"databases"`
	VerifyTables  []string  `yaml:"verify_tables"`
}

DatabaseConfig holds info for the database to back up

type Disk

type Disk struct {
	Name      string `yaml:"name"`
	Verify    *bool  `yaml:"verify"`
	BasePath  string `yaml:"base_path"`
	Retention int    `yaml:"retention"`
}

Disk holds info for the local backup storage

type DumpTools

type DumpTools int

DumpTools iota

const (
	// Mysqldump available database dump tool
	Mysqldump DumpTools = iota
	// MyDumper available database dump tool
	MyDumper
	// Dummy available database dump tool
	Dummy
)

func (DumpTools) String

func (m DumpTools) String() string

type MariaDBStream

type MariaDBStream struct {
	Name                   string `yaml:"name"`
	Host                   string `yaml:"host"`
	Port                   int    `yaml:"port"`
	User                   string `yaml:"user"`
	Password               string `yaml:"password"`
	DumpTool               DumpTools
	Databases              []string `yaml:"databases"`
	ParseSchema            bool     `yaml:"parse_schema"`
	DumpFilterBufferSizeMB int      `yaml:"dump_filter_buffer_size_mb"`
}

MariaDBStream holds info for the replication to another MariaDB

type OAuth

type OAuth struct {
	SAPID       bool   `yaml:"sap_id"`
	Middleware  bool   `yaml:"middleware"`
	ProviderURL string `yaml:"provider_url"`
	RedirectURL string `yaml:"redirect_url"`
}

OAuth holds info for the api oauth middleware

type Options

type Options struct {
	LogLevel       string
	WriteTo        string
	ConfigmapName  string
	Version        string
	ConfigFilePath string
	NameSpace      string
	Region         string
	ClientID       string
	ClientSecret   string
	CookieSecret   string
}

Options passed via cmd line

type S3

type S3 struct {
	Name                 string  `yaml:"name"`
	Verify               *bool   `yaml:"verify"`
	AwsAccessKeyID       string  `yaml:"aws_access_key_id"`
	AwsSecretAccessKey   string  `yaml:"aws_secret_access_key"`
	AwsEndpoint          string  `yaml:"aws_endpoint"`
	SSECustomerAlgorithm *string `yaml:"sse_customer_algorithm"`
	S3ForcePathStyle     *bool   `yaml:"s3_force_path_style"`
	SSECustomerKey       *string `yaml:"sse_customer_key"`
	Region               string  `yaml:"region"`
	BucketName           string  `yaml:"bucket_name"`
}

S3 hols info for the AWS S3 storage service

type StorageService

type StorageService struct {
	S3      []S3            `yaml:"s3"`
	Swift   []Swift         `yaml:"swift"`
	Disk    []Disk          `yaml:"disk"`
	MariaDB []MariaDBStream `yaml:"maria_db"`
}

StorageService list of available storage services

type Swift

type Swift struct {
	Name              string `yaml:"name"`
	Verify            *bool  `yaml:"verify"`
	AuthVersion       int    `yaml:"auth_version"`
	AuthURL           string `yaml:"auth_url"`
	UserName          string `yaml:"user_name"`
	UserDomainName    string `yaml:"user_domain_name"`
	ProjectName       string `yaml:"project_name"`
	ProjectDomainName string `yaml:"project_domain_name"`
	Password          string `yaml:"password"`
	Region            string `yaml:"region"`
	ContainerName     string `yaml:"container_name"`
	ChunkSize         *int64 `yaml:"chunk_size"` // default 200mb
	SloSize           *int64 `yaml:"slo_size"`   // default 600mb
}

Swift holds info for the OS swift storage service

type VerificationService

type VerificationService struct {
	RunAfterIncBackups int `yaml:"run_after_inc_backups"`
	MariaDBVersion     string
	StorageServices    *[]string
}

VerificationService holds info for the backup verification service

Jump to

Keyboard shortcuts

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