Documentation
¶
Overview ¶
Package provider defines the VMProvider interface that abstracts away the underlying virtualization backend (Podman Machine, Docker Desktop, OrbStack, etc.) so that devx networking and provisioning can run on top of whatever hypervisor the developer already has.
Index ¶
- type DockerProvider
- func (d *DockerProvider) Init(name string) error
- func (d *DockerProvider) Inspect(_ string) (*MachineInfo, error)
- func (d *DockerProvider) IsRunning(_ string) bool
- func (d *DockerProvider) Name() string
- func (d *DockerProvider) Remove(name string) error
- func (d *DockerProvider) Resize(_ string, _, _ int) error
- func (d *DockerProvider) SSH(machineName, command string) (string, error)
- func (d *DockerProvider) SetDefault(_ string) error
- func (d *DockerProvider) Sleep(_ string) error
- func (d *DockerProvider) Start(_ string) error
- func (d *DockerProvider) StopAll() error
- type MachineInfo
- type PodmanProvider
- func (p *PodmanProvider) Init(name string) error
- func (p *PodmanProvider) Inspect(name string) (*MachineInfo, error)
- func (p *PodmanProvider) IsRunning(name string) bool
- func (p *PodmanProvider) Name() string
- func (p *PodmanProvider) Remove(name string) error
- func (p *PodmanProvider) Resize(name string, cpus int, memoryMB int) error
- func (p *PodmanProvider) SSH(machineName, command string) (string, error)
- func (p *PodmanProvider) SetDefault(name string) error
- func (p *PodmanProvider) Sleep(name string) error
- func (p *PodmanProvider) Start(name string) error
- func (p *PodmanProvider) StopAll() error
- type VMProvider
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DockerProvider ¶
type DockerProvider struct{}
DockerProvider implements VMProvider using Docker Desktop / OrbStack. OrbStack is automatically used when it is installed, since it replaces the `docker` CLI transparently.
func (*DockerProvider) Init ¶
func (d *DockerProvider) Init(name string) error
func (*DockerProvider) Inspect ¶
func (d *DockerProvider) Inspect(_ string) (*MachineInfo, error)
func (*DockerProvider) IsRunning ¶
func (d *DockerProvider) IsRunning(_ string) bool
func (*DockerProvider) Name ¶
func (d *DockerProvider) Name() string
func (*DockerProvider) Remove ¶
func (d *DockerProvider) Remove(name string) error
func (*DockerProvider) Resize ¶ added in v0.6.0
func (d *DockerProvider) Resize(_ string, _, _ int) error
func (*DockerProvider) SSH ¶
func (d *DockerProvider) SSH(machineName, command string) (string, error)
func (*DockerProvider) SetDefault ¶
func (d *DockerProvider) SetDefault(_ string) error
func (*DockerProvider) Sleep ¶ added in v0.6.0
func (d *DockerProvider) Sleep(_ string) error
func (*DockerProvider) Start ¶
func (d *DockerProvider) Start(_ string) error
func (*DockerProvider) StopAll ¶
func (d *DockerProvider) StopAll() error
type MachineInfo ¶
MachineInfo is the backend-agnostic representation of a VM.
type PodmanProvider ¶
type PodmanProvider struct{}
PodmanProvider implements VMProvider using Podman Machine.
func (*PodmanProvider) Init ¶
func (p *PodmanProvider) Init(name string) error
func (*PodmanProvider) Inspect ¶
func (p *PodmanProvider) Inspect(name string) (*MachineInfo, error)
func (*PodmanProvider) IsRunning ¶
func (p *PodmanProvider) IsRunning(name string) bool
func (*PodmanProvider) Name ¶
func (p *PodmanProvider) Name() string
func (*PodmanProvider) Remove ¶
func (p *PodmanProvider) Remove(name string) error
func (*PodmanProvider) Resize ¶ added in v0.6.0
func (p *PodmanProvider) Resize(name string, cpus int, memoryMB int) error
func (*PodmanProvider) SSH ¶
func (p *PodmanProvider) SSH(machineName, command string) (string, error)
func (*PodmanProvider) SetDefault ¶
func (p *PodmanProvider) SetDefault(name string) error
func (*PodmanProvider) Sleep ¶ added in v0.6.0
func (p *PodmanProvider) Sleep(name string) error
func (*PodmanProvider) Start ¶
func (p *PodmanProvider) Start(name string) error
func (*PodmanProvider) StopAll ¶
func (p *PodmanProvider) StopAll() error
type VMProvider ¶
type VMProvider interface {
// Name returns the human-readable provider name (e.g. "podman", "docker").
Name() string
// Init provisions a new VM with the given name.
Init(name string) error
// Start starts a named VM.
Start(name string) error
// StopAll stops all running VMs managed by this provider.
StopAll() error
// Remove force-removes a VM by name.
Remove(name string) error
// Sleep suspends the VM to save memory/battery.
Sleep(name string) error
// Resize modifies the VM's hardware limits (cpus, memory).
Resize(name string, cpus int, memoryMB int) error
// SetDefault sets the active connection context to the named VM.
SetDefault(name string) error
// SSH executes a shell command inside the named VM and returns stdout.
SSH(machineName, command string) (string, error)
// IsRunning checks if the named VM is in the "running" state.
IsRunning(name string) bool
// Inspect returns structured info about a machine.
Inspect(name string) (*MachineInfo, error)
}
VMProvider is the contract every backend must fulfil.
func Get ¶
func Get(name string) (VMProvider, error)
Get returns a VMProvider for the given name. Supported values: "podman" (default), "docker", "orbstack".