Commit graph

628 commits

Author SHA1 Message Date
Aaron Lehmann
fca0b18dcb 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>
2016-07-24 09:23:38 -07:00
Aaron Lehmann
a0ccd0d42f 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>
2016-07-24 09:23:07 -07:00
Yong Tang
3d30155735 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>
2016-07-22 00:32:24 -07:00
Aaron Lehmann
2cc5bd33ee 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>
2016-07-21 15:23:03 -07:00
Sebastiaan van Stijn
7d84c71500 Merge pull request #24620 from yongtang/24270-service-list-filter
Allow partial name match for service ls --filter, node ls --filter, node tasks --filter
2016-07-20 21:25:06 +02:00
Yong Tang
e734fa58ea 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>
2016-07-20 08:16:10 -07:00
Tibor Vass
1796680381 Merge pull request #24476 from stevvooe/services-log-driver-support
swarm: add log driver support for services
2016-07-18 19:08:12 -07:00
Yong Tang
1d600ebcb5 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>
2016-07-18 17:53:08 -07:00
Stephen J Day
e778ba2d5b
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>
2016-07-15 21:39:27 -07:00
Tonis Tiigi
85b1fdf15c Increase timeout for swarm requests
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2016-07-15 11:03:08 -07:00
Ralf Sippl
c8e4e95db9 Return an empty services list if no services are running
Signed-off-by: Ralf Sippl <ralf.sippl@gmail.com>
2016-07-12 11:41:04 +02:00
Vincent Demeester
36f3d4af23 Merge pull request #24474 from mavenugo/fix-24452
swarmkit expects network-id for as target
2016-07-11 20:59:38 +02:00
Brian Goff
e2fc1439a1 Merge pull request #24139 from runshenzhu/health-check
add health check in docker build-in swarm mode
2016-07-11 09:43:59 -04:00
Madhu Venugopal
b32cfb32a3 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>
2016-07-08 18:00:41 -07:00
Tonis Tiigi
8a50315f3c Add logdrivers to executor from swarmkit
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2016-07-08 13:33:40 -07:00
Tonis Tiigi
6586f4f071 Update executor volumes from swarmkit
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2016-07-08 13:33:40 -07:00
Tibor Vass
07dd69df8d Merge pull request #23312 from justincormack/proxy
Make the docker proxy a standalone binary not a re-exec
2016-07-07 17:14:40 -07:00
Justin Cormack
d428a7a425 Update swarmkit vendoring
Needed for libnetwork vendoring

