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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d5fac046450304fa8776ed102e38e05adb98441a
4
- data.tar.gz: 58d375a60028943c06e7bbb3383fbc6a7de1d076
3
+ metadata.gz: e2ccc24b7af30ea12268ae0c97428c9a37f183b1
4
+ data.tar.gz: 989f994891608a6b1131596cec326337a33785d3
5
5
  SHA512:
6
- metadata.gz: 81ac317bf67d099969b203bc6a46a6adc188078d181884f2c1e2538e5b3afd961abe78780aeac3dae19c3b244e264bf2d755d904fb98fe0905632f705904a33a
7
- data.tar.gz: 12d85af734b3cf50621360237fe0c152c773456385a8372eb941b584716835b6850df482bd1e85ea90cc7b6b9369d3e9f47e891c04a996a807cd6e32d10fcc80
6
+ metadata.gz: deee0da2251d21d7042b90274855b214161be60a3aa27aaa74f332c3b876c90e797f9c883e8928b838c609254eaba34a0900fe5f389f4cbf78233201f2df5030
7
+ data.tar.gz: 3e8669d29a6840173f0c1a7b666cc24b03437486973be25831efd473f248417846d59e2f763a58aa4c1126ebcdd8e8f856c8e246ef6279ca7e8bc07d732e5aec
@@ -0,0 +1,10 @@
1
+ ---
2
+ name:
3
+ type: String
4
+ required: true
5
+ description:
6
+ type: String
7
+ required: false
8
+ gcs_bucket_name:
9
+ type: String
10
+ required: true
@@ -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,13 @@
1
+ ---
2
+ name:
3
+ type: String
4
+ required: true
5
+ description:
6
+ type: String
7
+ required: false
8
+ url_map:
9
+ type: String
10
+ required: true
11
+ ssl_certificates:
12
+ type: Array
13
+ required: true
@@ -0,0 +1,13 @@
1
+ ---
2
+ name:
3
+ type: String
4
+ required: true
5
+ description:
6
+ type: String
7
+ required: false
8
+ default_backend_bucket:
9
+ type: String
10
+ required: false
11
+ path_matchers:
12
+ type: Array
13
+ required: false
@@ -42,6 +42,9 @@ num_nodes:
42
42
  password:
43
43
  type: String
44
44
  required: false
45
+ cluster_version:
46
+ type: String
47
+ required: false
45
48
  scopes:
46
49
  type: Array
47
50
  required: false
@@ -0,0 +1,5 @@
1
+ ---
2
+ name: String
3
+ description: String
4
+ bucket_name: String
5
+ enable_cdn: Boolean
@@ -0,0 +1,3 @@
1
+ ---
2
+ name: String
3
+ description: String
@@ -0,0 +1,5 @@
1
+ ---
2
+ name: String
3
+ description: String
4
+ ssl_certificates: Array
5
+ url_map: Boolean
@@ -0,0 +1,4 @@
1
+ ---
2
+ name: String
3
+ description: String
4
+ default_service: String
@@ -12,6 +12,7 @@ module GClouder
12
12
  "additional_zones",
13
13
  "async",
14
14
  "cluster_ipv4_cidr",
15
+ "cluster_version",
15
16
  "disable_addons",
16
17
  "disk_size",
17
18
  "no_enable_cloud_endpoints",
@@ -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
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  module GClouder
4
- VERSION = "0.2.4"
4
+ VERSION = "0.3.0"
5
5
  end
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.2.4
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-09-15 00:00:00.000000000 Z
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