Skip to content

Commit 29ae693

Browse files
authored
Merge pull request #4288 from twz123/remove-converfileparams
Remove convertFileParamsToAbsolute
2 parents 8a7db45 + f7b23bf commit 29ae693

File tree

4 files changed

+26
-43
lines changed

4 files changed

+26
-43
lines changed

cmd/install/controller.go

+4-3
Original file line numberDiff line numberDiff line change
@@ -53,11 +53,12 @@ With the controller subcommand you can setup a single node cluster by running:
5353
return fmt.Errorf("invalid node config: %w", errors.Join(errs...))
5454
}
5555

56-
if err := c.convertFileParamsToAbsolute(); err != nil {
56+
flagsAndVals, err := cmdFlagsToArgs(cmd)
57+
if err != nil {
5758
return err
5859
}
59-
flagsAndVals := []string{"controller"}
60-
flagsAndVals = append(flagsAndVals, cmdFlagsToArgs(cmd)...)
60+
61+
flagsAndVals = append([]string{"controller"}, flagsAndVals...)
6162
if err := c.setup("controller", flagsAndVals, installFlags); err != nil {
6263
return err
6364
}

cmd/install/install.go

-31
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,7 @@ package install
1919
import (
2020
"fmt"
2121
"os"
22-
"path/filepath"
2322

24-
"github.com/k0sproject/k0s/internal/pkg/file"
2523
"github.com/k0sproject/k0s/pkg/config"
2624
"github.com/k0sproject/k0s/pkg/install"
2725

@@ -77,32 +75,3 @@ func (c *command) setup(role string, args []string, installFlags *installFlags)
7775
}
7876
return nil
7977
}
80-
81-
// This command converts the file paths in the command struct to absolute paths.
82-
// For flags passed to service init file, see the [cmdFlagsToArgs] func.
83-
func (c *command) convertFileParamsToAbsolute() (err error) {
84-
// don't convert if cfgFile is empty
85-
86-
if c.K0sVars.StartupConfigPath != "" {
87-
c.K0sVars.StartupConfigPath, err = filepath.Abs(c.K0sVars.StartupConfigPath)
88-
if err != nil {
89-
return err
90-
}
91-
}
92-
if c.K0sVars.DataDir != "" {
93-
c.K0sVars.DataDir, err = filepath.Abs(c.K0sVars.DataDir)
94-
if err != nil {
95-
return err
96-
}
97-
}
98-
if c.TokenFile != "" {
99-
c.TokenFile, err = filepath.Abs(c.TokenFile)
100-
if err != nil {
101-
return err
102-
}
103-
if !file.Exists(c.TokenFile) {
104-
return fmt.Errorf("%s does not exist", c.TokenFile)
105-
}
106-
}
107-
return nil
108-
}

cmd/install/util.go

+18-6
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ limitations under the License.
1717
package install
1818

1919
import (
20+
"errors"
2021
"fmt"
2122
"path/filepath"
2223
"strings"
@@ -26,23 +27,34 @@ import (
2627
"github.com/spf13/pflag"
2728
)
2829

29-
func cmdFlagsToArgs(cmd *cobra.Command) []string {
30+
func cmdFlagsToArgs(cmd *cobra.Command) ([]string, error) {
3031
var flagsAndVals []string
32+
var errs []error
3133
// Use visitor to collect all flags and vals into slice
3234
cmd.Flags().Visit(func(f *pflag.Flag) {
3335
val := f.Value.String()
3436
switch f.Value.Type() {
3537
case "stringSlice", "stringToString":
3638
flagsAndVals = append(flagsAndVals, fmt.Sprintf(`--%s=%s`, f.Name, strings.Trim(val, "[]")))
3739
default:
38-
if f.Name == "env" || f.Name == "force" {
40+
switch f.Name {
41+
case "env", "force":
3942
return
40-
}
41-
if f.Name == "data-dir" || f.Name == "token-file" || f.Name == "config" {
42-
val, _ = filepath.Abs(val)
43+
case "data-dir", "token-file", "config":
44+
if absVal, err := filepath.Abs(val); err != nil {
45+
err = fmt.Errorf("failed to convert --%s=%s to an absolute path: %w", f.Name, val, err)
46+
errs = append(errs, err)
47+
} else {
48+
val = absVal
49+
}
4350
}
4451
flagsAndVals = append(flagsAndVals, fmt.Sprintf("--%s=%s", f.Name, val))
4552
}
4653
})
47-
return flagsAndVals
54+
55+
if err := errors.Join(errs...); err != nil {
56+
return nil, err
57+
}
58+
59+
return flagsAndVals, nil
4860
}

cmd/install/worker.go

+4-3
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,13 @@ Windows flags like "--api-server", "--cidr-range" and "--cluster-dns" will be ig
3636
return err
3737
}
3838
c := (*command)(opts)
39-
if err := c.convertFileParamsToAbsolute(); err != nil {
39+
40+
flagsAndVals, err := cmdFlagsToArgs(cmd)
41+
if err != nil {
4042
return err
4143
}
4244

43-
flagsAndVals := []string{"worker"}
44-
flagsAndVals = append(flagsAndVals, cmdFlagsToArgs(cmd)...)
45+
flagsAndVals = append([]string{"worker"}, flagsAndVals...)
4546
if err := c.setup("worker", flagsAndVals, installFlags); err != nil {
4647
return err
4748
}

0 commit comments

Comments
 (0)