Merge pull request #106 from zryfish/fix_router_service_label

fix router service label
This commit is contained in:
zryfish
2018-06-21 13:31:51 +08:00
committed by GitHub
2 changed files with 27 additions and 2 deletions

View File

@@ -27,6 +27,8 @@ import (
"k8s.io/apimachinery/pkg/labels"
"k8s.io/client-go/informers"
"k8s.io/client-go/tools/cache"
"kubesphere.io/kubesphere/pkg/models/metrics"
)
const inUse = "in_use_pods"
@@ -264,6 +266,22 @@ func (ctl *PodCtl) ListWithConditions(conditions string, paging *Paging) (int, i
listWithConditions(ctl.DB, &total, &object, &list, conditions, paging, order)
ch := make(chan metrics.PodMetrics)
for index, _ := range list {
go metrics.GetSinglePodMetrics(list[index].Namespace, list[index].Name, ch)
}
var resultMetrics = make(map[string]metrics.PodMetrics)
for range list {
podMetric := <-ch
resultMetrics[podMetric.PodName] = podMetric
}
for index, _ := range list {
list[index].Metrics = resultMetrics[list[index].Name]
}
return total, list, nil
}

View File

@@ -56,7 +56,7 @@ func GetRouter(namespace string) (*coreV1.Service, error) {
serviceName := constants.IngressControllerPrefix + namespace
opts := metaV1.ListOptions{
LabelSelector: "app=kubesphere,component=ks-router,tier=backend",
LabelSelector: "app=kubesphere,component=ks-router,tier=backend,project=" + namespace,
FieldSelector: "metadata.name=" + serviceName,
}
@@ -129,6 +129,9 @@ func CreateRouter(namespace string, routerType coreV1.ServiceType, annotations m
service.Spec.Type = routerType
service.Name = constants.IngressControllerPrefix + namespace
// Add project selector
service.Spec.Selector["project"] = namespace
service, err := k8sClient.CoreV1().Services(constants.IngressControllerNamespace).Create(service)
if err != nil {
glog.Error(err)
@@ -140,6 +143,10 @@ func CreateRouter(namespace string, routerType coreV1.ServiceType, annotations m
case *extensionsV1beta1.Deployment:
deployment := obj.(*extensionsV1beta1.Deployment)
deployment.Name = constants.IngressControllerPrefix + namespace
// Add project label
deployment.Labels["project"] = namespace
deployment.Spec.Template.Spec.Containers[0].Args = append(deployment.Spec.Template.Spec.Containers[0].Args, "--watch-namespace="+namespace)
glog.Info(deployment.Spec.Template.Spec.Containers[0].Args)
deployment, err := k8sClient.ExtensionsV1beta1().Deployments(constants.IngressControllerNamespace).Create(deployment)
@@ -171,7 +178,7 @@ func DeleteRouter(namespace string) (*coreV1.Service, error) {
deleteOptions := metaV1.DeleteOptions{}
listOptions := metaV1.ListOptions{
LabelSelector: "app=kubesphere,component=kubesphere-router-gateway",
LabelSelector: "app=kubesphere,component=ks-router,tier=backend,project=" + namespace,
FieldSelector: "metadata.name=" + serviceName}
serviceList, err := k8sClient.CoreV1().Services(constants.IngressControllerNamespace).List(listOptions)