Commit Graph

92 Commits

Author SHA1 Message Date
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
db7f1cc524 Merge pull request #24128 from thaJeztah/rename-desired_state-filter
rename desired_state filter to desired-state
Upstream-commit: b8988824616017a7ff4a13475dde23f7677aa21c
Component: engine
2016-07-01 18:34:02 +02:00
bda6fa8f54 Add support for external CAs
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
Upstream-commit: 11085b2260a78b3248f3e98e0a1e3203431fae22
Component: engine
2016-06-30 17:22:47 -07:00
b73379e968 Update to new swarmkit/engine-api
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
Upstream-commit: 9b652738363d92fbe6e43b3981cdcc94bdb72c76
Component: engine
2016-06-30 17:22:47 -07:00
e32550579c Merge pull request #23584 from nishanttotla/private-images-swarm-services
Passing registry auth token for service create, update
Upstream-commit: 8fe6480c8a26f80fe174ae93e1b380bb7ec6083c
Component: engine
2016-06-30 17:18:59 -07:00
9f0a770513 Adding a flag to specify sending of registry auth
Signed-off-by: Nishant Totla <nishanttotla@gmail.com>
Upstream-commit: 538bac39d7fe93562922b89e9a294096be48fb59
Component: engine
2016-06-30 14:59:32 -07:00
6b4b42d73a rename desired_state filter to desired-state
For consistency with other filters (such as
"is-official"), this renames the desired_state
filter to "desired-state".

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Upstream-commit: d761719eb4e45fbd6f092f6d0b4eb42206e298f6
Component: engine
2016-06-30 14:49:46 -07:00
2cb691411c Volume mounts need to use "Binds" API field
Swarm was putting volume type mounts into the container config's
"Volumes" field, but really these need to go into "Binds".
"Volumes" is only for normal "-v /foo" volumes, not named volumes or
anything else.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
Upstream-commit: 2bc2165cbf3e949921d1659f09841b5f008f590d
Component: engine
2016-06-30 17:00:52 -04:00
a50f4824a7 Allow service and node filter to be name…
… on `docker node tasks` and `docker service tasks` commands.
This changes is mainly server-side (between engine api and
swarmkit). There is just a check in `api/client/service/tasks.go` to
handle the special *self* meaning.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
Upstream-commit: b0fc5a21f1138f48e0431a550c936e8908d72840
Component: engine
2016-06-30 15:09:03 +02:00
bd38c4db96 Added missing flags for swarm-mode networks
Signed-off-by: Madhu Venugopal <madhu@docker.com>
Upstream-commit: cf78863e9dc4e3480a7d1059ed306bdfd81cd3dc
Component: engine
2016-06-29 15:30:57 -07:00