@@ -91,15 +91,25 @@ func (h *GceHelper) DetachDisk(ins, disk string) error {
9191 return h .waitForOperation (op )
9292}
9393
94- func (h * GceHelper ) CreateInstance (name string ) (* compute.Instance , error ) {
94+ func (h * GceHelper ) CreateInstance (name string , arch Arch ) (* compute.Instance , error ) {
95+ var machineType , sourceImage string
96+ switch arch {
97+ case ArchX86 :
98+ machineType = "n1-standard-16"
99+ sourceImage = "debian-12-bookworm-v20250415"
100+ case ArchArm :
101+ machineType = "t2a-standard-16"
102+ sourceImage = "debian-12-bookworm-arm64-v20250415"
103+ default :
104+ return nil , errors .New ("unsupported arch" )
105+ }
95106 payload := & compute.Instance {
96- Name : name ,
97- MachineType : fmt .Sprintf ("zones/%s/machineTypes/%s" , h .Zone , "n1-standard-16" ),
98- MinCpuPlatform : "Intel Haswell" ,
107+ Name : name ,
108+ MachineType : fmt .Sprintf ("zones/%s/machineTypes/%s" , h .Zone , machineType ),
99109 Disks : []* compute.AttachedDisk {
100110 {
101111 InitializeParams : & compute.AttachedDiskInitializeParams {
102- SourceImage : "projects/debian-cloud/global/images/debian-12-bookworm-v20250415" ,
112+ SourceImage : fmt . Sprintf ( "projects/debian-cloud/global/images/%s" , sourceImage ) ,
103113 },
104114 Boot : true ,
105115 AutoDelete : true ,
0 commit comments