validate

package
v1.5.4 Latest Latest
Warning

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

Go to latest
Published: Nov 13, 2022 License: BSD-3-Clause Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ValidateFromByte

func ValidateFromByte(source []byte) (validator.Errors, error)

func ValidateFromFile

func ValidateFromFile(path string) (validator.Errors, error)

Types

type Bond

type Bond struct {
	Interfaces      []string `validate:"requiredWith:Nodes.NetworkInterfaces.Bond"`
	ArpIPTarget     []string
	Mode            string
	XmitHashPolicy  string
	LacpRate        string
	AdActorSystem   string
	ArpValidate     string
	Primary         string
	PrimaryReselect string
	FailOverMac     string
	AdSelect        string
	MiiMon          string `validate:"isUint"`
	Updelay         string `validate:"isUint"`
	Downdelay       string `validate:"isUint"`
	ArpInterval     string `validate:"isUint"`
	ResendIgmp      string `validate:"isUint"`
	MinLinks        string `validate:"isUint"`
	LpInterval      string `validate:"isUint"`
	PacketsPerSlave string `validate:"isUint"`
	NumPeerNotif    string `validate:"isUint"`
	TlbDynamicLb    string `validate:"isUint"`
	AllSlavesActive string `validate:"isUint"`
	UseCarrier      string `validate:"isBool"`
	AdActorSysPrio  string `validate:"isUint"`
	AdUserPortKey   string `validate:"isUint"`
	PeerNotifyDelay string `validate:"isUint"`
}

type CNIConfig

type CNIConfig struct {
	Name string   `validate:"isCNIName|requiredWith:CniConfig"`
	Urls []string `validate:"isURLList|requiredIf:CniConfig.Name,custom"`
}

type Config

type Config struct {
	ClusterName                    string   `validate:"required"`
	TalosVersion                   string   `validate:"isVersion"`
	KubernetesVersion              string   `validate:"isVersion"`
	Endpoint                       string   `validate:"isTalosEndpoint"`
	Domain                         string   `validate:"isDomain"`
	AllowSchedulingOnMasters       string   `validate:"isBool"`
	AllowSchedulingOnControlPlanes string   `validate:"isBool"`
	ClusterPodNets                 []string `validate:"isCIDRList"`
	ClusterSvcNets                 []string `validate:"isCIDRList"`
	CniConfig                      *CNIConfig
	Nodes                          []*Node
	ControlPlane                   struct {
		ConfigPatches []map[string]interface{} `validate:"isRFC6902List"`
	}
	Worker struct {
		ConfigPatches []map[string]interface{} `validate:"isRFC6902List"`
	}
}

func NewFromByte

func NewFromByte(source []byte) (Config, error)

func NewFromFile

func NewFromFile(path string) (c Config, err error)

func (Config) IsCIDRList

func (c Config) IsCIDRList(nets []string) bool

func (Config) IsCNIName

func (c Config) IsCNIName(cni string) bool

func (Config) IsDomain

func (c Config) IsDomain(domain string) bool

func (Config) IsDomainOrIP added in v1.4.4

func (c Config) IsDomainOrIP(domainIP string) bool

func (Config) IsIPList

func (c Config) IsIPList(ips []string) bool

func (Config) IsRFC6902List

func (c Config) IsRFC6902List(input []map[string]interface{}) bool

func (Config) IsTalosEndpoint

func (c Config) IsTalosEndpoint(ep string) bool

func (Config) IsURLList

func (c Config) IsURLList(urls []string) bool

func (Config) IsVersion

func (c Config) IsVersion(version string) bool

func (Config) Messages

func (c Config) Messages() map[string]string

type DhcpOption

type DhcpOption struct {
	RouteMetric string `validate:"isUint"`
	Ipv4        string `validate:"isBool"`
	Ipv6        string `validate:"isBool"`
}

type InstallDiskSelector added in v1.4.3

type InstallDiskSelector struct {
	Size     string
	Name     string
	Model    string
	Modalias string
	UUID     string
	WWID     string
	Type     string
	BusPath  string
}

type NetworkInterface

type NetworkInterface struct {
	Interface   string   `validate:"required_with:Nodes.NetworkInterfaces"`
	Addresses   []string `validate:"isCIDRList"`
	Routes      []Route
	Bond        *Bond
	Vlans       []*Vlan
	Mtu         string `validate:"isIntString"`
	Dhcp        string `validate:"isBool"`
	Ignore      string `validate:"isBool"`
	Dummy       string `validate:"isBool"`
	DhcpOptions *DhcpOption
	Wireguard   *Wireguard
	Vip         *Vip
}

type Node

type Node struct {
	Hostname            string                   `validate:"required"`
	IPAddress           string                   `validate:"required|isDomainOrIP"`
	ControlPlane        string                   `validate:"isBool"`
	InstallDisk         string                   `validate:"requiredWithout:Nodes.InstallDiskSelector"`
	DisableSearchDomain string                   `validate:"isBool"`
	Nameservers         []string                 `validate:"isIPList"`
	ConfigPatches       []map[string]interface{} `validate:"isRFC6902List"`
	NetworkInterfaces   []*NetworkInterface
	InstallDiskSelector *InstallDiskSelector
}

type Peer

type Peer struct {
	PublicKey                   string
	Endpoint                    string
	PersistentKeepAliveInterval time.Duration
	AllowedIPs                  []string
}

type Route

type Route struct {
	Network string `validate:"isCIDR"`
	Gateway string `validate:"isIP"`
	Source  string `validate:"isIP"`
	Metric  string `validate:"isUint"`
}

type Vip

type Vip struct {
	Ip           string `validate:"isIP"`
	EquinixMetal struct {
		ApiToken string
	}
	Hcloud struct {
		ApiToken string
	}
}

type Vlan

type Vlan struct {
	Addresses []string `validate:"isCIDRList"`
	Routes    []*Route
	Dhcp      string `validate:"isBool"`
	VlanId    string `validate:"isUint"`
	Mtu       string `validate:"isUint"`
	Vip       *Vip
}

type Wireguard

type Wireguard struct {
	PrivateKey   string
	ListenPort   string `validate:"isIntString"`
	FirewallMark string `validate:"isIntString"`
	Peers        []*Peer
}

Jump to

Keyboard shortcuts

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