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.
@@ -0,0 +1,34 @@
1
+ require 'net/http'
2
+ require 'uri'
3
+ require 'openssl'
4
+ require 'json'
5
+
6
+ require_relative 'generic'
7
+
8
+ module Nodes
9
+ include Generic
10
+
11
+ # Get Nodes
12
+ def get_nodes
13
+ extension = '/api/v1/nodes'
14
+
15
+ uri = prepareURI(@endpoint, extension)
16
+
17
+ request = prepareGenericRequest(uri, @bearer_token, "GET")
18
+
19
+ req_options = prepareGenericRequestOptions(@ssl, uri)
20
+
21
+ begin
22
+ response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
23
+ http.request(request)
24
+ end
25
+
26
+ return response.body
27
+
28
+ rescue Errno::ECONNREFUSED
29
+ raise "Connection for host #{uri.hostname} refused"
30
+ end
31
+
32
+ end
33
+
34
+ end
@@ -0,0 +1,181 @@
1
+ require 'net/http'
2
+ require 'uri'
3
+ require 'openssl'
4
+ require 'json'
5
+
6
+ require_relative 'generic'
7
+
8
+ module PersistentVolumeClaims
9
+ include Generic
10
+
11
+ # Create new PersistentVolumeClaim
12
+ def create_new_persistentvolumeclaim(namespace, config)
13
+ extension = "/apis/apps/v1/namespaces/#{namespace}/persistentvolumeclaims"
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 PersistentVolumeClaims
40
+ def get_all_persistentvolumeclaims
41
+ extension = "/apis/apps/v1/persistentvolumeclaims"
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 PersistentVolumeClaims in Namespace
61
+ def get_all_namespaced_persistentvolumeclaims(namespace)
62
+ extension = "/apis/apps/v1/namespaces/#{namespace}/persistentvolumeclaims"
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 PersistentVolumeClaim in Namespace
82
+ def get_single_namespaced_persistentvolumeclaim(namespace, persistentvolumeclaim_name)
83
+ extension = "/apis/apps/v1/namespaces/#{namespace}/persistentvolumeclaims/#{persistentvolumeclaim_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 PersistentVolumeClaim in Namespace
102
+ def update_namespaced_persistentvolumeclaim(namespace, persistentvolumeclaim_name, update)
103
+ extension = "/apis/apps/v1/namespaces/#{namespace}/persistentvolumeclaims/#{persistentvolumeclaim_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
+
128
+ end
129
+
130
+ # Patch existing PersistentVolumeClaim in Namespace
131
+ def patch_persistentvolumeclaim(namespace, persistentvolumeclaim_name, patch)
132
+ extension = "/apis/apps/v1/namespaces/#{namespace}/persistentvolumeclaims/#{persistentvolumeclaim_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 PersistentVolumeClaim in Namespace
154
+ def delete_persistentvolumeclaim(namespace, persistentvolumeclaim_name, options = '')
155
+ extension = "/apis/apps/v1/namespaces/#{namespace}/persistentvolumeclaims/#{persistentvolumeclaim_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
@@ -0,0 +1,160 @@
1
+ require 'net/http'
2
+ require 'uri'
3
+ require 'openssl'
4
+ require 'json'
5
+
6
+ require_relative 'generic'
7
+
8
+ module PersistentVolumes
9
+ include Generic
10
+
11
+ # Create new PersistentVolume
12
+ def create_new_persistentvolume(config)
13
+ extension = "/api/v1/persistentvolumes"
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 PersistentVolumes
40
+ def get_all_persistentvolumes
41
+ extension = "/apis/v1/persistentvolumes"
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 single PersistentVolume
61
+ def get_single_persistentvolume(persistentvolume_name)
62
+ extension = "/api/v1/persistentvolumes/#{persistentvolume_name}"
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
+ rescue Errno::ECONNREFUSED
76
+ raise "Connection for host #{uri.hostname} refused"
77
+ end
78
+ end
79
+
80
+ # Update existing PersistentVolume
81
+ def update_namespaced_persistentvolume(persistentvolume_name, update)
82
+ extension = "/api/v1/persistentvolumes/#{persistentvolume_name}"
83
+
84
+ uri = prepareURI(@endpoint, extension)
85
+
86
+ request = prepareGenericRequest(uri, @bearer_token, "PUT")
87
+ request.content_type = "application/json"
88
+
89
+ if @yaml
90
+ request.body = yaml_file_to_json(update)
91
+ else
92
+ request.body = update
93
+ end
94
+
95
+ req_options = prepareGenericRequestOptions(@ssl, uri)
96
+
97
+ begin
98
+ response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
99
+ http.request(request)
100
+ end
101
+ return response.body
102
+
103
+ rescue Errno::ECONNREFUSED
104
+ raise "Connection for host #{uri.hostname} refused"
105
+ end
106
+
107
+ end
108
+
109
+ # Patch existing PersistentVolume
110
+ def patch_persistentvolume(persistentvolume_name, patch)
111
+ extension = "/api/v1/persistentvolumes/#{persistentvolume_name}"
112
+
113
+ uri = prepareURI(@endpoint, extension)
114
+
115
+ request = prepareGenericRequest(uri, @bearer_token, "PATCH")
116
+ request.content_type = "application/json-patch+json"
117
+
118
+ request.body = patch
119
+
120
+ req_options = prepareGenericRequestOptions(@ssl, uri)
121
+
122
+ begin
123
+ response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
124
+ http.request(request)
125
+ end
126
+ return response.body
127
+ rescue Errno::ECONNREFUSED
128
+ raise "Connection for host #{uri.hostname} refused"
129
+ end
130
+ end
131
+
132
+ # Delete existing PersistentVolume
133
+ def delete_persistentvolume(persistentvolume_name, options = '')
134
+ extension = "/api/v1/persistentvolumes/#{persistentvolume_name}"
135
+
136
+ uri = prepareURI(@endpoint, extension)
137
+
138
+ request = prepareGenericRequest(uri, @bearer_token, "DELETE")
139
+ request.content_type = "application/json"
140
+
141
+ if @yaml
142
+ request.body = yaml_file_to_json(options)
143
+ else
144
+ request.body = options
145
+ end
146
+
147
+ req_options = prepareGenericRequestOptions(@ssl, uri)
148
+
149
+ begin
150
+ response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
151
+ http.request(request)
152
+ end
153
+ return response.body
154
+
155
+ rescue Errno::ECONNREFUSED
156
+ raise "Connection for host #{uri.hostname} refused"
157
+ end
158
+ end
159
+
160
+ end
@@ -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 Pods
9
+ include Generic
10
+
11
+ # Create new Pod
12
+ def create_new_pod(namespace, config)
13
+ extension = "/api/v1/namespaces/#{namespace}/pods"
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 Pods
40
+ def get_all_pods
41
+ extension = "/api/v1/pods"
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 Pods in Namespace
61
+ def get_all_namespaced_pods(namespace)
62
+ extension = "/api/v1/namespaces/#{namespace}/pods"
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 Pod in Namespace
82
+ def get_single_namespaced_pod(namespace, pod_name)
83
+ extension = "/api/v1/namespaces/#{namespace}/pods/#{pod_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 Pod in Namespace
102
+ def update_namespaced_pod(namespace, pod_name, update)
103
+ extension = "/api/v1/namespaces/#{namespace}/pods/#{pod_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 Pod
130
+ def patch_pod(namespace, pod_name, patch)
131
+ extension = "/api/v1/namespaces/#{namespace}/pods/#{pod_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 Pod
153
+ def delete_pod(namespace, pod_name, options = '')
154
+ extension = "/api/v1/namespaces/#{namespace}/pods/#{pod_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
181
+
182
+