Commit Graph

53 Commits

Author SHA1 Message Date
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
Djordje Lukic 23d2eacf84
Merge pull request #97 from docker/feat-port-parsing
Port parsing on the comand line
2020-05-15 17:49:18 +02:00
Djordje Lukic 52f7902d40 Port parsing on the comand line 2020-05-15 15:04:09 +02:00
Guillaume Tardif 146dd3e639 Fix tokenStore not creating ~/.azure folder if not exist 2020-05-15 10:15:56 +02:00
Guillaume Tardif d49773e348 Use cli context for login 2020-05-15 10:15:56 +02:00
Guillaume Tardif bd5e3af2d4 Plug new authorizer and remove az dependency 2020-05-15 10:15:56 +02:00
Guillaume Tardif 69f10fe80c Extract interface / types to allow unit tests / mock 2020-05-15 10:15:56 +02:00
Guillaume Tardif 1e19d977e0 Initial functional login command : added Cloud API with generic Login() 2020-05-15 10:04:22 +02:00
Ulysses Souza 40fa78ac5d Add rm command
Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2020-05-13 10:44:04 +02:00
Guillaume Tardif 13db3437fd ACI Container ids work fine between ps, log & exec, either from single container (docker run) of multi-container compose stack 2020-05-06 22:15:33 +02:00
Ulysses Souza 73529cc264 Refactor example/backend
Also promote init function from returning
interface{} to backend.Service to avoid
typecasting

Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2020-05-05 17:14:26 +02:00
Ulysses Souza e075df6f8f Fix linter issues
Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2020-05-05 16:27:22 +02:00
Ulysses Souza ba455916c6 Refactor on services
This refactors the interfaces and implementations of
services

Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2020-05-05 15:37:12 +02:00
Ulysses Souza 03e418cbbb Add compose up and down
Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2020-05-05 14:03:14 +02:00
Djordje Lukic 24c035e822 Add comments on exported items, remove example command
Also add `make lint` to run the linter
2020-05-05 10:27:44 +02:00
Djordje Lukic e964a3af2e Implement `docker logs --tal <N>` 2020-05-04 16:38:02 +02:00
Djordje Lukic 1c7270b697 Implement logs 2020-05-04 15:52:31 +02:00
Djordje Lukic afca3e31b5 Implement exec command 2020-05-04 12:43:32 +02:00
Djordje Lukic 092c432028 Init all the fields of a compose project at once 2020-05-04 11:51:40 +02:00
Djordje Lukic 6fa941686c Make all functions in aci.go package private
They shouldn't be used outside of the package any way
2020-05-04 11:35:11 +02:00
Djordje Lukic a1a5e1794b Add ports publishing to run 2020-05-04 11:35:11 +02:00
Djordje Lukic 5aa31b6bf5 Separate conversion code into own package 2020-05-04 11:35:11 +02:00
Djordje Lukic 3d363643ad Implement simple ACI run 2020-05-04 11:35:11 +02:00
Djordje Lukic 152d4119d2 Proper variable naming 2020-05-04 09:59:12 +02:00