68 lines
1.8 KiB
Go
68 lines
1.8 KiB
Go
package cmd
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/abronan/valkeyrie/store"
|
|
"github.com/ldez/traefik-certs-dumper/dumper/kv"
|
|
"github.com/spf13/cobra"
|
|
)
|
|
|
|
// kvCmd represents the kv command
|
|
var kvCmd = &cobra.Command{
|
|
Use: "kv",
|
|
Short: "TODO",
|
|
Long: `TODO`,
|
|
}
|
|
|
|
func init() {
|
|
rootCmd.AddCommand(kvCmd)
|
|
|
|
kvCmd.PersistentFlags().StringSlice("endpoints", []string{"localhost:8500"}, "Comma separated list of endpoints.")
|
|
kvCmd.PersistentFlags().Int("connection-timeout", 0, "Connection timeout in seconds.")
|
|
kvCmd.PersistentFlags().String("password", "", "Password for connection.")
|
|
kvCmd.PersistentFlags().String("username", "", "Username for connection.")
|
|
|
|
// FIXME review TLS parts
|
|
kvCmd.PersistentFlags().Bool("tls.enable", false, "Enable TLS encryption.")
|
|
kvCmd.PersistentFlags().Bool("tls.insecureskipverify", false, "Trust unverified certificates if TLS is enabled.")
|
|
kvCmd.PersistentFlags().String("tls.ca-cert-file", "", "Root CA file for certificate verification if TLS is enabled.")
|
|
}
|
|
|
|
func getKvConfig(cmd *cobra.Command) (*kv.Config, error) {
|
|
endpoints, err := cmd.Flags().GetStringSlice("endpoints")
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
connectionTimeout, err := cmd.Flags().GetInt("connection-timeout")
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
password, err := cmd.Flags().GetString("password")
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
username, err := cmd.Flags().GetString("username")
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return &kv.Config{
|
|
Endpoints: endpoints,
|
|
Options: &store.Config{
|
|
ClientTLS: nil,
|
|
TLS: nil,
|
|
ConnectionTimeout: time.Duration(connectionTimeout) * time.Second,
|
|
SyncPeriod: 0,
|
|
Bucket: "",
|
|
PersistConnection: false,
|
|
Username: username,
|
|
Password: password,
|
|
Token: "",
|
|
},
|
|
}, nil
|
|
}
|