Skip to content

Commit 3d325ea

Browse files
cypharruncom
authored andcommitted
daemon: allow directory creation in /run/secrets
Since FileMode can have the directory bit set, allow a SecretStore implementation to return secrets that are actually directories. This is useful for creating directories and subdirectories of secrets. Backport: moby#31632 Signed-off-by: Aleksa Sarai <asarai@suse.de>
1 parent c1195c2 commit 3d325ea

1 file changed

Lines changed: 8 additions & 2 deletions

File tree

daemon/container_operations_unix.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -195,8 +195,14 @@ func (daemon *Daemon) setupSecretDir(c *container.Container) (setupErr error) {
195195
if secret == nil {
196196
return fmt.Errorf("unable to get secret from secret store")
197197
}
198-
if err := ioutil.WriteFile(fPath, secret.Spec.Data, s.File.Mode); err != nil {
199-
return errors.Wrap(err, "error injecting secret")
198+
if s.File.Mode.IsDir() {
199+
if err := os.Mkdir(fPath, s.File.Mode); err != nil {
200+
return errors.Wrap(err, "error injecting secret dir")
201+
}
202+
} else {
203+
if err := ioutil.WriteFile(fPath, secret.Spec.Data, s.File.Mode); err != nil {
204+
return errors.Wrap(err, "error injecting secret")
205+
}
200206
}
201207

202208
uid, err := strconv.Atoi(s.File.UID)

0 commit comments

Comments
 (0)