2016-12-13 01:07:39 +01:00
|
|
|
// Copyright 2016 Marapongo, Inc. All rights reserved.
|
|
|
|
|
|
|
|
// An architecture is a combination of cloud plus optionally a scheduler that we're targeting.
|
|
|
|
export interface Arch {
|
|
|
|
cloud: Cloud;
|
|
|
|
scheduler: Scheduler;
|
|
|
|
}
|
|
|
|
|
|
|
|
// The cloud operating system to target.
|
2016-12-13 02:56:13 +01:00
|
|
|
// TODO: As soon as this PR is merged, https://github.com/Microsoft/TypeScript/pull/10676, I believe we can replace
|
|
|
|
// these with references to the above Clouds literals (e.g., `typeof clouds.AWS`, etc). For now, duplicate.
|
|
|
|
export type Cloud = "aws" | "gcp" | "azure" | "vmware";
|
2016-12-13 01:07:39 +01:00
|
|
|
|
|
|
|
// The container scheduler and runtime to target.
|
2016-12-13 02:56:13 +01:00
|
|
|
// TODO: As soon as this PR is merged, https://github.com/Microsoft/TypeScript/pull/10676, I believe we can replace
|
|
|
|
// these with references to the above Clouds literals (e.g., `typeof schedulers.Swarm`, etc). For now, duplicate.
|
2016-12-13 01:07:39 +01:00
|
|
|
export type Scheduler =
|
2016-12-13 02:56:13 +01:00
|
|
|
undefined | // no scheduler, just use VMs.
|
|
|
|
"swarm" | "kubernetes" | "mesos" | // cloud-neutral schedulers.
|
|
|
|
"ecs" | "gke" | "acs"; // cloud-specific schedulers.
|
2016-12-13 01:07:39 +01:00
|
|
|
|