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