gclouder 0.2.4 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  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