image

package
v1.0.0-rc1 Latest Latest
Warning

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

Go to latest
Published: Feb 29, 2024 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Index

Constants

View Source
const (
	TypeISO = "iso"
	TypeRAW = "raw"

	ArchTypeX86 Arch = "x86_64"
	ArchTypeARM Arch = "aarch64"

	KubernetesDistroRKE2 = "rke2"
	KubernetesDistroK3S  = "k3s"

	KubernetesNodeTypeServer = "server"
	KubernetesNodeTypeAgent  = "agent"

	CNITypeNone   = "none"
	CNITypeCilium = "cilium"
	CNITypeCanal  = "canal"
	CNITypeCalico = "calico"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type AddRepo

type AddRepo struct {
	URL      string `yaml:"url"`
	Unsigned bool   `yaml:"unsigned"`
}

type Arch

type Arch string

func (Arch) Short

func (a Arch) Short() string

type ContainerImage

type ContainerImage struct {
	Name string `yaml:"name"`
}

type Context

type Context struct {
	// ImageConfigDir is the root directory storing all configuration files.
	ImageConfigDir string
	// BuildDir is the directory used for assembling the different components used in a build.
	BuildDir string
	// CombustionDir is a subdirectory under BuildDir containing the Combustion script and all related files.
	CombustionDir string
	// ImageDefinition contains the image definition properties.
	ImageDefinition              *Definition
	NetworkConfigGenerator       networkConfigGenerator
	NetworkConfiguratorInstaller networkConfiguratorInstaller
	KubernetesScriptInstaller    kubernetesScriptInstaller
	KubernetesArtefactDownloader kubernetesArtefactDownloader
	// RPMResolver responsible for resolving rpm/package dependencies
	RPMResolver    rpmResolver
	RPMRepoCreator rpmRepoCreator
	Helm           registry.Helm
}

type Definition

type Definition struct {
	APIVersion               string                   `yaml:"apiVersion"`
	Image                    Image                    `yaml:"image"`
	OperatingSystem          OperatingSystem          `yaml:"operatingSystem"`
	EmbeddedArtifactRegistry EmbeddedArtifactRegistry `yaml:"embeddedArtifactRegistry"`
	Kubernetes               Kubernetes               `yaml:"kubernetes"`
}

func ParseDefinition

func ParseDefinition(data []byte) (*Definition, error)

type EmbeddedArtifactRegistry

type EmbeddedArtifactRegistry struct {
	ContainerImages []ContainerImage `yaml:"images"`
}

type Image

type Image struct {
	ImageType       string `yaml:"imageType"`
	Arch            Arch   `yaml:"arch"`
	BaseImage       string `yaml:"baseImage"`
	OutputImageName string `yaml:"outputImageName"`
}

type IsoConfiguration

type IsoConfiguration struct {
	InstallDevice string `yaml:"installDevice"`
	Unattended    bool   `yaml:"unattended"`
}

type Kubernetes

type Kubernetes struct {
	Version   string    `yaml:"version"`
	Network   Network   `yaml:"network"`
	Nodes     []Node    `yaml:"nodes"`
	Manifests Manifests `yaml:"manifests"`
}

type LocalRPMConfig

type LocalRPMConfig struct {
	// RPMPath is the path to the directory holding RPMs that will be side-loaded
	RPMPath string
	// GPGKeysPath specifies the path to the directory that holds the GPG keys that the side-loaded RPMs have been signed with
	GPGKeysPath string
}

type Manifests

type Manifests struct {
	URLs []string `yaml:"urls"`
}

type Network

type Network struct {
	APIHost string `yaml:"apiHost"`
	APIVIP  string `yaml:"apiVIP"`
}

type Node

type Node struct {
	Hostname    string `yaml:"hostname"`
	Type        string `yaml:"type"`
	Initialiser bool   `yaml:"initializer"`
}

type NtpConfiguration

type NtpConfiguration struct {
	ForceWait bool     `yaml:"forceWait"`
	Pools     []string `yaml:"pools"`
	Servers   []string `yaml:"servers"`
}

type OperatingSystem

type OperatingSystem struct {
	KernelArgs       []string               `yaml:"kernelArgs"`
	Groups           []OperatingSystemGroup `yaml:"groups"`
	Users            []OperatingSystemUser  `yaml:"users"`
	Systemd          Systemd                `yaml:"systemd"`
	Suma             Suma                   `yaml:"suma"`
	Packages         Packages               `yaml:"packages"`
	IsoConfiguration IsoConfiguration       `yaml:"isoConfiguration"`
	RawConfiguration RawConfiguration       `yaml:"rawConfiguration"`
	Time             Time                   `yaml:"time"`
	Proxy            Proxy                  `yaml:"proxy"`
	Keymap           string                 `yaml:"keymap"`
}

type OperatingSystemGroup

type OperatingSystemGroup struct {
	Name string `yaml:"name"`
	GID  int    `yaml:"gid"`
}

type OperatingSystemUser

type OperatingSystemUser struct {
	Username          string   `yaml:"username"`
	UID               int      `yaml:"uid"`
	EncryptedPassword string   `yaml:"encryptedPassword"`
	SSHKeys           []string `yaml:"sshKeys"`
	PrimaryGroup      string   `yaml:"primaryGroup"`
	SecondaryGroups   []string `yaml:"secondaryGroups"`
	CreateHomeDir     bool     `yaml:"createHomeDir"`
}

type Packages

type Packages struct {
	NoGPGCheck      bool      `yaml:"noGPGCheck"`
	PKGList         []string  `yaml:"packageList"`
	AdditionalRepos []AddRepo `yaml:"additionalRepos"`
	RegCode         string    `yaml:"sccRegistrationCode"`
}

type Proxy

type Proxy struct {
	HTTPProxy  string   `yaml:"httpProxy"`
	HTTPSProxy string   `yaml:"httpsProxy"`
	NoProxy    []string `yaml:"noProxy"`
}

type RawConfiguration

type RawConfiguration struct {
	DiskSize string `yaml:"diskSize"`
}

type Suma

type Suma struct {
	Host          string `yaml:"host"`
	ActivationKey string `yaml:"activationKey"`
}

type Systemd

type Systemd struct {
	Enable  []string `yaml:"enable"`
	Disable []string `yaml:"disable"`
}

type Time

type Time struct {
	Timezone         string           `yaml:"timezone"`
	NtpConfiguration NtpConfiguration `yaml:"ntp"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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