Commit Graph

159 Commits

Author SHA1 Message Date
50046511ff Merge pull request #27948 from WeiZhang555/consistent-filters
Replace all "Filter" field with "Filters" for consistency
Upstream-commit: f96d45dc8ac21db1f082230e2f828a86e15cad46
Component: engine
2016-11-02 00:53:15 -07:00
9cb45952e0 Replace all "Filter" field with "Filters" for consistency
In file `api/types/client.go`, some of the "*Options{}" structs own a
`Filters` field while some else have the name of `Filter`, this commit
will rename all `Filter` to `Filters` for consistency. Also `Filters`
is consistent with API with format `/xxx?filters=xxx`, that's why
`Filters` is the right name.

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
Upstream-commit: 89a6966726941b4b7f0431ab214013cf9c655c25
Component: engine
2016-11-01 23:09:30 +08:00
07a831dfc2 Fix logrus formatting
This fix tries to fix logrus formatting by removing `f` from
`logrus.[Error|Warn|Debug|Fatal|Panic|Info]f` when formatting string
is not present.

Fixed issue #23459

Signed-off-by: Daehyeok Mun <daehyeok@gmail.com>
Upstream-commit: fa710e504b0e3e51d4031790c18621b02dcd2600
Component: engine
2016-10-31 22:05:01 -06:00
2c5782817e Generate ContainerWait response from the swagger spec.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
Upstream-commit: 181562c2e54225d6ce737d98b03d3157451a5dbc
Component: engine
2016-10-31 11:19:53 -04:00
913e9a48c1 Generate container create response from swagger spec.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
Upstream-commit: bad849fc826b410c3aeb753a8c7f6b38f7ae12b0
Component: engine
2016-10-31 11:16:02 -04:00
dc10e9a664 Use a config to generate swagger api types
Moves the resposne types to a package under api/types

Signed-off-by: Daniel Nephin <dnephin@docker.com>
Upstream-commit: 29df3bdb117a058ae040686dd0f2565ae9ad743a
Component: engine
2016-10-31 11:13:41 -04:00
d19255532a Generate VolumesCreateRequest from the swagger spec.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
Upstream-commit: 5c2498fd3c41f4badb1788665886d30772537f73
Component: engine
2016-10-31 11:13:41 -04:00
34bac6f06e Fix bunch of typos
Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
Upstream-commit: e6866492c4492db3bb9546afa2fbaed20f4c1883
Component: engine
2016-10-29 15:03:26 +08:00
86df94b9ba Merge pull request #27369 from cezarsa/hc
Add --health-* flags to service create and update
Upstream-commit: f860289131e36ad2dde5ebe60d15a86fd97934b5
Component: engine
2016-10-28 21:59:52 +02:00
c05d99582c Add --health-* commands to service create and update
A HealthConfig entry was added to the ContainerSpec associated with the
service being created or updated.

Signed-off-by: Cezar Sa Espinola <cezarsa@gmail.com>
Upstream-commit: 7bd2611789e6898576f7229255c238f7c1129293
Component: engine
2016-10-28 15:19:08 -02:00
0e3402d520 Allow providing a custom storage directory for docker checkpoints
Signed-off-by: boucher <rboucher@gmail.com>
Upstream-commit: bd7d51292c399edba5f339e6be55fac6c0811ff5
Component: engine
2016-10-28 07:56:05 -04:00
ad6d3e7a11 cluster/container: correctly name swarm tasks
Even after a slew of PRs, this still wasn't quite right. Now, we ensure
the task name is calculared in one place in the executor, as least.

We'll have to follow this up once the `api/naming` package from SwarmKit
lands.

Signed-off-by: Stephen J Day <stephen.day@docker.com>
Upstream-commit: 3b1af1751897680d32f4685e86d5dd1d9f3720b1
Component: engine
2016-10-25 14:17:57 -07:00
5572f883e7 Merge pull request #27698 from tonistiigi/cluster-config-refactor
Refactor swarm node config to struct
Upstream-commit: 844a3166e5c8ea5037a658f1e8f0628f5abc8dce
Component: engine
2016-10-25 13:29:55 -07:00
179ef095e3 Refactor swarm node config to struct
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
Upstream-commit: b1014428c11a5495e713f2ab6df5aae45e8a46a6
Component: engine
2016-10-24 16:36:50 -07:00
4e1fb8f8f9 Merge pull request #27624 from erxian/remove-duplicate-err-judgement
remove duplicated error judgement in cluster.go
Upstream-commit: 09985ad89741dcc7cf0f8add500189d09d484b61
Component: engine
2016-10-24 16:11:53 -07:00
39b84d5fbe Add force option to service update
Currently, there's no way to restart the tasks of a service without
making an actual change to the service. This leads to us giving awkward
workarounds as in
https://github.com/docker/docker.github.io/pull/178/files, where we tell
people to scale a service up and down to restore balance, or make
unnecessary changes to trigger a restart.

