Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
09473b19
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,体验更适合开发者的 AI 搜索 >>
提交
09473b19
编写于
1月 04, 2018
作者:
P
Pawel Chojnacki
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Test Prometheus proxy client generation
上级
ae9c8277
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
58 addition
and
2 deletion
+58
-2
app/models/clusters/applications/prometheus.rb
app/models/clusters/applications/prometheus.rb
+7
-2
spec/models/clusters/applications/prometheus_spec.rb
spec/models/clusters/applications/prometheus_spec.rb
+51
-0
未找到文件。
app/models/clusters/applications/prometheus.rb
浏览文件 @
09473b19
...
...
@@ -40,15 +40,20 @@ module Clusters
end
def
proxy_client
return
unless
cluster
.
kube
client
return
unless
kube_
client
kube_client
=
cluster
.
kubeclient
proxy_url
=
kube_client
.
proxy_url
(
'service'
,
service_name
,
service_port
,
Gitlab
::
Kubernetes
::
Helm
::
NAMESPACE
)
# ensures headers containing auth data are appended to original k8s client options
options
=
kube_client
.
rest_client
.
options
.
merge
(
headers:
kube_client
.
headers
)
RestClient
::
Resource
.
new
(
proxy_url
,
options
)
end
private
def
kube_client
cluster
&
.
kubeclient
end
end
end
end
spec/models/clusters/applications/prometheus_spec.rb
浏览文件 @
09473b19
...
...
@@ -31,4 +31,55 @@ describe Clusters::Applications::Prometheus do
expect
(
subject
).
to
eq
(
"
#{
Rails
.
root
}
/vendor/prometheus/values.yaml"
)
end
end
describe
'#proxy_client'
do
context
'cluster is nil'
do
it
'returns nil'
do
expect
(
subject
.
cluster
).
to
be_nil
expect
(
subject
.
proxy_client
).
to
be_nil
end
end
context
"cluster doesn't have kubeclient"
do
let
(
:cluster
)
{
create
(
:cluster
)
}
subject
{
create
(
:clusters_applications_prometheus
,
cluster:
cluster
)
}
it
'returns nil'
do
expect
(
subject
.
proxy_client
).
to
be_nil
end
end
context
'cluster has kubeclient'
do
let
(
:kubernetes_url
)
{
'http://example.com'
}
let
(
:k8s_discover_response
)
{
{
resources:
[
{
name:
'service'
,
kind:
'Service'
}]
}
}
let
(
:kube_client
)
{
Kubeclient
::
Client
.
new
(
kubernetes_url
)
}
let
(
:cluster
)
{
create
(
:cluster
)
}
subject
{
create
(
:clusters_applications_prometheus
,
cluster:
cluster
)
}
before
do
allow
(
kube_client
.
rest_client
).
to
receive
(
:get
).
and_return
(
k8s_discover_response
.
to_json
)
allow
(
subject
.
cluster
).
to
receive
(
:kubeclient
).
and_return
(
kube_client
)
end
it
'creates proxy prometheus rest client'
do
expect
(
subject
.
proxy_client
).
to
be_instance_of
(
RestClient
::
Resource
)
end
it
'creates proper url'
do
expect
(
subject
.
proxy_client
.
url
).
to
eq
(
'http://example.com/api/v1/proxy/namespaces/gitlab-managed-apps/service/prometheus-prometheus-server:80'
)
end
it
'copies options and headers from kube client to proxy client'
do
expect
(
subject
.
proxy_client
.
options
).
to
eq
(
kube_client
.
rest_client
.
options
.
merge
(
headers:
kube_client
.
headers
))
end
end
end
end
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录