cfgutils

package
v1.1.0 Latest Latest
Warning

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

Go to latest
Published: Jun 17, 2026 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewCloudConfigItemRunCmd added in v1.0.0

func NewCloudConfigItemRunCmd(cmds []string) cloudConfigItemRunCmd

NewCloudConfigItemRunCmd creates a runcmd module entry.

func NewCloudConfigItemUsers added in v1.0.0

func NewCloudConfigItemUsers(name string, keys []string) cloudConfigItemUsers

NewCloudConfigItemUsers creates a users section entry.

func NewCloudInitFile added in v1.0.0

func NewCloudInitFile(opts ...cloudInitFileOption) (cloudInitFile, error)

NewCloudInitFile builds cloudInitFile from functional options.

func SetCustomPermissions added in v1.0.0

func SetCustomPermissions(permissions fs.FileMode) options

SetCustomPermissions overrides the default mode used by write_files entries.

func WithBootCmds added in v1.0.0

func WithBootCmds(cmds []string) cloudInitFileOption

WithBootCmds sets the bootcmd field. Returns an error when the provided slice is empty.

func WithHostname added in v1.0.0

func WithHostname(hostname string) cloudInitFileOption

WithHostname sets the hostname field.

func WithRunCmds added in v1.0.0

func WithRunCmds(cmds []string) cloudInitFileOption

WithRunCmds sets the runcmd field. Returns an error when the provided slice is empty.

func WithSSHPasswordAuth added in v1.0.0

func WithSSHPasswordAuth(auth *bool) cloudInitFileOption

WithSSHPasswordAuth sets the ssh_pwauth field.

func WithUsers added in v1.0.0

func WithUsers(users []cloudConfigItemUsers) cloudInitFileOption

WithUsers sets the users field. Returns an error when the provided slice is empty.

func WithWriteFiles added in v1.0.0

func WithWriteFiles(files []CloudConfigItemWriteFiles) cloudInitFileOption

WithWriteFiles sets the write_files field. Returns an error when the provided slice is empty.

Types

type CfgManager

type CfgManager interface {
	IsInit() bool
	PrepareMetadata(instanceId, hostname string) string
	PrepareNetworkConfig(lanports []models.Lanport, subnets map[string]string) (string, error)
	ExtendUserdataBootCmd(commands []string) error
	ExtendUserdataRunCmd(commands []string) error
	ExtendUserdataWriteFiles(wf []CloudConfigItemWriteFiles) error
	ImplantSSHKey(sshKeyPath, sshUser string) error
	ImplantRKE2Config(configName, machineUUID string) error
	InjectOSRegistration(regcode, email string) error
	DisableSSHLogin() error
}

CfgManager interface defines the methods for interacting with the Configuration Manager.

type CloudConfigItemWriteFiles added in v1.0.0

type CloudConfigItemWriteFiles struct {
	Encoding    string
	Content     string
	Permissions string
	Path        string
}

CloudConfigItemWriteFiles defines one write_files entry for cloud-init.

func NewCloudConfigItemWriteFiles added in v1.0.0

func NewCloudConfigItemWriteFiles(path, content string, opts ...options) CloudConfigItemWriteFiles

NewCloudConfigItemWriteFiles creates a write_files module entry.

type StandardCfgManager

type StandardCfgManager struct {
	// contains filtered or unexported fields
}

StandardCfgManager struct holds configuration for Configuration Manager interaction.

func NewStandardCfgManager

func NewStandardCfgManager(devicesSpecJson, userDataFile string) *StandardCfgManager

NewStandardCfgManager Returns new instance of Standard Configuration Manager

func (*StandardCfgManager) DisableSSHLogin added in v1.0.0

func (sc *StandardCfgManager) DisableSSHLogin() error

DisableSSHLogin disables SSH login via password by extending cloud config

func (*StandardCfgManager) ExtendUserdataBootCmd added in v1.0.0

func (sc *StandardCfgManager) ExtendUserdataBootCmd(commands []string) error

func (*StandardCfgManager) ExtendUserdataRunCmd added in v1.0.0

func (sc *StandardCfgManager) ExtendUserdataRunCmd(commands []string) error

func (*StandardCfgManager) ExtendUserdataWriteFiles added in v1.0.0

func (sc *StandardCfgManager) ExtendUserdataWriteFiles(wf []CloudConfigItemWriteFiles) error

func (*StandardCfgManager) ImplantRKE2Config added in v1.0.0

func (sc *StandardCfgManager) ImplantRKE2Config(configName, machineUUID string) error

ImplantRKE2Config extends userdata cloud-config file and prepare files that configure rke2.

func (*StandardCfgManager) ImplantSSHKey added in v1.0.0

func (sc *StandardCfgManager) ImplantSSHKey(sshKeyPath, sshUser string) error

func (*StandardCfgManager) InjectOSRegistration added in v1.0.0

func (sc *StandardCfgManager) InjectOSRegistration(regCode, email string) error
InjectOSRegistration registers SUSE products by extending cloud config with SUSEConnect registration commands.

It extends the section "runcmd" and "write_files" with commands for registration and commands for attaching products. Simplified example:

runcmd:

  • sh /tmp/register-suse-modules.sh
  • rm /tmp/register-suse-modules.sh

write_files:

  • path: /tmp/register-suse-modules.sh permissions: "0755" content: | #!/bin/bash SUSEConnect -r 111-222-333 -e john@doe.com SUSEConnect -p sles/15.7/x86_64 SUSEConnect -p sle-module-basesystem/15.7/x86_64 SUSEConnect -p sle-module-public-cloud/15.7/x86_64

func (*StandardCfgManager) IsInit

func (sc *StandardCfgManager) IsInit() bool

IsInit Returns true if constructor succeed else false

func (*StandardCfgManager) PrepareMetadata

func (sc *StandardCfgManager) PrepareMetadata(instanceId, hostname string) string

PrepareMetadata Returns multiline string with metadata containing instanceId and hostname

func (*StandardCfgManager) PrepareNetworkConfig added in v1.0.0

func (sc *StandardCfgManager) PrepareNetworkConfig(lanports []models.Lanport, subnets map[string]string) (string, error)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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