/
left76
/
ccli2
Обзор
Документация
Войти
/
left76
/
ccli2
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
cli/command/stack/kubernetes/services.go
64 строки
2 KB
Silvin Lubecki
Add --all-namespaces to docker stack ls command on Kubernetes orchestrator, to list all stacks in all namespaces.
09 май 2018, 18:33
09 май 2018, 18:33
f097831
Код
Авторство
О чём код?
package kubernetes import ( "fmt" "github.com/docker/cli/cli/command/formatter" "github.com/docker/cli/cli/command/stack/options" "github.com/docker/cli/kubernetes/labels" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) // RunServices is the kubernetes implementation of docker stack services func RunServices(dockerCli *KubeCli, opts options.Services) error { // Initialize clients client, err := dockerCli.composeClient() if err != nil { return nil } stacks, err := client.Stacks(false) if err != nil { return err } replicas := client.ReplicaSets() if _, err := stacks.Get(opts.Namespace); err != nil { fmt.Fprintf(dockerCli.Err(), "Nothing found in stack: %s\n", opts.Namespace) return nil } replicasList, err := replicas.List(metav1.ListOptions{LabelSelector: labels.SelectorForStack(opts.Namespace)}) if err != nil { return err } servicesList, err := client.Services().List(metav1.ListOptions{LabelSelector: labels.SelectorForStack(opts.Namespace)}) if err != nil { return err } // Convert Replicas sets and kubernetes services to swam services and formatter informations services, info, err := replicasToServices(replicasList, servicesList) if err != nil { return err } if opts.Quiet { info = map[string]formatter.ServiceListInfo{} } format := opts.Format if len(format) == 0 { if len(dockerCli.ConfigFile().ServicesFormat) > 0 && !opts.Quiet { format = dockerCli.ConfigFile().ServicesFormat } else { format = formatter.TableFormatKey } } servicesCtx := formatter.Context{ Output: dockerCli.Out(), Format: formatter.NewServiceListFormat(format, opts.Quiet), } return formatter.ServiceListWrite(servicesCtx, services, info) }