Skip to content

Commit

Permalink
feat(cmd): some commands shouldn't show warning messages
Browse files Browse the repository at this point in the history
Signed-off-by: budimanjojo <budimanjojo@gmail.com>
  • Loading branch information
budimanjojo committed Mar 23, 2024
1 parent dc3f4b5 commit 2284474
Show file tree
Hide file tree
Showing 11 changed files with 26 additions and 20 deletions.
2 changes: 1 addition & 1 deletion cmd/gencommand_apply.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ var gencommandApplyCmd = &cobra.Command{
Short: "Generate talosctl apply-config commands.",
Args: cobra.NoArgs,
Run: func(cmd *cobra.Command, args []string) {
cfg, err := config.LoadAndValidateFromFile(gencommandCfgFile, gencommandEnvFile)
cfg, err := config.LoadAndValidateFromFile(gencommandCfgFile, gencommandEnvFile, false)
if err != nil {
log.Fatalf("failed to parse config file: %s", err)
}
Expand Down
2 changes: 1 addition & 1 deletion cmd/gencommand_bootstrap.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ var gencommandBootstrapCmd = &cobra.Command{
Short: "Generate talosctl bootstrap commands.",
Args: cobra.NoArgs,
Run: func(cmd *cobra.Command, args []string) {
cfg, err := config.LoadAndValidateFromFile(gencommandCfgFile, gencommandEnvFile)
cfg, err := config.LoadAndValidateFromFile(gencommandCfgFile, gencommandEnvFile, false)
if err != nil {
log.Fatalf("failed to parse config file: %s", err)
}
Expand Down
2 changes: 1 addition & 1 deletion cmd/gencommand_kubeconfig.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ var gencommandKubeconfigCmd = &cobra.Command{
Short: "Generate talosctl kubeconfig commands.",
Args: cobra.NoArgs,
Run: func(cmd *cobra.Command, args []string) {
cfg, err := config.LoadAndValidateFromFile(gencommandCfgFile, gencommandEnvFile)
cfg, err := config.LoadAndValidateFromFile(gencommandCfgFile, gencommandEnvFile, false)
if err != nil {
log.Fatalf("failed to parse config file: %s", err)
}
Expand Down
2 changes: 1 addition & 1 deletion cmd/gencommand_reset.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ var gencommandResetCmd = &cobra.Command{
Short: "Generate talosctl reset commands.",
Args: cobra.NoArgs,
Run: func(cmd *cobra.Command, args []string) {
cfg, err := config.LoadAndValidateFromFile(gencommandCfgFile, gencommandEnvFile)
cfg, err := config.LoadAndValidateFromFile(gencommandCfgFile, gencommandEnvFile, false)
if err != nil {
log.Fatalf("failed to parse config file: %s", err)
}
Expand Down
2 changes: 1 addition & 1 deletion cmd/gencommand_upgrade-k8s.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ var gencommandUpgradeK8sCmd = &cobra.Command{
Short: "Generate talosctl upgrade-k8s commands.",
Args: cobra.NoArgs,
Run: func(cmd *cobra.Command, args []string) {
cfg, err := config.LoadAndValidateFromFile(gencommandCfgFile, gencommandEnvFile)
cfg, err := config.LoadAndValidateFromFile(gencommandCfgFile, gencommandEnvFile, false)
if err != nil {
log.Fatalf("failed to parse config file: %s", err)
}
Expand Down
2 changes: 1 addition & 1 deletion cmd/gencommand_upgrade.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ var gencommandUpgradeCmd = &cobra.Command{
Short: "Generate talosctl upgrade commands.",
Args: cobra.NoArgs,
Run: func(cmd *cobra.Command, args []string) {
cfg, err := config.LoadAndValidateFromFile(gencommandCfgFile, gencommandEnvFile)
cfg, err := config.LoadAndValidateFromFile(gencommandCfgFile, gencommandEnvFile, false)
if err != nil {
log.Fatalf("failed to parse config file: %s", err)
}
Expand Down
2 changes: 1 addition & 1 deletion cmd/genconfig.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ var genconfigCmd = &cobra.Command{
Short: "Generate Talos cluster config YAML files",
Args: cobra.NoArgs,
Run: func(cmd *cobra.Command, args []string) {
cfg, err := config.LoadAndValidateFromFile(genconfigCfgFile, genconfigEnvFile)
cfg, err := config.LoadAndValidateFromFile(genconfigCfgFile, genconfigEnvFile, true)
if err != nil {
log.Fatalf("failed to parse config file: %s", err)
}
Expand Down
2 changes: 1 addition & 1 deletion cmd/genurl_installer.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ var genurlInstallerCmd = &cobra.Command{
Short: "Generate URL for Talos installer image",
Run: func(cmd *cobra.Command, args []string) {
if _, err := os.Stat(genurlCfgFile); err == nil {
cfg, err := config.LoadAndValidateFromFile(genurlCfgFile, genurlEnvFile)
cfg, err := config.LoadAndValidateFromFile(genurlCfgFile, genurlEnvFile, false)
if err != nil {
log.Fatalf("failed to parse config file: %s", err)
}
Expand Down
2 changes: 1 addition & 1 deletion cmd/genurl_iso.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ var genurlISOCmd = &cobra.Command{
Short: "Generate URL for Talos ISO image",
Run: func(cmd *cobra.Command, args []string) {
if _, err := os.Stat(genurlCfgFile); err == nil {
cfg, err := config.LoadAndValidateFromFile(genurlCfgFile, genurlEnvFile)
cfg, err := config.LoadAndValidateFromFile(genurlCfgFile, genurlEnvFile, false)
if err != nil {
log.Fatalf("failed to parse config file: %s", err)
}
Expand Down
26 changes: 16 additions & 10 deletions pkg/config/loader.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import (
// LoadAndValidateFromFile takes a file path and yaml encoded env files path, do envsubst
// from envPaths. The resulted TalhelperConfig will be validated before being returned.
// It returns an error, if any.
func LoadAndValidateFromFile(filePath string, envPaths []string) (*TalhelperConfig, error) {
func LoadAndValidateFromFile(filePath string, envPaths []string, showWarns bool) (*TalhelperConfig, error) {
slog.Debug("start loading and validating config file")
slog.Debug(fmt.Sprintf("reading %s", filePath))
cfgByte, err := os.ReadFile(filePath)
Expand Down Expand Up @@ -48,25 +48,31 @@ func LoadAndValidateFromFile(filePath string, envPaths []string) (*TalhelperConf
}

errs, warns := cfg.Validate()
if len(errs) > 0 || len(warns) > 0 {
color.Red("There are issues with your talhelper config file:")
grouped := make(map[string][]string)
for _, v := range errs {
grouped[v.Field] = append(grouped[v.Field], v.Message.Error())
}
grouped := make(map[string][]string)

for _, v := range errs {
grouped[v.Field] = append(grouped[v.Field], v.Message.Error())
}

if showWarns {
for _, v := range warns {
grouped[v.Field] = append(grouped[v.Field], v.Message)
}
}

if len(grouped) > 0 {
color.Red("There are issues with your Talhelper config file:")

for field, list := range grouped {
color.Yellow("field: %q\n", field)
for _, l := range list {
fmt.Printf(l + "\n")
}
}
}

if len(errs) > 0 {
return nil, fmt.Errorf("please fix issues with your config file")
}
if len(errs) > 0 {
return nil, fmt.Errorf("please fix issues with your config file")
}

return cfg, nil
Expand Down
2 changes: 1 addition & 1 deletion pkg/config/loader_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import (
)

func TestLoadAndValidateFromFile(t *testing.T) {
cfg, err := LoadAndValidateFromFile("testdata/talconfig.yaml", []string{"testdata/env1.yaml", "testdata/env2.yml"})
cfg, err := LoadAndValidateFromFile("testdata/talconfig.yaml", []string{"testdata/env1.yaml", "testdata/env2.yml"}, true)
if err != nil {
t.Fatal(err)
}
Expand Down

0 comments on commit 2284474

Please sign in to comment.