Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
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") )
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
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.