pulumi/pkg/compiler
joeduffy 6fb6c2de09 Add cloud target and architecture detection
This change implements most of the cloud target and architecture detection
logic, along with associated verification and a bunch of new error messages.

There are two settings for picking a cloud destination:

* Architecture: this specifies the combination of cloud (e.g., AWS, GCP, etc)
      plus scheduler (e.g., none, Swarm, ECS, etc).

* Target: a named, preconfigured entity that includes both an Architecture and
      an assortment of extra default configuration options.

The general idea here is that you can preconfigure a set of Targets for
named environments like "prod", "stage", etc.  Those can either exist in a
single Mufile, or the Mucluster file if they are shared amongst multiple
Mufiles.  This can be specified at the command line as such:

        $ mu build --target=stage

Furthermore, a given environment may be annointed the default, so that

        $ mu build

selects that environment without needing to say so explicitly.

It is also possible to specify an architecture at the command line for
scenarios where you aren't intending to target an existing named environment.
This is good for "anonymous" testing scenarios or even just running locally:

        $ mu build --arch=aws
        $ mu build --arch=aws:ecs
        $ mu build --arch=local:kubernetes
        $ .. and so on ..

This change does little more than plumb these settings around, verify them,
etc., however it sets us up to actually start dispating to the right backend.
2016-11-17 10:30:37 -08:00
..
clouds Add cloud target and architecture detection 2016-11-17 10:30:37 -08:00
core Add cloud target and architecture detection 2016-11-17 10:30:37 -08:00
schedulers Add cloud target and architecture detection 2016-11-17 10:30:37 -08:00
testdata Bind predefined stack types 2016-11-17 06:10:23 -08:00
binder.go Create a new mu/pkg/compiler/core package 2016-11-17 08:52:54 -08:00
binder_test.go Bind predefined stack types 2016-11-17 06:10:23 -08:00
common_test.go Add tests for parse tree validation 2016-11-16 10:02:34 -08:00
compiler.go Add cloud target and architecture detection 2016-11-17 10:30:37 -08:00
compiler_test.go Swap argument order to expected: actual: are correct 2016-11-16 18:51:14 -08:00
opts.go Add cloud target and architecture detection 2016-11-17 10:30:37 -08:00
parser.go Create a new mu/pkg/compiler/core package 2016-11-17 08:52:54 -08:00
parsetree.go Add cloud target and architecture detection 2016-11-17 10:30:37 -08:00
parsetree_test.go Swap argument order to expected: actual: are correct 2016-11-16 18:51:14 -08:00
predef.go Bind predefined stack types 2016-11-17 06:10:23 -08:00
symbols.go Add rudimentary type binding 2016-11-16 18:55:20 -08:00