Documentation
¶
Index ¶
- func NewCloudConfigItemRunCmd(cmds []string) cloudConfigItemRunCmd
- func NewCloudConfigItemUsers(name string, keys []string) cloudConfigItemUsers
- func NewCloudInitFile(opts ...cloudInitFileOption) (cloudInitFile, error)
- func SetCustomPermissions(permissions fs.FileMode) options
- func WithBootCmds(cmds []string) cloudInitFileOption
- func WithHostname(hostname string) cloudInitFileOption
- func WithRunCmds(cmds []string) cloudInitFileOption
- func WithSSHPasswordAuth(auth *bool) cloudInitFileOption
- func WithUsers(users []cloudConfigItemUsers) cloudInitFileOption
- func WithWriteFiles(files []CloudConfigItemWriteFiles) cloudInitFileOption
- type CfgManager
- type CloudConfigItemWriteFiles
- type StandardCfgManager
- func (sc *StandardCfgManager) DisableSSHLogin() error
- func (sc *StandardCfgManager) ExtendUserdataBootCmd(commands []string) error
- func (sc *StandardCfgManager) ExtendUserdataRunCmd(commands []string) error
- func (sc *StandardCfgManager) ExtendUserdataWriteFiles(wf []CloudConfigItemWriteFiles) error
- func (sc *StandardCfgManager) ImplantRKE2Config(configName, machineUUID string) error
- func (sc *StandardCfgManager) ImplantSSHKey(sshKeyPath, sshUser string) error
- func (sc *StandardCfgManager) InjectOSRegistration(regCode, email string) error
- func (sc *StandardCfgManager) IsInit() bool
- func (sc *StandardCfgManager) PrepareMetadata(instanceId, hostname string) string
- func (sc *StandardCfgManager) PrepareNetworkConfig(lanports []models.Lanport, subnets map[string]string) (string, error)
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
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
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