Update Secret API name change correspondingly

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-07 21:01:54 +01:00
Vincent Demeester
a859a33647
Use "on-failure" for both containers and services
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-07-07 11:32:19 +02:00
Brian Goff
56f3422468 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>
2016-07-06 22:34:39 -04:00
runshenzhu
1ded1f26e1 add health check in docker cluster
Signed-off-by: runshenzhu <runshen.zhu@gmail.com>
2016-07-06 13:43:20 -07:00
Vincent Demeester
c70e432cee Merge pull request #24323 from avsm/better-leave-grammar
Improve the warning messages when leaving a Swarm cluster
2016-07-06 12:00:20 +02:00
Vincent Demeester
6daf3d2a78
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>
2016-07-06 09:13:59 +02:00
Alexander Morozov
db75aa029d Merge pull request #24173 from vdemeester/tasks-filter-service-node-by-name
Allow service and node filter to be name in `tasks` subcommands
2016-07-05 12:16:57 -07:00
Anil Madhavapeddy
22a3d1fa20 Improve the warning messages when leaving a Swarm cluster
Signed-off-by: Anil Madhavapeddy <anil@docker.com>
2016-07-05 09:14:23 +01:00
Otto Kekäläinen
644a7426cc Fix spelling in comments, strings and documentation
Signed-off-by: Otto Kekäläinen <otto@seravo.fi>
2016-07-03 20:58:11 +03:00
Sebastiaan van Stijn
adb48487f2 Merge pull request #23947 from cpuguy83/fix_mount_target
Volume mounts need to use "Binds" API field
2016-07-01 13:23:14 -07:00
Vincent Demeester
b898882461 Merge pull request #24128 from thaJeztah/rename-desired_state-filter
rename desired_state filter to desired-state
2016-07-01 18:34:02 +02:00
Tonis Tiigi
11085b2260 Add support for external CAs
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2016-06-30 17:22:47 -07:00
Tonis Tiigi
9b65273836 Update to new swarmkit/engine-api
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2016-06-30 17:22:47 -07:00
Tõnis Tiigi
8fe6480c8a Merge pull request #23584 from nishanttotla/private-images-swarm-services
Passing registry auth token for service create, update
2016-06-30 17:18:59 -07:00
Nishant Totla
538bac39d7
Adding a flag to specify sending of registry auth
Signed-off-by: Nishant Totla <nishanttotla@gmail.com>
2016-06-30 14:59:32 -07:00
Sebastiaan van Stijn
d761719eb4 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>
2016-06-30 14:49:46 -07:00
Brian Goff
2bc2165cbf 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>
2016-06-30 17:00:52 -04:00
Vincent Demeester
b0fc5a21f1
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>
2016-06-30 15:09:03 +02:00
Madhu Venugopal
cf78863e9d Added missing flags for swarm-mode networks
Signed-off-by: Madhu Venugopal <madhu@docker.com>
2016-06-29 15:30:57 -07:00
Alexander Morozov
9162011680 Merge pull request #23789 from tonistiigi/swarm-integration-tests
Update swarm integration tests and shutdown synchronization
2016-06-29 14:09:57 -07:00
Nishant Totla
af5df117a8
Updating header name and executor
Signed-off-by: Nishant Totla <nishanttotla@gmail.com>
2016-06-29 13:26:19 -07:00
Nishant Totla
93ec5cda55
Passing registry auth token for service create and update
Signed-off-by: Nishant Totla <nishanttotla@gmail.com>
2016-06-28 13:53:01 -07:00
Tonis Tiigi
1a8a473017 Fix race on clearing swarm nodes on stop
On stop there were multiple places that marked
`cluster.node` nil. Now stop waits for the node to
set itself nil.

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2016-06-24 13:57:02 -07:00
Brian Goff
7ff546467d Merge pull request #23940 from allencloud/fix-err-msg
fix error message and typos in swarm cluster
2016-06-24 16:57:01 -04:00
allencloud
39bc10c36d fix error message and typos in swarm cluster
Signed-off-by: allencloud <allen.sun@daocloud.io>
2016-06-25 03:10:18 +08:00
Aaron Lehmann
39c93cfb47 Remove log warning on task update
This warning appears in the course of normal use of swarm mode. Since
it's meant more as an internal TODO than something which should be
exposed to a user, remove the log message.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2016-06-24 12:07:47 -07:00
Aaron Lehmann
e8ec19bd87 Merge pull request #23914 from tonistiigi/upadate-manager-error-message
Add better error messages for unavailable swarm commands
2016-06-24 12:02:34 -07:00
Tonis Tiigi
803733120a Add better error messages for unavailable swarm commands
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2016-06-24 10:14:57 -07:00
Brian Goff
e82dcf1c6d Merge pull request #23881 from tonistiigi/exec-wait
Fix error reporting on executor wait
2016-06-24 11:18:49 -04:00
Tõnis Tiigi
487931902c Merge pull request #23790 from tonistiigi/skip-pull
Skip always pulling images on integration tests
2016-06-23 11:47:33 -07:00
Tonis Tiigi
c895a76f10 Fix error reporting on executor wait
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2016-06-22 18:12:51 -07:00
Alexander Morozov
df6630f6a3 Merge pull request #23832 from tonistiigi/unify-swarm-init-update
Unify swarm init and update options
2016-06-22 11:56:07 -07:00
Sven Dowideit
4962fea757 Merge pull request #23797 from liubin/fix-typo
fix some typos
2016-06-22 11:56:48 +10:00