Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
0d95ce51
G
gitlab-foss
项目概览
李少辉-开发者
/
gitlab-foss
通知
15
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
gitlab-foss
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
0d95ce51
编写于
11月 21, 2017
作者:
S
Shinya Maeda
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Check diff between KubernetesService and Platforms::Kubernetes. Synchronize again.
上级
8a55d2c5
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
62 addition
and
67 deletion
+62
-67
app/models/clusters/platforms/kubernetes.rb
app/models/clusters/platforms/kubernetes.rb
+57
-67
app/models/project_services/kubernetes_service.rb
app/models/project_services/kubernetes_service.rb
+5
-0
未找到文件。
app/models/clusters/platforms/kubernetes.rb
浏览文件 @
0d95ce51
...
...
@@ -44,12 +44,6 @@ module Clusters
delegate
:project
,
to: :cluster
,
allow_nil:
true
delegate
:enabled?
,
to: :cluster
,
allow_nil:
true
class
<<
self
def
namespace_for_project
(
project
)
"
#{
project
.
path
}
-
#{
project
.
id
}
"
end
end
def
actual_namespace
if
namespace
.
present?
namespace
...
...
@@ -58,10 +52,6 @@ module Clusters
end
end
def
default_namespace
self
.
class
.
namespace_for_project
(
project
)
if
project
end
def
predefined_variables
config
=
YAML
.
dump
(
kubeconfig
)
...
...
@@ -101,41 +91,6 @@ module Clusters
{
pods:
read_pods
}
end
def
kubeconfig
to_kubeconfig
(
url:
api_url
,
namespace:
actual_namespace
,
token:
token
,
ca_pem:
ca_pem
)
end
def
read_secrets
kubeclient
=
build_kubeclient!
kubeclient
.
get_secrets
.
as_json
end
# Returns a hash of all pods in the namespace
def
read_pods
kubeclient
=
build_kubeclient!
kubeclient
.
get_pods
(
namespace:
actual_namespace
).
as_json
rescue
KubeException
=>
err
raise
err
unless
err
.
error_code
==
404
[]
end
def
kubeclient_ssl_options
opts
=
{
verify_ssl:
OpenSSL
::
SSL
::
VERIFY_PEER
}
if
ca_pem
.
present?
opts
[
:cert_store
]
=
OpenSSL
::
X509
::
Store
.
new
opts
[
:cert_store
].
add_cert
(
OpenSSL
::
X509
::
Certificate
.
new
(
ca_pem
))
end
opts
end
def
kubeclient
@kubeclient
||=
kubernetes_service
.
kubeclient
if
manages_kubernetes_service?
end
...
...
@@ -161,29 +116,19 @@ module Clusters
private
def
enforce_namespace_to_lower_case
self
.
namespace
=
self
.
namespace
&
.
downcase
end
# TODO: glue code till we migrate Kubernetes Service into Platforms::Kubernetes class
def
manages_kubernetes_service?
return
true
unless
kubernetes_service
&
.
active?
kubernetes_service
.
api_url
==
api_url
end
def
destroy_kubernetes_integration!
return
unless
manages_kubernetes_service?
kubernetes_service
&
.
destroy!
def
kubeconfig
to_kubeconfig
(
url:
api_url
,
namespace:
actual_namespace
,
token:
token
,
ca_pem:
ca_pem
)
end
def
kubernetes_service
@kubernetes_service
||=
project
&
.
kubernetes_service
end
def
default_namespace
return
unless
project
def
ensure_kubernetes_servic
e
@kubernetes_service
||=
kubernetes_service
||
project
&
.
build_kubernetes_service
slug
=
"
#{
project
.
path
}
-
#{
project
.
id
}
"
.
downcas
e
slug
.
gsub
(
/[^-a-z0-9]/
,
'-'
).
gsub
(
/^-+/
,
''
)
end
def
build_kubeclient!
(
api_path:
'api'
,
api_version:
'v1'
)
...
...
@@ -202,9 +147,29 @@ module Clusters
)
end
# Returns a hash of all pods in the namespace
def
read_pods
kubeclient
=
build_kubeclient!
kubeclient
.
get_pods
(
namespace:
actual_namespace
).
as_json
rescue
KubeException
=>
err
raise
err
unless
err
.
error_code
==
404
[]
end
def
kubeclient_ssl_options
opts
=
{
verify_ssl:
OpenSSL
::
SSL
::
VERIFY_PEER
}
if
ca_pem
.
present?
opts
[
:cert_store
]
=
OpenSSL
::
X509
::
Store
.
new
opts
[
:cert_store
].
add_cert
(
OpenSSL
::
X509
::
Certificate
.
new
(
ca_pem
))
end
opts
end
def
kubeclient_auth_options
return
{
username:
username
,
password:
password
}
if
username
&&
password
return
{
bearer_token:
token
}
if
token
{
bearer_token:
token
}
end
def
join_api_url
(
api_path
)
...
...
@@ -227,6 +192,31 @@ module Clusters
def
enforce_namespace_to_lower_case
self
.
namespace
=
self
.
namespace
&
.
downcase
end
def
enforce_namespace_to_lower_case
self
.
namespace
=
self
.
namespace
&
.
downcase
end
# TODO: glue code till we migrate Kubernetes Service into Platforms::Kubernetes class
def
manages_kubernetes_service?
return
true
unless
kubernetes_service
&
.
active?
kubernetes_service
.
api_url
==
api_url
end
def
destroy_kubernetes_integration!
return
unless
manages_kubernetes_service?
kubernetes_service
&
.
destroy!
end
def
kubernetes_service
@kubernetes_service
||=
project
&
.
kubernetes_service
end
def
ensure_kubernetes_service
@kubernetes_service
||=
kubernetes_service
||
project
&
.
build_kubernetes_service
end
end
end
end
app/models/project_services/kubernetes_service.rb
浏览文件 @
0d95ce51
##
# NOTE:
# We'll move this class to Clusters::Platforms::Kubernetes, which contains exactly the same logic.
# After we've migrated data, we'll remove KubernetesService. This would happen in a few months.
# If you're modyfiyng this class, please note that you should update the same change in Clusters::Platforms::Kubernetes.
class
KubernetesService
<
DeploymentService
include
Gitlab
::
CurrentSettings
include
Gitlab
::
Kubernetes
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录