change kubectl pods' namespace from kubesphere to kubesphere-controls, and ensure delete kubectl-rs when user is deleted

This commit is contained in:
richardxz
2018-06-26 15:48:01 +08:00
parent f1d5ab3a92
commit 7dc16a532a
5 changed files with 29 additions and 11 deletions

View File

@@ -66,11 +66,11 @@ func preCheck() error {
return err
}
for _, ns := range nsList.Items {
if ns.Name == constants.NameSpace {
if ns.Name == constants.KubeSphereControlNameSpace {
return nil
}
}
namespace := v1.Namespace{ObjectMeta: meta_v1.ObjectMeta{Name: constants.NameSpace}}
namespace := v1.Namespace{ObjectMeta: meta_v1.ObjectMeta{Name: constants.KubeSphereControlNameSpace}}
_, err = k8sClient.CoreV1().Namespaces().Create(&namespace)
return err
}

View File

@@ -26,9 +26,9 @@ type PageableResponse struct {
}
const (
APIVERSION = "v1alpha1"
KIND = "kubesphere"
NameSpace = "kubesphere"
APIVERSION = "v1alpha1"
KIND = "kubesphere"
KubeSphereControlNameSpace = "kubesphere-controls-system"
DataHome = "/etc/kubesphere"
IngressControllerFolder = DataHome + "/ingress-controller"

View File

@@ -34,6 +34,7 @@ import (
"k8s.io/client-go/tools/cache"
"kubesphere.io/kubesphere/pkg/client"
"kubesphere.io/kubesphere/pkg/constants"
"kubesphere.io/kubesphere/pkg/options"
)
@@ -42,7 +43,7 @@ const (
admin = "admin"
editor = "editor"
viewer = "viewer"
kubectlNamespace = "kubesphere"
kubectlNamespace = constants.KubeSphereControlNameSpace
kubectlConfigKey = "config"
openpitrix_runtime = "openpitrix_runtime"
)

View File

@@ -35,6 +35,7 @@ import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"kubesphere.io/kubesphere/pkg/client"
"kubesphere.io/kubesphere/pkg/constants"
"kubesphere.io/kubesphere/pkg/options"
)
@@ -42,7 +43,6 @@ const (
caPath = "/etc/kubernetes/pki/ca.crt"
keyPath = "/etc/kubernetes/pki/ca.key"
clusterName = "kubernetes"
kubectlNamespace = "kubesphere"
kubectlConfigKey = "config"
)
@@ -246,7 +246,7 @@ func CreateKubeConfig(user string) error {
data := map[string]string{"config": string(config)}
var configmap = v1.ConfigMap{TypeMeta: metav1.TypeMeta{Kind: "Configmap", APIVersion: "v1"}, ObjectMeta: metav1.ObjectMeta{Name: user}, Data: data}
_, err = k8sClient.CoreV1().ConfigMaps(kubectlNamespace).Create(&configmap)
_, err = k8sClient.CoreV1().ConfigMaps(constants.KubeSphereControlNameSpace).Create(&configmap)
if err != nil {
glog.Errorln(err)
return err
@@ -257,7 +257,7 @@ func CreateKubeConfig(user string) error {
func GetKubeConfig(user string) (string, error) {
k8sClient := client.NewK8sClient()
configmap, err := k8sClient.CoreV1().ConfigMaps(kubectlNamespace).Get(user, metav1.GetOptions{})
configmap, err := k8sClient.CoreV1().ConfigMaps(constants.KubeSphereControlNameSpace).Get(user, metav1.GetOptions{})
if err != nil {
glog.Errorln(err)
return "", err
@@ -267,7 +267,7 @@ func GetKubeConfig(user string) (string, error) {
func DelKubeConfig(user string) error {
k8sClient := client.NewK8sClient()
err := k8sClient.CoreV1().ConfigMaps(kubectlNamespace).Delete(user, &metav1.DeleteOptions{})
err := k8sClient.CoreV1().ConfigMaps(constants.KubeSphereControlNameSpace).Delete(user, &metav1.DeleteOptions{})
if err != nil {
glog.Errorln(err)
return err

View File

@@ -31,7 +31,7 @@ import (
"kubesphere.io/kubesphere/pkg/options"
)
const namespace = constants.NameSpace
const namespace = constants.KubeSphereControlNameSpace
type kubectlPodInfo struct {
Namespace string `json:"namespace"`
@@ -130,6 +130,14 @@ func DelKubectlPod(user string) error {
return err
}
var replicas int32
replicas = 0
deploy.Spec.Replicas = &replicas
_, err = k8sClient.AppsV1beta2().Deployments(namespace).Update(deploy)
if err != nil {
return err
}
err = k8sClient.AppsV1beta2().Deployments(namespace).Delete(user, &meta_v1.DeleteOptions{})
if err != nil {
return err
@@ -143,6 +151,15 @@ func DelKubectlPod(user string) error {
}
for _, rs := range rsList.Items {
var replicas int32
replicas = 0
rs.Spec.Replicas = &replicas
_, err = k8sClient.AppsV1beta2().ReplicaSets(namespace).Update(&rs)
if err != nil {
glog.Error(err)
return err
}
err = k8sClient.AppsV1beta2().ReplicaSets(namespace).Delete(rs.Name, &meta_v1.DeleteOptions{})
if err != nil {
glog.Error(err)