Class: Dapp::Kube::Kubernetes::Client
- Inherits:
-
Object
- Object
- Dapp::Kube::Kubernetes::Client
show all
- Includes:
- Helper::YAML
- Defined in:
- lib/dapp/kube/kubernetes/client.rb
Defined Under Namespace
Modules: Error, Resource
Instance Method Summary
collapse
#yaml_load, #yaml_load_file
Constructor Details
#initialize(namespace: nil) ⇒ Client
Returns a new instance of Client.
7
8
9
10
|
# File 'lib/dapp/kube/kubernetes/client.rb', line 7
def initialize(namespace: nil)
@namespace = namespace
@query_parameters = {}
end
|
Instance Method Details
#create_namespace!(name, **query_parameters) ⇒ Object
91
92
93
|
# File 'lib/dapp/kube/kubernetes/client.rb', line 91
def create_namespace!(name, **query_parameters)
request!(:post, '/api/v1/namespaces', body: { metadata: { name: name } }, **query_parameters)
end
|
#delete_namespace!(name, **query_parameters) ⇒ Object
95
96
97
|
# File 'lib/dapp/kube/kubernetes/client.rb', line 95
def delete_namespace!(name, **query_parameters)
request!(:delete, "/api/v1/namespaces/#{name}", **query_parameters)
end
|
#event_list(**query_parameters) ⇒ Object
110
111
112
|
# File 'lib/dapp/kube/kubernetes/client.rb', line 110
def event_list(**query_parameters)
request!(:get, "/api/v1/namespaces/#{namespace}/events", **query_parameters)
end
|
#namespace ⇒ Object
12
13
14
|
# File 'lib/dapp/kube/kubernetes/client.rb', line 12
def namespace
@namespace || kube_context_config['context']['namespace'] || 'default'
end
|
#namespace?(name, **query_parameters) ⇒ Boolean
87
88
89
|
# File 'lib/dapp/kube/kubernetes/client.rb', line 87
def namespace?(name, **query_parameters)
namespace_list(**query_parameters)['items'].map { |item| item['metadata']['name'] }.include?(name)
end
|
#namespace_list(**query_parameters) ⇒ Object
83
84
85
|
# File 'lib/dapp/kube/kubernetes/client.rb', line 83
def namespace_list(**query_parameters)
request!(:get, '/api/v1/namespaces', **query_parameters)
end
|
#pod_log(name, follow: false, **query_parameters, &blk) ⇒ Object
99
100
101
102
103
104
105
106
107
108
|
# File 'lib/dapp/kube/kubernetes/client.rb', line 99
def pod_log(name, follow: false, **query_parameters, &blk)
excon_parameters = follow ? { response_block: blk } : {}
request!(:get,
"/api/v1/namespaces/#{namespace}/pods/#{name}/log",
excon_parameters: excon_parameters,
response_body_parameters: {json: false},
**{ follow: follow }.merge(query_parameters))
rescue Excon::Error::Timeout
raise Error::Timeout
end
|
#with_namespace(namespace, &blk) ⇒ Object
Чтобы не перегружать методы явной передачей namespace. Данный метод может пригодиться только в ситуации, когда надо указать другой namespace, в большинстве случаев используется namespace из конструктора.
19
20
21
22
23
24
25
26
27
|
# File 'lib/dapp/kube/kubernetes/client.rb', line 19
def with_namespace(namespace, &blk)
old_namespace = @namespace
begin
@namespace = namespace
return yield
ensure
@namespace = old_namespace
end
end
|
#with_query(query, &blk) ⇒ Object
29
30
31
32
33
34
35
36
37
|
# File 'lib/dapp/kube/kubernetes/client.rb', line 29
def with_query(query, &blk)
old_query = @query_parameters
begin
@query_parameters = query
return yield
ensure
@query_parameters = old_query
end
end
|