Documentation
¶
Index ¶
- Constants
- Variables
- func CreateStateMessage(resource ResourceType, resourceState MachineResourceState, resourceName string) string
- func CreateStateMessageWithText(resource ResourceType, resourceState MachineResourceState, resourceName string, ...) string
- func GetLocationFromResourceName(id string) string
- func GetMachineNameFromResourceName(id string) string
- func GetMachinesInLocation(resourceName string, machines map[string]Machiner) ([]string, error)
- func GetProviderAbbreviation(provider string) string
- func IsValidAWSResource(resource string) bool
- func IsValidAzureResource(resource string) bool
- func IsValidGCPResource(resource string) bool
- func IsValidLocation(deploymentType DeploymentType, location string) bool
- func MachineConfigToWrite(machine Machiner) map[string]interface{}
- type AWSConfig
- type AWSResourceState
- type AzureConfig
- type AzureEvent
- type BacalhauSettings
- type CloudSpecificInfo
- type ClusterDetails
- type Deployment
- func (d *Deployment) CreateMachine(name string, machine Machiner)
- func (d *Deployment) GetCloudConfig(cloudType DeploymentType) interface{}
- func (d *Deployment) GetCloudResources(cloudType DeploymentType) interface{}
- func (d *Deployment) GetMachine(name string) Machiner
- func (d *Deployment) GetMachines() map[string]Machiner
- func (d *Deployment) GetProjectID() string
- func (d *Deployment) SetLocations(locations map[string]bool)
- func (d *Deployment) SetMachine(name string, machine Machiner)
- func (d *Deployment) SetMachines(machines map[string]Machiner)
- func (d *Deployment) SetProjectID(projectID string)
- func (d *Deployment) ToMap() map[string]interface{}
- func (d *Deployment) UpdateMachine(name string, updater func(Machiner)) error
- func (d *Deployment) UpdateViperConfig() error
- type DeploymentStatus
- type DeploymentType
- type Disk
- type DisplayStatus
- func ConvertFromRawResourceToStatus(resourceMap map[string]interface{}, deployment *Deployment) ([]DisplayStatus, error)
- func NewDisplayStatus(machineName string, resourceID string, resourceType ResourceType, ...) *DisplayStatus
- func NewDisplayStatusWithText(resourceID string, resourceType ResourceType, state MachineResourceState, ...) *DisplayStatus
- func NewDisplayVMStatus(machineName string, state MachineResourceState) *DisplayStatus
- func UpdateOnlyChangedStatus(status *DisplayStatus, newStatus *DisplayStatus) *DisplayStatus
- type GCPConfig
- type GCPResourceState
- type Machine
- func (mach *Machine) BacalhauEnabled() bool
- func (mach *Machine) CloudType() DeploymentType
- func (mach *Machine) Complete() bool
- func (mach *Machine) CustomScriptEnabled() bool
- func (mach *Machine) DockerEnabled() bool
- func (mach *Machine) EnsureMachineServices() error
- func (mach *Machine) GetDeploymentEndTime() time.Time
- func (mach *Machine) GetDiskImageFamily() string
- func (mach *Machine) GetDiskImageURL() string
- func (mach *Machine) GetDiskSizeGB() int
- func (mach *Machine) GetElapsedTime() time.Duration
- func (mach *Machine) GetID() string
- func (mach *Machine) GetImageID() string
- func (mach *Machine) GetLocation() string
- func (mach *Machine) GetMachineResource(resourceType string) MachineResource
- func (mach *Machine) GetMachineResourceState(resourceName string) MachineResourceState
- func (mach *Machine) GetMachineResources() map[string]MachineResource
- func (mach *Machine) GetMachineServices() map[string]ServiceType
- func (mach *Machine) GetName() string
- func (mach *Machine) GetNodeType() string
- func (mach *Machine) GetOrchestratorIP() string
- func (mach *Machine) GetPrivateIP() string
- func (mach *Machine) GetPublicIP() string
- func (mach *Machine) GetRegion() string
- func (mach *Machine) GetSSHPort() int
- func (mach *Machine) GetSSHPrivateKeyMaterial() []byte
- func (mach *Machine) GetSSHPrivateKeyPath() string
- func (mach *Machine) GetSSHPublicKeyMaterial() []byte
- func (mach *Machine) GetSSHPublicKeyPath() string
- func (mach *Machine) GetSSHUser() string
- func (mach *Machine) GetServiceState(serviceName string) ServiceState
- func (mach *Machine) GetServices() map[string]ServiceType
- func (mach *Machine) GetSpotMarketOptions() *ec2Types.InstanceMarketOptionsRequest
- func (mach *Machine) GetStartTime() time.Time
- func (mach *Machine) GetStatusMessage() string
- func (mach *Machine) GetType() ResourceType
- func (mach *Machine) GetVMCount() int
- func (mach *Machine) GetVMSize() string
- func (mach *Machine) GetZone() string
- func (mach *Machine) InstallDockerAndCorePackages(ctx context.Context) error
- func (mach *Machine) IsComplete() bool
- func (mach *Machine) IsCustomScriptExecuted() bool
- func (mach *Machine) IsFailed() bool
- func (mach *Machine) IsOrchestrator() bool
- func (mach *Machine) LogTimingInfo(logger logger.Logger)
- func (mach *Machine) ResourcesComplete() (int, int)
- func (mach *Machine) SSHEnabled() bool
- func (mach *Machine) ServicesComplete() (int, int)
- func (mach *Machine) SetComplete()
- func (mach *Machine) SetCustomScriptExecuted(executed bool)
- func (mach *Machine) SetDeploymentEndTime(endTime time.Time)
- func (mach *Machine) SetDiskImageFamily(family string)
- func (mach *Machine) SetDiskImageURL(url string)
- func (mach *Machine) SetDiskSizeGB(size int)
- func (mach *Machine) SetElapsedTime(elapsedTime time.Duration)
- func (mach *Machine) SetFailed(failed bool)
- func (mach *Machine) SetImageID(imageID string)
- func (mach *Machine) SetLocation(location string) error
- func (mach *Machine) SetMachineResource(resourceType string, resourceState MachineResourceState)
- func (mach *Machine) SetMachineResourceState(resourceName string, state MachineResourceState)
- func (mach *Machine) SetMachineServices(services map[string]ServiceType)
- func (mach *Machine) SetName(name string)
- func (mach *Machine) SetNodeType(nodeType string)
- func (mach *Machine) SetOrchestrator(orchestrator bool)
- func (mach *Machine) SetOrchestratorIP(ip string)
- func (mach *Machine) SetPrivateIP(ip string)
- func (mach *Machine) SetPublicIP(ip string)
- func (mach *Machine) SetSSHPort(port int)
- func (mach *Machine) SetSSHPrivateKeyMaterial(key []byte)
- func (mach *Machine) SetSSHPrivateKeyPath(path string)
- func (mach *Machine) SetSSHPublicKeyMaterial(key []byte)
- func (mach *Machine) SetSSHPublicKeyPath(path string)
- func (mach *Machine) SetSSHUser(user string)
- func (mach *Machine) SetServiceState(serviceName string, state ServiceState)
- func (mach *Machine) SetSpotMarketOptions(options *ec2Types.InstanceMarketOptionsRequest)
- func (mach *Machine) SetStartTime(startTime time.Time)
- func (mach *Machine) SetStatusMessage(message string)
- type MachineResource
- type MachineResourceState
- type Machiner
- type NodeInfo
- type NodeInfoList
- type NodeStore
- type Parameters
- type ProviderAbbreviation
- type ProvisionProgress
- type ProvisionStep
- type ProvisionStepStatus
- type ResourceType
- type ServiceAccountInfo
- type ServiceState
- type ServiceType
- type StatusCode
- type StatusUpdateMsg
- type TimeUpdateMsg
Constants ¶
const ( BacalhauNodeTypeCompute = "compute" BacalhauNodeTypeOrchestrator = "requester" )
const ( DisplayTextSuccess = "✔" DisplayTextFailed = "✘" DisplayTextInProgress = "↻" DisplayTextWaiting = "↻" DisplayTextCreating = "⌃" DisplayTextUnknown = "?" DisplayTextNotStarted = "┅" DisplayEmojiSuccess = "✅" DisplayEmojiWaiting = "⏳" DisplayEmojiCreating = "⬆️" DisplayEmojiFailed = "❌" DisplayEmojiQuestion = "❓" DisplayEmojiNotStarted = "⬛️" DisplayEmojiOrchestratorNode = "🌕" DisplayEmojiWorkerNode = "⚫️" DisplayTextOrchestratorNode = "⏼" DisplayTextWorkerNode = " " DisplayEmojiOrchestrator = "🤖" DisplayEmojiSSH = "🔑" DisplayEmojiDocker = "🐳" DisplayEmojiBacalhau = "🐟" DisplayTextOrchestrator = "O" DisplayTextSSH = "S" DisplayTextDocker = "D" DisplayTextBacalhau = "B" DisplayTextCustomScript = "X" )
const (
MachineResourceTypeComputeInstance = "compute_instance"
)
const (
MachineResourceTypeEC2Instance = "ec2_instance"
)
const MaximumGCPProjectIDLength = 18
GCP constants
const MaximumGCPUniqueProjectIDLength = 26
const NumberOfSimultaneousProvisionings = 5
Variables ¶
var ( ServiceTypeSSH = ServiceType{Name: "SSH", State: ServiceStateNotStarted} ServiceTypeDocker = ServiceType{Name: "Docker", State: ServiceStateNotStarted} ServiceTypeBacalhau = ServiceType{Name: "Bacalhau", State: ServiceStateNotStarted} ServiceTypeCorePackages = ServiceType{Name: "CorePackages", State: ServiceStateNotStarted} ServiceTypeScript = ServiceType{Name: "Script", State: ServiceStateNotStarted} )
var AWSResourceTypeInstance = ResourceType{
ResourceString: "aws:ec2:instance",
ShortResourceName: "EC2 ",
}
var AWSResourceTypeSecurityGroup = ResourceType{
ResourceString: "aws:ec2:security-group",
ShortResourceName: "SG ",
}
var AWSResourceTypeSubnet = ResourceType{
ResourceString: "aws:ec2:subnet",
ShortResourceName: "SNET",
}
var AWSResourceTypeVPC = ResourceType{
ResourceString: "aws:ec2:vpc",
ShortResourceName: "VPC ",
}
var AWSResourceTypeVolume = ResourceType{
ResourceString: "aws:ec2:volume",
ShortResourceName: "VOL ",
}
var AzureResourceTypeDISK = ResourceType{
ResourceString: "Microsoft.Compute/disks",
ShortResourceName: "DISK",
}
var AzureResourceTypeGuestAttestation = ResourceType{
ResourceString: "Microsoft.Compute/virtualMachines/extensions/GuestAttestation",
ShortResourceName: "GATT",
}
var AzureResourceTypeIP = ResourceType{
ResourceString: "Microsoft.Network/publicIPAddresses",
ShortResourceName: "IP ",
}
var AzureResourceTypeNIC = ResourceType{
ResourceString: "Microsoft.Network/networkInterfaces",
ShortResourceName: "NIC ",
}
var AzureResourceTypeNSG = ResourceType{
ResourceString: "Microsoft.Network/networkSecurityGroups",
ShortResourceName: "NSG ",
}
var AzureResourceTypeSNET = ResourceType{
ResourceString: "Microsoft.Network/subnets",
ShortResourceName: "SNET",
}
var AzureResourceTypeVM = ResourceType{
ResourceString: "Microsoft.Compute/virtualMachines",
ShortResourceName: "VM ",
}
var AzureResourceTypeVNET = ResourceType{
ResourceString: "Microsoft.Network/virtualNetworks",
ShortResourceName: "VNET",
}
var AzureSkippedResourceTypes = []string{
"Microsoft.Compute/virtualMachines/extensions",
}
var GCPResourceTypeDisk = ResourceType{
ResourceString: "compute.googleapis.com/Disk",
ShortResourceName: "DISK",
}
var GCPResourceTypeFirewall = ResourceType{
ResourceString: "compute.googleapis.com/Firewall",
ShortResourceName: "FW ",
}
var GCPResourceTypeIAMPolicy = ResourceType{
ResourceString: "cloudresourcemanager.googleapis.com/IAMPolicy",
ShortResourceName: "IAM ",
}
var GCPResourceTypeInstance = ResourceType{
ResourceString: "compute.googleapis.com/Instance",
ShortResourceName: "VM ",
}
var GCPResourceTypeProject = ResourceType{
ResourceString: "cloudresourcemanager.googleapis.com/Project",
ShortResourceName: "PRJ ",
}
var GCPResourceTypeServiceAccount = ResourceType{
ResourceString: "iam.googleapis.com/ServiceAccount",
ShortResourceName: "SA ",
}
var GCPResourceTypeVPC = ResourceType{
ResourceString: "compute.googleapis.com/Network",
ShortResourceName: "VPC ",
}
var RequiredAWSResources = []ResourceType{ AWSResourceTypeVPC, AWSResourceTypeSubnet, AWSResourceTypeSecurityGroup, AWSResourceTypeInstance, AWSResourceTypeVolume, }
var RequiredAzureResources = []ResourceType{ AzureResourceTypeVNET, AzureResourceTypeNIC, AzureResourceTypeNSG, AzureResourceTypeIP, AzureResourceTypeDISK, AzureResourceTypeVM, }
var RequiredGCPResources = []ResourceType{ GCPResourceTypeProject, GCPResourceTypeVPC, GCPResourceTypeFirewall, GCPResourceTypeInstance, GCPResourceTypeDisk, GCPResourceTypeServiceAccount, GCPResourceTypeIAMPolicy, }
var RequiredServices = []ServiceType{ ServiceTypeSSH, ServiceTypeDocker, ServiceTypeBacalhau, ServiceTypeScript, }
var SkippedResourceTypes = []string{
"microsoft.compute/virtualmachines/extensions",
"compute.v1.instanceGroupManager",
}
Functions ¶
func CreateStateMessage ¶
func CreateStateMessage( resource ResourceType, resourceState MachineResourceState, resourceName string, ) string
func CreateStateMessageWithText ¶
func CreateStateMessageWithText( resource ResourceType, resourceState MachineResourceState, resourceName string, text string, ) string
func GetMachineNameFromResourceName ¶
Tests to see if the resource name is a machine ID. Returns the machine ID if it is.
func GetMachinesInLocation ¶
func GetProviderAbbreviation ¶
GetProviderAbbreviation returns the abbreviation for a given provider
func IsValidAWSResource ¶ added in v0.0.14
func IsValidAzureResource ¶
func IsValidGCPResource ¶
func IsValidLocation ¶
func IsValidLocation(deploymentType DeploymentType, location string) bool
Add this new function
func MachineConfigToWrite ¶
Types ¶
type AWSResourceState ¶ added in v0.0.14
type AWSResourceState int
const ( AWSResourceStateUnknown AWSResourceState = iota AWSResourceStatePending AWSResourceStateRunning AWSResourceStateShuttingDown AWSResourceStateTerminated AWSResourceStateStopping AWSResourceStateStopped )
func ConvertFromStringToAWSResourceState ¶ added in v0.0.14
func ConvertFromStringToAWSResourceState(s string) AWSResourceState
type AzureConfig ¶
type AzureEvent ¶
type BacalhauSettings ¶
type BacalhauSettings struct {
Key string `json:"key"`
Value interface{} `json:"value"`
}
func ReadBacalhauSettingsFromViper ¶
func ReadBacalhauSettingsFromViper() ([]BacalhauSettings, error)
type CloudSpecificInfo ¶
type CloudSpecificInfo struct {
// Azure specific
ResourceGroupName string
// GCP specific
Zone string
// Both GCP and AWS
Region string
// AWS specific
SpotMarketOptions *ec2Types.InstanceMarketOptionsRequest
}
type ClusterDetails ¶
type ClusterDetails struct {
Name string
DeploymentType DeploymentType
KubernetesVersion string
NodeCount int
NodeTypes []string
}
ClusterDetails represents the details of a cluster
type Deployment ¶
type Deployment struct {
Name string
ViperPath string
DeploymentType DeploymentType
Azure *AzureConfig
GCP *GCPConfig
AWS *AWSConfig
Machines map[string]Machiner
UniqueID string
StartTime time.Time
EndTime time.Time
Locations []string
AllowedPorts []int
SSHUser string
SSHPort int
SSHPublicKeyPath string
SSHPublicKeyMaterial string
SSHPrivateKeyPath string
SSHPrivateKeyMaterial string
OrchestratorIP string
Tags map[string]string
ProjectServiceAccounts map[string]ServiceAccountInfo
BacalhauSettings []BacalhauSettings
CustomScriptPath string
// contains filtered or unexported fields
}
func NewDeployment ¶
func NewDeployment() (*Deployment, error)
func (*Deployment) CreateMachine ¶
func (d *Deployment) CreateMachine(name string, machine Machiner)
func (*Deployment) GetCloudConfig ¶
func (d *Deployment) GetCloudConfig(cloudType DeploymentType) interface{}
func (*Deployment) GetCloudResources ¶
func (d *Deployment) GetCloudResources(cloudType DeploymentType) interface{}
func (*Deployment) GetMachine ¶
func (d *Deployment) GetMachine(name string) Machiner
func (*Deployment) GetMachines ¶
func (d *Deployment) GetMachines() map[string]Machiner
func (*Deployment) GetProjectID ¶
func (d *Deployment) GetProjectID() string
func (*Deployment) SetLocations ¶
func (d *Deployment) SetLocations(locations map[string]bool)
func (*Deployment) SetMachine ¶
func (d *Deployment) SetMachine(name string, machine Machiner)
func (*Deployment) SetMachines ¶
func (d *Deployment) SetMachines(machines map[string]Machiner)
func (*Deployment) SetProjectID ¶
func (d *Deployment) SetProjectID(projectID string)
func (*Deployment) ToMap ¶
func (d *Deployment) ToMap() map[string]interface{}
func (*Deployment) UpdateMachine ¶
func (d *Deployment) UpdateMachine(name string, updater func(Machiner)) error
func (*Deployment) UpdateViperConfig ¶
func (d *Deployment) UpdateViperConfig() error
type DeploymentStatus ¶
type DeploymentStatus string
const ( DeploymentStatusUnknown DeploymentStatus = "Unknown" DeploymentStatusNotStarted DeploymentStatus = "NotStarted" DeploymentStatusInProgress DeploymentStatus = "InProgress" DeploymentStatusSucceeded DeploymentStatus = "Succeeded" DeploymentStatusFailed DeploymentStatus = "Failed" )
type DeploymentType ¶
type DeploymentType string
const ( DeploymentTypeUnknown DeploymentType = "Unknown" DeploymentTypeAzure DeploymentType = "Azure" DeploymentTypeAWS DeploymentType = "AWS" DeploymentTypeGCP DeploymentType = "GCP" )
type DisplayStatus ¶
type DisplayStatus struct {
ID string
Type ResourceType
Location string
StatusMessage string
DetailedStatus string
ElapsedTime time.Duration
StartTime time.Time
InstanceID string
PublicIP string
PrivateIP string
HighlightCycles int
Name string
Progress int
Orchestrator bool
SSH ServiceState
Docker ServiceState
CorePackages ServiceState
Bacalhau ServiceState
CustomScript ServiceState
StageComplete bool
}
func ConvertFromRawResourceToStatus ¶
func ConvertFromRawResourceToStatus( resourceMap map[string]interface{}, deployment *Deployment, ) ([]DisplayStatus, error)
func NewDisplayStatus ¶
func NewDisplayStatus( machineName string, resourceID string, resourceType ResourceType, state MachineResourceState, ) *DisplayStatus
NewDisplayStatus creates a new DisplayStatus - machineName is the name of the machine (the start of the row - should be unique, something like ABCDEF-vm) - resourceID is the name of the resource (the end of the row - should be unique, something like ABCDEF-vm-nic or centralus-vnet) - resourceType is the type of the resource (e.g. AzureResourceTypeNIC) - state is the state of the resource (e.g. AzureResourceStateSucceeded)
func NewDisplayStatusWithText ¶
func NewDisplayStatusWithText( resourceID string, resourceType ResourceType, state MachineResourceState, text string, ) *DisplayStatus
func NewDisplayVMStatus ¶
func NewDisplayVMStatus( machineName string, state MachineResourceState, ) *DisplayStatus
NewDisplayVMStatus creates a new DisplayStatus for a VM - machineName is the name of the machine (the start of the row - should be unique, something like ABCDEF-vm) - resourceType is the type of the resource (e.g. AzureResourceTypeNIC) - state is the state of the resource (e.g. AzureResourceStateSucceeded)
func UpdateOnlyChangedStatus ¶
func UpdateOnlyChangedStatus( status *DisplayStatus, newStatus *DisplayStatus, ) *DisplayStatus
type GCPConfig ¶
type GCPConfig struct {
ProjectID string
OrganizationID string
DefaultRegion string
DefaultZone string
DefaultMachineType string
DefaultDiskSizeGB int32
BillingAccountID string
ServiceAccountEmail string
ProjectServiceAccounts map[string]ServiceAccountInfo
Tags map[string]string
DefaultCountPerZone int
}
type GCPResourceState ¶
type GCPResourceState int
const ( GCPResourceStateUnknown GCPResourceState = iota GCPResourceStateProvisioning GCPResourceStateRunning GCPResourceStateStopping GCPResourceStateRepairing GCPResourceStateTerminated GCPResourceStateSuspended )
func ConvertFromStringToGCPResourceState ¶
func ConvertFromStringToGCPResourceState(s string) GCPResourceState
type Machine ¶
type Machine struct {
ID string
Name string
Type ResourceType
Location string
Region string
Zone string
NodeType string
StatusMessage string
Parameters Parameters
PublicIP string
PrivateIP string
StartTime time.Time
Failed bool
VMSize string
DiskSizeGB int
DiskImageFamily string
DiskImageURL string
ImageID string
ElapsedTime time.Duration
Orchestrator bool
OrchestratorIP string
SSHUser string
SSHPrivateKeyMaterial []byte
SSHPrivateKeyPath string
SSHPublicKeyMaterial []byte
SSHPublicKeyPath string
SSHPort int
CreationStartTime time.Time
CreationEndTime time.Time
SSHStartTime time.Time
SSHEndTime time.Time
DockerStartTime time.Time
DockerEndTime time.Time
BacalhauStartTime time.Time
BacalhauEndTime time.Time
DeploymentEndTime time.Time
CustomScriptExecuted bool
DeploymentType DeploymentType
CloudProvider DeploymentType
CloudSpecific CloudSpecificInfo
// contains filtered or unexported fields
}
func (*Machine) BacalhauEnabled ¶
func (*Machine) CloudType ¶
func (mach *Machine) CloudType() DeploymentType
CloudType returns the cloud provider type for this machine
func (*Machine) CustomScriptEnabled ¶
func (*Machine) DockerEnabled ¶
func (*Machine) EnsureMachineServices ¶
func (*Machine) GetDeploymentEndTime ¶
func (*Machine) GetDiskImageFamily ¶
func (*Machine) GetDiskImageURL ¶
func (*Machine) GetDiskSizeGB ¶
func (*Machine) GetElapsedTime ¶
func (*Machine) GetImageID ¶ added in v0.0.20
func (*Machine) GetLocation ¶
func (*Machine) GetMachineResource ¶
func (mach *Machine) GetMachineResource(resourceType string) MachineResource
func (*Machine) GetMachineResourceState ¶
func (mach *Machine) GetMachineResourceState(resourceName string) MachineResourceState
func (*Machine) GetMachineResources ¶
func (mach *Machine) GetMachineResources() map[string]MachineResource
func (*Machine) GetMachineServices ¶
func (mach *Machine) GetMachineServices() map[string]ServiceType
Machine Services
func (*Machine) GetNodeType ¶ added in v0.0.5
func (*Machine) GetOrchestratorIP ¶
func (*Machine) GetPrivateIP ¶
func (*Machine) GetPublicIP ¶
func (*Machine) GetSSHPort ¶
func (*Machine) GetSSHPrivateKeyMaterial ¶
func (*Machine) GetSSHPrivateKeyPath ¶
func (*Machine) GetSSHPublicKeyMaterial ¶
func (*Machine) GetSSHPublicKeyPath ¶
func (*Machine) GetSSHUser ¶
func (*Machine) GetServiceState ¶
func (mach *Machine) GetServiceState(serviceName string) ServiceState
func (*Machine) GetServices ¶
func (mach *Machine) GetServices() map[string]ServiceType
Service management methods
func (*Machine) GetSpotMarketOptions ¶ added in v0.0.20
func (mach *Machine) GetSpotMarketOptions() *ec2Types.InstanceMarketOptionsRequest
func (*Machine) GetStartTime ¶
func (*Machine) GetStatusMessage ¶
func (*Machine) GetType ¶
func (mach *Machine) GetType() ResourceType
func (*Machine) GetVMCount ¶
func (*Machine) InstallDockerAndCorePackages ¶
func (*Machine) IsComplete ¶
func (*Machine) IsCustomScriptExecuted ¶
func (*Machine) IsOrchestrator ¶
func (*Machine) LogTimingInfo ¶
func (*Machine) ResourcesComplete ¶
func (*Machine) SSHEnabled ¶
func (*Machine) ServicesComplete ¶
func (*Machine) SetComplete ¶
func (mach *Machine) SetComplete()
func (*Machine) SetCustomScriptExecuted ¶
func (*Machine) SetDeploymentEndTime ¶
func (*Machine) SetDiskImageFamily ¶
func (*Machine) SetDiskImageURL ¶
func (*Machine) SetDiskSizeGB ¶
func (*Machine) SetElapsedTime ¶
func (*Machine) SetImageID ¶ added in v0.0.20
func (*Machine) SetLocation ¶
func (*Machine) SetMachineResource ¶
func (mach *Machine) SetMachineResource(resourceType string, resourceState MachineResourceState)
func (*Machine) SetMachineResourceState ¶
func (mach *Machine) SetMachineResourceState(resourceName string, state MachineResourceState)
func (*Machine) SetMachineServices ¶
func (mach *Machine) SetMachineServices(services map[string]ServiceType)
func (*Machine) SetNodeType ¶ added in v0.0.5
func (*Machine) SetOrchestrator ¶
func (*Machine) SetOrchestratorIP ¶
func (*Machine) SetPrivateIP ¶
func (*Machine) SetPublicIP ¶
func (*Machine) SetSSHPort ¶
func (*Machine) SetSSHPrivateKeyMaterial ¶
func (*Machine) SetSSHPrivateKeyPath ¶
func (*Machine) SetSSHPublicKeyMaterial ¶
func (*Machine) SetSSHPublicKeyPath ¶
func (*Machine) SetSSHUser ¶
func (*Machine) SetServiceState ¶
func (mach *Machine) SetServiceState(serviceName string, state ServiceState)
func (*Machine) SetSpotMarketOptions ¶ added in v0.0.20
func (mach *Machine) SetSpotMarketOptions(options *ec2Types.InstanceMarketOptionsRequest)
func (*Machine) SetStartTime ¶
func (*Machine) SetStatusMessage ¶
type MachineResource ¶
type MachineResource struct {
ResourceName string
ResourceType ResourceType
ResourceState MachineResourceState
ResourceValue string
}
type MachineResourceState ¶
type MachineResourceState int
const ( ResourceStateUnknown MachineResourceState = iota ResourceStateNotStarted ResourceStatePending ResourceStateRunning ResourceStateSucceeded ResourceStateStopping ResourceStateFailed ResourceStateTerminated )
func ConvertFromAzureStringToResourceState ¶
func ConvertFromAzureStringToResourceState(s string) MachineResourceState
type Machiner ¶
type Machiner interface {
// Basic information
GetID() string
GetName() string
SetName(string)
GetType() ResourceType
GetVMSize() string
GetDiskSizeGB() int
SetDiskSizeGB(size int)
IsFailed() bool
SetFailed(bool)
GetDiskImageFamily() string
SetDiskImageFamily(family string)
GetDiskImageURL() string
SetDiskImageURL(url string)
GetImageID() string
SetImageID(id string)
GetLocation() string
SetLocation(location string) error
GetRegion() string
GetZone() string
GetPublicIP() string
SetPublicIP(ip string)
GetPrivateIP() string
SetPrivateIP(ip string)
// AWS Spot Market Options
GetSpotMarketOptions() *ec2Types.InstanceMarketOptionsRequest
SetSpotMarketOptions(options *ec2Types.InstanceMarketOptionsRequest)
// SSH related
GetSSHUser() string
SetSSHUser(user string)
GetSSHPublicKeyMaterial() []byte
SetSSHPublicKeyMaterial([]byte)
GetSSHPublicKeyPath() string
SetSSHPublicKeyPath(path string)
GetSSHPrivateKeyMaterial() []byte
SetSSHPrivateKeyMaterial([]byte)
GetSSHPrivateKeyPath() string
SetSSHPrivateKeyPath(path string)
GetSSHPort() int
SetSSHPort(port int)
// Status and state
GetNodeType() string
SetNodeType(nodeType string)
IsOrchestrator() bool
SetOrchestrator(orchestrator bool)
IsComplete() bool
SetComplete()
GetOrchestratorIP() string
SetOrchestratorIP(ip string)
GetStatusMessage() string
SetStatusMessage(message string)
// Resource management
GetMachineResource(resourceType string) MachineResource
SetMachineResource(resourceType string, resourceState MachineResourceState)
GetMachineResources() map[string]MachineResource
GetMachineResourceState(resourceName string) MachineResourceState
SetMachineResourceState(resourceName string, state MachineResourceState)
ResourcesComplete() (int, int)
// Service management
GetServices() map[string]ServiceType
GetServiceState(serviceName string) ServiceState
SetServiceState(serviceName string, state ServiceState)
SSHEnabled() bool
DockerEnabled() bool
BacalhauEnabled() bool
CustomScriptEnabled() bool
EnsureMachineServices() error
ServicesComplete() (int, int)
// Installation methods
InstallDockerAndCorePackages(ctx context.Context) error
// Cloud provider
CloudType() DeploymentType
// Timing information
GetStartTime() time.Time
SetStartTime(startTime time.Time)
GetDeploymentEndTime() time.Time
SetDeploymentEndTime(endTime time.Time)
GetElapsedTime() time.Duration
SetElapsedTime(elapsedTime time.Duration)
// Logging
LogTimingInfo(logger logger.Logger)
}
func NewMachine ¶
func NewMachine( cloudProvider DeploymentType, location string, vmSize string, diskSizeGB int, cloudSpecificInfo CloudSpecificInfo, ) (Machiner, error)
type NodeInfo ¶ added in v0.0.20
type NodeInfo struct {
Name string `yaml:"name"`
NodeIP string `yaml:"node_ip"`
OrchestratorIP string `yaml:"orchestrator_ip,omitempty"`
DockerInstalled bool `yaml:"docker_installed"`
BacalhauInstalled bool `yaml:"bacalhau_installed"`
CustomScript bool `yaml:"custom_script_installed"`
SSHUsername string `yaml:"ssh_username"`
SSHKeyPath string `yaml:"ssh_key_path"`
}
NodeInfo represents the deployment information for a single node
type NodeInfoList ¶ added in v0.0.20
type NodeInfoList struct {
Nodes []NodeInfo `yaml:"nodes"`
}
NodeInfoList represents a collection of node information
type NodeStore ¶ added in v0.0.20
type NodeStore struct {
// contains filtered or unexported fields
}
NodeStore handles persistent storage of node information
func NewNodeStore ¶ added in v0.0.20
NewNodeStore creates a new NodeStore instance
type Parameters ¶
type ProviderAbbreviation ¶
type ProviderAbbreviation string
const ( ProviderAbbreviationAzure ProviderAbbreviation = "AZU" ProviderAbbreviationAWS ProviderAbbreviation = "AWS" ProviderAbbreviationGCP ProviderAbbreviation = "GCP" ProviderAbbreviationVirtual ProviderAbbreviation = "VIR" ProviderAbbreviationUnknown ProviderAbbreviation = "UNK" )
type ProvisionProgress ¶ added in v0.0.20
type ProvisionProgress struct {
CurrentStep *ProvisionStep
CompletedSteps []*ProvisionStep
TotalSteps int
// contains filtered or unexported fields
}
ProvisionProgress tracks the overall provisioning progress
func NewProvisionProgress ¶ added in v0.0.20
func NewProvisionProgress() *ProvisionProgress
NewProvisionProgress creates a new progress tracker
func (*ProvisionProgress) AddStep ¶ added in v0.0.20
func (p *ProvisionProgress) AddStep(step *ProvisionStep)
AddStep adds a completed step to the progress
func (*ProvisionProgress) GetProgress ¶ added in v0.0.20
func (p *ProvisionProgress) GetProgress() float64
func (*ProvisionProgress) SetCurrentStep ¶ added in v0.0.20
func (p *ProvisionProgress) SetCurrentStep(step *ProvisionStep)
SetCurrentStep updates the current step being executed
type ProvisionStep ¶ added in v0.0.20
ProvisionStep represents a single step in the provisioning process
type ProvisionStepStatus ¶ added in v0.0.20
type ProvisionStepStatus string
ProvisionStepStatus represents the status of a provisioning step
const ( ProvisionStepStatusPending ProvisionStepStatus = "PENDING" ProvisionStepStatusRunning ProvisionStepStatus = "RUNNING" ProvisionStepStatusCompleted ProvisionStepStatus = "COMPLETED" ProvisionStepStatusFailed ProvisionStepStatus = "FAILED" )
type ResourceType ¶
func GetAWSResourceType ¶ added in v0.0.14
func GetAWSResourceType(resource string) ResourceType
func GetAllAWSResources ¶ added in v0.0.14
func GetAllAWSResources() []ResourceType
func GetAllAzureResources ¶
func GetAllAzureResources() []ResourceType
func GetAllGCPResources ¶
func GetAllGCPResources() []ResourceType
func GetAzureResourceType ¶
func GetAzureResourceType(resource string) ResourceType
func GetGCPResourceType ¶
func GetGCPResourceType(resource string) ResourceType
func (*ResourceType) GetResourceLowerString ¶
func (a *ResourceType) GetResourceLowerString() string
func (*ResourceType) GetResourceString ¶
func (a *ResourceType) GetResourceString() string
func (*ResourceType) GetShortResourceName ¶
func (a *ResourceType) GetShortResourceName() string
type ServiceAccountInfo ¶
type ServiceState ¶
type ServiceState int
const ( ServiceStateNotStarted ServiceState = iota ServiceStateCreated ServiceStateUpdating ServiceStateSucceeded ServiceStateFailed ServiceStateUnknown )
type ServiceType ¶
type ServiceType struct {
Name string
State ServiceState
}
type StatusCode ¶
type StatusCode string
StatusCode represents the possible status codes
const ( StatusSucceeded StatusCode = "✅" StatusFailed StatusCode = "❌" StatusCreating StatusCode = "🕕" StatusUpdating StatusCode = "🆙" StatusDeleting StatusCode = "␡" StatusUnknown StatusCode = "❓" )
Constants for each status code
const ( StatusCodeNotStarted StatusCode = "NotStarted" StatusCodeSucceeded StatusCode = "Succeeded" StatusCodeFailed StatusCode = "Failed" StatusCodeInProgress StatusCode = "InProgress" StatusCodeUnknown StatusCode = "Unknown" )
type StatusUpdateMsg ¶
type StatusUpdateMsg struct {
Status *DisplayStatus
}
type TimeUpdateMsg ¶
type TimeUpdateMsg struct{}