Class: Dapp::Kube::Client
- Inherits:
-
Object
- Object
- Dapp::Kube::Client
- Defined in:
- lib/dapp/kube/client.rb
Defined Under Namespace
Modules: Error
Instance Method Summary collapse
- #create_namespace!(name, **query_parameters) ⇒ Object
- #delete_namespace!(name, **query_parameters) ⇒ Object
- #event_list(**query_parameters) ⇒ Object
-
#initialize(namespace: nil) ⇒ Client
constructor
A new instance of Client.
- #namespace ⇒ Object
- #namespace?(name, **query_parameters) ⇒ Boolean
- #namespace_list(**query_parameters) ⇒ Object
- #pod_log(name, follow: false, **query_parameters, &blk) ⇒ Object
-
#with_namespace(namespace, &blk) ⇒ Object
Чтобы не перегружать методы явной передачей namespace.
- #with_query(query, &blk) ⇒ Object
Constructor Details
#initialize(namespace: nil) ⇒ Client
Returns a new instance of Client.
4 5 6 7 |
# File 'lib/dapp/kube/client.rb', line 4 def initialize(namespace: nil) @namespace = namespace @query_parameters = {} end |
Instance Method Details
#create_namespace!(name, **query_parameters) ⇒ Object
88 89 90 |
# File 'lib/dapp/kube/client.rb', line 88 def create_namespace!(name, **query_parameters) request!(:post, '/api/v1/namespaces', body: { metadata: { name: name } }, **query_parameters) end |
#delete_namespace!(name, **query_parameters) ⇒ Object
92 93 94 |
# File 'lib/dapp/kube/client.rb', line 92 def delete_namespace!(name, **query_parameters) request!(:delete, "/api/v1/namespaces/#{name}", **query_parameters) end |
#event_list(**query_parameters) ⇒ Object
106 107 108 |
# File 'lib/dapp/kube/client.rb', line 106 def event_list(**query_parameters) request!(:get, "/api/v1/namespaces/#{namespace}/events", **query_parameters) end |
#namespace ⇒ Object
9 10 11 |
# File 'lib/dapp/kube/client.rb', line 9 def namespace @namespace || kube_context_config['context']['namespace'] || 'default' end |
#namespace?(name, **query_parameters) ⇒ Boolean
84 85 86 |
# File 'lib/dapp/kube/client.rb', line 84 def namespace?(name, **query_parameters) namespace_list(**query_parameters)['items'].map { |item| item['metadata']['name'] }.include?(name) end |
#namespace_list(**query_parameters) ⇒ Object
80 81 82 |
# File 'lib/dapp/kube/client.rb', line 80 def namespace_list(**query_parameters) request!(:get, '/api/v1/namespaces', **query_parameters) end |
#pod_log(name, follow: false, **query_parameters, &blk) ⇒ Object
96 97 98 99 100 101 102 103 104 |
# File 'lib/dapp/kube/client.rb', line 96 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, **{ follow: follow }.merge(query_parameters)) rescue Excon::Error::Timeout raise Error::Timeout end |
#with_namespace(namespace, &blk) ⇒ Object
Чтобы не перегружать методы явной передачей namespace. Данный метод может пригодиться только в ситуации, когда надо указать другой namespace, в большинстве случаев используется namespace из конструктора.
16 17 18 19 20 21 22 23 24 |
# File 'lib/dapp/kube/client.rb', line 16 def with_namespace(namespace, &blk) old_namespace = @namespace begin @namespace = namespace return yield ensure @namespace = old_namespace end end |
#with_query(query, &blk) ⇒ Object
26 27 28 29 30 31 32 33 34 |
# File 'lib/dapp/kube/client.rb', line 26 def with_query(query, &blk) old_query = @query_parameters begin @query_parameters = query return yield ensure @query_parameters = old_query end end |