cmd

package
v0.12.3 Latest Latest
Warning

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

Go to latest
Published: Feb 21, 2024 License: AGPL-3.0 Imports: 47 Imported by: 0

Documentation

Index

Constants

View Source
const HammerBanner = `` /* 212-byte string literal not displayed */

HammerBanner our mighty logo.

Variables

This section is empty.

Functions

func AddRemoteHandler added in v0.12.1

func AddRemoteHandler(spec *Specification, handler slog.Handler) (slog.Handler, error)

func Run

func Run(log *slog.Logger, spec *Specification, hal hal.InBand) (*event.EventEmitter, error)

Run orchestrates the whole register/wipe/format/burn and reboot process

func StartSSHD

func StartSSHD(log *slog.Logger, ip string) error

StartSSHD will start sshd to be able to diagnose problems on the pxe bootet machine.

Types

type Hammer

type Hammer struct {
	Spec *Specification

	Hal              hal.InBand
	MetalAPIClient   *MetalAPIClient
	EventEmitter     *event.EventEmitter
	LLDPClient       *network.LLDPClient
	FilesystemLayout *models.V1FilesystemLayoutResponse
	// IPAddress is the ip of the eth0 interface during installation
	IPAddress          string
	Started            time.Time
	ChrootPrefix       string
	OsImageDestination string
	// contains filtered or unexported fields
}

Hammer is the machine which forms a bare metal to a working server

func (*Hammer) ConfigureBIOS added in v0.5.3

func (h *Hammer) ConfigureBIOS() error

ConfigureBIOS ensures that UEFI boot is enabled and CSM-support is disabled. It then reboots the machine.

func (*Hammer) EnsureBootOrder

func (h *Hammer) EnsureBootOrder(bootloaderID string) error

EnsureBootOrder ensures that the BIOS boot order is properly set, i.e. first boot from OS image and then PXE boot

func (*Hammer) Install

func (h *Hammer) Install(machine *models.V1MachineResponse) (*api.Bootinfo, error)

Install a given image to the disk by using genuinetools/img

type MetalAPIClient added in v0.10.0

type MetalAPIClient struct {
	Driver metalgo.Client
	// contains filtered or unexported fields
}

func NewMetalAPIClient added in v0.10.0

func NewMetalAPIClient(log *slog.Logger, spec *Specification) (*MetalAPIClient, error)

NewMetalAPIClient fetches the address,hmac and certificates from pixie needed to communicate with metal-api, and returns a new client that can be used to invoke all provided grpc and rest endpoints.

func (*MetalAPIClient) BootService added in v0.10.0

func (c *MetalAPIClient) BootService() v1.BootServiceClient

func (*MetalAPIClient) Event added in v0.10.0

func (*MetalAPIClient) WaitForAllocation added in v0.10.0

func (c *MetalAPIClient) WaitForAllocation(e *event.EventEmitter, machineID string) error

type Specification

type Specification struct {
	// Debug turn on debug log
	Debug bool
	// PixieAPIUrl is the endpoint URL where the pixie reside
	PixieAPIUrl string
	// BGPEnabled if set to true real bgp configuration is configured, otherwise dhcp will be used
	BGPEnabled bool
	// Cidr of BGP interface in DEV Mode
	Cidr string
	// ConsolePassword of the metal user valid for one day.
	ConsolePassword string
	// MachineUUID is the unique identifier of this machine
	MachineUUID string
	// IP of this instance
	IP string
	// MetalConfig is fetched from pixiecore to get the certs for the metal-api and logging config
	MetalConfig *pixiecore.MetalConfig
	// contains filtered or unexported fields
}

Specification defines configuration items of the application

func NewSpec

func NewSpec(log *slog.Logger) *Specification

NewSpec fills Specification with configuration made by kernel commandline

func (*Specification) Log

func (s *Specification) Log()

Log print configuration options

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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