@@ -78,7 +78,8 @@ func init() {
78
78
}
79
79
80
80
const (
81
- defaultMachine = "n1-standard-1"
81
+ defaultMachine = "n1-standard-1"
82
+ defaultFirewallRule = "default-allow-ssh"
82
83
)
83
84
84
85
var (
@@ -333,6 +334,27 @@ func createInstance(serviceAccount string) (string, error) {
333
334
334
335
name := "gce-pd-csi-e2e"
335
336
myuuid := string (uuid .NewUUID ())
337
+
338
+ // Create default filewall rule if it does not exist
339
+ if _ , err = computeService .Firewalls .Get (* project , defaultFirewallRule ).Do (); err != nil {
340
+ glog .Infof ("Default firewall rule %v does not exist, creating" , defaultFirewallRule )
341
+ f := & compute.Firewall {
342
+ Name : defaultFirewallRule ,
343
+ Allowed : []* compute.FirewallAllowed {
344
+ & compute.FirewallAllowed {
345
+ IPProtocol : "tcp" ,
346
+ Ports : []string {"22" },
347
+ },
348
+ },
349
+ }
350
+ _ , err = computeService .Firewalls .Insert (* project , f ).Do ()
351
+ if err != nil {
352
+ return "" , fmt .Errorf ("Failed to insert required default SSH Firewall Rule %v: %v" , defaultFirewallRule , err )
353
+ }
354
+ } else {
355
+ glog .Infof ("Default firewall rule %v already exists, skipping creation" , defaultFirewallRule )
356
+ }
357
+
336
358
glog .V (4 ).Infof ("Creating instance: %v" , name )
337
359
338
360
// TODO: Pick a better boot disk image
0 commit comments