Commit Graph

417 Commits

Author SHA1 Message Date
aiordache cf906951bf Normalize volume names
Signed-off-by: aiordache <anca.iordache@docker.com>
2020-10-02 14:54:23 +02:00
Nicolas De Loof 20a8f01269
Don't set securityGroup name, as all compose apps will create a `DefaultNetwork`
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-09-30 15:26:12 +02:00
Nicolas De Loof 757b9bb221
Introduce x-aws-autoscale to support CPU based autoscaling
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-09-30 14:59:25 +02:00
Nicolas De Loof 1444d68685
Introduce a sidecard to setup resolv.conf search domain
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-09-29 12:23:27 +02:00
Nicolas De Loof b56e17cf27
Sidecar image to append resolvconf search directive
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-09-29 12:08:42 +02:00
Nicolas De Loof d5e0ec7aa6
`parse` to return awsResources then convert into CF template
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-09-29 08:31:11 +02:00
Nicolas De Loof 7034254911
introduce awsResources to replace CloudFormation parameters
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-09-24 19:34:41 +02:00
Nicolas De Loof b30cd649b9
Dispatch methods into more specific files
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-09-24 10:32:46 +02:00
Nicolas De Loof ed5d774180
createPolicies to rely on project/service not converted aws model
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-09-24 08:27:32 +02:00
Nicolas De loof 767ed0c20d
Merge pull request #633 from docker/ec2 2020-09-24 08:26:25 +02:00
Nicolas De Loof 6a226ace9d
disable LoadBalancer healthCheck
compose-spec only support command-based health check.
we need to investigate introducing URI-based health check support

Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-09-23 16:05:29 +02:00
Nicolas De Loof 6f0ba3bac5
architecture document
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-09-23 12:19:34 +02:00
Nicolas De Loof d57a39958b
Compute machine type matching reservations
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-09-23 12:18:42 +02:00
Nicolas De Loof f2430afa06
Fix CPU limit computation targetting EC2
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-09-23 10:56:32 +02:00
Nicolas De Loof 2cfaf69546
Distinguish limits for Fargate and EC2
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-09-23 09:40:07 +02:00
Nicolas De Loof 109ba96743
Run on EC2 when a service require GPU
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-09-23 09:31:16 +02:00
Chris Crone d154c41586 Update copyright
Signed-off-by: Chris Crone <christopher.crone@docker.com>
2020-09-22 12:13:00 +02:00
Guillaume Tardif 01ea2488a2
Merge pull request #630 from docker/cli_metrics_failures
Cli metrics failures
2020-09-18 18:26:54 +02:00
Nicolas De loof 57c14e70e1
Merge pull request #628 from docker/machine
Guess AWS machine type based on service resources reservations
2020-09-18 17:05:54 +02:00
Nicolas De loof b22ebd61c4
minor error improvement to match AWS docs
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>

