Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
gitlab-ce
Commits
09473b19
Commit
09473b19
authored
Jan 04, 2018
by
Pawel Chojnacki
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Test Prometheus proxy client generation
parent
ae9c8277
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
58 additions
and
2 deletions
+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
No files found.
app/models/clusters/applications/prometheus.rb
View file @
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
View file @
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
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment