add a /scratch emptyDir to ark pods to use for restic cache

Signed-off-by: Steve Kriss <steve@heptio.com>
This commit is contained in:
Steve Kriss
2018-06-20 11:48:09 -07:00
parent 4a7457ecfe
commit 25d3597c9a
10 changed files with 72 additions and 4 deletions
+14
View File
@@ -18,7 +18,9 @@ package restic
import (
"fmt"
"os"
"os/exec"
"path/filepath"
"strings"
)
@@ -48,6 +50,14 @@ func (c *Command) StringSlice() []string {
if c.PasswordFile != "" {
res = append(res, passwordFlag(c.PasswordFile))
}
// If ARK_SCRATCH_DIR is defined, put the restic cache within it. If not,
// allow restic to choose the location. This makes running either in-cluster
// or local (dev) work properly.
if scratch := os.Getenv("ARK_SCRATCH_DIR"); scratch != "" {
res = append(res, cacheDirFlag(filepath.Join(scratch, ".cache", "restic")))
}
res = append(res, c.Args...)
res = append(res, c.ExtraFlags...)
@@ -75,3 +85,7 @@ func repoFlag(repoIdentifier string) string {
func passwordFlag(file string) string {
return fmt.Sprintf("--password-file=%s", file)
}
func cacheDirFlag(dir string) string {
return fmt.Sprintf("--cache-dir=%s", dir)
}