Co-authored-by: Chris Crone <christopher.crone@docker.com>
2020-09-18 16:44:17 +02:00
Guillaume Tardif a71b2a39bd Add status field in API metrics
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-09-18 15:22:34 +02:00
Guillaume Tardif 3ccc603461 Add status field in CLI metrics : success, failure, cancelled
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-09-18 10:47:50 +02:00
Nicolas De Loof 101e1555b8
Some more functional design
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-09-17 12:44:55 +02:00
Guillaume Tardif e904c71b04
Merge pull request #624 from docker/feat-api-metrics
Add  interceptor for API metrics
2020-09-17 11:40:22 +02:00
Nicolas De Loof dbe87e23a9
Guess AWS machine type based on service resources reservations
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-09-17 11:03:25 +02:00
Guillaume Tardif 3bf6a00a61 goimports
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-09-17 10:58:01 +02:00
Nicolas De loof 387370d074
Merge pull request #623 from docker/external
Prefer external.name over x-aws-securitygroup
2020-09-17 10:22:28 +02:00
Nicolas De Loof 46cebb3194
Prefer external.name over x-aws-securitygroup
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-09-15 15:34:18 +02:00
Nicolas De Loof 30de56f64f
Introduce support for external EFS volumes
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-09-15 13:03:53 +02:00
Guillaume Tardif bcead6f5ce
Merge pull request #602 from docker/useragent
customize SDK user agent so AWS can track usage
2020-09-10 17:00:52 +02:00
Nicolas De Loof d649a5d92c
Use a custom user-agent so AWS can track usage
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-09-10 16:51:20 +02:00
Guillaume Tardif c7a456ab83
Merge pull request #593 from docker/volume_create
ACI Volume create
2020-09-10 15:32:12 +02:00
Guillaume Tardif 099b64935b Minor fixes
Co-authored-by: Chris Crone <christopher.crone@docker.com>

Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-09-10 14:55:46 +02:00
Guillaume Tardif 08562b403e Connecting it all
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-09-08 15:30:50 +02:00
Guillaume Tardif 9ed06ece5b Adding volume API & initial CLI command
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-09-08 15:30:50 +02:00
Nicolas De Loof 2f4011bfe6
Distinguish TaskExecutionRole and TaskRole
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-09-08 15:25:24 +02:00
Nicolas De Loof fda09712c0
Null safety
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-09-08 10:51:14 +02:00
aiordache 66c92595e5 list stacks by project name for ecs
Signed-off-by: aiordache <anca.iordache@docker.com>
2020-09-07 14:59:02 +02:00
aiordache 799b799f30 Implement `compose ls` for ACI
Signed-off-by: aiordache <anca.iordache@docker.com>
2020-09-07 14:39:49 +02:00
Nicolas De loof 0dd6416742
Merge pull request #590 from docker/api_folder 2020-09-07 13:34:28 +02:00
Guillaume Tardif d06aa2827f Move containers, compose, secrets to /api
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-09-07 13:22:08 +02:00
Nicolas De Loof 1506c7ac9b
create ALB is protocol is set to "http" or "https"
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-09-07 12:24:48 +02:00
aiordache 02be463fd7 Add `compose ls` command for ECS
Signed-off-by: aiordache <anca.iordache@docker.com>
2020-09-04 13:20:11 +02:00
Nicolas De Loof 7104b8126a
another hack-ish hack to support compose logs
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-09-01 16:02:06 +02:00
Nicolas De Loof 4bd8a8860f
implement "down" with (yet another) docker-compose hack
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-09-01 15:35:31 +02:00
Nicolas De Loof 4d11594df0
default description if none set by user
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-31 17:10:59 +02:00
Nicolas De Loof fed50d79f2
introduce ecs-local context
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-31 15:30:05 +02:00
Nicolas De Loof c1ecb2b7be
Check we have compose 1.27 or later
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-31 10:01:53 +02:00
Nicolas De Loof 7f8bb030e6
Introduce ECS emulation mode
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-31 10:01:52 +02:00
Nicolas De Loof cd27fcb9c8
Check VPC has DNS resolution enabled
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-28 10:59:48 +02:00
Nicolas De Loof edb30e7e82
Revisit compose API so it uses compose-go Project as parameter
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-27 10:59:20 +02:00
Guillaume Tardif 4879e88b04 Fix last references to /docker/api
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-08-25 16:26:36 +02:00
Guillaume Tardif ad5c465bd1
Merge pull request #485 from docker/repo-rename
Rename docker/api -> docker/compose-cli
2020-08-25 15:58:51 +02:00
Guillaume Lours 10b7197e4a Remove version in test compose files
Signed-off-by: Guillaume Lours <guillaume.lours@docker.com>
2020-08-24 10:15:42 +02:00
Chris Crone 4c6280b0e9 Rename docker/api -> docker/compose-cli
Signed-off-by: Chris Crone <christopher.crone@docker.com>
2020-08-21 17:28:39 +02:00
Nicolas De Loof 1b43e0c1d6
Poll ECS logs until context is canceled
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-21 16:03:49 +02:00
Nicolas De Loof 66e25937c6
Merge remote-tracking branch 'origin/main' into ecs-import
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-19 11:28:31 +02:00
Nicolas De Loof ec4615ae57
Apply linter recommendations
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-19 08:16:19 +02:00
Nicolas De Loof 0a6d7b1c6d
Reduce cyclomatic complexity
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-18 16:25:26 +02:00
Nicolas De Loof 55a21122d0
Copytight header
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-18 15:34:40 +02:00
Nicolas De Loof 2791542fea
Merge remote-tracking branch 'origin/main' into ecs
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-18 10:36:17 +02:00
Nicolas De Loof cfbd963c3d
Adjust commands to latest compose-go
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-18 10:01:32 +02:00
Nicolas De Loof 6e6a11aa73
Introduce Secrets API
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-18 09:43:15 +02:00
Nicolas De Loof 91427d0492
introduce `Convert` in compose API
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-18 08:58:37 +02:00
Nicolas De Loof e02d8d549b
Make ECS integration a compose-cli backend
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:30:49 +02:00
Nicolas De Loof 7715ee8e59
Import docker/ecs-plugin as ECS backend
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:29:40 +02:00
aiordache 9eb0a10517
Init progress writer in WaitStackCompletion
Signed-off-by: aiordache <anca.iordache@docker.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:45 +02:00
Nicolas De Loof f74cc8f0aa
Allow user to customize Roles / ManagedPolicy
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:44 +02:00
Nicolas De Loof 8182c98abf
Don't pretend we know resources to be created
some resources are controlled by a CloudFormation Condition and as such
won't be created. If we add them to the progresswriter, the latter will
never receive status update.

Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:44 +02:00
aiordache de99add26b
Use docker/api progress writer
Signed-off-by: aiordache <anca.iordache@docker.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:43 +02:00
Nicolas De Loof 83d65c02a0
Fix flacky test
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:43 +02:00
Nicolas De Loof d281f6cb3e
Allow fine tunning of awslogs
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:43 +02:00
Nicolas De Loof 5ed328d8df
Add service.env_file support
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:42 +02:00
Nicolas De Loof 7d927ebe4f
Compute rolling update min/max limits
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:42 +02:00
Nicolas De Loof 8e538683d3
Update Golden
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:41 +02:00
Nicolas De Loof d74796aca2
Pass secret definition to init container as json struct
this avoid yet another new micro-formats that is poorly documented

Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:41 +02:00
Nicolas De Loof 4bfab35007
TestCase for the secrets init container
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:41 +02:00
Nicolas De Loof 85b3cbd6ea
use an initContainer to inject secrets as /run/secrets/xx
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:40 +02:00
Nicolas De Loof b05af0c0ac
Claim support for healthcheck.retries
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:40 +02:00
Nicolas De Loof 59e8eaf744
Don't set targetGroup a name to avoid conflicts
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:39 +02:00
Nicolas De Loof 35019564e4
Configure Deployment controller
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:39 +02:00
Nicolas De Loof e7bc8081ba
Propagate service tags on Tasks
closes #188

Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:39 +02:00
Nicolas De Loof 8582cb3928
update compose-go and adopt NewProjectOptions and functional parameters
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:38 +02:00
Nicolas De Loof 1a3c75fa29
Update aws go sdk and goformation
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:38 +02:00
Nicolas De Loof 9ac3ce772c
Better diagnostic message for "new ARN format" requirement
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:37 +02:00
David Killmon 0df99075cc
add shared config state to session
By adding this flag to the session, we force the AWS Go SDK to read
the ~/.aws/config file. By default, the Go SDK doesn't read this file
which is often not what we or customers expect. Many customers store
their assume role based prfoiles in the .aws/config file rather than
the .aws/credentials file.