This change adds a --force option to "docker service update", which
forces the service to be updated even if no changes require that.

Since rolling update parameters are respected, the user can use
"docker service --force" to do a rolling restart. For example, the
following is supported:

   docker service update --force --update-parallelism 2 \
   --update-delay 5s myservice

Since the default value of --update-parallelism is 1, the default
behavior is to restart the service one task at a time.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
Upstream-commit: c9fdf9abf8d6443598808809b900d96e04adfcb1
Component: engine
2016-10-21 17:43:27 -07:00
a9bf94a379 remove duplicated error judgement in cluster.go
Signed-off-by: erxian <evelynhsu21@gmail.com>
Upstream-commit: 75c51ad76b0b5995e9349cb369c9e8664f40855c
Component: engine
2016-10-21 14:28:10 +08:00
0ce7aa426e Vendor swarmkit in master
Also, update libnetwork and grpc.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
Upstream-commit: 12a4ed03178982fec44b75479c3e63a316503d90
Component: engine
2016-10-20 13:49:22 -07:00
c0eebabe70 Service update failure thresholds and rollback
This adds support for two enhancements to swarm service rolling updates:

- Failure thresholds: In Docker 1.12, a service update could be set up
  to either pause or continue after a single failure occurs. This adds
  an --update-max-failure-ratio flag that controls how many tasks need to
  fail to update for the update as a whole to be considered a failure. A
  counterpart flag, --update-monitor, controls how long to monitor each
  task for a failure after starting it during the update.

- Rollback flag: service update --rollback reverts the service to its
  previous version. If a service update encounters task failures, or
  fails to function properly for some other reason, the user can roll back
  the update.

SwarmKit also has the ability to roll back updates automatically after
hitting the failure thresholds, but we've decided not to expose this in
the Docker API/CLI for now, favoring a workflow where the decision to
roll back is always made by an admin. Depending on user feedback, we may
add a "rollback" option to --update-failure-action in the future.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
Upstream-commit: 6d4b527699b3e95d21d79f6b327252a6cdaca5b0
Component: engine
2016-10-18 10:09:50 -07:00
15c4940651 Update docker stop and docker restart to allow not specifying timeout and use the one specified at container creation time.
Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Upstream-commit: cc703784f39fb3f585ec685cf7aeda6410648446
Component: engine
2016-10-17 12:53:35 -07:00
e8a02789bc Merge pull request #26896 from jmzwcn/issue26244
Fix issue26244:swarm service, with overlay network, fails to remove all containers
Upstream-commit: f7d1682c604429fcdf3c2c2225bde324b0861780
Component: engine
2016-10-11 14:40:39 +02:00
5c631e04b7 fix issue26244
Signed-off-by: Daniel Zhang <jmzwcn@gmail.com>
Upstream-commit: 434eae7dfd1612d8de292480d4c31c68fceffa68
Component: engine
2016-10-09 12:36:44 +08:00
2062fd3e44 Fix conversion of restart-policy from GRPC
restart-condition for services from "on_failure" to "on-failure".

Since GRPC does not support dashes in properties, this change
added a conversion when _setting_ the restart-condition.

However, when inspecting a service, no conversion took place
from the internal GRPC value, resulting in "on_failure" to
be shown.

This change updates the conversion to fix this, and removes
a "hack" that was previously used for this, now using a
Switch to compare to actual types.

Before this change:

    docker service create --name web --restart-condition=on-failure nginx:alpine

    docker service inspect --format '{{ json .Spec.TaskTemplate.RestartPolicy }}' web
    {"Condition":"on_failure","MaxAttempts":0}

Afer this change:

    docker service create --name web --restart-condition=on-failure nginx:alpine

    docker service inspect --format '{{ json .Spec.TaskTemplate.RestartPolicy }}' web
    {"Condition":"on-failure","MaxAttempts":0}

Signed-off-by: Kay Yan <kay.yan@daocloud.io>
Upstream-commit: bc32fcabebb5f3a83d47c00d85317ce82c963edf
Component: engine
2016-09-30 15:54:47 +08:00
f6b8936533 Merge pull request #24850 from yongtang/24270-service-tasks-filter
Fix partial/full filter issue in `service tasks --filter`
Upstream-commit: b0e1b8fc79af0baf5d90329254aacbdfb4188bfc
Component: engine
2016-09-28 11:50:27 +02:00
562ec15f92 Let swarmkit handle cluster defaults in swarm init if not specified
This fix tries to address the issue raised in 24958 where previously
`docker swarm init` will automatically fill in all the default value
(instead of letting swarmkit to handle the default).

This fix update the `swarm init` so that initial value are passed only
when a flag change has been detected.

This fix fixes 24958.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Upstream-commit: eb19c2f080f624d8b0186f8037cdc1f7d8ada402
Component: engine
2016-09-27 04:19:38 -07:00
361ed59824 Fix partial/full filter issue in service tasks --filter
This fix tries to address the issue related to 24108 and 24790, and
also the case from 24620#issuecomment-233715656

The reason for the failure case in the above mentioned issues is that
currently Task names are actually indexed by Service Name
(`e.ServiceAnnotations.Name`)

To fix it, a pull request in swarmkit (swarmkit/pull/1193) has been
opened separately.

This fix adds the integration tests for the above mentioned issues.
Swarmkit revendoring is needed to completely fix the issues.

This fix fixes 24108.
This fix fixes 24790.
This fix is related to 24620.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Upstream-commit: f676fc93c3791f72938a6be9c7517ac620c02d1c
Component: engine
2016-09-26 16:01:20 -07:00
c42acbfe8e Add GetListenAddress in ClusterProvider
Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
Upstream-commit: fbcdca7ebcd45d74c40fbccbb07f2d3decfb8628
Component: engine
2016-09-22 21:00:32 -07:00
66c468a968 Merge pull request #26606 from dnephin/move_errors
Move errors package to api/errors
Upstream-commit: 5d7b725071a7cc7c994f2f7f6a29352790f5096a
Component: engine
2016-09-17 16:00:38 +02:00
a4d4b2606e return err when both two service mode in request
Signed-off-by: allencloud <allen.sun@daocloud.io>
Upstream-commit: c413d4177b9621d6bcfd24c9b7118887ad378c49
Component: engine
2016-09-17 19:04:46 +08:00
d47b1c8a71 Move errors/ to api/errors
Using:
        gomvpkg -from github.com/docker/docker/errors
                -to github.com/docker/docker/api/errors
                -vcs_mv_cmd "git mv {{.Src}} {{.Dst}}"

Signed-off-by: Daniel Nephin <dnephin@docker.com>
Upstream-commit: c452e1bfe6b19d44bf2ed2a1eb8aef7e23d6bafb
Component: engine
2016-09-16 12:27:13 -04:00
e77039e819 Merge pull request #26551 from cpuguy83/26548_fix_tasks
Do not look at `Attachment` tasks in /tasks
Upstream-commit: 3ae023cd2286188158f7a7ed356b63df63f00d09
Component: engine
2016-09-13 21:27:15 -07:00
131853bc0a Merge pull request #26449 from mrjana/net
Fix autostart for swarm scope connected containers
Upstream-commit: 1d76ab4f80e3bc2b6b62e7913b6be01966cb0975
Component: engine
2016-09-13 18:22:16 -07:00
58f4fbdb5f Do not look at Attachment tasks in /tasks
Fixes #26548

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
Upstream-commit: 15eee038c0b06b4f0ae1bf12bebbb9a1f5deec78
Component: engine
2016-09-13 20:44:06 -04:00
293cb24e33 Fix autostart for swarm scope connected containers
The swarm scope network connected containers with autostart enabled
there was a dependency problem with the cluster to be initialized before
we can autostart them. With the current container restart code happening
before cluster init, these containers were not getting autostarted
properly. Added a fix to delay the container start of those containers
which has atleast one swarm scope endpoint to until after the cluster is
initialized.

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
Upstream-commit: c9fb551d60584ac4ad01561e2f56b7b7cc9483b9
Component: engine
2016-09-13 14:21:58 -07:00
c54b5bf8c4 Merge pull request #26457 from aboch/auto
Add fallback to resolveSystemAddr() in linux
Upstream-commit: ebae43efc2c1a13f0ff9b46ab568ba758e1a9b66
Component: engine
2016-09-09 20:46:29 -04:00
52c85142d9 Add fallback to resolveSystemAddr() in linux
- So that swarm init will still work w/o specifying the advertise
  address when the daemon is running inside a container

