Documentation
¶
Index ¶
- Constants
- type AddRepo
- type Arch
- type ContainerImage
- type Context
- type Definition
- type EmbeddedArtifactRegistry
- type Helm
- type HelmAuthentication
- type HelmChart
- type HelmClient
- type HelmRepository
- type Image
- type IsoConfiguration
- type Kubernetes
- type LocalRPMConfig
- type Manifests
- type Network
- type Node
- type NtpConfiguration
- type OperatingSystem
- type OperatingSystemGroup
- type OperatingSystemUser
- type Packages
- type Proxy
- type RawConfiguration
- type Suma
- type Systemd
- type Time
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 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 its smaller related files.
CombustionDir string
// ArtefactsDir is a subdirectory under BuildDir containing the larger Combustion related files.
ArtefactsDir string
// ImageDefinition contains the image definition properties.
ImageDefinition *Definition
NetworkConfigGenerator networkConfigGenerator
NetworkConfiguratorInstaller networkConfiguratorInstaller
KubernetesScriptDownloader kubernetesScriptDownloader
KubernetesArtefactDownloader kubernetesArtefactDownloader
// RPMResolver responsible for resolving rpm/package dependencies
RPMResolver rpmResolver
RPMRepoCreator rpmRepoCreator
HelmClient HelmClient
}
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 Helm ¶
type Helm struct {
Charts []HelmChart `yaml:"charts"`
Repositories []HelmRepository `yaml:"repositories"`
}
type HelmAuthentication ¶
type HelmChart ¶
type HelmChart struct {
Name string `yaml:"name"`
RepositoryName string `yaml:"repositoryName"`
Version string `yaml:"version"`
TargetNamespace string `yaml:"targetNamespace"`
CreateNamespace bool `yaml:"createNamespace"`
InstallationNamespace string `yaml:"installationNamespace"`
ValuesFile string `yaml:"valuesFile"`
}
type HelmClient ¶
type HelmClient interface {
AddRepo(repository *HelmRepository) error
RegistryLogin(repository *HelmRepository) error
Pull(chart string, repository *HelmRepository, version, destDir string) (string, error)
Template(chart, repository, version, valuesFilePath, kubeVersion, targetNamespace string) ([]map[string]any, error)
}
type HelmRepository ¶
type IsoConfiguration ¶
type IsoConfiguration struct {
InstallDevice string `yaml:"installDevice"`
}
type Kubernetes ¶
type LocalRPMConfig ¶
type NtpConfiguration ¶
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 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 RawConfiguration ¶
type RawConfiguration struct {
DiskSize string `yaml:"diskSize"`
}
type Time ¶
type Time struct {
Timezone string `yaml:"timezone"`
NtpConfiguration NtpConfiguration `yaml:"ntp"`
}
Click to show internal directories.
Click to hide internal directories.