ruby-kubernetes-controller 0.1.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e1d7bfdc1de0725fb1f2d4cad6780c71f58bc8dd619836d80514f81f80c706ac
4
- data.tar.gz: 4650e322ec9b9ef297e782e17f0b245f16e05d8432aecb8ef1c02d6b6896e054
3
+ metadata.gz: cd4083fe77c81bb27435d6cb900f0e51992c62ca4a9c6732ff6009b1522d9f72
4
+ data.tar.gz: 356c882b4a2b5bb50c73eea1e8e476af8989b750c90342452175392e85a7a530
5
5
  SHA512:
6
- metadata.gz: b6637290fee0b38a28187a4f4f9ca100eef89de7476ebe7feacda2b23e97697111532ceb9a66358b3f0b389def34ce5fedbf77b3229366cc5ad6279cc676dc4d
7
- data.tar.gz: dc1339715316475a8600ab9d5d5eeec4259a2554a42dd95e2fcf9579e250095093cc48324249174e1de407176b5b564cf32de9512bd1ab368932790a3c5f39c5
6
+ metadata.gz: 11c56bc7bb24e83453fa6195b6b2d926815efef5d7378c3356be6884d7fd3686c558888ea5720ffd73f02d9e812ebcf4c9dccf8670de22df86ef030383a267b0
7
+ data.tar.gz: c1069042e9387925778da31068d294449f3f75a49c608c027e7488a020a8d5a67f843ad989023ea56166588d4dc5aae064c0d458816aae2535b82fd834013e2c
@@ -828,8 +828,8 @@ Before beginning, you must generate a bearer token for the Ruby Kubernetes Contr
828
828
  puts yaml_client.create_new_deployment(namespace, yaml_file_path) # Returns JSON
829
829
  ```
830
830
 
831
- #### Get Deploymentes
832
- * List all Deploymentes
831
+ #### Get Deployments
832
+ * List all Deployments
833
833
  ```ruby
834
834
  require 'ruby-kubernetes-controller'
835
835
 
@@ -839,11 +839,11 @@ Before beginning, you must generate a bearer token for the Ruby Kubernetes Contr
839
839
 
840
840
  client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl)
841
841
 
842
- puts client.get_all_deploymentes # Returns JSON
842
+ puts client.get_all_deployments # Returns JSON
843
843
  ```
844
844
 
845
- #### Get Namespaced Deploymentes
846
- * List all existing Deploymentes in Namespace
845
+ #### Get Namespaced Deployments
846
+ * List all existing Deployments in Namespace
847
847
  ```ruby
848
848
  require 'ruby-kubernetes-controller'
849
849
 
@@ -855,7 +855,7 @@ Before beginning, you must generate a bearer token for the Ruby Kubernetes Contr
855
855
 
856
856
  namespace = "default"
857
857
 
858
- puts client.get_all_namespaced_deploymentes(namespace) # Returns JSON
858
+ puts client.get_all_namespaced_deployments(namespace) # Returns JSON
859
859
  ```
860
860
 
861
861
  #### Get Single Namespaced Deployment
@@ -1603,4 +1603,168 @@ Before beginning, you must generate a bearer token for the Ruby Kubernetes Contr
1603
1603
  puts yaml_client.delete_persistentvolumeclaim(namespace, persistentvolumeclaim_name, yaml_file_path) # Returns JSON
1604
1604
  ```
1605
1605
 