(This is what the AWS CLI does, by default - but that's because this
parameter is enabled by default in the python SDK).

Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:37 +02:00
aiordache 55531eb6b4
Remove `compose up` timeout
Signed-off-by: aiordache <anca.iordache@docker.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:37 +02:00
aiordache cec3187bbb
Set task tags
Signed-off-by: aiordache <anca.iordache@docker.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:36 +02:00
aiordache f5703310ef
Add template description
Signed-off-by: aiordache <anca.iordache@docker.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:36 +02:00
aiordache 1cde947297
fix custom vpc setup
Signed-off-by: aiordache <anca.iordache@docker.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:35 +02:00
aiordache 716fd13690
sort cpu values in conversion to fargate values
Signed-off-by: aiordache <anca.iordache@docker.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:35 +02:00
aiordache 94671e99e1
improve error message for unsupported resource combination
Signed-off-by: aiordache <anca.iordache@docker.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:35 +02:00
aiordache ce3ab38e61
Add test for convert failure
Signed-off-by: aiordache <anca.iordache@docker.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:34 +02:00
aiordache 2ef1e28f1d
Add support for deploy.resources
Signed-off-by: aiordache <anca.iordache@docker.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:34 +02:00
aiordache 3706d8617f
Pointers value access fixes
Signed-off-by: aiordache <anca.iordache@docker.com>
(cherry picked from commit 65d6fe57546b4f7a58ecf878d8740155285bc19a)
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:33 +02:00
aiordache 12215130b5
generic URL/port/protocol retrieval for compose ps
Signed-off-by: aiordache <anca.iordache@docker.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:33 +02:00
Nicolas De Loof 2d931dab9d
`up` can update an existing stack using CloudFormation Changeset
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:33 +02:00
Nicolas De Loof efeded2670
Remove Cluster from context
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:32 +02:00
Nicolas De Loof 37b9e74308
Implement `ps` without need for the original compose.yaml file
close #165

Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:32 +02:00
Nicolas De Loof d7d5e63054
Introduce x-aws-cluster for cluster to deploy application to
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:31 +02:00
Christopher Crone 1b53dbf84f
readme: Update Docker Desktop links
Makes it easier to find the Edge build.

