🤬
  • ■ ■ ■ ■ ■
    pkg/service/cluster.go
    skipped 210 lines
    211 211   for i := 0; i < len(clusters); i++ {
    212 212   if (clusters[i].Status == constant.StatusRunning || clusters[i].Status == constant.ClusterNotReady) && !(isPolling == "true") {
    213 213   isOK := false
    214  - isOK, clusters[i].Message = GetClusterStatusByAPI(fmt.Sprintf("%s:%d", clusters[i].SpecConf.LbKubeApiserverIp, clusters[i].SpecConf.KubeApiServerPort))
     214 + addr := fmt.Sprintf("%s:%d", clusters[i].SpecConf.LbKubeApiserverIp, clusters[i].SpecConf.KubeApiServerPort)
     215 + isOK, clusters[i].Message = GetClusterStatusByAPI(addr, &clusters[i])
    215 216   if !isOK {
    216 217   _ = db.DB.Model(&model.Cluster{}).Where("id = ?", clusters[i].ID).Updates(map[string]interface{}{"Status": constant.ClusterNotReady, "Message": clusters[i].Message})
    217 218   }
    skipped 360 lines
  • ■ ■ ■ ■ ■ ■
    pkg/service/cluster_health.go
    skipped 1 lines
    2 2   
    3 3  import (
    4 4   "context"
    5  - "crypto/tls"
    6 5   "fmt"
    7 6   "io/ioutil"
    8 7   "net/http"
    skipped 13 lines
    22 21   v1 "k8s.io/api/core/v1"
    23 22   metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
    24 23   "k8s.io/client-go/kubernetes"
     24 + "k8s.io/client-go/rest"
    25 25  )
    26 26   
    27 27  var (
    skipped 172 lines
    200 200   Name: CheckK8sAPI,
    201 201   Level: StatusSuccess,
    202 202   }
    203  - isOK, err := GetClusterStatusByAPI(fmt.Sprintf("%s:%d", c.SpecConf.LbKubeApiserverIp, c.SpecConf.KubeApiServerPort))
     203 + isOK, err := GetClusterStatusByAPI(fmt.Sprintf("%s:%d", c.SpecConf.LbKubeApiserverIp, c.SpecConf.KubeApiServerPort), &c)
    204 204   if !isOK {
    205 205   result.Msg = err
    206 206   result.Level = StatusError
    skipped 139 lines
    346 346   ri.Msg = fmt.Sprintf("select alive host error %s", err.Error())
    347 347   return
    348 348   }
    349  - isOk, msg := GetClusterStatusByAPI(string(aliveHost))
     349 + isOk, msg := GetClusterStatusByAPI(string(aliveHost), &m)
    350 350   if isOk {
    351 351   if err := db.DB.Model(&model.ClusterSpecConf{}).Where("cluster_id = ?", m.ID).Updates(map[string]interface{}{"lb_kube_apiserver_ip": strings.Split(string(aliveHost), ":")[0]}).Error; err != nil {
    352 352   ri.Result = StatusFailed
    skipped 113 lines
    466 466   ri.Result = StatusRecoverd
    467 467  }
    468 468   
    469  -func GetClusterStatusByAPI(addr string) (bool, string) {
     469 +func GetClusterStatusByAPI(addr string, cluster *model.Cluster) (bool, string) {
    470 470   reqURL := fmt.Sprintf("https://%s/livez", addr)
    471  - tr := &http.Transport{
    472  - TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
     471 + conf, err := clusterUtil.LoadConnConf(cluster, addr)
     472 + if err != nil {
     473 + _, _ = false, fmt.Sprintf("load cluster config error %s", err.Error())
     474 + }
     475 + tls2, err := rest.TransportFor(conf)
     476 + if err != nil {
     477 + _, _ = false, fmt.Sprintf("config transport error %s", err.Error())
    473 478   }
    474  - client := &http.Client{Timeout: 1 * time.Second, Transport: tr}
     479 + client := &http.Client{Timeout: 1 * time.Second, Transport: tls2}
    475 480   request, _ := http.NewRequest("GET", reqURL, nil)
    476 481   response, err := client.Do(request)
    477 482   if err != nil {
    skipped 10 lines
Please wait...
Page is in error, reload to recover