mirror of
https://github.com/helmfile/helmfile.git
synced 2026-09-30 14:22:56 +02:00
fix: follow up for the relative paths improvement (#262)
Fixes for the bugs that are introduced by #261, that is values.yaml files specified in `values:` have redundant base path in their prefixes, and remaining .dec files after secrets decryption(https://github.com/roboll/helmfile/issues/251#issuecomment-417285854)
This commit is contained in:
+10
-1
@@ -120,7 +120,8 @@ func (helm *execer) DecryptSecret(name string) (string, error) {
|
||||
// os.Rename seems to results in "cross-device link` errors in some cases
|
||||
// Instead of moving, copy it to the destination temp file as a work-around
|
||||
// See https://github.com/roboll/helmfile/issues/251#issuecomment-417166296f
|
||||
decFile, err := os.Open(name + ".dec")
|
||||
decFilename := name + ".dec"
|
||||
decFile, err := os.Open(decFilename)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
@@ -131,6 +132,14 @@ func (helm *execer) DecryptSecret(name string) (string, error) {
|
||||
return "", err
|
||||
}
|
||||
|
||||
if err := decFile.Close(); err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
if err := os.Remove(decFilename); err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
return tmpFile.Name(), err
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package tmpl
|
||||
|
||||
type Context struct {
|
||||
basePath string
|
||||
readFile func(string) ([]byte, error)
|
||||
}
|
||||
|
||||
+2
-7
@@ -2,11 +2,9 @@ package tmpl
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"path/filepath"
|
||||
)
|
||||
|
||||
type templateFileRenderer struct {
|
||||
basePath string
|
||||
ReadFile func(string) ([]byte, error)
|
||||
Context *Context
|
||||
}
|
||||
@@ -17,19 +15,16 @@ type FileRenderer interface {
|
||||
|
||||
func NewFileRenderer(readFile func(filename string) ([]byte, error), basePath string) *templateFileRenderer {
|
||||
return &templateFileRenderer{
|
||||
basePath: basePath,
|
||||
ReadFile: readFile,
|
||||
Context: &Context{
|
||||
basePath: basePath,
|
||||
readFile: readFile,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
func (r *templateFileRenderer) RenderTemplateFileToBuffer(file string) (*bytes.Buffer, error) {
|
||||
// path to the file relative to the helmfile.yaml
|
||||
path := filepath.Join(r.basePath, file)
|
||||
|
||||
content, err := r.ReadFile(path)
|
||||
content, err := r.ReadFile(file)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
+4
-1
@@ -4,6 +4,7 @@ import (
|
||||
"fmt"
|
||||
"gopkg.in/yaml.v2"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
"text/template"
|
||||
)
|
||||
@@ -21,7 +22,9 @@ func (c *Context) createFuncMap() template.FuncMap {
|
||||
}
|
||||
|
||||
func (c *Context) ReadFile(filename string) (string, error) {
|
||||
bytes, err := c.readFile(filename)
|
||||
path := filepath.Join(c.basePath, filename)
|
||||
|
||||
bytes, err := c.readFile(path)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user