| package main |
| |
| import ( |
| "fmt" |
| "path" |
| "runtime" |
| |
| "go.skia.org/infra/go/gce" |
| "go.skia.org/infra/go/gce/server" |
| ) |
| |
| func GoldBase(name, ipAddress string) *gce.Instance { |
| vm := server.Server20170928(name) |
| vm.DataDisks = []*gce.Disk{ |
| &gce.Disk{ |
| Name: fmt.Sprintf("%s-data", name), |
| SizeGb: 100, |
| Type: gce.DISK_TYPE_PERSISTENT_STANDARD, |
| MountPath: gce.DISK_MOUNT_PATH_DEFAULT, |
| }, |
| } |
| |
| if ipAddress != "" { |
| vm.ExternalIpAddress = ipAddress |
| } |
| vm.MachineType = gce.MACHINE_TYPE_HIGHMEM_32 |
| vm.Metadata["auth_white_list"] = "google.com chromium.org skia.org" |
| vm.Metadata["owner_primary"] = "stephana" |
| vm.Metadata["owner_secondary"] = "jcgregorio" |
| |
| _, filename, _, _ := runtime.Caller(0) |
| dir := path.Dir(filename) |
| vm.SetupScript = path.Join(dir, "setup-script.sh") |
| return vm |
| } |
| |
| // Define the base template for a diffserver instance. |
| func DiffServerBase(name string) *gce.Instance { |
| // DiffServer uses an ephemeral IP address. |
| vm := GoldBase(name, "") |
| delete(vm.Metadata, "auth_white_list") |
| vm.DataDisks = []*gce.Disk{ |
| { |
| Name: fmt.Sprintf("%s-data", name), |
| SizeGb: 2000, |
| Type: gce.DISK_TYPE_PERSISTENT_SSD, |
| MountPath: gce.DISK_MOUNT_PATH_DEFAULT, |
| }, |
| { |
| Name: fmt.Sprintf("%s-data-2", name), |
| SizeGb: 30000, |
| Type: gce.DISK_TYPE_PERSISTENT_SSD, |
| MountPath: "/mnt/pd0/data/imageStore/diffs", |
| }, |
| } |
| vm.MachineType = gce.MACHINE_TYPE_HIGHMEM_32 |
| return vm |
| } |
| |
| func Prod() *gce.Instance { |
| // Below IP has been whitelisted in Cloud SQL. |
| vm := GoldBase("skia-gold-prod", "35.194.17.199") |
| vm.Metadata["auth_white_list"] = "google.com mtklein@chromium.org" |
| return vm |
| } |
| |
| func Pdfium() *gce.Instance { |
| // Below IP has been whitelisted in Cloud SQL. |
| vm := GoldBase("skia-gold-pdfium", "104.197.62.179") |
| vm.DataDisks[0].SizeGb = 500 |
| vm.MachineType = gce.MACHINE_TYPE_HIGHMEM_16 |
| return vm |
| } |
| |
| func ChromeVR() *gce.Instance { |
| // Below IP has been whitelisted in Cloud SQL. |
| vm := GoldBase("skia-gold-chromevr", "35.224.220.244") |
| vm.DataDisks[0].SizeGb = 500 |
| vm.MachineType = gce.MACHINE_TYPE_HIGHMEM_16 |
| return vm |
| } |
| |
| func Stage() *gce.Instance { |
| vm := GoldBase("skia-gold-stage", "35.202.197.94") |
| vm.Metadata["auth_white_list"] = "google.com" |
| return vm |
| } |
| |
| func Public() *gce.Instance { |
| vm := GoldBase("skia-gold-public", "35.188.34.16") |
| vm.Metadata["auth_white_list"] = `google.com |
| chromium.org |
| skia.org |
| kkinnunen@nvidia.com |
| mjk@nvidia.com |
| vbuzinov@nvidia.com |
| martina.kollarova@intel.com |
| this.is.harry.stern@gmail.com |
| dvonbeck@gmail.com |
| zakerinasab@chromium.org |
| afar.lin@imgtec.com` |
| return vm |
| } |
| |
| func DiffServerProd() *gce.Instance { |
| return DiffServerBase("skia-diffserver-prod") |
| } |
| |
| func DiffServerStage() *gce.Instance { |
| vm := DiffServerBase("skia-diffserver-stage") |
| vm.DataDisks[0].Type = gce.DISK_TYPE_PERSISTENT_STANDARD |
| return vm |
| } |
| |
| func main() { |
| server.Main(gce.ZONE_DEFAULT, map[string]*gce.Instance{ |
| "prod": Prod(), |
| "public": Public(), |
| "pdfium": Pdfium(), |
| "chromevr": ChromeVR(), |
| "stage": Stage(), |
| "diffserver_prod": DiffServerProd(), |
| "diffserver_stage": DiffServerStage(), |
| }) |
| } |