Signed-off-by: Alessandro Boch <aboch@docker.com>
Upstream-commit: c0b24c600e30656144522f85b053f015525022da
Component: engine
2016-09-09 13:27:57 -07:00
7bef93723c Initial implementation of containerd Checkpoint API.
Signed-off-by: boucher <rboucher@gmail.com>
Upstream-commit: d8fef66b03c1ea8715470690efbd950033f7f628
Component: engine
2016-09-08 21:31:52 -04:00
f0d30a4b26 Add support for docker run in swarm mode overlay
This PR adds support for running regular containers to be connected to
swarm mode multi-host network so that:
    - containers connected to the same network across the cluster can
      discover and connect to each other.
    - Get access to services(and their associated loadbalancers)
      connected to the same network

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
Upstream-commit: 99a98ccc14a9427be47c8006e130750710db0a16
Component: engine
2016-09-07 21:20:41 -07:00
60a22c207c Move engine-api client package
This moves the engine-api client package to `/docker/docker/client`.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
Upstream-commit: 7c36a1af031b510cd990cf488ee5998a3efb450f
Component: engine
2016-09-07 11:05:58 -07:00
45ddc4bfcb Add engine-api types to docker
This moves the types for the `engine-api` repo to the existing types
package.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
Upstream-commit: 91e197d614547f0202e6ae9b8a24d88ee131d950
Component: engine
2016-09-07 11:05:58 -07:00
a03ebc79ee Merge pull request #26200 from runcom/engine-api-vendor
vendor docker/engine-api@f9cef59044
Upstream-commit: 8ccac1ad4de898583113d036810da3a35a9be906
Component: engine
2016-09-01 10:51:34 +01:00
1965814a4e vendor docker/engine-api@f9cef59044
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
Upstream-commit: 8f7a8c75ae251f1260299892c5de7c83224b110e
Component: engine
2016-08-31 22:39:13 +02:00
b88197c265 cluster: Do not autodetect advertise address on join
On join, remote addresses are supposed to be detected by the manager
that receives the join request. However, the daemon is interfering with
this by automatically detecting an advertise address and specifying that
to the remote manager. Fix this so that an advertise address is only
specified while joining a cluster if one was given by the user.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
Upstream-commit: b1d2b088533187954d3b98ed5951ec2dbbb422e9
Component: engine
2016-08-31 11:44:32 -07:00
3034e8ce29 Print stacktrace on failing to leave cluster
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
Upstream-commit: 166d24e464a746dfb3359ee18be90fbd8563515c
Component: engine
2016-08-30 14:17:32 -07:00
6e19944380 Merge pull request #25890 from cpuguy83/fix_swarm_control_sock_path
Use daemon exec root for swarm control socket
Upstream-commit: edafc642b2b12d7428e72f922a2b44c3b62ffc31
Component: engine
2016-08-30 08:51:52 -04:00
6b838755f5 Fix issue in API POST /services/(id or name)/update
This fix tries to address the issue raised in 26090 where
remote API `POST /services/(id or name)/update` cannot
use `name` to update. This is not consistent with the
documentation of the remote API.

This fix fixes this issue by performing a lookup with `getService`
in case `name` instead of `id` is used in API.

This fix adds an integration test to cover the changes.

This fix fixes 26090.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Upstream-commit: 80e3975117161ae4ce00cc34c7e2b70e45ee43c5
Component: engine
2016-08-29 21:13:53 -07:00
bdcdcdfff5 Support --group-add and --group-rm in docker service create/update
This fix tries to address the issue raised in 25304 to support
`--group-add` and `--group-rm` in `docker service create`.

This fix adds `--group-add` to `docker service create` and `docker service update`,
adds `--group-rm` to `docker service update`.

This fix updates docs for `docker service create` and `docker service update`:
1. Add `--group-add` to `docker service create` and `docker service update`
2. Add `--group-rm` to `docker service update`

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Upstream-commit: b31969ee365f582eb71a7962af9638d79380cd54
Component: engine
2016-08-27 11:54:05 -07:00
f0bf8347ee Merge pull request #25888 from vdemeester/listcontainerfornode-refactoring
Move ListContainersForNode into cluster package
Upstream-commit: 29232a5d8e621ad2503b205cb5068cc14b2ee42b
Component: engine
2016-08-25 19:10:18 +02:00
32e409f5b7 Update executor changes from swarmkit
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
Upstream-commit: 96a27cf0931974b602acfdd74dfcc5142500c7ba
Component: engine
2016-08-22 11:36:20 -07:00
86337f007e Move ListContainersForNode into cluster package
It makes little sense to have swarm related code into the daemon
package. This refactor the `daemon` and `cluster` package to remove
`ListContainersForNode` from the daemon.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
Upstream-commit: 4833b3c961f84555c67418440405e470123919c6
Component: engine
2016-08-20 14:14:26 +02:00