versioncontrol

package
v1.98.0-rc Latest Latest
Warning

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

Go to latest
Published: Feb 14, 2024 License: AGPL-3.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// RolloutErr defines the rollout config error class.
	RolloutErr = errs.Class("rollout config")
	// EmptySeedErr is used when the rollout contains an empty seed value.
	EmptySeedErr = RolloutErr.New("empty seed")
)
View Source
var SupportedBinaries = []string{
	"identity_darwin_amd64",
	"identity_freebsd_amd64",
	"identity_linux_amd64",
	"identity_linux_arm",
	"identity_linux_arm64",
	"identity_windows_amd64",
	"storagenode-updater_linux_amd64",
	"storagenode-updater_linux_arm",
	"storagenode-updater_linux_arm64",
	"storagenode-updater_windows_amd64",
	"storagenode_freebsd_amd64",
	"storagenode_linux_amd64",
	"storagenode_linux_arm",
	"storagenode_linux_arm64",
	"storagenode_windows_amd64",
	"uplink_darwin_amd64",
	"uplink_freebsd_amd64",
	"uplink_linux_amd64",
	"uplink_linux_arm",
	"uplink_linux_arm64",
	"uplink_windows_amd64",
}

SupportedBinaries list of supported binary schemes.

Functions

This section is empty.

Types

type Config

type Config struct {
	Address       string        `user:"true" help:"public address to listen on" default:":8080"`
	SafeRate      float64       `` /* 151-byte string literal not displayed */
	RegenInterval time.Duration `user:"true" help:"how long to go between recalculating the current cursors. 0 means on demand." default:"5m"`

	Versions OldVersionConfig

	Binary ProcessesConfig
}

Config is all the configuration parameters for a Version Control Server.

type OldVersionConfig added in v0.24.0

type OldVersionConfig struct {
	Satellite   string `user:"true" help:"Allowed Satellite Versions" default:"v0.0.1"`
	Storagenode string `user:"true" help:"Allowed Storagenode Versions" default:"v0.0.1"`
	Uplink      string `user:"true" help:"Allowed Uplink Versions" default:"v0.0.1"`
	Gateway     string `user:"true" help:"Allowed Gateway Versions" default:"v0.0.1"`
	Identity    string `user:"true" help:"Allowed Identity Versions" default:"v0.0.1"`
}

OldVersionConfig provides a list of allowed Versions per process.

NB: use `ProcessesConfig` for newer code instead.

type Peer

type Peer struct {
	// core dependencies
	Log *zap.Logger

	// Web server
	Server struct {
		Endpoint http.Server
		Listener net.Listener
	}
	// contains filtered or unexported fields
}

Peer is the representation of a VersionControl Server.

architecture: Peer

func New

func New(log *zap.Logger, config *Config) (peer *Peer, err error)

New creates a new VersionControl Server.

func (*Peer) Addr

func (peer *Peer) Addr() string

Addr returns the public address.

func (*Peer) Close

func (peer *Peer) Close() (err error)

Close closes all the resources.

func (*Peer) Run

func (peer *Peer) Run(ctx context.Context) (err error)

Run runs versioncontrol server until it's either closed or it errors.

type ProcessConfig added in v0.24.0

type ProcessConfig struct {
	Minimum   VersionConfig
	Suggested VersionConfig
	Rollout   RolloutConfig
}

ProcessConfig represents versions configuration for a single process.

type ProcessesConfig added in v0.24.0

type ProcessesConfig struct {
	Satellite          ProcessConfig
	Storagenode        ProcessConfig
	StoragenodeUpdater ProcessConfig
	Uplink             ProcessConfig
	Gateway            ProcessConfig
	Identity           ProcessConfig
}

ProcessesConfig represents versions configuration for all processes.

func (ProcessesConfig) ValidateRollouts added in v0.24.0

func (versions ProcessesConfig) ValidateRollouts(log *zap.Logger) error

ValidateRollouts validates the rollout field of each field in the Versions struct.

type RolloutConfig added in v0.24.0

type RolloutConfig struct {
	Seed           string `user:"true" help:"random 32 byte, hex-encoded string"`
	PreviousCursor int    `user:"true" help:"prior configuration's cursor value. if 100%, will be capped at the current cursor." default:"100"`
	Cursor         int    `user:"true" help:"percentage of nodes which should roll-out to the suggested version" default:"0"`
}

RolloutConfig represents the state of a version rollout configuration of a process.

func (RolloutConfig) Validate added in v0.24.0

func (rollout RolloutConfig) Validate() error

Validate validates the rollout seed and cursor config values.

type VersionConfig added in v0.24.0

type VersionConfig struct {
	Version string `user:"true" help:"peer version" default:"v0.0.1"`
	URL     string `user:"true" help:"URL for specific binary" default:""`
}

VersionConfig single version configuration.

Jump to

Keyboard shortcuts

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