Documentation ¶
Index ¶
- Constants
- func Set(cfg BacalhauConfig)
- func SetDefaults(cfg BacalhauConfig)
- type APIConfig
- type BacalhauConfig
- type CapacityConfig
- type ComputeConfig
- type Duration
- type EvaluationBrokerConfig
- type FeatureConfig
- type IpfsConfig
- type JobDefaults
- type JobStoreConfig
- type JobTimeoutConfig
- type Libp2pConfig
- type LoggingConfig
- type MetricsConfig
- type NodeConfig
- type QueueConfig
- type RequesterConfig
- type S3StorageProviderConfig
- type StorageProviderConfig
- type StorageType
- type TLSConfiguration
- type UpdateConfig
- type UserConfig
- type WorkerConfig
Constants ¶
View Source
const Metrics = "Metrics"
View Source
const MetricsEventTracerPath = "Metrics.EventTracerPath"
View Source
const MetricsLibp2pTracerPath = "Metrics.Libp2pTracerPath"
View Source
const Node = "Node"
View Source
const NodeAllowListedLocalPaths = "Node.AllowListedLocalPaths"
View Source
const NodeBootstrapAddresses = "Node.BootstrapAddresses"
View Source
const NodeClientAPI = "Node.ClientAPI"
View Source
const NodeClientAPIHost = "Node.ClientAPI.Host"
View Source
const NodeClientAPIPort = "Node.ClientAPI.Port"
View Source
const NodeClientAPITLS = "Node.ClientAPI.TLS"
View Source
const NodeClientAPITLSAutoCert = "Node.ClientAPI.TLS.AutoCert"
View Source
const NodeClientAPITLSAutoCertCachePath = "Node.ClientAPI.TLS.AutoCertCachePath"
View Source
const NodeClientAPITLSServerCertificate = "Node.ClientAPI.TLS.ServerCertificate"
View Source
const NodeClientAPITLSServerKey = "Node.ClientAPI.TLS.ServerKey"
View Source
const NodeCompute = "Node.Compute"
View Source
const NodeComputeCapacity = "Node.Compute.Capacity"
View Source
const NodeComputeCapacityDefaultJobResourceLimits = "Node.Compute.Capacity.DefaultJobResourceLimits"
View Source
const NodeComputeCapacityDefaultJobResourceLimitsCPU = "Node.Compute.Capacity.DefaultJobResourceLimits.CPU"
View Source
const NodeComputeCapacityDefaultJobResourceLimitsDisk = "Node.Compute.Capacity.DefaultJobResourceLimits.Disk"
View Source
const NodeComputeCapacityDefaultJobResourceLimitsGPU = "Node.Compute.Capacity.DefaultJobResourceLimits.GPU"
View Source
const NodeComputeCapacityDefaultJobResourceLimitsMemory = "Node.Compute.Capacity.DefaultJobResourceLimits.Memory"
View Source
const NodeComputeCapacityIgnorePhysicalResourceLimits = "Node.Compute.Capacity.IgnorePhysicalResourceLimits"
View Source
const NodeComputeCapacityJobResourceLimits = "Node.Compute.Capacity.JobResourceLimits"
View Source
const NodeComputeCapacityJobResourceLimitsCPU = "Node.Compute.Capacity.JobResourceLimits.CPU"
View Source
const NodeComputeCapacityJobResourceLimitsDisk = "Node.Compute.Capacity.JobResourceLimits.Disk"
View Source
const NodeComputeCapacityJobResourceLimitsGPU = "Node.Compute.Capacity.JobResourceLimits.GPU"
View Source
const NodeComputeCapacityJobResourceLimitsMemory = "Node.Compute.Capacity.JobResourceLimits.Memory"
View Source
const NodeComputeCapacityQueueResourceLimits = "Node.Compute.Capacity.QueueResourceLimits"
View Source
const NodeComputeCapacityQueueResourceLimitsCPU = "Node.Compute.Capacity.QueueResourceLimits.CPU"
View Source
const NodeComputeCapacityQueueResourceLimitsDisk = "Node.Compute.Capacity.QueueResourceLimits.Disk"
View Source
const NodeComputeCapacityQueueResourceLimitsGPU = "Node.Compute.Capacity.QueueResourceLimits.GPU"
View Source
const NodeComputeCapacityQueueResourceLimitsMemory = "Node.Compute.Capacity.QueueResourceLimits.Memory"
View Source
const NodeComputeCapacityTotalResourceLimits = "Node.Compute.Capacity.TotalResourceLimits"
View Source
const NodeComputeCapacityTotalResourceLimitsCPU = "Node.Compute.Capacity.TotalResourceLimits.CPU"
View Source
const NodeComputeCapacityTotalResourceLimitsDisk = "Node.Compute.Capacity.TotalResourceLimits.Disk"
View Source
const NodeComputeCapacityTotalResourceLimitsGPU = "Node.Compute.Capacity.TotalResourceLimits.GPU"
View Source
const NodeComputeCapacityTotalResourceLimitsMemory = "Node.Compute.Capacity.TotalResourceLimits.Memory"
View Source
const NodeComputeExecutionStore = "Node.Compute.ExecutionStore"
View Source
const NodeComputeExecutionStorePath = "Node.Compute.ExecutionStore.Path"
View Source
const NodeComputeExecutionStoreType = "Node.Compute.ExecutionStore.Type"
View Source
const NodeComputeJobSelection = "Node.Compute.JobSelection"
View Source
const NodeComputeJobSelectionAcceptNetworkedJobs = "Node.Compute.JobSelection.AcceptNetworkedJobs"
View Source
const NodeComputeJobSelectionLocality = "Node.Compute.JobSelection.Locality"
View Source
const NodeComputeJobSelectionProbeExec = "Node.Compute.JobSelection.ProbeExec"
View Source
const NodeComputeJobSelectionProbeHTTP = "Node.Compute.JobSelection.ProbeHTTP"
View Source
const NodeComputeJobSelectionRejectStatelessJobs = "Node.Compute.JobSelection.RejectStatelessJobs"
View Source
const NodeComputeJobTimeouts = "Node.Compute.JobTimeouts"
View Source
const NodeComputeJobTimeoutsDefaultJobExecutionTimeout = "Node.Compute.JobTimeouts.DefaultJobExecutionTimeout"
View Source
const NodeComputeJobTimeoutsJobExecutionTimeoutClientIDBypassList = "Node.Compute.JobTimeouts.JobExecutionTimeoutClientIDBypassList"
View Source
const NodeComputeJobTimeoutsJobNegotiationTimeout = "Node.Compute.JobTimeouts.JobNegotiationTimeout"
View Source
const NodeComputeJobTimeoutsMaxJobExecutionTimeout = "Node.Compute.JobTimeouts.MaxJobExecutionTimeout"
View Source
const NodeComputeJobTimeoutsMinJobExecutionTimeout = "Node.Compute.JobTimeouts.MinJobExecutionTimeout"
View Source
const NodeComputeLogging = "Node.Compute.Logging"
View Source
const NodeComputeLoggingLogRunningExecutionsInterval = "Node.Compute.Logging.LogRunningExecutionsInterval"
View Source
const NodeComputeQueue = "Node.Compute.Queue"
View Source
const NodeComputeStoragePath = "Node.ComputeStoragePath"
View Source
const NodeDisabledFeatures = "Node.DisabledFeatures"
View Source
const NodeDisabledFeaturesEngines = "Node.DisabledFeatures.Engines"
View Source
const NodeDisabledFeaturesPublishers = "Node.DisabledFeatures.Publishers"
View Source
const NodeDisabledFeaturesStorages = "Node.DisabledFeatures.Storages"
View Source
const NodeDownloadURLRequestRetries = "Node.DownloadURLRequestRetries"
View Source
const NodeDownloadURLRequestTimeout = "Node.DownloadURLRequestTimeout"
View Source
const NodeEstuaryAPIKey = "Node.EstuaryAPIKey"
View Source
const NodeExecutorPluginPath = "Node.ExecutorPluginPath"
View Source
const NodeIPFS = "Node.IPFS"
View Source
const NodeIPFSConnect = "Node.IPFS.Connect"
View Source
const NodeIPFSPrivateInternal = "Node.IPFS.PrivateInternal"
View Source
const NodeIPFSServePath = "Node.IPFS.ServePath"
View Source
const NodeIPFSSwarmAddresses = "Node.IPFS.SwarmAddresses"
View Source
const NodeIPFSSwarmKeyPath = "Node.IPFS.SwarmKeyPath"
View Source
const NodeLabels = "Node.Labels"
View Source
const NodeLibp2p = "Node.Libp2p"
View Source
const NodeLibp2pPeerConnect = "Node.Libp2p.PeerConnect"
View Source
const NodeLibp2pSwarmPort = "Node.Libp2p.SwarmPort"
View Source
const NodeLoggingMode = "Node.LoggingMode"
View Source
const NodeRequester = "Node.Requester"
View Source
const NodeRequesterEvaluationBroker = "Node.Requester.EvaluationBroker"
View Source
const NodeRequesterEvaluationBrokerEvalBrokerInitialRetryDelay = "Node.Requester.EvaluationBroker.EvalBrokerInitialRetryDelay"
View Source
const NodeRequesterEvaluationBrokerEvalBrokerMaxRetryCount = "Node.Requester.EvaluationBroker.EvalBrokerMaxRetryCount"
View Source
const NodeRequesterEvaluationBrokerEvalBrokerSubsequentRetryDelay = "Node.Requester.EvaluationBroker.EvalBrokerSubsequentRetryDelay"
View Source
const NodeRequesterEvaluationBrokerEvalBrokerVisibilityTimeout = "Node.Requester.EvaluationBroker.EvalBrokerVisibilityTimeout"
View Source
const NodeRequesterExternalVerifierHook = "Node.Requester.ExternalVerifierHook"
View Source
const NodeRequesterFailureInjectionConfig = "Node.Requester.FailureInjectionConfig"
View Source
const NodeRequesterFailureInjectionConfigIsBadActor = "Node.Requester.FailureInjectionConfig.IsBadActor"
View Source
const NodeRequesterHousekeepingBackgroundTaskInterval = "Node.Requester.HousekeepingBackgroundTaskInterval"
View Source
const NodeRequesterJobDefaults = "Node.Requester.JobDefaults"
View Source
const NodeRequesterJobDefaultsExecutionTimeout = "Node.Requester.JobDefaults.ExecutionTimeout"
View Source
const NodeRequesterJobSelectionPolicy = "Node.Requester.JobSelectionPolicy"
View Source
const NodeRequesterJobSelectionPolicyAcceptNetworkedJobs = "Node.Requester.JobSelectionPolicy.AcceptNetworkedJobs"
View Source
const NodeRequesterJobSelectionPolicyLocality = "Node.Requester.JobSelectionPolicy.Locality"
View Source
const NodeRequesterJobSelectionPolicyProbeExec = "Node.Requester.JobSelectionPolicy.ProbeExec"
View Source
const NodeRequesterJobSelectionPolicyProbeHTTP = "Node.Requester.JobSelectionPolicy.ProbeHTTP"
View Source
const NodeRequesterJobSelectionPolicyRejectStatelessJobs = "Node.Requester.JobSelectionPolicy.RejectStatelessJobs"
View Source
const NodeRequesterJobStore = "Node.Requester.JobStore"
View Source
const NodeRequesterJobStorePath = "Node.Requester.JobStore.Path"
View Source
const NodeRequesterJobStoreType = "Node.Requester.JobStore.Type"
View Source
const NodeRequesterNodeRankRandomnessRange = "Node.Requester.NodeRankRandomnessRange"
View Source
const NodeRequesterOverAskForBidsFactor = "Node.Requester.OverAskForBidsFactor"
View Source
const NodeRequesterStorageProvider = "Node.Requester.StorageProvider"
View Source
const NodeRequesterStorageProviderS3 = "Node.Requester.StorageProvider.S3"
View Source
const NodeRequesterStorageProviderS3PreSignedURLDisabled = "Node.Requester.StorageProvider.S3.PreSignedURLDisabled"
View Source
const NodeRequesterStorageProviderS3PreSignedURLExpiration = "Node.Requester.StorageProvider.S3.PreSignedURLExpiration"
View Source
const NodeRequesterWorker = "Node.Requester.Worker"
View Source
const NodeRequesterWorkerWorkerCount = "Node.Requester.Worker.WorkerCount"
View Source
const NodeRequesterWorkerWorkerEvalDequeueBaseBackoff = "Node.Requester.Worker.WorkerEvalDequeueBaseBackoff"
View Source
const NodeRequesterWorkerWorkerEvalDequeueMaxBackoff = "Node.Requester.Worker.WorkerEvalDequeueMaxBackoff"
View Source
const NodeRequesterWorkerWorkerEvalDequeueTimeout = "Node.Requester.Worker.WorkerEvalDequeueTimeout"
View Source
const NodeServerAPI = "Node.ServerAPI"
View Source
const NodeServerAPIHost = "Node.ServerAPI.Host"
View Source
const NodeServerAPIPort = "Node.ServerAPI.Port"
View Source
const NodeServerAPITLS = "Node.ServerAPI.TLS"
View Source
const NodeServerAPITLSAutoCert = "Node.ServerAPI.TLS.AutoCert"
View Source
const NodeServerAPITLSAutoCertCachePath = "Node.ServerAPI.TLS.AutoCertCachePath"
View Source
const NodeServerAPITLSServerCertificate = "Node.ServerAPI.TLS.ServerCertificate"
View Source
const NodeServerAPITLSServerKey = "Node.ServerAPI.TLS.ServerKey"
View Source
const NodeType = "Node.Type"
View Source
const NodeVolumeSizeRequestTimeout = "Node.VolumeSizeRequestTimeout"
View Source
const Update = "Update"
View Source
const UpdateCheckFrequency = "Update.CheckFrequency"
View Source
const UpdateCheckStatePath = "Update.CheckStatePath"
View Source
const UpdateSkipChecks = "Update.SkipChecks"
View Source
const User = "User"
View Source
const UserInstallationID = "User.InstallationID"
View Source
const UserKeyPath = "User.KeyPath"
View Source
const UserLibp2pKeyPath = "User.Libp2pKeyPath"
Variables ¶
This section is empty.
Functions ¶
func Set ¶ added in v1.1.0
func Set(cfg BacalhauConfig)
func SetDefaults ¶
func SetDefaults(cfg BacalhauConfig)
Types ¶
type APIConfig ¶
type APIConfig struct { // Host is the hostname of an environment's public API servers. Host string `yaml:"Host"` // Port is the port that an environment serves the public API on. Port int `yaml:"Port"` // TLS returns information about how TLS is configured for the public server TLS TLSConfiguration `yaml:"TLS"` }
type BacalhauConfig ¶
type BacalhauConfig struct { Node NodeConfig `yaml:"Node"` User UserConfig `yaml:"User"` Metrics MetricsConfig `yaml:"Metrics"` Update UpdateConfig `yaml:"UpdateConfig"` }
type CapacityConfig ¶
type CapacityConfig struct { IgnorePhysicalResourceLimits bool `yaml:"IgnorePhysicalResourceLimits"` // Total amount of resource the system can be using at one time in aggregate for all jobs. TotalResourceLimits model.ResourceUsageConfig `yaml:"TotalResourceLimits"` // Per job amount of resource the system can be using at one time. JobResourceLimits model.ResourceUsageConfig `yaml:"JobResourceLimits"` DefaultJobResourceLimits model.ResourceUsageConfig `yaml:"DefaultJobResourceLimits"` QueueResourceLimits model.ResourceUsageConfig `yaml:"QueueResourceLimits"` }
type ComputeConfig ¶
type ComputeConfig struct { Capacity CapacityConfig `yaml:"Capacity"` ExecutionStore JobStoreConfig `yaml:"ExecutionStore"` JobTimeouts JobTimeoutConfig `yaml:"JobTimeouts"` JobSelection model.JobSelectionPolicy `yaml:"JobSelection"` Queue QueueConfig `yaml:"Queue"` Logging LoggingConfig `yaml:"Logging"` }
type Duration ¶
Duration is a wrapper type for time.Duration for decoding and encoding from/to YAML, etc.
func (Duration) MarshalText ¶
func (*Duration) UnmarshalText ¶
UnmarshalText implements interface for YAML decoding
type EvaluationBrokerConfig ¶
type EvaluationBrokerConfig struct { EvalBrokerVisibilityTimeout Duration `yaml:"EvalBrokerVisibilityTimeout"` EvalBrokerInitialRetryDelay Duration `yaml:"EvalBrokerInitialRetryDelay"` EvalBrokerSubsequentRetryDelay Duration `yaml:"EvalBrokerSubsequentRetryDelay"` EvalBrokerMaxRetryCount int `yaml:"EvalBrokerMaxRetryCount"` }
type FeatureConfig ¶
type IpfsConfig ¶
type IpfsConfig struct { // Connect is the multiaddress to connect to for IPFS. Connect string `yaml:"Connect"` // Whether the in-process IPFS should automatically discover other IPFS nodes PrivateInternal bool `yaml:"PrivateInternal"` // IPFS multiaddresses that the in-process IPFS should connect to SwarmAddresses []string `yaml:"SwarmAddresses"` // Optional IPFS swarm key required to connect to a private IPFS swarm SwarmKeyPath string `yaml:"SwarmKeyPath"` // Path of the IPFS repo ServePath string `yaml:"ServePath"` }
func (IpfsConfig) GetSwarmAddresses ¶
func (cfg IpfsConfig) GetSwarmAddresses() []string
Due to a bug in Viper (https://github.com/spf13/viper/issues/380), string slice values can be comma-separated as a command-line flag but not as an environment variable. This getter exists to handle the case where swarm addresses that are meant to be comma-separated end up in the first item.
type JobDefaults ¶ added in v1.1.0
type JobDefaults struct {
ExecutionTimeout Duration `yaml:"ExecutionTimeout"`
}
type JobStoreConfig ¶ added in v1.1.4
type JobStoreConfig struct { Type StorageType `yaml:"Type"` Path string `yaml:"Path"` }
type JobTimeoutConfig ¶
type JobTimeoutConfig struct { // JobExecutionTimeoutClientIDBypassList is the list of clients that are allowed to bypass the job execution timeout // check. JobExecutionTimeoutClientIDBypassList []string `yaml:"JobExecutionTimeoutClientIDBypassList"` // JobNegotiationTimeout default timeout value to hold a bid for a job JobNegotiationTimeout Duration `yaml:"JobNegotiationTimeout"` // MinJobExecutionTimeout default value for the minimum execution timeout this compute node supports. Jobs with // lower timeout requirements will not be bid on. MinJobExecutionTimeout Duration `yaml:"MinJobExecutionTimeout"` // MaxJobExecutionTimeout default value for the maximum execution timeout this compute node supports. Jobs with // higher timeout requirements will not be bid on. MaxJobExecutionTimeout Duration `yaml:"MaxJobExecutionTimeout"` // DefaultJobExecutionTimeout default value for the execution timeout this compute node will assign to jobs with // no timeout requirement defined. DefaultJobExecutionTimeout Duration `yaml:"DefaultJobExecutionTimeout"` }
type Libp2pConfig ¶
type LoggingConfig ¶
type LoggingConfig struct { // logging running executions LogRunningExecutionsInterval Duration `yaml:"LogRunningExecutionsInterval"` }
type MetricsConfig ¶
type NodeConfig ¶
type NodeConfig struct { ClientAPI APIConfig `yaml:"ClientAPI"` ServerAPI APIConfig `yaml:"ServerAPI"` Libp2p Libp2pConfig `yaml:"Libp2P"` IPFS IpfsConfig `yaml:"IPFS"` Compute ComputeConfig `yaml:"Compute"` Requester RequesterConfig `yaml:"Requester"` // BootstrapAddresses is a list of bacalhau addresses for bootstrapping new local nodes. BootstrapAddresses []string `yaml:"BootstrapAddresses"` DownloadURLRequestRetries int `yaml:"DownloadURLRequestRetries"` DownloadURLRequestTimeout Duration `yaml:"DownloadURLRequestTimeout"` VolumeSizeRequestTimeout Duration `yaml:"VolumeSizeRequestTimeout"` ExecutorPluginPath string `yaml:"ExecutorPluginPath"` ComputeStoragePath string `yaml:"ComputeStoragePath"` LoggingMode logger.LogMode `yaml:"LoggingMode"` // Type is "compute", "requester" or both Type []string `yaml:"Type"` // Deprecated: TODO(forrest) remove. EstuaryAPIKey string `yaml:"EstuaryAPIKey"` // Local paths that are allowed to be mounted into jobs AllowListedLocalPaths []string `yaml:"AllowListedLocalPaths"` // What features should not be enabled even if installed DisabledFeatures FeatureConfig `yaml:"DisabledFeatures"` // Labels to apply to the node that can be used for node selection and filtering Labels map[string]string `yaml:"Labels"` }
type QueueConfig ¶
type QueueConfig struct { }
type RequesterConfig ¶
type RequesterConfig struct { JobDefaults JobDefaults `yaml:"JobDefaults"` // URL where to send external verification requests to. ExternalVerifierHook string `yaml:"ExternalVerifierHook"` // How the node decides what jobs to run. JobSelectionPolicy model.JobSelectionPolicy `yaml:"JobSelectionPolicy"` JobStore JobStoreConfig `yaml:"JobStore"` HousekeepingBackgroundTaskInterval Duration `yaml:"HousekeepingBackgroundTaskInterval"` NodeRankRandomnessRange int `yaml:"NodeRankRandomnessRange"` OverAskForBidsFactor uint `yaml:"OverAskForBidsFactor"` FailureInjectionConfig model.FailureInjectionRequesterConfig `yaml:"FailureInjectionConfig"` EvaluationBroker EvaluationBrokerConfig `yaml:"EvaluationBroker"` Worker WorkerConfig `yaml:"Worker"` StorageProvider StorageProviderConfig `yaml:"StorageProvider"` }
type S3StorageProviderConfig ¶ added in v1.1.4
type StorageProviderConfig ¶ added in v1.1.4
type StorageProviderConfig struct {
S3 S3StorageProviderConfig `yaml:"S3"`
}
type StorageType ¶
type StorageType int64
const ( InMemory StorageType = 0 BoltDB StorageType = 1 )
func ParseStorageType ¶
func ParseStorageType(s string) (ret StorageType, err error)
func (StorageType) MarshalYAML ¶
func (j StorageType) MarshalYAML() (interface{}, error)
func (StorageType) String ¶
func (i StorageType) String() string
func (*StorageType) UnmarshalText ¶
func (j *StorageType) UnmarshalText(text []byte) error
func (*StorageType) UnmarshalYAML ¶
func (j *StorageType) UnmarshalYAML(value *yaml.Node) error
type TLSConfiguration ¶
type TLSConfiguration struct { // AutoCert specifies a hostname for a certificate to be obtained via ACME. // This is only used by the server, and only by the requester node when it // has a publicly resolvable domain name. AutoCert string `yaml:"AutoCert"` // AutoCertCachePath specifies the directory where the autocert process // will cache certificates to avoid rate limits. AutoCertCachePath string `yaml:"AutoCertCachePath"` // ServerCertificate specifies the location of a TLS certificate to be used // by the requester to serve TLS requests ServerCertificate string `yaml:"ServerCertificate"` // ServerKey is the TLS server key to match the certificate to allow the // requester to server TLS. ServerKey string `yaml:"ServerTLSKey"` }
type UpdateConfig ¶ added in v1.1.2
type UserConfig ¶
type WorkerConfig ¶
Source Files ¶
Click to show internal directories.
Click to hide internal directories.