Commit Graph

101 Commits

Author SHA1 Message Date
eee1f8867e Merge pull request #25279 from aboch/auto
Only consider netlink "device" interfaces in address autodetection on Linux
Upstream-commit: acbac04c4bddb6861155ebdb28df1c19b50e5bdc
Component: engine
2016-08-05 14:13:53 +02:00
51a2e7806a Merge pull request #25309 from cpuguy83/25253_fix_accidental_bind_create
Validate mount paths on task create
Upstream-commit: e10f6a2e549cda2d4f8fc7ee23c91dc7a21bb967
Component: engine
2016-08-03 15:54:03 -07:00
4005e65c50 Only consider "device" interfaces in address autodetection on Linux
- This automatically rules out bridges and other non system
  created interfaces

Signed-off-by: Alessandro Boch <aboch@docker.com>
Upstream-commit: 8f7d3a43807890e690c31e33dad3764911e1491f
Component: engine
2016-08-02 10:54:43 -07:00
b98eabeaed Validate mount paths on task create
This is intended as a minor fix for 1.12.1 so that task creation doesn't
do unexpected things when the user supplies erroneous paths.

In particular, because we're currently using hostConfig.Binds to setup
mounts, if a user uses an absolute path for a volume mount source, or a
non-absolute path for a bind mount source, the engine will do the
opposite of what the user requested since all absolute paths are
treated as binds and all non-absolute paths are treated as named
volumes.

Fixes #25253

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
Upstream-commit: 38f8b0eb10725c40fb3c7e0719accd240cd39e22
Component: engine
2016-08-01 23:35:46 -04:00
0e5400a423 Add --force to node removal
Signed-off-by: Diogo Monica <diogo.monica@gmail.com>
Upstream-commit: a327c231b5c68c13b7dcde2fdc83b8e4cec59c43
Component: engine
2016-08-01 18:55:58 -07:00
91f37c3194 Better error messages when IP address autodetection fails
This fix tries to improve error messages when IP address
autodetection fails, as is specified in 25141.

Previously, error messages only indicate that multiple IPs
exist when autodetection fails. In this fix, if one
interface consists of multiple addresses or multiple
interfaces consist of addresses, the error messages output
the address names and interface names so that end user could
take notice.

This fix is verified manually.
When multiple addresses exist on multiple interfaces:
```
$ sudo docker swarm init
Error response from daemon: could not choose an IP address
to advertise since this system has multiple addresses on different
interfaces (192.168.186.128 on ens33 and 192.168.100.199 on eth10)
 - specify one with --advertise-addr
```
When multiple addresses exist on single interface:
```
$ sudo docker swarm init
Error response from daemon: could not choose an IP address
to advertise since this system has multiple addresses
on interface ens33 (192.168.186.128 and 192.168.55.199)
- specify one with --advertise-addr
```

This fix fixes 25141.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Upstream-commit: 59db01049ac6a8e54490565dc44661f780c13734
Component: engine
2016-07-31 20:03:30 -07:00
bced48a04a Merge pull request #25034 from thaJeztah/update-swarm-usage
Update usage of "Swarm" for consistency
Upstream-commit: c388a5bdfa922d85373cc8a77a08612ca4b67861
Component: engine
2016-07-29 01:01:00 +01:00
555a24da1d Remove join-tokens from the /info API
join-tokens are not needed for this endpoint, and should not be as part
of /info

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
(cherry picked from commit d8f3b3f006629c5c1368eca96bcd5bda2a54acd7)
Upstream-commit: 96b2a6e548bc3abf0f0a505ee020d2fe1e8997de
Component: engine
2016-07-27 18:11:51 -07:00
aa7e6b8845 Update usage of "Swarm" for consistency
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Upstream-commit: f0230049f0afd318217c60ebe486aab3b54538fd
Component: engine
2016-07-27 23:31:55 +02:00
154089229d Merge pull request #25042 from tiborvass/carry-24492
Carry 24492: Remove swarm inspect and use info instead
Upstream-commit: 9ee430fcf5bd8e2afc6896bb2e0d12c1226c56c2
Component: engine
2016-07-26 01:11:37 -07:00
326610d0c6 Merge pull request #25043 from stevvooe/forked-pull-context
container/controller: avoid cancellation with forked pull context
Upstream-commit: 7bb9676a2bab9517f06abf849cbe6e4337484a15
Component: engine
2016-07-26 01:01:09 -07:00
7501db1754 Merge pull request #25036 from nishanttotla/describe-function-update-executor
Using map to list plugins in node description
Upstream-commit: 301eba03e1f30e72e85b9c33b1d02476efad341d
Component: engine
2016-07-25 22:19:33 -07:00
bff0a1048f container/controller: avoid cancellation with forked pull context
Context cancellations were previously causing `Prepare` to fail
completely on re-entrant calls. To prevent this, we filtered out cancels
and deadline errors. While this allowed the service to proceed without
errors, it had the possibility of interrupting long pulls, causing the
pull to happen twice.

