Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
KubeSphere
kubesphere
提交
d2b1bf4b
K
kubesphere
项目概览
KubeSphere
/
kubesphere
通知
138
Star
32
Fork
5
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
2
Wiki
分析
仓库
DevOps
项目成员
Pages
K
kubesphere
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
2
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
d2b1bf4b
编写于
9月 29, 2019
作者:
J
Jeff
提交者:
zryfish
9月 29, 2019
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
skip informer creating when corresponding crd not exists
上级
7ad77c32
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
55 addition
and
15 deletion
+55
-15
cmd/ks-apiserver/app/server.go
cmd/ks-apiserver/app/server.go
+41
-10
pkg/simple/client/k8s/kubernetes.go
pkg/simple/client/k8s/kubernetes.go
+14
-5
未找到文件。
cmd/ks-apiserver/app/server.go
浏览文件 @
d2b1bf4b
...
...
@@ -177,6 +177,25 @@ func CreateClientSet(conf *apiserverconfig.Config, stopCh <-chan struct{}) error
func
WaitForResourceSync
(
stopCh
<-
chan
struct
{})
error
{
klog
.
V
(
0
)
.
Info
(
"Start cache objects"
)
discoveryClient
:=
client
.
ClientSets
()
.
K8s
()
.
Discovery
()
apiResourcesList
,
err
:=
discoveryClient
.
ServerResources
()
if
err
!=
nil
{
return
err
}
isResourceExists
:=
func
(
resource
schema
.
GroupVersionResource
)
bool
{
for
_
,
apiResource
:=
range
apiResourcesList
{
if
apiResource
.
GroupVersion
==
resource
.
GroupVersion
()
.
String
()
{
for
_
,
rsc
:=
range
apiResource
.
APIResources
{
if
rsc
.
Name
==
resource
.
Resource
{
return
true
}
}
}
}
return
false
}
informerFactory
:=
informers
.
SharedInformerFactory
()
// resources we have to create informer first
...
...
@@ -212,10 +231,14 @@ func WaitForResourceSync(stopCh <-chan struct{}) error {
}
for
_
,
gvr
:=
range
k8sGVRs
{
_
,
err
:=
informerFactory
.
ForResource
(
gvr
)
if
err
!=
nil
{
klog
.
Errorf
(
"cannot create informer for %s"
,
gvr
)
return
err
if
!
isResourceExists
(
gvr
)
{
klog
.
Warningf
(
"resource %s not exists in the cluster"
,
gvr
)
}
else
{
_
,
err
:=
informerFactory
.
ForResource
(
gvr
)
if
err
!=
nil
{
klog
.
Errorf
(
"cannot create informer for %s"
,
gvr
)
return
err
}
}
}
...
...
@@ -231,9 +254,13 @@ func WaitForResourceSync(stopCh <-chan struct{}) error {
}
for
_
,
gvr
:=
range
s2iGVRs
{
_
,
err
:=
s2iInformerFactory
.
ForResource
(
gvr
)
if
err
!=
nil
{
return
err
if
!
isResourceExists
(
gvr
)
{
klog
.
Warningf
(
"resource %s not exists in the cluster"
,
gvr
)
}
else
{
_
,
err
:=
s2iInformerFactory
.
ForResource
(
gvr
)
if
err
!=
nil
{
return
err
}
}
}
...
...
@@ -251,9 +278,13 @@ func WaitForResourceSync(stopCh <-chan struct{}) error {
}
for
_
,
gvr
:=
range
ksGVRs
{
_
,
err
:=
ksInformerFactory
.
ForResource
(
gvr
)
if
err
!=
nil
{
return
err
if
!
isResourceExists
(
gvr
)
{
klog
.
Warningf
(
"resource %s not exists in the cluster"
,
gvr
)
}
else
{
_
,
err
:=
ksInformerFactory
.
ForResource
(
gvr
)
if
err
!=
nil
{
return
err
}
}
}
...
...
pkg/simple/client/k8s/kubernetes.go
浏览文件 @
d2b1bf4b
...
...
@@ -2,6 +2,7 @@ package k8s
import
(
s2i
"github.com/kubesphere/s2ioperator/pkg/client/clientset/versioned"
"k8s.io/client-go/discovery"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/rest"
"k8s.io/client-go/tools/clientcmd"
...
...
@@ -12,6 +13,9 @@ type KubernetesClient struct {
// kubernetes client interface
k8s
*
kubernetes
.
Clientset
// discovery client
discoveryClient
*
discovery
.
DiscoveryClient
// generated clientset
ks
*
kubesphere
.
Clientset
...
...
@@ -33,11 +37,12 @@ func NewKubernetesClientOrDie(options *KubernetesOptions) *KubernetesClient {
config
.
Burst
=
options
.
Burst
k
:=
&
KubernetesClient
{
k8s
:
kubernetes
.
NewForConfigOrDie
(
config
),
ks
:
kubesphere
.
NewForConfigOrDie
(
config
),
s2i
:
s2i
.
NewForConfigOrDie
(
config
),
master
:
config
.
Host
,
config
:
config
,
k8s
:
kubernetes
.
NewForConfigOrDie
(
config
),
discoveryClient
:
discovery
.
NewDiscoveryClientForConfigOrDie
(
config
),
ks
:
kubesphere
.
NewForConfigOrDie
(
config
),
s2i
:
s2i
.
NewForConfigOrDie
(
config
),
master
:
config
.
Host
,
config
:
config
,
}
if
options
.
Master
!=
""
{
...
...
@@ -83,6 +88,10 @@ func (k *KubernetesClient) Kubernetes() kubernetes.Interface {
return
k
.
k8s
}
func
(
k
*
KubernetesClient
)
Discovery
()
discovery
.
DiscoveryInterface
{
return
k
.
discoveryClient
}
func
(
k
*
KubernetesClient
)
KubeSphere
()
kubesphere
.
Interface
{
return
k
.
ks
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录