@@ -26,6 +26,7 @@ type Driver struct {
2626 Preemptible bool
2727 UseInternalIP bool
2828 UseInternalIPOnly bool
29+ ServiceAccount string
2930 Scopes string
3031 DiskSize int
3132 Project string
@@ -35,15 +36,16 @@ type Driver struct {
3536}
3637
3738const (
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 = ""
4749)
4850
4951// GetCreateFlags registers the flags this driver adds to
@@ -79,6 +81,12 @@ func (d *Driver) GetCreateFlags() []mcnflag.Flag {
7981 Usage : "GCE Project" ,
8082 EnvVar : "GOOGLE_PROJECT" ,
8183 },
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+ },
8290 mcnflag.StringFlag {
8391 Name : "google-scopes" ,
8492 Usage : "GCE Scopes (comma-separated if multiple scopes)" ,
@@ -150,14 +158,15 @@ func (d *Driver) GetCreateFlags() []mcnflag.Flag {
150158// NewDriver creates a Driver with the specified storePath.
151159func NewDriver (machineName string , storePath string ) * Driver {
152160 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 ,
161170 BaseDriver : & drivers.BaseDriver {
162171 SSHUser : defaultUser ,
163172 MachineName : machineName ,
@@ -205,6 +214,7 @@ func (d *Driver) SetConfigFromFlags(flags drivers.DriverOptions) error {
205214 d .Preemptible = flags .Bool ("google-preemptible" )
206215 d .UseInternalIP = flags .Bool ("google-use-internal-ip" ) || flags .Bool ("google-use-internal-ip-only" )
207216 d .UseInternalIPOnly = flags .Bool ("google-use-internal-ip-only" )
217+ d .ServiceAccount = flags .String ("google-service-account" )
208218 d .Scopes = flags .String ("google-scopes" )
209219 d .Tags = flags .String ("google-tags" )
210220 d .OpenPorts = flags .StringSlice ("google-open-port" )
0 commit comments