This PR forks the context of the pull to match the lifetime of
`Controller`, ensuring that for each task, the pull is only performed
once. It also ensures that multiple calls to `Prepare` are re-entrant,
ensuring that the pull resumes from its original position.

Signed-off-by: Stephen J Day <stephen.day@docker.com>
Upstream-commit: d8d71ad5b94d44a2778f2d8989424259cac94e9b
Component: engine
2016-07-25 21:52:10 -07:00
09945aead8 Merge pull request #24967 from mavenugo/eligiblenet
improve error message when using ineligible network with service create
Upstream-commit: 1afa8195936e8988a61bea5cf753ec8a7aaaf5fa
Component: engine
2016-07-25 21:02:24 -07:00
eb900df556 Remove swarm inspect and use info instead
Remove the swarm inspect command and use docker info instead to display
swarm information if the current node is a manager.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
Upstream-commit: e6923f6d75c2bd1b22cc1229214ffceca3251cc6
Component: engine
2016-07-25 20:31:10 -07:00
088c389905 Merge pull request #25030 from stevvooe/allow-cancellation-propagation
swarm/controller: allow cancellation to propagate
Upstream-commit: a6a261261d94748b9c3eb06ddb1f64f426eec43b
Component: engine
2016-07-25 19:50:32 -07:00
6a43c7c1ad swarm/controller: allow cancellation to propagate
Ensure that cancellation of a pull propagates rather than continuing to
container creation. This ensures that the `Prepare` method is properly
re-entrant.

Signed-off-by: Stephen J Day <stephen.day@docker.com>
Upstream-commit: d99c6b837ffd18ffe5bce801feb4936bf0edd2aa
Component: engine
2016-07-25 18:31:24 -07:00
2de0b34d83 Using map to list plugins in node description
Signed-off-by: Nishant Totla <nishanttotla@gmail.com>
Upstream-commit: feedb7ab5a139ba492a9b896e8efdc0b9ddc43b2
Component: engine
2016-07-25 17:45:32 -07:00
d759fd7b51 Merge pull request #24545 from runshenzhu/health-check
swarm: block controller.Start until container is healthy
Upstream-commit: a4634cd8a8edb9be9c73dc552e045fa868a861f7
Component: engine
2016-07-25 20:32:27 -04:00
5a95df9753 extend health check to start service
Signed-off-by: runshenzhu <runshen.zhu@gmail.com>
Signed-off-by: Runshen Zhu <runshen.zhu@gmail.com>
Upstream-commit: a99db84b4a966f0f09e81c446e857323a2a3302c
Component: engine
2016-07-25 15:49:22 -07:00
38618da388 Sort plugin names in node description
Signed-off-by: Nishant Totla <nishanttotla@gmail.com>
Upstream-commit: 227c7e4e8d8ce9ecb74ff1b38fe07cd6c37aee9f
Component: engine
2016-07-25 10:38:24 -07:00
f72c6bff06 Add failure action for rolling updates
This changes the default behavior so that rolling updates will not
proceed once an updated task fails to start, or stops running during the
update. Users can use docker service inspect --pretty servicename to see
the update status, and if it pauses due to a failure, it will explain
that the update is paused, and show the task ID that caused it to pause.
It also shows the time since the update started.

A new --update-on-failure=(pause|continue) flag selects the
behavior. Pause means the update stops once a task fails, continue means
the old behavior of continuing the update anyway.

In the future this will be extended with additional behaviors like
automatic rollback, and flags controlling parameters like how many tasks
need to fail for the update to stop proceeding. This is a minimal
solution for 1.12.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
Upstream-commit: 57ae29aa74e77ade3c91b1c77ba766512dae9ab4
Component: engine
2016-07-25 08:51:19 -07:00
4d19e2a5c0 improve error message when using ineligible network with service create
Signed-off-by: Madhu Venugopal <madhu@docker.com>
Upstream-commit: 40c88b8c54fe4595f8bda5417ced3729eea5b16e
Component: engine
2016-07-25 08:31:22 -07:00
667eed7772 Require listen address and advertise address to be an IP address or an interface name
Hostnames are not supported for now because libnetwork can't use them
for overlay networking yet.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
Upstream-commit: fca0b18dcba99a7fbb8b430a55dc7bf60d5c1356
Component: engine
2016-07-24 09:23:38 -07:00
2150ea40b1 Split advertised address from listen address
There are currently problems with "swarm init" and "swarm join" when an
explicit --listen-addr flag is not provided. swarmkit defaults to
finding the IP address associated with the default route, and in cloud
setups this is often the wrong choice.

