types

package
v0.35.2 Latest Latest
Warning

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

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

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	MaxVersion = semver.Version{
		Major: 2,
		Minor: 1,
	}
)

Functions

This section is empty.

Types

type Clevis added in v0.35.2

type Clevis struct {
	Tang      []TangServer `json:"tang,omitempty"`
	Tpm2      bool         `json:"tpm2,omitempty"`
	Threshold int          `json:"threshold,omitempty"`
	Custom    Custom       `json:"custom,omitempty"`
}

type Config

type Config struct {
	Ignition Ignition `json:"ignition"`
	Networkd Networkd `json:"networkd,omitempty"`
	Passwd   Passwd   `json:"passwd,omitempty"`
	Storage  Storage  `json:"storage,omitempty"`
	Systemd  Systemd  `json:"systemd,omitempty"`
}

func (Config) Validate

func (c Config) Validate() report.Report

type ConfigReference

type ConfigReference struct {
	Source       string       `json:"source,omitempty"`
	Verification Verification `json:"verification,omitempty"`
}

func (ConfigReference) ValidateSource

func (c ConfigReference) ValidateSource() report.Report

type Create

type Create struct {
	Force   bool           `json:"force,omitempty"`
	Options []CreateOption `json:"options,omitempty"`
}

type CreateOption

type CreateOption string

type Custom added in v0.35.2

type Custom struct {
	Pin          string `json:"pin,omitempty"`
	Config       string `json:"config,omitempty"`
	NeedsNetwork bool   `json:"needs_network,omitempty"`
}

type Device

type Device string

type Directory

type Directory struct {
	Node
	DirectoryEmbedded1
}

func (Directory) ValidateMode

func (d Directory) ValidateMode() report.Report

type DirectoryEmbedded1

type DirectoryEmbedded1 struct {
	Mode int `json:"mode,omitempty"`
}

type Disk

type Disk struct {
	Device     string      `json:"device,omitempty"`
	Partitions []Partition `json:"partitions,omitempty"`
	WipeTable  bool        `json:"wipeTable,omitempty"`
}

func (Disk) Validate

func (n Disk) Validate() report.Report

func (Disk) ValidateDevice

func (n Disk) ValidateDevice() report.Report

func (Disk) ValidatePartitions

func (n Disk) ValidatePartitions() report.Report

type Dropin

type Dropin struct {
	Contents string `json:"contents,omitempty"`
	Name     string `json:"name,omitempty"`
}

func (Dropin) Validate

func (d Dropin) Validate() report.Report

type File

type File struct {
	Node
	FileEmbedded1
}

func (File) ValidateMode

func (f File) ValidateMode() report.Report

type FileContents

type FileContents struct {
	Compression  string       `json:"compression,omitempty"`
	Source       string       `json:"source,omitempty"`
	Verification Verification `json:"verification,omitempty"`
}

func (FileContents) ValidateCompression

func (fc FileContents) ValidateCompression() report.Report

func (FileContents) ValidateSource

func (fc FileContents) ValidateSource() report.Report

type FileEmbedded1

type FileEmbedded1 struct {
	Contents FileContents `json:"contents,omitempty"`
	Mode     int          `json:"mode,omitempty"`
}

type Filesystem

type Filesystem struct {
	Mount *Mount  `json:"mount,omitempty"`
	Name  string  `json:"name,omitempty"`
	Path  *string `json:"path,omitempty"`
}

func (Filesystem) Validate

func (f Filesystem) Validate() report.Report

func (Filesystem) ValidatePath

func (f Filesystem) ValidatePath() report.Report

type HttpHeader added in v0.35.2

type HttpHeader struct {
	Name  string `json:"name,omitempty"`
	Value string `json:"value,omitempty"`
}

type Ignition

type Ignition struct {
	Config   IgnitionConfig `json:"config,omitempty"`
	Timeouts Timeouts       `json:"timeouts,omitempty"`
	Version  string         `json:"version,omitempty"`
}

func (Ignition) Semver

func (v Ignition) Semver() (*semver.Version, error)

func (Ignition) Validate

func (v Ignition) Validate() report.Report

type IgnitionConfig

