1
0
mirror of https://github.com/rancher/rke.git synced 2025-07-07 12:28:46 +00:00
rke/cluster/hosts.go

78 lines
2.1 KiB
Go
Raw Normal View History

package cluster
import (
"fmt"
"github.com/Sirupsen/logrus"
"github.com/rancher/rke/hosts"
"github.com/rancher/rke/pki"
"github.com/rancher/rke/services"
)
func (c *Cluster) TunnelHosts() error {
for i := range c.EtcdHosts {
err := c.EtcdHosts[i].TunnelUp()
if err != nil {
return fmt.Errorf("Failed to set up SSH tunneling for Etcd hosts: %v", err)
}
}
for i := range c.ControlPlaneHosts {
err := c.ControlPlaneHosts[i].TunnelUp()
if err != nil {
return fmt.Errorf("Failed to set up SSH tunneling for Control hosts: %v", err)
}
}
for i := range c.WorkerHosts {
err := c.WorkerHosts[i].TunnelUp()
if err != nil {
return fmt.Errorf("Failed to set up SSH tunneling for Worker hosts: %v", err)
}
}
return nil
}
func (c *Cluster) InvertIndexHosts() error {
c.EtcdHosts = make([]hosts.Host, 0)
c.WorkerHosts = make([]hosts.Host, 0)
c.ControlPlaneHosts = make([]hosts.Host, 0)
for _, host := range c.Hosts {
for _, role := range host.Role {
logrus.Debugf("Host: " + host.Hostname + " has role: " + role)
2017-11-09 19:50:49 +00:00
newHost := hosts.Host{
RKEConfigHost: host,
}
switch role {
case services.ETCDRole:
2017-11-09 19:50:49 +00:00
c.EtcdHosts = append(c.EtcdHosts, newHost)
case services.ControlRole:
2017-11-09 19:50:49 +00:00
c.ControlPlaneHosts = append(c.ControlPlaneHosts, newHost)
case services.WorkerRole:
2017-11-09 19:50:49 +00:00
c.WorkerHosts = append(c.WorkerHosts, newHost)
default:
return fmt.Errorf("Failed to recognize host [%s] role %s", host.Hostname, role)
}
}
}
return nil
}
2017-11-09 19:50:49 +00:00
func (c *Cluster) SetUpHosts() error {
if c.AuthType == X509AuthenticationProvider {
logrus.Infof("[certificates] Deploying kubernetes certificates to Cluster nodes")
err := pki.DeployCertificatesOnMasters(c.ControlPlaneHosts, c.Certificates)
if err != nil {
return err
}
err = pki.DeployCertificatesOnWorkers(c.WorkerHosts, c.Certificates)
if err != nil {
return err
}
err = pki.DeployAdminConfig(c.Certificates[pki.KubeAdminCommonName].Config)
if err != nil {
return err
}
logrus.Infof("[certificates] Successfully deployed kubernetes certificates to Cluster nodes")
}
return nil
}