Skip to content

Commit 26302fd

Browse files
authored
Merge pull request #41 from jlebon/pr/cluster-name-helpers
Various patches to make non-default cluster name easier to use
2 parents 2b1bbdc + 24c4aec commit 26302fd

4 files changed

Lines changed: 8 additions & 44 deletions

File tree

CLAUDE.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,6 @@ kubectl get nodes
7373

7474
Flags:
7575
- `--role worker|control-plane` (default: `worker`)
76-
- `--control-plane node1` (which node to join against, default: `node1`)
7776
- `--memory` VM RAM in MB
7877

7978
### SSH into a Node

cmd/bink/main.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"errors"
88
"fmt"
99
"os"
10+
"strings"
1011

1112
"github.com/bootc-dev/bink/internal/cli"
1213
"github.com/bootc-dev/bink/internal/cli/api"
@@ -83,7 +84,7 @@ func init() {
8384
rootCmd.PersistentFlags().StringVar(&cfgFile, "config", "", "config file (default is $HOME/.bink/config.yaml)")
8485
rootCmd.PersistentFlags().BoolVarP(&verbose, "verbose", "v", false, "verbose output")
8586
rootCmd.PersistentFlags().BoolVar(&debug, "debug", false, "debug output")
86-
rootCmd.PersistentFlags().String("cluster-name", config.DefaultNetworkName, "cluster name")
87+
rootCmd.PersistentFlags().StringP("cluster-name", "c", config.DefaultNetworkName, "cluster name")
8788

8889
viper.BindPFlag("cluster.name", rootCmd.PersistentFlags().Lookup("cluster-name"))
8990
viper.BindPFlag("logging.verbose", rootCmd.PersistentFlags().Lookup("verbose"))
@@ -115,6 +116,7 @@ func initConfig() {
115116
}
116117

117118
viper.SetEnvPrefix("BINK")
119+
viper.SetEnvKeyReplacer(strings.NewReplacer(".", "_"))
118120
viper.AutomaticEnv()
119121

120122
if err := viper.ReadInConfig(); err == nil {

internal/cli/completion.go

Lines changed: 0 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -70,36 +70,4 @@ func CompleteNodeNames(cmd *cobra.Command, args []string, toComplete string) ([]
7070
return names, cobra.ShellCompDirectiveNoFileComp
7171
}
7272

73-
func CompleteControlPlaneNodes(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) {
74-
client, err := podman.NewClient()
75-
if err != nil {
76-
return nil, cobra.ShellCompDirectiveNoFileComp
77-
}
7873

79-
ctx := cmd.Context()
80-
clusterName := viper.GetString("cluster.name")
81-
containers, err := client.ContainerList(ctx, config.LabelFilter(config.LabelClusterName, clusterName))
82-
if err != nil {
83-
return nil, cobra.ShellCompDirectiveNoFileComp
84-
}
85-
86-
var names []string
87-
for _, ctr := range containers {
88-
component, _ := client.ContainerInspect(ctx, ctr, config.LabelInspectFormat(config.LabelComponent))
89-
if component != "" {
90-
continue
91-
}
92-
role, _ := client.ContainerInspect(ctx, ctr, config.LabelInspectFormat(config.LabelNodeRole))
93-
if role != "control-plane" {
94-
continue
95-
}
96-
nodeName, err := client.ContainerInspect(ctx, ctr, config.LabelInspectFormat(config.LabelNodeName))
97-
if err != nil || nodeName == "" {
98-
continue
99-
}
100-
if strings.HasPrefix(nodeName, toComplete) {
101-
names = append(names, nodeName)
102-
}
103-
}
104-
return names, cobra.ShellCompDirectiveNoFileComp
105-
}

internal/cli/node/add.go

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import (
1212
"github.com/spf13/cobra"
1313
"github.com/spf13/viper"
1414

15-
"github.com/bootc-dev/bink/internal/cli"
1615
"github.com/bootc-dev/bink/internal/cluster"
1716
"github.com/bootc-dev/bink/internal/config"
1817
"github.com/bootc-dev/bink/internal/dns"
@@ -22,7 +21,6 @@ import (
2221
)
2322

2423
func newAddCmd() *cobra.Command {
25-
var controlPlane string
2624
var nodeImage string
2725
var role string
2826
var memory int
@@ -49,11 +47,10 @@ func newAddCmd() *cobra.Command {
4947
return err
5048
}
5149
logger := logrus.New()
52-
return runAdd(cmd.Context(), args[0], controlPlane, nodeImage, role, memory, maxMemory, hostNetworkPopulator, labels, logger)
50+
return runAdd(cmd.Context(), args[0], nodeImage, role, memory, maxMemory, hostNetworkPopulator, labels, logger)
5351
},
5452
}
5553

56-
cmd.Flags().StringVarP(&controlPlane, "control-plane", "c", "node1", "Control plane node name")
5754
cmd.Flags().StringVar(&nodeImage, "node-image", config.DefaultNodeImage, "Container image containing base VM images")
5855
cmd.Flags().StringVarP(&role, "role", "r", "worker", "Node role: worker or control-plane")
5956
cmd.Flags().IntVar(&memory, "memory", 0, "VM memory in MB (0 = use role default: 1900 for control-plane, 768 for worker)")
@@ -64,8 +61,6 @@ func newAddCmd() *cobra.Command {
6461
cmd.RegisterFlagCompletionFunc("role", func(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) {
6562
return []string{"worker", "control-plane"}, cobra.ShellCompDirectiveNoFileComp
6663
})
67-
cmd.RegisterFlagCompletionFunc("control-plane", cli.CompleteControlPlaneNodes)
68-
6964
return cmd
7065
}
7166

@@ -89,7 +84,7 @@ func parseLabels(labelFlags []string) (map[string]string, error) {
8984
return labels, nil
9085
}
9186

92-
func runAdd(ctx context.Context, nodeName, controlPlane, nodeImage, role string, memory int, maxMemory int, hostNetworkPopulator bool, labels map[string]string, logger *logrus.Logger) error {
87+
func runAdd(ctx context.Context, nodeName, nodeImage, role string, memory int, maxMemory int, hostNetworkPopulator bool, labels map[string]string, logger *logrus.Logger) error {
9388
// Validate and convert role to boolean
9489
var isControlPlane bool
9590
switch role {
@@ -132,9 +127,9 @@ func runAdd(ctx context.Context, nodeName, controlPlane, nodeImage, role string,
132127
}
133128

134129
// Auto-detect the control-plane node name from container labels
135-
discovered, err := findControlPlaneNode(ctx, podmanClient, clusterName, "")
136-
if err == nil {
137-
controlPlane = discovered
130+
controlPlane, err := findControlPlaneNode(ctx, podmanClient, clusterName, "")
131+
if err != nil {
132+
return fmt.Errorf("auto-detecting control-plane node: %w", err)
138133
}
139134

140135
// Ensure images volume exists for this node image version

0 commit comments

Comments
 (0)