Merge pull request #201 from magicmemories/fix/helm-secrets-view
fix: use helm secrets view rather than helm secrets dec to decrypt
This commit is contained in:
commit
cc13492623
|
|
@ -281,38 +281,14 @@ func (helm *execer) DecryptSecret(context HelmContext, name string, flags ...str
|
|||
helm.logger.Infof("Decrypting secret %v", absPath)
|
||||
preArgs := context.GetTillerlessArgs(helm)
|
||||
env := context.getTillerlessEnv()
|
||||
out, err := helm.exec(append(append(preArgs, "secrets", "dec", absPath), flags...), env)
|
||||
helm.info(out)
|
||||
secretBytes, err := helm.exec(append(append(preArgs, "secrets", "view", absPath), flags...), env)
|
||||
if err != nil {
|
||||
secret.err = err
|
||||
return "", err
|
||||
}
|
||||
|
||||
// HELM_SECRETS_DEC_SUFFIX is used by the helm-secrets plugin to define the output file
|
||||
decSuffix := os.Getenv("HELM_SECRETS_DEC_SUFFIX")
|
||||
if len(decSuffix) == 0 {
|
||||
decSuffix = ".yaml.dec"
|
||||
}
|
||||
|
||||
// helm secrets replaces the extension with its suffix ONLY when the extension is ".yaml"
|
||||
var decFilename string
|
||||
if strings.HasSuffix(absPath, ".yaml") {
|
||||
decFilename = strings.Replace(absPath, ".yaml", decSuffix, 1)
|
||||
} else {
|
||||
decFilename = absPath + decSuffix
|
||||
}
|
||||
|
||||
secretBytes, err := os.ReadFile(decFilename)
|
||||
if err != nil {
|
||||
secret.err = err
|
||||
return "", err
|
||||
}
|
||||
secret.bytes = secretBytes
|
||||
|
||||
if err := os.Remove(decFilename); err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
} else {
|
||||
// Cache hit
|
||||
helm.logger.Debugf("Found secret in cache %v", absPath)
|
||||
|
|
|
|||
|
|
@ -362,10 +362,7 @@ func Test_DecryptSecret(t *testing.T) {
|
|||
|
||||
_, err := helm.DecryptSecret(HelmContext{}, "secretName")
|
||||
if err != nil {
|
||||
if _, ok := err.(*os.PathError); ok {
|
||||
} else {
|
||||
t.Errorf("Error: %v", err)
|
||||
}
|
||||
t.Errorf("Error: %v", err)
|
||||
}
|
||||
cwd, err := filepath.Abs(".")
|
||||
if err != nil {
|
||||
|
|
@ -376,10 +373,12 @@ func Test_DecryptSecret(t *testing.T) {
|
|||
|
||||
expected := fmt.Sprintf(`Preparing to decrypt secret %v/secretName
|
||||
Decrypting secret %s/secretName
|
||||
exec: helm --kube-context dev secrets dec %s/secretName
|
||||
exec: helm --kube-context dev secrets view %s/secretName
|
||||
Decrypted %s/secretName into %s
|
||||
Preparing to decrypt secret %s/secretName
|
||||
Found secret in cache %s/secretName
|
||||
`, cwd, cwd, cwd, cwd, cwd)
|
||||
Decrypted %s/secretName into %s
|
||||
`, cwd, cwd, cwd, cwd, tmpFilePath, cwd, cwd, cwd, tmpFilePath)
|
||||
if err != nil {
|
||||
if _, ok := err.(*os.PathError); ok {
|
||||
} else {
|
||||
|
|
@ -402,14 +401,24 @@ func Test_DecryptSecretWithGotmpl(t *testing.T) {
|
|||
}
|
||||
|
||||
secretName := "secretName.yaml.gotmpl"
|
||||
_, decryptErr := helm.DecryptSecret(HelmContext{}, secretName)
|
||||
_, err := helm.DecryptSecret(HelmContext{}, secretName)
|
||||
if err != nil {
|
||||
t.Errorf("Error: %v", err)
|
||||
}
|
||||
cwd, err := filepath.Abs(".")
|
||||
if err != nil {
|
||||
t.Errorf("Error: %v", err)
|
||||
}
|
||||
|
||||
expected := fmt.Sprintf(`%s/%s.yaml.dec`, cwd, secretName)
|
||||
if d := cmp.Diff(expected, decryptErr.(*os.PathError).Path); d != "" {
|
||||
expected := fmt.Sprintf(`Preparing to decrypt secret %v/secretName.yaml.gotmpl
|
||||
Decrypting secret %s/secretName.yaml.gotmpl
|
||||
exec: helm --kube-context dev secrets view %s/secretName.yaml.gotmpl
|
||||
Decrypted %s/secretName.yaml.gotmpl into %s
|
||||
`, cwd, cwd, cwd, cwd, tmpFilePath)
|
||||
if err != nil {
|
||||
t.Errorf("Error: %v", err)
|
||||
}
|
||||
if d := cmp.Diff(expected, buffer.String()); d != "" {
|
||||
t.Errorf("helmexec.DecryptSecret(): want (-), got (+):\n%s", d)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue