Commit Graph

213 Commits

Author SHA1 Message Date
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
Nicolas De Loof 4ab37f8229
Implement Hostname-only service discovery using LOCALDOMAIN
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:25:50 +02:00
Guillaume Lours 0864513bfe
Switch automatically to interactive mode if one of the required flag is not set
Signed-off-by: Guillaume Lours <guillaume.lours@docker.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:25:50 +02:00
Guillaume Lours 51e04a4702
Add interactive 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:50 +02:00
Guillaume Lours 895dc249b4
Manage aws credentials within setup command
Signed-off-by: Guillaume Lours <guillaume.lours@docker.com>
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-08-17 21:25:49 +02:00