Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
水淹萌龙
kubesphere
提交
ece90498
K
kubesphere
项目概览
水淹萌龙
/
kubesphere
与 Fork 源项目一致
Fork自
KubeSphere / kubesphere
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
kubesphere
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
ece90498
编写于
5年前
作者:
H
hongming
提交者:
zryfish
5年前
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
automatically create kubeconfig
Signed-off-by:
N
hongming
<
talonwan@yunify.com
>
上级
da0ca36d
变更
23
隐藏空白更改
内联
并排
Showing
23 changed file
with
124 addition
and
96 deletion
+124
-96
config/crds/tenant_v1alpha1_workspace.yaml
config/crds/tenant_v1alpha1_workspace.yaml
+0
-8
pkg/apis/tenant/v1alpha1/workspace_types.go
pkg/apis/tenant/v1alpha1/workspace_types.go
+1
-4
pkg/apis/tenant/v1alpha1/zz_generated.deepcopy.go
pkg/apis/tenant/v1alpha1/zz_generated.deepcopy.go
+3
-5
pkg/apiserver/resources/application.go
pkg/apiserver/resources/application.go
+8
-4
pkg/apiserver/resources/user.go
pkg/apiserver/resources/user.go
+9
-1
pkg/client/clientset/versioned/clientset.go
pkg/client/clientset/versioned/clientset.go
+3
-3
pkg/client/clientset/versioned/fake/register.go
pkg/client/clientset/versioned/fake/register.go
+4
-4
pkg/client/clientset/versioned/scheme/register.go
pkg/client/clientset/versioned/scheme/register.go
+4
-4
pkg/client/clientset/versioned/typed/tenant/v1alpha1/fake/fake_tenant_client.go
...ersioned/typed/tenant/v1alpha1/fake/fake_tenant_client.go
+3
-3
pkg/client/clientset/versioned/typed/tenant/v1alpha1/fake/fake_workspace.go
...et/versioned/typed/tenant/v1alpha1/fake/fake_workspace.go
+7
-7
pkg/client/clientset/versioned/typed/tenant/v1alpha1/tenant_client.go
...lientset/versioned/typed/tenant/v1alpha1/tenant_client.go
+3
-3
pkg/client/clientset/versioned/typed/tenant/v1alpha1/workspace.go
...nt/clientset/versioned/typed/tenant/v1alpha1/workspace.go
+6
-6
pkg/client/informers/externalversions/factory.go
pkg/client/informers/externalversions/factory.go
+12
-12
pkg/client/informers/externalversions/generic.go
pkg/client/informers/externalversions/generic.go
+4
-4
pkg/client/informers/externalversions/tenant/interface.go
pkg/client/informers/externalversions/tenant/interface.go
+2
-2
pkg/client/informers/externalversions/tenant/v1alpha1/interface.go
...t/informers/externalversions/tenant/v1alpha1/interface.go
+1
-1
pkg/client/informers/externalversions/tenant/v1alpha1/workspace.go
...t/informers/externalversions/tenant/v1alpha1/workspace.go
+8
-8
pkg/client/listers/tenant/v1alpha1/workspace.go
pkg/client/listers/tenant/v1alpha1/workspace.go
+1
-1
pkg/models/applications/applications.go
pkg/models/applications/applications.go
+1
-0
pkg/models/iam/am.go
pkg/models/iam/am.go
+12
-11
pkg/models/iam/im.go
pkg/models/iam/im.go
+19
-5
pkg/models/resources/jobs.go
pkg/models/resources/jobs.go
+9
-0
pkg/models/resources/resources.go
pkg/models/resources/resources.go
+4
-0
未找到文件。
config/crds/tenant_v1alpha1_workspace.yaml
浏览文件 @
ece90498
...
...
@@ -30,16 +30,8 @@ spec:
properties
:
manager
:
type
:
string
quotas
:
type
:
object
type
:
object
status
:
properties
:
quotas
:
description
:
'
INSERT
ADDITIONAL
STATUS
FIELD
-
define
observed
state
of
cluster
Important:
Run
"make"
to
regenerate
code
after
modifying
this
file'
type
:
object
type
:
object
version
:
v1alpha1
status
:
...
...
This diff is collapsed.
Click to expand it.
pkg/apis/tenant/v1alpha1/workspace_types.go
浏览文件 @
ece90498
...
...
@@ -19,7 +19,6 @@
package
v1alpha1
import
(
"k8s.io/api/core/v1"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
)
...
...
@@ -28,15 +27,13 @@ import (
// WorkspaceSpec defines the desired state of Workspace
type
WorkspaceSpec
struct
{
Manager
string
`json:"manager,omitempty"`
Quotas
v1
.
ResourceQuotaSpec
`json:"quotas,omitempty"`
Manager
string
`json:"manager,omitempty"`
}
// WorkspaceStatus defines the observed state of Workspace
type
WorkspaceStatus
struct
{
// INSERT ADDITIONAL STATUS FIELD - define observed state of cluster
// Important: Run "make" to regenerate code after modifying this file
Quotas
v1
.
ResourceQuotaStatus
`json:"quotas,omitempty"`
}
// +genclient
...
...
This diff is collapsed.
Click to expand it.
pkg/apis/tenant/v1alpha1/zz_generated.deepcopy.go
浏览文件 @
ece90498
...
...
@@ -21,7 +21,7 @@ limitations under the License.
package
v1alpha1
import
(
"k8s.io/apimachinery/pkg/runtime"
runtime
"k8s.io/apimachinery/pkg/runtime"
)
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
...
...
@@ -29,8 +29,8 @@ func (in *Workspace) DeepCopyInto(out *Workspace) {
*
out
=
*
in
out
.
TypeMeta
=
in
.
TypeMeta
in
.
ObjectMeta
.
DeepCopyInto
(
&
out
.
ObjectMeta
)
in
.
Spec
.
DeepCopyInto
(
&
out
.
Spec
)
in
.
Status
.
DeepCopyInto
(
&
out
.
Status
)
out
.
Spec
=
in
.
Spec
out
.
Status
=
in
.
Status
return
}
...
...
@@ -88,7 +88,6 @@ func (in *WorkspaceList) DeepCopyObject() runtime.Object {
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func
(
in
*
WorkspaceSpec
)
DeepCopyInto
(
out
*
WorkspaceSpec
)
{
*
out
=
*
in
in
.
Quotas
.
DeepCopyInto
(
&
out
.
Quotas
)
return
}
...
...
@@ -105,7 +104,6 @@ func (in *WorkspaceSpec) DeepCopy() *WorkspaceSpec {
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func
(
in
*
WorkspaceStatus
)
DeepCopyInto
(
out
*
WorkspaceStatus
)
{
*
out
=
*
in
in
.
Quotas
.
DeepCopyInto
(
&
out
.
Quotas
)
return
}
...
...
This diff is collapsed.
Click to expand it.
pkg/apiserver/resources/application.go
浏览文件 @
ece90498
...
...
@@ -19,6 +19,7 @@ package resources
import
(
"github.com/emicklei/go-restful"
"github.com/golang/glog"
"k8s.io/api/core/v1"
"kubesphere.io/kubesphere/pkg/constants"
"kubesphere.io/kubesphere/pkg/errors"
...
...
@@ -42,6 +43,7 @@ func ApplicationHandler(req *restful.Request, resp *restful.Response) {
if
len
(
clusterId
)
>
0
{
app
,
err
:=
applications
.
GetApp
(
clusterId
)
if
err
!=
nil
{
glog
.
Errorln
(
"get application error"
,
err
)
resp
.
WriteHeaderAndEntity
(
http
.
StatusInternalServerError
,
errors
.
Wrap
(
err
))
return
}
...
...
@@ -66,14 +68,13 @@ func NamespacedApplicationHandler(req *restful.Request, resp *restful.Response)
clusterId
:=
req
.
QueryParameter
(
"cluster_id"
)
conditions
,
err
:=
params
.
ParseConditions
(
req
.
QueryParameter
(
params
.
ConditionsParam
))
if
err
!=
nil
{
if
err
!=
nil
{
resp
.
WriteHeaderAndEntity
(
http
.
StatusBadRequest
,
errors
.
Wrap
(
err
))
return
}
resp
.
WriteHeaderAndEntity
(
http
.
StatusBadRequest
,
errors
.
Wrap
(
err
))
return
}
if
len
(
clusterId
)
>
0
{
app
,
err
:=
applications
.
GetApp
(
clusterId
)
if
err
!=
nil
{
glog
.
Errorln
(
"get app failed"
,
err
)
resp
.
WriteHeaderAndEntity
(
http
.
StatusInternalServerError
,
errors
.
Wrap
(
err
))
return
}
...
...
@@ -84,6 +85,7 @@ func NamespacedApplicationHandler(req *restful.Request, resp *restful.Response)
namespace
,
err
:=
resources
.
GetResource
(
""
,
resources
.
Namespaces
,
namespaceName
)
if
err
!=
nil
{
glog
.
Errorln
(
"get namespace failed"
,
err
)
resp
.
WriteHeaderAndEntity
(
http
.
StatusInternalServerError
,
errors
.
Wrap
(
err
))
return
}
...
...
@@ -95,6 +97,7 @@ func NamespacedApplicationHandler(req *restful.Request, resp *restful.Response)
}
if
runtimeId
==
""
{
glog
.
Errorln
(
"runtime id not found"
)
resp
.
WriteHeaderAndEntity
(
http
.
StatusInternalServerError
,
errors
.
New
(
"openpitrix runtime not init"
))
return
}
...
...
@@ -102,6 +105,7 @@ func NamespacedApplicationHandler(req *restful.Request, resp *restful.Response)
result
,
err
:=
applications
.
ListApplication
(
runtimeId
,
conditions
,
limit
,
offset
)
if
err
!=
nil
{
glog
.
Errorln
(
"list applications failed"
,
err
)
resp
.
WriteHeaderAndEntity
(
http
.
StatusInternalServerError
,
errors
.
Wrap
(
err
))
return
}
...
...
This diff is collapsed.
Click to expand it.
pkg/apiserver/resources/user.go
浏览文件 @
ece90498
...
...
@@ -19,6 +19,7 @@ package resources
import
(
"github.com/emicklei/go-restful"
k8serr
"k8s.io/apimachinery/pkg/api/errors"
"net/http"
"kubesphere.io/kubesphere/pkg/errors"
...
...
@@ -47,7 +48,14 @@ func GetKubeconfig(req *restful.Request, resp *restful.Response) {
kubectlConfig
,
err
:=
kubeconfig
.
GetKubeConfig
(
user
)
if
err
!=
nil
{
resp
.
WriteHeaderAndEntity
(
http
.
StatusInternalServerError
,
errors
.
Wrap
(
err
))
if
k8serr
.
IsNotFound
(
err
)
{
// recreate
kubeconfig
.
CreateKubeConfig
(
user
)
resp
.
WriteHeaderAndEntity
(
http
.
StatusNotFound
,
errors
.
Wrap
(
err
))
}
else
{
resp
.
WriteHeaderAndEntity
(
http
.
StatusInternalServerError
,
errors
.
Wrap
(
err
))
}
return
}
...
...
This diff is collapsed.
Click to expand it.
pkg/client/clientset/versioned/clientset.go
浏览文件 @
ece90498
...
...
@@ -19,9 +19,9 @@ limitations under the License.
package
versioned
import
(
"k8s.io/client-go/discovery"
"k8s.io/client-go/rest"
"k8s.io/client-go/util/flowcontrol"
discovery
"k8s.io/client-go/discovery"
rest
"k8s.io/client-go/rest"
flowcontrol
"k8s.io/client-go/util/flowcontrol"
servicemeshv1alpha2
"kubesphere.io/kubesphere/pkg/client/clientset/versioned/typed/servicemesh/v1alpha2"
tenantv1alpha1
"kubesphere.io/kubesphere/pkg/client/clientset/versioned/typed/tenant/v1alpha1"
)
...
...
This diff is collapsed.
Click to expand it.
pkg/client/clientset/versioned/fake/register.go
浏览文件 @
ece90498
...
...
@@ -19,10 +19,10 @@ limitations under the License.
package
fake
import
(
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/runtime/serializer"
v1
"k8s.io/apimachinery/pkg/apis/meta/v1"
runtime
"k8s.io/apimachinery/pkg/runtime"
schema
"k8s.io/apimachinery/pkg/runtime/schema"
serializer
"k8s.io/apimachinery/pkg/runtime/serializer"
utilruntime
"k8s.io/apimachinery/pkg/util/runtime"
servicemeshv1alpha2
"kubesphere.io/kubesphere/pkg/apis/servicemesh/v1alpha2"
tenantv1alpha1
"kubesphere.io/kubesphere/pkg/apis/tenant/v1alpha1"
...
...
This diff is collapsed.
Click to expand it.
pkg/client/clientset/versioned/scheme/register.go
浏览文件 @
ece90498
...
...
@@ -19,10 +19,10 @@ limitations under the License.
package
scheme
import
(
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/runtime/serializer"
v1
"k8s.io/apimachinery/pkg/apis/meta/v1"
runtime
"k8s.io/apimachinery/pkg/runtime"
schema
"k8s.io/apimachinery/pkg/runtime/schema"
serializer
"k8s.io/apimachinery/pkg/runtime/serializer"
utilruntime
"k8s.io/apimachinery/pkg/util/runtime"
servicemeshv1alpha2
"kubesphere.io/kubesphere/pkg/apis/servicemesh/v1alpha2"
tenantv1alpha1
"kubesphere.io/kubesphere/pkg/apis/tenant/v1alpha1"
...
...
This diff is collapsed.
Click to expand it.
pkg/client/clientset/versioned/typed/tenant/v1alpha1/fake/fake_tenant_client.go
浏览文件 @
ece90498
...
...
@@ -19,9 +19,9 @@ limitations under the License.
package
fake
import
(
"k8s.io/client-go/rest"
"k8s.io/client-go/testing"
"kubesphere.io/kubesphere/pkg/client/clientset/versioned/typed/tenant/v1alpha1"
rest
"k8s.io/client-go/rest"
testing
"k8s.io/client-go/testing"
v1alpha1
"kubesphere.io/kubesphere/pkg/client/clientset/versioned/typed/tenant/v1alpha1"
)
type
FakeTenantV1alpha1
struct
{
...
...
This diff is collapsed.
Click to expand it.
pkg/client/clientset/versioned/typed/tenant/v1alpha1/fake/fake_workspace.go
浏览文件 @
ece90498
...
...
@@ -19,13 +19,13 @@ limitations under the License.
package
fake
import
(
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/labels"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/types"
"k8s.io/apimachinery/pkg/watch"
"k8s.io/client-go/testing"
"kubesphere.io/kubesphere/pkg/apis/tenant/v1alpha1"
v1
"k8s.io/apimachinery/pkg/apis/meta/v1"
labels
"k8s.io/apimachinery/pkg/labels"
schema
"k8s.io/apimachinery/pkg/runtime/schema"
types
"k8s.io/apimachinery/pkg/types"
watch
"k8s.io/apimachinery/pkg/watch"
testing
"k8s.io/client-go/testing"
v1alpha1
"kubesphere.io/kubesphere/pkg/apis/tenant/v1alpha1"
)
// FakeWorkspaces implements WorkspaceInterface
...
...
This diff is collapsed.
Click to expand it.
pkg/client/clientset/versioned/typed/tenant/v1alpha1/tenant_client.go
浏览文件 @
ece90498
...
...
@@ -19,9 +19,9 @@ limitations under the License.
package
v1alpha1
import
(
"k8s.io/apimachinery/pkg/runtime/serializer"
"k8s.io/client-go/rest"
"kubesphere.io/kubesphere/pkg/apis/tenant/v1alpha1"
serializer
"k8s.io/apimachinery/pkg/runtime/serializer"
rest
"k8s.io/client-go/rest"
v1alpha1
"kubesphere.io/kubesphere/pkg/apis/tenant/v1alpha1"
"kubesphere.io/kubesphere/pkg/client/clientset/versioned/scheme"
)
...
...
This diff is collapsed.
Click to expand it.
pkg/client/clientset/versioned/typed/tenant/v1alpha1/workspace.go
浏览文件 @
ece90498
...
...
@@ -21,12 +21,12 @@ package v1alpha1
import
(
"time"
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/types"
"k8s.io/apimachinery/pkg/watch"
"k8s.io/client-go/rest"
"kubesphere.io/kubesphere/pkg/apis/tenant/v1alpha1"
"kubesphere.io/kubesphere/pkg/client/clientset/versioned/scheme"
v1
"k8s.io/apimachinery/pkg/apis/meta/v1"
types
"k8s.io/apimachinery/pkg/types"
watch
"k8s.io/apimachinery/pkg/watch"
rest
"k8s.io/client-go/rest"
v1alpha1
"kubesphere.io/kubesphere/pkg/apis/tenant/v1alpha1"
scheme
"kubesphere.io/kubesphere/pkg/client/clientset/versioned/scheme"
)
// WorkspacesGetter has a method to return a WorkspaceInterface.
...
...
This diff is collapsed.
Click to expand it.
pkg/client/informers/externalversions/factory.go
浏览文件 @
ece90498
...
...
@@ -19,18 +19,18 @@ limitations under the License.
package
externalversions
import
(
"reflect"
"sync"
"time"
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/client-go/tools/cache"
"kubesphere.io/kubesphere/pkg/client/clientset/versioned"
"kubesphere.io/kubesphere/pkg/client/informers/externalversions/internalinterfaces"
"kubesphere.io/kubesphere/pkg/client/informers/externalversions/servicemesh"
"kubesphere.io/kubesphere/pkg/client/informers/externalversions/tenant"
reflect
"reflect"
sync
"sync"
time
"time"
v1
"k8s.io/apimachinery/pkg/apis/meta/v1"
runtime
"k8s.io/apimachinery/pkg/runtime"
schema
"k8s.io/apimachinery/pkg/runtime/schema"
cache
"k8s.io/client-go/tools/cache"
versioned
"kubesphere.io/kubesphere/pkg/client/clientset/versioned"
internalinterfaces
"kubesphere.io/kubesphere/pkg/client/informers/externalversions/internalinterfaces"
servicemesh
"kubesphere.io/kubesphere/pkg/client/informers/externalversions/servicemesh"
tenant
"kubesphere.io/kubesphere/pkg/client/informers/externalversions/tenant"
)
// SharedInformerOption defines the functional option type for SharedInformerFactory.
...
...
This diff is collapsed.
Click to expand it.
pkg/client/informers/externalversions/generic.go
浏览文件 @
ece90498
...
...
@@ -21,10 +21,10 @@ package externalversions
import
(
"fmt"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/client-go/tools/cache"
"kubesphere.io/kubesphere/pkg/apis/servicemesh/v1alpha2"
"kubesphere.io/kubesphere/pkg/apis/tenant/v1alpha1"
schema
"k8s.io/apimachinery/pkg/runtime/schema"
cache
"k8s.io/client-go/tools/cache"
v1alpha2
"kubesphere.io/kubesphere/pkg/apis/servicemesh/v1alpha2"
v1alpha1
"kubesphere.io/kubesphere/pkg/apis/tenant/v1alpha1"
)
// GenericInformer is type of SharedIndexInformer which will locate and delegate to other
...
...
This diff is collapsed.
Click to expand it.
pkg/client/informers/externalversions/tenant/interface.go
浏览文件 @
ece90498
...
...
@@ -19,8 +19,8 @@ limitations under the License.
package
tenant
import
(
"kubesphere.io/kubesphere/pkg/client/informers/externalversions/internalinterfaces"
"kubesphere.io/kubesphere/pkg/client/informers/externalversions/tenant/v1alpha1"
internalinterfaces
"kubesphere.io/kubesphere/pkg/client/informers/externalversions/internalinterfaces"
v1alpha1
"kubesphere.io/kubesphere/pkg/client/informers/externalversions/tenant/v1alpha1"
)
// Interface provides access to each of this group's versions.
...
...
This diff is collapsed.
Click to expand it.
pkg/client/informers/externalversions/tenant/v1alpha1/interface.go
浏览文件 @
ece90498
...
...
@@ -19,7 +19,7 @@ limitations under the License.
package
v1alpha1
import
(
"kubesphere.io/kubesphere/pkg/client/informers/externalversions/internalinterfaces"
internalinterfaces
"kubesphere.io/kubesphere/pkg/client/informers/externalversions/internalinterfaces"
)
// Interface provides access to all the informers in this group version.
...
...
This diff is collapsed.
Click to expand it.
pkg/client/informers/externalversions/tenant/v1alpha1/workspace.go
浏览文件 @
ece90498
...
...
@@ -19,16 +19,16 @@ limitations under the License.
package
v1alpha1
import
(
"time"
time
"time"
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/watch"
"k8s.io/client-go/tools/cache"
v1
"k8s.io/apimachinery/pkg/apis/meta/v1"
runtime
"k8s.io/apimachinery/pkg/runtime"
watch
"k8s.io/apimachinery/pkg/watch"
cache
"k8s.io/client-go/tools/cache"
tenantv1alpha1
"kubesphere.io/kubesphere/pkg/apis/tenant/v1alpha1"
"kubesphere.io/kubesphere/pkg/client/clientset/versioned"
"kubesphere.io/kubesphere/pkg/client/informers/externalversions/internalinterfaces"
"kubesphere.io/kubesphere/pkg/client/listers/tenant/v1alpha1"
versioned
"kubesphere.io/kubesphere/pkg/client/clientset/versioned"
internalinterfaces
"kubesphere.io/kubesphere/pkg/client/informers/externalversions/internalinterfaces"
v1alpha1
"kubesphere.io/kubesphere/pkg/client/listers/tenant/v1alpha1"
)
// WorkspaceInformer provides access to a shared informer and lister for
...
...
This diff is collapsed.
Click to expand it.
pkg/client/listers/tenant/v1alpha1/workspace.go
浏览文件 @
ece90498
...
...
@@ -22,7 +22,7 @@ import (
"k8s.io/apimachinery/pkg/api/errors"
"k8s.io/apimachinery/pkg/labels"
"k8s.io/client-go/tools/cache"
"kubesphere.io/kubesphere/pkg/apis/tenant/v1alpha1"
v1alpha1
"kubesphere.io/kubesphere/pkg/apis/tenant/v1alpha1"
)
// WorkspaceLister helps list Workspaces.
...
...
This diff is collapsed.
Click to expand it.
pkg/models/applications/applications.go
浏览文件 @
ece90498
...
...
@@ -96,6 +96,7 @@ func GetApp(clusterId string) (*Application, error) {
item
,
err
:=
openpitrix
.
GetCluster
(
clusterId
)
if
err
!=
nil
{
glog
.
Error
(
err
)
return
nil
,
err
}
...
...
This diff is collapsed.
Click to expand it.
pkg/models/iam/am.go
浏览文件 @
ece90498
...
...
@@ -30,7 +30,6 @@ import (
"kubesphere.io/kubesphere/pkg/informers"
"kubesphere.io/kubesphere/pkg/models"
"kubesphere.io/kubesphere/pkg/models/iam/policy"
"kubesphere.io/kubesphere/pkg/models/kubeconfig"
"kubesphere.io/kubesphere/pkg/models/kubectl"
"kubesphere.io/kubesphere/pkg/models/resources"
"kubesphere.io/kubesphere/pkg/params"
...
...
@@ -39,6 +38,7 @@ import (
"kubesphere.io/kubesphere/pkg/utils/sliceutil"
"sort"
"strings"
"time"
)
const
(
...
...
@@ -643,9 +643,6 @@ func CreateClusterRoleBinding(username string, clusterRoleName string) error {
glog
.
Errorln
(
"create cluster role binding"
,
err
)
return
err
}
if
err
:=
kubeconfig
.
CreateKubeConfig
(
username
);
err
!=
nil
{
glog
.
Errorln
(
"create user kubeconfig failed"
,
username
,
err
)
}
if
clusterRoleName
==
constants
.
ClusterAdmin
{
if
err
:=
kubectl
.
CreateKubectlDeploy
(
username
);
err
!=
nil
{
glog
.
Errorln
(
"create user terminal pod failed"
,
username
,
err
)
...
...
@@ -667,17 +664,21 @@ func CreateClusterRoleBinding(username string, clusterRoleName string) error {
return
err
}
if
found
.
RoleRef
.
Name
==
constants
.
ClusterAdmin
{
if
err
:=
kubeconfig
.
DelKubeConfig
(
username
);
err
!=
nil
{
glog
.
Error
(
"delete user kubeconfig failed"
,
username
,
err
)
}
if
err
:=
kubectl
.
DelKubectlDeploy
(
username
);
err
!=
nil
{
glog
.
Error
(
"delete user terminal pod failed"
,
username
,
err
)
}
}
_
,
err
=
k8s
.
Client
()
.
RbacV1
()
.
ClusterRoleBindings
()
.
Create
(
clusterRoleBinding
)
if
err
!=
nil
{
glog
.
Errorln
(
"create cluster role binding"
,
err
)
return
err
maxRetries
:=
3
for
i
:=
0
;
i
<
maxRetries
;
i
++
{
_
,
err
=
k8s
.
Client
()
.
RbacV1
()
.
ClusterRoleBindings
()
.
Create
(
clusterRoleBinding
)
if
apierrors
.
IsAlreadyExists
(
err
)
{
time
.
Sleep
(
300
*
time
.
Millisecond
)
continue
}
if
err
!=
nil
{
glog
.
Errorln
(
"create cluster role binding"
,
err
)
return
err
}
}
return
nil
}
...
...
This diff is collapsed.
Click to expand it.
pkg/models/iam/im.go
浏览文件 @
ece90498
...
...
@@ -24,6 +24,8 @@ import (
"io/ioutil"
"kubesphere.io/kubesphere/pkg/constants"
"kubesphere.io/kubesphere/pkg/informers"
"kubesphere.io/kubesphere/pkg/models/kubeconfig"
"kubesphere.io/kubesphere/pkg/models/kubectl"
"kubesphere.io/kubesphere/pkg/params"
"kubesphere.io/kubesphere/pkg/simple/client/k8s"
"kubesphere.io/kubesphere/pkg/simple/client/redis"
...
...
@@ -499,16 +501,24 @@ func DeleteUser(username string) error {
deleteRequest
:=
ldap
.
NewDelRequest
(
fmt
.
Sprintf
(
"uid=%s,%s"
,
username
,
ldapclient
.
UserSearchBase
),
nil
)
err
=
conn
.
Del
(
deleteRequest
)
if
err
!=
nil
{
if
err
=
conn
.
Del
(
deleteRequest
);
err
!=
nil
{
glog
.
Errorln
(
"delete user"
,
err
)
return
err
}
err
=
deleteRoleBindings
(
username
)
if
err
=
deleteRoleBindings
(
username
);
err
!=
nil
{
glog
.
Errorln
(
"delete user role bindings failed"
,
username
,
err
)
}
if
err
:=
kubeconfig
.
DelKubeConfig
(
username
);
err
!=
nil
{
glog
.
Errorln
(
"delete user kubeconfig failed"
,
username
,
err
)
}
return
err
if
err
:=
kubectl
.
DelKubectlDeploy
(
username
);
err
!=
nil
{
glog
.
Errorln
(
"delete user terminal pod failed"
,
username
,
err
)
}
return
nil
}
func
deleteRoleBindings
(
username
string
)
error
{
...
...
@@ -686,6 +696,10 @@ func CreateUser(user *models.User) (*models.User, error) {
setAvatar
(
user
.
Username
,
user
.
AvatarUrl
)
}
if
err
:=
kubeconfig
.
CreateKubeConfig
(
user
.
Username
);
err
!=
nil
{
glog
.
Errorln
(
"create user kubeconfig failed"
,
user
.
Username
,
err
)
}
if
user
.
ClusterRole
!=
""
{
err
:=
CreateClusterRoleBinding
(
user
.
Username
,
user
.
ClusterRole
)
...
...
This diff is collapsed.
Click to expand it.
pkg/models/resources/jobs.go
浏览文件 @
ece90498
...
...
@@ -21,6 +21,7 @@ import (
"kubesphere.io/kubesphere/pkg/constants"
"kubesphere.io/kubesphere/pkg/informers"
"kubesphere.io/kubesphere/pkg/params"
"kubesphere.io/kubesphere/pkg/utils/k8sutil"
"kubesphere.io/kubesphere/pkg/utils/sliceutil"
"sort"
"strings"
...
...
@@ -60,6 +61,14 @@ func (*jobSearcher) match(match map[string]string, item *batchv1.Job) bool {
if
jobStatus
(
item
)
!=
v
{
return
false
}
case
includeCronJob
:
if
v
==
"false"
&&
k8sutil
.
IsControlledBy
(
item
.
OwnerReferences
,
cronJobKind
,
""
)
{
return
false
}
case
includeS2iRun
:
if
v
==
"false"
&&
k8sutil
.
IsControlledBy
(
item
.
OwnerReferences
,
s2iRunKind
,
""
)
{
return
false
}
case
Name
:
names
:=
strings
.
Split
(
v
,
"|"
)
if
!
sliceutil
.
HasString
(
names
,
item
.
Name
)
{
...
...
This diff is collapsed.
Click to expand it.
pkg/models/resources/resources.go
浏览文件 @
ece90498
...
...
@@ -68,6 +68,10 @@ const (
annotation
=
"annotation"
Keyword
=
"keyword"
status
=
"status"
includeCronJob
=
"includeCronJob"
cronJobKind
=
"CronJob"
s2iRunKind
=
"S2iRun"
includeS2iRun
=
"includeS2iRun"
running
=
"running"
paused
=
"paused"
updating
=
"updating"
...
...
This diff is collapsed.
Click to expand it.
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录
反馈
建议
客服
返回
顶部