Commit Graph

76 Commits

Author SHA1 Message Date
Djordje Lukic a2edb5b64e Fix adding a tag to a container group 2020-07-16 10:01:49 +02:00
Djordje Lukic 45a7c7a422
Merge pull request #385 from docker/aci_tags
Aci improvements on tags & single container run
2020-07-13 11:35:22 +02:00
Guillaume Tardif 042fb66ad8 Better progress display: “Group xxx” for container group creation, then separate lines for containers.
For single containers, there was a single mixed line now that the group and the container have the same name.
```
 $ ./bin/docker --context acitest run nginx
[+] Running 2/2
⠿ Group strange-bartik  Created         4.2s
⠿ strange-bartik        Done            20.6s
strange-bartik
``
2020-07-13 11:23:06 +02:00
Djordje Lukic 84dbd1467d Move the struct for creating and aci context to azure package 2020-07-13 11:05:19 +02:00
Guillaume Tardif 43b54ef75a Also remove map[string]string for azure login (tenantId param) 2020-07-10 16:55:44 +02:00
Guillaume Tardif 97d408d25d Replaced map[string] string by existing aciCreateOpts struct for context create 2020-07-10 16:39:09 +02:00
Guillaume Tardif e2b0ee08ac Fixed wrong error message 2020-07-10 15:45:49 +02:00
Guillaume Tardif 23a03c59aa Change single container tag to `docker-single-container` ; added tag `docker-compose-application`. The compose tag is not used yet, can be useful for metrics, and maybe other things later on. 2020-07-10 15:45:49 +02:00
Guillaume Tardif 1fbdbbbbe3
Merge pull request #381 from docker/fix-logs-windows
Get the real width of the terminal
2020-07-10 13:06:07 +02:00
Guillaume Tardif eb5965c962
Merge pull request #380 from docker/remove-single-container-fixed-name
Relax single container name and replace by using tags
2020-07-10 11:32:16 +02:00
Guillaume Tardif 52c2d09eae
Merge pull request #376 from docker/logout
Implement azure logout
2020-07-10 09:48:39 +02:00
Djordje Lukic ef2d304762 Allow non-interactive exec on ACI
If the request is for a non-interactive exec we don't attach the stdin
when executing.
2020-07-09 11:47:22 +02:00
Djordje Lukic e6c115dc17 Get the real width of the terminal
github.com/buger/goterm always returns 80 on windows...
2020-07-09 10:50:48 +02:00
Ulysses Souza 3b85582c38 Relax single container name
Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2020-07-09 10:40:50 +02:00
Guillaume Tardif 492ce96dd4 Implement azure logout 2020-07-08 17:48:10 +02:00
Guillaume Tardif 16acc36033
Merge pull request #356 from docker/fix-non-interactive
Add check on exec looking for arguments
2020-07-07 12:41:44 +02:00
Guillaume Tardif cb3ac513cc Add run env variables support (KEY=AVLUE or KEY, will grab the process env value).
No support yet for env files
2020-07-07 11:39:35 +02:00
Ulysses Souza 35cbb621fb Add check on exec looking for arguments
In the case where the command has arguments
it fails because ACI implementation does not
support commands with arguments

Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2020-07-07 09:32:52 +02:00
Guillaume Tardif dbc109808d Better error message when trying to remove a container from a compose application 2020-07-03 15:58:17 +02:00
Guillaume Tardif da3c3dab1c
@gtardif @rumpl Use %q instead of \"%s\"
Co-authored-by: Djordje Lukic <djordje.lukic@docker.com>
2020-07-03 15:40:25 +02:00
Guillaume Tardif 0dcab4004d
Use %q instead of \"%s\"
Co-authored-by: Djordje Lukic <djordje.lukic@docker.com>
2020-07-03 15:39:44 +02:00
Guillaume Tardif 568dc6de23 Do not allow ACI single containers with name that includes separator used for compose services (this would breaks docker logs, docker exec, docker rm using <CONTAINER_ID>) 2020-07-03 13:39:45 +02:00
Guillaume Tardif 76cb73c5c2 ACI : allow `docker compose down —project-name xxx` without requiring the compose file 2020-07-03 10:24:06 +02:00
Guillaume Tardif 6b74716490 Specific error message when user tries to remove one container from an ACI compose application, mentioning the name of the compose application and that user should use compose down 2020-07-03 10:03:46 +02:00
Guillaume Tardif 3c83e01e9c
Merge pull request #327 from docker/compose-go
Use compose-go's Project and ProjectOptions
2020-07-02 16:43:34 +02:00
Nicolas De Loof 622402709a
Use compose-go's Project and ProjectOptions
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2020-07-02 16:05:45 +02:00
Guillaume Tardif bba9e055af Allow users to specify tenanted when logging into azure (if several tenants for azure account) 2020-07-01 12:27:18 +02:00
Djordje Lukic 06596dcd90 Follow logs on ACI.
This is not ideal, the ACI API doesn't give us a stream of logs, so we
need to fake it by moving the cursor up and rewriting the logs to
stdout. This means that, on gRPC side, we will stream the whole logs
each time. This is ok for now but we need to push Azure to give us a
real streaming API for logs
2020-06-30 16:34:32 +02:00
Djordje Lukic 6a5973597d Send the `tail` parameter to ACI if present 2020-06-29 15:40:58 +02:00
Ulysses Souza 1deb2b8b09 Integrate limits on inspect
Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2020-06-29 10:32:28 +02:00
Ulysses Souza 0a57fd7d5c Add cpu and memory limits
Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2020-06-29 10:28:43 +02:00
Guillaume Tardif daf7061e30
Merge pull request #244 from docker/aci_dns_sidecar
Aci dns sidecar
2020-06-19 11:49:04 +02:00
Djordje Lukic ad72c866cc Add license headers 2020-06-18 16:48:03 +02:00
Guillaume Tardif 3f544f0e01 Don’t show ACI sidecar in `docker ps` 2020-06-18 16:13:04 +02:00
Guillaume Tardif f403307edf Allow compose updates without having to delete the stack every time.
Update will “typically” keep the same IP, but this isn’t guaranteed by azure
(ACI has limitations on what can be updated, but this does not apply to us for the moment : https://docs.microsoft.com/en-us/azure/container-instances/container-instances-update#properties-that-require-container-delete)
For the moment I check in the test that the IP is keep the same
2020-06-18 10:03:28 +02:00
Ulysses Souza 1039c5ed94 Add tests on inspect
Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2020-06-15 17:20:37 +02:00
Ulysses Souza 96bc1ca6f1 Add inspect command
Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2020-06-15 15:08:04 +02:00
Guillaume Tardif 774bfea341 Refactoring, add unit test or various interactive context creation 2020-06-03 10:55:55 +02:00
Guillaume Tardif 5675763856 Interactive context create, adding method CreateContextData to CloudService interface, so Cloud Backends can provide a custom context creation method. 2020-06-02 16:04:08 +02:00
Guillaume Tardif 01aaec2dbe Fix Azure login : allow getting a backend when no corresponding context already exists with an explicit call from the login command. Will be usefull next for context creation with azure interactive things 2020-05-29 11:35:35 +02:00
Guillaume Tardif a948b6e1d0 Remove azure resourceGroupClient from backend initialisation. Several advantages :
- less dependencies to init backend. (Will need to work more on this to make login command not need an existing subscription ID)
- backend does not get login token at init time. For a long running process (grace server) this would cause issues with token lifetime
- we benefit from the client config (polling options especially) set in aci.go, without duplicating stuff
2020-05-28 10:16:42 +02:00
Djordje Lukic 11339761ca Change the way a context is stored
Initially we stored the context data in the `Metadata` of the context
but in hindsight this data would be better of in the `Endpoints` because
that's what it is used for.

Before:
```json
{
  "Name": "aci",
  "Metadata": {
    "Type": "aci",
    "Data": {
      "key": "value"
    }
  },
  "Endpoints": {
      "docker": {}
  }
}
```

After:
```json
{
  "Name": "aci",
  "Type": "aci",
  "Metadata": {},
  "Endpoints": {
      "aci": {
          "key": "value"
      },
      "docker": {}
  }
}
```

With this change the contexts that we create are more in line with the contexts the docker cli creates.

It also makes the code less complicated since we don't need to marsal twice any more. The API is nicer too:

```go
// Get a context:
c, err := store.Get(contextName)

// Get the stored endpoint:
var aciContext store.AciContext
if err := contextStore.GetEndpoint(currentContext, &aciContext); err != nil {
	return nil, err
}
```
2020-05-22 16:32:43 +02:00
Guillaume Tardif 186289b75f Fix ace e2e tests : also use context store with config dir when registering aci backend 2020-05-20 17:15:56 +02:00
Ulysses Souza b25a6b4bd6 Add volumes to run command
Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2020-05-20 10:06:12 +02:00
Djordje Lukic a26dd81307 Add timeout as a parameter to the stop action 2020-05-18 15:31:59 +02:00
Djordje Lukic ce7cbd4463 Add `Stop` command on the gRPC side. 2020-05-18 15:31:59 +02:00
Ulysses Souza 872e81862a Fix typo (and refactor the method name)
Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2020-05-18 14:56:32 +02:00
Djordje Lukic fcb4b606e2 Add labels to containers on run 2020-05-18 13:54:03 +02:00
Djordje Lukic 5effbdc31f Add ACI public ip 2020-05-18 11:36:46 +02:00
Djordje Lukic d8a38afecc Implement printing published ports 2020-05-16 10:41:35 +02:00