talos/pkg/userdata/install.go
Brad Beam a5d31d97ff
feat: Validate userdata (#593)
* feat: Validate userdata

Signed-off-by: Brad Beam <brad.beam@talos-systems.com>
2019-05-02 13:10:16 -05:00

50 lines
1.6 KiB
Go

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
package userdata
// Install represents the installation options for preparing a node.
type Install struct {
Boot *BootDevice `yaml:"boot,omitempty"`
Root *RootDevice `yaml:"root"`
Data *InstallDevice `yaml:"data,omitempty"`
ExtraDevices []*ExtraDevice `yaml:"extraDevices,omitempty"`
Wipe bool `yaml:"wipe"`
Force bool `yaml:"force"`
}
// BootDevice represents the install options specific to the boot partition.
type BootDevice struct {
InstallDevice `yaml:",inline"`
Kernel string `yaml:"kernel"`
Initramfs string `yaml:"initramfs"`
}
// RootDevice represents the install options specific to the root partition.
type RootDevice struct {
InstallDevice `yaml:",inline"`
Rootfs string `yaml:"rootfs"`
}
// InstallDevice represents the specific directions for each partition.
type InstallDevice struct {
Device string `yaml:"device,omitempty"`
Size uint `yaml:"size,omitempty"`
}
// ExtraDevice represents the options available for partitioning, formatting,
// and mounting extra disks.
type ExtraDevice struct {
Device string `yaml:"device,omitempty"`
Partitions []*ExtraDevicePartition `yaml:"partitions,omitempty"`
}
// ExtraDevicePartition represents the options for a device partition.
type ExtraDevicePartition struct {
Size uint `yaml:"size,omitempty"`
MountPoint string `yaml:"mountpoint,omitempty"`
}