blob: e04ba37d1a50c0c3120efb46578783d06e62cc83 [file] [log] [blame]
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(),
})
}