fix bug:db init failed,clusterrolebinding sync error

This commit is contained in:
hongming
2018-11-20 13:03:33 +08:00
parent 7f780bd3fb
commit 49d40f48f7
5 changed files with 60 additions and 29 deletions

View File

@@ -22,7 +22,6 @@ import (
"github.com/emicklei/go-restful"
"github.com/golang/glog"
"k8s.io/api/core/v1"
metaV1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"net"
@@ -38,6 +37,8 @@ import (
"sync"
"syscall"
"k8s.io/api/core/v1"
_ "kubesphere.io/kubesphere/pkg/apis/v1alpha"
"kubesphere.io/kubesphere/pkg/client"
"kubesphere.io/kubesphere/pkg/constants"
@@ -74,36 +75,42 @@ func newKubeSphereServer(options *options.ServerRunOptions) *kubeSphereServer {
func preCheck() error {
k8sClient := client.NewK8sClient()
_, err := k8sClient.CoreV1().Namespaces().Get(constants.KubeSphereControlNamespace, metaV1.GetOptions{})
if err != nil && !errors.IsNotFound(err) {
return err
}
if errors.IsNotFound(err) {
namespace := v1.Namespace{ObjectMeta: metaV1.ObjectMeta{Name: constants.KubeSphereControlNamespace}}
_, err = k8sClient.CoreV1().Namespaces().Create(&namespace)
if err != nil {
if err != nil {
if errors.IsNotFound(err) {
_, err = k8sClient.CoreV1().Namespaces().Create(&v1.Namespace{ObjectMeta: metaV1.ObjectMeta{Name: constants.KubeSphereControlNamespace}})
if err != nil {
return err
}
} else {
return err
}
}
_, err = k8sClient.AppsV1().Deployments(constants.KubeSphereControlNamespace).Get(constants.AdminUserName, metaV1.GetOptions{})
if errors.IsNotFound(err) {
models.CreateKubeConfig(constants.AdminUserName)
models.CreateKubectlDeploy(constants.AdminUserName)
return nil
if err != nil {
if errors.IsNotFound(err) {
if err = models.CreateKubeConfig(constants.AdminUserName); err != nil {
return err
}
if err = models.CreateKubectlDeploy(constants.AdminUserName); err != nil {
return err
}
} else {
return err
}
}
db := client.NewSharedDBClient()
defer db.Close()
if !db.HasTable(&workspaces.WorkspaceNSBinding{}) {
db.CreateTable(&workspaces.WorkspaceNSBinding{})
}
if !db.HasTable(&workspaces.WorkspaceDPBinding{}) {
db.CreateTable(&workspaces.WorkspaceDPBinding{})
if err := db.CreateTable(&workspaces.WorkspaceDPBinding{}).Error; err != nil {
return err
}
}
return err
return nil
}
func registerSwagger() {