type IgnitionConfig struct {
	Append  []ConfigReference `json:"append,omitempty"`
	Replace *ConfigReference  `json:"replace,omitempty"`
}

type KeyFile added in v0.35.2

type KeyFile struct {
	Compression  string       `json:"compression,omitempty"`
	Source       string       `json:"source,omitempty"`
	Inline       string       `json:"inline,omitempty"`
	Local        string       `json:"local,omitempty"`
	HttpHeaders  []HttpHeader `json:"http_headers,omitempty"`
	Verification string       `json:"verification,omitempty"`
}
type Link struct {
	Node
	LinkEmbedded1
}

type LinkEmbedded1

type LinkEmbedded1 struct {
	Hard   bool   `json:"hard,omitempty"`
	Target string `json:"target,omitempty"`
}

type Luks added in v0.35.2

type Luks struct {
	Name       string   `json:"name,omitempty"`
	Device     string   `json:"device,omitempty"`
	KeyFile    KeyFile  `json:"key_file,omitempty"`
	Label      string   `json:"label,omitempty"`
	UUID       string   `json:"uuid,omitempty"`
	Options    []string `json:"options,omitempty"`
	WipeVolume bool     `json:"wipe_volume,omitempty"`
	Clevis     Clevis   `json:"clevis,omitempty"`
}

type Mount

type Mount struct {
	Create         *Create       `json:"create,omitempty"`
	Device         string        `json:"device,omitempty"`
	Format         string        `json:"format,omitempty"`
	Label          *string       `json:"label,omitempty"`
	Options        []MountOption `json:"options,omitempty"`
	UUID           *string       `json:"uuid,omitempty"`
	WipeFilesystem bool          `json:"wipeFilesystem,omitempty"`
}

func (Mount) Validate

func (m Mount) Validate() report.Report

func (Mount) ValidateDevice

func (m Mount) ValidateDevice() report.Report

func (Mount) ValidateLabel

func (m Mount) ValidateLabel() report.Report

type MountOption

type MountOption string

type Networkd

type Networkd struct {
	Units []Networkdunit `json:"units,omitempty"`
}

type Networkdunit

type Networkdunit struct {
	Contents string `json:"contents,omitempty"`
	Name     string `json:"name,omitempty"`
}

func (Networkdunit) Validate

func (u Networkdunit) Validate() report.Report

type Node

type Node struct {
	Filesystem string    `json:"filesystem,omitempty"`
	Group      NodeGroup `json:"group,omitempty"`
	Path       string    `json:"path,omitempty"`
	User       NodeUser  `json:"user,omitempty"`
}

func (Node) Depth

func (n Node) Depth() int

func (Node) ValidateFilesystem

func (n Node) ValidateFilesystem() report.Report

func (Node) ValidatePath

func (n Node) ValidatePath() report.Report

type NodeGroup

type NodeGroup struct {
	ID   *int   `json:"id,omitempty"`
	Name string `json:"name,omitempty"`
}

func (NodeGroup) Validate

func (ng NodeGroup) Validate() report.Report

type NodeUser

type NodeUser struct {
	ID   *int   `json:"id,omitempty"`
	Name string `json:"name,omitempty"`
}

func (NodeUser) Validate

func (nu NodeUser) Validate() report.Report

type Partition

type Partition struct {
	GUID     string `json:"guid,omitempty"`
	Label    string `json:"label,omitempty"`
	Number   int    `json:"number,omitempty"`
	Size     int    `json:"size,omitempty"`
	Start    int    `json:"start,omitempty"`
	TypeGUID string `json:"typeGuid,omitempty"`
}

func (Partition) ValidateGUID

func (p Partition) ValidateGUID() report.Report

func (Partition) ValidateLabel

func (p Partition) ValidateLabel() report.Report

func (Partition) ValidateTypeGUID

func (p Partition) ValidateTypeGUID() report.Report

type Passwd

type Passwd struct {
	Groups []PasswdGroup `json:"groups,omitempty"`
	Users  []PasswdUser  `json:"users,omitempty"`
}

type PasswdGroup

type PasswdGroup struct {
	Gid          *int   `json:"gid,omitempty"`
	Name         string `json:"name,omitempty"`
	PasswordHash string `json:"passwordHash,omitempty"`
	System       bool   `json:"system,omitempty"`
}

