Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion cmd/swarmctl/cluster/list.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import (
"github.com/moby/swarmkit/v2/api"
"github.com/moby/swarmkit/v2/cmd/swarmctl/common"
"github.com/spf13/cobra"
"google.golang.org/grpc"
)

var (
Expand All @@ -31,7 +32,8 @@ var (
if err != nil {
return err
}
r, err := c.ListClusters(common.Context(cmd), &api.ListClustersRequest{})
r, err := c.ListClusters(common.Context(cmd), &api.ListClustersRequest{},
grpc.MaxCallRecvMsgSize(common.DefaultRecvSizeForListResponse))
if err != nil {
return err
}
Expand Down
3 changes: 3 additions & 0 deletions cmd/swarmctl/common/common.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package common
import (
"context"
"crypto/tls"
"math"
"net"
"strings"
"time"
Expand All @@ -15,6 +16,8 @@ import (
"google.golang.org/grpc/credentials"
)

const DefaultRecvSizeForListResponse = math.MaxInt32

// Dial establishes a connection and creates a client.
// It infers connection parameters from CLI options.
func Dial(cmd *cobra.Command) (api.ControlClient, error) {
Expand Down
4 changes: 3 additions & 1 deletion cmd/swarmctl/config/list.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import (
"github.com/moby/swarmkit/v2/api"
"github.com/moby/swarmkit/v2/cmd/swarmctl/common"
"github.com/spf13/cobra"
"google.golang.org/grpc"
)

type configSorter []*api.Config
Expand Down Expand Up @@ -50,7 +51,8 @@ var (
return err
}

resp, err := client.ListConfigs(common.Context(cmd), &api.ListConfigsRequest{})
resp, err := client.ListConfigs(common.Context(cmd), &api.ListConfigsRequest{},
grpc.MaxCallRecvMsgSize(common.DefaultRecvSizeForListResponse))
if err != nil {
return err
}
Expand Down
7 changes: 7 additions & 0 deletions cmd/swarmctl/network/create.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,11 @@ var (
return err
}

ingress, err := flags.GetBool("ingress")
if err != nil {
return err
}

// Process driver configurations
var driver *api.Driver
if flags.Changed("driver") {
Expand Down Expand Up @@ -68,6 +73,7 @@ var (
},
DriverConfig: driver,
IPAM: ipamOpts,
Ingress: ingress,
}

c, err := common.Dial(cmd)
Expand Down Expand Up @@ -179,4 +185,5 @@ func init() {
createCmd.Flags().StringSlice("gateway", []string{}, "Gateway IP addresses for network segments")
createCmd.Flags().StringSlice("ip-range", []string{}, "IP ranges to allocate from within the subnets")
createCmd.Flags().StringSlice("opts", []string{}, "Network driver options")
createCmd.Flags().Bool("ingress", false, "Create ingress network")
}
1 change: 1 addition & 0 deletions cmd/swarmctl/network/inspect.go
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ func printNetworkSummary(network *api.Network) {
}
fmt.Fprintf(w, " IPv6Enabled\t: %t\n", spec.Ipv6Enabled)
fmt.Fprintf(w, " Internal\t: %t\n", spec.Internal)
fmt.Fprintf(w, " Is Ingress?\t: %t\n", spec.Ingress)

driver := network.DriverState
if driver != nil {
Expand Down
4 changes: 3 additions & 1 deletion cmd/swarmctl/network/list.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import (
"github.com/moby/swarmkit/v2/api"
"github.com/moby/swarmkit/v2/cmd/swarmctl/common"
"github.com/spf13/cobra"
"google.golang.org/grpc"
)

var (
Expand All @@ -31,7 +32,8 @@ var (
if err != nil {
return err
}
r, err := c.ListNetworks(common.Context(cmd), &api.ListNetworksRequest{})
r, err := c.ListNetworks(common.Context(cmd), &api.ListNetworksRequest{},
grpc.MaxCallRecvMsgSize(common.DefaultRecvSizeForListResponse))
if err != nil {
return err
}
Expand Down
23 changes: 23 additions & 0 deletions cmd/swarmctl/node/inspect.go
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,18 @@ func printNodeSummary(node *api.Node) {
}
}

fmt.Fprintln(w, "Node Attachment:\t")
printNetworkAttachment(w, node.Attachment)

fmt.Fprintln(w, "Network Attachments:\t")
if node.Attachments != nil && len(node.Attachments) > 0 {
for _, na := range node.Attachments {
printNetworkAttachment(w, na)
}
} else {
fmt.Fprintf(w, " <NULL> \n")
}

if desc.Engine != nil {
fmt.Fprintln(w, "Plugins:\t")
var pluginTypes []string
Expand Down Expand Up @@ -165,6 +177,17 @@ var (
}
)

func printNetworkAttachment(w *tabwriter.Writer, na *api.NetworkAttachment) {
if na == nil {
fmt.Fprintf(w, " <NULL> \n")
return
}
fmt.Fprintf(w, " Network Name\t: %s\n", na.Network.Spec.Annotations.Name)
fmt.Fprintf(w, " Network ID\t: %s\n", na.Network.ID)
fmt.Fprintf(w, " Addresses\t: %s\n", na.Addresses)
fmt.Fprintf(w, " Is Ingress?\t: %v\n", na.Network.Spec.Ingress)
}

func init() {
inspectCmd.Flags().BoolP("all", "a", false, "Show all tasks (default shows just running)")
}
4 changes: 3 additions & 1 deletion cmd/swarmctl/node/list.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import (
"github.com/moby/swarmkit/v2/api"
"github.com/moby/swarmkit/v2/cmd/swarmctl/common"
"github.com/spf13/cobra"
"google.golang.org/grpc"
)

var (
Expand All @@ -31,7 +32,8 @@ var (
if err != nil {
return err
}
r, err := c.ListNodes(common.Context(cmd), &api.ListNodesRequest{})
r, err := c.ListNodes(common.Context(cmd), &api.ListNodesRequest{},
grpc.MaxCallRecvMsgSize(common.DefaultRecvSizeForListResponse))
if err != nil {
return err
}
Expand Down
4 changes: 3 additions & 1 deletion cmd/swarmctl/secret/list.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import (
"github.com/moby/swarmkit/v2/api"
"github.com/moby/swarmkit/v2/cmd/swarmctl/common"
"github.com/spf13/cobra"
"google.golang.org/grpc"
)

type secretSorter []*api.Secret
Expand Down Expand Up @@ -50,7 +51,8 @@ var (
return err
}

resp, err := client.ListSecrets(common.Context(cmd), &api.ListSecretsRequest{})
resp, err := client.ListSecrets(common.Context(cmd), &api.ListSecretsRequest{},
grpc.MaxCallRecvMsgSize(common.DefaultRecvSizeForListResponse))
if err != nil {
return err
}
Expand Down
10 changes: 7 additions & 3 deletions cmd/swarmctl/service/list.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import (
"github.com/moby/swarmkit/v2/api"
"github.com/moby/swarmkit/v2/cmd/swarmctl/common"
"github.com/spf13/cobra"
"google.golang.org/grpc"
)

var (
Expand All @@ -31,12 +32,14 @@ var (
if err != nil {
return err
}
r, err := c.ListServices(common.Context(cmd), &api.ListServicesRequest{})
r, err := c.ListServices(common.Context(cmd), &api.ListServicesRequest{},
grpc.MaxCallRecvMsgSize(common.DefaultRecvSizeForListResponse))
if err != nil {
return err
}

nr, err := c.ListNodes(common.Context(cmd), &api.ListNodesRequest{})
nr, err := c.ListNodes(common.Context(cmd), &api.ListNodesRequest{},
grpc.MaxCallRecvMsgSize(common.DefaultRecvSizeForListResponse))
if err != nil {
return err
}
Expand All @@ -50,7 +53,8 @@ var (
var output func(j *api.Service)

if !quiet {
tr, err := c.ListTasks(common.Context(cmd), &api.ListTasksRequest{})
tr, err := c.ListTasks(common.Context(cmd), &api.ListTasksRequest{},
grpc.MaxCallRecvMsgSize(common.DefaultRecvSizeForListResponse))
if err != nil {
return err
}
Expand Down
44 changes: 23 additions & 21 deletions cmd/swarmctl/task/inspect.go
Original file line number Diff line number Diff line change
Expand Up @@ -64,30 +64,32 @@ func printTaskSummary(task *api.Task, res *common.Resolver) {

fmt.Fprintln(w, "Spec\t")
ctr := task.Spec.GetContainer()
common.FprintfIfNotEmpty(w, " Image\t: %s\n", ctr.Image)
common.FprintfIfNotEmpty(w, " Command\t: %q\n", strings.Join(ctr.Command, " "))
common.FprintfIfNotEmpty(w, " Args\t: [%s]\n", strings.Join(ctr.Args, ", "))
common.FprintfIfNotEmpty(w, " Env\t: [%s]\n", strings.Join(ctr.Env, ", "))
if len(ctr.Secrets) > 0 {
fmt.Fprintln(w, " Secrets:")
for _, sr := range ctr.Secrets {
var targetName, mode string
if sr.GetFile() != nil {
targetName = sr.GetFile().Name
mode = "FILE"
if ctr != nil {
common.FprintfIfNotEmpty(w, " Image\t: %s\n", ctr.Image)
common.FprintfIfNotEmpty(w, " Command\t: %q\n", strings.Join(ctr.Command, " "))
common.FprintfIfNotEmpty(w, " Args\t: [%s]\n", strings.Join(ctr.Args, ", "))
common.FprintfIfNotEmpty(w, " Env\t: [%s]\n", strings.Join(ctr.Env, ", "))
if len(ctr.Secrets) > 0 {
fmt.Fprintln(w, " Secrets:")
for _, sr := range ctr.Secrets {
var targetName, mode string
if sr.GetFile() != nil {
targetName = sr.GetFile().Name
mode = "FILE"
}
fmt.Fprintf(w, " [%s] %s:%s\n", mode, sr.SecretName, targetName)
}
fmt.Fprintf(w, " [%s] %s:%s\n", mode, sr.SecretName, targetName)
}
}
if len(ctr.Configs) > 0 {
fmt.Fprintln(w, " Configs:")
for _, cr := range ctr.Configs {
var targetName, mode string
if cr.GetFile() != nil {
targetName = cr.GetFile().Name
mode = "FILE"
if len(ctr.Configs) > 0 {
fmt.Fprintln(w, " Configs:")
for _, cr := range ctr.Configs {
var targetName, mode string
if cr.GetFile() != nil {
targetName = cr.GetFile().Name
mode = "FILE"
}
fmt.Fprintf(w, " [%s] %s:%s\n", mode, cr.ConfigName, targetName)
}
fmt.Fprintf(w, " [%s] %s:%s\n", mode, cr.ConfigName, targetName)
}
}
}
Expand Down
4 changes: 3 additions & 1 deletion cmd/swarmctl/task/list.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import (
"github.com/moby/swarmkit/v2/api"
"github.com/moby/swarmkit/v2/cmd/swarmctl/common"
"github.com/spf13/cobra"
"google.golang.org/grpc"
)

var (
Expand Down Expand Up @@ -36,7 +37,8 @@ var (
if err != nil {
return err
}
r, err := c.ListTasks(common.Context(cmd), &api.ListTasksRequest{})
r, err := c.ListTasks(common.Context(cmd), &api.ListTasksRequest{},
grpc.MaxCallRecvMsgSize(common.DefaultRecvSizeForListResponse))
if err != nil {
return err
}
Expand Down
6 changes: 5 additions & 1 deletion cmd/swarmctl/task/print.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,11 +49,15 @@ func Print(tasks []*api.Task, all bool, res *common.Resolver) {
continue
}
c := t.Spec.GetContainer()
var image string
if c != nil {
image = c.Image
}
fmt.Fprintf(w, "%s\t%s\t%d\t%s\t%s\t%s %s\t%s\n",
t.ID,
t.ServiceAnnotations.Name,
t.Slot,
c.Image,
image,
t.DesiredState.String(),
t.Status.State.String(),
common.TimestampAgo(t.Status.Timestamp),
Expand Down