diff options
author | Matthew Heon <matthew.heon@gmail.com> | 2018-06-03 14:05:54 -0400 |
---|---|---|
committer | Atomic Bot <atomic-devel@projectatomic.io> | 2018-06-04 17:52:28 +0000 |
commit | 6d52ebdd13ad052bbf8bfa9efa4e45cafbce1fc2 (patch) | |
tree | 0fd4ccc4320ab2250810b37cacbac9ea03cba195 /cmd | |
parent | 3416e9f19466c76a42abfff7e06422a929e3b79b (diff) | |
download | podman-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.go | 4 | ||||
-rw-r--r-- | cmd/podman/create.go | 23 |
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"), |