vagrant-google 2.4.0 → 2.5.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: 56ca12d434139b7c86e68282058c5872e718446c
4
- data.tar.gz: 3cf842f432128fa82f916c958ad77760b16b1a33
3
+ metadata.gz: ed6ee3d8610c741c80fb0a023922309c396ba06f
4
+ data.tar.gz: e5110f3de87fad8d872150e38e371f560e65993c
5
5
  SHA512:
6
- metadata.gz: 3257faaf10a31cdc944453f7be6829f865ea2081fc1f19a90ce6d91b6eaa62ba615da7da928c18e6aeba3d6b3e94073e16074580ccccb121943cece918d84d93
7
- data.tar.gz: a626190d8436b24c132458a9ad3459782da8ed8e38033a314eeaffcfc86112f8c64208ac90c101b84b851a29572cb32a54afd3b6bc092c4fa9c18108486acdec
6
+ metadata.gz: caa68543e38fa5432182179df747283e5182fd303edca1dae9f1c3581805182c4d46711d438a13c2d68e090774b10eae95e544ad181e9d29e793d448dcb8e17d
7
+ data.tar.gz: 4c8e2dac09fa2c02ee3dba1f9cc9e74ca4c89488d85221e6d682ebb5044711f303c5031eff61c2e74506c2316d7bbfbbfebbe797758a78ba75ea9e6a3f36b94f
data/.gitignore CHANGED
@@ -17,3 +17,6 @@ vendor/*
17
17
 
18
18
  # Intellij projects folder
19
19
  .idea
20
+
21
+ # Env
22
+ setenv_*.sh
@@ -2,6 +2,28 @@
2
2
  All notable changes to this project will be documented in this file.
3
3
  The format is loosely based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
4
4
 
5
+ ## 2.5.0 (September 2019)
6
+
7
+ ### User-facing
8
+
9
+ #### Added
10
+ - \#222 Added internal IP support [andrewh1978]
11
+
12
+ #### Deprecated
13
+
14
+ - \#220 Deprecated google_client_email parameter, as it's no longer needed or
15
+ supported by fog-google [temikus]
16
+
17
+ ### Development
18
+
19
+ #### Added
20
+
21
+ - \#223 Set up unit test GitHub Action worflow [temikus]
22
+
23
+ #### Fixed
24
+
25
+ - \#225 Locked the vagrant dep to 2.2.4 due to bundler issues on 2.2.5 [temikus]
26
+
5
27
  ## 2.4.0 (April 2019)
6
28
 
7
29
  ### User-facing
@@ -11,7 +33,7 @@ The format is loosely based on [Keep a Changelog](http://keepachangelog.com/en/1
11
33
 
12
34
  #### Fixed
13
35
  - \#214 Set a default zone only if `default` network is used [mavin]
14
- - \#215 Allow tags,labels and additional_disks to be merged with multiple
36
+ - \#215 Allow tags,labels and additional_disks to be merged with multiple
15
37
  configs [mavin]
16
38
 
17
39
  ### Development
@@ -33,14 +55,14 @@ The format is loosely based on [Keep a Changelog](http://keepachangelog.com/en/1
33
55
 
34
56
  ### User-facing
35
57
 
36
- - \#206 Fix image selection logic - Plugin no longer traces back with
58
+ - \#206 Fix image selection logic - Plugin no longer traces back with
37
59
  `image_family` config option. [temikus]
38
60
 
39
61
  ### Development
40
62
 
41
63
  - \#206 Bumped dependencies. [temikus]
42
- - fog-google version to 1.8.1
43
- - vagrant & vagrant-spec are now pointing to new upstream Hashicorp org repos
64
+ - fog-google version to 1.8.1
65
+ - vagrant & vagrant-spec are now pointing to new upstream Hashicorp org repos
44
66
 
45
67
  ## 2.2.0 (June 2018)
46
68
 
@@ -59,13 +81,13 @@ platforms.
59
81
  ## 2.0.0 (March 2018)
60
82
 
61
83
  * Update to use fog-google gem v1
62
- * Add new configuration option `labels` for setting [labels](https://cloud.google.com/compute/docs/labeling-resources)
84
+ * Add new configuration option `labels` for setting [labels](https://cloud.google.com/compute/docs/labeling-resources)
63
85
  on GCE instances
64
86
  * Fix disk cleanup issue causing the disk to be marked as created before insertion
65
87
  * Test environment fixups to avoid 'Encoded files can't be read outside of the Vagrant installer.'
66
88
  * Breaking changes:
67
89
  * Drop support for configuration option `google_key_location`(GCP P12 key)
68
- * `image` parameter no longer defaults to an arbitrary image and must be
90
+ * `image` parameter no longer defaults to an arbitrary image and must be
69
91
  specified at runtime
70
92
  * Rsync behavior now consistent with Vagrant's default, removed old rsync code
71
93
 
data/Gemfile CHANGED
@@ -23,6 +23,9 @@ group :development do
23
23
  # We depend on Vagrant for development, but we don't add it as a
24
24
  # gem dependency because we expect to be installed within the
25
25
  # Vagrant environment itself using `vagrant plugin`.
26
- gem 'vagrant', git: "https://github.com/hashicorp/vagrant.git"
26
+
27
+ # TODO(temikus): remove to 2.2.4 tag lock when
28
+ # https://github.com/hashicorp/vagrant/pull/10945 is resolved
29
+ gem 'vagrant', git: "https://github.com/hashicorp/vagrant.git", :tag => 'v2.2.4'
27
30
  gem 'vagrant-spec', git: "https://github.com/hashicorp/vagrant-spec.git"
28
31
  end
data/README.md CHANGED
@@ -85,7 +85,6 @@ Vagrant.configure("2") do |config|
85
85
 
86
86
  config.vm.provider :google do |google, override|
87
87
  google.google_project_id = "YOUR_GOOGLE_CLOUD_PROJECT_ID"
88
- google.google_client_email = "YOUR_SERVICE_ACCOUNT_EMAIL_ADDRESS"
89
88
  google.google_json_key_location = "/path/to/your/private-key.json"
90
89
 
91
90
  google.image_family = 'ubuntu-1604-lts'
@@ -165,8 +164,6 @@ configuration for this provider.
165
164
 
166
165
  This provider exposes quite a few provider-specific configuration options:
167
166
 
168
- * `google_client_email` - The Client Email address for your Service Account.
169
- (Can also be configured with `GOOGLE_CLIENT_EMAIL` environment variable.)
170
167
  * `google_json_key_location` - The location of the JSON private key file matching your
171
168
  Service Account.
172
169
  (Can also be configured with `GOOGLE_JSON_KEY_LOCATION` environment variable.)
@@ -198,6 +195,7 @@ will pull the most recent CentOS 7 image. For more info, refer to
198
195
  * `zone` - The zone name where the instance will be created.
199
196
  * `can_ip_forward` - Boolean whether to enable IP Forwarding.
200
197
  * `external_ip` - The external IP address to use (supports names). Set to `false` to not assign an external address.
198
+ * `network_ip` - The internal IP address to use. Default is to use next available address.
201
199
  * `use_private_ip` - Boolean whether to use private IP for SSH/provisioning. Default is false.
202
200
  * `preemptible` - Boolean whether to enable preemptibility. Default is false.
203
201
  * `auto_restart` - Boolean whether to enable auto_restart. Default is true.
@@ -231,7 +229,6 @@ Vagrant.configure("2") do |config|
231
229
 
232
230
  config.vm.provider :google do |google|
233
231
  google.google_project_id = "YOUR_GOOGLE_CLOUD_PROJECT_ID"
234
- google.google_client_email = "YOUR_SERVICE_ACCOUNT_EMAIL_ADDRESS"
235
232
  google.google_json_key_location = "/path/to/your/private-key.json"
236
233
  end
237
234
  end
@@ -249,7 +246,6 @@ Vagrant.configure("2") do |config|
249
246
 
250
247
  config.vm.provider :google do |google|
251
248
  google.google_project_id = "YOUR_GOOGLE_CLOUD_PROJECT_ID"
252
- google.google_client_email = "YOUR_SERVICE_ACCOUNT_EMAIL_ADDRESS"
253
249
  google.google_json_key_location = "/path/to/your/private-key.json"
254
250
 
255
251
  # Make sure to set this to trigger the zone_config
@@ -320,7 +316,6 @@ Before you start acceptance tests, you'll need to set the authentication
320
316
  shell variables accordingly:
321
317
 
322
318
  ```sh
323
- export GOOGLE_CLIENT_EMAIL="your-google_service_account_email@developer.gserviceaccount.com"
324
319
  export GOOGLE_PROJECT_ID="your-google-cloud-project-id"
325
320
  export GOOGLE_JSON_KEY_LOCATION="/full/path/to/your/private-key.json"
326
321
 
@@ -36,18 +36,10 @@ module VagrantPlugins
36
36
  :google_project => provider_config.google_project_id,
37
37
  }
38
38
 
39
- unless provider_config.google_client_email.nil?
40
- fog_config[:google_client_email] = provider_config.google_client_email
41
- end
42
-
43
39
  unless provider_config.google_json_key_location.nil?
44
40
  fog_config[:google_json_key_location] = find_key(provider_config.google_json_key_location, env)
45
41
  end
46
42
 
47
- if provider_config.google_client_email.nil? and provider_config.google_json_key_location.nil?
48
- fog_config[:google_application_default] = true
49
- end
50
-
51
43
  @logger.info("Creating Google API client and adding to Vagrant environment")
52
44
  env[:google_compute] = Fog::Compute.new(fog_config)
53
45
  @app.call(env)
@@ -60,6 +60,7 @@ module VagrantPlugins
60
60
  can_ip_forward = zone_config.can_ip_forward
61
61
  use_private_ip = zone_config.use_private_ip
62
62
  external_ip = zone_config.external_ip
63
+ network_ip = zone_config.network_ip
63
64
  preemptible = zone_config.preemptible
64
65
  auto_restart = zone_config.auto_restart
65
66
  on_host_maintenance = zone_config.on_host_maintenance
@@ -91,6 +92,7 @@ module VagrantPlugins
91
92
  env[:ui].info(" -- IP Forward: #{can_ip_forward}")
92
93
  env[:ui].info(" -- Use private IP: #{use_private_ip}")
93
94
  env[:ui].info(" -- External IP: #{external_ip}")
95
+ env[:ui].info(" -- Network IP: #{network_ip}")
94
96
  env[:ui].info(" -- Preemptible: #{preemptible}")
95
97
  env[:ui].info(" -- Auto Restart: #{auto_restart}")
96
98
  env[:ui].info(" -- On Maintenance: #{on_host_maintenance}")
@@ -254,6 +256,7 @@ module VagrantPlugins
254
256
  :can_ip_forward => can_ip_forward,
255
257
  :use_private_ip => use_private_ip,
256
258
  :external_ip => external_ip,
259
+ :network_ip => network_ip,
257
260
  :disks => disks,
258
261
  :scheduling => scheduling,
259
262
  :service_accounts => service_accounts
@@ -17,11 +17,6 @@ require "securerandom"
17
17
  module VagrantPlugins
18
18
  module Google
19
19
  class Config < Vagrant.plugin("2", :config) # rubocop:disable Metrics/ClassLength
20
- # The Service Account Client ID Email address
21
- #
22
- # @return [String]
23
- attr_accessor :google_client_email
24
-
25
20
  # The path to the Service Account json-formatted private key
26
21
  #
27
22
  # @return [String]
@@ -117,6 +112,11 @@ module VagrantPlugins
117
112
  # @return String
118
113
  attr_accessor :external_ip
119
114
 
115
+ # The network IP Address to use
116
+ #
117
+ # @return String
118
+ attr_accessor :network_ip
119
+
120
120
  # Use private ip address
121
121
  #
122
122
  # @return Boolean
@@ -179,7 +179,6 @@ module VagrantPlugins
179
179
  attr_accessor :additional_disks
180
180
 
181
181
  def initialize(zone_specific=false)
182
- @google_client_email = UNSET_VALUE
183
182
  @google_json_key_location = UNSET_VALUE
184
183
  @google_project_id = UNSET_VALUE
185
184
  @image = UNSET_VALUE
@@ -199,6 +198,7 @@ module VagrantPlugins
199
198
  @labels = {}
200
199
  @can_ip_forward = UNSET_VALUE
201
200
  @external_ip = UNSET_VALUE
201
+ @network_ip = UNSET_VALUE
202
202
  @use_private_ip = UNSET_VALUE
203
203
  @autodelete_disk = UNSET_VALUE
204
204
  @preemptible = UNSET_VALUE
@@ -295,7 +295,6 @@ module VagrantPlugins
295
295
  def finalize! # rubocop:disable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
296
296
  # Try to get access keys from standard Google environment variables; they
297
297
  # will default to nil if the environment variables are not present.
298
- @google_client_email = ENV['GOOGLE_CLIENT_EMAIL'] if @google_client_email == UNSET_VALUE
299
298
  @google_json_key_location = ENV['GOOGLE_JSON_KEY_LOCATION'] if @google_json_key_location == UNSET_VALUE
300
299
  @google_project_id = ENV['GOOGLE_PROJECT_ID'] if @google_project_id == UNSET_VALUE
301
300
 
@@ -356,6 +355,9 @@ module VagrantPlugins
356
355
  # external_ip defaults to nil
357
356
  @external_ip = nil if @external_ip == UNSET_VALUE
358
357
 
358
+ # network_ip defaults to nil
359
+ @network_ip = nil if @network_ip == UNSET_VALUE
360
+
359
361
  # use_private_ip defaults to false
360
362
  @use_private_ip = false if @use_private_ip == UNSET_VALUE
361
363
 
@@ -13,6 +13,6 @@
13
13
  # limitations under the License.
14
14
  module VagrantPlugins
15
15
  module Google
16
- VERSION = "2.4.0".freeze
16
+ VERSION = "2.5.0".freeze
17
17
  end
18
18
  end
@@ -37,10 +37,6 @@ namespace :acceptance do
37
37
  abort "Environment variable GOOGLE_PROJECT_ID is not set. Aborting."
38
38
  end
39
39
 
40
- unless ENV["GOOGLE_CLIENT_EMAIL"]
41
- abort "Environment variable GOOGLE_CLIENT_EMAIL is not set. Aborting."
42
- end
43
-
44
40
  unless ENV["GOOGLE_SSH_USER"]
45
41
  yellow "WARNING: GOOGLE_SSH_USER variable is not set. Will try to start tests using insecure Vagrant private key."
46
42
  end
@@ -70,7 +66,6 @@ namespace :acceptance do
70
66
  image_family
71
67
  synced_folder/rsync
72
68
  provisioner/shell
73
- provisioner/chef-solo
74
69
  ).map{ |s| "provider/google/#{s}" }
75
70
 
76
71
  command = "vagrant-spec test --components=#{components.join(" ")}"
@@ -99,13 +99,11 @@ describe VagrantPlugins::Google::Config do
99
99
  end
100
100
  end
101
101
 
102
- its("google_client_email") { should be_nil }
103
102
  its("google_json_key_location") { should be_nil }
104
103
  end
105
104
 
106
105
  context "with Google credential environment variables" do
107
106
  before :each do
108
- allow(ENV).to receive(:[]).with("GOOGLE_CLIENT_EMAIL").and_return("client_id_email")
109
107
  allow(ENV).to receive(:[]).with("GOOGLE_JSON_KEY_LOCATION").and_return("/path/to/json/key")
110
108
  end
111
109
 
@@ -115,7 +113,6 @@ describe VagrantPlugins::Google::Config do
115
113
  end
116
114
  end
117
115
 
118
- its("google_client_email") { should == "client_id_email" }
119
116
  its("google_json_key_location") { should == "/path/to/json/key" }
120
117
  end
121
118
  end
@@ -297,7 +294,6 @@ describe VagrantPlugins::Google::Config do
297
294
 
298
295
  before :each do
299
296
  # Stub out required env to make sure we produce only errors we're looking for.
300
- allow(ENV).to receive(:[]).with("GOOGLE_CLIENT_EMAIL").and_return("client_id_email")
301
297
  allow(ENV).to receive(:[]).with("GOOGLE_PROJECT_ID").and_return("my-awesome-project")
302
298
  allow(ENV).to receive(:[]).with("GOOGLE_JSON_KEY_LOCATION").and_return("/path/to/json/key")
303
299
  allow(ENV).to receive(:[]).with("GOOGLE_SSH_KEY_LOCATION").and_return("/path/to/ssh/key")
@@ -24,7 +24,6 @@
24
24
 
25
25
  # Customize these global variables
26
26
  $GOOGLE_PROJECT_ID = "YOUR_GOOGLE_CLOUD_PROJECT_ID"
27
- $GOOGLE_CLIENT_EMAIL = "YOUR_SERVICE_ACCOUNT_EMAIL_ADDRESS"
28
27
  $GOOGLE_JSON_KEY_LOCATION = "/path/to/your/private-key.json"
29
28
  $LOCAL_USER = "mitchellh"
30
29
  $LOCAL_SSH_KEY = "~/.ssh/id_rsa"
@@ -54,7 +53,6 @@ Vagrant.configure("2") do |config|
54
53
  config.vm.define :z1c do |z1c|
55
54
  z1c.vm.provider :google do |google, override|
56
55
  google.google_project_id = $GOOGLE_PROJECT_ID
57
- google.google_client_email = $GOOGLE_CLIENT_EMAIL
58
56
  google.google_json_key_location = $GOOGLE_JSON_KEY_LOCATION
59
57
  google.zone = "us-central1-c"
60
58
 
@@ -74,7 +72,6 @@ Vagrant.configure("2") do |config|
74
72
  config.vm.define :z1f do |z1f|
75
73
  z1f.vm.provider :google do |google, override|
76
74
  google.google_project_id = $GOOGLE_PROJECT_ID
77
- google.google_client_email = $GOOGLE_CLIENT_EMAIL
78
75
  google.google_json_key_location = $GOOGLE_JSON_KEY_LOCATION
79
76
  google.zone = "us-central1-f"
80
77
 
@@ -20,7 +20,6 @@
20
20
 
21
21
  # Customize these global variables
22
22
  $GOOGLE_PROJECT_ID = "YOUR_GOOGLE_CLOUD_PROJECT_ID"
23
- $GOOGLE_CLIENT_EMAIL = "YOUR_SERVICE_ACCOUNT_EMAIL_ADDRESS"
24
23
  $GOOGLE_JSON_KEY_LOCATION = "/path/to/your/private-key.json"
25
24
  $LOCAL_USER = "mitchellh"
26
25
  $LOCAL_SSH_KEY = "~/.ssh/id_rsa"
@@ -31,7 +30,6 @@ Vagrant.configure("2") do |config|
31
30
 
32
31
  config.vm.provider :google do |google, override|
33
32
  google.google_project_id = $GOOGLE_PROJECT_ID
34
- google.google_client_email = $GOOGLE_CLIENT_EMAIL
35
33
  google.google_json_key_location = $GOOGLE_JSON_KEY_LOCATION
36
34
 
37
35
  # Override provider defaults
@@ -19,7 +19,6 @@ Vagrant.configure("2") do |config|
19
19
 
20
20
  config.vm.provider :google do |google, override|
21
21
  google.google_project_id = "YOUR_GOOGLE_CLOUD_PROJECT_ID"
22
- google.google_client_email = "YOUR_SERVICE_ACCOUNT_EMAIL_ADDRESS"
23
22
  google.google_json_key_location = "/path/to/your/private-key.json"
24
23
 
25
24
  google.image_family = 'ubuntu-1604-lts'
@@ -19,7 +19,6 @@ Vagrant.configure("2") do |config|
19
19
 
20
20
  config.vm.provider :google do |google, override|
21
21
  google.google_project_id = "YOUR_GOOGLE_CLOUD_PROJECT_ID"
22
- google.google_client_email = "YOUR_SERVICE_ACCOUNT_EMAIL_ADDRESS"
23
22
  google.google_json_key_location = "/path/to/your/private-key.json"
24
23
 
25
24
  override.ssh.username = "mitchellh"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-google
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.0
4
+ version: 2.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric Johnson
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2019-05-05 00:00:00.000000000 Z
12
+ date: 2019-09-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: fog-google