Documentation
¶
Overview ¶
Package config implements global configuration options.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ComponentConfig ¶ added in v0.2400.0
type ComponentConfig struct {
// ID is the component identifier.
ID component.ID `yaml:"id"`
// TEE specifies the kind of Trusted Execution Environment (TEE)
// in which the component should run (none, sgx, tdx).
//
// If not provided, the TEE kind is selected automatically.
TEE TEESelectMode `yaml:"tee,omitempty"`
// Disabled specifies whether the component is disabled. If a component is specified and not
// disabled, it is enabled.
Disabled bool `yaml:"disabled,omitempty"`
}
ComponentConfig is the component configuration.
func (*ComponentConfig) TEEKind ¶ added in v0.2500.0
func (c *ComponentConfig) TEEKind() (component.TEEKind, bool)
TEEKind returns the kind of Trusted Execution Environment (TEE) in which the component should run, if it is specified.
func (*ComponentConfig) UnmarshalYAML ¶ added in v0.2400.0
func (c *ComponentConfig) UnmarshalYAML(value *yaml.Node) error
UnmarshalYAML implements yaml.Unmarshaler.
func (*ComponentConfig) Validate ¶ added in v0.2500.0
func (c *ComponentConfig) Validate() error
Validate validates the component configuration.
type Config ¶
type Config struct {
// Runtimes is the list of runtimes to configure.
Runtimes []RuntimeConfig `yaml:"runtimes,omitempty"`
// Paths to runtime bundles.
Paths []string `yaml:"paths,omitempty"`
// Runtime provisioner to use (mock, unconfined, sandboxed).
Provisioner RuntimeProvisioner `yaml:"provisioner"`
// Path to the sandbox binary (bubblewrap).
SandboxBinary string `yaml:"sandbox_binary,omitempty"`
// Path to SGX runtime loader binary (for SGX runtimes).
SGXLoader string `yaml:"sgx_loader,omitempty"`
// The runtime environment (sgx, elf, auto).
// NOTE: This may go away in the future, use `DebugMockTEE` instead.
Environment RuntimeEnvironment `yaml:"environment,omitempty"`
// History pruner configuration.
Prune PruneConfig `yaml:"prune,omitempty"`
// RuntimeConfig maps runtime IDs to their respective local configurations.
// NOTE: This may go away in the future, use `RuntimeConfig.Config` instead.
RuntimeConfig map[string]map[string]interface{} `yaml:"config,omitempty"`
// Address(es) of sentry node(s) to connect to of the form [PubKey@]ip:port
// (where the PubKey@ part represents base64 encoded node TLS public key).
SentryAddresses []string `yaml:"sentry_addresses,omitempty"`
// Transaction pool configuration.
TxPool tpConfig.Config `yaml:"tx_pool,omitempty"`
// Number of epochs before runtime activation epoch when to start the runtime to warm it up and
// prepare any required attestations. Zero disables pre-warming.
PreWarmEpochs uint64 `yaml:"pre_warm_epochs,omitempty"`
// AttestInterval is the interval for periodic runtime re-attestation. If not specified
// a default will be used.
AttestInterval time.Duration `yaml:"attest_interval,omitempty"`
// LoadBalancer is the load balancer configuration.
LoadBalancer LoadBalancerConfig `yaml:"load_balancer,omitempty"`
// Registries is the list of base URLs used to fetch runtime bundle metadata.
//
// The actual metadata URLs are constructed by appending the manifest hash
// to the base URL. Therefore, the provided URLs don't need to be valid
// endpoints themselves, only the constructed URLs need to be valid.
Registries []string `yaml:"registries,omitempty"`
// MaxBundleSize is the maximum allowed bundle size.
//
// If not specified, a default value is used.
MaxBundleSize string `yaml:"max_bundle_size,omitempty"`
// DebugMockTEE enables mocking of the Trusted Execution Environment (TEE).
//
// This flag can only be used if the DebugDontBlameOasis flag is set.
DebugMockTEE bool `yaml:"debug_mock_tee,omitempty"`
}
Config is the runtime registry configuration structure.
func DefaultConfig ¶
func DefaultConfig() Config
DefaultConfig returns the default configuration settings.
func (*Config) GetComponent ¶ added in v0.2400.0
func (c *Config) GetComponent(runtimeID common.Namespace, compID component.ID) (ComponentConfig, bool)
GetComponent returns the configuration for the given component of the specified runtime, if it exists.
func (*Config) GetLocalConfig ¶ added in v0.2500.0
GetLocalConfig returns the local configuration for the given runtime, if it exists.
type LoadBalancerConfig ¶ added in v0.2400.0
type LoadBalancerConfig struct {
// NumInstances is the number of runtime instances to provision for load-balancing. Setting it
// to zero (default) or one disables load balancing.
NumInstances uint64 `yaml:"num_instances,omitempty"`
}
LoadBalancerConfig is the load balancer configuration.
type PruneConfig ¶
type PruneConfig struct {
// History pruner strategy.
Strategy string `yaml:"strategy"`
// History pruning interval.
Interval time.Duration `yaml:"interval"`
// Number of last rounds to keep.
NumKept uint64 `yaml:"num_kept"`
}
PruneConfig is the history pruner configuration structure.
type RuntimeConfig ¶ added in v0.2500.0
type RuntimeConfig struct {
// ID is the runtime identifier.
ID common.Namespace `yaml:"id"`
// Components is the list of components to configure.
Components []ComponentConfig `yaml:"components,omitempty"`
// Config contains runtime local configuration.
Config map[string]interface{} `yaml:"config,omitempty"`
// Registries is the list of base URLs used to fetch runtime bundle metadata.
//
// The actual metadata URLs are constructed by appending the manifest hash
// to the base URL. Therefore, the provided URLs don't need to be valid
// endpoints themselves, only the constructed URLs need to be valid.
Registries []string `yaml:"registries,omitempty"`
}
RuntimeConfig is the runtime configuration.
func (*RuntimeConfig) Validate ¶ added in v0.2500.0
func (c *RuntimeConfig) Validate() error
Validate validates the runtime configuration.
type RuntimeEnvironment ¶
type RuntimeEnvironment string
RuntimeEnvironment is the runtime environment.
const ( // RuntimeEnvironmentSGX specifies to run the runtime in SGX. RuntimeEnvironmentSGX RuntimeEnvironment = "sgx" // RuntimeEnvironmentSGXMock specifies to run the runtime in mocked SGX. // // Use of this runtime environment is only allowed if DebugDontBlameOasis flag is set. RuntimeEnvironmentSGXMock RuntimeEnvironment = "sgx-mock" // RuntimeEnvironmentAuto specifies to run the runtime in the most appropriate location. RuntimeEnvironmentAuto RuntimeEnvironment = "auto" )
type RuntimeProvisioner ¶
type RuntimeProvisioner string
RuntimeProvisioner is the runtime provisioner.
const ( // RuntimeProvisionerMock is the name of the mock runtime provisioner. // // Use of this provisioner is only allowed if DebugDontBlameOasis flag is set. RuntimeProvisionerMock RuntimeProvisioner = "mock" // RuntimeProvisionerUnconfined is the name of the unconfined runtime // provisioner that executes runtimes as regular processes without any // sandboxing. // // Use of this provisioner is only allowed if DebugDontBlameOasis flag is set. RuntimeProvisionerUnconfined RuntimeProvisioner = "unconfined" // RuntimeProvisionerSandboxed is the name of the sandboxed runtime // provisioner that executes runtimes as regular processes in a Linux // namespaces/cgroups/SECCOMP sandbox. RuntimeProvisionerSandboxed RuntimeProvisioner = "sandboxed" )
func (*RuntimeProvisioner) UnmarshalText ¶
func (m *RuntimeProvisioner) UnmarshalText(text []byte) error
UnmarshalText decodes a text marshaled runtime provisioner.
type TEESelectMode ¶ added in v0.2500.0
type TEESelectMode string
TEESelectMode is the selection mode for the Trusted Execution Environment (TEE).
const ( // TEESelectModeAuto specifies that the runtime should run in the most appropriate TEE. TEESelectModeAuto TEESelectMode = "" // TEESelectModeNone specifies that the runtime should run without using any TEE. TEESelectModeNone TEESelectMode = "none" // TEESelectModeSGX specifies that the runtime should run in an SGX environment. TEESelectModeSGX TEESelectMode = "sgx" // TEESelectModeTDX specifies that the runtime should run in a TDX environment. TEESelectModeTDX TEESelectMode = "tdx" )