This commit is contained in:
2025-03-21 09:25:39 +01:00
parent d3c9c39f13
commit ad032bb89c

View File

@ -47,24 +47,24 @@ type Secret struct {
RemoteName string RemoteName string
} }
// GeneratePasswords generates passwords. // GeneratePassword generates passwords.
func GeneratePasswords(length uint, charset string) ([]string, error) { func GeneratePassword(length uint, charset string) (string, error) {
passwords, err := passgen.GeneratePasswords( passwords, err := passgen.GeneratePasswords(
1, 1,
length, length,
charset, charset,
) )
if err != nil { if err != nil {
return nil, err return "", err
} }
log.Debugf("generated %s", strings.Join(passwords, ", ")) log.Debugf("generated %s", strings.Join(passwords, ", "))
return passwords, nil return passwords[0], nil
} }
// GeneratePassphrases generates human readable and rememberable passphrases. // GeneratePassphrase generates human readable and rememberable passphrases.
func GeneratePassphrases() ([]string, error) { func GeneratePassphrase() (string, error) {
passphrases, err := passgen.GeneratePassphrases( passphrases, err := passgen.GeneratePassphrases(
1, 1,
passgen.PassphraseWordCountDefault, passgen.PassphraseWordCountDefault,
@ -73,12 +73,12 @@ func GeneratePassphrases() ([]string, error) {
passgen.WordListDefault, passgen.WordListDefault,
) )
if err != nil { if err != nil {
return nil, err return "", err
} }
log.Debugf("generated %s", strings.Join(passphrases, ", ")) log.Debugf("generated %s", strings.Join(passphrases, ", "))
return passphrases, nil return passphrases[0], nil
} }
// ReadSecretsConfig reads secret names/versions from the recipe config. The // ReadSecretsConfig reads secret names/versions from the recipe config. The
@ -195,13 +195,13 @@ func GenerateSecrets(cl *dockerClient.Client, secrets map[string]Secret, server
log.Debugf("attempting to generate and store %s on %s", secret.RemoteName, server) log.Debugf("attempting to generate and store %s on %s", secret.RemoteName, server)
if secret.Length > 0 { if secret.Length > 0 {
passwords, err := GeneratePasswords(uint(secret.Length), secret.Charset) password, err := GeneratePassword(uint(secret.Length), secret.Charset)
if err != nil { if err != nil {
ch <- err ch <- err
return return
} }
if err := client.StoreSecret(cl, secret.RemoteName, passwords[0], server); err != nil { if err := client.StoreSecret(cl, secret.RemoteName, password, server); err != nil {
if strings.Contains(err.Error(), "AlreadyExists") { if strings.Contains(err.Error(), "AlreadyExists") {
log.Warnf("%s already exists", secret.RemoteName) log.Warnf("%s already exists", secret.RemoteName)
ch <- nil ch <- nil
@ -213,15 +213,15 @@ func GenerateSecrets(cl *dockerClient.Client, secrets map[string]Secret, server
mutex.Lock() mutex.Lock()
defer mutex.Unlock() defer mutex.Unlock()
secretsGenerated[secretName] = passwords[0] secretsGenerated[secretName] = password
} else { } else {
passphrases, err := GeneratePassphrases() passphrase, err := GeneratePassphrase()
if err != nil { if err != nil {
ch <- err ch <- err
return return
} }
if err := client.StoreSecret(cl, secret.RemoteName, passphrases[0], server); err != nil { if err := client.StoreSecret(cl, secret.RemoteName, passphrase, server); err != nil {
if strings.Contains(err.Error(), "AlreadyExists") { if strings.Contains(err.Error(), "AlreadyExists") {
log.Warnf("%s already exists", secret.RemoteName) log.Warnf("%s already exists", secret.RemoteName)
ch <- nil ch <- nil
@ -233,7 +233,7 @@ func GenerateSecrets(cl *dockerClient.Client, secrets map[string]Secret, server
mutex.Lock() mutex.Lock()
defer mutex.Unlock() defer mutex.Unlock()
secretsGenerated[secretName] = passphrases[0] secretsGenerated[secretName] = passphrase
} }
ch <- nil ch <- nil
}(n, v) }(n, v)