Created
June 1, 2020 21:39
-
-
Save j-griffith/3816735b5fda3175af33fe7073dad01a to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
type Node struct { | |
// Role indicates details for the type of node specified (controlPlane, Worker, Bootstrap, LoadBalancer etc) | |
Role string `yaml:"Type"` | |
// CPUCount specifies the number of virtual CPUs to assign to the specified node type (must satsify template requirements) | |
// +optional | |
CPUCount int `yaml:"CPUCount"` | |
// DiskSizeGB specifies the size of the root disk for the specified node type (must satsify template requirements) | |
// +optional | |
DiskSizeGB int `yaml:"DiskSizeGB"` | |
// MemSizeGB specifies the amount of memory in GB for the specified node type (must satsify template requirements) | |
// +optional | |
MemSizeGB int `yaml:"MemSizeGB"` | |
// Networks provides inputs to specify static IP addressing, this will include definitions needed to configure multiple network interfaces on the node | |
// +optional | |
Networks []Network `yaml:"NetworkInterfaces"` | |
} | |
// Network provides a mechanism for assigning static networks to a nodes interface | |
type Network struct { | |
// Type indicates the type of network, Management or Default and Storage | |
Type string `yaml:"Type"` | |
NetworkName string `yaml:"NetworkName"` | |
Domain string `yaml:"Domain"` | |
Gateway string `yaml:"Gateway"` | |
SubnetMask string `yaml:"SubnetMask"` | |
NameServers []string `yaml:"NameServers"` | |
IP string `yaml:"IP"` | |
Device string `yaml:"Device"` | |
} | |
type Cluster struct { | |
// Version indicates the kuberentes version to deploy for the management cluster | |
// +optional | |
Version string `yaml:"Version"` | |
// PodCidr allow an admin to override the default PodCidr and specify their own | |
// +optional | |
PodCidr string `yaml:"PodCidr"` | |
// ServiceCidr allow an admin to override the default ServiceCidr and specify their own | |
// +optional | |
ServiceCidr string `yaml:"ServiceCidr"` | |
// UseMetalLB provides an option to have the current release of metal-lb installed on the management cluster | |
// +optional | |
UseMetalLB bool `yaml:"UseMetalLB"` | |
// LoadBalancerIPs provides a mechanism to specify routable IPs to be used by metal-lb when enabled | |
// +optional | |
LoadBalancerIPs []string `yaml:"LoadBalancerIPs"` | |
// Nodes provides a list of Node objects (control plane and work nodes). | |
// When specifying Node details your node entries MUST align with the | |
// ControlPlane and Node Count parameters | |
// +optional | |
Nodes []Node `yaml:"Nodes"` | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment