1
0
mirror of https://github.com/docker/cli.git synced 2026-01-26 15:41:42 +03:00
Commit Graph

5876 Commits

Author SHA1 Message Date
Ian Campbell
e5e578abc7 Allow plugins to make use of the cobra PersistentPreRun hooks.
Previously a plugin which used these hooks would overwrite the top-level plugin
command's use of this hook, resulting in the dockerCli object not being fully
initialised.

Provide a function which plugins can use to chain to the required behaviour.
This required some fairly ugly arrangements to preserve state (which was
previously in-scope in `newPluginCOmmand`) to be used by the new function.

Signed-off-by: Ian Campbell <ijc@docker.com>
2019-01-30 13:45:26 +00:00
Ian Campbell
53f018120a Integrate CLI plugins with docker «plugin» --help.
To achieve this we hook in at the beginning of our custom `HelpFunc` and detect
the plugin case by adding stub commands.

Signed-off-by: Ian Campbell <ijc@docker.com>
2019-01-30 13:45:25 +00:00
Ian Campbell
20a284721c Integrate CLI plugins with docker help «foo»
Signed-off-by: Ian Campbell <ijc@docker.com>
2019-01-30 13:45:18 +00:00
Ian Campbell
c43da09188 Add stubs when calling help due to no arguments
e.g. the `docker` case which should act as `docker help`.

Signed-off-by: Ian Campbell <ijc@docker.com>
2019-01-30 13:44:06 +00:00
Ian Campbell
f912b55bd1 Integrate CLI plugins into docker help output.
To do this we add a stub `cobra.Command` for each installed plugin (only when
invoking `help`, not for normal running).

This requires a function to list all available plugins so that is added here.

Signed-off-by: Ian Campbell <ijc@docker.com>
2019-01-30 13:44:06 +00:00
Ian Campbell
5db336798c Add some simple e2e tests for executing CLI plugins
To help with this add a bad plugin which produces invalid metadata and arrange
for it to be built in the e2e container.

Signed-off-by: Ian Campbell <ijc@docker.com>
2019-01-30 13:44:05 +00:00
Ian Campbell
f1f31abbe5 Add support for running a CLI plugin
Also includes the  scaffolding for finding a validating plugin candidates.

Argument validation is moved to RunE to support this, so `noArgs` is removed.

Signed-off-by: Ian Campbell <ijc@docker.com>
2019-01-30 13:44:04 +00:00
Ian Campbell
e96240427f Add basic framework for writing a CLI plugin
That is, the helper to be used from the plugin's `main`.

Also add a `helloworld` plugin example and build integration.

Signed-off-by: Ian Campbell <ijc@docker.com>
2019-01-29 11:26:40 +00:00
Ian Campbell
8cf946d1bc Unit test for WithContentTrustFromEnv
I authored this for `contentTrustEnabled` prior to 7f207f3f95, so this now
tests the funcation argument version.

Signed-off-by: Ian Campbell <ijc@docker.com>
2019-01-29 11:26:40 +00:00
Ian Campbell
eab40a5974 cli/config: Add a helper to resolve a file within the config dir
Signed-off-by: Ian Campbell <ijc@docker.com>
2019-01-29 11:26:40 +00:00
Ian Campbell
20c19830a9 Move versioning variables to a separate package.
This helps to avoid circular includes, by separating the pure data out from the
actual functionality in the cli subpackage, allowing other code which is
imported to access the data.

Signed-off-by: Ian Campbell <ijc@docker.com>
2019-01-29 11:26:40 +00:00
Ian Campbell
c5168117af Push setup of opts and default flagset into SetupRootCommand
I'm shortly going to add a second user (plugins) which want to share some
behaviour.

Signed-off-by: Ian Campbell <ijc@docker.com>
2019-01-29 11:26:21 +00:00
Ian Campbell
38645ca44a Refactor common bits of SetupRootCommand
I'm shortly going to add a second user to setup plugins, which will want to
reuse the common bits.

Signed-off-by: Ian Campbell <ijc@docker.com>
2019-01-29 11:26:21 +00:00
Ian Campbell
ccef1598b1 Move disableFlagsInUseLine from main into our cli library
... and expose. I would like to use this from another site.

This implies also moving (and exposing) the `visitAll` helper.

Unit test them while I'm here.

Signed-off-by: Ian Campbell <ijc@docker.com>
2019-01-29 11:26:21 +00:00
Ian Campbell
158a766886 Fold dockerPreRun into DockerCli.Initialize
All of the current callers follow the pattern:

    dockerPreRun(opts)
    err := dockerCli.Initialize(opts) ...

So there is no semantic change into merging the content of `dockerPreRun` into the head of `Initialize`.

I'm about to add a new caller outside of the `cmd/docker` package and this
seems preferable exporting `DockerPreRun`.

Signed-off-by: Ian Campbell <ijc@docker.com>
2019-01-29 11:26:21 +00:00
Sebastiaan van Stijn
a17f67e456 Merge pull request #1628 from simonferquel/context-switch-plugin-and-desktop
Context switch - Plugin and Docker Desktop integration
2019-01-29 12:20:46 +01:00
Simon Ferquel
3126920af1 Add context store config options and expose context commands
This will allow plugins to have custom typed endpoints, as well as
create/remove/update contexts with the exact same results as the main
CLI (thinking of things like `docker ee login https://my-ucp-server
--context ucp-prod)`

Signed-off-by: Simon Ferquel <simon.ferquel@docker.com>
2019-01-29 11:19:54 +01:00
Sebastiaan van Stijn
a3a30faffd Merge pull request #1619 from albers/completion-context
Bash completion for `docker context` command family
2019-01-29 11:04:11 +01:00
Sebastiaan van Stijn
cf6c238660 Merge pull request #1615 from simonferquel/handle-v1alpha3
Handle v1alpha3 of Compose on Kubernetes API
2019-01-28 21:02:51 +01:00
Vincent Demeester
f95ca8e1ba Merge pull request #1633 from silvin-lubecki/refactor-docker-cli-construction
Introduce functional arguments to NewDockerCli for a more stable API.
2019-01-28 15:39:34 +01:00
Silvin Lubecki
7f207f3f95 Introduce functional arguments to NewDockerCli for a more stable API.
Signed-off-by: Silvin Lubecki <silvin.lubecki@docker.com>
2019-01-28 14:52:58 +01:00
Silvin Lubecki
eb0ba4f8d5 Extract streams helpers from command package to their own package to remove a cyclic dependency from command to internal/containerizedengine
Aliasing old types
* streams.InStream -> streams.In
* streams.NewInStream -> streams.NewIn
* streams.OutStream -> streams.Out
* streams.NewOutStream -> streams.NewOut

Signed-off-by: Silvin Lubecki <silvin.lubecki@docker.com>
2019-01-28 14:36:00 +01:00
Sebastiaan van Stijn
81e7426e11 Merge pull request #1507 from arcenik/fix/better-error-msg-for-ssh-addr
Updates ssh connhelper error messages
2019-01-28 13:48:14 +01:00
François Scala
a07637ae31 Updates ssh connhelper error messages
Signed-off-by: François Scala <arcenik@github.com>
2019-01-25 23:42:13 +01:00
Sebastiaan van Stijn
080f30a60f Merge pull request #1638 from ijc/separate-client-system-info
Separate client infomation in `docker system info`
2019-01-25 17:32:07 +01:00
Ian Campbell
bcb06b5f58 Rework docker info output to be more like docker version
That is, reindent the two sections by one space.

While the code was done by hand the `.golden` files had the extra space
inserted with emacs' `string-insert-rectangle` macro to (try to) avoid possible
manual errors. The docs were edited the same way.

Signed-off-by: Ian Campbell <ijc@docker.com>
2019-01-25 14:46:26 +00:00
Ian Campbell
c9e60ae17a Allow prettyPrintInfo to return multiple errors
This allows it to print what it can, rather than aborting half way when a bad
security context is hit.

Signed-off-by: Ian Campbell <ijc@docker.com>
2019-01-25 14:40:33 +00:00
Ian Campbell
62ed1c0c5b Separate client and daemon info in docker system info
Right now the only client side info we have is whether debug is enabled, but we
expect more in the future.

We also preemptively prepare for the possibility of multiple errors when
gathering both daemon and client info.

Signed-off-by: Ian Campbell <ijc@docker.com>
2019-01-25 14:38:04 +00:00
Ian Campbell
7913fb6a5e Check json output in existing docker info unit tests.
This is in addition to the more specific `formatInfo` unit tests added
previously.

Signed-off-by: Ian Campbell <ijc@docker.com>
2019-01-25 11:55:54 +00:00
Ian Campbell
eb714f7c0e Add unit test for formatInfo.
Signed-off-by: Ian Campbell <ijc@docker.com>
2019-01-25 11:55:52 +00:00
Simon Ferquel
820b6f1742 Added stack conversion tests
Signed-off-by: Simon Ferquel <simon.ferquel@docker.com>
2019-01-25 09:58:31 +01:00
Simon Ferquel
2e5981d613 Handle version v1alpha3
Signed-off-by: Simon Ferquel <simon.ferquel@docker.com>
2019-01-24 20:24:45 +01:00
Sebastiaan van Stijn
ffa55abe9c Merge pull request #1636 from thaJeztah/bump_golang_1.11.5
Bump Golang 1.11.5 (CVE-2019-6486)
2019-01-24 14:28:32 +01:00
Simon Ferquel
c863dbabf7 Vendoring update for v1alpha3
Signed-off-by: Simon Ferquel <simon.ferquel@docker.com>
2019-01-24 11:43:52 +01:00
Silvin Lubecki
ebb121ee2d Merge pull request #1611 from simonferquel/stack-children-atomic
Make child resource creation atomic when creating a k8s stack
2019-01-24 11:34:29 +01:00
Sebastiaan van Stijn
0e9d1d3b07 Bump Golang 1.11.5 (CVE-2019-6486)
See the milestone for details;
https://github.com/golang/go/issues?q=milestone%3AGo1.11.5+label%3ACherryPickApproved

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-01-24 02:50:10 +01:00
Vincent Demeester
4d5f8ea8c7 Merge pull request #1519 from silvin-lubecki/export-stack-commands
Export stack commands
2019-01-23 10:35:16 +01:00
Harald Albers
884d0783bd Add bash completion for global --context|-c option
Signed-off-by: Harald Albers <github@albersweb.de>
2019-01-22 22:27:01 +01:00
Simon Ferquel
e16a875408 Make child resource creation atomic when creating a k8s stack
Signed-off-by: Simon Ferquel <simon.ferquel@docker.com>
2019-01-22 11:25:41 +01:00
Sebastiaan van Stijn
01a591477c Merge pull request #1444 from filipjares/master
Improve `docker image rm` documentation
2019-01-21 16:02:09 +01:00
Sebastiaan van Stijn
37af67fea8 Merge pull request #1624 from JoeWrightss/patch-2
Fix some typos in manifest.md
2019-01-21 11:35:09 +01:00
Sebastiaan van Stijn
afa178deae Merge pull request #1627 from StefanScherer/update-windows10-process-isolation
Update process isolation description for older Windows 10 versions
2019-01-21 11:34:04 +01:00
Vincent Demeester
fec5a52188 Merge pull request #1614 from simonferquel/context-docs-alignment
Context Switch: documentation alignment
2019-01-21 09:51:15 +01:00
Simon Ferquel
005578e317 Context Switch: documentation alignment
Last batch of modifications to the context switch implementation missed
some documentation updates. This is an update to the CLI reference and
the store implementation Godoc.

Signed-off-by: Simon Ferquel <simon.ferquel@docker.com>
2019-01-21 09:24:12 +01:00
Stefan Scherer
7229920e2e Update process isolation description for older Windows 10 versions
Signed-off-by: Stefan Scherer <scherer_stefan@icloud.com>
2019-01-21 08:27:07 +01:00
Harald Albers
41bd8dad8c Add bash completion for the context command family
Signed-off-by: Harald Albers <github@albersweb.de>
2019-01-20 21:10:33 +01:00
zhoulin xie
abe1bb9757 Fix some typos in manifest.md
Signed-off-by: zhoulin xie <zhoulin.xie@daocloud.io>
2019-01-20 01:20:34 +08:00
Silvin Lubecki
cf0271ace4 Expose all stack commands to be used by downstream projects.
Factorize orchestrator switch among stack commands.

Signed-off-by: Silvin Lubecki <silvin.lubecki@docker.com>
2019-01-16 14:47:50 +01:00
Sebastiaan van Stijn
48bd4c6deb Merge pull request #1501 from simonferquel/use-context-commands
Fast context switch: commands
2019-01-15 18:11:38 +01:00
Sebastiaan van Stijn
af98c738dd Merge pull request #1610 from vdemeester/update-code-owners
Remove myself from codeowners 😅
2019-01-15 17:34:37 +01:00