1606
+
1607
+ #### Create Job
1608
+ * Create new Job
1609
+ ```ruby
1610
+ require 'ruby-kubernetes-controller'
1611
+
1612
+ endpoint = "localhost"
1613
+ bearer_token = "token"
1614
+ ssl = false
1615
+
1616
+ # With JSON
1617
+ json_client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl, yaml = false)
1618
+ namespace = "default"
1619
+ json_config =
1620
+ '{
1621
+ "kind": "Job",
1622
+ "apiVersion": "extensions/v1beta1",
1623
+ ...
1624
+ }'
1625
+
1626
+ puts json_client.create_new_job(namespace, json_config) # Returns JSON
1627
+
1628
+ # With YAML
1629
+ yaml_client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl, yaml = true)
1630
+ namespace = "default"
1631
+ yaml_file_path = 'path/to/file.yaml'
1632
+
1633
+ puts yaml_client.create_new_job(namespace, yaml_file_path) # Returns JSON
1634
+ ```
1635
+
1636
+ #### Get Jobs
1637
+ * List all Jobs
1638
+ ```ruby
1639
+ require 'ruby-kubernetes-controller'
1640
+
1641
+ endpoint = "localhost"
1642
+ bearer_token = "token"
1643
+ ssl = false
1644
+
1645
+ client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl)
1646
+
1647
+ puts client.get_all_jobs # Returns JSON
1648
+ ```
1649
+
1650
+ #### Get Namespaced Jobs
1651
+ * List all existing Jobs in Namespace
1652
+ ```ruby
1653
+ require 'ruby-kubernetes-controller'
1654
+
1655
+ endpoint = "localhost"
1656
+ bearer_token = "token"
1657
+ ssl = false
1658
+
1659
+ client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl)
1660
+
1661
+ namespace = "default"
1662
+
1663
+ puts client.get_all_namespaced_jobs(namespace) # Returns JSON
1664
+ ```
1665
+
1666
+ #### Get Single Namespaced Job
1667
+ * Get details for single Job in Namespace
1668
+ ```ruby
1669
+ require 'ruby-kubernetes-controller'
1670
+
1671
+ endpoint = "localhost"
1672
+ bearer_token = "token"
1673
+ ssl = false
1674
+
1675
+ client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl)
1676
+
1677
+ namespace = "default"
1678
+ job_name = "job"
1679
+
1680
+ puts client.get_single_namespaced_job(namespace, job_name) # Returns JSON
1681
+ ```
1682
+
1683
+ #### Update Job
1684
+ * Update existing Job in Namespace
1685
+ ```ruby
1686
+ require 'ruby-kubernetes-controller'
1687
+
1688
+ endpoint = "localhost"
1689
+ bearer_token = "token"
1690
+ ssl = false
1691
+
1692
+ # With JSON
1693
+ json_client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl, yaml = false)
1694
+ namespace = "default"
1695
+ job_name = "job"
1696
+ json_update =
1697
+ '{
1698
+ "kind": "Job",
1699
+ "apiVersion": "extensions/v1beta1",
1700
+ ...
1701
+ }'
1702
+
1703
+ puts json_client.update_namespaced_job(namespace, job_name, json_update) # Returns JSON
1704
+
1705
+ # With YAML
1706
+ yaml_client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl, yaml = true)
1707
+ namespace = "default"
1708
+ job_name = "job"
1709
+ yaml_file_path = 'path/to/file.yaml'
1710
+
1711
+ puts yaml_client.update_namespaced_job(namespace, job_name, yaml_file_path) # Returns JSON
1712
+ ```
1713
+
1714
+ #### Patch Job
1715
+ * Patch existing Job
1716
+ * Patch Format documentation available at: http://jsonpatch.com/
1717
+ ```ruby
1718
+ require 'ruby-kubernetes-controller'
1719
+
1720
+ endpoint = "localhost"
1721
+ bearer_token = "token"
1722
+ ssl = false
1723
+
1724
+ client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl)
1725
+
1726
+ namespace = "default"
1727
+ job_name = "job"
1728
+ patch =
1729
+ '[
1730
+ { "op": "replace", "path": "/baz", "value": "boo" },
1731
+ { "op": "add", "path": "/hello", "value": ["world"] },
1732
+ { "op": "remove", "path": "/foo" }
1733
+ ]'
1734
+
1735
+ puts client.patch_job(namespace, job_name, patch) # Returns JSON
1736
+ ```
1737
+
1738
+ #### Delete Job
1739
+ * Delete existing Job
1740
+ * Delete options documentation available at: https://kubernetes.io/docs/reference/federation/v1/definitions/#_v1_deleteoptions
1741
+ ```ruby
1742
+ require 'ruby-kubernetes-controller'
1743
+
1744
+ endpoint = "localhost"
1745
+ bearer_token = "token"
1746
+ ssl = false
1747
+
1748
+ # With JSON
1749
+ json_client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl, yaml = false)
1750
+ namespace = "default"
1751
+ job_name = "job"
1752
+ json_options =
1753
+ '{
1754
+ "kind": "Job",
1755
+ "apiVersion": "extensions/v1beta1",
1756
+ ...
1757
+ }'
1758
+
1759
+ puts json_client.delete_job(namespace, job_name, json_options) # Returns JSON
1760
+
1761
+ # With YAML
1762
+ yaml_client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl, yaml = true)
1763
+ namespace = "default"
1764
+ job_name = "job"
1765
+ yaml_file_path = 'path/to/file.yaml'
1766
+
1767
+ puts yaml_client.delete_job(namespace, job_name, yaml_file_path) # Returns JSON
1768
+ ```
1769
+
1606
1770
  [SERVICEACCOUNT]: https://github.com/IBM/ruby-kubernetes-controller/blob/master/Documentation/serviceaccount.yaml
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Ruby Kubernetes Controller
2
2
 
