Skip to content

Commit

Permalink
Merge pull request #3440 from thaJeztah/drop_kube_follow_up
Browse files Browse the repository at this point in the history
update docs, and remove some unused code related to "compose on kubernetes" deprecation
  • Loading branch information
thaJeztah committed Feb 24, 2022
2 parents 531810b + 467e650 commit 60283c6
Show file tree
Hide file tree
Showing 19 changed files with 65 additions and 147 deletions.
13 changes: 4 additions & 9 deletions cli/command/context/export.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ import (

// ExportOptions are the options used for exporting a context
type ExportOptions struct {
Kubeconfig bool
ContextName string
Dest string
}
Expand All @@ -23,26 +22,22 @@ func newExportCommand(dockerCli command.Cli) *cobra.Command {
opts := &ExportOptions{}
cmd := &cobra.Command{
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),
RunE: func(cmd *cobra.Command, args []string) error {
opts.ContextName = args[0]
if len(args) == 2 {
opts.Dest = args[1]
} else {
opts.Dest = opts.ContextName
if opts.Kubeconfig {
opts.Dest += ".kubeconfig"
} else {
opts.Dest += ".dockercontext"
}
opts.Dest = opts.ContextName + ".dockercontext"
}
return RunExport(dockerCli, opts)
},
}

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", "deprecated", nil)
return cmd
Expand Down
4 changes: 1 addition & 3 deletions cli/command/defaultcontextstore_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -60,9 +60,7 @@ func TestDefaultContextInitializer(t *testing.T) {
cli, err := NewDockerCli()
assert.NilError(t, err)
defer env.Patch(t, "DOCKER_HOST", "ssh://someswarmserver")()
cli.configFile = &configfile.ConfigFile{
StackOrchestrator: "swarm",
}
cli.configFile = &configfile.ConfigFile{}
ctx, err := ResolveDefaultContext(&cliflags.CommonOptions{
TLS: true,
TLSOptions: &tlsconfig.Options{
Expand Down
3 changes: 3 additions & 0 deletions cli/command/formatter/context.go
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,9 @@ func (c *clientContextContext) DockerEndpoint() string {
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 {
return ""
}
6 changes: 1 addition & 5 deletions cli/command/stack/swarm/common.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,6 @@ func getStackFilter(namespace string) filters.Args {
return filter
}

func getStackServiceFilter(namespace string) filters.Args {
return getStackFilter(namespace)
}

func getStackFilterFromOpt(namespace string, opt opts.FilterOpt) filters.Args {
filter := opt.Value()
filter.Add("label", convert.LabelNamespace+"="+namespace)
Expand All @@ -34,7 +30,7 @@ func getAllStacksFilter() filters.Args {
}

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) {
Expand Down
7 changes: 0 additions & 7 deletions cli/command/system/version.go
Original file line number Diff line number Diff line change
Expand Up @@ -128,13 +128,6 @@ func runVersion(dockerCli command.Cli, opts *versionOptions) error {
}

// 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{
Client: clientVersion{
Expand Down
2 changes: 1 addition & 1 deletion cli/config/configfile/file.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ type ConfigFile struct {
PruneFilters []string `json:"pruneFilters,omitempty"`
Proxies map[string]ProxyConfig `json:"proxies,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"`
CLIPluginsExtraDirs []string `json:"cliPluginsExtraDirs,omitempty"`
Plugins map[string]map[string]string `json:"plugins,omitempty"`
Expand Down
26 changes: 24 additions & 2 deletions docs/deprecated.md
Original file line number Diff line number Diff line change
Expand Up @@ -197,9 +197,31 @@ to decrypt the private key, and store it un-encrypted to continue using it.
### Kubernetes stack and context support

**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 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.

Following the deprecation of [Compose on Kubernetes](https://github.com/docker/compose-on-kubernetes), support for
Kubernetes in the `stack` and `context` commands in the docker CLI is now marked as deprecated as well.
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

Expand Down
28 changes: 9 additions & 19 deletions docs/reference/commandline/cli.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,18 +65,17 @@ the [installation](https://docs.docker.com/install/) instructions for your opera
The following list of environment variables are supported by the `docker` command
line:

| Variable | Description |
|:------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------|
| `DOCKER_API_VERSION` | Override the negotiated API version to use for debugging (e.g. `1.19`) |
| Variable | Description |
|:------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------|
| `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_CONFIG` | The location of your client configuration files. |
| `DOCKER_CONTENT_TRUST_SERVER` | The URL of the Notary server to use. Defaults to the same URL as the registry. |
| `DOCKER_CONTENT_TRUST` | When set Docker uses notary to sign and verify images. Equates to `--disable-content-trust=false` for build, create, pull, push, run. |
| `DOCKER_CONTEXT` | Name of the `docker context` to use (overrides `DOCKER_HOST` env var and default context set with `docker context use`) |
| `DOCKER_DEFAULT_PLATFORM` | Default platform for commands that take the `--platform` flag. |
| `DOCKER_CONFIG` | The location of your client configuration files. |
| `DOCKER_CONTENT_TRUST_SERVER` | The URL of the Notary server to use. Defaults to the same URL as the registry. |
| `DOCKER_CONTENT_TRUST` | When set Docker uses notary to sign and verify images. Equates to `--disable-content-trust=false` for build, create, pull, push, run. |
| `DOCKER_CONTEXT` | Name of the `docker context` to use (overrides `DOCKER_HOST` env var and default context set with `docker context use`) |
| `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_HOST` | Daemon socket to connect to. |
| `DOCKER_STACK_ORCHESTRATOR` | Configure the default orchestrator to use when using `docker stack` management commands. |
| `DOCKER_HOST` | Daemon socket to connect to. |
| `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`). |

Expand Down Expand Up @@ -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)


### 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

The property `proxies` specifies proxy environment variables to be automatically
Expand Down Expand Up @@ -282,7 +273,6 @@ various fields:
"awesomereg.example.org": "hip-star",
"unicorn.example.com": "vcbait"
},
"stackOrchestrator": "kubernetes",
"plugins": {
"plugin1": {
"option": "value"
Expand Down
42 changes: 6 additions & 36 deletions docs/reference/commandline/context_create.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,30 +21,16 @@ cert Path to TLS certificate file
key Path to TLS key file
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:

$ docker context create my-context \
--description "some description" \
--docker "host=tcp://myserver:2376,ca=~/ca-file,cert=~/cert-file,key=~/key-file"

Options:
--default-stack-orchestrator string Default orchestrator for
stack operations to use with
this context
(swarm|kubernetes|all)
--description string Description of the context
--docker stringToString set the docker endpoint
(default [])
--kubernetes stringToString set the kubernetes endpoint
(default [])
--from string Create the context from an existing context
```

Expand All @@ -55,17 +41,15 @@ configuration to connect to different clusters or single nodes.

## 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,
kubernetes options. The example below creates the context `my-context`
with a docker endpoint of `/var/run/docker.sock` and a kubernetes configuration
sourced from the file `/home/me/my-kube-config`:
with a docker endpoint of `/var/run/docker.sock`:

```console
$ docker context create \
--docker host=unix:///var/run/docker.sock \
--kubernetes config-file=/home/me/my-kube-config \
my-context
```

Expand All @@ -92,32 +76,18 @@ $ source my-setup-script.sh
$ 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
new context named `my-context` using the docker endpoint configuration from
the existing context `existing-context` and a kubernetes configuration sourced
from the file `/home/me/my-kube-config`:
the existing context `existing-context`:

```console
$ docker context create \
--docker from=existing-context \
--kubernetes config-file=/home/me/my-kube-config \
my-context
```

To source only the `kubernetes` configuration from an existing context use the
`--kubernetes from=<context-name>` option. The example below creates a new
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`.
Docker endpoints configurations, as well as the description can be modified with
`docker context update`.

Refer to the [`docker context update` reference](context_update.md) for details.
17 changes: 9 additions & 8 deletions docs/reference/commandline/context_export.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,16 @@ keywords: "context, export"
```markdown
Usage: docker context export [OPTIONS] CONTEXT [FILE|-]

Export a context to a tar or kubeconfig file

Options:
--kubeconfig Export as a kubeconfig file
Export a context to a tar archive FILE or a tar stream on STDOUT.
```

## Description

Exports a context in 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.
To export to `STDOUT`, you can run `docker context export my-context -`.
Exports a context to a file that can then be used with `docker context import`.

The default output filename is `<CONTEXT>.dockercontext`. To export to `STDOUT`,
use `-` as filename, for example:

```console
$ docker context export my-context -
```
17 changes: 3 additions & 14 deletions docs/reference/commandline/context_inspect.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,27 +30,16 @@ $ docker context inspect "local+aks"
{
"Name": "local+aks",
"Metadata": {
"Description": "Local Docker Engine + Azure AKS endpoint",
"StackOrchestrator": "kubernetes"
"Description": "Local Docker Engine",
"StackOrchestrator": "swarm"
},
"Endpoints": {
"docker": {
"Host": "npipe:////./pipe/docker_engine",
"SkipTLSVerify": false
},
"kubernetes": {
"Host": "https://simon-aks-***.hcp.uksouth.azmk8s.io:443",
"SkipTLSVerify": false,
"DefaultNamespace": "default"
}
},
"TLSMaterial": {
"kubernetes": [
"ca.pem",
"cert.pem",
"key.pem"
]
},
"TLSMaterial": {},
"Storage": {
"MetadataPath": "C:\\Users\\simon\\.docker\\contexts\\meta\\cb6d08c0a1bfa5fe6f012e61a442788c00bed93f509141daff05f620fc54ddee",
"TLSPath": "C:\\Users\\simon\\.docker\\contexts\\tls\\cb6d08c0a1bfa5fe6f012e61a442788c00bed93f509141daff05f620fc54ddee"
Expand Down
14 changes: 0 additions & 14 deletions docs/reference/commandline/context_update.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,28 +21,14 @@ cert Path to TLS certificate file
key Path to TLS key file
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:

$ docker context update my-context --description "some description" --docker "host=tcp://myserver:2376,ca=~/ca-file,cert=~/cert-file,key=~/key-file"

Options:
--default-stack-orchestrator string Default orchestrator for
stack operations to use with
this context
(swarm|kubernetes|all)
--description string Description of the context
--docker stringToString set the docker endpoint
(default [])
--kubernetes stringToString set the kubernetes endpoint
(default [])
```

## Description
Expand Down
2 changes: 0 additions & 2 deletions docs/reference/commandline/stack.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@ Manage Docker stacks

Options:
--help Print usage
--kubeconfig string Kubernetes config file
--orchestrator string Orchestrator to use (swarm|kubernetes|all)

Commands:
deploy Deploy a new stack or update an existing stack
Expand Down
3 changes: 0 additions & 3 deletions docs/reference/commandline/stack_deploy.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,6 @@ Aliases:
Options:
-c, --compose-file strings Path to a Compose file, or "-" to read from stdin
--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
--resolve-image string Query the registry to resolve image digest and supported platforms
("always"|"changed"|"never") (default "always")
Expand Down
3 changes: 0 additions & 3 deletions docs/reference/commandline/stack_ls.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,6 @@ Aliases:
Options:
--help Print usage
--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
Expand Down

0 comments on commit 60283c6

Please sign in to comment.