type PasswdUser

type PasswdUser struct {
	Create            *Usercreate        `json:"create,omitempty"`
	Gecos             string             `json:"gecos,omitempty"`
	Groups            []PasswdUserGroup  `json:"groups,omitempty"`
	HomeDir           string             `json:"homeDir,omitempty"`
	Name              string             `json:"name,omitempty"`
	NoCreateHome      bool               `json:"noCreateHome,omitempty"`
	NoLogInit         bool               `json:"noLogInit,omitempty"`
	NoUserGroup       bool               `json:"noUserGroup,omitempty"`
	PasswordHash      *string            `json:"passwordHash,omitempty"`
	PrimaryGroup      string             `json:"primaryGroup,omitempty"`
	SSHAuthorizedKeys []SSHAuthorizedKey `json:"sshAuthorizedKeys,omitempty"`
	Shell             string             `json:"shell,omitempty"`
	System            bool               `json:"system,omitempty"`
	UID               *int               `json:"uid,omitempty"`
}

func (PasswdUser) Validate

func (p PasswdUser) Validate() report.Report

type PasswdUserGroup

type PasswdUserGroup string

type Raid

type Raid struct {
	Devices []Device `json:"devices,omitempty"`
	Level   string   `json:"level,omitempty"`
	Name    string   `json:"name,omitempty"`
	Spares  int      `json:"spares,omitempty"`
}

func (Raid) ValidateDevices

func (n Raid) ValidateDevices() report.Report

func (Raid) ValidateLevel

func (n Raid) ValidateLevel() report.Report

type SSHAuthorizedKey

type SSHAuthorizedKey string

type Storage

type Storage struct {
	Directories []Directory  `json:"directories,omitempty"`
	Disks       []Disk       `json:"disks,omitempty"`
	Luks        []Luks       `json:"luks,omitempty"`
	Files       []File       `json:"files,omitempty"`
	Filesystems []Filesystem `json:"filesystems,omitempty"`
	Links       []Link       `json:"links,omitempty"`
	Raid        []Raid       `json:"raid,omitempty"`
}

type Systemd

type Systemd struct {
	Units []Unit `json:"units,omitempty"`
}

type TangServer added in v0.35.2

type TangServer struct {
	URL        string `json:"url,omitempty"`
	Thumbprint string `json:"thumbprint,omitempty"`
}

type Timeouts

type Timeouts struct {
	HTTPResponseHeaders *int `json:"httpResponseHeaders,omitempty"`
	HTTPTotal           *int `json:"httpTotal,omitempty"`
}

type Unit

type Unit struct {
	Contents string   `json:"contents,omitempty"`
	Dropins  []Dropin `json:"dropins,omitempty"`
	Enable   bool     `json:"enable,omitempty"`
	Enabled  *bool    `json:"enabled,omitempty"`
	Mask     bool     `json:"mask,omitempty"`
	Name     string   `json:"name,omitempty"`
}

func (Unit) ValidateContents

func (u Unit) ValidateContents() report.Report

func (Unit) ValidateName

func (u Unit) ValidateName() report.Report

type Usercreate

type Usercreate struct {
	Gecos        string            `json:"gecos,omitempty"`
	Groups       []UsercreateGroup `json:"groups,omitempty"`
	HomeDir      string            `json:"homeDir,omitempty"`
	NoCreateHome bool              `json:"noCreateHome,omitempty"`
	NoLogInit    bool              `json:"noLogInit,omitempty"`
	NoUserGroup  bool              `json:"noUserGroup,omitempty"`
	PrimaryGroup string            `json:"primaryGroup,omitempty"`
	Shell        string            `json:"shell,omitempty"`
	System       bool              `json:"system,omitempty"`
	UID          *int              `json:"uid,omitempty"`
}

type UsercreateGroup

type UsercreateGroup string

type Verification

type Verification struct {
	Hash *string `json:"hash,omitempty"`
}

func (Verification) HashParts

func (v Verification) HashParts() (string, string, error)

HashParts will return the sum and function (in that order) of the hash stored in this Verification, or an error if there is an issue during parsing.

func (Verification) Validate

func (v Verification) Validate() report.Report

Jump to

Keyboard shortcuts

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