make created ssh keys configureable

Signed-off-by: Christian Goll <cgoll@suse.com>
This commit is contained in:
Christian Goll
2024-04-15 12:06:43 +02:00
committed by Jonathon Anderson
parent ad6699c110
commit 21150d2975
6 changed files with 22 additions and 3 deletions

View File

@@ -38,3 +38,9 @@ container mounts:
- source: /etc/resolv.conf
dest: /etc/resolv.conf
readonly: true
ssh:
key types:
- rsa
- dsa
- ecdsa
- ed25519

View File

@@ -28,7 +28,7 @@ func init() {
baseCmd.AddCommand(nfs.GetCommand())
baseCmd.AddCommand(hostfile.GetCommand())
baseCmd.PersistentFlags().BoolVarP(&allFunctions, "all", "a", false, "Configure all services")
baseCmd.Flags().BoolVarP(&allFunctions, "all", "a", false, "Configure all services")
}
// GetRootCommand returns the root cobra.Command for the application.

View File

@@ -2,9 +2,13 @@ package ssh
import (
"github.com/spf13/cobra"
warewulfconf "github.com/warewulf/warewulf/internal/pkg/config"
"github.com/warewulf/warewulf/internal/pkg/configure"
)
func CobraRunE(cmd *cobra.Command, args []string) error {
if len(keyTypes) == 0 {
keyTypes = append(keyTypes, warewulfconf.Get().SSH.KeyTypes...)
}
return configure.SSH(keyTypes...)
}

View File

@@ -1,6 +1,8 @@
package ssh
import "github.com/spf13/cobra"
import (
"github.com/spf13/cobra"
)
var (
baseCmd = &cobra.Command{
@@ -20,6 +22,6 @@ func init() {
// GetRootCommand returns the root cobra.Command for the application.
func GetCommand() *cobra.Command {
baseCmd.PersistentFlags().StringArrayVarP(&keyTypes, "keytypes", "t", []string{"rsa", "dsa", "ecdsa", "ed25519"}, "ssh key types to be created")
baseCmd.PersistentFlags().StringArrayVarP(&keyTypes, "keytypes", "t", []string{}, "ssh key types to be created")
return baseCmd
}

View File

@@ -38,6 +38,7 @@ type RootConf struct {
DHCP *DHCPConf `yaml:"dhcp"`
TFTP *TFTPConf `yaml:"tftp"`
NFS *NFSConf `yaml:"nfs"`
SSH *SSHConf `yaml:"ssh,omitempty"`
MountsContainer []*MountEntry `yaml:"container mounts" default:"[{\"source\": \"/etc/resolv.conf\", \"dest\": \"/etc/resolv.conf\"}]"`
Paths *BuildConfig `yaml:"paths"`
@@ -53,6 +54,7 @@ func New() *RootConf {
cachedConf.DHCP = new(DHCPConf)
cachedConf.TFTP = new(TFTPConf)
cachedConf.NFS = new(NFSConf)
cachedConf.SSH = new(SSHConf)
cachedConf.Paths = new(BuildConfig)
if err := defaults.Set(&cachedConf); err != nil {
panic(err)

View File

@@ -0,0 +1,5 @@
package config
type SSHConf struct {
KeyTypes []string `yaml:"key types" default:"[\"rsa\",\"dsa\",\"ecdsa\",\"ed25519\"]"`
}