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