Documentation ¶
Index ¶
- type Controller
- func (c *Controller) AddNode(task concurrency.Task, req *pb.HostDefinition) (string, error)
- func (c *Controller) AddNodes(task concurrency.Task, count int, req *pb.HostDefinition) (hosts []string, err error)
- func (c *Controller) CountNodes(task concurrency.Task) (_ uint, err error)
- func (c *Controller) Create(task concurrency.Task, req Request, f Foreman) (err error)
- func (c *Controller) Delete(task concurrency.Task) (err error)
- func (c *Controller) DeleteLastNode(task concurrency.Task, selectedMaster string) (err error)
- func (c *Controller) DeleteMetadata(task concurrency.Task) (err error)
- func (c *Controller) DeleteSpecificNode(task concurrency.Task, hostID string, selectedMaster string) (err error)
- func (c *Controller) Deserialize(buf []byte) error
- func (c *Controller) FindAvailableMaster(task concurrency.Task) (result string, err error)
- func (c *Controller) FindAvailableNode(task concurrency.Task) (id string, err error)
- func (c *Controller) ForceGetState(task concurrency.Task) (state ClusterState.Enum, err error)
- func (c *Controller) GetIdentity(task concurrency.Task) identity.Identity
- func (c *Controller) GetNetworkConfig(task concurrency.Task) (_ clusterpropsv2.Network, err error)
- func (c *Controller) GetNode(task concurrency.Task, hostID string) (host *pb.Host, err error)
- func (c *Controller) GetProperties(task concurrency.Task) *serialize.JSONProperties
- func (c *Controller) GetService(task concurrency.Task) iaas.Service
- func (c *Controller) GetState(task concurrency.Task) (state ClusterState.Enum, err error)
- func (c *Controller) ListMasterIDs(task concurrency.Task) []string
- func (c *Controller) ListMasterIPs(task concurrency.Task) []string
- func (c *Controller) ListMasterNames(task concurrency.Task) []string
- func (c *Controller) ListMasters(task concurrency.Task) []*clusterpropsv1.Node
- func (c *Controller) ListNodeIDs(task concurrency.Task) []string
- func (c *Controller) ListNodeIPs(task concurrency.Task) []string
- func (c *Controller) ListNodeNames(task concurrency.Task) []string
- func (c *Controller) ListNodes(task concurrency.Task) []*clusterpropsv1.Node
- func (c *Controller) Restore(task concurrency.Task, f Foreman) (err error)
- func (c *Controller) SearchNode(task concurrency.Task, hostID string) bool
- func (c *Controller) Serialize() ([]byte, error)
- func (c *Controller) Start(task concurrency.Task) (err error)
- func (c *Controller) Stop(task concurrency.Task) (err error)
- func (c *Controller) UpdateMetadata(task concurrency.Task, updatefn func() error) (err error)
- type Foreman
- type Makers
- type Metadata
- func (m *Metadata) Acquire()
- func (m *Metadata) Browse(callback func(*Controller) error) error
- func (m *Metadata) Carry(task concurrency.Task, cluster *Controller) *Metadata
- func (m *Metadata) Delete() error
- func (m *Metadata) Get() (_ *Controller, err error)
- func (m *Metadata) GetService() iaas.Service
- func (m *Metadata) OK() bool
- func (m *Metadata) Read(task concurrency.Task, name string) error
- func (m *Metadata) Release()
- func (m *Metadata) Reload(task concurrency.Task) error
- func (m *Metadata) Write() error
- func (m *Metadata) Written() bool
- type Request
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Controller ¶
type Controller struct { identity.Identity Properties *serialize.JSONProperties `json:"properties,omitempty"` // Properties contains additional info about the cluster concurrency.TaskedLock // contains filtered or unexported fields }
Controller contains the information about a cluster
func (*Controller) AddNode ¶
func (c *Controller) AddNode(task concurrency.Task, req *pb.HostDefinition) (string, error)
AddNode adds one node
func (*Controller) AddNodes ¶
func (c *Controller) AddNodes(task concurrency.Task, count int, req *pb.HostDefinition) (hosts []string, err error)
AddNodes adds <count> nodes
func (*Controller) CountNodes ¶
func (c *Controller) CountNodes(task concurrency.Task) (_ uint, err error)
CountNodes returns the number of nodes in the cluster
func (*Controller) Create ¶
func (c *Controller) Create(task concurrency.Task, req Request, f Foreman) (err error)
Create creates the necessary infrastructure of the Cluster
func (*Controller) Delete ¶
func (c *Controller) Delete(task concurrency.Task) (err error)
Delete destroys everything related to the infrastructure built for the Cluster
func (*Controller) DeleteLastNode ¶
func (c *Controller) DeleteLastNode(task concurrency.Task, selectedMaster string) (err error)
DeleteLastNode deletes the last Agent node added
func (*Controller) DeleteMetadata ¶
func (c *Controller) DeleteMetadata(task concurrency.Task) (err error)
DeleteMetadata removes Cluster metadata from Object Storage
func (*Controller) DeleteSpecificNode ¶
func (c *Controller) DeleteSpecificNode(task concurrency.Task, hostID string, selectedMaster string) (err error)
DeleteSpecificNode deletes the node specified by its ID
func (*Controller) Deserialize ¶
func (c *Controller) Deserialize(buf []byte) error
Deserialize reads json code and reinstantiates cluster
func (*Controller) FindAvailableMaster ¶
func (c *Controller) FindAvailableMaster(task concurrency.Task) (result string, err error)
FindAvailableMaster returns the ID of the first master available for execution
func (*Controller) FindAvailableNode ¶
func (c *Controller) FindAvailableNode(task concurrency.Task) (id string, err error)
FindAvailableNode returns the ID of a node available
func (*Controller) ForceGetState ¶
func (c *Controller) ForceGetState(task concurrency.Task) (state ClusterState.Enum, err error)
ForceGetState returns the current state of the Cluster Uses the "maker" GetState from Foreman
func (*Controller) GetIdentity ¶
func (c *Controller) GetIdentity(task concurrency.Task) identity.Identity
GetIdentity returns the core data of a cluster
func (*Controller) GetNetworkConfig ¶
func (c *Controller) GetNetworkConfig(task concurrency.Task) (_ clusterpropsv2.Network, err error)
GetNetworkConfig returns the network configuration of the cluster
func (*Controller) GetNode ¶
func (c *Controller) GetNode(task concurrency.Task, hostID string) (host *pb.Host, err error)
GetNode returns a node based on its ID
func (*Controller) GetProperties ¶
func (c *Controller) GetProperties(task concurrency.Task) *serialize.JSONProperties
GetProperties returns the properties of the cluster
func (*Controller) GetService ¶
func (c *Controller) GetService(task concurrency.Task) iaas.Service
GetService returns the service from the provider
func (*Controller) GetState ¶
func (c *Controller) GetState(task concurrency.Task) (state ClusterState.Enum, err error)
GetState returns the current state of the Cluster
func (*Controller) ListMasterIDs ¶
func (c *Controller) ListMasterIDs(task concurrency.Task) []string
ListMasterIDs lists the IDs of the master nodes in the Cluster
func (*Controller) ListMasterIPs ¶
func (c *Controller) ListMasterIPs(task concurrency.Task) []string
ListMasterIPs lists the IP addresses of the master nodes in the Cluster
func (*Controller) ListMasterNames ¶
func (c *Controller) ListMasterNames(task concurrency.Task) []string
ListMasterNames lists the names of the master nodes in the Cluster
func (*Controller) ListMasters ¶
func (c *Controller) ListMasters(task concurrency.Task) []*clusterpropsv1.Node
ListMasters lists the names of the master nodes in the Cluster
func (*Controller) ListNodeIDs ¶
func (c *Controller) ListNodeIDs(task concurrency.Task) []string
ListNodeIDs lists the IDs of the nodes in the Cluster
func (*Controller) ListNodeIPs ¶
func (c *Controller) ListNodeIPs(task concurrency.Task) []string
ListNodeIPs lists the IP addresses of the nodes in the Cluster
func (*Controller) ListNodeNames ¶
func (c *Controller) ListNodeNames(task concurrency.Task) []string
ListNodeNames lists the names of the nodes in the Cluster
func (*Controller) ListNodes ¶
func (c *Controller) ListNodes(task concurrency.Task) []*clusterpropsv1.Node
ListNodes lists the nodes in the Cluster
func (*Controller) Restore ¶
func (c *Controller) Restore(task concurrency.Task, f Foreman) (err error)
Restore restores full ability of a Cluster controller by binding with appropriate Foreman
func (*Controller) SearchNode ¶
func (c *Controller) SearchNode(task concurrency.Task, hostID string) bool
SearchNode tells if an host ID corresponds to a node of the Cluster
func (*Controller) Serialize ¶
func (c *Controller) Serialize() ([]byte, error)
Serialize converts cluster data to JSON
func (*Controller) Start ¶
func (c *Controller) Start(task concurrency.Task) (err error)
Start starts the Cluster
func (*Controller) Stop ¶
func (c *Controller) Stop(task concurrency.Task) (err error)
Stop stops the Cluster is its current state is compatible
func (*Controller) UpdateMetadata ¶
func (c *Controller) UpdateMetadata(task concurrency.Task, updatefn func() error) (err error)
UpdateMetadata writes Cluster config in Object Storage
type Foreman ¶
type Foreman interface { Cluster() api.Cluster ExecuteScript(*rice.Box, map[string]interface{}, string, map[string]interface{}, string) (int, string, string, error) }
Foreman interface, exposes public method
func NewForeman ¶
func NewForeman(c *Controller, makers Makers) Foreman
NewForeman creates a new *foreman to build a cluster
type Makers ¶
type Makers struct { MinimumRequiredServers func(task concurrency.Task, b Foreman) (int, int, int) // returns masterCount, pruvateNodeCount, publicNodeCount DefaultGatewaySizing func(task concurrency.Task, b Foreman) pb.HostDefinition // sizing of Gateway(s) DefaultMasterSizing func(task concurrency.Task, b Foreman) pb.HostDefinition // default sizing of master(s) DefaultNodeSizing func(task concurrency.Task, b Foreman) pb.HostDefinition // default sizing of node(s) DefaultImage func(task concurrency.Task, b Foreman) string // default image of server(s) GetNodeInstallationScript func(task concurrency.Task, b Foreman, nodeType NodeType.Enum) (string, map[string]interface{}) GetGlobalSystemRequirements func(task concurrency.Task, b Foreman) (string, error) GetTemplateBox func() (*rice.Box, error) ConfigureGateway func(task concurrency.Task, b Foreman) error CreateMaster func(task concurrency.Task, b Foreman, index int) error ConfigureMaster func(task concurrency.Task, b Foreman, index int, pbHost *pb.Host) error UnconfigureMaster func(task concurrency.Task, b Foreman, pbHost *pb.Host) error CreateNode func(task concurrency.Task, b Foreman, index int, pbHost *pb.Host) error ConfigureNode func(task concurrency.Task, b Foreman, index int, pbHost *pb.Host) error UnconfigureNode func(task concurrency.Task, b Foreman, pbHost *pb.Host, selectedMasterID string) error ConfigureCluster func(task concurrency.Task, b Foreman) error UnconfigureCluster func(task concurrency.Task, b Foreman) error JoinMasterToCluster func(task concurrency.Task, b Foreman, pbHost *pb.Host) error JoinNodeToCluster func(task concurrency.Task, b Foreman, pbHost *pb.Host) error LeaveMasterFromCluster func(task concurrency.Task, b Foreman, pbHost *pb.Host) error LeaveNodeFromCluster func(task concurrency.Task, b Foreman, pbHost *pb.Host, selectedMaster string) error GetState func(task concurrency.Task, b Foreman) (ClusterState.Enum, error) }
Makers ...
type Metadata ¶
type Metadata struct {
// contains filtered or unexported fields
}
Metadata is the cluster definition stored in ObjectStorage
func NewMetadata ¶
NewMetadata creates a new Cluster Controller metadata
func (*Metadata) Acquire ¶
func (m *Metadata) Acquire()
Acquire waits until the write lock is available, then locks the metadata
func (*Metadata) Browse ¶
func (m *Metadata) Browse(callback func(*Controller) error) error
Browse walks through cluster folder and executes a callback for each entry
func (*Metadata) Carry ¶
func (m *Metadata) Carry(task concurrency.Task, cluster *Controller) *Metadata
Carry links metadata with cluster struct
func (*Metadata) Get ¶
func (m *Metadata) Get() (_ *Controller, err error)
Get returns the content of the metadata
func (*Metadata) GetService ¶
GetService returns the service used by metadata
func (*Metadata) Read ¶
func (m *Metadata) Read(task concurrency.Task, name string) error
Read reads metadata of cluster named 'name' from Object Storage
func (*Metadata) Reload ¶
func (m *Metadata) Reload(task concurrency.Task) error
Reload reloads the metadata from ObjectStorage It's a good idea to do that just after an Acquire() to be sure to have the latest data
type Request ¶
type Request struct { // Name is the name of the cluster wanted Name string // CIDR defines the network to create CIDR string // Complexity is the implementation wanted, can be Small, Normal or Large Complexity Complexity.Enum // Flavor tells what kind of cluster to create Flavor Flavor.Enum // NetworkID is the ID of the network to use NetworkID string // Tenant contains the name of the tenant Tenant string // KeepOnFailure is set to True to keep resources on cluster creation failure KeepOnFailure bool // GatewaysDef count GatewaysDef *pb.HostDefinition // NodesDef count MastersDef *pb.HostDefinition // NodesDef count NodesDef *pb.HostDefinition // DisabledDefaultFeatures contains the list of features that should be installed by default but we don't want actually DisabledDefaultFeatures map[string]struct{} }
Request defines what kind of Cluster is wanted