Commit Graph

197 Commits

Author SHA1 Message Date
Guillaume Tardif 624308134f Specific error message when specifying path as a volume source. Removed volume reference validation already done at https://github.com/compose-spec/compose-go/blob/5afecaa4cb/loader/validate.go#L38
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-11-12 11:38:40 +01:00
Guillaume Tardif 40334d570a Avoid nil pointer when reading logs of a just terminated container.
Hit this when following logs of a container restarted with a health check: 
```
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x168771e]

goroutine 1 [running]:
github.com/docker/compose-cli/aci.getACIContainerLogs(0x2d85260, 0xc000526c60, 0xc0001465a0, 0x24, 0xc0004f4da0, 0xa, 0xc0004f4db0, 0x7, 0x7ffeefbffab2, 0xb, ...)
	github.com/docker/compose-cli/aci/aci.go:285 +0x1fe
github.com/docker/compose-cli/aci.streamLogs(0x2d85260, 0xc000526c60, 0xc0001465a0, 0x24, 0xc0004f4da0, 0xa, 0xc0004f4db0, 0x7, 0x7ffeefbffab2, 0xb, ...)
	github.com/docker/compose-cli/aci/aci.go:297 +0x2e5
```

Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-11-09 18:19:31 +01:00
Guillaume Tardif 5c04e84e49
Merge pull request #882 from docker/yaml
Marshall cloudformation template as yaml
2020-11-06 13:51:12 +01:00
Guillaume Tardif 37737c3887 Do not send zero values in LivenessProbe, blocking deployments in some cases
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-11-06 12:21:12 +01:00
Ulysses Souza f6509ac814 Add Healthchecks to ACI
Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2020-11-06 12:21:12 +01:00
Nicolas De Loof cb02622318
Marshall cloudformation template as yaml
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-11-05 11:01:32 +01:00
Guillaume Tardif 5bdcfe2e4a Pin version of ACI sidecar image, so that we don’t affect prod users when re-publishing :latest.
Makefile includes a target to publish new versions, ensuring we don’t override an existing image tag

Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-10-28 17:19:12 +01:00
Guillaume Tardif 3e797f5088 Add trailing empty line in /etc/hosts that seem to be causing flakiness in name resolution for the last service mentioned
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-10-27 09:41:19 +01:00
Guillaume Tardif b138a3e4f6 Log something to be able to see what is happening remotely
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-10-26 15:21:16 +01:00
Guillaume Tardif 18e43b277c fmt.Scanln() does not wait forever… waiting for process termination signal
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-10-26 15:06:30 +01:00
Guillaume Tardif 3dddbcd7df We need to pass the full command and not rely on ENTRYPOINT for ACI containers, ACI overrides the ENTRYPOINT with commands.
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-10-26 15:03:37 +01:00
Nicolas De Loof 553865f294
minimalist container image to setup /etc/hosts on ACI
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-10-21 10:25:05 +02:00
Nicolas De loof 455c08c245
Merge pull request #804 from docker/separate_secret_code
Move ACI conversion code to specific files
2020-10-21 10:18:47 +02:00
Ulysses Souza 29ba42bbc4 Fix volume create cli bug
This passes the pointer to the concrete struct instead of a copy

Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2020-10-20 19:34:06 +02:00
Guillaume Tardif 38a58855b5 Move more specific code out of convert.go: restart policy
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-10-16 17:54:13 +02:00
Guillaume Tardif 406eb681d2 Moving code from global convert.go to volumes.go, ports.go
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-10-16 17:47:31 +02:00
Guillaume Tardif 7d04038690 Separate secret convert code into its own file
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-10-16 17:27:59 +02:00
Guillaume Tardif 487a4e485c Fix Flaky test due to array random order
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-10-16 17:13:52 +02:00
guillaume.tardif 18966eb3a1 for secret target path, use path.Join etc. instead of filepath.Join, as these paths are container side, not cli side. (do not use windows paths).
Signed-off-by: guillaume.tardif <guillaume.tardif@gmail.com>
2020-10-16 14:57:47 +02:00
Ulysses Souza 06e44a813c Support absolute paths for secrets
Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2020-10-15 15:46:07 +02:00
Guillaume Tardif 50a2ae1100 Display summary of reclaimed ACI resources (CPU/mem) in `docker prune`
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-10-15 15:45:48 +02:00
Guillaume Tardif a5e34323e2 Add `docker prune` command and ACI implementation
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-10-14 17:48:11 +02:00
Guillaume Tardif 7cf7b00584 Add ResourceService definition and ACI NOOP implementation
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-10-14 15:40:24 +02:00
Ulysses Souza 660c7bbdcf Add command "volume inspect"
Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2020-10-14 11:11:55 +02:00
Guillaume Tardif d8cd4038c2 Fix panic when invoking inspect with empty container id (ACI SDK returns status 200 but nil container group properties)
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-10-13 15:33:52 +02:00
Guillaume Tardif be4b9a6812
Merge pull request #760 from docker/add-quiet-flags
Add --quiet for some commands
2020-10-13 09:00:58 +02:00
Ulysses Souza 45212c6e21 Squash all secrets in a single one
Also adds an e2e test

Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2020-10-12 14:17:37 +02:00
Ulysses Souza 6c1ea32dae Add --quiet for some commands
- compose ls
- compose ps
- secret ls // Not implemented on ACI so no e2e-aci tests
- volume ls

Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2020-10-12 11:34:27 +02:00
Nicolas De loof a067882b6d
Merge pull request #734 from docker/add-version-in-user-agent
Add version to UserAgent on  ACI
2020-10-12 11:11:55 +02:00
Ulysses Souza 10632b008b Add version to UserAgent on ACI
This also refactors the Version insertion to make it global

Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2020-10-12 09:15:32 +02:00
Ulysses Souza 4d6a0bb00d Remove inline secrets option
Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2020-10-09 14:54:12 +02:00
Ulysses Souza 99186b1d04 Look for all mounts before removing a volume
This checks the volume mounts of all container groups from all
resource groups before removing a volume/fileshare

Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2020-10-09 14:39:21 +02:00
Guillaume Tardif 68d0413e36 Minor cleanup
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-10-09 11:53:53 +02:00
Guillaume Tardif 6516632ecf Add resource reservations to container inspect
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-10-08 17:47:16 +02:00
Guillaume Tardif b1edfb6507 Change inspect json output to group things a bit more nicely, and more like Moby json output
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-10-08 17:03:30 +02:00
Guillaume Tardif 343d54dac5 Allow to set memory / CPU limits higher than requests, ACI will request that limits are not higher than the total request for the container group. Also set requests = limits when only limits are set
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-10-08 17:03:30 +02:00
Guillaume Tardif c09f771359 Use compose resource request to set ACI retrouve request, and single container resource requests.
Limits should be used to allow one container in a container group to use more than the container requested resources, up to the total resources requested for the container group. 

Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-10-08 17:03:30 +02:00
aiordache 265dd197c3 Add detach flag to `compose up`
Signed-off-by: aiordache <anca.iordache@docker.com>
2020-10-07 15:51:43 +02:00
Guillaume Tardif 97576db803
Merge pull request #689 from ulyssessouza/json-out
Add json output format to several commands
2020-10-05 10:30:30 +02:00
Ulysses Souza 863d8ba7a8
Merge pull request #700 from gtardif/aci_constants
Regroup azure constants that might be things to switch in order to provide access to other azure clouds
2020-10-02 17:19:52 +02:00
Ulysses Souza ef5e013aa7 Return empty list instead of nil on List
Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2020-10-01 15:41:18 +02:00
Ulysses Souza 277702dc6b Add argument support to run command
Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2020-09-30 15:34:22 +02:00
Guillaume Tardif b514dafa91 Regroup azure constants that might be things to switch in order to provide access to other azure clouds.
See `az cloud list` to list endpoints specific to each azure cloud.

Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-09-30 14:05:28 +02:00
Guillaume Tardif ca35ccfb0e ACI Volumes : create takes one required arg, instead of required flag `--fileshare` (we still have required flag `--storage-account` specifically for ACI)
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-09-24 17:10:32 +02:00
Guillaume Tardif 7eda96bea4 Fix nil pointer when creating volume with “” storage account
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-09-24 12:59:29 +02:00
Guillaume Tardif cf3bb18c0e User compose.service.domainname rather than custom ACI extension for ACI DNSLabelName
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-09-22 14:44:22 +02:00
Guillaume Tardif 334ebf5f75 Implement --domainname flag on compose up, also defining compose extension "x-aci-domain-name" to store ACI DNSLabelName.
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-09-22 14:41:31 +02:00
Guillaume Tardif 701d1b834e ACI: allow users to set DNSLabelName and deploy containers with fqdn like `myapp.eastus.azurecontainers.io`
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-09-22 14:41:31 +02:00
Guillaume Tardif 7abdb085c0
Merge pull request #637 from docker/volume_tests
Added tests on ACI volume conversion, mock storageLogin required to get storage account keys
2020-09-22 14:40:46 +02:00
Guillaume Tardif 0092de6df1 Added tests on ACI volume conversion, mock storageLogin required to get storage account keys
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-09-22 14:24:12 +02:00
Guillaume Tardif f42e05fcc3
Merge pull request #636 from docker/update-copyright
Update copyright
2020-09-22 12:21:16 +02:00
Guillaume Tardif 772493d70d
Merge pull request #617 from ulyssessouza/volumes_ro
Add 'readOnly' capability to volumes on ACI
2020-09-22 12:14:31 +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 a71b2a39bd Add status field in API metrics
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-09-18 15:22:34 +02:00
Ulysses Souza 02d59ae510 Add 'readOnly' capability to volumes on ACI
Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2020-09-18 12:07:42 +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
Guillaume Tardif 10372b7098
Merge pull request #625 from docker/aci_context_create_no_sub
Check specified subscription in context create and if not found, prompt users they might need to login with -—tenant-id.
2020-09-17 22:29:06 +02:00
Guillaume Tardif 292ec55f46 Check specified subscription in context create and if not found, prompt users they might need to login with -—tenant-id.
Cf https://github.com/docker/aci-integration-beta/issues/27

Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-09-17 22:05:43 +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
Guillaume Tardif 3bf6a00a61 goimports
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-09-17 10:58:01 +02:00
Guillaume Tardif 0c1de64c84
Merge pull request #610 from docker/fix_volume_error_message
fix error message on ACI docker volume rm
2020-09-15 12:38:32 +02:00
Guillaume Tardif 06d0ffae82 Fix volume error message
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-09-15 09:27:22 +02:00
Guillaume Tardif 267b267201 Progress functions can return a string, that can be used in the caller of progress.Run to display final result after progress display
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-09-14 14:29:03 +02:00
Guillaume Tardif 57ded74aee
Merge pull request #598 from docker/encode_env_values
Properly send env variables containing “=“ in their value in ACI payload. Also properly send quoted values
2020-09-10 17:17:02 +02:00
Guillaume Tardif 98f0064fe9 Properly send env variables containing “=“ in their value in ACI payload. Also properly send quoted values
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-09-10 17:03:34 +02:00
Guillaume Tardif 0b3fdb637d Change volume IDs from “storageaccount@fileshare“ to “storageaccount/fileshare”
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-09-10 16:07:22 +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 80d23a6097 Removed NAME from `volume ls` output, allow `volume delete <ID>` using IDs from `volume ls`.
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-09-10 09:14:39 +02:00
Guillaume Tardif 18ad20f1c5 Display errors if resource not found when deleting volumes (file share or storage account)
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-09-09 10:44:05 +02:00
Guillaume Tardif b96a6d1086 Add progress on volume creation
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-09-08 17:54:45 +02:00
Guillaume Tardif 96d785a5bd Added volume delete, can delete juste a file share or the storage account if confirmed
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-09-08 16:32:16 +02:00
Guillaume Tardif 2f672f6c4c Volume e2e test
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-09-08 15:30:50 +02:00
Guillaume Tardif 15addf5c22 Break out aci backend.go into several files for each service
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-09-08 15:30:50 +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
Guillaume Tardif 45179a5bff Add first volume create in ACI
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-09-08 15:30:50 +02:00
aiordache b155fe0f2e retrieve status with get group by name
Signed-off-by: aiordache <anca.iordache@docker.com>
2020-09-07 14:39:49 +02:00
aiordache 50c99ed7f6 filter status result by project name
Signed-off-by: aiordache <anca.iordache@docker.com>
2020-09-07 14:39:49 +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
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
Guillaume Tardif 55d54cb21c
Merge pull request #584 from docker/aci_stop_follow_logs
ACI : when following logs (actually polling logs), stop polling when the container is not running.
2020-09-07 09:14:31 +02:00
Guillaume Tardif 7138ecc899 ACI : when following logs (actually polling logs), stop polling when the container is not running anymore.
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-09-04 15:46:35 +02:00
Nicolas De loof a8c290fe98
Merge pull request #583 from docker/compose_ls 2020-09-04 14:13:27 +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
Guillaume Tardif cbb416976a
Merge pull request #577 from docker/aci_device_login_ctrlc
ACI: Allow Ctrl+C to cancel CLI when using Azure Device Code Flow login
2020-09-04 13:07:54 +02:00
Guillaume Tardif 303958bb44
Merge pull request #574 from ulyssessouza/alias-rm-kill
Add 'kill' as an alias to 'stop'
2020-09-04 13:07:38 +02:00
Ulysses Souza 15066ce999 Add 'kill' command
- On ACI that's implemented as a stop,
since ACI does not implement a kill

Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2020-09-04 02:57:54 +02:00
Guillaume Tardif 76c92a8359 Pass in context to login tenant query, so it gets cancelled if the user Ctrl+C
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-09-03 18:21:30 +02:00
Guillaume Tardif 81f2496b5e Allow Ctrl+C to cancel CLI when using Azure Device Code Flow login
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-09-03 15:38:38 +02:00
guillaume.tardif bb58290eeb invoke browser with Run rather than Start, to get errors (on wsl no interop setup, and more generally if the browser app returns an error)
Signed-off-by: guillaume.tardif <guillaume.tardif@gmail.com>
2020-09-02 17:31:04 +02:00
Guillaume Tardif 909be662ee Azure fallback to device code flow if we can’t open a browser (some WSL2 scenarios)
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-09-02 15:46:17 +02:00
Guillaume Tardif b0c50ed6dd Implement compose ps on ACI
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-08-28 17:43:18 +02:00
Guillaume Tardif f80e90caca
Merge pull request #529 from docker/api
Revisit compose API so it uses compose-go Project as parameter
2020-08-27 11:52:27 +02:00
Guillaume Tardif 2ea000b280 Removed space before :
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-08-27 11:30: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 8dbb6c58b9 Print ACR login debug info
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-08-27 10:50:21 +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
Guillaume Tardif dc1e313858 Revert "Debug for CI failing tests (green locally)"
This reverts commit 1d875674357c7c5a5c26349f62c6f2ef71f74e38.

Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-08-21 12:45:01 +02:00
Guillaume Tardif a8548de5dd Debug for CI failing tests (green locally)
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-08-21 12:44:41 +02:00
Guillaume Tardif 5cab129c10 Add E2E test on deploying ACR images
Signed-off-by: Guillaume Tardif <guillaume.tardif@docker.com>
2020-08-19 14:31:45 +02:00