fix(osctl): output talosconfig on generate (#627)

Signed-off-by: Andrew Rynhard <andrew@andrewrynhard.com>
This commit is contained in:
Andrew Rynhard 2019-05-08 20:27:50 -07:00 committed by GitHub
parent 2ea7e055a2
commit 9b5b2f0c7c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 21 additions and 2 deletions

View File

@ -316,8 +316,8 @@ func saveConfig(input *generate.Input) (err error) {
func init() { func init() {
clusterUpCmd.Flags().StringVar(&image, "image", "docker.io/autonomy/talos:"+version.Tag, "the image to use") 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().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(clusterUpCmd)
clusterCmd.AddCommand(clusterDownCmd) clusterCmd.AddCommand(clusterDownCmd)
rootCmd.AddCommand(clusterCmd) rootCmd.AddCommand(clusterCmd)

View File

@ -131,7 +131,8 @@ var configGenerateCmd = &cobra.Command{
types := []generate.Type{generate.TypeInit, generate.TypeControlPlane, generate.TypeJoin} types := []generate.Type{generate.TypeInit, generate.TypeControlPlane, generate.TypeJoin}
for _, t := range types { for _, t := range types {
data, err := generate.Userdata(t, input) var data string
data, err = generate.Userdata(t, input)
if err != nil { if err != nil {
helpers.Fatalf("failed to generate configuration file for type %s: %v", t.String(), err) 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) 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)
}
}, },
} }

View File

@ -7,6 +7,7 @@ package config
import ( import (
"io/ioutil" "io/ioutil"
"os" "os"
"path/filepath"
yaml "gopkg.in/yaml.v2" yaml "gopkg.in/yaml.v2"
) )
@ -61,6 +62,10 @@ func (c *Config) Save(p string) (err error) {
return return
} }
if err = os.MkdirAll(filepath.Dir(p), 0700); err != nil {
return err
}
if err = ioutil.WriteFile(p, configBytes, 0600); err != nil { if err = ioutil.WriteFile(p, configBytes, 0600); err != nil {
return return
} }

View File

@ -277,6 +277,11 @@ func checkCertKeyPair(certs []certTest) error {
continue continue
} }
// If it isn't required, there is a chance that it is nil.
if cert.Cert == nil {
continue
}
if cert.Cert.Crt == nil { if cert.Cert.Crt == nil {
result = multierror.Append(result, xerrors.Errorf("[%s] %q: %w", cert.Path+".crt", "", ErrRequiredSection)) result = multierror.Append(result, xerrors.Errorf("[%s] %q: %w", cert.Path+".crt", "", ErrRequiredSection))
} }