Merge pull request #3440 from thaJeztah/drop_kube_follow_up

update docs, and remove some unused code related to "compose on kubernetes" deprecation
This commit is contained in:
Sebastiaan van Stijn 2022-02-24 17:52:37 +01:00 committed by GitHub
commit 60283c617d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
19 changed files with 65 additions and 147 deletions

View File

@ -14,7 +14,6 @@ import (
// ExportOptions are the options used for exporting a context // ExportOptions are the options used for exporting a context
type ExportOptions struct { type ExportOptions struct {
Kubeconfig bool
ContextName string ContextName string
Dest string Dest string
} }
@ -23,26 +22,22 @@ func newExportCommand(dockerCli command.Cli) *cobra.Command {
opts := &ExportOptions{} opts := &ExportOptions{}
cmd := &cobra.Command{ cmd := &cobra.Command{
Use: "export [OPTIONS] CONTEXT [FILE|-]", Use: "export [OPTIONS] CONTEXT [FILE|-]",
Short: "Export a context to a tar or kubeconfig file", Short: "Export a context to a tar archive FILE or a tar stream on STDOUT.",
Args: cli.RequiresRangeArgs(1, 2), Args: cli.RequiresRangeArgs(1, 2),
RunE: func(cmd *cobra.Command, args []string) error { RunE: func(cmd *cobra.Command, args []string) error {
opts.ContextName = args[0] opts.ContextName = args[0]
if len(args) == 2 { if len(args) == 2 {
opts.Dest = args[1] opts.Dest = args[1]
} else { } else {
opts.Dest = opts.ContextName opts.Dest = opts.ContextName + ".dockercontext"
if opts.Kubeconfig {
opts.Dest += ".kubeconfig"
} else {
opts.Dest += ".dockercontext"
}
} }
return RunExport(dockerCli, opts) return RunExport(dockerCli, opts)
}, },
} }
flags := cmd.Flags() flags := cmd.Flags()
flags.BoolVar(&opts.Kubeconfig, "kubeconfig", false, "Export as a kubeconfig file") flags.Bool("kubeconfig", false, "Export as a kubeconfig file")
flags.MarkDeprecated("kubeconfig", "option will be ignored")
flags.SetAnnotation("kubeconfig", "kubernetes", nil) flags.SetAnnotation("kubeconfig", "kubernetes", nil)
flags.SetAnnotation("kubeconfig", "deprecated", nil) flags.SetAnnotation("kubeconfig", "deprecated", nil)
return cmd return cmd

View File

@ -60,9 +60,7 @@ func TestDefaultContextInitializer(t *testing.T) {
cli, err := NewDockerCli() cli, err := NewDockerCli()
assert.NilError(t, err) assert.NilError(t, err)
defer env.Patch(t, "DOCKER_HOST", "ssh://someswarmserver")() defer env.Patch(t, "DOCKER_HOST", "ssh://someswarmserver")()
cli.configFile = &configfile.ConfigFile{ cli.configFile = &configfile.ConfigFile{}
StackOrchestrator: "swarm",
}
ctx, err := ResolveDefaultContext(&cliflags.CommonOptions{ ctx, err := ResolveDefaultContext(&cliflags.CommonOptions{
TLS: true, TLS: true,
TLSOptions: &tlsconfig.Options{ TLSOptions: &tlsconfig.Options{

View File

@ -75,6 +75,9 @@ func (c *clientContextContext) DockerEndpoint() string {
return c.c.DockerEndpoint return c.c.DockerEndpoint
} }
// KubernetesEndpoint returns the kubernetes endpoint.
//
// Deprecated: support for kubernetes endpoints in contexts has been removed, and this formatting option will always be empty.
func (c *clientContextContext) KubernetesEndpoint() string { func (c *clientContextContext) KubernetesEndpoint() string {
return "" return ""
} }

View File

@ -17,10 +17,6 @@ func getStackFilter(namespace string) filters.Args {
return filter return filter
} }
func getStackServiceFilter(namespace string) filters.Args {
return getStackFilter(namespace)
}
func getStackFilterFromOpt(namespace string, opt opts.FilterOpt) filters.Args { func getStackFilterFromOpt(namespace string, opt opts.FilterOpt) filters.Args {
filter := opt.Value() filter := opt.Value()
filter.Add("label", convert.LabelNamespace+"="+namespace) filter.Add("label", convert.LabelNamespace+"="+namespace)
@ -34,7 +30,7 @@ func getAllStacksFilter() filters.Args {
} }
func getStackServices(ctx context.Context, apiclient client.APIClient, namespace string) ([]swarm.Service, error) { func getStackServices(ctx context.Context, apiclient client.APIClient, namespace string) ([]swarm.Service, error) {
return apiclient.ServiceList(ctx, types.ServiceListOptions{Filters: getStackServiceFilter(namespace)}) return apiclient.ServiceList(ctx, types.ServiceListOptions{Filters: getStackFilter(namespace)})
} }
func getStackNetworks(ctx context.Context, apiclient client.APIClient, namespace string) ([]types.NetworkResource, error) { func getStackNetworks(ctx context.Context, apiclient client.APIClient, namespace string) ([]types.NetworkResource, error) {

View File

@ -128,13 +128,6 @@ func runVersion(dockerCli command.Cli, opts *versionOptions) error {
} }
// TODO print error if kubernetes is used? // TODO print error if kubernetes is used?
// orchestrator, err := dockerCli.StackOrchestrator("")
// if err != nil {
// return cli.StatusError{StatusCode: 64, Status: err.Error()}
// }
// if orchestrator.HasKubernetes() {
// // TODO print error if kubernetes is used?
// }
vd := versionInfo{ vd := versionInfo{
Client: clientVersion{ Client: clientVersion{

View File

@ -45,7 +45,7 @@ type ConfigFile struct {
PruneFilters []string `json:"pruneFilters,omitempty"` PruneFilters []string `json:"pruneFilters,omitempty"`
Proxies map[string]ProxyConfig `json:"proxies,omitempty"` Proxies map[string]ProxyConfig `json:"proxies,omitempty"`
Experimental string `json:"experimental,omitempty"` Experimental string `json:"experimental,omitempty"`
StackOrchestrator string `json:"stackOrchestrator,omitempty"` StackOrchestrator string `json:"stackOrchestrator,omitempty"` // Deprecated: swarm is now the default orchestrator, and this option is ignored.
CurrentContext string `json:"currentContext,omitempty"` CurrentContext string `json:"currentContext,omitempty"`
CLIPluginsExtraDirs []string `json:"cliPluginsExtraDirs,omitempty"` CLIPluginsExtraDirs []string `json:"cliPluginsExtraDirs,omitempty"`
Plugins map[string]map[string]string `json:"plugins,omitempty"` Plugins map[string]map[string]string `json:"plugins,omitempty"`

View File

@ -197,9 +197,31 @@ to decrypt the private key, and store it un-encrypted to continue using it.
### Kubernetes stack and context support ### Kubernetes stack and context support
**Deprecated in Release: v20.10** **Deprecated in Release: v20.10**
**Removed in Release: v21.xx**
Following the deprecation of [Compose on Kubernetes](https://github.com/docker/compose-on-kubernetes), support for Following the deprecation of [Compose on Kubernetes](https://github.com/docker/compose-on-kubernetes),
Kubernetes in the `stack` and `context` commands in the docker CLI is now marked as deprecated as well. support for Kubernetes in the `stack` and `context` commands has been removed from
the cli, and options related to this functionality are now either ignored, or may
produce an error.
The following command-line flags are removed from the `docker context` subcommands:
- `--default-stack-orchestrator` - swarm is now the only (and default) orchestrator for stacks.
- `--kubernetes` - the kubernetes endpoint can no longer be stored in `docker context`.
- `--kubeconfig` - exporting a context as a kubeconfig file is no longer supported.
The output produced by the `docker context inspect` subcommand no longer contains
information about `StackOrchestrator` and `Kubernetes` endpoints for new contexts.
The following command-line flags are removed from the `docker stack` subcommands:
- `--kubeconfig` - using a kubeconfig file as context is no longer supported.
- `--namespace` - configuring the kubernetes namespace for stacks is no longer supported.
- `--orchestrator` - swarm is now the only (and default) orchestrator for stacks.
The `DOCKER_STACK_ORCHESTRATOR`, `DOCKER_ORCHESTRATOR`, and `KUBECONFIG` environment
variables, as well as the `stackOrchestrator` option in the `~/.docker/config.json`
cli configuration file are no longer used, and ignored.
### Pulling images from non-compliant image registries ### Pulling images from non-compliant image registries

View File

@ -66,7 +66,7 @@ The following list of environment variables are supported by the `docker` comman
line: line:
| Variable | Description | | Variable | Description |
|:------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------| |:------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------|
| `DOCKER_API_VERSION` | Override the negotiated API version to use for debugging (e.g. `1.19`) | | `DOCKER_API_VERSION` | Override the negotiated API version to use for debugging (e.g. `1.19`) |
| `DOCKER_CERT_PATH` | Location of your authentication keys. This variable is used both by the `docker` CLI and the [`dockerd` daemon](dockerd.md) | | `DOCKER_CERT_PATH` | Location of your authentication keys. This variable is used both by the `docker` CLI and the [`dockerd` daemon](dockerd.md) |
| `DOCKER_CONFIG` | The location of your client configuration files. | | `DOCKER_CONFIG` | The location of your client configuration files. |
@ -76,7 +76,6 @@ line:
| `DOCKER_DEFAULT_PLATFORM` | Default platform for commands that take the `--platform` flag. | | `DOCKER_DEFAULT_PLATFORM` | Default platform for commands that take the `--platform` flag. |
| `DOCKER_HIDE_LEGACY_COMMANDS` | When set, Docker hides "legacy" top-level commands (such as `docker rm`, and `docker pull`) in `docker help` output, and only `Management commands` per object-type (e.g., `docker container`) are printed. This may become the default in a future release, at which point this environment-variable is removed. | | `DOCKER_HIDE_LEGACY_COMMANDS` | When set, Docker hides "legacy" top-level commands (such as `docker rm`, and `docker pull`) in `docker help` output, and only `Management commands` per object-type (e.g., `docker container`) are printed. This may become the default in a future release, at which point this environment-variable is removed. |
| `DOCKER_HOST` | Daemon socket to connect to. | | `DOCKER_HOST` | Daemon socket to connect to. |
| `DOCKER_STACK_ORCHESTRATOR` | Configure the default orchestrator to use when using `docker stack` management commands. |
| `DOCKER_TLS_VERIFY` | When set Docker uses TLS and verifies the remote. This variable is used both by the `docker` CLI and the [`dockerd` daemon](dockerd.md) | | `DOCKER_TLS_VERIFY` | When set Docker uses TLS and verifies the remote. This variable is used both by the `docker` CLI and the [`dockerd` daemon](dockerd.md) |
| `BUILDKIT_PROGRESS` | Set type of progress output (`auto`, `plain`, `tty`) when [building](build.md) with [BuildKit backend](../builder.md#buildkit). Use plain to show container output (default `auto`). | | `BUILDKIT_PROGRESS` | Set type of progress output (`auto`, `plain`, `tty`) when [building](build.md) with [BuildKit backend](../builder.md#buildkit). Use plain to show container output (default `auto`). |
@ -192,14 +191,6 @@ for a specific registry. For more information, see the
[**Credential helpers** section in the `docker login` documentation](login.md#credential-helpers) [**Credential helpers** section in the `docker login` documentation](login.md#credential-helpers)
### Orchestrator options for docker stacks
The property `stackOrchestrator` specifies the default orchestrator to use when
running `docker stack` management commands. Valid values are `"swarm"`,
`"kubernetes"`, and `"all"`. This property can be overridden with the
`DOCKER_STACK_ORCHESTRATOR` environment variable, or the `--orchestrator` flag.
### Automatic proxy configuration for containers ### Automatic proxy configuration for containers
The property `proxies` specifies proxy environment variables to be automatically The property `proxies` specifies proxy environment variables to be automatically
@ -282,7 +273,6 @@ various fields:
"awesomereg.example.org": "hip-star", "awesomereg.example.org": "hip-star",
"unicorn.example.com": "vcbait" "unicorn.example.com": "vcbait"
}, },
"stackOrchestrator": "kubernetes",
"plugins": { "plugins": {
"plugin1": { "plugin1": {
"option": "value" "option": "value"

View File

@ -21,14 +21,6 @@ cert Path to TLS certificate file
key Path to TLS key file key Path to TLS key file
skip-tls-verify Skip TLS certificate validation skip-tls-verify Skip TLS certificate validation
Kubernetes endpoint config:
NAME DESCRIPTION
from Copy Kubernetes endpoint configuration from an existing context
config-file Path to a Kubernetes config file
context-override Overrides the context set in the kubernetes config file
namespace-override Overrides the namespace set in the kubernetes config file
Example: Example:
$ docker context create my-context \ $ docker context create my-context \
@ -36,15 +28,9 @@ $ docker context create my-context \
--docker "host=tcp://myserver:2376,ca=~/ca-file,cert=~/cert-file,key=~/key-file" --docker "host=tcp://myserver:2376,ca=~/ca-file,cert=~/cert-file,key=~/key-file"
Options: Options:
--default-stack-orchestrator string Default orchestrator for
stack operations to use with
this context
(swarm|kubernetes|all)
--description string Description of the context --description string Description of the context
--docker stringToString set the docker endpoint --docker stringToString set the docker endpoint
(default []) (default [])
--kubernetes stringToString set the kubernetes endpoint
(default [])
--from string Create the context from an existing context --from string Create the context from an existing context
``` ```
@ -55,17 +41,15 @@ configuration to connect to different clusters or single nodes.
## Examples ## Examples
### Create a context with a docker and kubernetes endpoint ### Create a context with a docker endpoint
To create a context from scratch provide the docker and, if required, To create a context from scratch provide the docker and, if required,
kubernetes options. The example below creates the context `my-context` kubernetes options. The example below creates the context `my-context`
with a docker endpoint of `/var/run/docker.sock` and a kubernetes configuration with a docker endpoint of `/var/run/docker.sock`:
sourced from the file `/home/me/my-kube-config`:
```console ```console
$ docker context create \ $ docker context create \
--docker host=unix:///var/run/docker.sock \ --docker host=unix:///var/run/docker.sock \
--kubernetes config-file=/home/me/my-kube-config \
my-context my-context
``` ```
@ -92,32 +76,18 @@ $ source my-setup-script.sh
$ docker context create my-context $ docker context create my-context
``` ```
To source only the `docker` endpoint configuration from an existing context To source the `docker` endpoint configuration from an existing context
use the `--docker from=<context-name>` option. The example below creates a use the `--docker from=<context-name>` option. The example below creates a
new context named `my-context` using the docker endpoint configuration from new context named `my-context` using the docker endpoint configuration from
the existing context `existing-context` and a kubernetes configuration sourced the existing context `existing-context`:
from the file `/home/me/my-kube-config`:
```console ```console
$ docker context create \ $ docker context create \
--docker from=existing-context \ --docker from=existing-context \
--kubernetes config-file=/home/me/my-kube-config \
my-context my-context
``` ```
To source only the `kubernetes` configuration from an existing context use the Docker endpoints configurations, as well as the description can be modified with
`--kubernetes from=<context-name>` option. The example below creates a new `docker context update`.
context named `my-context` using the kuberentes configuration from the existing
context `existing-context` and a docker endpoint of `/var/run/docker.sock`:
```console
$ docker context create \
--docker host=unix:///var/run/docker.sock \
--kubernetes from=existing-context \
my-context
```
Docker and Kubernetes endpoints configurations, as well as default stack
orchestrator and description can be modified with `docker context update`.
Refer to the [`docker context update` reference](context_update.md) for details. Refer to the [`docker context update` reference](context_update.md) for details.

View File

@ -9,15 +9,16 @@ keywords: "context, export"
```markdown ```markdown
Usage: docker context export [OPTIONS] CONTEXT [FILE|-] Usage: docker context export [OPTIONS] CONTEXT [FILE|-]
Export a context to a tar or kubeconfig file Export a context to a tar archive FILE or a tar stream on STDOUT.
Options:
--kubeconfig Export as a kubeconfig file
``` ```
## Description ## Description
Exports a context in a file that can then be used with `docker context import` Exports a context to a file that can then be used with `docker context import`.
(or with `kubectl` if `--kubeconfig` is set). Default output filename is
`<CONTEXT>.dockercontext`, or `<CONTEXT>.kubeconfig` if `--kubeconfig` is set. The default output filename is `<CONTEXT>.dockercontext`. To export to `STDOUT`,
To export to `STDOUT`, you can run `docker context export my-context -`. use `-` as filename, for example:
```console
$ docker context export my-context -
```

View File

@ -30,27 +30,16 @@ $ docker context inspect "local+aks"
{ {
"Name": "local+aks", "Name": "local+aks",
"Metadata": { "Metadata": {
"Description": "Local Docker Engine + Azure AKS endpoint", "Description": "Local Docker Engine",
"StackOrchestrator": "kubernetes" "StackOrchestrator": "swarm"
}, },
"Endpoints": { "Endpoints": {
"docker": { "docker": {
"Host": "npipe:////./pipe/docker_engine", "Host": "npipe:////./pipe/docker_engine",
"SkipTLSVerify": false "SkipTLSVerify": false
},
"kubernetes": {
"Host": "https://simon-aks-***.hcp.uksouth.azmk8s.io:443",
"SkipTLSVerify": false,
"DefaultNamespace": "default"
} }
}, },
"TLSMaterial": { "TLSMaterial": {},
"kubernetes": [
"ca.pem",
"cert.pem",
"key.pem"
]
},
"Storage": { "Storage": {
"MetadataPath": "C:\\Users\\simon\\.docker\\contexts\\meta\\cb6d08c0a1bfa5fe6f012e61a442788c00bed93f509141daff05f620fc54ddee", "MetadataPath": "C:\\Users\\simon\\.docker\\contexts\\meta\\cb6d08c0a1bfa5fe6f012e61a442788c00bed93f509141daff05f620fc54ddee",
"TLSPath": "C:\\Users\\simon\\.docker\\contexts\\tls\\cb6d08c0a1bfa5fe6f012e61a442788c00bed93f509141daff05f620fc54ddee" "TLSPath": "C:\\Users\\simon\\.docker\\contexts\\tls\\cb6d08c0a1bfa5fe6f012e61a442788c00bed93f509141daff05f620fc54ddee"

View File

@ -21,28 +21,14 @@ cert Path to TLS certificate file
key Path to TLS key file key Path to TLS key file
skip-tls-verify Skip TLS certificate validation skip-tls-verify Skip TLS certificate validation
Kubernetes endpoint config:
NAME DESCRIPTION
from Copy Kubernetes endpoint configuration from an existing context
config-file Path to a Kubernetes config file
context-override Overrides the context set in the kubernetes config file
namespace-override Overrides the namespace set in the kubernetes config file
Example: Example:
$ docker context update my-context --description "some description" --docker "host=tcp://myserver:2376,ca=~/ca-file,cert=~/cert-file,key=~/key-file" $ docker context update my-context --description "some description" --docker "host=tcp://myserver:2376,ca=~/ca-file,cert=~/cert-file,key=~/key-file"
Options: Options:
--default-stack-orchestrator string Default orchestrator for
stack operations to use with
this context
(swarm|kubernetes|all)
--description string Description of the context --description string Description of the context
--docker stringToString set the docker endpoint --docker stringToString set the docker endpoint
(default []) (default [])
--kubernetes stringToString set the kubernetes endpoint
(default [])
``` ```
## Description ## Description

View File

@ -13,8 +13,6 @@ Manage Docker stacks
Options: Options:
--help Print usage --help Print usage
--kubeconfig string Kubernetes config file
--orchestrator string Orchestrator to use (swarm|kubernetes|all)
Commands: Commands:
deploy Deploy a new stack or update an existing stack deploy Deploy a new stack or update an existing stack

View File

@ -17,9 +17,6 @@ Aliases:
Options: Options:
-c, --compose-file strings Path to a Compose file, or "-" to read from stdin -c, --compose-file strings Path to a Compose file, or "-" to read from stdin
--help Print usage --help Print usage
--kubeconfig string Kubernetes config file
--namespace string Kubernetes namespace to use
--orchestrator string Orchestrator to use (swarm|kubernetes|all)
--prune Prune services that are no longer referenced --prune Prune services that are no longer referenced
--resolve-image string Query the registry to resolve image digest and supported platforms --resolve-image string Query the registry to resolve image digest and supported platforms
("always"|"changed"|"never") (default "always") ("always"|"changed"|"never") (default "always")

View File

@ -17,9 +17,6 @@ Aliases:
Options: Options:
--help Print usage --help Print usage
--format string Pretty-print stacks using a Go template --format string Pretty-print stacks using a Go template
--kubeconfig string Kubernetes config file
--namespace string Kubernetes namespace to use
--orchestrator string Orchestrator to use (swarm|kubernetes|all)
``` ```
## Description ## Description

View File

@ -15,11 +15,8 @@ Options:
-f, --filter filter Filter output based on conditions provided -f, --filter filter Filter output based on conditions provided
--format string Pretty-print tasks using a Go template --format string Pretty-print tasks using a Go template
--help Print usage --help Print usage
--kubeconfig string Kubernetes config file
--namespace string Kubernetes namespace to use
--no-resolve Do not map IDs to Names --no-resolve Do not map IDs to Names
--no-trunc Do not truncate output --no-trunc Do not truncate output
--orchestrator string Orchestrator to use (swarm|kubernetes|all)
-q, --quiet Only display task IDs -q, --quiet Only display task IDs
``` ```

View File

@ -16,9 +16,6 @@ Aliases:
Options: Options:
--help Print usage --help Print usage
--kubeconfig string Kubernetes config file
--namespace string Kubernetes namespace to use
--orchestrator string Orchestrator to use (swarm|kubernetes|all)
``` ```
## Description ## Description
@ -36,7 +33,8 @@ Remove the stack from the swarm.
### Remove a stack ### Remove a stack
This will remove the stack with the name `myapp`. Services, networks, and secrets associated with the stack will be removed. This will remove the stack with the name `myapp`. Services, networks, and secrets
associated with the stack will be removed.
```console ```console
$ docker stack rm myapp $ docker stack rm myapp
@ -50,7 +48,8 @@ Removing network myapp_frontend
### Remove multiple stacks ### Remove multiple stacks
This will remove all the specified stacks, `myapp` and `vossibility`. Services, networks, and secrets associated with all the specified stacks will be removed. This will remove all the specified stacks, `myapp` and `vossibility`. Services,
networks, and secrets associated with all the specified stacks will be removed.
```console ```console
$ docker stack rm myapp vossibility $ docker stack rm myapp vossibility

View File

@ -15,9 +15,6 @@ Options:
-f, --filter filter Filter output based on conditions provided -f, --filter filter Filter output based on conditions provided
--format string Pretty-print services using a Go template --format string Pretty-print services using a Go template
--help Print usage --help Print usage
--kubeconfig string Kubernetes config file
--namespace string Kubernetes namespace to use
--orchestrator string Orchestrator to use (swarm|kubernetes|all)
-q, --quiet Only display IDs -q, --quiet Only display IDs
``` ```
@ -63,23 +60,14 @@ dn7m7nhhfb9y myapp_db 1/1 mysql@sha256:a9a5b559f8821fe73d58c3606c8
The currently supported filters are: The currently supported filters are:
* id / ID (`--filter id=7be5ei6sqeye`, or `--filter ID=7be5ei6sqeye`) * id / ID (`--filter id=7be5ei6sqeye`, or `--filter ID=7be5ei6sqeye`)
* Swarm: supported
* Kubernetes: not supported
* label (`--filter label=key=value`) * label (`--filter label=key=value`)
* Swarm: supported
* Kubernetes: supported
* mode (`--filter mode=replicated`, or `--filter mode=global`) * mode (`--filter mode=replicated`, or `--filter mode=global`)
* Swarm: not supported * Swarm: not supported
* Kubernetes: supported
* name (`--filter name=myapp_web`) * name (`--filter name=myapp_web`)
* Swarm: supported
* Kubernetes: supported
* node (`--filter node=mynode`) * node (`--filter node=mynode`)
* Swarm: not supported * Swarm: not supported
* Kubernetes: supported
* service (`--filter service=web`) * service (`--filter service=web`)
* Swarm: not supported * Swarm: not supported
* Kubernetes: supported
### Formatting ### Formatting

View File

@ -14,7 +14,6 @@ Show the Docker version information
Options: Options:
-f, --format string Format the output using the given Go template -f, --format string Format the output using the given Go template
--help Print usage --help Print usage
--kubeconfig string Kubernetes config file
``` ```
## Description ## Description