Documentation ¶
Index ¶
- Constants
- Variables
- func ApplyAuthzResources(ctx context.Context, rkeConfig v3.RancherKubernetesEngineConfig, ...) error
- func BuildPortChecksFromPortList(host *hosts.Host, portList []string, proto string) []v3.PortCheck
- func BuildRKEConfigNodePlan(ctx context.Context, myCluster *Cluster, host *hosts.Host, ...) v3.RKEConfigNodePlan
- func CheckEtcdHostsChanged(kubeCluster, currentCluster *Cluster) error
- func ConfigureCluster(ctx context.Context, rkeConfig v3.RancherKubernetesEngineConfig, ...) error
- func GeneratePlan(ctx context.Context, rkeConfig *v3.RancherKubernetesEngineConfig, ...) (v3.RKEPlan, error)
- func GetCertificateDirPath(configPath, configDir string) string
- func GetClusterCertsFromKubernetes(ctx context.Context, kubeCluster *Cluster) (map[string]pki.CertificatePKI, error)
- func GetClusterCertsFromNodes(ctx context.Context, kubeCluster *Cluster) (map[string]pki.CertificatePKI, error)
- func GetK8sVersion(localConfigPath string, k8sWrapTransport k8s.WrapTransport) (string, error)
- func GetLocalRKEConfig() *v3.RancherKubernetesEngineConfig
- func GetLocalRKENodeConfig() *v3.RKEConfigNode
- func GetStateFilePath(configPath, configDir string) string
- func IsLegacyKubeAPI(ctx context.Context, kubeCluster *Cluster) (bool, error)
- func IsLocalSnapshot(name string) bool
- func ParseConfig(clusterFile string) (*v3.RancherKubernetesEngineConfig, error)
- func RebuildKubeconfig(ctx context.Context, kubeCluster *Cluster) error
- func ReconcileCluster(ctx context.Context, kubeCluster, currentCluster *Cluster, flags ExternalFlags) error
- func RestartClusterPods(ctx context.Context, kubeCluster *Cluster) error
- func RotateRKECertificates(ctx context.Context, c *Cluster, flags ExternalFlags, clusterState *FullState) error
- func SaveFullStateToKubernetes(ctx context.Context, kubeCluster *Cluster, fullState *FullState) error
- func SetUpAuthentication(ctx context.Context, kubeCluster, currentCluster *Cluster, ...) error
- func ValidateHostCount(c *Cluster) error
- type Cluster
- func (c *Cluster) ApplySystemAddonExecuteJob(addonJob string, addonUpdated bool) error
- func (c *Cluster) BuildEtcdProcess(host *hosts.Host, etcdHosts []*hosts.Host, prefixPath string) v3.Process
- func (c *Cluster) BuildKubeAPIProcess(host *hosts.Host, prefixPath string) v3.Process
- func (c *Cluster) BuildKubeControllerProcess(prefixPath string) v3.Process
- func (c *Cluster) BuildKubeProxyProcess(host *hosts.Host, prefixPath string) v3.Process
- func (c *Cluster) BuildKubeletProcess(host *hosts.Host, prefixPath string) v3.Process
- func (c *Cluster) BuildProxyProcess() v3.Process
- func (c *Cluster) BuildSchedulerProcess(prefixPath string) v3.Process
- func (c *Cluster) BuildSidecarProcess() v3.Process
- func (c *Cluster) CheckClusterPorts(ctx context.Context, currentCluster *Cluster) error
- func (c *Cluster) CleanDeadLogs(ctx context.Context) error
- func (c *Cluster) CleanupFiles(ctx context.Context) error
- func (c *Cluster) CleanupNodes(ctx context.Context) error
- func (c *Cluster) ClusterRemove(ctx context.Context) error
- func (c *Cluster) DeployControlPlane(ctx context.Context) error
- func (c *Cluster) DeployRestoreCerts(ctx context.Context, clusterCerts map[string]pki.CertificatePKI) error
- func (c *Cluster) DeployWorkerPlane(ctx context.Context) error
- func (c *Cluster) GetClusterState(ctx context.Context, fullState *FullState) (*Cluster, error)
- func (c *Cluster) GetHostInfoMap() map[string]types.Info
- func (c *Cluster) GetKubernetesServicesOptions() v3.KubernetesServicesOptions
- func (c *Cluster) InvertIndexHosts() error
- func (c *Cluster) PrePullK8sImages(ctx context.Context) error
- func (c *Cluster) PrepareBackup(ctx context.Context, snapshotPath string) error
- func (c *Cluster) RemoveEtcdSnapshot(ctx context.Context, snapshotName string) error
- func (c *Cluster) RemoveOldNodes(ctx context.Context) error
- func (c *Cluster) RestoreEtcdSnapshot(ctx context.Context, snapshotPath string) error
- func (c *Cluster) SetUpHosts(ctx context.Context, flags ExternalFlags) error
- func (c *Cluster) SetupDialers(ctx context.Context, dailersOptions hosts.DialersOptions) error
- func (c *Cluster) SnapshotEtcd(ctx context.Context, snapshotName string) error
- func (c *Cluster) StoreAddonConfigMap(ctx context.Context, addonYaml string, addonName string) (bool, error)
- func (c *Cluster) SyncLabelsAndTaints(ctx context.Context, currentCluster *Cluster) error
- func (c *Cluster) TunnelHosts(ctx context.Context, flags ExternalFlags) error
- func (c *Cluster) UpdateClusterCurrentState(ctx context.Context, fullState *FullState) error
- func (c *Cluster) ValidateCluster(ctx context.Context) error
- type CoreDNSOptions
- type ExternalFlags
- type FullState
- type KubeDNSOptions
- type MetricsServerOptions
- type State
Constants ¶
View Source
const ( UserAddonResourceName = "rke-user-addon" IngressAddonResourceName = "rke-ingress-controller" UserAddonsIncludeResourceName = "rke-user-includes-addons" IngressAddonJobName = "rke-ingress-controller-deploy-job" MetricsServerAddonJobName = "rke-metrics-addon-deploy-job" MetricsServerAddonResourceName = "rke-metrics-addon" NginxIngressAddonAppName = "ingress-nginx" KubeDNSAddonAppName = "kube-dns" KubeDNSAutoscalerAppName = "kube-dns-autoscaler" CoreDNSAutoscalerAppName = "coredns-autoscaler" KubeAPIAuthAppName = "kube-api-auth" CattleClusterAgentAppName = "cattle-cluster-agent" CoreDNSProvider = "coredns" KubeDNSProvider = "kube-dns" )
View Source
const ( AuthnX509Provider = "x509" AuthnWebhookProvider = "webhook" StateConfigMapName = "cluster-state" FullStateConfigMapName = "full-cluster-state" UpdateStateTimeout = 30 GetStateTimeout = 30 KubernetesClientTimeOut = 30 SyncWorkers = 10 NoneAuthorizationMode = "none" LocalNodeAddress = "127.0.0.1" LocalNodeHostname = "localhost" LocalNodeUser = "root" CloudProvider = "CloudProvider" ControlPlane = "controlPlane" WorkerPlane = "workerPlan" EtcdPlane = "etcd" KubeAppLabel = "k8s-app" AppLabel = "app" NameLabel = "name" WorkerThreads = util.WorkerThreads )
View Source
const ( DefaultServiceClusterIPRange = "10.43.0.0/16" DefaultNodePortRange = "30000-32767" DefaultClusterCIDR = "10.42.0.0/16" DefaultClusterDNSService = "10.43.0.10" DefaultClusterDomain = "cluster.local" DefaultClusterName = "local" DefaultClusterSSHKeyPath = "~/.ssh/id_rsa" DefaultK8sVersion = v3.DefaultK8s DefaultSSHPort = "22" DefaultDockerSockPath = "/var/run/docker.sock" DefaultAuthStrategy = "x509" DefaultAuthorizationMode = "rbac" DefaultAuthnWebhookFile = templates.AuthnWebhook DefaultAuthnCacheTimeout = "5s" DefaultNetworkPlugin = "canal" DefaultNetworkCloudProvider = "none" DefaultIngressController = "nginx" DefaultEtcdBackupCreationPeriod = "12h" DefaultEtcdBackupRetentionPeriod = "72h" DefaultEtcdSnapshot = true DefaultMonitoringProvider = "metrics-server" DefaultEtcdBackupConfigIntervalHours = 12 DefaultEtcdBackupConfigRetention = 6 DefaultDNSProvider = "kube-dns" DefaultEtcdHeartbeatIntervalName = "heartbeat-interval" DefaultEtcdHeartbeatIntervalValue = "500" DefaultEtcdElectionTimeoutName = "election-timeout" DefaultEtcdElectionTimeoutValue = "5000" DefaultFlannelBackendVxLan = "vxlan" DefaultFlannelBackendVxLanPort = "8472" DefaultFlannelBackendVxLanVNI = "1" )
View Source
const ( ContainerName = "file-deployer" ServiceName = "file-deploy" ConfigEnv = "FILE_DEPLOY" )
View Source
const ( NetworkPluginResourceName = "rke-network-plugin" PortCheckContainer = "rke-port-checker" EtcdPortListenContainer = "rke-etcd-port-listener" CPPortListenContainer = "rke-cp-port-listener" WorkerPortListenContainer = "rke-worker-port-listener" KubeAPIPort = "6443" EtcdPort1 = "2379" EtcdPort2 = "2380" ScedulerPort = "10251" ControllerPort = "10252" KubeletPort = "10250" KubeProxyPort = "10256" FlannelVxLanPort = 8472 FlannelVxLanNetworkIdentify = 1 ProtocolTCP = "TCP" ProtocolUDP = "UDP" NoNetworkPlugin = "none" FlannelNetworkPlugin = "flannel" FlannelIface = "flannel_iface" FlannelBackendType = "flannel_backend_type" // FlannelBackendPort must be 4789 if using VxLan mode in the cluster with Windows nodes FlannelBackendPort = "flannel_backend_port" // FlannelBackendVxLanNetworkIdentify should be greater than or equal to 4096 if using VxLan mode in the cluster with Windows nodes FlannelBackendVxLanNetworkIdentify = "flannel_backend_vni" CalicoNetworkPlugin = "calico" CalicoCloudProvider = "calico_cloud_provider" CanalNetworkPlugin = "canal" CanalIface = "canal_iface" CanalFlannelBackendType = "canal_flannel_backend_type" // CanalFlannelBackendPort must be 4789 if using Flannel VxLan mode in the cluster with Windows nodes CanalFlannelBackendPort = "canal_flannel_backend_port" // CanalFlannelBackendVxLanNetworkIdentify should be greater than or equal to 4096 if using Flannel VxLan mode in the cluster with Windows nodes CanalFlannelBackendVxLanNetworkIdentify = "canal_flannel_backend_vni" WeaveNetworkPlugin = "weave" WeaveNetowrkAppName = "weave-net" // EtcdEndpoints is the server address for Etcd, used by calico EtcdEndpoints = "EtcdEndpoints" // APIRoot is the kubernetes API address APIRoot = "APIRoot" EtcdClientCert = "EtcdClientCert" EtcdClientKey = "EtcdClientKey" EtcdClientCA = "EtcdClientCA" EtcdClientCertPath = "EtcdClientCertPath" EtcdClientKeyPath = "EtcdClientKeyPath" EtcdClientCAPath = "EtcdClientCAPath" ClientCertPath = "ClientCertPath" ClientKeyPath = "ClientKeyPath" ClientCAPath = "ClientCAPath" KubeCfg = "KubeCfg" ClusterCIDR = "ClusterCIDR" Image = "Image" CNIImage = "CNIImage" NodeImage = "NodeImage" ControllersImage = "ControllersImage" CanalFlannelImg = "CanalFlannelImg" WeaveLoopbackImage = "WeaveLoopbackImage" Calicoctl = "Calicoctl" FlannelInterface = "FlannelInterface" FlannelBackend = "FlannelBackend" CanalInterface = "CanalInterface" WeavePassword = "WeavePassword" RBACConfig = "RBACConfig" ClusterVersion = "ClusterVersion" )
View Source
const ( EtcdPathPrefix = "/registry" ContainerNameLabel = "io.rancher.rke.container.name" CloudConfigSumEnv = "RKE_CLOUD_CONFIG_CHECKSUM" DefaultToolsEntrypoint = "/opt/rke-tools/entrypoint.sh" DefaultToolsEntrypointVersion = "0.1.13" LegacyToolsEntrypoint = "/opt/rke/entrypoint.sh" KubeletDockerConfigEnv = "RKE_KUBELET_DOCKER_CONFIG" KubeletDockerConfigFileEnv = "RKE_KUBELET_DOCKER_FILE" KubeletDockerConfigPath = "/var/lib/kubelet/config.json" EtcdChangedEnvVersion = "v3.3.0" )
View Source
const (
BackupPrepareError = "failed to prepare backup: restoring S3 backups with no cluster level S3 configuration is not supported"
)
View Source
const (
EtcdPlaneNodesReplacedErr = "Etcd plane nodes are replaced. Stopping provisioning. Please restore your cluster from backup."
)
Variables ¶
View Source
var ControlPlanePortList = []string{ KubeAPIPort, }
View Source
var DNSProviders = []string{KubeDNSProvider, CoreDNSProvider}
View Source
var EtcdClientPortList = []string{ EtcdPort1, }
View Source
var EtcdPortList = []string{ EtcdPort1, EtcdPort2, }
View Source
var WorkerPortList = []string{ KubeletPort, }
Functions ¶
func ApplyAuthzResources ¶ added in v0.1.2
func ApplyAuthzResources(ctx context.Context, rkeConfig v3.RancherKubernetesEngineConfig, flags ExternalFlags, dailersOptions hosts.DialersOptions) error
func BuildPortChecksFromPortList ¶ added in v0.1.2
func BuildRKEConfigNodePlan ¶ added in v0.1.2
func CheckEtcdHostsChanged ¶
func ConfigureCluster ¶ added in v0.1.2
func ConfigureCluster( ctx context.Context, rkeConfig v3.RancherKubernetesEngineConfig, crtBundle map[string]pki.CertificatePKI, flags ExternalFlags, dailersOptions hosts.DialersOptions, useKubectl bool) error
func GeneratePlan ¶ added in v0.1.2
func GetCertificateDirPath ¶ added in v0.2.0
func GetClusterCertsFromKubernetes ¶ added in v0.2.0
func GetClusterCertsFromNodes ¶ added in v0.2.0
func GetK8sVersion ¶
func GetK8sVersion(localConfigPath string, k8sWrapTransport k8s.WrapTransport) (string, error)
func GetLocalRKEConfig ¶
func GetLocalRKEConfig() *v3.RancherKubernetesEngineConfig
func GetLocalRKENodeConfig ¶
func GetLocalRKENodeConfig() *v3.RKEConfigNode
func GetStateFilePath ¶ added in v0.2.0
func IsLegacyKubeAPI ¶ added in v0.2.0
func IsLocalSnapshot ¶ added in v0.2.0
func ParseConfig ¶
func ParseConfig(clusterFile string) (*v3.RancherKubernetesEngineConfig, error)
func RebuildKubeconfig ¶ added in v0.2.0
func ReconcileCluster ¶
func ReconcileCluster(ctx context.Context, kubeCluster, currentCluster *Cluster, flags ExternalFlags) error
func RestartClusterPods ¶ added in v0.2.0
func RotateRKECertificates ¶ added in v0.1.18
func SaveFullStateToKubernetes ¶ added in v0.2.0
func SetUpAuthentication ¶
func ValidateHostCount ¶ added in v0.1.2
Types ¶
type Cluster ¶
type Cluster struct { AuthnStrategies map[string]bool ConfigPath string ConfigDir string CloudConfigFile string ControlPlaneHosts []*hosts.Host Certificates map[string]pki.CertificatePKI CertificateDir string ClusterDomain string ClusterCIDR string ClusterDNSServer string DinD bool DockerDialerFactory hosts.DialerFactory EtcdHosts []*hosts.Host EtcdReadyHosts []*hosts.Host ForceDeployCerts bool InactiveHosts []*hosts.Host K8sWrapTransport k8s.WrapTransport KubeClient *kubernetes.Clientset KubernetesServiceIP net.IP LocalKubeConfigPath string LocalConnDialerFactory hosts.DialerFactory PrivateRegistriesMap map[string]v3.PrivateRegistry StateFilePath string UpdateWorkersOnly bool UseKubectlDeploy bool v3.RancherKubernetesEngineConfig `yaml:",inline"` WorkerHosts []*hosts.Host }
func GetStateFromKubernetes ¶ added in v0.2.0
func GetStateFromNodes ¶ added in v0.2.0
func InitClusterObject ¶ added in v0.2.0
func InitClusterObject(ctx context.Context, rkeConfig *v3.RancherKubernetesEngineConfig, flags ExternalFlags) (*Cluster, error)
func (*Cluster) ApplySystemAddonExecuteJob ¶ added in v0.1.9
func (*Cluster) BuildEtcdProcess ¶ added in v0.1.2
func (*Cluster) BuildKubeAPIProcess ¶ added in v0.1.2
func (*Cluster) BuildKubeControllerProcess ¶ added in v0.1.2
func (*Cluster) BuildKubeProxyProcess ¶ added in v0.1.2
func (*Cluster) BuildKubeletProcess ¶ added in v0.1.2
func (*Cluster) BuildProxyProcess ¶ added in v0.1.2
func (*Cluster) BuildSchedulerProcess ¶ added in v0.1.2
func (*Cluster) BuildSidecarProcess ¶ added in v0.1.2
func (*Cluster) CheckClusterPorts ¶
func (*Cluster) CleanDeadLogs ¶ added in v0.1.3
func (*Cluster) CleanupFiles ¶ added in v0.2.0
func (*Cluster) CleanupNodes ¶ added in v0.2.0
func (*Cluster) DeployControlPlane ¶
func (*Cluster) DeployRestoreCerts ¶ added in v0.2.0
func (*Cluster) GetClusterState ¶
func (*Cluster) GetHostInfoMap ¶ added in v0.2.0
func (*Cluster) GetKubernetesServicesOptions ¶ added in v0.1.6
func (c *Cluster) GetKubernetesServicesOptions() v3.KubernetesServicesOptions
func (*Cluster) InvertIndexHosts ¶
func (*Cluster) PrePullK8sImages ¶ added in v0.1.1
func (*Cluster) PrepareBackup ¶ added in v0.2.0
func (*Cluster) RemoveEtcdSnapshot ¶ added in v0.2.3
func (*Cluster) RemoveOldNodes ¶ added in v0.2.0
func (*Cluster) RestoreEtcdSnapshot ¶ added in v0.1.7
func (*Cluster) SetUpHosts ¶
func (c *Cluster) SetUpHosts(ctx context.Context, flags ExternalFlags) error
func (*Cluster) SetupDialers ¶ added in v0.2.0
func (*Cluster) SnapshotEtcd ¶ added in v0.1.7
func (*Cluster) StoreAddonConfigMap ¶
func (*Cluster) SyncLabelsAndTaints ¶ added in v0.1.1
func (*Cluster) TunnelHosts ¶
func (c *Cluster) TunnelHosts(ctx context.Context, flags ExternalFlags) error
func (*Cluster) UpdateClusterCurrentState ¶ added in v0.2.0
type CoreDNSOptions ¶ added in v0.2.0
type ExternalFlags ¶ added in v0.2.0
type ExternalFlags struct { CertificateDir string ClusterFilePath string DinD bool ConfigDir string CustomCerts bool DisablePortCheck bool GenerateCSR bool Local bool UpdateOnly bool }
func GetExternalFlags ¶ added in v0.2.0
func GetExternalFlags(local, updateOnly, disablePortCheck bool, configDir, clusterFilePath string) ExternalFlags
type FullState ¶ added in v0.2.0
type FullState struct { DesiredState State `json:"desiredState,omitempty"` CurrentState State `json:"currentState,omitempty"` }
func ReadStateFile ¶ added in v0.2.0
func RebuildState ¶ added in v0.2.0
func RebuildState(ctx context.Context, rkeConfig *v3.RancherKubernetesEngineConfig, oldState *FullState, flags ExternalFlags) (*FullState, error)
type KubeDNSOptions ¶ added in v0.2.0
type MetricsServerOptions ¶ added in v0.1.9
type State ¶ added in v0.2.0
type State struct { RancherKubernetesEngineConfig *v3.RancherKubernetesEngineConfig `json:"rkeConfig,omitempty"` CertificatesBundle map[string]pki.CertificatePKI `json:"certificatesBundle,omitempty"` }
Click to show internal directories.
Click to hide internal directories.