Introduce a notion of "advertised address", with the client flag
--advertise-addr, and the daemon flag --swarm-default-advertise-addr to
provide a default. The default listening address is now 0.0.0.0, but a
valid advertised address must be detected or specified.

If no explicit advertised address is specified, error out if there is
more than one usable candidate IP address on the system. This requires a
user to explicitly choose instead of letting swarmkit make the wrong
choice. For the purposes of this autodetection, we ignore certain
interfaces that are unlikely to be relevant (currently docker*).

The user is also required to choose a listen address on swarm init if
they specify an explicit advertise address that is a hostname or an IP
address that's not local to the system. This is a requirement for
overlay networking.

Also support specifying interface names to --listen-addr,
--advertise-addr, and the daemon flag --swarm-default-advertise-addr.
This will fail if the interface has multiple IP addresses (unless it has
a single IPv4 address and a single IPv6 address - then we resolve the
tie in favor of IPv4).

This change also exposes the node's externally-reachable address in
docker info, as requested by #24017.

Make corresponding API and CLI docs changes.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
Upstream-commit: a0ccd0d42fdb0dd2005f67604cb81a5a6b26787e
Component: engine
2016-07-24 09:23:07 -07:00
ce1e21d6ce Update the errNoManager() to conform to swarm join-token
In 24823, `swarm join` has been updated to take a `--token`
flag and flag `--manager` has been removed. Though in errNoManager()
the error message still use the old description.

This fix update the error message in errNoManager() and conforms
to the current available flags.

This fix is related to 24823.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Upstream-commit: 3d30155735d572376500729496de657459493213
Component: engine
2016-07-22 00:32:24 -07:00
b141a44de0 Replace secrets with join tokens
Implement the proposal from
https://github.com/docker/docker/issues/24430#issuecomment-233100121

Removes acceptance policy and secret in favor of an automatically
generated join token that combines the secret, CA hash, and
manager/worker role into a single opaque string.

Adds a docker swarm join-token subcommand to inspect and rotate the
tokens.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
Upstream-commit: 2cc5bd33eef038bf5721582e2410ba459bb656e9
Component: engine
2016-07-21 15:23:03 -07:00
7fe7aaea87 Merge pull request #24620 from yongtang/24270-service-list-filter
Allow partial name match for service ls --filter, node ls --filter, node tasks --filter
Upstream-commit: 7d84c715005dd123b0a63f23b207c12cb998786f
Component: engine
2016-07-20 21:25:06 +02:00
a996d4618b Allow partial name match for node ls, and node tasks
This fix is an extension to last commit to expand the partial
filter to node and task searches.

Additional integration tests have been added to cover the changes.

This fix fixes 24270.
This fix fixes 24112.

Note: A separate pull request will be opened on swarmkit.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Upstream-commit: e734fa58eadb4dfaa33b4be275d6f8f29d899e78
Component: engine
2016-07-20 08:16:10 -07:00
a9e33b5e83 Merge pull request #24476 from stevvooe/services-log-driver-support
swarm: add log driver support for services
Upstream-commit: 1796680381e7cb35eda14243a3fba1ac911ff908
Component: engine
2016-07-18 19:08:12 -07:00
962ced6b90 Allow partial name match for service ls --filter
This fix tries to address the issue raised in 24270 where it was
not possible to have a partial name match when list services
with name filter.

This fix updates swarmkit and allows prefix search when name is
provided as the filter for listing services.

An additional integration test is added to cover the changes.

This fix fixes 24270.

Note: A separate pull request will be opened on swarmkit.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Upstream-commit: 1d600ebcb5750c4c93356fae08e562d836ecee45
Component: engine
2016-07-18 17:53:08 -07:00
aa2ddf3393 swarm: add log driver support for services
Adds log driver support for service creation and update. Add flags
`--log-driver` and `--log-opt` to match `docker run`. Log drivers are
configured per service.

