gclouder 0.2.4 → 0.3.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 +4 -4
- data/assets/arguments/compute/backend-buckets.yml +10 -0
- data/assets/arguments/compute/forwarding-rules.yml +19 -0
- data/assets/arguments/compute/target-https-proxies.yml +13 -0
- data/assets/arguments/compute/url-maps.yml +13 -0
- data/assets/arguments/container/clusters.yml +3 -0
- data/assets/resource_representations/compute/backend-buckets.yml +5 -0
- data/assets/resource_representations/compute/forwarding-rules.yml +3 -0
- data/assets/resource_representations/compute/target-https-proxies.yml +5 -0
- data/assets/resource_representations/compute/url-maps.yml +4 -0
- data/lib/gclouder/config/cluster.rb +1 -0
- data/lib/gclouder/resources/compute/backend_buckets.rb +70 -0
- data/lib/gclouder/resources/compute/forwarding_rules.rb +68 -0
- data/lib/gclouder/resources/compute/target_https_proxies.rb +70 -0
- data/lib/gclouder/resources/compute/url_maps.rb +85 -0
- data/lib/gclouder/version.rb +1 -1
- data/lib/gclouder.rb +28 -0
- metadata +14 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e2ccc24b7af30ea12268ae0c97428c9a37f183b1
|
4
|
+
data.tar.gz: 989f994891608a6b1131596cec326337a33785d3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: deee0da2251d21d7042b90274855b214161be60a3aa27aaa74f332c3b876c90e797f9c883e8928b838c609254eaba34a0900fe5f389f4cbf78233201f2df5030
|
7
|
+
data.tar.gz: 3e8669d29a6840173f0c1a7b666cc24b03437486973be25831efd473f248417846d59e2f763a58aa4c1126ebcdd8e8f856c8e246ef6279ca7e8bc07d732e5aec
|
@@ -0,0 +1,19 @@
|
|
1
|
+
---
|
2
|
+
name:
|
3
|
+
type: String
|
4
|
+
required: true
|
5
|
+
description:
|
6
|
+
type: String
|
7
|
+
required: false
|
8
|
+
target_https_proxy:
|
9
|
+
type: String
|
10
|
+
required: true
|
11
|
+
address:
|
12
|
+
type: String
|
13
|
+
required: true
|
14
|
+
global:
|
15
|
+
type: Boolean
|
16
|
+
required: false
|
17
|
+
ports:
|
18
|
+
type: Array
|
19
|
+
required: true
|
@@ -0,0 +1,70 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
module GClouder
|
4
|
+
module Resources
|
5
|
+
module Compute
|
6
|
+
module BackendBuckets
|
7
|
+
include GClouder::Logging
|
8
|
+
include GClouder::GCloud
|
9
|
+
include GClouder::Resource::Cleaner
|
10
|
+
|
11
|
+
def self.header(stage = :ensure)
|
12
|
+
info "[#{stage}] compute / backend-buckets", indent: 1, title: true
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.ensure
|
16
|
+
return if Local.list.empty?
|
17
|
+
header
|
18
|
+
Local.list.each do |region, buckets|
|
19
|
+
info region, heading: true, indent: 2
|
20
|
+
info
|
21
|
+
buckets.each do |bucket|
|
22
|
+
BackendBucket.ensure(bucket["name"], bucket)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.validate
|
28
|
+
return if Local.list.empty?
|
29
|
+
header :validate
|
30
|
+
Local.validate
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.check
|
34
|
+
end
|
35
|
+
|
36
|
+
module Local
|
37
|
+
include GClouder::Config::Project
|
38
|
+
include GClouder::Logging
|
39
|
+
|
40
|
+
def self.validate
|
41
|
+
info "global", heading: true, indent: 2
|
42
|
+
Resources::Validate::Global.instances(
|
43
|
+
list,
|
44
|
+
required_keys: GClouder::Config::Arguments.required(%w(compute backend-buckets)),
|
45
|
+
permitted_keys: GClouder::Config::Arguments.permitted(%w(compute backend-buckets)),
|
46
|
+
)
|
47
|
+
end
|
48
|
+
|
49
|
+
def self.list
|
50
|
+
Resources::Global.instances(path: %w(compute backend-buckets))
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
module Remote
|
55
|
+
def self.list
|
56
|
+
Resources::Remote.instances(path: %w(compute backend-buckets))
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
module BackendBucket
|
61
|
+
include GClouder::GCloud
|
62
|
+
|
63
|
+
def self.ensure(name, args = {}, silent: false)
|
64
|
+
Resource.ensure :"compute backend-buckets", name, hash_to_args(args), silent: silent
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
module GClouder
|
4
|
+
module Resources
|
5
|
+
module Compute
|
6
|
+
module ForwardingRules
|
7
|
+
include GClouder::Logging
|
8
|
+
include GClouder::Resource::Cleaner
|
9
|
+
|
10
|
+
def self.header(stage = :ensure)
|
11
|
+
info "[#{stage}] compute / forwarding-rules", indent: 1, title: true
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.ensure
|
15
|
+
return if Local.list.empty?
|
16
|
+
header
|
17
|
+
Local.list.each do |region, rules|
|
18
|
+
info region, heading: true, indent: 2
|
19
|
+
info
|
20
|
+
rules.each do |rule|
|
21
|
+
Rule.ensure(rule["name"], rule)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def self.validate
|
27
|
+
return if Local.list.empty?
|
28
|
+
header :validate
|
29
|
+
Local.validate
|
30
|
+
end
|
31
|
+
|
32
|
+
def self.check
|
33
|
+
end
|
34
|
+
|
35
|
+
module Local
|
36
|
+
include GClouder::Config::Project
|
37
|
+
|
38
|
+
def self.validate
|
39
|
+
info "global", heading: true, indent: 2
|
40
|
+
Resources::Validate::Global.instances(
|
41
|
+
list,
|
42
|
+
required_keys: GClouder::Config::Arguments.required(%w(compute forwarding-rules)),
|
43
|
+
permitted_keys: GClouder::Config::Arguments.permitted(%w(compute forwarding-rules)),
|
44
|
+
)
|
45
|
+
end
|
46
|
+
|
47
|
+
def self.list
|
48
|
+
Resources::Global.instances(path: %w(compute forwarding_rules))
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
module Remote
|
53
|
+
def self.list
|
54
|
+
Resources::Remote.instances(path:%w(compute forwarding-rules))
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
module Rule
|
59
|
+
include GClouder::GCloud
|
60
|
+
|
61
|
+
def self.ensure(rule, args = {}, silent: false)
|
62
|
+
Resource.ensure :"compute forwarding-rules", rule, hash_to_args(args), silent: silent
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
module GClouder
|
4
|
+
module Resources
|
5
|
+
module Compute
|
6
|
+
module TargetHTTPSProxies
|
7
|
+
include GClouder::Logging
|
8
|
+
include GClouder::GCloud
|
9
|
+
include GClouder::Resource::Cleaner
|
10
|
+
|
11
|
+
def self.header(stage = :ensure)
|
12
|
+
info "[#{stage}] compute / target-https-proxies", indent: 1, title: true
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.ensure
|
16
|
+
return if Local.list.empty?
|
17
|
+
header
|
18
|
+
Local.list.each do |region, rules|
|
19
|
+
info region, heading: true, indent: 2
|
20
|
+
info
|
21
|
+
rules.each do |rule|
|
22
|
+
Rule.ensure(rule["name"], rule)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.validate
|
28
|
+
return if Local.list.empty?
|
29
|
+
header :validate
|
30
|
+
Local.validate
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.check
|
34
|
+
end
|
35
|
+
|
36
|
+
module Local
|
37
|
+
include GClouder::Config::Project
|
38
|
+
include GClouder::Logging
|
39
|
+
|
40
|
+
def self.validate
|
41
|
+
info "global", heading: true, indent: 2
|
42
|
+
Resources::Validate::Global.instances(
|
43
|
+
list,
|
44
|
+
required_keys: GClouder::Config::Arguments.required(%w(compute target-https-proxies)),
|
45
|
+
permitted_keys: GClouder::Config::Arguments.permitted(%w(compute target-https-proxies))
|
46
|
+
)
|
47
|
+
end
|
48
|
+
|
49
|
+
def self.list
|
50
|
+
Resources::Global.instances(path: %w(compute target_https_proxies))
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
module Remote
|
55
|
+
def self.list
|
56
|
+
Resources::Remote.instances(path: %w(compute target-https-proxies))
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
module Rule
|
61
|
+
include GClouder::GCloud
|
62
|
+
|
63
|
+
def self.ensure(rule, args = {}, silent: false)
|
64
|
+
Resource.ensure :"compute target-https-proxies", rule, hash_to_args(args), silent: silent
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
@@ -0,0 +1,85 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
module GClouder
|
4
|
+
module Resources
|
5
|
+
module Compute
|
6
|
+
module URLMaps
|
7
|
+
include GClouder::Logging
|
8
|
+
include GClouder::GCloud
|
9
|
+
include GClouder::Resource::Cleaner
|
10
|
+
|
11
|
+
def self.header(stage = :ensure)
|
12
|
+
info "[#{stage}] compute / url-maps", indent: 1, title: true
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.ensure
|
16
|
+
return if Local.list.empty?
|
17
|
+
header
|
18
|
+
Local.list.each do |region, url_maps|
|
19
|
+
info region, heading: true, indent: 2
|
20
|
+
info
|
21
|
+
url_maps.each do |url_map|
|
22
|
+
URLMap.ensure(url_map["name"], url_map)
|
23
|
+
|
24
|
+
next unless url_map.key?("path_matchers")
|
25
|
+
url_map["path_matchers"].each do |path_matcher|
|
26
|
+
PathMatcher.ensure(url_map["name"], path_matcher)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def self.validate
|
33
|
+
return if Local.list.empty?
|
34
|
+
header :validate
|
35
|
+
Local.validate
|
36
|
+
end
|
37
|
+
|
38
|
+
def self.check
|
39
|
+
end
|
40
|
+
|
41
|
+
module Local
|
42
|
+
include GClouder::Config::Project
|
43
|
+
include GClouder::Logging
|
44
|
+
|
45
|
+
def self.validate
|
46
|
+
info "global", heading: true, indent: 2
|
47
|
+
Resources::Validate::Global.instances(
|
48
|
+
list,
|
49
|
+
required_keys: GClouder::Config::Arguments.required(%w(compute url-maps)),
|
50
|
+
permitted_keys: GClouder::Config::Arguments.permitted(%w(compute url-maps)),
|
51
|
+
)
|
52
|
+
end
|
53
|
+
|
54
|
+
def self.list
|
55
|
+
Resources::Global.instances(path: %w(compute url_maps))
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
module Remote
|
60
|
+
def self.list
|
61
|
+
Resources::Remote.instances(path: %w(compute url-maps))
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
module URLMap
|
66
|
+
include GClouder::GCloud
|
67
|
+
|
68
|
+
def self.ensure(name, args = {}, silent: false)
|
69
|
+
args = args.tap { |hs| hs.delete("path_matchers") }
|
70
|
+
Resource.ensure :"compute url-maps", name, hash_to_args(args), silent: silent
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
module PathMatcher
|
75
|
+
include GClouder::GCloud
|
76
|
+
|
77
|
+
def self.ensure(url_map_name, path_matcher)
|
78
|
+
good "path_matcher: #{path_matcher["name"]}", indent: 4
|
79
|
+
gcloud "compute url-maps add-path-matcher #{url_map_name} --path-matcher-name #{path_matcher["name"]} --default-backend-bucket #{path_matcher["default_backend_bucket"]} --new-hosts #{path_matcher["hosts"].join(",")}", silent: true
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
data/lib/gclouder/version.rb
CHANGED
data/lib/gclouder.rb
CHANGED
@@ -62,6 +62,10 @@ require "gclouder/resources/compute/routers"
|
|
62
62
|
require "gclouder/resources/compute/addresses"
|
63
63
|
require "gclouder/resources/compute/vpns"
|
64
64
|
require "gclouder/resources/compute/bgp-vpns"
|
65
|
+
require "gclouder/resources/compute/backend_buckets"
|
66
|
+
require "gclouder/resources/compute/target_https_proxies"
|
67
|
+
require "gclouder/resources/compute/url_maps"
|
68
|
+
require "gclouder/resources/compute/forwarding_rules"
|
65
69
|
|
66
70
|
require "gclouder/resources/compute/project_info/ssh_keys"
|
67
71
|
|
@@ -247,6 +251,30 @@ module GClouder
|
|
247
251
|
skip: [ :check ],
|
248
252
|
},
|
249
253
|
|
254
|
+
{
|
255
|
+
name: "backend-buckets",
|
256
|
+
module: Resources::Compute::BackendBuckets,
|
257
|
+
skip: [ :check ],
|
258
|
+
},
|
259
|
+
|
260
|
+
{
|
261
|
+
name: "target-https-proxies",
|
262
|
+
module: Resources::Compute::TargetHTTPSProxies,
|
263
|
+
skip: [ :check ],
|
264
|
+
},
|
265
|
+
|
266
|
+
{
|
267
|
+
name: "url-maps",
|
268
|
+
module: Resources::Compute::URLMaps,
|
269
|
+
skip: [ :check ],
|
270
|
+
},
|
271
|
+
|
272
|
+
{
|
273
|
+
name: "forwarding-rules",
|
274
|
+
module: Resources::Compute::ForwardingRules,
|
275
|
+
skip: [ :check ],
|
276
|
+
},
|
277
|
+
|
250
278
|
{
|
251
279
|
name: "topics",
|
252
280
|
module: Resources::PubSub::Topics,
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gclouder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rob Wilson
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2017-
|
12
|
+
date: 2017-10-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: trollop
|
@@ -175,13 +175,17 @@ extra_rdoc_files: []
|
|
175
175
|
files:
|
176
176
|
- README.md
|
177
177
|
- assets/arguments/compute/addresses.yml
|
178
|
+
- assets/arguments/compute/backend-buckets.yml
|
178
179
|
- assets/arguments/compute/disks.yml
|
179
180
|
- assets/arguments/compute/firewall-rules.yml
|
181
|
+
- assets/arguments/compute/forwarding-rules.yml
|
180
182
|
- assets/arguments/compute/instances.yml
|
181
183
|
- assets/arguments/compute/networks.yml
|
182
184
|
- assets/arguments/compute/networks/subnets.yml
|
183
185
|
- assets/arguments/compute/routers.yml
|
186
|
+
- assets/arguments/compute/target-https-proxies.yml
|
184
187
|
- assets/arguments/compute/target-vpn-gateways.yml
|
188
|
+
- assets/arguments/compute/url-maps.yml
|
185
189
|
- assets/arguments/compute/vpn-tunnels.yml
|
186
190
|
- assets/arguments/container/clusters.yml
|
187
191
|
- assets/arguments/container/node-pools.yml
|
@@ -194,12 +198,16 @@ files:
|
|
194
198
|
- assets/mappings/file.yml
|
195
199
|
- assets/mappings/property.yml
|
196
200
|
- assets/resource_representations/compute/addresses.yml
|
201
|
+
- assets/resource_representations/compute/backend-buckets.yml
|
197
202
|
- assets/resource_representations/compute/disks.yml
|
198
203
|
- assets/resource_representations/compute/firewalls.yml
|
204
|
+
- assets/resource_representations/compute/forwarding-rules.yml
|
199
205
|
- assets/resource_representations/compute/instances.yml
|
200
206
|
- assets/resource_representations/compute/networks.yml
|
201
207
|
- assets/resource_representations/compute/routers.yml
|
202
208
|
- assets/resource_representations/compute/subnetworks.yml
|
209
|
+
- assets/resource_representations/compute/target-https-proxies.yml
|
210
|
+
- assets/resource_representations/compute/url-maps.yml
|
203
211
|
- assets/resource_representations/compute/vpnTunnels.yml
|
204
212
|
- assets/resource_representations/container-engine/projects.zones.clusters.nodePools.yml
|
205
213
|
- assets/resource_representations/container-engine/projects.zones.clusters.yml
|
@@ -238,14 +246,18 @@ files:
|
|
238
246
|
- lib/gclouder/resource_cleaner.rb
|
239
247
|
- lib/gclouder/resources.rb
|
240
248
|
- lib/gclouder/resources/compute/addresses.rb
|
249
|
+
- lib/gclouder/resources/compute/backend_buckets.rb
|
241
250
|
- lib/gclouder/resources/compute/bgp-vpns.rb
|
242
251
|
- lib/gclouder/resources/compute/disks.rb
|
243
252
|
- lib/gclouder/resources/compute/firewall_rules.rb
|
253
|
+
- lib/gclouder/resources/compute/forwarding_rules.rb
|
244
254
|
- lib/gclouder/resources/compute/instances.rb
|
245
255
|
- lib/gclouder/resources/compute/networks.rb
|
246
256
|
- lib/gclouder/resources/compute/networks/subnets.rb
|
247
257
|
- lib/gclouder/resources/compute/project_info/ssh_keys.rb
|
248
258
|
- lib/gclouder/resources/compute/routers.rb
|
259
|
+
- lib/gclouder/resources/compute/target_https_proxies.rb
|
260
|
+
- lib/gclouder/resources/compute/url_maps.rb
|
249
261
|
- lib/gclouder/resources/compute/vpns.rb
|
250
262
|
- lib/gclouder/resources/container/clusters.rb
|
251
263
|
- lib/gclouder/resources/container/node_pools.rb
|