From aec82c4cdf89dd17fe5c122257af1889718a9829 Mon Sep 17 00:00:00 2001 From: Ian Campbell Date: Mon, 27 Nov 2017 12:37:03 +0000 Subject: [PATCH] Split config-related fields of Image into a substruct. Where "config-related" here means "ones you might find in the "org.mobyproject.config" label on an image. By making this new struct an anonymous member of the existing Image struct the Go json parser does the right thing (i.e. inlines into the parent) when parsing a complete image (from a yml assembly) by default. The Go yaml library which we use requires a tag on the anonymous field to achieve the same. Signed-off-by: Ian Campbell --- src/moby/config.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/moby/config.go b/src/moby/config.go index 9d4119cc4..d4f57c8aa 100644 --- a/src/moby/config.go +++ b/src/moby/config.go @@ -62,8 +62,14 @@ type File struct { // Image is the type of an image config type Image struct { - Name string `yaml:"name" json:"name"` - Image string `yaml:"image" json:"image"` + Name string `yaml:"name" json:"name"` + Image string `yaml:"image" json:"image"` + ImageConfig `yaml:",inline"` +} + +// ImageConfig is the configuration part of Image, it is the subset +// which is valid in a "org.mobyproject.config" label on an image. +type ImageConfig struct { Capabilities *[]string `yaml:"capabilities" json:"capabilities,omitempty"` Ambient *[]string `yaml:"ambient" json:"ambient,omitempty"` Mounts *[]specs.Mount `yaml:"mounts" json:"mounts,omitempty"`