Commit Graph

97 Commits

Author SHA1 Message Date
fe46c62362 Add SecretUpdate method to client
closes #28678

Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)

Update cli/command/service/update_test.go

Fixes test build error:

  secretAPIClientMock does not implement "github.com/docker/docker/client".SecretAPIClient (missing SecretUpdate method)

Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)
Upstream-commit: 77b8465d7e68ca102d7aae839c7b3fe0ecd28398
Component: engine
2017-01-13 09:51:05 -08:00
acc7a7c5ca Merge pull request #29918 from dongluochen/service_inspect_pretty
add port PublishMode to service inspect --pretty output
Upstream-commit: d6c8391bf680b1f7995e0390a346f10b114d1990
Component: engine
2017-01-09 22:43:41 +01:00
a164ad0f0e Merge pull request #29802 from thaJeztah/fix-secret-rm-consistency
Update order of '--secret-rm' and '--secret-add'
Upstream-commit: cd82a31edbae37c31212ac8b23180d90735ceab4
Component: engine
2017-01-09 21:34:05 +01:00
ccb8041876 add port PublishMode to service inspect --pretty output
Signed-off-by: Dong Chen <dongluo.chen@docker.com>
Upstream-commit: 5470312d236445b54bb6723f47c0966d3b057658
Component: engine
2017-01-09 10:30:28 -08:00
775c5633ef *: use opencontainers/go-digest package
The `digest` data type, used throughout docker for image verification
and identity, has been broken out into `opencontainers/go-digest`. This
PR updates the dependencies and moves uses over to the new type.

