Compare commits

...

No commits in common. "master" and "develop" have entirely different histories.

6 changed files with 71 additions and 16 deletions

View File

@ -1,3 +0,0 @@
# pcm-kubernetes-new
> nacos 配置域名为**nacos.jcce.dev**; 服务器hosts配置**nacos.jcce.dev**指向nacos地址即可。

View File

@ -23,7 +23,7 @@ system:
port: 8082
stack: true
name: pcm-kubernetes
adapter-id: 1752857389213683712
adapter-id: 1792747533609472000
core-server-url: http://localhost:8999
# 跨域配置

View File

@ -38,7 +38,7 @@ func NewAPIServer() {
type Cluster struct {
Name string `json:"name"`
Server string `json:"server"`
BearerToken string `json:"bearerToken"`
Token string `json:"token"`
MonitorServer string `json:"monitorServer"`
}
@ -65,7 +65,7 @@ func (s *APIServer) installClusters() {
s.Clusters = append(s.Clusters, &Cluster{
Name: remoteClusterInfo.Name,
Server: remoteClusterInfo.Server,
BearerToken: remoteClusterInfo.Token,
Token: remoteClusterInfo.Token,
MonitorServer: remoteClusterInfo.MonitorServer,
})
}
@ -74,11 +74,11 @@ func (s *APIServer) installClusters() {
func (s *APIServer) installK8sClient() {
for _, cluster := range s.Clusters {
if len(cluster.Server) != 0 && len(cluster.BearerToken) != 0 {
if len(cluster.Server) != 0 && len(cluster.Token) != 0 {
restConfig := &rest.Config{
Timeout: 10 * time.Second,
Host: cluster.Server,
BearerToken: cluster.BearerToken,
BearerToken: cluster.Token,
TLSClientConfig: rest.TLSClientConfig{
Insecure: true,
},
@ -109,3 +109,39 @@ func (s *APIServer) installMonitoring() {
}
}
}
func (s *APIServer) AddClusterInfo(cluster Cluster) error {
// add cluster info
s.Clusters = append(s.Clusters, &cluster)
// add prometheus client
prometheusClient, err := prometheus.NewPrometheus(cluster.MonitorServer)
if err != nil {
return err
}
s.MonitoringClientMap[cluster.Name] = prometheusClient
// add kubernetes client
restConfig := &rest.Config{
Timeout: 10 * time.Second,
Host: cluster.Server,
BearerToken: cluster.Token,
TLSClientConfig: rest.TLSClientConfig{
Insecure: true,
},
}
dynamicClient, err := dynamic.NewForConfig(restConfig)
if err != nil {
global.PCM_LOG.Error("init dynamicClient error.", zap.Error(err))
return err
}
s.DynamicClientMap[cluster.Name] = dynamicClient
clientSet, err := kubernetes.NewForConfig(restConfig)
if err != nil {
global.PCM_LOG.Error("init clientSet error.", zap.Error(err))
return err
}
s.ClientSetMap[cluster.Name] = clientSet
return nil
}

View File

@ -107,15 +107,17 @@ func syncClusterLoadRecords() {
req := SyncClusterLoadReq{
ClusterLoadRecords: res,
}
resp, err := apiserver.ApiServer.HttpClient.R().SetBody(req).
ForceContentType("application/json").
Post(global.PCM_CONFIG.System.CoreServerUrl + "/pcm/v1/core/syncClusterLoad")
if res != nil && len(res) != 0 {
resp, err := apiserver.ApiServer.HttpClient.R().SetBody(req).
ForceContentType("application/json").
Post(global.PCM_CONFIG.System.CoreServerUrl + "/pcm/v1/core/syncClusterLoad")
if err != nil {
logx.Error(err)
}
if resp.StatusCode() != 200 {
logx.Error(resp.String())
if err != nil {
logx.Error(err)
}
if resp.StatusCode() != 200 {
logx.Error(resp.String())
}
}
}

16
routers/api/v1/cluster.go Normal file
View File

@ -0,0 +1,16 @@
package v1
import (
"github.com/gin-gonic/gin"
"jcc-schedule/pkg/apiserver"
"net/http"
)
func AddClusterInfo(ctx *gin.Context) {
var p apiserver.Cluster
if err := ctx.BindJSON(&p); err != nil {
Response(ctx, http.StatusBadRequest, "invalid request params.", "")
return
}
apiserver.ApiServer.AddClusterInfo(p)
}

View File

@ -13,6 +13,10 @@ func InitRouter() *gin.Engine {
//api分组
apiv1 := r.Group("/api/v1")
{
// cluster
cluster := apiv1.Group("cluster")
cluster.POST("/info", v1.AddClusterInfo)
//Namespace
namespace := apiv1.Group("namespace")
namespace.GET("/list", v1.ListNamespace)