upcloud

package
v1.4.0-alpha.3 Latest Latest
Warning

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

Go to latest
Published: Mar 23, 2023 License: MPL-2.0 Imports: 14 Imported by: 0

Documentation

Overview

Package upcloud provides the UpCloud platform implementation.

Index

Constants

View Source
const (
	// UpCloudMetadataEndpoint is the local UpCloud endpoint.
	UpCloudMetadataEndpoint = "http://169.254.169.254/metadata/v1.json"

	// UpCloudUserDataEndpoint is the local UpCloud endpoint for the config.
	UpCloudUserDataEndpoint = "http://169.254.169.254/metadata/v1/user_data"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type MetadataConfig

type MetadataConfig struct {
	Hostname   string   `json:"hostname,omitempty"`
	InstanceID string   `json:"instance_id,omitempty"`
	PublicKeys []string `json:"public_keys,omitempty"`
	Zone       string   `json:"region,omitempty"`
	Tags       []string `json:"tags,omitempty"`

	Network struct {
		Interfaces []struct {
			Index       int `json:"index,omitempty"`
			IPAddresses []struct {
				Address  string   `json:"address,omitempty"`
				DHCP     bool     `json:"dhcp,omitempty"`
				DNS      []string `json:"dns,omitempty"`
				Family   string   `json:"family,omitempty"`
				Floating bool     `json:"floating,omitempty"`
				Gateway  string   `json:"gateway,omitempty"`
				Network  string   `json:"network,omitempty"`
			} `json:"ip_addresses,omitempty"`
			MAC         string `json:"mac,omitempty"`
			NetworkType string `json:"type,omitempty"`
			NetworkID   string `json:"network_id,omitempty"`
		} `json:"interfaces,omitempty"`
		DNS []string `json:"dns,omitempty"`
	} `json:"network,omitempty"`
}

MetadataConfig represents a metadata Upcloud instance.

type UpCloud

type UpCloud struct{}

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

func (*UpCloud) Configuration

func (u *UpCloud) Configuration(ctx context.Context, r state.State) ([]byte, error)

Configuration implements the runtime.Platform interface.

func (*UpCloud) KernelArgs

func (u *UpCloud) KernelArgs() procfs.Parameters

KernelArgs implements the runtime.Platform interface.

func (*UpCloud) Mode

func (u *UpCloud) Mode() runtime.Mode

Mode implements the runtime.Platform interface.

func (*UpCloud) Name

func (u *UpCloud) Name() string

Name implements the runtime.Platform interface.

func (*UpCloud) NetworkConfiguration

func (u *UpCloud) NetworkConfiguration(ctx context.Context, _ state.State, ch chan<- *runtime.PlatformNetworkConfig) error

NetworkConfiguration implements the runtime.Platform interface.

func (*UpCloud) ParseMetadata

func (u *UpCloud) ParseMetadata(metadata *MetadataConfig) (*runtime.PlatformNetworkConfig, error)

ParseMetadata converts Upcloud metadata into platform network configuration.

Jump to

Keyboard shortcuts

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