3
- Current Build: [![CircleCI](https://circleci.com/gh/IBM/ruby-kubernetes-controller.svg?style=svg)](https://circleci.com/gh/IBM/ruby-kubernetes-controller)
3
+ [![CircleCI](https://circleci.com/gh/IBM/ruby-kubernetes-controller.svg?style=svg)](https://circleci.com/gh/IBM/ruby-kubernetes-controller) [![Gem Version](https://badge.fury.io/rb/ruby-kubernetes-controller.svg)](https://badge.fury.io/rb/ruby-kubernetes-controller) [![RubyGems](https://img.shields.io/gem/dt/ruby-kubernetes-controller.svg?color=FF502A&label=gem%20downloads&style=popout)](https://rubygems.org/gems/ruby-kubernetes-controller) [![License](https://img.shields.io/github/license/ibm/ruby-kubernetes-controller.svg)](https://github.com/IBM/ruby-kubernetes-controller/blob/master/LICENSE.txt)
4
4
 
5
5
  `Ruby Kubernetes Controller` is a Client-Side library which allows users to
6
6
  interact with core Kubernetes APIs natively from within their
@@ -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 Jobs
9
+ include Generic
10
+
11
+ # Create new Job
12
+ def create_new_job(namespace, config)
13
+ extension = "/apis/batch/v1/namespaces/#{namespace}/jobs"
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 Jobs
40
+ def get_all_jobs
41
+ extension = "/apis/batch/v1/jobs"
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 Jobs in Namespace
61
+ def get_all_namespaced_jobs(namespace)
62
+ extension = "/apis/batch/v1/namespaces/#{namespace}/jobs"
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 Job in Namespace
82
+ def get_single_namespaced_job(namespace, job_name)
83
+ extension = "/apis/batch/v1/namespaces/#{namespace}/jobs/#{job_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 Job in Namespace
102
+ def update_namespaced_job(namespace, job_name, update)
103
+ extension = "/apis/batch/v1/namespaces/#{namespace}/jobs/#{job_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 Job in Namespace
131
+ def patch_job(namespace, job_name, patch)
132
+ extension = "/apis/batch/v1/namespaces/#{namespace}/jobs/#{job_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 Job in Namespace
154
+ def delete_job(namespace, job_name, options = '')
155
+ extension = "/apis/batch/v1/namespaces/#{namespace}/jobs/#{job_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
@@ -1,4 +1,4 @@
1
1
  # Part of the RubyKubernetesController module
2
2
  module RubyKubernetesController
3
- VERSION = "0.1.0"
3
+ VERSION = "0.2.1"
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-kubernetes-controller
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shivansh Vij (ShivanshVij)
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: exe
12
12
  cert_chain: []
13
- date: 2019-06-10 00:00:00.000000000 Z
13
+ date: 2019-08-01 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: bundler
@@ -105,6 +105,7 @@ files:
105
105
  - lib/ruby-kubernetes-controller/endpoints.rb
106
106
  - lib/ruby-kubernetes-controller/generic.rb
107
107
  - lib/ruby-kubernetes-controller/ingresses.rb
108
+ - lib/ruby-kubernetes-controller/jobs.rb
108
109
  - lib/ruby-kubernetes-controller/namespaces.rb
109
110
  - lib/ruby-kubernetes-controller/nodes.rb
110
111
  - lib/ruby-kubernetes-controller/persistentvolumeclaims.rb