Documentation
¶
Overview ¶
Package cloudinit provides cloud-init configuration generation.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Generator ¶
type Generator struct {
// contains filtered or unexported fields
}
Generator generates cloud-init configuration files.
func NewGenerator ¶
NewGenerator creates a new cloud-init generator with embedded templates.
func (*Generator) GenerateMetaData ¶
func (g *Generator) GenerateMetaData(input *MetaDataInput) (string, error)
GenerateMetaData generates cloud-init meta-data.
func (*Generator) GenerateNetworkConfig ¶
func (g *Generator) GenerateNetworkConfig(input *NetworkConfigInput) (string, error)
GenerateNetworkConfig generates network-config YAML (Netplan v2).
func (*Generator) GenerateUserData ¶
func (g *Generator) GenerateUserData(input *UserDataInput) (string, error)
GenerateUserData generates autoinstall user-data YAML.
func (*Generator) ValidateYAML ¶
ValidateYAML validates YAML syntax.
type MetaDataInput ¶
MetaDataInput contains data for meta-data generation.
type NetworkConfigInput ¶
type NetworkConfigInput struct {
InterfaceName string // e.g., "ens192" (default for VMware)
IPAddress string // e.g., "192.168.1.10"
CIDR int // e.g., 24
Gateway string // e.g., "192.168.1.1"
DNS []string // e.g., ["8.8.8.8", "8.8.4.4"]
}
NetworkConfigInput contains data for network-config generation.
type UserDataInput ¶
type UserDataInput struct {
Hostname string
Username string
PasswordHash string // Optional - bcrypt or SHA-512
SSHPublicKeys []string
AllowPasswordSSH bool
Locale string // e.g., "en_US.UTF-8"
Timezone string // e.g., "UTC"
KeyboardLayout string // e.g., "us"
SwapSize string // e.g., "2G", "4G" - used in explicit storage config
SwapSizeGB int // 0 disables swap partition
Packages []string // e.g., ["open-vm-tools", "curl"]
UserGroups string // e.g., "sudo,adm,dialout"
UserShell string // e.g., "/bin/bash"
InterfaceName string // Guest NIC name (e.g., "ens192")
// Data disk mount point (empty = no data disk, uses layout:lvm)
DataDiskMountPath string // e.g., "/data"
// Network (required for package installation during autoinstall)
IPAddress string
CIDR int
Gateway string
DNS []string
}
UserDataInput contains data for autoinstall user-data generation.
Click to show internal directories.
Click to hide internal directories.