Signed-off-by: Christopher Crone <christopher.crone@docker.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:31 +02:00
Nicolas De Loof dbbd24d270
Don't create a LoadBalancer if compose app has no port exposed
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:31 +02:00
Chad Metcalf b2a9019700
LoadBalancer names cannot be longer then 32 characters..
Longer names will fail with:

 AmazonElasticLoadBalancingV2; Status Code: 400; Error Code: ValidationError;

 Fairly straight forward approach, truncate at 32 characters.
 Considering that we append "LoadBalancer" to every name and it is 12
 characters the name should stay useful. We can decide later if "LB" is
 better then a truncated "LoadBalan".

 The golden test data needed to be updated because its names were also
 over 32 characters.

 Fixes #160.

Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:30 +02:00
Nicolas De Loof 8ab544a770
Use env variables from os for interpolation
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:30 +02:00
Chad Metcalf b7d0b704e5
Change default context name to 'ecs'.
The ACI backend uses 'aci' as the default context name. The ECS backend
uses 'aws'. There may be other AWS or Azure backends so lets name them
for what they are.

Addresses issue #154.

Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:29 +02:00
Nicolas De Loof 794ea3cc24
Check context created by `context` command
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:29 +02:00
Nicolas De Loof 1783716a6a
claim support for deploy.replicas
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:29 +02:00
Nicolas De Loof a0a785f19e
Clarify example/README about required secret NAME
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:28 +02:00
Christopher Crone 55d560badb
readme: Blog link fix
Signed-off-by: Christopher Crone <christopher.crone@docker.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:28 +02:00
Christopher Crone 0b5779b52d
readme: Add link to blog, install instructions
Signed-off-by: Christopher Crone <christopher.crone@docker.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:27 +02:00
Christopher Crone bcd9cda41c
docs: Fix download command
Signed-off-by: Christopher Crone <christopher.crone@docker.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:27 +02:00
Nicolas De Loof 16e7bbd697
Use compatibilityChecker to detect missing service image as a blocker
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:26 +02:00
Christopher Crone bdb8ad0b95
readme: Tidy and add docs link
Signed-off-by: Christopher Crone <christopher.crone@docker.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:26 +02:00
Christopher Crone 164e0d750d
readme: Add link to example
Signed-off-by: Christopher Crone <christopher.crone@docker.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:25 +02:00
Christopher Crone 52a64845c7
example: Add details and format
Signed-off-by: Christopher Crone <christopher.crone@docker.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:25 +02:00
Chad Metcalf 2586fa35d4
Adding the demo from AWS C3.
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:25 +02:00
Nicolas De Loof 6f916ab9ce
Update docs with download and docs links
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:24 +02:00
Nicolas De Loof ec58975524
Don't prepent docker.io to image URI. Let the container runtime apply default registry
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:24 +02:00
Nicolas De Loof 6664447d29
Fix setup command breaks if .aws/config does not exists
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:23 +02:00
Nicolas De Loof 98ec6c173b
Reject compose file that uses incompatible features
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:23 +02:00
Nicolas De Loof 242216cab1
Reject compose file not setting service image
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:23 +02:00
Nicolas De Loof 4700fed836
Unwrapp API errors to get user-friendly error message
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:22 +02:00
Nicolas De Loof f892ee1004
`ps` shows LoadBalancer URL
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:22 +02:00
Nicolas De Loof 324443deb6
Customize SDK requests to AWS API with user-agent
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:21 +02:00
Nicolas De Loof 2917251f5f
clarify project status
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:21 +02:00
Nicolas De Loof 5c53138a34
Drop use of mockgen made obsolete as we use CloudFormation
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:21 +02:00
Nicolas De Loof c0c31de0c8
testcase to check service mapping
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:20 +02:00
Nicolas De Loof 2bc1b710f2
Testcase to check resources get tagged
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:20 +02:00
Nicolas De Loof e2c903c85f
Set version by most recent Tag
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:19 +02:00
Nicolas De Loof d2911c1ea9
includes:"TAGS" is required for DescribeServices
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:19 +02:00
Nicolas De Loof 934e7ab9ea
don't set service `Name` so they can be updated by CloudFormation
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:19 +02:00
Nicolas De Loof a1eba59a46
`ps` do list services, not containers
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:18 +02:00
Nicolas De Loof cb74f7924e
Don't define service resource name
if we do, CloudFormation can't update resource and changeset fail with
"CloudFormation cannot update a stack when a custom-named resource
requires replacing"

Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:18 +02:00
Nicolas De Loof 5e1f40b752
Document required AWS permissions
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:17 +02:00
Nicolas De Loof ed262a0461
Generate mock inside a container
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:17 +02:00
Nicolas De Loof 874be0873d
generate code inside Docker container
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:16 +02:00
Nicolas De Loof c5895fe09a
Use `Project` from compose-go
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:16 +02:00
Nicolas De Loof dcf84f2499
Fix broken build on master
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:15 +02:00
aiordache 1bb95134f0
match docker/api signature for up and down methods
Signed-off-by: aiordache <anca.iordache@docker.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:15 +02:00
aiordache 9e8ddb63cc
fix lint issue - renamed CompatibilityChecker to Checker
Signed-off-by: aiordache <anca.iordache@docker.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:15 +02:00
aiordache bb98dae082
code restructure
Signed-off-by: aiordache <anca.iordache@docker.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:14 +02:00
Nicolas De Loof d36b9b104e
Fix broken master
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:14 +02:00
Nicolas De Loof 0f1a362664
Set FailureThreshold
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:13 +02:00
Nicolas De Loof d957987471
Unit tests for cobra commands
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:13 +02:00
Ulysses Souza a0500799d0
Fix and optimize build process
Kudos @chris-crone!

Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:12 +02:00
Ulysses Souza 1a09dc51ea
Refactor build process to build in containers
This is a re-apply from a previous commit

Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:12 +02:00
Nicolas De Loof 4be3562450
Revert "Refactor build process to build in containers"
This reverts commit adab0d1bdf7bf2cc242128aae7f5044bd5182ea1.

Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:12 +02:00
Christopher Crone 2ab64ea10e
docs: Add Linux install instructions
Signed-off-by: Christopher Crone <christopher.crone@docker.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:11 +02:00
Nicolas De Loof f192904d42
fix Makefile to produce docker-ecs binary
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:11 +02:00
Ulysses Souza 5f628cd0e5
Refactor build process to build in containers
Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:10 +02:00
aiordache d597e55f22
fix rebase
Signed-off-by: aiordache <anca.iordache@docker.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:10 +02:00
aiordache 2c190f11f7
LB Type tests
Signed-off-by: aiordache <anca.iordache@docker.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:10 +02:00
Nicolas De Loof 1d11e847fb
Test we create the expected policy document for pull_credentials
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:09 +02:00
Nicolas De Loof e88b11bc26
Introduce test to check CloudFormation conversion
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:09 +02:00
aiordache c0f1a8bf18
create different methods to get lb type and security groups
Signed-off-by: aiordache <anca.iordache@docker.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:08 +02:00
aiordache 45dc8eda80
update test data
Signed-off-by: aiordache <anca.iordache@docker.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:08 +02:00
aiordache c04950cdac
improve lb security groups parsing
Signed-off-by: aiordache <anca.iordache@docker.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:08 +02:00
aiordache dad36e09f9
set ALB and security groups for http(s) protocol
Signed-off-by: aiordache <anca.iordache@docker.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:07 +02:00
aiordache 7337c7520f
rename LB field in the compose file
Signed-off-by: aiordache <anca.iordache@docker.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:07 +02:00
aiordache 02cc644c5a
fix test data
Signed-off-by: aiordache <anca.iordache@docker.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:06 +02:00
aiordache 2ea694a1c5
update test data
Signed-off-by: aiordache <anca.iordache@docker.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:06 +02:00
aiordache 3194cc9b16
allow user defined LB
Signed-off-by: aiordache <anca.iordache@docker.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:06 +02:00
Nicolas De Loof fbb5bdac6e
Fix resource naming
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:05 +02:00
Nicolas De Loof 37177e6d7a
Split long `Convert` func into smaller, focussed sub-func
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:05 +02:00
aiordache f71109be9e
update testdata
Signed-off-by: aiordache <anca.iordache@docker.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:04 +02:00
aiordache eddaa70a9e
create NLB load balancer only
Signed-off-by: aiordache <anca.iordache@docker.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:04 +02:00
aiordache 335806a179
create only one global load balancer - error out if exports port require different types
Signed-off-by: aiordache <anca.iordache@docker.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:03 +02:00
aiordache e7f77ca3ef
add all service security groups to LB
Signed-off-by: aiordache <anca.iordache@docker.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:03 +02:00
aiordache 92173eaf35
add SO link for issue if listener is not in service dependencies
Signed-off-by: aiordache <anca.iordache@docker.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:02 +02:00
aiordache ae3101fe12
create unique load balancer per app and cleanup
Signed-off-by: aiordache <anca.iordache@docker.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:02 +02:00
aiordache fc9b10fc91
add load balancer
Signed-off-by: aiordache <anca.iordache@docker.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:02 +02:00
Nicolas De Loof b702065075
custom extension to select existing VPC and SecurityGroups
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:01 +02:00
Nicolas De Loof 1bf4bc9d46
Use distinct family per service definition
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:01 +02:00
Nicolas De Loof 7d4222a725
Implement depends_on using CloudFormation
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:00 +02:00
Nicolas De Loof ff88290302
Make `ps` order predictable
so one can run `watch docker ecs compose ps`

Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:00 +02:00
Nicolas De Loof 5080a83242
prevent "Tasks cannot be empty" error
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:26:00 +02:00
Nicolas De Loof 5783b63556
Service can freely communicate within a network
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:25:59 +02:00
Nicolas De Loof 6c57fb9693
support deploy.replicas
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:25:59 +02:00
Nicolas De Loof be1c65d441
Get more from DescribeTask
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:25:59 +02:00
Nicolas De Loof da299f59e2
introduce 'ps' command
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:25:58 +02:00
Nicolas De Loof 564c369c3e
Compute resource names to avoid unsupported characters
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:25:58 +02:00
Nicolas De Loof 257f829679
Create service with project and service tags
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:25:57 +02:00
Nicolas De Loof 01e2b0c989
Present service logs with colored service prefix
This reproduce docker-compose behaviour to report logs with prefix
also moves log formating out from sdk.go

Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:25:57 +02:00
Chad Metcalf 3bc5fc129e
Create the plugin directory if it doesn't exist.
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:25:57 +02:00
Nicolas De Loof a798c95963
Register services with a known port with SRV record
see
https://github.com/docker/docker_aws/issues/15#issuecomment-634357859

Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:25:56 +02:00
Nicolas De Loof 3283bceac6
Support pull from ECR
close #58

Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:25:56 +02:00
Guillaume Lours e9fe3b2864
Add e2e test deploying a compose application to an ECS cluster
Signed-off-by: Guillaume Lours <guillaume.lours@docker.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:25:55 +02:00
Nicolas De Loof 08bd18231d
Introduce `Normalize` and `Check` in compose model lifecycle
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:25:55 +02:00
Nicolas De Loof a5a925173c
SDK methods to query service tasks and retrieve public IP
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:25:55 +02:00
Guillaume Lours 6798ad1245
Add security group declaration in cloudformation conversion tests
Signed-off-by: Guillaume Lours <guillaume.lours@docker.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:25:54 +02:00
Nicolas De Loof ae4dc2e0db
Reject compose file with unsupported features
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:25:54 +02:00
Nicolas De Loof 8cd4a6fe9b
Fix golden files after rebase
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:25:54 +02:00
Guillaume Lours 07a57469db
Add unit tests version of migration tests instead of e2e one
Signed-off-by: Guillaume Lours <guillaume.lours@docker.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:25:53 +02:00
Guillaume Lours 4bbe3f1589
Add first compose to cloudformation conversion tests
Signed-off-by: Guillaume Lours <guillaume.lours@docker.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:25:53 +02:00
aiordache 3e5b118f26
add GetLogs to MockAPI
Signed-off-by: aiordache <anca.iordache@docker.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:25:53 +02:00
aiordache 0492dacfee
remove redundant var init
Signed-off-by: aiordache <anca.iordache@docker.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:25:52 +02:00
aiordache 9dbff1eb72
add logs command
Signed-off-by: aiordache <anca.iordache@docker.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:25:52 +02:00
Nicolas De Loof 43d3d94c43
Create cluster by compose up
close #53

Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:25:51 +02:00
Nicolas De Loof 1fdac494f3
Create CloudFormation template with parameters
so we don't need AWS API to resolve IDs and can run conversion offline

Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:25:51 +02:00
Guillaume Lours 69a7ef0763
Make cluster optional in context setup
Signed-off-by: Guillaume Lours <guillaume.lours@docker.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:25:51 +02:00