Signed-off-by: Stephen J Day <stephen.day@docker.com>
Upstream-commit: e778ba2d5b1e5074fe413dffaa365f3d37b175c7
Component: engine
2016-07-15 21:39:27 -07:00
ffdb429522 Increase timeout for swarm requests
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
Upstream-commit: 85b1fdf15ce2ad1b373748554d3aa218e2eb5a5f
Component: engine
2016-07-15 11:03:08 -07:00
52fb31b62e Return an empty services list if no services are running
Signed-off-by: Ralf Sippl <ralf.sippl@gmail.com>
Upstream-commit: c8e4e95db9b0d3115435b8f0e94c78a2e0cb92d0
Component: engine
2016-07-12 11:41:04 +02:00
7fcae13aa7 Merge pull request #24474 from mavenugo/fix-24452
swarmkit expects network-id for as target
Upstream-commit: 36f3d4af233acd7c32caf94ed98ccee4585cc1f7
Component: engine
2016-07-11 20:59:38 +02:00
737108710c Merge pull request #24139 from runshenzhu/health-check
add health check in docker build-in swarm mode
Upstream-commit: e2fc1439a11cff5f719ae47265da135d26dd36ad
Component: engine
2016-07-11 09:43:59 -04:00
f2aefa4f7f swarmkit expects network-id for as target
For any operation that involves netwoks (other than network create),
swarmkit expects the target as network-id. Service upate was using
network-name as the target and that caused the issue.

Signed-off-by: Madhu Venugopal <madhu@docker.com>
Upstream-commit: b32cfb32a3f654f27bc9d4356b36c6a7e5e53b21
Component: engine
2016-07-08 18:00:41 -07:00
8d74981897 Add logdrivers to executor from swarmkit
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
Upstream-commit: 8a50315f3ce89b24e3556dba288b2ce7b4daf026
Component: engine
2016-07-08 13:33:40 -07:00
7ac8dc18c4 Update executor volumes from swarmkit
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
Upstream-commit: 6586f4f0719ae59c4a2b74acd91a1a888a0018b5
Component: engine
2016-07-08 13:33:40 -07:00
e4b8c6fd9c Merge pull request #23312 from justincormack/proxy
Make the docker proxy a standalone binary not a re-exec
Upstream-commit: 07dd69df8d6c5f4da0059d49e128fef9277fcb5d
Component: engine
2016-07-07 17:14:40 -07:00
2ccfe96ba1 Update swarmkit vendoring
Needed for libnetwork vendoring

Update Secret API name change correspondingly

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
Upstream-commit: d428a7a425f071ee9e5707c7319d3197540adc19
Component: engine
2016-07-07 21:01:54 +01:00
f5a13a7cbe Use "on-failure" for both containers and services
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
Upstream-commit: a859a336475f39c7b7d7739c58a1dae40df86a86
Component: engine
2016-07-07 11:32:19 +02:00
7ac01fb32e Use newer default values for mounts CLI
In the API:
`Writable` changed to `ReadOnly`
`Populate` changed to `NoCopy`

Corresponding CLI options updated to:
`volume-writable` changed to `volume-readonly`
`volume-populate` changed to `volume-nocopy`

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
Upstream-commit: 56f3422468a0b43da7bae7a01762ce4f0a92d9ff
Component: engine
2016-07-06 22:34:39 -04:00
f773935c3b add health check in docker cluster
Signed-off-by: runshenzhu <runshen.zhu@gmail.com>
Upstream-commit: 1ded1f26e154e283ab26f347971d4d4a51edc94f
Component: engine
2016-07-06 13:43:20 -07:00
786983bb63 Merge pull request #24323 from avsm/better-leave-grammar
Improve the warning messages when leaving a Swarm cluster
Upstream-commit: c70e432cee7ce2052a729f85da31420b6c01d72c
Component: engine
2016-07-06 12:00:20 +02:00
e4dfc2d04c Validate hostname starting from 1.24 API.
In order to keep a little bit of "sanity" on the API side, validate
hostname only starting from v1.24 API version.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
Upstream-commit: 6daf3d2a783fd042e870c8af8bbd19fc28989505
Component: engine
2016-07-06 09:13:59 +02:00
f3ff9e9f18 Merge pull request #24173 from vdemeester/tasks-filter-service-node-by-name
Allow service and node filter to be name in `tasks` subcommands 
Upstream-commit: db75aa029d1843b3fdabb16c5cd9e1b3a99f39b2
Component: engine
2016-07-05 12:16:57 -07:00
21a36cd129 Improve the warning messages when leaving a Swarm cluster
Signed-off-by: Anil Madhavapeddy <anil@docker.com>
Upstream-commit: 22a3d1fa209282e938ca16f31cce0dab4f35bf72
Component: engine
2016-07-05 09:14:23 +01:00
0bdbf282f3 Fix spelling in comments, strings and documentation
Signed-off-by: Otto Kekäläinen <otto@seravo.fi>
Upstream-commit: 644a7426cc31c338fedb6574d2b88d1cc2f43a08
Component: engine
2016-07-03 20:58:11 +03:00
a3ed3e2e3c Merge pull request #23947 from cpuguy83/fix_mount_target
Volume mounts need to use "Binds" API field
Upstream-commit: adb48487f2ec65a9facab04f1ec6c20aefb3e41f
Component: engine
2016-07-01 13:23:14 -07:00