Commit Graph

294 Commits

Author SHA1 Message Date
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