Add support for kubernetes in docker cli

- Add support for kubernetes for docker stack command
- Update to go 1.9
- Add kubernetes to vendors
- Print orchestrator in docker version command

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
Signed-off-by: Silvin Lubecki <silvin.lubecki@docker.com>
This commit is contained in:
Vincent Demeester
2017-11-20 15:30:52 +01:00
committed by Silvin Lubecki
parent 70db7cc0fc
commit 8417e49792
985 changed files with 319793 additions and 3422 deletions

View File

@ -0,0 +1,46 @@
package kubernetes
import (
"fmt"
"github.com/docker/cli/cli"
"github.com/docker/cli/cli/command"
"github.com/spf13/cobra"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)
type removeOptions struct {
stacks []string
}
func newRemoveCommand(dockerCli command.Cli, kubeCli *kubeCli) *cobra.Command {
var opts removeOptions
cmd := &cobra.Command{
Use: "rm STACK [STACK...]",
Aliases: []string{"remove", "down"},
Short: "Remove one or more stacks",
Args: cli.RequiresMinArgs(1),
RunE: func(cmd *cobra.Command, args []string) error {
opts.stacks = args
return runRemove(dockerCli, kubeCli, opts)
},
}
return cmd
}
func runRemove(dockerCli command.Cli, kubeCli *kubeCli, opts removeOptions) error {
stacks, err := kubeCli.Stacks()
if err != nil {
return err
}
for _, stack := range opts.stacks {
fmt.Fprintf(dockerCli.Out(), "Removing stack: %s\n", stack)
err := stacks.Delete(stack, &metav1.DeleteOptions{})
if err != nil {
fmt.Fprintf(dockerCli.Out(), "Failed to remove stack %s: %s\n", stack, err)
return err
}
}
return nil
}