@@ -26,6 +26,7 @@ type Driver struct {
26
26
Preemptible bool
27
27
UseInternalIP bool
28
28
UseInternalIPOnly bool
29
+ ServiceAccount string
29
30
Scopes string
30
31
DiskSize int
31
32
Project string
@@ -35,15 +36,16 @@ type Driver struct {
35
36
}
36
37
37
38
const (
38
- defaultZone = "us-central1-a"
39
- defaultUser = "docker-user"
40
- defaultMachineType = "n1-standard-1"
41
- defaultImageName = "ubuntu-os-cloud/global/images/ubuntu-1604-xenial-v20170721"
42
- defaultScopes = "https://www.googleapis.com/auth/devstorage.read_only,https://www.googleapis.com/auth/logging.write,https://www.googleapis.com/auth/monitoring.write"
43
- defaultDiskType = "pd-standard"
44
- defaultDiskSize = 10
45
- defaultNetwork = "default"
46
- defaultSubnetwork = ""
39
+ defaultZone = "us-central1-a"
40
+ defaultUser = "docker-user"
41
+ defaultMachineType = "n1-standard-1"
42
+ defaultImageName = "ubuntu-os-cloud/global/images/ubuntu-1604-xenial-v20170721"
43
+ defaultServiceAccount = "default"
44
+ defaultScopes = "https://www.googleapis.com/auth/devstorage.read_only,https://www.googleapis.com/auth/logging.write,https://www.googleapis.com/auth/monitoring.write"
45
+ defaultDiskType = "pd-standard"
46
+ defaultDiskSize = 10
47
+ defaultNetwork = "default"
48
+ defaultSubnetwork = ""
47
49
)
48
50
49
51
// GetCreateFlags registers the flags this driver adds to
@@ -79,6 +81,12 @@ func (d *Driver) GetCreateFlags() []mcnflag.Flag {
79
81
Usage : "GCE Project" ,
80
82
EnvVar : "GOOGLE_PROJECT" ,
81
83
},
84
+ mcnflag.StringFlag {
85
+ Name : "google-service-account" ,
86
+ Usage : "GCE Service Account for the VM (email address)" ,
87
+ Value : defaultServiceAccount ,
88
+ EnvVar : "GOOGLE_SERVICE_ACCOUNT" ,
89
+ },
82
90
mcnflag.StringFlag {
83
91
Name : "google-scopes" ,
84
92
Usage : "GCE Scopes (comma-separated if multiple scopes)" ,
@@ -150,14 +158,15 @@ func (d *Driver) GetCreateFlags() []mcnflag.Flag {
150
158
// NewDriver creates a Driver with the specified storePath.
151
159
func NewDriver (machineName string , storePath string ) * Driver {
152
160
return & Driver {
153
- Zone : defaultZone ,
154
- DiskType : defaultDiskType ,
155
- DiskSize : defaultDiskSize ,
156
- MachineType : defaultMachineType ,
157
- MachineImage : defaultImageName ,
158
- Network : defaultNetwork ,
159
- Subnetwork : defaultSubnetwork ,
160
- Scopes : defaultScopes ,
161
+ Zone : defaultZone ,
162
+ DiskType : defaultDiskType ,
163
+ DiskSize : defaultDiskSize ,
164
+ MachineType : defaultMachineType ,
165
+ MachineImage : defaultImageName ,
166
+ Network : defaultNetwork ,
167
+ Subnetwork : defaultSubnetwork ,
168
+ ServiceAccount : defaultServiceAccount ,
169
+ Scopes : defaultScopes ,
161
170
BaseDriver : & drivers.BaseDriver {
162
171
SSHUser : defaultUser ,
163
172
MachineName : machineName ,
@@ -205,6 +214,7 @@ func (d *Driver) SetConfigFromFlags(flags drivers.DriverOptions) error {
205
214
d .Preemptible = flags .Bool ("google-preemptible" )
206
215
d .UseInternalIP = flags .Bool ("google-use-internal-ip" ) || flags .Bool ("google-use-internal-ip-only" )
207
216
d .UseInternalIPOnly = flags .Bool ("google-use-internal-ip-only" )
217
+ d .ServiceAccount = flags .String ("google-service-account" )
208
218
d .Scopes = flags .String ("google-scopes" )
209
219
d .Tags = flags .String ("google-tags" )
210
220
d .OpenPorts = flags .StringSlice ("google-open-port" )
0 commit comments