hcloud

package
v1.0.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 28, 2022 License: MPL-2.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// HCloudExternalIPEndpoint is the local hcloud endpoint for the external IP.
	HCloudExternalIPEndpoint = "http://169.254.169.254/hetzner/v1/metadata/public-ipv4"

	// HCloudNetworkEndpoint is the local hcloud endpoint for the network-config.
	HCloudNetworkEndpoint = "http://169.254.169.254/hetzner/v1/metadata/network-config"

	// HCloudHostnameEndpoint is the local hcloud endpoint for the hostname.
	HCloudHostnameEndpoint = "http://169.254.169.254/hetzner/v1/metadata/hostname"

	// HCloudUserDataEndpoint is the local hcloud endpoint for the config.
	HCloudUserDataEndpoint = "http://169.254.169.254/hetzner/v1/userdata"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Hcloud

type Hcloud struct{}

Hcloud is the concrete type that implements the runtime.Platform interface.

func (*Hcloud) Configuration

func (h *Hcloud) Configuration(ctx context.Context) ([]byte, error)

Configuration implements the runtime.Platform interface.

func (*Hcloud) KernelArgs

func (h *Hcloud) KernelArgs() procfs.Parameters

KernelArgs implements the runtime.Platform interface.

func (*Hcloud) Mode

func (h *Hcloud) Mode() runtime.Mode

Mode implements the runtime.Platform interface.

func (*Hcloud) Name

func (h *Hcloud) Name() string

Name implements the runtime.Platform interface.

func (*Hcloud) NetworkConfiguration added in v1.0.0

func (h *Hcloud) NetworkConfiguration(ctx context.Context, ch chan<- *runtime.PlatformNetworkConfig) error

NetworkConfiguration implements the runtime.Platform interface.

func (*Hcloud) ParseMetadata added in v1.0.0

func (h *Hcloud) ParseMetadata(unmarshalledNetworkConfig *NetworkConfig, host, extIP []byte) (*runtime.PlatformNetworkConfig, error)

ParseMetadata converts HCloud metadata to platform network configuration.

type NetworkConfig

type NetworkConfig struct {
	Version int `yaml:"version"`
	Config  []struct {
		Mac        string `yaml:"mac_address"`
		Interfaces string `yaml:"name"`
		Subnets    []struct {
			NameServers []string `yaml:"dns_nameservers,omitempty"`
			Address     string   `yaml:"address,omitempty"`
			Gateway     string   `yaml:"gateway,omitempty"`
			Ipv4        bool     `yaml:"ipv4,omitempty"`
			Ipv6        bool     `yaml:"ipv6,omitempty"`
			Type        string   `yaml:"type"`
		} `yaml:"subnets"`
		Type string `yaml:"type"`
	} `yaml:"config"`
}

NetworkConfig holds hcloud network-config info.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL