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
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: e1d7bfdc1de0725fb1f2d4cad6780c71f58bc8dd619836d80514f81f80c706ac
|
4
|
+
data.tar.gz: 4650e322ec9b9ef297e782e17f0b245f16e05d8432aecb8ef1c02d6b6896e054
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: b6637290fee0b38a28187a4f4f9ca100eef89de7476ebe7feacda2b23e97697111532ceb9a66358b3f0b389def34ce5fedbf77b3229366cc5ad6279cc676dc4d
|
7
|
+
data.tar.gz: dc1339715316475a8600ab9d5d5eeec4259a2554a42dd95e2fcf9579e250095093cc48324249174e1de407176b5b564cf32de9512bd1ab368932790a3c5f39c5
|
@@ -0,0 +1,131 @@
|
|
1
|
+
# Ruby CircleCI 2.0 configuration file
|
2
|
+
#
|
3
|
+
# Check https://circleci.com/docs/2.0/language-ruby/ for more details
|
4
|
+
#
|
5
|
+
jobs:
|
6
|
+
build:
|
7
|
+
docker:
|
8
|
+
- image: circleci/ruby:2.6.3
|
9
|
+
|
10
|
+
working_directory: ~/repo
|
11
|
+
steps:
|
12
|
+
- checkout
|
13
|
+
- run:
|
14
|
+
name: Install Bundler
|
15
|
+
command: gem install bundler
|
16
|
+
- restore_cache:
|
17
|
+
keys:
|
18
|
+
- ruby-kubernetes-controller-{{ checksum "ruby-kubernetes-controller.gemspec" }}
|
19
|
+
# fallback to using the latest cache if no exact match is found
|
20
|
+
- ruby-kubernetes-controller-
|
21
|
+
- run:
|
22
|
+
name: Install Bundles
|
23
|
+
command: bundle check || bundle install
|
24
|
+
- save_cache:
|
25
|
+
paths:
|
26
|
+
- ./vendor/bundle
|
27
|
+
key: ruby-kubernetes-controller-{{ checksum "ruby-kubernetes-controller.gemspec" }}
|
28
|
+
- run:
|
29
|
+
name: Build gem
|
30
|
+
command: gem build ruby-kubernetes-controller.gemspec
|
31
|
+
|
32
|
+
test:
|
33
|
+
docker:
|
34
|
+
- image: circleci/ruby:2.6.3
|
35
|
+
|
36
|
+
working_directory: ~/repo
|
37
|
+
steps:
|
38
|
+
- checkout
|
39
|
+
- run:
|
40
|
+
name: Install Bundler
|
41
|
+
command: gem install bundler
|
42
|
+
- restore_cache:
|
43
|
+
keys:
|
44
|
+
- ruby-kubernetes-controller-{{ checksum "ruby-kubernetes-controller.gemspec" }}
|
45
|
+
# fallback to using the latest cache if no exact match is found
|
46
|
+
- ruby-kubernetes-controller-
|
47
|
+
- run:
|
48
|
+
name: Install Bundles
|
49
|
+
command: bundle check || bundle install
|
50
|
+
- save_cache:
|
51
|
+
paths:
|
52
|
+
- ./vendor/bundle
|
53
|
+
key: ruby-kubernetes-controller-{{ checksum "ruby-kubernetes-controller.gemspec" }}
|
54
|
+
- run:
|
55
|
+
name:
|
56
|
+
command: bundle exec rake test
|
57
|
+
when: always
|
58
|
+
- store_test_results:
|
59
|
+
path: test/reports
|
60
|
+
|
61
|
+
publish:
|
62
|
+
docker:
|
63
|
+
- image: circleci/ruby:2.6.3
|
64
|
+
|
65
|
+
working_directory: ~/repo
|
66
|
+
steps:
|
67
|
+
- checkout
|
68
|
+
- run:
|
69
|
+
name: Setup Rubygems
|
70
|
+
command: bash .circleci/setup-rubygems.sh
|
71
|
+
|
72
|
+
- run:
|
73
|
+
name: Publish to Rubygems
|
74
|
+
command: |
|
75
|
+
gem build ruby-kubernetes-controller.gemspec
|
76
|
+
gem push ruby-kubernetes-controller-$CIRCLE_TAG.gem
|
77
|
+
|
78
|
+
workflows:
|
79
|
+
version: 2
|
80
|
+
development-build:
|
81
|
+
jobs:
|
82
|
+
- build:
|
83
|
+
filters:
|
84
|
+
tags:
|
85
|
+
only: /^dev.*/
|
86
|
+
branches:
|
87
|
+
ignore: /.*/
|
88
|
+
- test:
|
89
|
+
requires:
|
90
|
+
- build
|
91
|
+
filters:
|
92
|
+
tags:
|
93
|
+
only: /^dev.*/
|
94
|
+
branches:
|
95
|
+
ignore: /.*/
|
96
|
+
production-build:
|
97
|
+
jobs:
|
98
|
+
- build:
|
99
|
+
filters:
|
100
|
+
tags:
|
101
|
+
only: /^\d+(\.\d+)*$/
|
102
|
+
branches:
|
103
|
+
ignore: /.*/
|
104
|
+
- test:
|
105
|
+
requires:
|
106
|
+
- build
|
107
|
+
filters:
|
108
|
+
tags:
|
109
|
+
only: /^\d+(\.\d+)*$/
|
110
|
+
branches:
|
111
|
+
ignore: /.*/
|
112
|
+
- hold:
|
113
|
+
type: approval
|
114
|
+
requires:
|
115
|
+
- test
|
116
|
+
- build
|
117
|
+
filters:
|
118
|
+
tags:
|
119
|
+
only: /^\d+(\.\d+)*$/
|
120
|
+
branches:
|
121
|
+
ignore: /.*/
|
122
|
+
- publish:
|
123
|
+
requires:
|
124
|
+
- build
|
125
|
+
- test
|
126
|
+
- hold
|
127
|
+
filters:
|
128
|
+
tags:
|
129
|
+
only: /^\d+(\.\d+)*$/
|
130
|
+
branches:
|
131
|
+
ignore: /.*/
|
data/.gitignore
ADDED
data/CODE_OF_CONDUCT.md
ADDED
@@ -0,0 +1,74 @@
|
|
1
|
+
# Contributor Covenant Code of Conduct
|
2
|
+
|
3
|
+
## Our Pledge
|
4
|
+
|
5
|
+
In the interest of fostering an open and welcoming environment, we as
|
6
|
+
contributors and maintainers pledge to making participation in our project and
|
7
|
+
our community a harassment-free experience for everyone, regardless of age, body
|
8
|
+
size, disability, ethnicity, gender identity and expression, level of experience,
|
9
|
+
nationality, personal appearance, race, religion, or sexual identity and
|
10
|
+
orientation.
|
11
|
+
|
12
|
+
## Our Standards
|
13
|
+
|
14
|
+
Examples of behavior that contributes to creating a positive environment
|
15
|
+
include:
|
16
|
+
|
17
|
+
* Using welcoming and inclusive language
|
18
|
+
* Being respectful of differing viewpoints and experiences
|
19
|
+
* Gracefully accepting constructive criticism
|
20
|
+
* Focusing on what is best for the community
|
21
|
+
* Showing empathy towards other community members
|
22
|
+
|
23
|
+
Examples of unacceptable behavior by participants include:
|
24
|
+
|
25
|
+
* The use of sexualized language or imagery and unwelcome sexual attention or
|
26
|
+
advances
|
27
|
+
* Trolling, insulting/derogatory comments, and personal or political attacks
|
28
|
+
* Public or private harassment
|
29
|
+
* Publishing others' private information, such as a physical or electronic
|
30
|
+
address, without explicit permission
|
31
|
+
* Other conduct which could reasonably be considered inappropriate in a
|
32
|
+
professional setting
|
33
|
+
|
34
|
+
## Our Responsibilities
|
35
|
+
|
36
|
+
Project maintainers are responsible for clarifying the standards of acceptable
|
37
|
+
behavior and are expected to take appropriate and fair corrective action in
|
38
|
+
response to any instances of unacceptable behavior.
|
39
|
+
|
40
|
+
Project maintainers have the right and responsibility to remove, edit, or
|
41
|
+
reject comments, commits, code, wiki edits, issues, and other contributions
|
42
|
+
that are not aligned to this Code of Conduct, or to ban temporarily or
|
43
|
+
permanently any contributor for other behaviors that they deem inappropriate,
|
44
|
+
threatening, offensive, or harmful.
|
45
|
+
|
46
|
+
## Scope
|
47
|
+
|
48
|
+
This Code of Conduct applies both within project spaces and in public spaces
|
49
|
+
when an individual is representing the project or its community. Examples of
|
50
|
+
representing a project or community include using an official project e-mail
|
51
|
+
address, posting via an official social media account, or acting as an appointed
|
52
|
+
representative at an online or offline event. Representation of a project may be
|
53
|
+
further defined and clarified by project maintainers.
|
54
|
+
|
55
|
+
## Enforcement
|
56
|
+
|
57
|
+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
58
|
+
reported by contacting the project team at shivanshvij@ibm.com. All
|
59
|
+
complaints will be reviewed and investigated and will result in a response that
|
60
|
+
is deemed necessary and appropriate to the circumstances. The project team is
|
61
|
+
obligated to maintain confidentiality with regard to the reporter of an incident.
|
62
|
+
Further details of specific enforcement policies may be posted separately.
|
63
|
+
|
64
|
+
Project maintainers who do not follow or enforce the Code of Conduct in good
|
65
|
+
faith may face temporary or permanent repercussions as determined by other
|
66
|
+
members of the project's leadership.
|
67
|
+
|
68
|
+
## Attribution
|
69
|
+
|
70
|
+
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
|
71
|
+
available at [http://contributor-covenant.org/version/1/4/][version]
|
72
|
+
|
73
|
+
[homepage]: http://contributor-covenant.org
|
74
|
+
[version]: http://contributor-covenant.org/version/1/4/
|
@@ -0,0 +1,1606 @@
|
|
1
|
+
# Documentation
|
2
|
+
|
3
|
+
## Pre-requisites
|
4
|
+
Before beginning, you must generate a bearer token for the Ruby Kubernetes Controller to use:
|
5
|
+
|
6
|
+
|
7
|
+
1. Save the following as `serviceaccount.yaml` (file available [here][SERVICEACCOUNT])
|
8
|
+
<p align="center"><img width=100% src="./serviceaccount.png"></p>
|
9
|
+
2. Run the following in a terminal, with `kubectl` pre-configured for your existing cluster
|
10
|
+
```bash
|
11
|
+
$ kubectl apply -f serviceaccount.yaml
|
12
|
+
$ kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')
|
13
|
+
```
|
14
|
+
3. Copy down your bearer token
|
15
|
+
4. You can get your endpoint by running `kubectl cluster-info`
|
16
|
+
|
17
|
+
###### Source: https://github.com/kubernetes/dashboard/wiki/Creating-sample-user
|
18
|
+
#### Get Nodes
|
19
|
+
* List all nodes
|
20
|
+
```ruby
|
21
|
+
require 'ruby-kubernetes-controller'
|
22
|
+
|
23
|
+
endpoint = "localhost"
|
24
|
+
bearer_token = "token"
|
25
|
+
ssl = false
|
26
|
+
|
27
|
+
client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl)
|
28
|
+
|
29
|
+
puts client.get_nodes # Returns JSON
|
30
|
+
```
|
31
|
+
#### Create Namespace
|
32
|
+
* Create new Namespace
|
33
|
+
* Config options documentation available at: https://kubernetes.io/docs/reference/federation/v1/definitions/#_v1_namespace
|
34
|
+
```ruby
|
35
|
+
require 'ruby-kubernetes-controller'
|
36
|
+
|
37
|
+
endpoint = "localhost"
|
38
|
+
bearer_token = "token"
|
39
|
+
ssl = false
|
40
|
+
|
41
|
+
# With JSON
|
42
|
+
json_client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl, yaml = false)
|
43
|
+
json_config =
|
44
|
+
'{
|
45
|
+
"kind": "Namespace",
|
46
|
+
"apiVersion": "v1",
|
47
|
+
...
|
48
|
+
}'
|
49
|
+
|
50
|
+
puts json_client.create_new_namespace(json_config) # Returns JSON
|
51
|
+
|
52
|
+
# With YAML
|
53
|
+
yaml_client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl, yaml = true)
|
54
|
+
yaml_file_path = '/path/to/file.yaml'
|
55
|
+
|
56
|
+
puts yaml_client.create_new_namespace(yaml_file_path) # Returns JSON
|
57
|
+
```
|
58
|
+
|
59
|
+
#### Get Namespaces
|
60
|
+
* List all Namespaces
|
61
|
+
```ruby
|
62
|
+
require 'ruby-kubernetes-controller'
|
63
|
+
|
64
|
+
endpoint = "localhost"
|
65
|
+
bearer_token = "token"
|
66
|
+
ssl = false
|
67
|
+
|
68
|
+
client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl)
|
69
|
+
|
70
|
+
puts client.get_all_namespaces # Returns JSON
|
71
|
+
```
|
72
|
+
|
73
|
+
#### Update Namespace
|
74
|
+
* Update existing Namespace
|
75
|
+
* Update options documentation available at: https://kubernetes.io/docs/reference/federation/v1/definitions/#_v1_namespace
|
76
|
+
```ruby
|
77
|
+
require 'ruby-kubernetes-controller'
|
78
|
+
|
79
|
+
endpoint = "localhost"
|
80
|
+
bearer_token = "token"
|
81
|
+
ssl = false
|
82
|
+
|
83
|
+
# With JSON
|
84
|
+
json_client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl, yaml = false)
|
85
|
+
namespace = "default"
|
86
|
+
json_update =
|
87
|
+
'{
|
88
|
+
"kind": "Namespace",
|
89
|
+
"apiVersion": "v1",
|
90
|
+
...
|
91
|
+
}'
|
92
|
+
|
93
|
+
puts json_client.update_namespace(namespace, json_update) # Returns JSON
|
94
|
+
|
95
|
+
# With YAML
|
96
|
+
yaml_client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl, yaml = true)
|
97
|
+
namespace = "default"
|
98
|
+
yaml_file_path = '/path/to/file.yaml'
|
99
|
+
|
100
|
+
puts yaml_client.update_namespace(namespace, yaml_file_path) # Returns JSON
|
101
|
+
```
|
102
|
+
|
103
|
+
#### Patch Namespace
|
104
|
+
* Patch existing Namespace
|
105
|
+
* Patch Format documentation available at: http://jsonpatch.com/
|
106
|
+
```ruby
|
107
|
+
require 'ruby-kubernetes-controller'
|
108
|
+
|
109
|
+
endpoint = "localhost"
|
110
|
+
bearer_token = "token"
|
111
|
+
ssl = false
|
112
|
+
|
113
|
+
client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl)
|
114
|
+
|
115
|
+
namespace = "default"
|
116
|
+
patch =
|
117
|
+
'[
|
118
|
+
{ "op": "replace", "path": "/baz", "value": "boo" },
|
119
|
+
{ "op": "add", "path": "/hello", "value": ["world"] },
|
120
|
+
{ "op": "remove", "path": "/foo" }
|
121
|
+
]'
|
122
|
+
|
123
|
+
puts client.patch_namespace(namespace, patch) # Returns JSON
|
124
|
+
```
|
125
|
+
|
126
|
+
#### Delete Namespace
|
127
|
+
* Delete existing Namespace
|
128
|
+
* Delete options documentation available at: https://kubernetes.io/docs/reference/federation/v1/definitions/#_v1_deleteoptions
|
129
|
+
```ruby
|
130
|
+
require 'ruby-kubernetes-controller'
|
131
|
+
|
132
|
+
endpoint = "localhost"
|
133
|
+
bearer_token = "token"
|
134
|
+
ssl = false
|
135
|
+
|
136
|
+
# With JSON
|
137
|
+
json_client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl, yaml = false)
|
138
|
+
namespace = "default"
|
139
|
+
json_options =
|
140
|
+
'{
|
141
|
+
"kind": "Namespace",
|
142
|
+
"apiVersion": "v1",
|
143
|
+
...
|
144
|
+
}'
|
145
|
+
|
146
|
+
puts json_client.delete_namespace(namespace, json_options) # Returns JSON
|
147
|
+
|
148
|
+
# With YAML
|
149
|
+
yaml_client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl, yaml = true)
|
150
|
+
namespace = "default"
|
151
|
+
yaml_file_path = 'path/to/file.yaml'
|
152
|
+
|
153
|
+
puts yaml_client.delete_namespace(namespace, yaml_file_path) # Returns JSON
|
154
|
+
```
|
155
|
+
|
156
|
+
#### Create Ingress
|
157
|
+
* Create new Ingress
|
158
|
+
* Config options documentation available at: https://kubernetes.io/docs/reference/federation/extensions/v1beta1/definitions/#_v1beta1_ingress
|
159
|
+
```ruby
|
160
|
+
require 'ruby-kubernetes-controller'
|
161
|
+
|
162
|
+
endpoint = "localhost"
|
163
|
+
bearer_token = "token"
|
164
|
+
ssl = false
|
165
|
+
|
166
|
+
# With JSON
|
167
|
+
json_client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl, yaml = false)
|
168
|
+
namespace = "default"
|
169
|
+
json_config =
|
170
|
+
'{
|
171
|
+
"kind": "Ingress",
|
172
|
+
"apiVersion": "extensions/v1beta1",
|
173
|
+
...
|
174
|
+
}'
|
175
|
+
|
176
|
+
puts json_client.create_new_ingress(namespace, json_config) # Returns JSON
|
177
|
+
|
178
|
+
# With YAML
|
179
|
+
yaml_client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl, yaml = true)
|
180
|
+
namespace = "default"
|
181
|
+
yaml_file_path = 'path/to/file.yaml'
|
182
|
+
|
183
|
+
puts yaml_client.create_new_ingress(namespace, yaml_file_path) # Returns JSON
|
184
|
+
```
|
185
|
+
|
186
|
+
#### Get Ingresses
|
187
|
+
* List all Ingresses
|
188
|
+
```ruby
|
189
|
+
require 'ruby-kubernetes-controller'
|
190
|
+
|
191
|
+
endpoint = "localhost"
|
192
|
+
bearer_token = "token"
|
193
|
+
ssl = false
|
194
|
+
|
195
|
+
client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl)
|
196
|
+
|
197
|
+
puts client.get_all_ingresses # Returns JSON
|
198
|
+
```
|
199
|
+
|
200
|
+
#### Get Namespaced Ingresses
|
201
|
+
* List all existing Ingresses in Namespace
|
202
|
+
```ruby
|
203
|
+
require 'ruby-kubernetes-controller'
|
204
|
+
|
205
|
+
endpoint = "localhost"
|
206
|
+
bearer_token = "token"
|
207
|
+
ssl = false
|
208
|
+
|
209
|
+
client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl)
|
210
|
+
|
211
|
+
namespace = "default"
|
212
|
+
|
213
|
+
puts client.get_all_namespaced_ingresses(namespace) # Returns JSON
|
214
|
+
```
|
215
|
+
|
216
|
+
#### Get Single Namespaced Ingress
|
217
|
+
* Get details for single Ingress in Namespace
|
218
|
+
```ruby
|
219
|
+
require 'ruby-kubernetes-controller'
|
220
|
+
|
221
|
+
endpoint = "localhost"
|
222
|
+
bearer_token = "token"
|
223
|
+
ssl = false
|
224
|
+
|
225
|
+
client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl)
|
226
|
+
|
227
|
+
namespace = "default"
|
228
|
+
ingress_name = "ingress"
|
229
|
+
|
230
|
+
puts client.get_single_namespaced_ingress(namespace, ingress_name) # Returns JSON
|
231
|
+
```
|
232
|
+
|
233
|
+
#### Update Ingress
|
234
|
+
* Update existing Ingress in Namespace
|
235
|
+
* Update options documentation available at: https://kubernetes.io/docs/reference/federation/extensions/v1beta1/definitions/#_v1beta1_ingress
|
236
|
+
```ruby
|
237
|
+
require 'ruby-kubernetes-controller'
|
238
|
+
|
239
|
+
endpoint = "localhost"
|
240
|
+
bearer_token = "token"
|
241
|
+
ssl = false
|
242
|
+
|
243
|
+
# With JSON
|
244
|
+
json_client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl, yaml = false)
|
245
|
+
namespace = "default"
|
246
|
+
ingress_name = "ingress"
|
247
|
+
json_update =
|
248
|
+
'{
|
249
|
+
"kind": "Ingress",
|
250
|
+
"apiVersion": "extensions/v1beta1",
|
251
|
+
...
|
252
|
+
}'
|
253
|
+
|
254
|
+
puts json_client.update_namespaced_ingress(namespace, ingress_name, json_update) # Returns JSON
|
255
|
+
|
256
|
+
# With YAML
|
257
|
+
yaml_client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl, yaml = true)
|
258
|
+
namespace = "default"
|
259
|
+
ingress_name = "ingress"
|
260
|
+
yaml_file_path = 'path/to/file.yaml'
|
261
|
+
|
262
|
+
puts yaml_client.update_namespaced_ingress(namespace, ingress_name, yaml_file_path) # Returns JSON
|
263
|
+
```
|
264
|
+
|
265
|
+
#### Patch Ingress
|
266
|
+
* Patch existing Ingress
|
267
|
+
* Patch Format documentation available at: http://jsonpatch.com/
|
268
|
+
```ruby
|
269
|
+
require 'ruby-kubernetes-controller'
|
270
|
+
|
271
|
+
endpoint = "localhost"
|
272
|
+
bearer_token = "token"
|
273
|
+
ssl = false
|
274
|
+
|
275
|
+
client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl)
|
276
|
+
|
277
|
+
namespace = "default"
|
278
|
+
ingress_name = "ingress"
|
279
|
+
patch =
|
280
|
+
'[
|
281
|
+
{ "op": "replace", "path": "/baz", "value": "boo" },
|
282
|
+
{ "op": "add", "path": "/hello", "value": ["world"] },
|
283
|
+
{ "op": "remove", "path": "/foo" }
|
284
|
+
]'
|
285
|
+
|
286
|
+
puts client.patch_ingress(namespace, ingress_name, patch) # Returns JSON
|
287
|
+
```
|
288
|
+
|
289
|
+
#### Delete Ingress
|
290
|
+
* Delete existing Ingress
|
291
|
+
* Delete options documentation available at: https://kubernetes.io/docs/reference/federation/v1/definitions/#_v1_deleteoptions
|
292
|
+
```ruby
|
293
|
+
require 'ruby-kubernetes-controller'
|
294
|
+
|
295
|
+
endpoint = "localhost"
|
296
|
+
bearer_token = "token"
|
297
|
+
ssl = false
|
298
|
+
|
299
|
+
# With JSON
|
300
|
+
json_client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl, yaml = false)
|
301
|
+
namespace = "default"
|
302
|
+
ingress_name = "ingress"
|
303
|
+
json_options =
|
304
|
+
'{
|
305
|
+
"kind": "Ingress",
|
306
|
+
"apiVersion": "extensions/v1beta1",
|
307
|
+
...
|
308
|
+
}'
|
309
|
+
|
310
|
+
puts json_client.delete_ingress(namespace, ingress_name, json_options) # Returns JSON
|
311
|
+
|
312
|
+
# With YAML
|
313
|
+
yaml_client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl, yaml = true)
|
314
|
+
namespace = "default"
|
315
|
+
ingress_name = "ingress"
|
316
|
+
yaml_file_path = 'path/to/file.yaml'
|
317
|
+
|
318
|
+
puts yaml_client.delete_ingress(namespace, ingress_name, yaml_file_path) # Returns JSON
|
319
|
+
```
|
320
|
+
|
321
|
+
#### Create Endpoint
|
322
|
+
* Create new Endpoint
|
323
|
+
* Config options documentation available at: https://kubernetes.io/docs/reference/federation/v1/definitions/#_v1_service
|
324
|
+
```ruby
|
325
|
+
require 'ruby-kubernetes-controller'
|
326
|
+
|
327
|
+
endpoint = "localhost"
|
328
|
+
bearer_token = "token"
|
329
|
+
ssl = false
|
330
|
+
|
331
|
+
# With JSON
|
332
|
+
json_client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl, yaml = false)
|
333
|
+
namespace = "default"
|
334
|
+
json_config =
|
335
|
+
'{
|
336
|
+
"kind": "Endpoints",
|
337
|
+
"apiVersion": "v1",
|
338
|
+
...
|
339
|
+
}'
|
340
|
+
|
341
|
+
puts json_client.create_new_endpoint(namespace, json_config) # Returns JSON
|
342
|
+
|
343
|
+
# With YAML
|
344
|
+
yaml_client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl, yaml = true)
|
345
|
+
namespace = "default"
|
346
|
+
yaml_file_path = 'path/to/file.yaml'
|
347
|
+
|
348
|
+
puts yaml_client.create_new_endpoint(namespace, yaml_file_path) # Returns JSON
|
349
|
+
```
|
350
|
+
|
351
|
+
#### Get Endpoints
|
352
|
+
* List all Endpoints
|
353
|
+
```ruby
|
354
|
+
require 'ruby-kubernetes-controller'
|
355
|
+
|
356
|
+
endpoint = "localhost"
|
357
|
+
bearer_token = "token"
|
358
|
+
ssl = false
|
359
|
+
|
360
|
+
client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl)
|
361
|
+
|
362
|
+
puts client.get_all_endpoints # Returns JSON
|
363
|
+
```
|
364
|
+
|
365
|
+
#### Get Namespaced Endpoints
|
366
|
+
* List all existing Endpoints in Namespace
|
367
|
+
```ruby
|
368
|
+
require 'ruby-kubernetes-controller'
|
369
|
+
|
370
|
+
endpoint = "localhost"
|
371
|
+
bearer_token = "token"
|
372
|
+
ssl = false
|
373
|
+
|
374
|
+
client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl)
|
375
|
+
|
376
|
+
namespace = "default"
|
377
|
+
|
378
|
+
puts client.get_all_namespaced_endpoints(namespace) # Returns JSON
|
379
|
+
```
|
380
|
+
|
381
|
+
#### Get Single Namespaced Endpoint
|
382
|
+
* Get details for single Endpoint in Namespace
|
383
|
+
```ruby
|
384
|
+
require 'ruby-kubernetes-controller'
|
385
|
+
|
386
|
+
endpoint = "localhost"
|
387
|
+
bearer_token = "token"
|
388
|
+
ssl = false
|
389
|
+
|
390
|
+
client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl)
|
391
|
+
|
392
|
+
namespace = "default"
|
393
|
+
endpoint_name = "endpoint"
|
394
|
+
|
395
|
+
puts client.get_single_namespaced_endpoint(namespace, endpoint_name) # Returns JSON
|
396
|
+
```
|
397
|
+
|
398
|
+
#### Update Endpoint
|
399
|
+
* Update existing Endpoint in Namespace
|
400
|
+
* Update options documentation available at: https://kubernetes.io/docs/reference/federation/v1/definitions/#_v1_service
|
401
|
+
```ruby
|
402
|
+
require 'ruby-kubernetes-controller'
|
403
|
+
|
404
|
+
endpoint = "localhost"
|
405
|
+
bearer_token = "token"
|
406
|
+
ssl = false
|
407
|
+
|
408
|
+
# With JSON
|
409
|
+
json_client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl, yaml = false)
|
410
|
+
namespace = "default"
|
411
|
+
endpoint_name = "endpoint"
|
412
|
+
json_update =
|
413
|
+
'{
|
414
|
+
"kind": "Endpoints",
|
415
|
+
"apiVersion": "v1",
|
416
|
+
...
|
417
|
+
}'
|
418
|
+
|
419
|
+
puts json_client.update_namespaced_endpoint(namespace, endpoint_name, json_update) # Returns JSON
|
420
|
+
|
421
|
+
# With YAML
|
422
|
+
yaml_client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl, yaml = true)
|
423
|
+
namespace = "default"
|
424
|
+
endpoint_name = "endpoint"
|
425
|
+
yaml_file_path = 'path/to/file.yaml'
|
426
|
+
|
427
|
+
puts yaml_client.update_namespaced_endpoint(namespace, endpoint_name, yaml_file_path) # Returns JSON
|
428
|
+
```
|
429
|
+
|
430
|
+
#### Patch Endpoint
|
431
|
+
* Patch existing Endpoint
|
432
|
+
* Patch Format documentation available at: http://jsonpatch.com/
|
433
|
+
```ruby
|
434
|
+
require 'ruby-kubernetes-controller'
|
435
|
+
|
436
|
+
endpoint = "localhost"
|
437
|
+
bearer_token = "token"
|
438
|
+
ssl = false
|
439
|
+
|
440
|
+
client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl)
|
441
|
+
|
442
|
+
namespace = "default"
|
443
|
+
endpoint_name = "endpoint"
|
444
|
+
patch =
|
445
|
+
'[
|
446
|
+
{ "op": "replace", "path": "/baz", "value": "boo" },
|
447
|
+
{ "op": "add", "path": "/hello", "value": ["world"] },
|
448
|
+
{ "op": "remove", "path": "/foo" }
|
449
|
+
]'
|
450
|
+
|
451
|
+
puts client.patch_endpoint(namespace, endpoint_name, patch) # Returns JSON
|
452
|
+
```
|
453
|
+
|
454
|
+
#### Delete Endpoint
|
455
|
+
* Delete existing Endpoint
|
456
|
+
* Delete options documentation available at: https://kubernetes.io/docs/reference/federation/v1/definitions/#_v1_deleteoptions
|
457
|
+
```ruby
|
458
|
+
require 'ruby-kubernetes-controller'
|
459
|
+
|
460
|
+
endpoint = "localhost"
|
461
|
+
bearer_token = "token"
|
462
|
+
ssl = false
|
463
|
+
|
464
|
+
# With JSON
|
465
|
+
json_client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl, yaml = false)
|
466
|
+
namespace = "default"
|
467
|
+
endpoint_name = "endpoint"
|
468
|
+
json_options =
|
469
|
+
'{
|
470
|
+
"kind": "Endpoints",
|
471
|
+
"apiVersion": "v1",
|
472
|
+
...
|
473
|
+
}'
|
474
|
+
|
475
|
+
puts json_client.delete_endpoint(namespace, endpoint_name, json_options) # Returns JSON
|
476
|
+
|
477
|
+
# With YAML
|
478
|
+
yaml_client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl, yaml = true)
|
479
|
+
namespace = "default"
|
480
|
+
endpoint_name = "endpoint"
|
481
|
+
yaml_file_path = 'path/to/file.yaml'
|
482
|
+
|
483
|
+
puts yaml_client.delete_endpoint(namespace, endpoint_name, yaml_file_path) # Returns JSON
|
484
|
+
```
|
485
|
+
|
486
|
+
#### Create Pod
|
487
|
+
* Create new Pod
|
488
|
+
* Config options documentation available at: https://kubernetes.io/docs/reference/federation/v1/definitions/#_v1_service
|
489
|
+
```ruby
|
490
|
+
require 'ruby-kubernetes-controller'
|
491
|
+
|
492
|
+
pod = "localhost"
|
493
|
+
bearer_token = "token"
|
494
|
+
ssl = false
|
495
|
+
|
496
|
+
# With JSON
|
497
|
+
json_client = ::RubyKubernetesController::Client.new(pod, bearer_token, ssl, yaml = false)
|
498
|
+
namespace = "default"
|
499
|
+
json_config =
|
500
|
+
'{
|
501
|
+
"kind": "Pod",
|
502
|
+
"apiVersion": "v1",
|
503
|
+
...
|
504
|
+
}'
|
505
|
+
|
506
|
+
puts json_client.create_new_pod(namespace, json_config) # Returns JSON
|
507
|
+
|
508
|
+
# With YAML
|
509
|
+
yaml_client = ::RubyKubernetesController::Client.new(pod, bearer_token, ssl, yaml = true)
|
510
|
+
namespace = "default"
|
511
|
+
yaml_file_path = 'path/to/file.yaml'
|
512
|
+
|
513
|
+
puts yaml_client.create_new_pod(namespace, yaml_file_path) # Returns JSON
|
514
|
+
```
|
515
|
+
|
516
|
+
#### Get Pods
|
517
|
+
* List all Pods
|
518
|
+
```ruby
|
519
|
+
require 'ruby-kubernetes-controller'
|
520
|
+
|
521
|
+
pod = "localhost"
|
522
|
+
bearer_token = "token"
|
523
|
+
ssl = false
|
524
|
+
|
525
|
+
client = ::RubyKubernetesController::Client.new(pod, bearer_token, ssl)
|
526
|
+
|
527
|
+
puts client.get_all_pods # Returns JSON
|
528
|
+
```
|
529
|
+
|
530
|
+
#### Get Namespaced Pods
|
531
|
+
* List all existing Pods in Namespace
|
532
|
+
```ruby
|
533
|
+
require 'ruby-kubernetes-controller'
|
534
|
+
|
535
|
+
pod = "localhost"
|
536
|
+
bearer_token = "token"
|
537
|
+
ssl = false
|
538
|
+
|
539
|
+
client = ::RubyKubernetesController::Client.new(pod, bearer_token, ssl)
|
540
|
+
|
541
|
+
namespace = "default"
|
542
|
+
|
543
|
+
puts client.get_all_namespaced_pods(namespace) # Returns JSON
|
544
|
+
```
|
545
|
+
|
546
|
+
#### Get Single Namespaced Pod
|
547
|
+
* Get details for single Pod in Namespace
|
548
|
+
```ruby
|
549
|
+
require 'ruby-kubernetes-controller'
|
550
|
+
|
551
|
+
pod = "localhost"
|
552
|
+
bearer_token = "token"
|
553
|
+
ssl = false
|
554
|
+
|
555
|
+
client = ::RubyKubernetesController::Client.new(pod, bearer_token, ssl)
|
556
|
+
|
557
|
+
namespace = "default"
|
558
|
+
pod_name = "pod"
|
559
|
+
|
560
|
+
puts client.get_single_namespaced_pod(namespace, pod_name) # Returns JSON
|
561
|
+
```
|
562
|
+
|
563
|
+
#### Update Pod
|
564
|
+
* Update existing Pod in Namespace
|
565
|
+
* Update options documentation available at: https://kubernetes.io/docs/reference/federation/v1/definitions/#_v1_service
|
566
|
+
```ruby
|
567
|
+
require 'ruby-kubernetes-controller'
|
568
|
+
|
569
|
+
pod = "localhost"
|
570
|
+
bearer_token = "token"
|
571
|
+
ssl = false
|
572
|
+
|
573
|
+
# With JSON
|
574
|
+
json_client = ::RubyKubernetesController::Client.new(pod, bearer_token, ssl, yaml = false)
|
575
|
+
namespace = "default"
|
576
|
+
pod_name = "pod"
|
577
|
+
json_update =
|
578
|
+
'{
|
579
|
+
"kind": "Pod",
|
580
|
+
"apiVersion": "v1",
|
581
|
+
...
|
582
|
+
}'
|
583
|
+
|
584
|
+
puts json_client.update_namespaced_pod(namespace, pod_name, json_update) # Returns JSON
|
585
|
+
|
586
|
+
# With YAML
|
587
|
+
yaml_client = ::RubyKubernetesController::Client.new(pod, bearer_token, ssl, yaml = true)
|
588
|
+
namespace = "default"
|
589
|
+
pod_name = "pod"
|
590
|
+
yaml_file_path = 'path/to/file.yaml'
|
591
|
+
|
592
|
+
puts yaml_client.update_namespaced_pod(namespace, pod_name, yaml_file_path) # Returns JSON
|
593
|
+
```
|
594
|
+
|
595
|
+
#### Patch Pod
|
596
|
+
* Patch existing Pod
|
597
|
+
* Patch Format documentation available at: http://jsonpatch.com/
|
598
|
+
```ruby
|
599
|
+
require 'ruby-kubernetes-controller'
|
600
|
+
|
601
|
+
pod = "localhost"
|
602
|
+
bearer_token = "token"
|
603
|
+
ssl = false
|
604
|
+
|
605
|
+
client = ::RubyKubernetesController::Client.new(pod, bearer_token, ssl)
|
606
|
+
|
607
|
+
namespace = "default"
|
608
|
+
pod_name = "pod"
|
609
|
+
patch =
|
610
|
+
'[
|
611
|
+
{ "op": "replace", "path": "/baz", "value": "boo" },
|
612
|
+
{ "op": "add", "path": "/hello", "value": ["world"] },
|
613
|
+
{ "op": "remove", "path": "/foo" }
|
614
|
+
]'
|
615
|
+
|
616
|
+
puts client.patch_pod(namespace, pod_name, patch) # Returns JSON
|
617
|
+
```
|
618
|
+
|
619
|
+
#### Delete Pod
|
620
|
+
* Delete existing Pod
|
621
|
+
* Delete options documentation available at: https://kubernetes.io/docs/reference/federation/v1/definitions/#_v1_deleteoptions
|
622
|
+
```ruby
|
623
|
+
require 'ruby-kubernetes-controller'
|
624
|
+
|
625
|
+
pod = "localhost"
|
626
|
+
bearer_token = "token"
|
627
|
+
ssl = false
|
628
|
+
|
629
|
+
# With JSON
|
630
|
+
json_client = ::RubyKubernetesController::Client.new(pod, bearer_token, ssl, yaml = false)
|
631
|
+
namespace = "default"
|
632
|
+
pod_name = "pod"
|
633
|
+
json_options =
|
634
|
+
'{
|
635
|
+
"kind": "Pod",
|
636
|
+
"apiVersion": "v1",
|
637
|
+
...
|
638
|
+
}'
|
639
|
+
|
640
|
+
puts json_client.delete_pod(namespace, pod_name, json_options) # Returns JSON
|
641
|
+
|
642
|
+
# With YAML
|
643
|
+
yaml_client = ::RubyKubernetesController::Client.new(pod, bearer_token, ssl, yaml = true)
|
644
|
+
namespace = "default"
|
645
|
+
pod_name = "pod"
|
646
|
+
yaml_file_path = 'path/to/file.yaml'
|
647
|
+
|
648
|
+
puts yaml_client.delete_pod(namespace, pod_name, yaml_file_path) # Returns JSON
|
649
|
+
```
|
650
|
+
|
651
|
+
#### Create Service
|
652
|
+
* Create new Service
|
653
|
+
* Config options documentation available at: https://kubernetes.io/docs/reference/federation/v1/definitions/#_v1_service
|
654
|
+
```ruby
|
655
|
+
require 'ruby-kubernetes-controller'
|
656
|
+
|
657
|
+
service = "localhost"
|
658
|
+
bearer_token = "token"
|
659
|
+
ssl = false
|
660
|
+
|
661
|
+
# With JSON
|
662
|
+
json_client = ::RubyKubernetesController::Client.new(service, bearer_token, ssl, yaml = false)
|
663
|
+
namespace = "default"
|
664
|
+
json_config =
|
665
|
+
'{
|
666
|
+
"kind": "Service",
|
667
|
+
"apiVersion": "v1",
|
668
|
+
...
|
669
|
+
}'
|
670
|
+
|
671
|
+
puts json_client.create_new_service(namespace, json_config) # Returns JSON
|
672
|
+
|
673
|
+
# With YAML
|
674
|
+
yaml_client = ::RubyKubernetesController::Client.new(service, bearer_token, ssl, yaml = true)
|
675
|
+
namespace = "default"
|
676
|
+
yaml_file_path = 'path/to/file.yaml'
|
677
|
+
|
678
|
+
puts yaml_client.create_new_service(namespace, yaml_file_path) # Returns JSON
|
679
|
+
```
|
680
|
+
|
681
|
+
#### Get Services
|
682
|
+
* List all Services
|
683
|
+
```ruby
|
684
|
+
require 'ruby-kubernetes-controller'
|
685
|
+
|
686
|
+
service = "localhost"
|
687
|
+
bearer_token = "token"
|
688
|
+
ssl = false
|
689
|
+
|
690
|
+
client = ::RubyKubernetesController::Client.new(service, bearer_token, ssl)
|
691
|
+
|
692
|
+
puts client.get_all_services # Returns JSON
|
693
|
+
```
|
694
|
+
|
695
|
+
#### Get Namespaced Services
|
696
|
+
* List all existing Services in Namespace
|
697
|
+
```ruby
|
698
|
+
require 'ruby-kubernetes-controller'
|
699
|
+
|
700
|
+
service = "localhost"
|
701
|
+
bearer_token = "token"
|
702
|
+
ssl = false
|
703
|
+
|
704
|
+
client = ::RubyKubernetesController::Client.new(service, bearer_token, ssl)
|
705
|
+
|
706
|
+
namespace = "default"
|
707
|
+
|
708
|
+
puts client.get_all_namespaced_services(namespace) # Returns JSON
|
709
|
+
```
|
710
|
+
|
711
|
+
#### Get Single Namespaced Service
|
712
|
+
* Get details for single Service in Namespace
|
713
|
+
```ruby
|
714
|
+
require 'ruby-kubernetes-controller'
|
715
|
+
|
716
|
+
service = "localhost"
|
717
|
+
bearer_token = "token"
|
718
|
+
ssl = false
|
719
|
+
|
720
|
+
client = ::RubyKubernetesController::Client.new(service, bearer_token, ssl)
|
721
|
+
|
722
|
+
namespace = "default"
|
723
|
+
service_name = "service"
|
724
|
+
|
725
|
+
puts client.get_single_namespaced_service(namespace, service_name) # Returns JSON
|
726
|
+
```
|
727
|
+
|
728
|
+
#### Update Service
|
729
|
+
* Update existing Service in Namespace
|
730
|
+
* Update options documentation available at: https://kubernetes.io/docs/reference/federation/v1/definitions/#_v1_service
|
731
|
+
```ruby
|
732
|
+
require 'ruby-kubernetes-controller'
|
733
|
+
|
734
|
+
service = "localhost"
|
735
|
+
bearer_token = "token"
|
736
|
+
ssl = false
|
737
|
+
|
738
|
+
# With JSON
|
739
|
+
json_client = ::RubyKubernetesController::Client.new(service, bearer_token, ssl, yaml = false)
|
740
|
+
namespace = "default"
|
741
|
+
service_name = "service"
|
742
|
+
json_update =
|
743
|
+
'{
|
744
|
+
"kind": "Service",
|
745
|
+
"apiVersion": "v1",
|
746
|
+
...
|
747
|
+
}'
|
748
|
+
|
749
|
+
puts json_client.update_namespaced_service(namespace, service_name, json_update) # Returns JSON
|
750
|
+
|
751
|
+
# With YAML
|
752
|
+
yaml_client = ::RubyKubernetesController::Client.new(service, bearer_token, ssl, yaml = true)
|
753
|
+
namespace = "default"
|
754
|
+
service_name = "service"
|
755
|
+
yaml_file_path = 'path/to/file.yaml'
|
756
|
+
|
757
|
+
puts yaml_client.update_namespaced_service(namespace, service_name, yaml_file_path) # Returns JSON
|
758
|
+
```
|
759
|
+
|
760
|
+
#### Patch Service
|
761
|
+
* Patch existing Service
|
762
|
+
* Patch Format documentation available at: http://jsonpatch.com/
|
763
|
+
```ruby
|
764
|
+
require 'ruby-kubernetes-controller'
|
765
|
+
|
766
|
+
service = "localhost"
|
767
|
+
bearer_token = "token"
|
768
|
+
ssl = false
|
769
|
+
|
770
|
+
client = ::RubyKubernetesController::Client.new(service, bearer_token, ssl)
|
771
|
+
|
772
|
+
namespace = "default"
|
773
|
+
service_name = "service"
|
774
|
+
patch =
|
775
|
+
'[
|
776
|
+
{ "op": "replace", "path": "/baz", "value": "boo" },
|
777
|
+
{ "op": "add", "path": "/hello", "value": ["world"] },
|
778
|
+
{ "op": "remove", "path": "/foo" }
|
779
|
+
]'
|
780
|
+
|
781
|
+
puts client.patch_service(namespace, service_name, patch) # Returns JSON
|
782
|
+
```
|
783
|
+
|
784
|
+
#### Delete Service
|
785
|
+
* Delete existing Service
|
786
|
+
```ruby
|
787
|
+
require 'ruby-kubernetes-controller'
|
788
|
+
|
789
|
+
service = "localhost"
|
790
|
+
bearer_token = "token"
|
791
|
+
ssl = false
|
792
|
+
|
793
|
+
client = ::RubyKubernetesController::Client.new(service, bearer_token, ssl)
|
794
|
+
|
795
|
+
namespace = "default"
|
796
|
+
service_name = "service"
|
797
|
+
|
798
|
+
puts client.delete_service(namespace, service_name) # Returns JSON
|
799
|
+
```
|
800
|
+
|
801
|
+
#### Create Deployment
|
802
|
+
* Create new Deployment
|
803
|
+
* Config options documentation available at: https://kubernetes.io/docs/reference/federation/extensions/v1beta1/definitions/#_v1beta1_deployment
|
804
|
+
```ruby
|
805
|
+
require 'ruby-kubernetes-controller'
|
806
|
+
|
807
|
+
endpoint = "localhost"
|
808
|
+
bearer_token = "token"
|
809
|
+
ssl = false
|
810
|
+
|
811
|
+
# With JSON
|
812
|
+
json_client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl, yaml = false)
|
813
|
+
namespace = "default"
|
814
|
+
json_config =
|
815
|
+
'{
|
816
|
+
"kind": "Deployment",
|
817
|
+
"apiVersion": "extensions/v1beta1",
|
818
|
+
...
|
819
|
+
}'
|
820
|
+
|
821
|
+
puts json_client.create_new_deployment(namespace, json_config) # Returns JSON
|
822
|
+
|
823
|
+
# With YAML
|
824
|
+
yaml_client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl, yaml = true)
|
825
|
+
namespace = "default"
|
826
|
+
yaml_file_path = 'path/to/file.yaml'
|
827
|
+
|
828
|
+
puts yaml_client.create_new_deployment(namespace, yaml_file_path) # Returns JSON
|
829
|
+
```
|
830
|
+
|
831
|
+
#### Get Deploymentes
|
832
|
+
* List all Deploymentes
|
833
|
+
```ruby
|
834
|
+
require 'ruby-kubernetes-controller'
|
835
|
+
|
836
|
+
endpoint = "localhost"
|
837
|
+
bearer_token = "token"
|
838
|
+
ssl = false
|
839
|
+
|
840
|
+
client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl)
|
841
|
+
|
842
|
+
puts client.get_all_deploymentes # Returns JSON
|
843
|
+
```
|
844
|
+
|
845
|
+
#### Get Namespaced Deploymentes
|
846
|
+
* List all existing Deploymentes in Namespace
|
847
|
+
```ruby
|
848
|
+
require 'ruby-kubernetes-controller'
|
849
|
+
|
850
|
+
endpoint = "localhost"
|
851
|
+
bearer_token = "token"
|
852
|
+
ssl = false
|
853
|
+
|
854
|
+
client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl)
|
855
|
+
|
856
|
+
namespace = "default"
|
857
|
+
|
858
|
+
puts client.get_all_namespaced_deploymentes(namespace) # Returns JSON
|
859
|
+
```
|
860
|
+
|
861
|
+
#### Get Single Namespaced Deployment
|
862
|
+
* Get details for single Deployment in Namespace
|
863
|
+
```ruby
|
864
|
+
require 'ruby-kubernetes-controller'
|
865
|
+
|
866
|
+
endpoint = "localhost"
|
867
|
+
bearer_token = "token"
|
868
|
+
ssl = false
|
869
|
+
|
870
|
+
client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl)
|
871
|
+
|
872
|
+
namespace = "default"
|
873
|
+
deployment_name = "deployment"
|
874
|
+
|
875
|
+
puts client.get_single_namespaced_deployment(namespace, deployment_name) # Returns JSON
|
876
|
+
```
|
877
|
+
|
878
|
+
#### Update Deployment
|
879
|
+
* Update existing Deployment in Namespace
|
880
|
+
* Update options documentation available at: https://kubernetes.io/docs/reference/federation/extensions/v1beta1/definitions/#_v1beta1_deployment
|
881
|
+
```ruby
|
882
|
+
require 'ruby-kubernetes-controller'
|
883
|
+
|
884
|
+
endpoint = "localhost"
|
885
|
+
bearer_token = "token"
|
886
|
+
ssl = false
|
887
|
+
|
888
|
+
# With JSON
|
889
|
+
json_client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl, yaml = false)
|
890
|
+
namespace = "default"
|
891
|
+
deployment_name = "deployment"
|
892
|
+
json_update =
|
893
|
+
'{
|
894
|
+
"kind": "Deployment",
|
895
|
+
"apiVersion": "extensions/v1beta1",
|
896
|
+
...
|
897
|
+
}'
|
898
|
+
|
899
|
+
puts json_client.update_namespaced_deployment(namespace, deployment_name, json_update) # Returns JSON
|
900
|
+
|
901
|
+
# With YAML
|
902
|
+
yaml_client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl, yaml = true)
|
903
|
+
namespace = "default"
|
904
|
+
deployment_name = "deployment"
|
905
|
+
yaml_file_path = 'path/to/file.yaml'
|
906
|
+
|
907
|
+
puts yaml_client.update_namespaced_deployment(namespace, deployment_name, yaml_file_path) # Returns JSON
|
908
|
+
```
|
909
|
+
|
910
|
+
#### Patch Deployment
|
911
|
+
* Patch existing Deployment
|
912
|
+
* Patch Format documentation available at: http://jsonpatch.com/
|
913
|
+
```ruby
|
914
|
+
require 'ruby-kubernetes-controller'
|
915
|
+
|
916
|
+
endpoint = "localhost"
|
917
|
+
bearer_token = "token"
|
918
|
+
ssl = false
|
919
|
+
|
920
|
+
client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl)
|
921
|
+
|
922
|
+
namespace = "default"
|
923
|
+
deployment_name = "deployment"
|
924
|
+
patch =
|
925
|
+
'[
|
926
|
+
{ "op": "replace", "path": "/baz", "value": "boo" },
|
927
|
+
{ "op": "add", "path": "/hello", "value": ["world"] },
|
928
|
+
{ "op": "remove", "path": "/foo" }
|
929
|
+
]'
|
930
|
+
|
931
|
+
puts client.patch_deployment(namespace, deployment_name, patch) # Returns JSON
|
932
|
+
```
|
933
|
+
|
934
|
+
#### Delete Deployment
|
935
|
+
* Delete existing Deployment
|
936
|
+
* Delete options documentation available at: https://kubernetes.io/docs/reference/federation/v1/definitions/#_v1_deleteoptions
|
937
|
+
```ruby
|
938
|
+
require 'ruby-kubernetes-controller'
|
939
|
+
|
940
|
+
endpoint = "localhost"
|
941
|
+
bearer_token = "token"
|
942
|
+
ssl = false
|
943
|
+
|
944
|
+
# With JSON
|
945
|
+
json_client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl, yaml = false)
|
946
|
+
namespace = "default"
|
947
|
+
deployment_name = "deployment"
|
948
|
+
json_options =
|
949
|
+
'{
|
950
|
+
"kind": "Deployment",
|
951
|
+
"apiVersion": "extensions/v1beta1",
|
952
|
+
...
|
953
|
+
}'
|
954
|
+
|
955
|
+
puts json_client.delete_deployment(namespace, deployment_name, json_options) # Returns JSON
|
956
|
+
|
957
|
+
# With YAML
|
958
|
+
yaml_client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl, yaml = true)
|
959
|
+
namespace = "default"
|
960
|
+
deployment_name = "deployment"
|
961
|
+
yaml_file_path = 'path/to/file.yaml'
|
962
|
+
|
963
|
+
puts yaml_client.delete_deployment(namespace, deployment_name, yaml_file_path) # Returns JSON
|
964
|
+
```
|
965
|
+
|
966
|
+
#### Create Replicaset
|
967
|
+
* Create new Replicaset
|
968
|
+
* Config options documentation available at: https://kubernetes.io/docs/reference/federation/extensions/v1beta1/definitions/#_v1beta1_replicaset
|
969
|
+
```ruby
|
970
|
+
require 'ruby-kubernetes-controller'
|
971
|
+
|
972
|
+
endpoint = "localhost"
|
973
|
+
bearer_token = "token"
|
974
|
+
ssl = false
|
975
|
+
|
976
|
+
# With JSON
|
977
|
+
json_client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl, yaml = false)
|
978
|
+
namespace = "default"
|
979
|
+
json_config =
|
980
|
+
'{
|
981
|
+
"kind": "Replicaset",
|
982
|
+
"apiVersion": "extensions/v1beta1",
|
983
|
+
...
|
984
|
+
}'
|
985
|
+
|
986
|
+
puts json_client.create_new_replicaset(namespace, json_config) # Returns JSON
|
987
|
+
|
988
|
+
# With YAML
|
989
|
+
yaml_client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl, yaml = true)
|
990
|
+
namespace = "default"
|
991
|
+
yaml_file_path = 'path/to/file.yaml'
|
992
|
+
|
993
|
+
puts yaml_client.create_new_replicaset(namespace, yaml_file_path) # Returns JSON
|
994
|
+
```
|
995
|
+
|
996
|
+
#### Get Replicasets
|
997
|
+
* List all Replicasets
|
998
|
+
```ruby
|
999
|
+
require 'ruby-kubernetes-controller'
|
1000
|
+
|
1001
|
+
endpoint = "localhost"
|
1002
|
+
bearer_token = "token"
|
1003
|
+
ssl = false
|
1004
|
+
|
1005
|
+
client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl)
|
1006
|
+
|
1007
|
+
puts client.get_all_replicasets # Returns JSON
|
1008
|
+
```
|
1009
|
+
|
1010
|
+
#### Get Namespaced Replicasets
|
1011
|
+
* List all existing Replicasets in Namespace
|
1012
|
+
```ruby
|
1013
|
+
require 'ruby-kubernetes-controller'
|
1014
|
+
|
1015
|
+
endpoint = "localhost"
|
1016
|
+
bearer_token = "token"
|
1017
|
+
ssl = false
|
1018
|
+
|
1019
|
+
client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl)
|
1020
|
+
|
1021
|
+
namespace = "default"
|
1022
|
+
|
1023
|
+
puts client.get_all_namespaced_replicasets(namespace) # Returns JSON
|
1024
|
+
```
|
1025
|
+
|
1026
|
+
#### Get Single Namespaced Replicaset
|
1027
|
+
* Get details for single Replicaset in Namespace
|
1028
|
+
```ruby
|
1029
|
+
require 'ruby-kubernetes-controller'
|
1030
|
+
|
1031
|
+
endpoint = "localhost"
|
1032
|
+
bearer_token = "token"
|
1033
|
+
ssl = false
|
1034
|
+
|
1035
|
+
client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl)
|
1036
|
+
|
1037
|
+
namespace = "default"
|
1038
|
+
replicaset_name = "replicaset"
|
1039
|
+
|
1040
|
+
puts client.get_single_namespaced_replicaset(namespace, replicaset_name) # Returns JSON
|
1041
|
+
```
|
1042
|
+
|
1043
|
+
#### Update Replicaset
|
1044
|
+
* Update existing Replicaset in Namespace
|
1045
|
+
* Update options documentation available at: https://kubernetes.io/docs/reference/federation/extensions/v1beta1/definitions/#_v1beta1_replicaset
|
1046
|
+
```ruby
|
1047
|
+
require 'ruby-kubernetes-controller'
|
1048
|
+
|
1049
|
+
endpoint = "localhost"
|
1050
|
+
bearer_token = "token"
|
1051
|
+
ssl = false
|
1052
|
+
|
1053
|
+
# With JSON
|
1054
|
+
json_client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl, yaml = false)
|
1055
|
+
namespace = "default"
|
1056
|
+
replicaset_name = "replicaset"
|
1057
|
+
json_update =
|
1058
|
+
'{
|
1059
|
+
"kind": "Replicaset",
|
1060
|
+
"apiVersion": "extensions/v1beta1",
|
1061
|
+
...
|
1062
|
+
}'
|
1063
|
+
|
1064
|
+
puts json_client.update_namespaced_replicaset(namespace, replicaset_name, json_update) # Returns JSON
|
1065
|
+
|
1066
|
+
# With YAML
|
1067
|
+
yaml_client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl, yaml = true)
|
1068
|
+
namespace = "default"
|
1069
|
+
replicaset_name = "replicaset"
|
1070
|
+
yaml_file_path = 'path/to/file.yaml'
|
1071
|
+
|
1072
|
+
puts yaml_client.update_namespaced_replicaset(namespace, replicaset_name, yaml_file_path) # Returns JSON
|
1073
|
+
```
|
1074
|
+
|
1075
|
+
#### Patch Replicaset
|
1076
|
+
* Patch existing Replicaset
|
1077
|
+
* Patch Format documentation available at: http://jsonpatch.com/
|
1078
|
+
```ruby
|
1079
|
+
require 'ruby-kubernetes-controller'
|
1080
|
+
|
1081
|
+
endpoint = "localhost"
|
1082
|
+
bearer_token = "token"
|
1083
|
+
ssl = false
|
1084
|
+
|
1085
|
+
client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl)
|
1086
|
+
|
1087
|
+
namespace = "default"
|
1088
|
+
replicaset_name = "replicaset"
|
1089
|
+
patch =
|
1090
|
+
'[
|
1091
|
+
{ "op": "replace", "path": "/baz", "value": "boo" },
|
1092
|
+
{ "op": "add", "path": "/hello", "value": ["world"] },
|
1093
|
+
{ "op": "remove", "path": "/foo" }
|
1094
|
+
]'
|
1095
|
+
|
1096
|
+
puts client.patch_replicaset(namespace, replicaset_name, patch) # Returns JSON
|
1097
|
+
```
|
1098
|
+
|
1099
|
+
#### Delete Replicaset
|
1100
|
+
* Delete existing Replicaset
|
1101
|
+
* Delete options documentation available at: https://kubernetes.io/docs/reference/federation/v1/definitions/#_v1_deleteoptions
|
1102
|
+
```ruby
|
1103
|
+
require 'ruby-kubernetes-controller'
|
1104
|
+
|
1105
|
+
endpoint = "localhost"
|
1106
|
+
bearer_token = "token"
|
1107
|
+
ssl = false
|
1108
|
+
|
1109
|
+
# With JSON
|
1110
|
+
json_client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl, yaml = false)
|
1111
|
+
namespace = "default"
|
1112
|
+
replicaset_name = "replicaset"
|
1113
|
+
json_options =
|
1114
|
+
'{
|
1115
|
+
"kind": "Replicaset",
|
1116
|
+
"apiVersion": "extensions/v1beta1",
|
1117
|
+
...
|
1118
|
+
}'
|
1119
|
+
|
1120
|
+
puts json_client.delete_replicaset(namespace, replicaset_name, json_options) # Returns JSON
|
1121
|
+
|
1122
|
+
# With YAML
|
1123
|
+
yaml_client = ::RubyKubernetesController::Client.new(endpoint, bearer_token, ssl, yaml = true)
|
1124
|
+
namespace = "default"
|
1125
|
+
replicaset_name = "replicaset"
|
1126
|
+
yaml_file_path = 'path/to/file.yaml'
|
1127
|
+
|
1128
|
+
puts yaml_client.delete_replicaset(namespace, replicaset_name, yaml_file_path) # Returns JSON
|
1129
|
+
```
|
1130
|
+
|
1131
|
+
#### Create Configmap
|
1132
|
+
* Create new Configmap
|
1133
|
+
* Config options documentation available at: https://kubernetes.io/docs/reference/federation/v1/definitions/#_v1_configmap
|
1134
|
+
```ruby
|
1135
|
+
require 'ruby-kubernetes-controller'
|
1136
|
+
|
1137
|
+
configmap = "localhost"
|
1138
|
+
bearer_token = "token"
|
1139
|
+
ssl = false
|
1140
|
+
|
1141
|
+
# With JSON
|
1142
|
+
json_client = ::RubyKubernetesController::Client.new(configmap, bearer_token, ssl, yaml = false)
|
1143
|
+
namespace = "default"
|
1144
|
+
json_config =
|
1145
|
+
'{
|
1146
|
+
"kind": "ConfigMap",
|
1147
|
+
"apiVersion": "v1",
|
1148
|
+
...
|
1149
|
+
}'
|
1150
|
+
|
1151
|
+
puts json_client.create_new_configmap(namespace, json_config) # Returns JSON
|
1152
|
+
|
1153
|
+
# With YAML
|
1154
|
+
yaml_client = ::RubyKubernetesController::Client.new(configmap, bearer_token, ssl, yaml = true)
|
1155
|
+
namespace = "default"
|
1156
|
+
yaml_file_path = 'path/to/file.yaml'
|
1157
|
+
|
1158
|
+
puts yaml_client.create_new_configmap(namespace, yaml_file_path) # Returns JSON
|
1159
|
+
```
|
1160
|
+
|
1161
|
+
#### Get Configmaps
|
1162
|
+
* List all Configmaps
|
1163
|
+
```ruby
|
1164
|
+
require 'ruby-kubernetes-controller'
|
1165
|
+
|
1166
|
+
configmap = "localhost"
|
1167
|
+
bearer_token = "token"
|
1168
|
+
ssl = false
|
1169
|
+
|
1170
|
+
client = ::RubyKubernetesController::Client.new(configmap, bearer_token, ssl)
|
1171
|
+
|
1172
|
+
puts client.get_all_configmaps # Returns JSON
|
1173
|
+
```
|
1174
|
+
|
1175
|
+
#### Get Namespaced Configmaps
|
1176
|
+
* List all existing Configmaps in Namespace
|
1177
|
+
```ruby
|
1178
|
+
require 'ruby-kubernetes-controller'
|
1179
|
+
|
1180
|
+
configmap = "localhost"
|
1181
|
+
bearer_token = "token"
|
1182
|
+
ssl = false
|
1183
|
+
|
1184
|
+
client = ::RubyKubernetesController::Client.new(configmap, bearer_token, ssl)
|
1185
|
+
|
1186
|
+
namespace = "default"
|
1187
|
+
|
1188
|
+
puts client.get_all_namespaced_configmaps(namespace) # Returns JSON
|
1189
|
+
```
|
1190
|
+
|
1191
|
+
#### Get Single Namespaced Configmap
|
1192
|
+
* Get details for single Configmap in Namespace
|
1193
|
+
```ruby
|
1194
|
+
require 'ruby-kubernetes-controller'
|
1195
|
+
|
1196
|
+
configmap = "localhost"
|
1197
|
+
bearer_token = "token"
|
1198
|
+
ssl = false
|
1199
|
+
|
1200
|
+
client = ::RubyKubernetesController::Client.new(configmap, bearer_token, ssl)
|
1201
|
+
|
1202
|
+
namespace = "default"
|
1203
|
+
configmap_name = "configmap"
|
1204
|
+
|
1205
|
+
puts client.get_single_namespaced_configmap(namespace, configmap_name) # Returns JSON
|
1206
|
+
```
|
1207
|
+
|
1208
|
+
#### Update Configmap
|
1209
|
+
* Update existing Configmap in Namespace
|
1210
|
+
* Update options documentation available at: https://kubernetes.io/docs/reference/federation/v1/definitions/#_v1_configmap
|
1211
|
+
```ruby
|
1212
|
+
require 'ruby-kubernetes-controller'
|
1213
|
+
|
1214
|
+
configmap = "localhost"
|
1215
|
+
bearer_token = "token"
|
1216
|
+
ssl = false
|
1217
|
+
|
1218
|
+
# With JSON
|
1219
|
+
json_client = ::RubyKubernetesController::Client.new(configmap, bearer_token, ssl, yaml = false)
|
1220
|
+
namespace = "default"
|
1221
|
+
configmap_name = "configmap"
|
1222
|
+
json_update =
|
1223
|
+
'{
|
1224
|
+
"kind": "ConfigMap",
|
1225
|
+
"apiVersion": "v1",
|
1226
|
+
...
|
1227
|
+
}'
|
1228
|
+
|
1229
|
+
puts json_client.update_namespaced_configmap(namespace, configmap_name, json_update) # Returns JSON
|
1230
|
+
|
1231
|
+
# With YAML
|
1232
|
+
yaml_client = ::RubyKubernetesController::Client.new(configmap, bearer_token, ssl, yaml = true)
|
1233
|
+
namespace = "default"
|
1234
|
+
configmap_name = "configmap"
|
1235
|
+
yaml_file_path = 'path/to/file.yaml'
|
1236
|
+
|
1237
|
+
puts yaml_client.update_namespaced_configmap(namespace, configmap_name, yaml_file_path) # Returns JSON
|
1238
|
+
```
|
1239
|
+
|
1240
|
+
#### Patch Configmap
|
1241
|
+
* Patch existing Configmap
|
1242
|
+
* Patch Format documentation available at: http://jsonpatch.com/
|
1243
|
+
```ruby
|
1244
|
+
require 'ruby-kubernetes-controller'
|
1245
|
+
|
1246
|
+
configmap = "localhost"
|
1247
|
+
bearer_token = "token"
|
1248
|
+
ssl = false
|
1249
|
+
|
1250
|
+
client = ::RubyKubernetesController::Client.new(configmap, bearer_token, ssl)
|
1251
|
+
|
1252
|
+
namespace = "default"
|
1253
|
+
configmap_name = "configmap"
|
1254
|
+
patch =
|
1255
|
+
'[
|
1256
|
+
{ "op": "replace", "path": "/baz", "value": "boo" },
|
1257
|
+
{ "op": "add", "path": "/hello", "value": ["world"] },
|
1258
|
+
{ "op": "remove", "path": "/foo" }
|
1259
|
+
]'
|
1260
|
+
|
1261
|
+
puts client.patch_configmap(namespace, configmap_name, patch) # Returns JSON
|
1262
|
+
```
|
1263
|
+
|
1264
|
+
#### Delete Configmap
|
1265
|
+
* Delete existing Configmap
|
1266
|
+
* Delete options documentation available at: https://kubernetes.io/docs/reference/federation/v1/definitions/#_v1_deleteoptions
|
1267
|
+
```ruby
|
1268
|
+
require 'ruby-kubernetes-controller'
|
1269
|
+
|
1270
|
+
configmap = "localhost"
|
1271
|
+
bearer_token = "token"
|
1272
|
+
ssl = false
|
1273
|
+
|
1274
|
+
# With JSON
|
1275
|
+
json_client = ::RubyKubernetesController::Client.new(configmap, bearer_token, ssl, yaml = false)
|
1276
|
+
namespace = "default"
|
1277
|
+
configmap_name = "configmap"
|
1278
|
+
json_options =
|
1279
|
+
'{
|
1280
|
+
"kind": "ConfigMap",
|
1281
|
+
"apiVersion": "v1",
|
1282
|
+
...
|
1283
|
+
}'
|
1284
|
+
|
1285
|
+
puts json_client.delete_configmap(namespace, configmap_name, json_options) # Returns JSON
|
1286
|
+
|
1287
|
+
# With YAML
|
1288
|
+
yaml_client = ::RubyKubernetesController::Client.new(configmap, bearer_token, ssl, yaml = true)
|
1289
|
+
namespace = "default"
|
1290
|
+
configmap_name = "configmap"
|
1291
|
+
yaml_file_path = 'path/to/file.yaml'
|
1292
|
+
|
1293
|
+
puts yaml_client.delete_configmap(namespace, configmap_name, yaml_file_path) # Returns JSON
|
1294
|
+
```
|
1295
|
+
|
1296
|
+
#### Create PersistentVolume
|
1297
|
+
* Create new PersistentVolume
|
1298
|
+
* Config options documentation available at: https://kubernetes.io/docs/reference/federation/v1/definitions/#_v1_persistentvolume
|
1299
|
+
```ruby
|
1300
|
+
require 'ruby-kubernetes-controller'
|
1301
|
+
|
1302
|
+
persistentvolume = "localhost"
|
1303
|
+
bearer_token = "token"
|
1304
|
+
ssl = false
|
1305
|
+
|
1306
|
+
# With JSON
|
1307
|
+
json_client = ::RubyKubernetesController::Client.new(persistentvolume, bearer_token, ssl, yaml = false)
|
1308
|
+
namespace = "default"
|
1309
|
+
json_config =
|
1310
|
+
'{
|
1311
|
+
"kind": "persistentvolume",
|
1312
|
+
"apiVersion": "v1",
|
1313
|
+
...
|
1314
|
+
}'
|
1315
|
+
|
1316
|
+
puts json_client.create_new_persistentvolume(json_config) # Returns JSON
|
1317
|
+
|
1318
|
+
# With YAML
|
1319
|
+
yaml_client = ::RubyKubernetesController::Client.new(persistentvolume, bearer_token, ssl, yaml = true)
|
1320
|
+
# yaml file could be a link to a file in Cloud object storage or a github raw
|
1321
|
+
yaml_file_path = 'path/to/file.yaml'
|
1322
|
+
|
1323
|
+
puts yaml_client.create_new_persistentvolume(yaml_file_path) # Returns JSON
|
1324
|
+
```
|
1325
|
+
|
1326
|
+
#### Get PersistentVolumes
|
1327
|
+
* List all PersistentVolumes
|
1328
|
+
```ruby
|
1329
|
+
require 'ruby-kubernetes-controller'
|
1330
|
+
|
1331
|
+
persistentvolume = "localhost"
|
1332
|
+
bearer_token = "token"
|
1333
|
+
ssl = false
|
1334
|
+
|
1335
|
+
client = ::RubyKubernetesController::Client.new(persistentvolume, bearer_token, ssl)
|
1336
|
+
|
1337
|
+
puts client.get_all_persistentvolumes # Returns JSON
|
1338
|
+
```
|
1339
|
+
|
1340
|
+
#### Get Single PersistentVolumes
|
1341
|
+
* Get details for single PersistentVolumes
|
1342
|
+
```ruby
|
1343
|
+
require 'ruby-kubernetes-controller'
|
1344
|
+
|
1345
|
+
persistentvolume = "localhost"
|
1346
|
+
bearer_token = "token"
|
1347
|
+
ssl = false
|
1348
|
+
|
1349
|
+
client = ::RubyKubernetesController::Client.new(persistentvolume, bearer_token, ssl)
|
1350
|
+
|
1351
|
+
persistentvolume_name = "persistentvolume"
|
1352
|
+
|
1353
|
+
puts client.get_single_persistentvolume(persistentvolume_name) # Returns JSON
|
1354
|
+
```
|
1355
|
+
|
1356
|
+
#### Update PersistentVolumes
|
1357
|
+
* Update existing PersistentVolumes in Namespace
|
1358
|
+
* Update options documentation available at: https://kubernetes.io/docs/reference/federation/v1/definitions/#_v1_persistentvolume
|
1359
|
+
```ruby
|
1360
|
+
require 'ruby-kubernetes-controller'
|
1361
|
+
|
1362
|
+
persistentvolume = "localhost"
|
1363
|
+
bearer_token = "token"
|
1364
|
+
ssl = false
|
1365
|
+
|
1366
|
+
# With JSON
|
1367
|
+
json_client = ::RubyKubernetesController::Client.new(persistentvolume, bearer_token, ssl, yaml = false)
|
1368
|
+
persistentvolume_name = "persistentvolume"
|
1369
|
+
json_update =
|
1370
|
+
'{
|
1371
|
+
"kind": "persistentvolume",
|
1372
|
+
"apiVersion": "v1",
|
1373
|
+
...
|
1374
|
+
}'
|
1375
|
+
|
1376
|
+
puts json_client.update_namespaced_persistentvolume(persistentvolume_name, json_update) # Returns JSON
|
1377
|
+
|
1378
|
+
# With YAML
|
1379
|
+
yaml_client = ::RubyKubernetesController::Client.new(persistentvolume, bearer_token, ssl, yaml = true)
|
1380
|
+
persistentvolume_name = "persistentvolume"
|
1381
|
+
# yaml file could be a link to a file in Cloud object storage or a github raw
|
1382
|
+
yaml_file_path = 'path/to/file.yaml'
|
1383
|
+
|
1384
|
+
puts yaml_client.update_namespaced_persistentvolume(persistentvolume_name, yaml_file_path) # Returns JSON
|
1385
|
+
```
|
1386
|
+
|
1387
|
+
#### Patch PersistentVolumes
|
1388
|
+
* Patch existing PersistentVolumes
|
1389
|
+
* Patch Format documentation available at: http://jsonpatch.com/
|
1390
|
+
```ruby
|
1391
|
+
require 'ruby-kubernetes-controller'
|
1392
|
+
|
1393
|
+
persistentvolume = "localhost"
|
1394
|
+
bearer_token = "token"
|
1395
|
+
ssl = false
|
1396
|
+
|
1397
|
+
client = ::RubyKubernetesController::Client.new(persistentvolume, bearer_token, ssl)
|
1398
|
+
|
1399
|
+
persistentvolume_name = "persistentvolume"
|
1400
|
+
patch =
|
1401
|
+
'[
|
1402
|
+
{ "op": "replace", "path": "/baz", "value": "boo" },
|
1403
|
+
{ "op": "add", "path": "/hello", "value": ["world"] },
|
1404
|
+
{ "op": "remove", "path": "/foo" }
|
1405
|
+
]'
|
1406
|
+
|
1407
|
+
puts client.patch_persistentvolume(persistentvolume_name, patch) # Returns JSON
|
1408
|
+
```
|
1409
|
+
|
1410
|
+
#### Delete PersistentVolumes
|
1411
|
+
* Delete existing PersistentVolumes
|
1412
|
+
* Delete options documentation available at: https://kubernetes.io/docs/reference/federation/v1/definitions/#_v1_deleteoptions
|
1413
|
+
```ruby
|
1414
|
+
require 'ruby-kubernetes-controller'
|
1415
|
+
|
1416
|
+
persistentvolume = "localhost"
|
1417
|
+
bearer_token = "token"
|
1418
|
+
ssl = false
|
1419
|
+
|
1420
|
+
# With JSON
|
1421
|
+
json_client = ::RubyKubernetesController::Client.new(persistentvolume, bearer_token, ssl, yaml = false)
|
1422
|
+
persistentvolume_name = "persistentvolume"
|
1423
|
+
json_options =
|
1424
|
+
'{
|
1425
|
+
"kind": "persistentvolume",
|
1426
|
+
"apiVersion": "v1",
|
1427
|
+
...
|
1428
|
+
}'
|
1429
|
+
|
1430
|
+
puts json_client.delete_persistentvolume(persistentvolume_name, json_options) # Returns JSON
|
1431
|
+
|
1432
|
+
# With YAML
|
1433
|
+
yaml_client = ::RubyKubernetesController::Client.new(persistentvolume, bearer_token, ssl, yaml = true)
|
1434
|
+
persistentvolume_name = "persistentvolume"
|
1435
|
+
# yaml file could be a link to a file in Cloud object storage or a github raw
|
1436
|
+
yaml_file_path = 'path/to/file.yaml'
|
1437
|
+
|
1438
|
+
puts yaml_client.delete_persistentvolume(persistentvolume_name, yaml_file_path) # Returns JSON
|
1439
|
+
```
|
1440
|
+
|
1441
|
+
#### Create PersistentVolumeClaim
|
1442
|
+
* Create new PersistentVolumeClaim
|
1443
|
+
* Config options documentation available at: https://kubernetes.io/docs/reference/federation/v1/definitions/#_v1_persistentvolumeclaim
|
1444
|
+
```ruby
|
1445
|
+
require 'ruby-kubernetes-controller'
|
1446
|
+
|
1447
|
+
persistentvolumeclaim = "localhost"
|
1448
|
+
bearer_token = "token"
|
1449
|
+
ssl = false
|
1450
|
+
|
1451
|
+
# With JSON
|
1452
|
+
json_client = ::RubyKubernetesController::Client.new(persistentvolumeclaim, bearer_token, ssl, yaml = false)
|
1453
|
+
namespace = "default"
|
1454
|
+
json_config =
|
1455
|
+
'{
|
1456
|
+
"kind": "persistentvolumeclaim",
|
1457
|
+
"apiVersion": "v1",
|
1458
|
+
...
|
1459
|
+
}'
|
1460
|
+
|
1461
|
+
puts json_client.create_new_persistentvolumeclaim(namespace, json_config) # Returns JSON
|
1462
|
+
|
1463
|
+
# With YAML
|
1464
|
+
yaml_client = ::RubyKubernetesController::Client.new(persistentvolumeclaim, bearer_token, ssl, yaml = true)
|
1465
|
+
namespace = "default"
|
1466
|
+
yaml_file_path = 'path/to/file.yaml'
|
1467
|
+
|
1468
|
+
puts yaml_client.create_new_persistentvolumeclaim(namespace, yaml_file_path) # Returns JSON
|
1469
|
+
```
|
1470
|
+
|
1471
|
+
#### Get PersistentVolumeClaims
|
1472
|
+
* List all PersistentVolumeClaims
|
1473
|
+
```ruby
|
1474
|
+
require 'ruby-kubernetes-controller'
|
1475
|
+
|
1476
|
+
persistentvolumeclaim = "localhost"
|
1477
|
+
bearer_token = "token"
|
1478
|
+
ssl = false
|
1479
|
+
|
1480
|
+
client = ::RubyKubernetesController::Client.new(persistentvolumeclaim, bearer_token, ssl)
|
1481
|
+
|
1482
|
+
puts client.get_all_persistentvolumeclaims # Returns JSON
|
1483
|
+
```
|
1484
|
+
|
1485
|
+
#### Get Namespaced PersistentVolumeClaims
|
1486
|
+
* List all existing PersistentVolumeClaims in Namespace
|
1487
|
+
```ruby
|
1488
|
+
require 'ruby-kubernetes-controller'
|
1489
|
+
|
1490
|
+
persistentvolumeclaim = "localhost"
|
1491
|
+
bearer_token = "token"
|
1492
|
+
ssl = false
|
1493
|
+
|
1494
|
+
client = ::RubyKubernetesController::Client.new(persistentvolumeclaim, bearer_token, ssl)
|
1495
|
+
|
1496
|
+
namespace = "default"
|
1497
|
+
|
1498
|
+
puts client.get_all_namespaced_persistentvolumeclaims(namespace) # Returns JSON
|
1499
|
+
```
|
1500
|
+
|
1501
|
+
#### Get Single Namespaced PersistentVolumeClaims
|
1502
|
+
* Get details for single PersistentVolumeClaims in Namespace
|
1503
|
+
```ruby
|
1504
|
+
require 'ruby-kubernetes-controller'
|
1505
|
+
|
1506
|
+
persistentvolumeclaim = "localhost"
|
1507
|
+
bearer_token = "token"
|
1508
|
+
ssl = false
|
1509
|
+
|
1510
|
+
client = ::RubyKubernetesController::Client.new(persistentvolumeclaim, bearer_token, ssl)
|
1511
|
+
|
1512
|
+
namespace = "default"
|
1513
|
+
persistentvolumeclaim_name = "persistentvolumeclaim"
|
1514
|
+
|
1515
|
+
puts client.get_single_namespaced_persistentvolumeclaim(namespace, persistentvolumeclaim_name) # Returns JSON
|
1516
|
+
```
|
1517
|
+
|
1518
|
+
#### Update PersistentVolumeClaims
|
1519
|
+
* Update existing PersistentVolumeClaims in Namespace
|
1520
|
+
* Update options documentation available at: https://kubernetes.io/docs/reference/federation/v1/definitions/#_v1_persistentvolumeclaim
|
1521
|
+
```ruby
|
1522
|
+
require 'ruby-kubernetes-controller'
|
1523
|
+
|
1524
|
+
persistentvolumeclaim = "localhost"
|
1525
|
+
bearer_token = "token"
|
1526
|
+
ssl = false
|
1527
|
+
|
1528
|
+
# With JSON
|
1529
|
+
json_client = ::RubyKubernetesController::Client.new(persistentvolumeclaim, bearer_token, ssl, yaml = false)
|
1530
|
+
namespace = "default"
|
1531
|
+
persistentvolumeclaim_name = "persistentvolumeclaim"
|
1532
|
+
json_update =
|
1533
|
+
'{
|
1534
|
+
"kind": "persistentvolumeclaim",
|
1535
|
+
"apiVersion": "v1",
|
1536
|
+
...
|
1537
|
+
}'
|
1538
|
+
|
1539
|
+
puts json_client.update_namespaced_persistentvolumeclaim(namespace, persistentvolumeclaim_name, json_update) # Returns JSON
|
1540
|
+
|
1541
|
+
# With YAML
|
1542
|
+
yaml_client = ::RubyKubernetesController::Client.new(persistentvolumeclaim, bearer_token, ssl, yaml = true)
|
1543
|
+
namespace = "default"
|
1544
|
+
persistentvolumeclaim_name = "persistentvolumeclaim"
|
1545
|
+
yaml_file_path = 'path/to/file.yaml'
|
1546
|
+
|
1547
|
+
puts yaml_client.update_namespaced_persistentvolumeclaim(namespace, persistentvolumeclaim_name, yaml_file_path) # Returns JSON
|
1548
|
+
```
|
1549
|
+
|
1550
|
+
#### Patch PersistentVolumeClaims
|
1551
|
+
* Patch existing PersistentVolumeClaims
|
1552
|
+
* Patch Format documentation available at: http://jsonpatch.com/
|
1553
|
+
```ruby
|
1554
|
+
require 'ruby-kubernetes-controller'
|
1555
|
+
|
1556
|
+
persistentvolumeclaim = "localhost"
|
1557
|
+
bearer_token = "token"
|
1558
|
+
ssl = false
|
1559
|
+
|
1560
|
+
client = ::RubyKubernetesController::Client.new(persistentvolumeclaim, bearer_token, ssl)
|
1561
|
+
|
1562
|
+
namespace = "default"
|
1563
|
+
persistentvolumeclaim_name = "persistentvolumeclaim"
|
1564
|
+
patch =
|
1565
|
+
'[
|
1566
|
+
{ "op": "replace", "path": "/baz", "value": "boo" },
|
1567
|
+
{ "op": "add", "path": "/hello", "value": ["world"] },
|
1568
|
+
{ "op": "remove", "path": "/foo" }
|
1569
|
+
]'
|
1570
|
+
|
1571
|
+
puts client.patch_persistentvolumeclaim(namespace, persistentvolumeclaim_name, patch) # Returns JSON
|
1572
|
+
```
|
1573
|
+
|
1574
|
+
#### Delete PersistentVolumeClaims
|
1575
|
+
* Delete existing PersistentVolumeClaims
|
1576
|
+
* Delete options documentation available at: https://kubernetes.io/docs/reference/federation/v1/definitions/#_v1_deleteoptions
|
1577
|
+
```ruby
|
1578
|
+
require 'ruby-kubernetes-controller'
|
1579
|
+
|
1580
|
+
persistentvolumeclaim = "localhost"
|
1581
|
+
bearer_token = "token"
|
1582
|
+
ssl = false
|
1583
|
+
|
1584
|
+
# With JSON
|
1585
|
+
json_client = ::RubyKubernetesController::Client.new(persistentvolumeclaim, bearer_token, ssl, yaml = false)
|
1586
|
+
namespace = "default"
|
1587
|
+
persistentvolumeclaim_name = "persistentvolumeclaim"
|
1588
|
+
json_options =
|
1589
|
+
'{
|
1590
|
+
"kind": "persistentvolumeclaim",
|
1591
|
+
"apiVersion": "v1",
|
1592
|
+
...
|
1593
|
+
}'
|
1594
|
+
|
1595
|
+
puts json_client.delete_persistentvolumeclaim(namespace, persistentvolumeclaim_name, json_options) # Returns JSON
|
1596
|
+
|
1597
|
+
# With YAML
|
1598
|
+
yaml_client = ::RubyKubernetesController::Client.new(persistentvolumeclaim, bearer_token, ssl, yaml = true)
|
1599
|
+
namespace = "default"
|
1600
|
+
persistentvolumeclaim_name = "persistentvolumeclaim"
|
1601
|
+
yaml_file_path = 'path/to/file.yaml'
|
1602
|
+
|
1603
|
+
puts yaml_client.delete_persistentvolumeclaim(namespace, persistentvolumeclaim_name, yaml_file_path) # Returns JSON
|
1604
|
+
```
|
1605
|
+
|
1606
|
+
[SERVICEACCOUNT]: https://github.com/IBM/ruby-kubernetes-controller/blob/master/Documentation/serviceaccount.yaml
|