mirror of
https://github.com/rancher/rke.git
synced 2025-09-24 04:48:35 +00:00
Merge pull request #78 from moelsayed/check_node_bofore_delete
Warn instead of fatal if deleted host is not found in k8s.
This commit is contained in:
@@ -9,6 +9,7 @@ import (
|
|||||||
"github.com/rancher/rke/k8s"
|
"github.com/rancher/rke/k8s"
|
||||||
"github.com/rancher/types/apis/cluster.cattle.io/v1"
|
"github.com/rancher/types/apis/cluster.cattle.io/v1"
|
||||||
"github.com/sirupsen/logrus"
|
"github.com/sirupsen/logrus"
|
||||||
|
apierrors "k8s.io/apimachinery/pkg/api/errors"
|
||||||
"k8s.io/client-go/kubernetes"
|
"k8s.io/client-go/kubernetes"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -56,13 +57,19 @@ func (h *Host) CleanUp() error {
|
|||||||
|
|
||||||
func DeleteNode(toDeleteHost *Host, kubeClient *kubernetes.Clientset) error {
|
func DeleteNode(toDeleteHost *Host, kubeClient *kubernetes.Clientset) error {
|
||||||
logrus.Infof("[hosts] Cordoning host [%s]", toDeleteHost.Address)
|
logrus.Infof("[hosts] Cordoning host [%s]", toDeleteHost.Address)
|
||||||
err := k8s.CordonUncordon(kubeClient, toDeleteHost.HostnameOverride, true)
|
if _, err := k8s.GetNode(kubeClient, toDeleteHost.HostnameOverride); err != nil {
|
||||||
if err != nil {
|
if apierrors.IsNotFound(err) {
|
||||||
|
logrus.Warnf("[hosts] Can't find node by name [%s]", toDeleteHost.Address)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
|
||||||
|
}
|
||||||
|
if err := k8s.CordonUncordon(kubeClient, toDeleteHost.HostnameOverride, true); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
logrus.Infof("[hosts] Deleting host [%s] from the cluster", toDeleteHost.Address)
|
logrus.Infof("[hosts] Deleting host [%s] from the cluster", toDeleteHost.Address)
|
||||||
err = k8s.DeleteNode(kubeClient, toDeleteHost.HostnameOverride)
|
if err := k8s.DeleteNode(kubeClient, toDeleteHost.HostnameOverride); err != nil {
|
||||||
if err != nil {
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
logrus.Infof("[hosts] Successfully deleted host [%s] from the cluster", toDeleteHost.Address)
|
logrus.Infof("[hosts] Successfully deleted host [%s] from the cluster", toDeleteHost.Address)
|
||||||
|
@@ -18,6 +18,9 @@ func GetNodeList(k8sClient *kubernetes.Clientset) (*v1.NodeList, error) {
|
|||||||
return k8sClient.CoreV1().Nodes().List(metav1.ListOptions{})
|
return k8sClient.CoreV1().Nodes().List(metav1.ListOptions{})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetNode(k8sClient *kubernetes.Clientset, nodeName string) (*v1.Node, error) {
|
||||||
|
return k8sClient.CoreV1().Nodes().Get(nodeName, metav1.GetOptions{})
|
||||||
|
}
|
||||||
func CordonUncordon(k8sClient *kubernetes.Clientset, nodeName string, cordoned bool) error {
|
func CordonUncordon(k8sClient *kubernetes.Clientset, nodeName string, cordoned bool) error {
|
||||||
updated := false
|
updated := false
|
||||||
for retries := 0; retries <= 5; retries++ {
|
for retries := 0; retries <= 5; retries++ {
|
||||||
|
Reference in New Issue
Block a user