config

package
v0.0.0-...-e2245c7 Latest Latest
Warning

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

Go to latest
Published: Apr 25, 2024 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

View Source
const (
	SimpleStreams            IncusRemoteProtocol = "simplestreams"
	IncusImageVirtualMachine IncusImageType      = "virtual-machine"
	IncusImageContainer      IncusImageType      = "container"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Incus

type Incus struct {
	// UnixSocket is the path on disk to the Incus unix socket. If defined,
	// this is prefered over connecting via HTTPs.
	UnixSocket string `toml:"unix_socket_path" json:"unix-socket-path"`

	// Project name is the name of the project in which this runner will create
	// instances. If this option is not set, the default project will be used.
	// The project used here, must have all required profiles created by you
	// beforehand. For Incus, the "flavor" used in the runner definition for a pool
	// equates to a profile in the desired project.
	ProjectName string `toml:"project_name" json:"project-name"`

	// IncludeDefaultProfile specifies whether or not this provider will always add
	// the "default" profile to any newly created instance.
	IncludeDefaultProfile bool `toml:"include_default_profile" json:"include-default-profile"`

	// URL holds the URL of the remote Incus server.
	// example: https://10.10.10.1:8443/
	URL string `toml:"url" json:"url"`
	// ClientCertificate is the x509 client certificate path used for authentication.
	ClientCertificate string `toml:"client_certificate" json:"client_certificate"`
	// ClientKey is the key used for client certificate authentication.
	ClientKey string `toml:"client_key" json:"client-key"`
	// TLS certificate of the remote server. If not specified, the system CA is used.
	TLSServerCert string `toml:"tls_server_certificate" json:"tls-server-certificate"`
	// TLSCA is the TLS CA certificate when running Incus in PKI mode.
	TLSCA string `toml:"tls_ca" json:"tls-ca"`

	// ImageRemotes is a map to a set of remote image repositories we can use to
	// download images.
	ImageRemotes map[string]IncusImageRemote `toml:"image_remotes" json:"image-remotes"`

	// SecureBoot enables secure boot for VMs spun up using this provider.
	SecureBoot bool `toml:"secure_boot" json:"secure-boot"`

	// InstanceType allows you to choose between a virtual machine and a container
	InstanceType IncusImageType `toml:"instance_type" json:"instance-type"`
}

Incus holds connection information for an Incus cluster.

func NewConfig

func NewConfig(cfgFile string) (*Incus, error)

NewConfig returns a new Config

func (*Incus) GetInstanceType

func (l *Incus) GetInstanceType() IncusImageType

func (*Incus) Validate

func (l *Incus) Validate() error

type IncusImageRemote

type IncusImageRemote struct {
	Address            string              `toml:"addr" json:"addr"`
	Public             bool                `toml:"public" json:"public"`
	Protocol           IncusRemoteProtocol `toml:"protocol" json:"protocol"`
	InsecureSkipVerify bool                `toml:"skip_verify" json:"skip-verify"`
}

IncusImageRemote holds information about a remote server from which Incus can fetch OS images. Typically this will be a simplestreams server.

func (*IncusImageRemote) Validate

func (l *IncusImageRemote) Validate() error

type IncusImageType

type IncusImageType string

func (IncusImageType) String

func (l IncusImageType) String() string

type IncusRemoteProtocol

type IncusRemoteProtocol string

Jump to

Keyboard shortcuts

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