fix: use temporary file for secret file to prevent deletion collision (#250)
Fixes #167
This commit is contained in:
parent
822cc13e72
commit
9b71c64ef2
|
|
@ -2,6 +2,8 @@ package helmexec
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"io"
|
"io"
|
||||||
|
"io/ioutil"
|
||||||
|
"os"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"go.uber.org/zap"
|
"go.uber.org/zap"
|
||||||
|
|
@ -102,7 +104,19 @@ func (helm *execer) DecryptSecret(name string) (string, error) {
|
||||||
helm.logger.Infof("Decrypting secret %v", name)
|
helm.logger.Infof("Decrypting secret %v", name)
|
||||||
out, err := helm.exec(append([]string{"secrets", "dec", name})...)
|
out, err := helm.exec(append([]string{"secrets", "dec", name})...)
|
||||||
helm.write(out)
|
helm.write(out)
|
||||||
return name + ".dec", err
|
|
||||||
|
tmpFile, err := ioutil.TempFile("", "secret")
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
tmpFile.Close()
|
||||||
|
|
||||||
|
err = os.Rename(name+".dec", tmpFile.Name())
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
|
||||||
|
return tmpFile.Name(), err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (helm *execer) DiffRelease(name, chart string, flags ...string) error {
|
func (helm *execer) DiffRelease(name, chart string, flags ...string) error {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue