From 9b5b2f0c7c772f2a0ba97de41e9173f9a7784b5c Mon Sep 17 00:00:00 2001 From: Andrew Rynhard Date: Wed, 8 May 2019 20:27:50 -0700 Subject: [PATCH] fix(osctl): output talosconfig on generate (#627) Signed-off-by: Andrew Rynhard --- cmd/osctl/cmd/cluster.go | 2 +- cmd/osctl/cmd/config.go | 11 ++++++++++- cmd/osctl/pkg/client/config/config.go | 5 +++++ pkg/userdata/userdata.go | 5 +++++ 4 files changed, 21 insertions(+), 2 deletions(-) diff --git a/cmd/osctl/cmd/cluster.go b/cmd/osctl/cmd/cluster.go index 7e1ff13a0..fa781db8e 100644 --- a/cmd/osctl/cmd/cluster.go +++ b/cmd/osctl/cmd/cluster.go @@ -316,8 +316,8 @@ func saveConfig(input *generate.Input) (err error) { func init() { clusterUpCmd.Flags().StringVar(&image, "image", "docker.io/autonomy/talos:"+version.Tag, "the image to use") + clusterUpCmd.Flags().IntVar(&workers, "workers", 1, "the number of workers to create") clusterCmd.PersistentFlags().StringVar(&clusterName, "name", "talos_default", "the name of the cluster") - clusterCmd.PersistentFlags().IntVar(&workers, "workers", 1, "the number of workers to create") clusterCmd.AddCommand(clusterUpCmd) clusterCmd.AddCommand(clusterDownCmd) rootCmd.AddCommand(clusterCmd) diff --git a/cmd/osctl/cmd/config.go b/cmd/osctl/cmd/config.go index be30c10d5..ae3c653d3 100644 --- a/cmd/osctl/cmd/config.go +++ b/cmd/osctl/cmd/config.go @@ -131,7 +131,8 @@ var configGenerateCmd = &cobra.Command{ types := []generate.Type{generate.TypeInit, generate.TypeControlPlane, generate.TypeJoin} for _, t := range types { - data, err := generate.Userdata(t, input) + var data string + data, err = generate.Userdata(t, input) if err != nil { helpers.Fatalf("failed to generate configuration file for type %s: %v", t.String(), err) } @@ -146,6 +147,14 @@ var configGenerateCmd = &cobra.Command{ helpers.Fatalf("%v", err) } } + + data, err := generate.Talosconfig(input) + if err != nil { + helpers.Fatalf("failed to generate talosconfig: %v", err) + } + if err = ioutil.WriteFile("talosconfig", []byte(data), 0644); err != nil { + helpers.Fatalf("%v", err) + } }, } diff --git a/cmd/osctl/pkg/client/config/config.go b/cmd/osctl/pkg/client/config/config.go index 391a036ec..5163d7af3 100644 --- a/cmd/osctl/pkg/client/config/config.go +++ b/cmd/osctl/pkg/client/config/config.go @@ -7,6 +7,7 @@ package config import ( "io/ioutil" "os" + "path/filepath" yaml "gopkg.in/yaml.v2" ) @@ -61,6 +62,10 @@ func (c *Config) Save(p string) (err error) { return } + if err = os.MkdirAll(filepath.Dir(p), 0700); err != nil { + return err + } + if err = ioutil.WriteFile(p, configBytes, 0600); err != nil { return } diff --git a/pkg/userdata/userdata.go b/pkg/userdata/userdata.go index d06d3815c..6395bb65b 100644 --- a/pkg/userdata/userdata.go +++ b/pkg/userdata/userdata.go @@ -277,6 +277,11 @@ func checkCertKeyPair(certs []certTest) error { continue } + // If it isn't required, there is a chance that it is nil. + if cert.Cert == nil { + continue + } + if cert.Cert.Crt == nil { result = multierror.Append(result, xerrors.Errorf("[%s] %q: %w", cert.Path+".crt", "", ErrRequiredSection)) }