Documentation
¶
Index ¶
- Constants
- func GenerateSSHKeyPair() (string, string, error)
- type Hetzner
- func (*Hetzner) AttachVolume(ctx *lepton.Context, instanceName, volumeName string, attachID int) error
- func (h *Hetzner) BuildImage(ctx *lepton.Context) (string, error)
- func (h *Hetzner) BuildImageWithPackage(ctx *lepton.Context, pkgpath string) (string, error)
- func (h *Hetzner) CreateImage(ctx *lepton.Context, imagePath string) error
- func (h *Hetzner) CreateInstance(ctx *lepton.Context) error
- func (*Hetzner) CreateVolume(ctx *lepton.Context, cv types.CloudVolume, data string, provider string) (lepton.NanosVolume, error)
- func (h *Hetzner) CustomizeImage(ctx *lepton.Context) (string, error)
- func (h *Hetzner) DeleteImage(ctx *lepton.Context, imagename string) error
- func (h *Hetzner) DeleteInstance(ctx *lepton.Context, instancename string) error
- func (*Hetzner) DeleteVolume(ctx *lepton.Context, volumeName string) error
- func (*Hetzner) DetachVolume(ctx *lepton.Context, instanceName, volumeName string) error
- func (*Hetzner) GetAllVolumes(ctx *lepton.Context) (*[]lepton.NanosVolume, error)
- func (h *Hetzner) GetImages(ctx *lepton.Context, filter string) ([]lepton.CloudImage, error)
- func (h *Hetzner) GetInstanceByName(ctx *lepton.Context, name string) (*lepton.CloudInstance, error)
- func (*Hetzner) GetInstanceLogs(ctx *lepton.Context, instancename string) (string, error)
- func (h *Hetzner) GetInstances(ctx *lepton.Context) ([]lepton.CloudInstance, error)
- func (h *Hetzner) GetStorage() lepton.Storage
- func (h *Hetzner) Initialize(c *types.ProviderConfig) error
- func (h *Hetzner) InstanceStats(ctx *lepton.Context, instancename string, watch bool) error
- func (h *Hetzner) ListImages(ctx *lepton.Context, filter string) error
- func (h *Hetzner) ListInstances(ctx *lepton.Context) error
- func (*Hetzner) PrintInstanceLogs(ctx *lepton.Context, instancename string, watch bool) error
- func (h *Hetzner) RebootInstance(ctx *lepton.Context, instancename string) error
- func (*Hetzner) ResizeImage(ctx *lepton.Context, imagename string, hbytes string) error
- func (h *Hetzner) StartInstance(ctx *lepton.Context, instancename string) error
- func (h *Hetzner) StopInstance(ctx *lepton.Context, instancename string) error
- func (*Hetzner) SyncImage(config *types.Config, target lepton.Provider, imagename string) error
- type ObjectStorage
Constants ¶
const ProviderName = "hetzner"
ProviderName of the cloud platform provider
Variables ¶
This section is empty.
Functions ¶
func GenerateSSHKeyPair ¶
GenerateSSHKeyPair generates a new RSA key pair and returns the PEM-encoded private key and the OpenSSH-formatted public key as strings.
Types ¶
type Hetzner ¶
type Hetzner struct {
Client *hcloud.Client
Storage *ObjectStorage
}
Hetzner Provider to interact with Hetzner cloud infrastructure
func (*Hetzner) AttachVolume ¶
func (*Hetzner) AttachVolume(ctx *lepton.Context, instanceName, volumeName string, attachID int) error
AttachVolume is a stub because Hetzner volume attachment is not implemented.
func (*Hetzner) BuildImage ¶
BuildImage creates a Hetzner-compatible image from the active configuration.
func (*Hetzner) BuildImageWithPackage ¶
BuildImageWithPackage builds a Hetzner-compatible image that includes the provided package.
func (*Hetzner) CreateImage ¶
CreateImage uploads the image to object storage and registers a Hetzner snapshot.
func (*Hetzner) CreateInstance ¶
CreateInstance launches a server in Hetzner Cloud using the configured snapshot.
func (*Hetzner) CreateVolume ¶
func (*Hetzner) CreateVolume(ctx *lepton.Context, cv types.CloudVolume, data string, provider string) (lepton.NanosVolume, error)
CreateVolume is currently a stub for Hetzner volume creation.
func (*Hetzner) CustomizeImage ¶
CustomizeImage returns image path with adaptations needed by cloud provider
func (*Hetzner) DeleteImage ¶
DeleteImage removes the Hetzner snapshot and associated object storage artifact.
func (*Hetzner) DeleteInstance ¶
DeleteInstance removes the specified Hetzner server.
func (*Hetzner) DeleteVolume ¶
DeleteVolume is a stub; Hetzner volume deletion is not implemented.
func (*Hetzner) DetachVolume ¶
DetachVolume is a stub because Hetzner volume detachment is not implemented.
func (*Hetzner) GetAllVolumes ¶
GetAllVolumes returns an empty list because Hetzner volumes are not supported yet.
func (*Hetzner) GetImages ¶
GetImages retrieves all managed Hetzner snapshots optionally filtered by name.
func (*Hetzner) GetInstanceByName ¶
func (h *Hetzner) GetInstanceByName(ctx *lepton.Context, name string) (*lepton.CloudInstance, error)
GetInstanceByName looks up a managed Hetzner instance by its name label.
func (*Hetzner) GetInstanceLogs ¶
GetInstanceLogs returns an error because Hetzner log streaming is not implemented.
func (*Hetzner) GetInstances ¶
GetInstances retrieves all instances managed by Ops on Hetzner Cloud.
func (*Hetzner) GetStorage ¶
GetStorage returns storage interface for cloud provider
func (*Hetzner) Initialize ¶
func (h *Hetzner) Initialize(c *types.ProviderConfig) error
Initialize Hetzner client
func (*Hetzner) InstanceStats ¶
InstanceStats returns an error because Hetzner metrics are not yet implemented.
func (*Hetzner) ListImages ¶
ListImages prints managed Hetzner snapshots using table or JSON output.
func (*Hetzner) ListInstances ¶
ListInstances prints all managed Hetzner instances in table or JSON form.
func (*Hetzner) PrintInstanceLogs ¶
PrintInstanceLogs returns an error because Hetzner log streaming is not implemented.
func (*Hetzner) RebootInstance ¶
RebootInstance restarts the target Hetzner server.
func (*Hetzner) ResizeImage ¶
ResizeImage reports that resizing Hetzner snapshots is unsupported.
func (*Hetzner) StartInstance ¶
StartInstance powers on the target Hetzner server.
func (*Hetzner) StopInstance ¶
StopInstance powers off the target Hetzner server.
type ObjectStorage ¶
type ObjectStorage struct{}
ObjectStorage provides Hetzner object storage related operations.
func (*ObjectStorage) CopyToBucket ¶
func (s *ObjectStorage) CopyToBucket(config *types.Config, archPath string) error
CopyToBucket copies archive to bucket.
func (*ObjectStorage) DeleteFromBucket ¶
func (s *ObjectStorage) DeleteFromBucket(config *types.Config, key string) error
DeleteFromBucket deletes key from config's bucket.