summaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
authorMatthew Heon <matthew.heon@gmail.com>2018-06-03 14:05:54 -0400
committerAtomic Bot <atomic-devel@projectatomic.io>2018-06-04 17:52:28 +0000
commit6d52ebdd13ad052bbf8bfa9efa4e45cafbce1fc2 (patch)
tree0fd4ccc4320ab2250810b37cacbac9ea03cba195 /cmd
parent3416e9f19466c76a42abfff7e06422a929e3b79b (diff)
downloadpodman-6d52ebdd13ad052bbf8bfa9efa4e45cafbce1fc2.tar.gz
podman-6d52ebdd13ad052bbf8bfa9efa4e45cafbce1fc2.tar.bz2
podman-6d52ebdd13ad052bbf8bfa9efa4e45cafbce1fc2.zip
Add flag to add annotations to a container
Also add annotations from the image the container was created from. Signed-off-by: Matthew Heon <matthew.heon@gmail.com> Closes: #886 Approved by: rhatdan
Diffstat (limited to 'cmd')
-rw-r--r--cmd/podman/common.go4
-rw-r--r--cmd/podman/create.go23
2 files changed, 27 insertions, 0 deletions
diff --git a/cmd/podman/common.go b/cmd/podman/common.go
index 63c41d01c..f38348a65 100644
--- a/cmd/podman/common.go
+++ b/cmd/podman/common.go
@@ -80,6 +80,10 @@ var createFlags = []cli.Flag{
Usage: "Add a custom host-to-IP mapping (host:ip) (default [])",
},
cli.StringSliceFlag{
+ Name: "annotation",
+ Usage: "Add annotations to container (key:value) (default [])",
+ },
+ cli.StringSliceFlag{
Name: "attach, a",
Usage: "Attach to STDIN, STDOUT or STDERR (default [])",
},
diff --git a/cmd/podman/create.go b/cmd/podman/create.go
index 89a8baf6d..35487a83a 100644
--- a/cmd/podman/create.go
+++ b/cmd/podman/create.go
@@ -19,6 +19,7 @@ import (
"github.com/projectatomic/libpod/cmd/podman/libpodruntime"
"github.com/projectatomic/libpod/libpod"
"github.com/projectatomic/libpod/libpod/image"
+ ann "github.com/projectatomic/libpod/pkg/annotations"
"github.com/projectatomic/libpod/pkg/inspect"
cc "github.com/projectatomic/libpod/pkg/spec"
"github.com/projectatomic/libpod/pkg/util"
@@ -377,6 +378,27 @@ func parseCreateOpts(ctx context.Context, c *cli.Context, runtime *libpod.Runtim
}
}
+ // ANNOTATIONS
+ annotations := make(map[string]string)
+ // First, add our default annotations
+ annotations[ann.ContainerType] = "sandbox"
+ annotations[ann.TTY] = "false"
+ if tty {
+ annotations[ann.TTY] = "true"
+ }
+ // Next, add annotations from the image
+ for key, value := range data.Annotations {
+ annotations[key] = value
+ }
+ // Last, add user annotations
+ for _, annotation := range c.StringSlice("annotation") {
+ splitAnnotation := strings.SplitN(annotation, "=", 2)
+ if len(splitAnnotation) < 2 {
+ return nil, errors.Errorf("Annotations must be formatted KEY=VALUE")
+ }
+ annotations[splitAnnotation[0]] = splitAnnotation[1]
+ }
+
// WORKING DIRECTORY
workDir := "/"
if c.IsSet("workdir") {
@@ -463,6 +485,7 @@ func parseCreateOpts(ctx context.Context, c *cli.Context, runtime *libpod.Runtim
config := &cc.CreateConfig{
Runtime: runtime,
+ Annotations: annotations,
BuiltinImgVolumes: ImageVolumes,
ConmonPidFile: c.String("conmon-pidfile"),
ImageVolumeType: c.String("image-volume"),