diff --git a/vendor/github.com/hashicorp/packer-plugin-docker/post-processor/docker-import/post-processor.go b/vendor/github.com/hashicorp/packer-plugin-docker/post-processor/docker-import/post-processor.go deleted file mode 100644 index 16fcd161a..000000000 --- a/vendor/github.com/hashicorp/packer-plugin-docker/post-processor/docker-import/post-processor.go +++ /dev/null @@ -1,91 +0,0 @@ -//go:generate mapstructure-to-hcl2 -type Config - -package dockerimport - -import ( - "context" - "fmt" - - "github.com/hashicorp/hcl/v2/hcldec" - "github.com/hashicorp/packer-plugin-docker/builder/docker" - "github.com/hashicorp/packer-plugin-sdk/common" - packersdk "github.com/hashicorp/packer-plugin-sdk/packer" - "github.com/hashicorp/packer-plugin-sdk/template/config" - "github.com/hashicorp/packer-plugin-sdk/template/interpolate" -) - -const BuilderId = "packer.post-processor.docker-import" - -type Config struct { - common.PackerConfig `mapstructure:",squash"` - - Repository string `mapstructure:"repository"` - Tag string `mapstructure:"tag"` - Changes []string `mapstructure:"changes"` - - ctx interpolate.Context -} - -type PostProcessor struct { - config Config -} - -func (p *PostProcessor) ConfigSpec() hcldec.ObjectSpec { return p.config.FlatMapstructure().HCL2Spec() } - -func (p *PostProcessor) Configure(raws ...interface{}) error { - err := config.Decode(&p.config, &config.DecodeOpts{ - PluginType: BuilderId, - Interpolate: true, - InterpolateContext: &p.config.ctx, - InterpolateFilter: &interpolate.RenderFilter{ - Exclude: []string{}, - }, - }, raws...) - if err != nil { - return err - } - - return nil - -} - -func (p *PostProcessor) PostProcess(ctx context.Context, ui packersdk.Ui, artifact packersdk.Artifact) (packersdk.Artifact, bool, bool, error) { - switch artifact.BuilderId() { - case docker.BuilderId, "packer.post-processor.artifice": - break - default: - err := fmt.Errorf( - "Unknown artifact type: %s\nCan only import from Docker builder "+ - "and Artifice post-processor artifacts. If you are getting this "+ - "error after having run the docker builder, it may be because you "+ - "set commit: true in your Docker builder, so the image is "+ - "already imported. ", - artifact.BuilderId()) - return nil, false, false, err - } - - importRepo := p.config.Repository - if p.config.Tag != "" { - importRepo += ":" + p.config.Tag - } - - driver := &docker.DockerDriver{Ctx: &p.config.ctx, Ui: ui} - - ui.Message("Importing image: " + artifact.Id()) - ui.Message("Repository: " + importRepo) - id, err := driver.Import(artifact.Files()[0], p.config.Changes, importRepo) - if err != nil { - return nil, false, false, err - } - - ui.Message("Imported ID: " + id) - - // Build the artifact - artifact = &docker.ImportArtifact{ - BuilderIdValue: BuilderId, - Driver: driver, - IdValue: importRepo, - } - - return artifact, false, false, nil -} diff --git a/vendor/github.com/hashicorp/packer-plugin-docker/post-processor/docker-import/post-processor.hcl2spec.go b/vendor/github.com/hashicorp/packer-plugin-docker/post-processor/docker-import/post-processor.hcl2spec.go deleted file mode 100644 index 02d0f0e13..000000000 --- a/vendor/github.com/hashicorp/packer-plugin-docker/post-processor/docker-import/post-processor.hcl2spec.go +++ /dev/null @@ -1,51 +0,0 @@ -// Code generated by "mapstructure-to-hcl2 -type Config"; DO NOT EDIT. - -package dockerimport - -import ( - "github.com/hashicorp/hcl/v2/hcldec" - "github.com/zclconf/go-cty/cty" -) - -// FlatConfig is an auto-generated flat version of Config. -// Where the contents of a field with a `mapstructure:,squash` tag are bubbled up. -type FlatConfig struct { - PackerBuildName *string `mapstructure:"packer_build_name" cty:"packer_build_name" hcl:"packer_build_name"` - PackerBuilderType *string `mapstructure:"packer_builder_type" cty:"packer_builder_type" hcl:"packer_builder_type"` - PackerCoreVersion *string `mapstructure:"packer_core_version" cty:"packer_core_version" hcl:"packer_core_version"` - PackerDebug *bool `mapstructure:"packer_debug" cty:"packer_debug" hcl:"packer_debug"` - PackerForce *bool `mapstructure:"packer_force" cty:"packer_force" hcl:"packer_force"` - PackerOnError *string `mapstructure:"packer_on_error" cty:"packer_on_error" hcl:"packer_on_error"` - PackerUserVars map[string]string `mapstructure:"packer_user_variables" cty:"packer_user_variables" hcl:"packer_user_variables"` - PackerSensitiveVars []string `mapstructure:"packer_sensitive_variables" cty:"packer_sensitive_variables" hcl:"packer_sensitive_variables"` - Repository *string `mapstructure:"repository" cty:"repository" hcl:"repository"` - Tag *string `mapstructure:"tag" cty:"tag" hcl:"tag"` - Changes []string `mapstructure:"changes" cty:"changes" hcl:"changes"` -} - -// FlatMapstructure returns a new FlatConfig. -// FlatConfig is an auto-generated flat version of Config. -// Where the contents a fields with a `mapstructure:,squash` tag are bubbled up. -func (*Config) FlatMapstructure() interface{ HCL2Spec() map[string]hcldec.Spec } { - return new(FlatConfig) -} - -// HCL2Spec returns the hcl spec of a Config. -// This spec is used by HCL to read the fields of Config. -// The decoded values from this spec will then be applied to a FlatConfig. -func (*FlatConfig) HCL2Spec() map[string]hcldec.Spec { - s := map[string]hcldec.Spec{ - "packer_build_name": &hcldec.AttrSpec{Name: "packer_build_name", Type: cty.String, Required: false}, - "packer_builder_type": &hcldec.AttrSpec{Name: "packer_builder_type", Type: cty.String, Required: false}, - "packer_core_version": &hcldec.AttrSpec{Name: "packer_core_version", Type: cty.String, Required: false}, - "packer_debug": &hcldec.AttrSpec{Name: "packer_debug", Type: cty.Bool, Required: false}, - "packer_force": &hcldec.AttrSpec{Name: "packer_force", Type: cty.Bool, Required: false}, - "packer_on_error": &hcldec.AttrSpec{Name: "packer_on_error", Type: cty.String, Required: false}, - "packer_user_variables": &hcldec.AttrSpec{Name: "packer_user_variables", Type: cty.Map(cty.String), Required: false}, - "packer_sensitive_variables": &hcldec.AttrSpec{Name: "packer_sensitive_variables", Type: cty.List(cty.String), Required: false}, - "repository": &hcldec.AttrSpec{Name: "repository", Type: cty.String, Required: false}, - "tag": &hcldec.AttrSpec{Name: "tag", Type: cty.String, Required: false}, - "changes": &hcldec.AttrSpec{Name: "changes", Type: cty.List(cty.String), Required: false}, - } - return s -} diff --git a/vendor/github.com/hashicorp/packer-plugin-docker/post-processor/docker-push/post-processor.go b/vendor/github.com/hashicorp/packer-plugin-docker/post-processor/docker-push/post-processor.go deleted file mode 100644 index fee6db49e..000000000 --- a/vendor/github.com/hashicorp/packer-plugin-docker/post-processor/docker-push/post-processor.go +++ /dev/null @@ -1,138 +0,0 @@ -//go:generate mapstructure-to-hcl2 -type Config - -package dockerpush - -import ( - "context" - "fmt" - - "github.com/hashicorp/hcl/v2/hcldec" - "github.com/hashicorp/packer-plugin-docker/builder/docker" - dockerimport "github.com/hashicorp/packer-plugin-docker/post-processor/docker-import" - dockertag "github.com/hashicorp/packer-plugin-docker/post-processor/docker-tag" - "github.com/hashicorp/packer-plugin-sdk/common" - packersdk "github.com/hashicorp/packer-plugin-sdk/packer" - "github.com/hashicorp/packer-plugin-sdk/template/config" - "github.com/hashicorp/packer-plugin-sdk/template/interpolate" -) - -const BuilderIdImport = "packer.post-processor.docker-import" - -type Config struct { - common.PackerConfig `mapstructure:",squash"` - - Login bool - LoginUsername string `mapstructure:"login_username"` - LoginPassword string `mapstructure:"login_password"` - LoginServer string `mapstructure:"login_server"` - EcrLogin bool `mapstructure:"ecr_login"` - docker.AwsAccessConfig `mapstructure:",squash"` - - ctx interpolate.Context -} - -type PostProcessor struct { - Driver docker.Driver - - config Config -} - -func (p *PostProcessor) ConfigSpec() hcldec.ObjectSpec { return p.config.FlatMapstructure().HCL2Spec() } - -func (p *PostProcessor) Configure(raws ...interface{}) error { - err := config.Decode(&p.config, &config.DecodeOpts{ - PluginType: BuilderIdImport, - Interpolate: true, - InterpolateContext: &p.config.ctx, - InterpolateFilter: &interpolate.RenderFilter{ - Exclude: []string{}, - }, - }, raws...) - if err != nil { - return err - } - - if p.config.EcrLogin && p.config.LoginServer == "" { - return fmt.Errorf("ECR login requires login server to be provided.") - } - return nil -} - -func (p *PostProcessor) PostProcess(ctx context.Context, ui packersdk.Ui, artifact packersdk.Artifact) (packersdk.Artifact, bool, bool, error) { - if artifact.BuilderId() != dockerimport.BuilderId && - artifact.BuilderId() != dockertag.BuilderId { - err := fmt.Errorf( - "Unknown artifact type: %s\nCan only import from docker-import and docker-tag artifacts.", - artifact.BuilderId()) - return nil, false, false, err - } - - driver := p.Driver - if driver == nil { - // If no driver is set, then we use the real driver - driver = &docker.DockerDriver{Ctx: &p.config.ctx, Ui: ui} - } - - if p.config.EcrLogin { - ui.Message("Fetching ECR credentials...") - - username, password, err := p.config.EcrGetLogin(p.config.LoginServer) - if err != nil { - return nil, false, false, err - } - - p.config.LoginUsername = username - p.config.LoginPassword = password - } - - if p.config.Login || p.config.EcrLogin { - ui.Message("Logging in...") - err := driver.Login( - p.config.LoginServer, - p.config.LoginUsername, - p.config.LoginPassword) - if err != nil { - return nil, false, false, fmt.Errorf( - "Error logging in to Docker: %s", err) - } - - defer func() { - ui.Message("Logging out...") - if err := driver.Logout(p.config.LoginServer); err != nil { - ui.Error(fmt.Sprintf("Error logging out: %s", err)) - } - }() - } - - var tags []string - switch t := artifact.State("docker_tags").(type) { - case []string: - tags = t - case []interface{}: - for _, name := range t { - if n, ok := name.(string); ok { - tags = append(tags, n) - } - } - } - - names := []string{artifact.Id()} - names = append(names, tags...) - - // Get the name. - for _, name := range names { - ui.Message("Pushing: " + name) - if err := driver.Push(name); err != nil { - return nil, false, false, err - } - } - - artifact = &docker.ImportArtifact{ - BuilderIdValue: BuilderIdImport, - Driver: driver, - IdValue: names[0], - StateData: map[string]interface{}{"docker_tags": tags}, - } - - return artifact, true, false, nil -} diff --git a/vendor/github.com/hashicorp/packer-plugin-docker/post-processor/docker-push/post-processor.hcl2spec.go b/vendor/github.com/hashicorp/packer-plugin-docker/post-processor/docker-push/post-processor.hcl2spec.go deleted file mode 100644 index 9ff9fd0c3..000000000 --- a/vendor/github.com/hashicorp/packer-plugin-docker/post-processor/docker-push/post-processor.hcl2spec.go +++ /dev/null @@ -1,63 +0,0 @@ -// Code generated by "mapstructure-to-hcl2 -type Config"; DO NOT EDIT. - -package dockerpush - -import ( - "github.com/hashicorp/hcl/v2/hcldec" - "github.com/zclconf/go-cty/cty" -) - -// FlatConfig is an auto-generated flat version of Config. -// Where the contents of a field with a `mapstructure:,squash` tag are bubbled up. -type FlatConfig struct { - PackerBuildName *string `mapstructure:"packer_build_name" cty:"packer_build_name" hcl:"packer_build_name"` - PackerBuilderType *string `mapstructure:"packer_builder_type" cty:"packer_builder_type" hcl:"packer_builder_type"` - PackerCoreVersion *string `mapstructure:"packer_core_version" cty:"packer_core_version" hcl:"packer_core_version"` - PackerDebug *bool `mapstructure:"packer_debug" cty:"packer_debug" hcl:"packer_debug"` - PackerForce *bool `mapstructure:"packer_force" cty:"packer_force" hcl:"packer_force"` - PackerOnError *string `mapstructure:"packer_on_error" cty:"packer_on_error" hcl:"packer_on_error"` - PackerUserVars map[string]string `mapstructure:"packer_user_variables" cty:"packer_user_variables" hcl:"packer_user_variables"` - PackerSensitiveVars []string `mapstructure:"packer_sensitive_variables" cty:"packer_sensitive_variables" hcl:"packer_sensitive_variables"` - Login *bool `cty:"login" hcl:"login"` - LoginUsername *string `mapstructure:"login_username" cty:"login_username" hcl:"login_username"` - LoginPassword *string `mapstructure:"login_password" cty:"login_password" hcl:"login_password"` - LoginServer *string `mapstructure:"login_server" cty:"login_server" hcl:"login_server"` - EcrLogin *bool `mapstructure:"ecr_login" cty:"ecr_login" hcl:"ecr_login"` - AccessKey *string `mapstructure:"aws_access_key" required:"false" cty:"aws_access_key" hcl:"aws_access_key"` - SecretKey *string `mapstructure:"aws_secret_key" required:"false" cty:"aws_secret_key" hcl:"aws_secret_key"` - Token *string `mapstructure:"aws_token" required:"false" cty:"aws_token" hcl:"aws_token"` - Profile *string `mapstructure:"aws_profile" required:"false" cty:"aws_profile" hcl:"aws_profile"` -} - -// FlatMapstructure returns a new FlatConfig. -// FlatConfig is an auto-generated flat version of Config. -// Where the contents a fields with a `mapstructure:,squash` tag are bubbled up. -func (*Config) FlatMapstructure() interface{ HCL2Spec() map[string]hcldec.Spec } { - return new(FlatConfig) -} - -// HCL2Spec returns the hcl spec of a Config. -// This spec is used by HCL to read the fields of Config. -// The decoded values from this spec will then be applied to a FlatConfig. -func (*FlatConfig) HCL2Spec() map[string]hcldec.Spec { - s := map[string]hcldec.Spec{ - "packer_build_name": &hcldec.AttrSpec{Name: "packer_build_name", Type: cty.String, Required: false}, - "packer_builder_type": &hcldec.AttrSpec{Name: "packer_builder_type", Type: cty.String, Required: false}, - "packer_core_version": &hcldec.AttrSpec{Name: "packer_core_version", Type: cty.String, Required: false}, - "packer_debug": &hcldec.AttrSpec{Name: "packer_debug", Type: cty.Bool, Required: false}, - "packer_force": &hcldec.AttrSpec{Name: "packer_force", Type: cty.Bool, Required: false}, - "packer_on_error": &hcldec.AttrSpec{Name: "packer_on_error", Type: cty.String, Required: false}, - "packer_user_variables": &hcldec.AttrSpec{Name: "packer_user_variables", Type: cty.Map(cty.String), Required: false}, - "packer_sensitive_variables": &hcldec.AttrSpec{Name: "packer_sensitive_variables", Type: cty.List(cty.String), Required: false}, - "login": &hcldec.AttrSpec{Name: "login", Type: cty.Bool, Required: false}, - "login_username": &hcldec.AttrSpec{Name: "login_username", Type: cty.String, Required: false}, - "login_password": &hcldec.AttrSpec{Name: "login_password", Type: cty.String, Required: false}, - "login_server": &hcldec.AttrSpec{Name: "login_server", Type: cty.String, Required: false}, - "ecr_login": &hcldec.AttrSpec{Name: "ecr_login", Type: cty.Bool, Required: false}, - "aws_access_key": &hcldec.AttrSpec{Name: "aws_access_key", Type: cty.String, Required: false}, - "aws_secret_key": &hcldec.AttrSpec{Name: "aws_secret_key", Type: cty.String, Required: false}, - "aws_token": &hcldec.AttrSpec{Name: "aws_token", Type: cty.String, Required: false}, - "aws_profile": &hcldec.AttrSpec{Name: "aws_profile", Type: cty.String, Required: false}, - } - return s -} diff --git a/vendor/github.com/hashicorp/packer-plugin-docker/post-processor/docker-save/post-processor.go b/vendor/github.com/hashicorp/packer-plugin-docker/post-processor/docker-save/post-processor.go deleted file mode 100644 index a540f4d96..000000000 --- a/vendor/github.com/hashicorp/packer-plugin-docker/post-processor/docker-save/post-processor.go +++ /dev/null @@ -1,92 +0,0 @@ -//go:generate mapstructure-to-hcl2 -type Config - -package dockersave - -import ( - "context" - "fmt" - "os" - - "github.com/hashicorp/hcl/v2/hcldec" - "github.com/hashicorp/packer-plugin-docker/builder/docker" - dockerimport "github.com/hashicorp/packer-plugin-docker/post-processor/docker-import" - dockertag "github.com/hashicorp/packer-plugin-docker/post-processor/docker-tag" - "github.com/hashicorp/packer-plugin-sdk/common" - packersdk "github.com/hashicorp/packer-plugin-sdk/packer" - "github.com/hashicorp/packer-plugin-sdk/template/config" - "github.com/hashicorp/packer-plugin-sdk/template/interpolate" -) - -const BuilderId = "packer.post-processor.docker-save" - -type Config struct { - common.PackerConfig `mapstructure:",squash"` - - Path string `mapstructure:"path"` - - ctx interpolate.Context -} - -type PostProcessor struct { - Driver docker.Driver - - config Config -} - -func (p *PostProcessor) ConfigSpec() hcldec.ObjectSpec { return p.config.FlatMapstructure().HCL2Spec() } - -func (p *PostProcessor) Configure(raws ...interface{}) error { - err := config.Decode(&p.config, &config.DecodeOpts{ - PluginType: BuilderId, - Interpolate: true, - InterpolateContext: &p.config.ctx, - InterpolateFilter: &interpolate.RenderFilter{ - Exclude: []string{}, - }, - }, raws...) - if err != nil { - return err - } - - return nil - -} - -func (p *PostProcessor) PostProcess(ctx context.Context, ui packersdk.Ui, artifact packersdk.Artifact) (packersdk.Artifact, bool, bool, error) { - if artifact.BuilderId() != dockerimport.BuilderId && - artifact.BuilderId() != dockertag.BuilderId { - err := fmt.Errorf( - "Unknown artifact type: %s\nCan only save Docker builder artifacts.", - artifact.BuilderId()) - return nil, false, false, err - } - - path := p.config.Path - - // Open the file that we're going to write to - f, err := os.Create(path) - if err != nil { - err := fmt.Errorf("Error creating output file: %s", err) - return nil, false, false, err - } - - driver := p.Driver - if driver == nil { - // If no driver is set, then we use the real driver - driver = &docker.DockerDriver{Ctx: &p.config.ctx, Ui: ui} - } - - ui.Message("Saving image: " + artifact.Id()) - - if err := driver.SaveImage(artifact.Id(), f); err != nil { - f.Close() - os.Remove(f.Name()) - - return nil, false, false, err - } - - f.Close() - ui.Message("Saved to: " + path) - - return artifact, true, false, nil -} diff --git a/vendor/github.com/hashicorp/packer-plugin-docker/post-processor/docker-save/post-processor.hcl2spec.go b/vendor/github.com/hashicorp/packer-plugin-docker/post-processor/docker-save/post-processor.hcl2spec.go deleted file mode 100644 index 5abf3e78c..000000000 --- a/vendor/github.com/hashicorp/packer-plugin-docker/post-processor/docker-save/post-processor.hcl2spec.go +++ /dev/null @@ -1,47 +0,0 @@ -// Code generated by "mapstructure-to-hcl2 -type Config"; DO NOT EDIT. - -package dockersave - -import ( - "github.com/hashicorp/hcl/v2/hcldec" - "github.com/zclconf/go-cty/cty" -) - -// FlatConfig is an auto-generated flat version of Config. -// Where the contents of a field with a `mapstructure:,squash` tag are bubbled up. -type FlatConfig struct { - PackerBuildName *string `mapstructure:"packer_build_name" cty:"packer_build_name" hcl:"packer_build_name"` - PackerBuilderType *string `mapstructure:"packer_builder_type" cty:"packer_builder_type" hcl:"packer_builder_type"` - PackerCoreVersion *string `mapstructure:"packer_core_version" cty:"packer_core_version" hcl:"packer_core_version"` - PackerDebug *bool `mapstructure:"packer_debug" cty:"packer_debug" hcl:"packer_debug"` - PackerForce *bool `mapstructure:"packer_force" cty:"packer_force" hcl:"packer_force"` - PackerOnError *string `mapstructure:"packer_on_error" cty:"packer_on_error" hcl:"packer_on_error"` - PackerUserVars map[string]string `mapstructure:"packer_user_variables" cty:"packer_user_variables" hcl:"packer_user_variables"` - PackerSensitiveVars []string `mapstructure:"packer_sensitive_variables" cty:"packer_sensitive_variables" hcl:"packer_sensitive_variables"` - Path *string `mapstructure:"path" cty:"path" hcl:"path"` -} - -// FlatMapstructure returns a new FlatConfig. -// FlatConfig is an auto-generated flat version of Config. -// Where the contents a fields with a `mapstructure:,squash` tag are bubbled up. -func (*Config) FlatMapstructure() interface{ HCL2Spec() map[string]hcldec.Spec } { - return new(FlatConfig) -} - -// HCL2Spec returns the hcl spec of a Config. -// This spec is used by HCL to read the fields of Config. -// The decoded values from this spec will then be applied to a FlatConfig. -func (*FlatConfig) HCL2Spec() map[string]hcldec.Spec { - s := map[string]hcldec.Spec{ - "packer_build_name": &hcldec.AttrSpec{Name: "packer_build_name", Type: cty.String, Required: false}, - "packer_builder_type": &hcldec.AttrSpec{Name: "packer_builder_type", Type: cty.String, Required: false}, - "packer_core_version": &hcldec.AttrSpec{Name: "packer_core_version", Type: cty.String, Required: false}, - "packer_debug": &hcldec.AttrSpec{Name: "packer_debug", Type: cty.Bool, Required: false}, - "packer_force": &hcldec.AttrSpec{Name: "packer_force", Type: cty.Bool, Required: false}, - "packer_on_error": &hcldec.AttrSpec{Name: "packer_on_error", Type: cty.String, Required: false}, - "packer_user_variables": &hcldec.AttrSpec{Name: "packer_user_variables", Type: cty.Map(cty.String), Required: false}, - "packer_sensitive_variables": &hcldec.AttrSpec{Name: "packer_sensitive_variables", Type: cty.List(cty.String), Required: false}, - "path": &hcldec.AttrSpec{Name: "path", Type: cty.String, Required: false}, - } - return s -} diff --git a/vendor/github.com/hashicorp/packer-plugin-docker/post-processor/docker-tag/post-processor.go b/vendor/github.com/hashicorp/packer-plugin-docker/post-processor/docker-tag/post-processor.go deleted file mode 100644 index 14f1d5683..000000000 --- a/vendor/github.com/hashicorp/packer-plugin-docker/post-processor/docker-tag/post-processor.go +++ /dev/null @@ -1,122 +0,0 @@ -//go:generate mapstructure-to-hcl2 -type Config - -package dockertag - -import ( - "context" - "fmt" - - "github.com/hashicorp/hcl/v2/hcldec" - "github.com/hashicorp/packer-plugin-docker/builder/docker" - dockerimport "github.com/hashicorp/packer-plugin-docker/post-processor/docker-import" - "github.com/hashicorp/packer-plugin-sdk/common" - packersdk "github.com/hashicorp/packer-plugin-sdk/packer" - "github.com/hashicorp/packer-plugin-sdk/template/config" - "github.com/hashicorp/packer-plugin-sdk/template/interpolate" -) - -const BuilderId = "packer.post-processor.docker-tag" - -type Config struct { - common.PackerConfig `mapstructure:",squash"` - - Repository string `mapstructure:"repository"` - // Kept for backwards compatability - Tag []string `mapstructure:"tag"` - Tags []string `mapstructure:"tags"` - Force bool - - ctx interpolate.Context -} - -type PostProcessor struct { - Driver docker.Driver - - config Config -} - -func (p *PostProcessor) ConfigSpec() hcldec.ObjectSpec { return p.config.FlatMapstructure().HCL2Spec() } - -func (p *PostProcessor) Configure(raws ...interface{}) error { - err := config.Decode(&p.config, &config.DecodeOpts{ - PluginType: BuilderId, - Interpolate: true, - InterpolateContext: &p.config.ctx, - InterpolateFilter: &interpolate.RenderFilter{ - Exclude: []string{}, - }, - }, raws...) - if err != nil { - return err - } - - // combine Tag and Tags fields - allTags := p.config.Tags - allTags = append(allTags, p.config.Tag...) - - p.config.Tags = allTags - - return nil - -} - -func (p *PostProcessor) PostProcess(ctx context.Context, ui packersdk.Ui, artifact packersdk.Artifact) (packersdk.Artifact, bool, bool, error) { - if len(p.config.Tag) > 0 { - ui.Say("Deprecation warning: \"tag\" option has been replaced with " + - "\"tags\". In future versions of Packer, this configuration may " + - "not work. Please call `packer fix` on your template to update.") - } - - if artifact.BuilderId() != BuilderId && - artifact.BuilderId() != dockerimport.BuilderId { - err := fmt.Errorf( - "Unknown artifact type: %s\nCan only tag from Docker builder artifacts.", - artifact.BuilderId()) - return nil, false, true, err - } - - driver := p.Driver - if driver == nil { - // If no driver is set, then we use the real driver - driver = &docker.DockerDriver{Ctx: &p.config.ctx, Ui: ui} - } - - importRepo := p.config.Repository - var lastTaggedRepo = importRepo - RepoTags := []string{} - - if len(p.config.Tags) > 0 { - for _, tag := range p.config.Tags { - local := importRepo + ":" + tag - ui.Message("Tagging image: " + artifact.Id()) - ui.Message("Repository: " + local) - - err := driver.TagImage(artifact.Id(), local, p.config.Force) - if err != nil { - return nil, false, true, err - } - - RepoTags = append(RepoTags, local) - lastTaggedRepo = local - } - } else { - ui.Message("Tagging image: " + artifact.Id()) - ui.Message("Repository: " + importRepo) - err := driver.TagImage(artifact.Id(), importRepo, p.config.Force) - if err != nil { - return nil, false, true, err - } - } - - // Build the artifact - artifact = &docker.ImportArtifact{ - BuilderIdValue: BuilderId, - Driver: driver, - IdValue: lastTaggedRepo, - StateData: map[string]interface{}{"docker_tags": RepoTags}, - } - - // If we tag an image and then delete it, there was no point in creating the - // tag. Override users to force us to always keep the input artifact. - return artifact, true, true, nil -} diff --git a/vendor/github.com/hashicorp/packer-plugin-docker/post-processor/docker-tag/post-processor.hcl2spec.go b/vendor/github.com/hashicorp/packer-plugin-docker/post-processor/docker-tag/post-processor.hcl2spec.go deleted file mode 100644 index 3f2a092be..000000000 --- a/vendor/github.com/hashicorp/packer-plugin-docker/post-processor/docker-tag/post-processor.hcl2spec.go +++ /dev/null @@ -1,53 +0,0 @@ -// Code generated by "mapstructure-to-hcl2 -type Config"; DO NOT EDIT. - -package dockertag - -import ( - "github.com/hashicorp/hcl/v2/hcldec" - "github.com/zclconf/go-cty/cty" -) - -// FlatConfig is an auto-generated flat version of Config. -// Where the contents of a field with a `mapstructure:,squash` tag are bubbled up. -type FlatConfig struct { - PackerBuildName *string `mapstructure:"packer_build_name" cty:"packer_build_name" hcl:"packer_build_name"` - PackerBuilderType *string `mapstructure:"packer_builder_type" cty:"packer_builder_type" hcl:"packer_builder_type"` - PackerCoreVersion *string `mapstructure:"packer_core_version" cty:"packer_core_version" hcl:"packer_core_version"` - PackerDebug *bool `mapstructure:"packer_debug" cty:"packer_debug" hcl:"packer_debug"` - PackerForce *bool `mapstructure:"packer_force" cty:"packer_force" hcl:"packer_force"` - PackerOnError *string `mapstructure:"packer_on_error" cty:"packer_on_error" hcl:"packer_on_error"` - PackerUserVars map[string]string `mapstructure:"packer_user_variables" cty:"packer_user_variables" hcl:"packer_user_variables"` - PackerSensitiveVars []string `mapstructure:"packer_sensitive_variables" cty:"packer_sensitive_variables" hcl:"packer_sensitive_variables"` - Repository *string `mapstructure:"repository" cty:"repository" hcl:"repository"` - Tag []string `mapstructure:"tag" cty:"tag" hcl:"tag"` - Tags []string `mapstructure:"tags" cty:"tags" hcl:"tags"` - Force *bool `cty:"force" hcl:"force"` -} - -// FlatMapstructure returns a new FlatConfig. -// FlatConfig is an auto-generated flat version of Config. -// Where the contents a fields with a `mapstructure:,squash` tag are bubbled up. -func (*Config) FlatMapstructure() interface{ HCL2Spec() map[string]hcldec.Spec } { - return new(FlatConfig) -} - -// HCL2Spec returns the hcl spec of a Config. -// This spec is used by HCL to read the fields of Config. -// The decoded values from this spec will then be applied to a FlatConfig. -func (*FlatConfig) HCL2Spec() map[string]hcldec.Spec { - s := map[string]hcldec.Spec{ - "packer_build_name": &hcldec.AttrSpec{Name: "packer_build_name", Type: cty.String, Required: false}, - "packer_builder_type": &hcldec.AttrSpec{Name: "packer_builder_type", Type: cty.String, Required: false}, - "packer_core_version": &hcldec.AttrSpec{Name: "packer_core_version", Type: cty.String, Required: false}, - "packer_debug": &hcldec.AttrSpec{Name: "packer_debug", Type: cty.Bool, Required: false}, - "packer_force": &hcldec.AttrSpec{Name: "packer_force", Type: cty.Bool, Required: false}, - "packer_on_error": &hcldec.AttrSpec{Name: "packer_on_error", Type: cty.String, Required: false}, - "packer_user_variables": &hcldec.AttrSpec{Name: "packer_user_variables", Type: cty.Map(cty.String), Required: false}, - "packer_sensitive_variables": &hcldec.AttrSpec{Name: "packer_sensitive_variables", Type: cty.List(cty.String), Required: false}, - "repository": &hcldec.AttrSpec{Name: "repository", Type: cty.String, Required: false}, - "tag": &hcldec.AttrSpec{Name: "tag", Type: cty.List(cty.String), Required: false}, - "tags": &hcldec.AttrSpec{Name: "tags", Type: cty.List(cty.String), Required: false}, - "force": &hcldec.AttrSpec{Name: "force", Type: cty.Bool, Required: false}, - } - return s -} diff --git a/vendor/modules.txt b/vendor/modules.txt index 4065c44a5..e3d447884 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -415,10 +415,6 @@ github.com/hashicorp/hcl/v2/hclwrite github.com/hashicorp/hcl/v2/json # github.com/hashicorp/packer-plugin-docker v0.0.2 github.com/hashicorp/packer-plugin-docker/builder/docker -github.com/hashicorp/packer-plugin-docker/post-processor/docker-import -github.com/hashicorp/packer-plugin-docker/post-processor/docker-push -github.com/hashicorp/packer-plugin-docker/post-processor/docker-save -github.com/hashicorp/packer-plugin-docker/post-processor/docker-tag # github.com/hashicorp/packer-plugin-sdk v0.0.14 ## explicit github.com/hashicorp/packer-plugin-sdk/acctest