aboutsummaryrefslogtreecommitdiff
path: root/cmd/podman/play_kube.go
diff options
context:
space:
mode:
authorOpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com>2019-04-16 08:05:44 -0700
committerGitHub <noreply@github.com>2019-04-16 08:05:44 -0700
commita2e9626d92dedb182a500c3a0f04dcc0499a6d54 (patch)
tree982a71f4f161bbc4d6848636cfa020deaf942293 /cmd/podman/play_kube.go
parent713839cf8393bdb96c739cb745e403cf2a3a1327 (diff)
parent2f804ea9a28d781946313c7f3b6a6c97919f9839 (diff)
downloadpodman-a2e9626d92dedb182a500c3a0f04dcc0499a6d54.tar.gz
podman-a2e9626d92dedb182a500c3a0f04dcc0499a6d54.tar.bz2
podman-a2e9626d92dedb182a500c3a0f04dcc0499a6d54.zip
Merge pull request #2934 from haircommander/kube-file
Add File mounts to play kube
Diffstat (limited to 'cmd/podman/play_kube.go')
-rw-r--r--cmd/podman/play_kube.go18
1 files changed, 18 insertions, 0 deletions
diff --git a/cmd/podman/play_kube.go b/cmd/podman/play_kube.go
index 039d4bff6..d60c873f8 100644
--- a/cmd/podman/play_kube.go
+++ b/cmd/podman/play_kube.go
@@ -28,6 +28,8 @@ import (
const (
// https://kubernetes.io/docs/concepts/storage/volumes/#hostpath
createDirectoryPermission = 0755
+ // https://kubernetes.io/docs/concepts/storage/volumes/#hostpath
+ createFilePermission = 0644
)
var (
@@ -170,7 +172,23 @@ func playKubeYAMLCmd(c *cliconfig.KubePlayValues) error {
return errors.Wrapf(err, "Error giving %s a label", hostPath.Path)
}
break
+ case v1.HostPathFileOrCreate:
+ if _, err := os.Stat(hostPath.Path); os.IsNotExist(err) {
+ f, err := os.OpenFile(hostPath.Path, os.O_RDONLY|os.O_CREATE, createFilePermission)
+ if err != nil {
+ return errors.Errorf("Error creating HostPath %s at %s", volume.Name, hostPath.Path)
+ }
+ if err := f.Close(); err != nil {
+ logrus.Warnf("Error in closing newly created HostPath file: %v", err)
+ }
+ }
+ // unconditionally label a newly created volume as private
+ if err := libpod.LabelVolumePath(hostPath.Path, false); err != nil {
+ return errors.Wrapf(err, "Error giving %s a label", hostPath.Path)
+ }
+ break
case v1.HostPathDirectory:
+ case v1.HostPathFile:
case v1.HostPathUnset:
// do nothing here because we will verify the path exists in validateVolumeHostDir
break