Signed-off-by: Stephen J Day <stephen.day@docker.com>
Upstream-commit: 7a855799175b6b984886ef1cfa337d6df1d4c668
Component: engine
2017-01-06 18:48:41 -08:00
eb7043f1ff Merge pull request #25234 from yongtang/25228-service-ps-multiple-ID
Support multiple service IDs on "docker service ps"
Upstream-commit: 18265591c2ae16b2fc831e9922fb27542f97fcf6
Component: engine
2017-01-03 12:40:24 +01:00
c1643b271a Remove deadcode from service/opts.go, SecretOpt
`SecretOpt` is in the `opts` package, this one is never used, so it's
dead code, removing it 👼.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
Upstream-commit: 84cb2d100b440db2213588e864d0df58315eb50b
Component: engine
2017-01-02 11:19:33 +01:00
b86a1135cd Update order of '--secret-rm' and '--secret-add'
When using both `--secret-rm` and `--secret-add` on `docker service update`,
`--secret-rm` was always performed last. This made it impossible to update
a secret that was already in use on a service (for example, to change
it's permissions, or mount-location inside the container).

This patch changes the order in which `rm` and `add` are performed,
allowing updating a secret in a single `docker service update`.

Before this change, the `rm` was always performed "last", so the secret
was always removed:

    $ echo "foo" | docker secret create foo -f -
    foo

    $ docker service create --name myservice --secret foo nginx:alpine
    62xjcr9sr0c2hvepdzqrn3ssn

    $ docker service update --secret-rm foo --secret-add source=foo,target=foo2 myservice
    myservice

    $ docker service inspect --format '{{ json .Spec.TaskTemplate.ContainerSpec.Secrets }}' myservice | jq .
    null

After this change, the `rm` is performed _first_, allowing users to
update a secret without updating the service _twice_;

    $ echo "foo" | docker secret create foo -f -
    1bllmvw3a1yaq3eixqw3f7bjl

    $ docker service create --name myservice --secret foo nginx:alpine
    lr6s3uoggli1x0hab78glpcxo

    $ docker service update --secret-rm foo --secret-add source=foo,target=foo2 myservice
    myservice

    $ docker service inspect --format '{{ json .Spec.TaskTemplate.ContainerSpec.Secrets }}' myservice | jq .

    [
      {
        "File": {
          "Name": "foo2",
          "UID": "0",
          "GID": "0",
          "Mode": 292
        },
        "SecretID": "tn9qiblgnuuut11eufquw5dev",
        "SecretName": "foo"
      }
    ]

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Upstream-commit: e91953407c310b476c44bd82a00b6c6ce64ee7c6
Component: engine
2016-12-31 14:55:29 +01:00
0de1da63ca Clean some stuff from runconfig that are cli only…
… or could be in `opts` package. Having `runconfig/opts` and `opts`
doesn't really make sense and make it difficult to know where to put
some code.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
Upstream-commit: c424be21b7aa732681ed019b5e547a99fdc2afa5
Component: engine
2016-12-24 13:16:00 +01:00
74f57538fd Support multiple service IDs on "docker service ps"
This fix tries to address issue raised in 25228 to support
multiple service IDs on `docker service ps`.

Multiple IDs are allowed with `docker service ps ...`, and
related documentation has been updated.

A test has been added to cover the changes.

This fix fixes 25228.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Upstream-commit: 70942352d56779b6c428efa1c2d4cb8a45c1dfa1
Component: engine
2016-12-22 11:33:47 -08:00
96f73955fb Fix misleading default for --replicas
This fix tries to address the issue raised in 29291 where
the output of `--replicas` in `service create/update`:
```
      --replicas uint                    Number of tasks (default none)
```
is misleading. User might incorrectly assume the number of replicas
would be `0` (`none`) by default, while the actual default is `1`.

The issue comes from the fact that some of the default values are
from daemon and it is not possible for client to find out the default
value.

In this case, it might be better to just simply not displaying `(default none)`.

This fix returns "" for `Uint64Opt` so that `(default none)` is hidden.

In addition to `--replicas`, this fix also changes
`--restart-delay`, `--restart-max-attempts`, `--stop-grace-period`,
`--health-interval`, `--health-timeout`, and `--restart-window`
in a similiar fashion.

New Output:
```
      --health-interval duration         Time between running the check (ns|us|ms|s|m|h)
      --health-timeout duration          Maximum time to allow one check to run (ns|us|ms|s|m|h)
...
      --replicas uint                    Number of tasks
...
      --restart-delay duration           Delay between restart attempts (ns|us|ms|s|m|h)
      --restart-max-attempts uint        Maximum number of restarts before giving up
      --restart-window duration          Window used to evaluate the restart policy (ns|us|ms|s|m|h)
...
      --stop-grace-period duration       Time to wait before force killing a container (ns|us|ms|s|m|h)
```

The docs has been updated. Note the docs for help output of `service create/update`
is out of sync with the current master. This fix replace with the update-to-date
help output.

This fix fixes 29291.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Upstream-commit: acc93db32bd0d14801db65d6cb0a0e06d7cec2f7
Component: engine
2016-12-19 19:35:05 -08:00
8bf34c7522 cli: Pin image to digest using content trust
Implement notary-based digest lookup in the client when
DOCKER_CONTENT_TRUST=1.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
Upstream-commit: d4d6f8c0d0c6cd0ba6dc96ab7a9ed07e1e766074
Component: engine
2016-12-14 10:49:33 -08:00
314935f565 Make --publish-rm precedes --publish-add, so that add wins
`--publish-add 8081:81 --publish-add 8082:82 --publish-rm 80
--publish-rm 81/tcp --publish-rm 82/tcp` would thus result in 81 and
82 to be published.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
Upstream-commit: 9d4aa3621f226f4167fb7c3585dfe1c37c40472e
Component: engine
2016-12-11 23:14:54 +01:00
97f2808afa Remove --port and update --publish for services to support syntaxes
Add support for simple and complex syntax to `--publish` through the
use of `PortOpt`.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
Upstream-commit: 75bf18c9f01d050e5fccab98fb671306c7c5f6d2
Component: engine
2016-12-11 23:14:54 +01:00
fede611756 Merge pull request #25860 from yongtang/1396-service-update-publish-rm
Return error for incorrect argument of `service update --publish-rm`
Upstream-commit: 032b5b21b603282e613b6d98da1c7cc2b021a924
Component: engine
2016-12-08 20:09:56 +01:00
3185ae49df Merge pull request #29041 from aaronlehmann/hide-updatestatus
api: Hide UpdateStatus when it is not present
Upstream-commit: e94a40cddaca7b920405a730d29892e49f1be19b
Component: engine
2016-12-08 13:55:13 +01:00
538d93fdc1 Return error for incorrect argument of service update --publish-rm <TargetPort>
Currently `--publish-rm` only accepts `<TargetPort>` or `<TargetPort>[/Protocol]`
though there are some confusions.

Since `--publish-add` accepts `<PublishedPort>:<TargetPort>[/Protocol]`, some user
may provide `--publish-rm 80:80`. However, there is no error checking so the incorrect
provided argument is ignored silently.

This fix adds the check to make sure `--publish-rm` only accepts `<TargetPort>[/Protocol]`
and returns error if the format is invalid.

The `--publish-rm` itself may needs to be revisited to have a better UI/UX experience,
see discussions on:
https://github.com/docker/swarmkit/issues/1396
https://github.com/docker/docker/issues/25200#issuecomment-236213242
https://github.com/docker/docker/issues/25338#issuecomment-240787002

This fix is short term measure so that end users are not misled by the silently ignored error
of `--publish-rm`.

This fix is related to (but is not a complete fix):
https://github.com/docker/swarmkit/issues/1396

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Upstream-commit: c4d773cdfe94a8ba4862a0f8df237b0fc31d2337
Component: engine
2016-12-01 17:46:53 -08:00
a68666e468 api: Hide UpdateStatus when it is not present
When UpdateStatus was not present, the empty values of the timestamps
would be present:

        "UpdateStatus": {
            "StartedAt": "0001-01-01T00:00:00Z",
            "CompletedAt": "0001-01-01T00:00:00Z"
        }

To fix this, make the timestamps pointers, so they can be set to nil
when they should not be shown.

Also make UpdateStatus itself a pointer, so an empty object does not
show up when there is no UpdateStatus.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
Upstream-commit: 0e70d96a6813704498a3ce9cc2786648c84daa3a
Component: engine
2016-12-01 15:08:41 -08:00
871ee3d12b Revert "Add -a option to service/node ps"
This reverts commit 139fff2bf0ebe12b61871ba8ec8be8d51c2338db.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
Upstream-commit: eb55d03f3c321e31c8da993233b2679f47d5b4e1
Component: engine
2016-11-28 18:08:45 +01:00
7ac8174c1e Merge pull request #28780 from vieux/accept_src_in_secret
support src in --secret
Upstream-commit: ce0068ed0483bd87dc4af1e7388d9b9a91431424
Component: engine
2016-11-26 14:34:30 +01:00
3ecec6e350 Allow hostname to be updated on service.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
Upstream-commit: 1c65cb6657f1288d6a7e93e0015bba68e6d374cd
Component: engine
2016-11-24 15:44:35 -05:00
c17df6c51f support src in --secret
Signed-off-by: Victor Vieux <victorvieux@gmail.com>
Upstream-commit: f70470b71e519012e91137a2512f40d5bb8d18af
Component: engine
2016-11-23 14:30:57 -08:00
a4da4522af Merge pull request #28328 from aaronlehmann/duration-opts
cli: Add valid suffixes for remaining duration options
Upstream-commit: 99a7289632974e4388ee09fbea2038410e713e0b
Component: engine
2016-11-21 14:03:00 -08:00
f8729bb9ff Merge pull request #28556 from ehazlett/container-secret-store
Fix target reference secrets and container secret store
Upstream-commit: 05963010ee2aa363bcbd6d925918a46dba02fd7d
Component: engine
2016-11-21 21:40:01 +01:00
a4b2e09289 Merge pull request #28539 from nishanttotla/pin-image-digest-ux
Suppressing digest for docker service ls/ps
Upstream-commit: 278e01d6de56e7ffb6f47db9dfca8fdb196a9643
Component: engine
2016-11-21 14:06:37 +01:00
4be5a5624f Suppressing digest for docker service ls/ps
Signed-off-by: Nishant Totla <nishanttotla@gmail.com>
Upstream-commit: e7d83fdb9a17c384397e81d7b5a83245b4216f79
Component: engine
2016-11-18 09:39:34 -08:00
2efd6e2078 Return warnings from service create and service update when digest pinning fails
Modify the service update and create APIs to return optional warning
messages as part of the response. Populate these messages with an
informative reason when digest resolution fails.

This is a small API change, but significantly improves the UX. The user
can now get immediate feedback when they've specified a nonexistent
image or unreachable registry.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
Upstream-commit: 948e60691e523022f88e7f8129f02106a0f8826c
Component: engine
2016-11-18 09:31:31 -08:00
d9512c0fad do not force target type for secret references
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>

use secret store interface instead of embedded secret data into container

Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
Upstream-commit: bebd472e40cae91b548e983872a2665a5836ba43
Component: engine
2016-11-17 15:49:02 -05:00
2e39dde1e5 refactor help func in CLI
Signed-off-by: Victor Vieux <victorvieux@gmail.com>
Upstream-commit: bf95472105e5dad55314cfff599abea5b81b134a
Component: engine
2016-11-17 10:54:10 -08:00
37bec9cc07 cli: Add valid suffixes for remaining duration options
A recent PR added `(ns|us|ms|s|m|h)` to the descriptions of some
duration options, but not all. Add it to the remaining options for
consistency.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
Upstream-commit: 32b12a28fcab98b79c9176fb78b5620a46906916
Component: engine
2016-11-11 17:44:42 -08:00
1b38432db0 only check secrets for service create if requested
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
Upstream-commit: 8dfdecbd2bf1c13e664a03b0c7c61ff391fb4fe1
Component: engine
2016-11-11 10:07:24 -05:00
b688822593 Add support for host port PublishMode in services
Add api/cli support for adding host port PublishMode in services.

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
Upstream-commit: 14ac9f60d0174256e0713701ebffaf5ca827da71
Component: engine
2016-11-10 18:07:55 -08:00
ca36766d89 Merge pull request #27998 from dnephin/compose-on-swarm
Support `docker stack deploy` from a Compose file
Upstream-commit: 750d634d62689bf45ecbb4ae34094ad6a5a7fce5
Component: engine
2016-11-10 17:59:57 -08:00
3213314d62 Merge pull request #28031 from yongtang/27902-extra-hosts
Add flag `--host` to `service create` and `--host-add/rm` to `service update`
Upstream-commit: bed96ce922da5fa9df98b826ff0e4ad4bf375a31
Component: engine
2016-11-10 16:55:29 -08:00
050cbb7ecd cli: docker service logs support
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
Upstream-commit: c7995fdc7760c23cdbed0fa4ca229517c71dba82
Component: engine
2016-11-10 13:46:02 -08:00
6e2afbaf59 Add flag --host to service create and --host-add/--host-rm to service update
This fix tries to address 27902 by adding a flag `--host`
to `docker service create` and `--host-add/--host-rm` to
`docker service update`, so that it is possible to
specify extra `host:ip` settings in `/etc/hosts`.

This fix adds `Hosts` in swarmkit's `ContainerSpec` so that it
is possible to specify extra hosts during service creation.

Related docs has been updated.

An integration test has been added.

This fix fixes 27902.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Upstream-commit: ea9a23ccdbd3a861e4cfa3441482b448fd1c17a5
Component: engine
2016-11-10 10:20:24 -08:00
52cbc60fd5 Convert deploy to use a compose-file.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
Upstream-commit: cbbc6b4d9bd50f7409c6d935efc899946c449de3
Component: engine
2016-11-10 11:28:18 -05:00
8bb2169ed5 Merge pull request #28186 from yongtang/27567-follow-up-dns-options
Add `--dns-option` to `docker run` and hide `--dns-opt`
Upstream-commit: 33af4dd505aac709d607d26fc19a16d3dffdd66e
Component: engine
2016-11-10 16:20:17 +01:00
a8a11f6c62 Add --dns-option to docker run and hide --dns-opt
This fix is a follow up to #27567 based on:
https://github.com/docker/docker/pull/27567#issuecomment-259295055

In #27567, `--dns-options` has been added to `service create/update`,
together with `--dns` and `--dns-search`. The `--dns-opt` was used
in `docker run`.

This fix add `--dns-option` (not `--dns-options`) to `docker run/create`, and hide
`--dns-opt`. It is still possible to use `--dns-opt` with
`docker run/create`, though it will not show up in help output.

This fix change `--dns-options`to --dns-option` for `docker service create`
and `docker service update`.

This fix also updates the docs and bash/zsh completion scripts.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Upstream-commit: 9b6b3c2076911ea0a510548943180ac9d1b8c286
Component: engine
2016-11-09 12:13:25 -08:00
bd20a72add more review updates
- return err instead of wrap for update secret
- add omitempty for data in secret spec

Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
Upstream-commit: 427c70d97779566b2b3ea3a9141bb9bf3dd05dd8
Component: engine
2016-11-09 14:27:45 -05:00
5cd25dda5d SecretRequestOptions -> SecretRequestOption
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
Upstream-commit: 5b2230a38b357a3e2725fc56be9c07c01fd1203e
Component: engine
2016-11-09 14:27:45 -05:00
19e0a8c065 support labels for secrets upon creation; review updates
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
Upstream-commit: 583c013a8735031f4e5090bb1699effb64daf950
Component: engine
2016-11-09 14:27:45 -05:00
d31e5eafbe secrets: support simple syntax --secret foo
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
Upstream-commit: a257f674ba22d325e7ad59541723c3ee4e9adc27
Component: engine
2016-11-09 14:27:45 -05:00
e093728442 review updates
- use Filters instead of Filter for secret list
- UID, GID -> string
- getSecrets -> getSecretsByName
- updated test case for secrets with better source
- use golang.org/x/context instead of context
- for grpc conversion allocate with make
- check for nil with task.Spec.GetContainer()

Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
Upstream-commit: b2e4c7f3b5b30fc6940768ec41836d708a48b463
Component: engine
2016-11-09 14:27:45 -05:00
3e01794690 move secretopt to opts pkg
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
Upstream-commit: c00138748daeef52d353dda66c7b89322b7708fc
Component: engine
2016-11-09 14:27:45 -05:00
9c2b1fd34a secrets: use explicit format when using secrets
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
Upstream-commit: 2adbdcdf5a83b45b4e191413d3aa14158535085b
Component: engine
2016-11-09 14:27:44 -05:00
e9ea5a5560 update to support new target in swarmkit
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
Upstream-commit: 88dea0e06e0e94a8ab4cb5fe852e26bff309261a
Component: engine
2016-11-09 14:27:44 -05:00
f3ba87649b simplify secret lookup on service create
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
Upstream-commit: dce2afbd81945056aa955079fac04e28ab96e703
Component: engine
2016-11-09 14:27:44 -05:00
994d3dafef support the same secret with different targets on service create
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
Upstream-commit: 111e497dc6be6a1211e446d6a91bfb6e1c14e4c2
Component: engine
2016-11-09 14:27:44 -05:00
a28c910916 add secret support for service update
- add nosuid and noexec to tmpfs

Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
Upstream-commit: 00237a96249739dbf426d81672a904e9f4c5e702
Component: engine
2016-11-09 14:27:44 -05:00