Documentation ¶
Index ¶
- type BMC
- type Cluster
- type Config
- type ConfigVCSA
- type ConfigVM
- type Credentials
- type GatewayNode
- type Host
- type Installation
- type InstallationManager
- type MDMNode
- type Network
- type NetworkMap
- type Node
- type SDCESXi
- func (sdc *SDCESXi) Command(cmd string) (*sshclient.CommandOutput, error)
- func (sdc *SDCESXi) DeploySVM(template *object.VirtualMachine, sds *SDSNode) (*object.VirtualMachine, error)
- func (sdc *SDCESXi) DeployTemplate(fpath string) (*object.VirtualMachine, error)
- func (sdc *SDCESXi) EnablePassthrough(devname string) error
- func (sdc *SDCESXi) RemoveSDS() error
- func (sdc *SDCESXi) SDS() (*object.VirtualMachine, error)
- func (sdc *SDCESXi) UpdateScini(mdmIP string, guid string) error
- type SDSConfig
- type SDSNode
- type ScaleIO
- type SecureShellClient
- type TBNode
- type Target
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Cluster ¶
type Cluster struct { MDMs []*MDMNode TBs []*TBNode SDSs []*SDSNode ScaleIO *ScaleIO IsCluster bool Options *clusterOptions }
Cluster describes the properties clusttered MDM/TB group.
func (*Cluster) AddMDMStandby ¶
AddMDMStandby adds the other MDM node
func (*Cluster) SetPassword ¶
SetPassword sets the ScaleIO password
type Config ¶
type Config struct { Vblock string VCSAManagement ConfigVM `json:"vcsa_management"` VCSACustomer ConfigVM `json:"vcsa_customer"` Switches []Credentials Hosts []Host `json:"hosts"` OS string `json:"os_name"` Vlans struct { Trunk []string Native string } DVSPortgroups map[string]string `json:"dvs_portgroups"` OVA string `json:"ova"` DNSSuffixes []string `json:"dns_suffixes"` DNSServers []string `json:"dns_servers"` Domain string Datacenter string VibURL string `json:"vib_url"` PackageURL string `json:"package_url"` }
Config is thre top-level item
type ConfigVCSA ¶
type ConfigVCSA struct { OVA string `json:"ova"` FQDN string `json:"fqdn"` IP string `json:"ip"` DNS string `json:"dns"` DeploymentOption string DiskMode string // contains filtered or unexported fields }
ConfigVCSA carries VCSA-specific parameters for building the VM.
type ConfigVM ¶
type ConfigVM struct { Target Target Config struct { VCSA ConfigVCSA `json:"vcsa"` } }
ConfigVM carrries the location where an OVA is installed plus it's config parameters
type Credentials ¶
Credentials is the minimum login info for equipment using username/password auth
type GatewayNode ¶
GatewayNode describes the properties of the VM to be built
func NewGatewayNode ¶
func NewGatewayNode(Username string, Password string, Hostname string, DataCIDR []string, ManagementCIDR string, UseSudo bool, ScaleIO *ScaleIO) *GatewayNode
NewGatewayNode passes a new node object
type Host ¶
type Host struct { Hostname string `json:"hostname"` Location []string `json:"location"` Mac string `json:",omitempty"` BMCIP string `json:"bmc_ip"` BMCUser string `json:"bmc_user"` BMCPass string `json:"bmc_pass"` Datastore string Network NetworkMap SDS SDSConfig `json:"sds"` }
Host describes an (ESXi) host to be built
type Installation ¶
type Installation struct { PrereqCommands []string InstallCommands []string EraseCommands []string SioPackageURL string }
Installation describes commands for install
type InstallationManager ¶
type InstallationManager interface {
Install() error
}
InstallationManager is intended to be an opportunity for DI of installation methods
type Network ¶
type Network struct { Role string Nics []string `json:",omitempty"` Vswitch string `json:",omitempty"` Dvs string `json:",omitempty"` Teaming string `json:",omitempty"` IP string `json:"ip"` Netmask string Gateway string `json:",omitempty"` Vlan int32 `json:",omitempty"` VnicName string `json:"vnic_name,omitempty"` }
Network is a ScaleIO network object as used on ESXi hosts and SDS Vms
type NetworkMap ¶
type NetworkMap struct { SIODATA1 Network `json:"SIO-DATA1"` SIODATA2 Network `json:"SIO-DATA2"` SIOMGMT Network `json:"SIO-MGMT,omniempty"` }
NetworkMap is a list of ScaleIO-specific networks
type Node ¶
type Node struct { SSH sshclient.ShellConnection Installation Installation DataNetworks []string ManagementNetwork string Hostname string Become string }
Node describes the properties of the VM to be built
func NewNode ¶
func NewNode(Username string, Password string, Hostname string, DataCIDR []string, ManagementCIDR string, UseSudo bool) *Node
NewNode passes a new node object
func (*Node) DataIPString ¶
DataIPString is a commaseparated list of IPs for this node
func (*Node) MgmtIPString ¶
MgmtIPString provides the CSV IP string the ScaleIO uses
type SDCESXi ¶
type SDCESXi struct { HostSystem *object.HostSystem Network NetworkMap MdmIPString string IniGUIDStr string Hostname string SSH sshclient.ShellConnection Vcenter *vsphere.Vcenter }
SDCESXi describes the ESXi host being used as ScaleIO init or SDC.
func (*SDCESXi) DeploySVM ¶
func (sdc *SDCESXi) DeploySVM(template *object.VirtualMachine, sds *SDSNode) (*object.VirtualMachine, error)
DeploySVM creates a new VM on this host based on the supplied template VM.
func (*SDCESXi) DeployTemplate ¶
func (sdc *SDCESXi) DeployTemplate(fpath string) (*object.VirtualMachine, error)
DeployTemplate creates a VM with the specified SDS information
func (*SDCESXi) EnablePassthrough ¶
EnablePassthrough makes a hardware device available to VMs if it matches a name pattern
type SDSConfig ¶
type SDSConfig struct { VMName string `json:"vm_name"` NetworkMappings struct { Nat string } `json:"network_mappings"` Network NetworkMap }
SDSConfig describes an SDS VM
type SDSNode ¶
type SDSNode struct {
*Node
}
SDSNode describes the properties of the VM to be built
type SecureShellClient ¶
type SecureShellClient struct {
// contains filtered or unexported fields
}
SecureShellClient describes the basic connection parameters
type Target ¶
type Target struct { ESXi Credentials `json:"esxi"` Portgroup string PortgroupScope string `json:"portgroup_scope"` PortgroupVLAN string `json:"portgroup_vlan"` Datastore string Vcenter Credentials `json:",omitempty"` }
Target descibes the destination where an OVA is deployed.