ruby-kubernetes-controller 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.circleci/config.yml +131 -0
- data/.circleci/setup-rubygems.sh +5 -0
- data/.gitignore +12 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Documentation/DOCUMENTATION.md +1606 -0
- data/Documentation/serviceaccount.png +0 -0
- data/Documentation/serviceaccount.yaml +18 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +21 -0
- data/README.md +54 -0
- data/Rakefile +10 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/lib/ruby-kubernetes-controller.rb +6 -0
- data/lib/ruby-kubernetes-controller/client.rb +62 -0
- data/lib/ruby-kubernetes-controller/configmaps.rb +180 -0
- data/lib/ruby-kubernetes-controller/deployments.rb +181 -0
- data/lib/ruby-kubernetes-controller/endpoints.rb +182 -0
- data/lib/ruby-kubernetes-controller/generic.rb +70 -0
- data/lib/ruby-kubernetes-controller/ingresses.rb +180 -0
- data/lib/ruby-kubernetes-controller/namespaces.rb +142 -0
- data/lib/ruby-kubernetes-controller/nodes.rb +34 -0
- data/lib/ruby-kubernetes-controller/persistentvolumeclaims.rb +181 -0
- data/lib/ruby-kubernetes-controller/persistentvolumes.rb +160 -0
- data/lib/ruby-kubernetes-controller/pods.rb +182 -0
- data/lib/ruby-kubernetes-controller/replicasets.rb +181 -0
- data/lib/ruby-kubernetes-controller/services.rb +176 -0
- data/lib/ruby-kubernetes-controller/version.rb +4 -0
- data/ruby-kubernetes-controller.gemspec +53 -0
- metadata +146 -0
@@ -0,0 +1,182 @@
|
|
1
|
+
require 'net/http'
|
2
|
+
require 'uri'
|
3
|
+
require 'openssl'
|
4
|
+
require 'json'
|
5
|
+
|
6
|
+
require_relative 'generic'
|
7
|
+
|
8
|
+
module Endpoints
|
9
|
+
|
10
|
+
include Generic
|
11
|
+
|
12
|
+
# Create new Endpoint
|
13
|
+
def create_new_endpoint(namespace, config)
|
14
|
+
extension = "/api/v1/namespaces/#{namespace}/endpoints"
|
15
|
+
|
16
|
+
uri = prepareURI(@endpoint, extension)
|
17
|
+
|
18
|
+
request = prepareGenericRequest(uri, @bearer_token, "POST")
|
19
|
+
request.content_type = "application/json"
|
20
|
+
|
21
|
+
if @yaml
|
22
|
+
request.body = yaml_file_to_json(config)
|
23
|
+
else
|
24
|
+
request.body = config
|
25
|
+
end
|
26
|
+
|
27
|
+
req_options = prepareGenericRequestOptions(@ssl, uri)
|
28
|
+
|
29
|
+
begin
|
30
|
+
response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
|
31
|
+
http.request(request)
|
32
|
+
end
|
33
|
+
return response.body
|
34
|
+
|
35
|
+
rescue Errno::ECONNREFUSED
|
36
|
+
raise "Connection for host #{uri.hostname} refused"
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
# Get all Endpoints
|
41
|
+
def get_all_endpoints
|
42
|
+
extension = "/api/v1/endpoints"
|
43
|
+
|
44
|
+
uri = prepareURI(@endpoint, extension)
|
45
|
+
|
46
|
+
request = prepareGenericRequest(uri, @bearer_token, "GET")
|
47
|
+
|
48
|
+
req_options = prepareGenericRequestOptions(@ssl, uri)
|
49
|
+
|
50
|
+
begin
|
51
|
+
response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
|
52
|
+
http.request(request)
|
53
|
+
end
|
54
|
+
return response.body
|
55
|
+
|
56
|
+
rescue Errno::ECONNREFUSED
|
57
|
+
raise "Connection for host #{uri.hostname} refused"
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
# Get all existing Endpoints in Namespace
|
62
|
+
def get_all_namespaced_endpoints(namespace)
|
63
|
+
extension = "/api/v1/namespaces/#{namespace}/endpoints"
|
64
|
+
|
65
|
+
uri = prepareURI(@endpoint, extension)
|
66
|
+
|
67
|
+
request = prepareGenericRequest(uri, @bearer_token, "GET")
|
68
|
+
|
69
|
+
req_options = prepareGenericRequestOptions(@ssl, uri)
|
70
|
+
|
71
|
+
begin
|
72
|
+
response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
|
73
|
+
http.request(request)
|
74
|
+
end
|
75
|
+
return response.body
|
76
|
+
|
77
|
+
rescue Errno::ECONNREFUSED
|
78
|
+
raise "Connection for host #{uri.hostname} refused"
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
# Get single Endpoint in Namespace
|
83
|
+
def get_single_namespaced_endpoint(namespace, endpoint_name)
|
84
|
+
extension = "/api/v1/namespaces/#{namespace}/endpoints/#{endpoint_name}"
|
85
|
+
|
86
|
+
uri = prepareURI(@endpoint, extension)
|
87
|
+
|
88
|
+
request = prepareGenericRequest(uri, @bearer_token, "GET")
|
89
|
+
|
90
|
+
req_options = prepareGenericRequestOptions(@ssl, uri)
|
91
|
+
|
92
|
+
begin
|
93
|
+
response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
|
94
|
+
http.request(request)
|
95
|
+
end
|
96
|
+
return response.body
|
97
|
+
rescue Errno::ECONNREFUSED
|
98
|
+
raise "Connection for host #{uri.hostname} refused"
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
# Update existing Endpoint in Namespace
|
103
|
+
def update_namespaced_endpoint(namespace, endpoint_name, update)
|
104
|
+
extension = "/api/v1/namespaces/#{namespace}/endpoints/#{endpoint_name}"
|
105
|
+
|
106
|
+
uri = prepareURI(@endpoint, extension)
|
107
|
+
|
108
|
+
request = prepareGenericRequest(uri, @bearer_token, "PUT")
|
109
|
+
request.content_type = "application/json"
|
110
|
+
|
111
|
+
if @yaml
|
112
|
+
request.body = yaml_file_to_json(update)
|
113
|
+
else
|
114
|
+
request.body = update
|
115
|
+
end
|
116
|
+
|
117
|
+
req_options = prepareGenericRequestOptions(@ssl, uri)
|
118
|
+
|
119
|
+
begin
|
120
|
+
response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
|
121
|
+
http.request(request)
|
122
|
+
end
|
123
|
+
return response.body
|
124
|
+
|
125
|
+
rescue Errno::ECONNREFUSED
|
126
|
+
raise "Connection for host #{uri.hostname} refused"
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
# Patch existing Endpoint
|
131
|
+
def patch_endpoint(namespace, endpoint_name, patch)
|
132
|
+
extension = "/api/v1/namespaces/#{namespace}/endpoints/#{endpoint_name}"
|
133
|
+
|
134
|
+
uri = prepareURI(@endpoint, extension)
|
135
|
+
|
136
|
+
request = prepareGenericRequest(uri, @bearer_token, "PATCH")
|
137
|
+
request.content_type = "application/json-patch+json"
|
138
|
+
|
139
|
+
request.body = patch
|
140
|
+
|
141
|
+
req_options = prepareGenericRequestOptions(@ssl, uri)
|
142
|
+
|
143
|
+
begin
|
144
|
+
response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
|
145
|
+
http.request(request)
|
146
|
+
end
|
147
|
+
return response.body
|
148
|
+
rescue Errno::ECONNREFUSED
|
149
|
+
raise "Connection for host #{uri.hostname} refused"
|
150
|
+
end
|
151
|
+
end
|
152
|
+
|
153
|
+
# Delete existing Endpoint
|
154
|
+
def delete_endpoint(namespace, endpoint_name, options = '')
|
155
|
+
extension = "/api/v1/namespaces/#{namespace}/endpoints/#{endpoint_name}"
|
156
|
+
|
157
|
+
uri = prepareURI(@endpoint, extension)
|
158
|
+
|
159
|
+
request = prepareGenericRequest(uri, @bearer_token, "DELETE")
|
160
|
+
request.content_type = "application/json"
|
161
|
+
|
162
|
+
if @yaml
|
163
|
+
request.body = yaml_file_to_json(options)
|
164
|
+
else
|
165
|
+
request.body = options
|
166
|
+
end
|
167
|
+
|
168
|
+
req_options = prepareGenericRequestOptions(@ssl, uri)
|
169
|
+
|
170
|
+
begin
|
171
|
+
response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
|
172
|
+
http.request(request)
|
173
|
+
end
|
174
|
+
return response.body
|
175
|
+
|
176
|
+
rescue Errno::ECONNREFUSED
|
177
|
+
raise "Connection for host #{uri.hostname} refused"
|
178
|
+
end
|
179
|
+
end
|
180
|
+
|
181
|
+
end
|
182
|
+
|
@@ -0,0 +1,70 @@
|
|
1
|
+
require 'net/http'
|
2
|
+
require 'uri'
|
3
|
+
require 'openssl'
|
4
|
+
require 'json'
|
5
|
+
require 'yaml'
|
6
|
+
require 'open-uri'
|
7
|
+
|
8
|
+
module Generic
|
9
|
+
# Create a URI Object
|
10
|
+
def prepareURI(endpoint, extension)
|
11
|
+
URI.parse("https://#{endpoint}#{extension}")
|
12
|
+
end
|
13
|
+
|
14
|
+
# Prepare a Generic Request Object
|
15
|
+
def prepareGenericRequest(uri, bearer_token, type)
|
16
|
+
if type == "GET"
|
17
|
+
request = Net::HTTP::Get.new(uri)
|
18
|
+
elsif type == "PATCH"
|
19
|
+
request = Net::HTTP::Patch.new(uri)
|
20
|
+
elsif type == "PUT"
|
21
|
+
request = Net::HTTP::Put.new(uri)
|
22
|
+
elsif type == "POST"
|
23
|
+
request = Net::HTTP::Post.new(uri)
|
24
|
+
elsif type == "DELETE"
|
25
|
+
request = Net::HTTP::Delete.new(uri)
|
26
|
+
else
|
27
|
+
request = Net::HTTP::Get.new(uri)
|
28
|
+
end
|
29
|
+
request["Authorization"] = "Bearer #{bearer_token}"
|
30
|
+
request["Accept"] = "application/json"
|
31
|
+
|
32
|
+
request
|
33
|
+
end
|
34
|
+
|
35
|
+
# Prepare a Generic Request Options Object
|
36
|
+
def prepareGenericRequestOptions(ssl, uri)
|
37
|
+
if !ssl
|
38
|
+
req_options = {
|
39
|
+
use_ssl: uri.scheme == "https",
|
40
|
+
verify_mode: OpenSSL::SSL::VERIFY_NONE,
|
41
|
+
}
|
42
|
+
else
|
43
|
+
req_options = {
|
44
|
+
use_ssl: uri.scheme == "https",
|
45
|
+
}
|
46
|
+
end
|
47
|
+
|
48
|
+
req_options
|
49
|
+
end
|
50
|
+
|
51
|
+
# Check if entry is a valid JSON string
|
52
|
+
def check_valid_json(json)
|
53
|
+
!!JSON.parse(json)
|
54
|
+
rescue JSON::ParserError => _e
|
55
|
+
false
|
56
|
+
end
|
57
|
+
|
58
|
+
# Convert Yaml File to JSON
|
59
|
+
def yaml_file_to_json(yaml_file)
|
60
|
+
if !check_valid_json(yaml_file)
|
61
|
+
if yaml_file != ''
|
62
|
+
JSON.pretty_generate(YAML.load(open(yaml_file).read))
|
63
|
+
else
|
64
|
+
''
|
65
|
+
end
|
66
|
+
else
|
67
|
+
raise 'JSON entered instead of yaml file for a yaml client'
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
@@ -0,0 +1,180 @@
|
|
1
|
+
require 'net/http'
|
2
|
+
require 'uri'
|
3
|
+
require 'openssl'
|
4
|
+
require 'json'
|
5
|
+
|
6
|
+
require_relative 'generic'
|
7
|
+
|
8
|
+
module Ingresses
|
9
|
+
include Generic
|
10
|
+
|
11
|
+
# Create new Ingress
|
12
|
+
def create_new_ingress(namespace, config)
|
13
|
+
extension = "/apis/extensions/v1beta1/namespaces/#{namespace}/ingresses"
|
14
|
+
|
15
|
+
uri = prepareURI(@endpoint, extension)
|
16
|
+
|
17
|
+
request = prepareGenericRequest(uri, @bearer_token, "POST")
|
18
|
+
request.content_type = "application/json"
|
19
|
+
|
20
|
+
if @yaml
|
21
|
+
request.body = yaml_file_to_json(config)
|
22
|
+
else
|
23
|
+
request.body = config
|
24
|
+
end
|
25
|
+
|
26
|
+
req_options = prepareGenericRequestOptions(@ssl, uri)
|
27
|
+
|
28
|
+
begin
|
29
|
+
response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
|
30
|
+
http.request(request)
|
31
|
+
end
|
32
|
+
return response.body
|
33
|
+
|
34
|
+
rescue Errno::ECONNREFUSED
|
35
|
+
raise "Connection for host #{uri.hostname} refused"
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
# Get all Ingresses
|
40
|
+
def get_all_ingresses
|
41
|
+
extension = "/apis/extensions/v1beta1/ingresses"
|
42
|
+
|
43
|
+
uri = prepareURI(@endpoint, extension)
|
44
|
+
|
45
|
+
request = prepareGenericRequest(uri, @bearer_token, "GET")
|
46
|
+
|
47
|
+
req_options = prepareGenericRequestOptions(@ssl, uri)
|
48
|
+
|
49
|
+
begin
|
50
|
+
response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
|
51
|
+
http.request(request)
|
52
|
+
end
|
53
|
+
return response.body
|
54
|
+
|
55
|
+
rescue Errno::ECONNREFUSED
|
56
|
+
raise "Connection for host #{uri.hostname} refused"
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
# Get all existing Ingresses in Namespace
|
61
|
+
def get_all_namespaced_ingresses(namespace)
|
62
|
+
extension = "/apis/extensions/v1beta1/namespaces/#{namespace}/ingresses"
|
63
|
+
|
64
|
+
uri = prepareURI(@endpoint, extension)
|
65
|
+
|
66
|
+
request = prepareGenericRequest(uri, @bearer_token, "GET")
|
67
|
+
|
68
|
+
req_options = prepareGenericRequestOptions(@ssl, uri)
|
69
|
+
|
70
|
+
begin
|
71
|
+
response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
|
72
|
+
http.request(request)
|
73
|
+
end
|
74
|
+
return response.body
|
75
|
+
|
76
|
+
rescue Errno::ECONNREFUSED
|
77
|
+
raise "Connection for host #{uri.hostname} refused"
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
# Get single Ingress in Namespace
|
82
|
+
def get_single_namespaced_ingress(namespace, ingress_name)
|
83
|
+
extension = "/apis/extensions/v1beta1/namespaces/#{namespace}/ingresses/#{ingress_name}"
|
84
|
+
|
85
|
+
uri = prepareURI(@endpoint, extension)
|
86
|
+
|
87
|
+
request = prepareGenericRequest(uri, @bearer_token, "GET")
|
88
|
+
|
89
|
+
req_options = prepareGenericRequestOptions(@ssl, uri)
|
90
|
+
|
91
|
+
begin
|
92
|
+
response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
|
93
|
+
http.request(request)
|
94
|
+
end
|
95
|
+
return response.body
|
96
|
+
rescue Errno::ECONNREFUSED
|
97
|
+
raise "Connection for host #{uri.hostname} refused"
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
# Update existing Ingress in Namespace
|
102
|
+
def update_namespaced_ingress(namespace, ingress_name, update)
|
103
|
+
extension = "/apis/extensions/v1beta1/namespaces/#{namespace}/ingresses/#{ingress_name}"
|
104
|
+
|
105
|
+
uri = prepareURI(@endpoint, extension)
|
106
|
+
|
107
|
+
request = prepareGenericRequest(uri, @bearer_token, "PUT")
|
108
|
+
request.content_type = "application/json"
|
109
|
+
|
110
|
+
if @yaml
|
111
|
+
request.body = yaml_file_to_json(update)
|
112
|
+
else
|
113
|
+
request.body = update
|
114
|
+
end
|
115
|
+
|
116
|
+
req_options = prepareGenericRequestOptions(@ssl, uri)
|
117
|
+
|
118
|
+
begin
|
119
|
+
response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
|
120
|
+
http.request(request)
|
121
|
+
end
|
122
|
+
return response.body
|
123
|
+
|
124
|
+
rescue Errno::ECONNREFUSED
|
125
|
+
raise "Connection for host #{uri.hostname} refused"
|
126
|
+
end
|
127
|
+
end
|
128
|
+
|
129
|
+
# Patch existing Ingress
|
130
|
+
def patch_ingress(namespace, ingress_name, patch)
|
131
|
+
extension = "/apis/extensions/v1beta1/namespaces/#{namespace}/ingresses/#{ingress_name}"
|
132
|
+
|
133
|
+
uri = prepareURI(@endpoint, extension)
|
134
|
+
|
135
|
+
request = prepareGenericRequest(uri, @bearer_token, "PATCH")
|
136
|
+
request.content_type = "application/json-patch+json"
|
137
|
+
|
138
|
+
request.body = patch
|
139
|
+
|
140
|
+
req_options = prepareGenericRequestOptions(@ssl, uri)
|
141
|
+
|
142
|
+
begin
|
143
|
+
response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
|
144
|
+
http.request(request)
|
145
|
+
end
|
146
|
+
return response.body
|
147
|
+
rescue Errno::ECONNREFUSED
|
148
|
+
raise "Connection for host #{uri.hostname} refused"
|
149
|
+
end
|
150
|
+
end
|
151
|
+
|
152
|
+
# Delete existing Namespace
|
153
|
+
def delete_ingress(namespace, ingress_name, options = '')
|
154
|
+
extension = "/apis/extensions/v1beta1/namespaces/#{namespace}/ingresses/#{ingress_name}"
|
155
|
+
|
156
|
+
uri = prepareURI(@endpoint, extension)
|
157
|
+
|
158
|
+
request = prepareGenericRequest(uri, @bearer_token, "DELETE")
|
159
|
+
request.content_type = "application/json"
|
160
|
+
|
161
|
+
if @yaml
|
162
|
+
request.body = yaml_file_to_json(options)
|
163
|
+
else
|
164
|
+
request.body = options
|
165
|
+
end
|
166
|
+
|
167
|
+
req_options = prepareGenericRequestOptions(@ssl, uri)
|
168
|
+
|
169
|
+
begin
|
170
|
+
response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
|
171
|
+
http.request(request)
|
172
|
+
end
|
173
|
+
return response.body
|
174
|
+
|
175
|
+
rescue Errno::ECONNREFUSED
|
176
|
+
raise "Connection for host #{uri.hostname} refused"
|
177
|
+
end
|
178
|
+
end
|
179
|
+
|
180
|
+
end
|
@@ -0,0 +1,142 @@
|
|
1
|
+
require 'net/http'
|
2
|
+
require 'uri'
|
3
|
+
require 'openssl'
|
4
|
+
require 'json'
|
5
|
+
|
6
|
+
require_relative 'generic'
|
7
|
+
|
8
|
+
module Namespaces
|
9
|
+
include Generic
|
10
|
+
|
11
|
+
# Create new Namespace
|
12
|
+
def create_new_namespace(config)
|
13
|
+
extension = "/api/v1/namespaces"
|
14
|
+
|
15
|
+
uri = prepareURI(@endpoint, extension)
|
16
|
+
|
17
|
+
request = prepareGenericRequest(uri, @bearer_token, "POST")
|
18
|
+
request.content_type = "application/json"
|
19
|
+
|
20
|
+
if @yaml
|
21
|
+
request.body = yaml_file_to_json(config)
|
22
|
+
else
|
23
|
+
request.body = config
|
24
|
+
end
|
25
|
+
|
26
|
+
req_options = prepareGenericRequestOptions(@ssl, uri)
|
27
|
+
|
28
|
+
begin
|
29
|
+
response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
|
30
|
+
http.request(request)
|
31
|
+
end
|
32
|
+
|
33
|
+
return response.body
|
34
|
+
|
35
|
+
rescue Errno::ECONNREFUSED
|
36
|
+
raise "Connection for host #{uri.hostname} refused"
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
|
41
|
+
# Get Namespaces
|
42
|
+
def get_all_namespaces
|
43
|
+
extension = '/api/v1/namespaces'
|
44
|
+
|
45
|
+
uri = prepareURI(@endpoint, extension)
|
46
|
+
|
47
|
+
request = prepareGenericRequest(uri, @bearer_token, "GET")
|
48
|
+
|
49
|
+
req_options = prepareGenericRequestOptions(@ssl, uri)
|
50
|
+
|
51
|
+
begin
|
52
|
+
response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
|
53
|
+
http.request(request)
|
54
|
+
end
|
55
|
+
return response.body
|
56
|
+
|
57
|
+
rescue Errno::ECONNREFUSED
|
58
|
+
raise "Connection for host #{uri.hostname} refused"
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
# Update existing Namespace
|
63
|
+
def update_namespace(namespace, update)
|
64
|
+
extension = "/api/v1/namespaces/#{namespace}"
|
65
|
+
|
66
|
+
uri = prepareURI(@endpoint, extension)
|
67
|
+
|
68
|
+
request = prepareGenericRequest(uri, @bearer_token, "PUT")
|
69
|
+
request.content_type = "application/json"
|
70
|
+
|
71
|
+
if @yaml
|
72
|
+
request.body = yaml_file_to_json(update)
|
73
|
+
else
|
74
|
+
request.body = update
|
75
|
+
end
|
76
|
+
|
77
|
+
req_options = prepareGenericRequestOptions(@ssl, uri)
|
78
|
+
|
79
|
+
begin
|
80
|
+
response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
|
81
|
+
http.request(request)
|
82
|
+
end
|
83
|
+
return response.body
|
84
|
+
|
85
|
+
rescue Errno::ECONNREFUSED
|
86
|
+
raise "Connection for host #{uri.hostname} refused"
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
# Patch existing Namespace
|
91
|
+
def patch_namespace(namespace, patch)
|
92
|
+
extension = "/api/v1/namespaces/#{namespace}"
|
93
|
+
|
94
|
+
uri = prepareURI(@endpoint, extension)
|
95
|
+
|
96
|
+
request = prepareGenericRequest(uri, @bearer_token, "PATCH")
|
97
|
+
request.content_type = "application/json-patch+json"
|
98
|
+
|
99
|
+
request.body = patch
|
100
|
+
|
101
|
+
req_options = prepareGenericRequestOptions(@ssl, uri)
|
102
|
+
|
103
|
+
begin
|
104
|
+
response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
|
105
|
+
http.request(request)
|
106
|
+
end
|
107
|
+
return response.body
|
108
|
+
|
109
|
+
rescue Errno::ECONNREFUSED
|
110
|
+
raise "Connection for host #{uri.hostname} refused"
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
114
|
+
# Delete existing Namespace
|
115
|
+
def delete_namespace(namespace, options = '')
|
116
|
+
extension = "/api/v1/namespaces/#{namespace}"
|
117
|
+
|
118
|
+
uri = prepareURI(@endpoint, extension)
|
119
|
+
|
120
|
+
request = prepareGenericRequest(uri, @bearer_token, "DELETE")
|
121
|
+
request.content_type = "application/json"
|
122
|
+
|
123
|
+
if @yaml
|
124
|
+
request.body = yaml_file_to_json(options)
|
125
|
+
else
|
126
|
+
request.body = options
|
127
|
+
end
|
128
|
+
|
129
|
+
req_options = prepareGenericRequestOptions(@ssl, uri)
|
130
|
+
|
131
|
+
begin
|
132
|
+
response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
|
133
|
+
http.request(request)
|
134
|
+
end
|
135
|
+
return response.body
|
136
|
+
|
137
|
+
rescue Errno::ECONNREFUSED
|
138
|
+
raise "Connection for host #{uri.hostname} refused"
|
139
|
+
end
|
140
|
+
end
|
141
|
+
|
142
|
+
end
|