Commit Graph

9063 Commits

Author SHA1 Message Date
678c2fde98 UX: don't reverse progress-bars when rolling back
Commit 330a003533
introduced "synchronous" service update and rollback, using progress bars to show
current status for each task.

As part of that change, progress bars were "reversed" when doing a rollback, to
indicate that status was rolled back to a previous state.

Reversing direction is somewhat confusing, as progress bars now return to their
"initial" state to indicate it was "completed"; for an "automatic" rollback, this
may be somewhat clear (progress bars "move to the right", then "roll back" if the
update failed), but when doing a manual rollback, it feels counter-intuitive
(rolling back is the _expected_ outcome).

This patch removes the code to reverse the direction of progress-bars, and makes
progress-bars always move from left ("start") to right ("finished").

Before this patch
----------------------------------------

1. create a service with automatic rollback on failure

    $ docker service create --update-failure-action=rollback --name foo --tty --replicas=5 nginx:alpine
    9xi1w3mv5sqtyexsuh78qg0cb
    overall progress: 5 out of 5 tasks
    1/5: running   [==================================================>]
    2/5: running   [==================================================>]
    3/5: running   [==================================================>]
    4/5: running   [==================================================>]
    5/5: running   [==================================================>]
    verify: Waiting 2 seconds to verify that tasks are stable...

2. update the service, making it fail after 3 seconds

    $ docker service update --entrypoint="/bin/sh -c 'sleep 3; exit 1'" foo
    overall progress: rolling back update: 2 out of 5 tasks
    1/5: running   [==================================================>]
    2/5: running   [==================================================>]
    3/5: starting  [============================================>      ]
    4/5: running   [==================================================>]
    5/5: running   [==================================================>]

3. Once the service starts failing, automatic rollback is started; progress-bars now move in the reverse direction;

    overall progress: rolling back update: 3 out of 5 tasks
    1/5: ready     [===========>                                       ]
    2/5: ready     [===========>                                       ]
    3/5: running   [>                                                  ]
    4/5: running   [>                                                  ]
    5/5: running   [>                                                  ]

4. When the rollback is completed, the progressbars are at the "start" to indicate they completed;

    overall progress: rolling back update: 5 out of 5 tasks
    1/5: running   [>                                                  ]
    2/5: running   [>                                                  ]
    3/5: running   [>                                                  ]
    4/5: running   [>                                                  ]
    5/5: running   [>                                                  ]
    rollback: update rolled back due to failure or early termination of task bndiu8a998agr8s6sjlg9tnrw
    verify: Service converged

After this patch
----------------------------------------

Progress bars always go from left to right; also in a rollback situation;

After updating to the "faulty" entrypoint, task are deployed:

    $ docker service update --entrypoint="/bin/sh -c 'sleep 3; exit 1'" foo
    foo
    overall progress: 1 out of 5 tasks
    1/5:
    2/5: running   [==================================================>]
    3/5: ready     [======================================>            ]
    4/5:
    5/5:

Once tasks start failing, rollback is started, and presented the same as a regular
update; progress bars go from left to right;

    overall progress: rolling back update: 3 out of 5 tasks
    1/5: ready     [======================================>            ]
    2/5: starting  [============================================>      ]
    3/5: running   [==================================================>]
    4/5: running   [==================================================>]
    5/5: running   [==================================================>]
    rollback: update rolled back due to failure or early termination of task c11dxd7ud3d5pq8g45qkb4rjx

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2021-06-22 10:28:46 +02:00
a04c8210a6 vendor: github.com/docker/docker 25917217cab38eab40c3db0010b915258f4a8491
b0f5bc36fe..25917217ca

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2021-06-22 10:16:54 +02:00
29fed6bff1 vendor: github.com/docker/swarmkit 2dcf70aafdc9ea55af3aaaeca440638cde0ecda6
full diff: 17d8d4e4d8...2dcf70aafd

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2021-06-21 17:11:02 +02:00
f647fce891 vendor: github.com/containerd/containerd v1.5.2
- update to v1.5.0 0edc412565...v1.5.0 (v1.5.0 is last tag on master/main branch)
- update to v1.5.2 https://github.com/containerd/containerd/compare/v1.5.0...v1.5.2

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2021-06-21 17:08:47 +02:00
12e8782c0c Merge pull request #3150 from thaJeztah/update_deps
Update various dependencies in preparation of updating moby, buildkit, containerd
2021-06-21 14:44:01 +02:00
f269e7fc35 vendor: github.com/coreos/etcd v3.3.25
full diff: https://github.com/coreos/etcd/v3.3.12...v3.3.25

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2021-06-21 14:30:07 +02:00
83c915857f vendor: github.com/tonistiigi/fsutil d72af97c0eaf93c1d20360e3cb9c63c223675b83
full diff: 0834f99b7b...d72af97c0e

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2021-06-21 14:30:05 +02:00
79a9fd61fd vendor: github.com/opencontainers/runc v1.0.0-rc95
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2021-06-21 14:30:03 +02:00
579279ce09 vendor: github.com/Microsoft/hcsshim v0.8.16
full diff: https://github.com/Microsoft/hcsshim/compare/v0.8.9...v0.8.16

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2021-06-21 14:29:58 +02:00
ab46952ba8 vendor: github.com/Microsoft/go-winio v0.4.19
full diff: https://github.com/Microsoft/go-winio/compare/v0.4.15...v0.4.19

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2021-06-21 14:29:53 +02:00
f114f6c871 vendor: github.com/json-iterator/go v1.1.10
full diff: https://github.com/json-iterator/go/compare/v1.1.6...v1.1.10

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2021-06-21 14:29:51 +02:00
c451d82af9 vendor: github.com/containerd/typeurl v1.0.2
full diff: https://github.com/containerd/typeurl/compare/v1.0.1...v1.0.2

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2021-06-21 14:29:49 +02:00
3ea82da319 vendor: github.com/containerd/continuity v0.1.0
full diff: https://github.com/containerd/continuity/efbc4488d8fe1bdc16bde3b2d2990d9b3a899165...v0.1.0

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2021-06-21 14:29:47 +02:00
9ee3d08aeb vendor: github.com/containerd/console v1.0.2
full diff: https://github.com/containerd/console/compare/v1.0.1...v1.0.2

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2021-06-21 14:29:45 +02:00
945f1237ec vendor: github.com/containerd/cgroups v1.0.1
full diff: 0b889c03f1...v1.0.1

relevant changes:

- go.mod: github.com/gogo/protobuf v1.3.2 and generate protos
  update gogo/protobuf and regenerate protos to address CVE-2021-3121
  (https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-3121)

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2021-06-21 14:29:42 +02:00
adb118d296 vendor.conf: sort alphabetically
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2021-06-21 14:29:40 +02:00
6d25af0cd7 vendor: golang.org/x/time 3af7569d3a1e776fc2a3c1cec133b43105ea9c2e
full diff: 555d28b269...3af7569d3a

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2021-06-21 14:29:38 +02:00
8ebe404dfc vendor: golang.org/x/sys d19ff857e887eacb631721f188c7d365c2331456
full diff: 134d130e1a...d19ff857e8

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2021-06-21 14:29:34 +02:00
af1687406b vendor: golang.org/x/sync 036812b2e83c0ddf193dd5a34e034151da389d09
full diff: cd5d95a43a...036812b2e8

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2021-06-21 14:29:32 +02:00
dea9976143 vendor: golang.org/x/net e18ecbb051101a46fc263334b127c89bc7bff7ea
full diff: ab34263943...e18ecbb051

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2021-06-21 14:29:30 +02:00
716291337b vendor: golang.org/x/crypto 0c34fe9e7dc2486962ef9867e3edb3503537209f
full diff: c1f2f97bff...0c34fe9e7d

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2021-06-21 14:29:28 +02:00
2cbb88f4c9 vendor: github.com/modern-go/reflect2 v1.0.1
Previous vendor was using the 1.0.1 tag (without v-prefix).

diff: https://github.com/modern-go/reflect2/compare/1.0.1...v1.0.1

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2021-06-21 14:29:27 +02:00
d6c55a105f vendor: github.com/moby/sys mountinfo/v0.4.1
full diff: 1bc8673b57...b0f1fd7235

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2021-06-21 14:29:22 +02:00
f445637470 vendor: github.com/gogo/protobuf v1.3.2
full diff: https://github.com/gogo/protobuf/compare/v1.3.1...v1.3.2

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2021-06-21 14:27:51 +02:00
347cd403c0 Merge pull request #3131 from thaJeztah/bump_term_ansiterm
vendor: moby/term, Azure/go-ansiterm for golang.org/x/sys/windows compat
2021-06-21 14:18:14 +02:00
b5bc279901 vendor: moby/term, Azure/go-ansiterm for golang.org/x/sys/windows compat
Changes:

- winterm: GetStdFile(): Added compatibility with "golang.org/x/sys/windows"
- winterm: fix GetStdFile() falltrough
- update deprecation message to refer to the correct replacement
- add go.mod
- Fix int overflow
- Convert int to string using rune()

full diff:

- bea5bbe245...3f7ff695ad
- d6e3b3328b...d185dfc1b5

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2021-06-21 13:30:47 +02:00
674c074dc4 Merge pull request #3013 from thaJeztah/bump_cobra
vendor: github.com/spf13/cobra v1.1.3
2021-06-17 22:33:19 +02:00
e12aade595 Update WORKDIR command information
Signed-off-by: Govind Rai <raigovind93@gmail.com>
2021-06-16 16:47:28 -07:00
524e3b215d e2e: update docker-compose to 1.29.2
Newer versions have COMPOSE_DOCKER_CLI_BUILD enabled by default,
so removing that env-var.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2021-06-16 11:37:41 +02:00
e3ade90f5b Merge pull request #3137 from thaJeztah/update_ci_engine
CI: update engine versions and Jenkins labels
2021-06-15 15:28:04 +02:00
c6cd0493ab circleCI: update docker engine to 20.10.6
20.10.6 looks to be the latest supported version:
https://circleci.com/docs/2.0/building-docker-images/#docker-version

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2021-06-15 13:34:30 +02:00
661b87ac9b Jenkinsfile: update old engine version to 19.03
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2021-06-15 13:34:28 +02:00
2849437f21 Jenkinsfile: update labels to prevent running on cgroups v2
The dind engine version that we use in e2e does not support cgroups v2,
so if we landed on an Ubuntu 20.04 node with cgroups v2 enabled, CI failed:

    Stderr:   Error response from daemon: cgroups: cgroup mountpoint does not exist: unknown

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2021-06-15 13:32:03 +02:00
fa63ea7955 Merge pull request #3134 from thaJeztah/preserve_os_env
e2e: make sure that os.environ is preserved
2021-06-14 11:11:04 +02:00
79638e6ea4 feat(docker): add context argument completion
Signed-off-by: acouvreur <alexiscouvreur.pro@gmail.com>
2021-06-14 08:22:46 +02:00
f3b6ed744f e2e: make sure that os.environ is preserved
We updated some of these functions to make sure os.environ was
preserved, but some where not.

This adds a utility to help with this, which also prevents the
os.environ to be added multiple times.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2021-06-11 17:46:30 +02:00
2ebf5d92aa Merge pull request #3124 from thaJeztah/update_cred_helpers
vendor: github.com/docker/docker-credential-helpers v0.6.4
2021-06-07 19:49:58 +02:00
7672267e16 vendor: github.com/docker/docker-credential-helpers v0.6.4
full diff: 38bea2ce27...v0.6.4

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2021-06-07 18:12:01 +02:00
eb898d59c7 Merge pull request #3122 from thaJeztah/bump_docker_20.10.7
vendor: github.com/docker/docker v20.10.7
2021-06-07 11:02:52 +02:00
49f6071532 vendor: github.com/docker/docker v20.10.7
full diff: d5209b29b9...v20.10.7

skipping the buildkit update for now, as it didn't bring changes
in vendored files.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2021-06-05 17:46:36 +02:00
117d156ce8 Merge pull request #3120 from tedhexaflow/fix-word-docker-run-network
Fix minor wording
2021-06-04 13:05:24 +02:00
3b502ca00e Fix minor wording
Signed-off-by: Metal <2466052+tedhexaflow@users.noreply.github.com>
2021-06-04 17:26:28 +07:00
1c174ced5e Merge pull request #2975 from thaJeztah/attach_refactor
Slight cleanup/refactor of attachContainer
2021-05-31 16:27:56 +02:00
16131fb459 Slight cleanup/refactor of attachContainer
Return early in case there's an error, and declare variables closer
to where they're used.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2021-05-31 15:33:31 +02:00
c7adb47076 Merge pull request #2984 from pn11/pn11-patch-1
docs: Fix wrong bridge driver option
2021-05-31 15:26:53 +02:00
74a6e2cf62 Merge pull request #3110 from thaJeztah/fix_reference_link
docs: fix link to command-line reference
2021-05-31 10:06:59 +02:00
04e6884f65 docs: fix link to command-line reference
This link worked on GitHub, but was broken on docs.docker.com, so
replacing with a regular link directly to the docs instead.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2021-05-26 14:14:02 +02:00
1142740996 Merge pull request #2972 from thaJeztah/ipv6_port_join
Use net.JoinHostPort() to fix formatting with IPv6 addresses
2021-05-25 14:58:47 +02:00
6b4d2e83cd Merge pull request #3103 from djs55/ignore_sigurg_darwin
Ignore SIGURG on Unix (including Darwin)
2021-05-25 12:29:14 +02:00
e26409ebf1 Merge pull request #2986 from thaJeztah/ignore_nil_signals
ForwardAllSignals: check if channel is closed, and remove warning
2021-05-25 10:29:42 +02:00