diff options
Diffstat (limited to 'pkg/bindings')
-rw-r--r-- | pkg/bindings/kube/kube.go | 96 | ||||
-rw-r--r-- | pkg/bindings/kube/types.go (renamed from pkg/bindings/play/types.go) | 8 | ||||
-rw-r--r-- | pkg/bindings/kube/types_play_options.go (renamed from pkg/bindings/play/types_kube_options.go) | 78 | ||||
-rw-r--r-- | pkg/bindings/play/play.go | 88 |
4 files changed, 148 insertions, 122 deletions
diff --git a/pkg/bindings/kube/kube.go b/pkg/bindings/kube/kube.go new file mode 100644 index 000000000..b9cc0efa7 --- /dev/null +++ b/pkg/bindings/kube/kube.go @@ -0,0 +1,96 @@ +package kube + +import ( + "context" + "io" + "net/http" + "os" + "strconv" + + "github.com/containers/image/v5/types" + "github.com/containers/podman/v4/pkg/auth" + "github.com/containers/podman/v4/pkg/bindings" + "github.com/containers/podman/v4/pkg/domain/entities" + "github.com/sirupsen/logrus" +) + +func Play(ctx context.Context, path string, options *PlayOptions) (*entities.KubePlayReport, error) { + f, err := os.Open(path) + if err != nil { + return nil, err + } + defer f.Close() + + return PlayWithBody(ctx, f, options) +} + +func PlayWithBody(ctx context.Context, body io.Reader, options *PlayOptions) (*entities.KubePlayReport, error) { + var report entities.KubePlayReport + if options == nil { + options = new(PlayOptions) + } + + conn, err := bindings.GetClient(ctx) + if err != nil { + return nil, err + } + + params, err := options.ToParams() + if err != nil { + return nil, err + } + if options.SkipTLSVerify != nil { + params.Set("tlsVerify", strconv.FormatBool(options.GetSkipTLSVerify())) + } + if options.Start != nil { + params.Set("start", strconv.FormatBool(options.GetStart())) + } + + header, err := auth.MakeXRegistryAuthHeader(&types.SystemContext{AuthFilePath: options.GetAuthfile()}, options.GetUsername(), options.GetPassword()) + if err != nil { + return nil, err + } + + response, err := conn.DoRequest(ctx, body, http.MethodPost, "/kube/play", params, header) + if err != nil { + return nil, err + } + defer response.Body.Close() + + if err := response.Process(&report); err != nil { + return nil, err + } + + return &report, nil +} + +func Down(ctx context.Context, path string) (*entities.KubePlayReport, error) { + f, err := os.Open(path) + if err != nil { + return nil, err + } + defer func() { + if err := f.Close(); err != nil { + logrus.Warn(err) + } + }() + + return DownWithBody(ctx, f) +} + +func DownWithBody(ctx context.Context, body io.Reader) (*entities.KubePlayReport, error) { + var report entities.KubePlayReport + conn, err := bindings.GetClient(ctx) + if err != nil { + return nil, err + } + + response, err := conn.DoRequest(ctx, body, http.MethodDelete, "/kube/play", nil, nil) + if err != nil { + return nil, err + } + if err := response.Process(&report); err != nil { + return nil, err + } + return &report, nil +} diff --git a/pkg/bindings/play/types.go b/pkg/bindings/kube/types.go index 5aaa87b8c..783d1912a 100644 --- a/pkg/bindings/play/types.go +++ b/pkg/bindings/kube/types.go @@ -1,12 +1,12 @@ -package play +package kube import ( "net" ) -//go:generate go run ../generator/generator.go KubeOptions -// KubeOptions are optional options for replaying kube YAML files -type KubeOptions struct { +//go:generate go run ../generator/generator.go PlayOptions +// PlayOptions are optional options for replaying kube YAML files +type PlayOptions struct { // Annotations - Annotations to add to Pods Annotations map[string]string // Authfile - path to an authentication file. diff --git a/pkg/bindings/play/types_kube_options.go b/pkg/bindings/kube/types_play_options.go index 54c9a8e74..cdc2e9dd8 100644 --- a/pkg/bindings/play/types_kube_options.go +++ b/pkg/bindings/kube/types_play_options.go @@ -1,5 +1,5 @@ // Code generated by go generate; DO NOT EDIT. -package play +package kube import ( "net" @@ -9,23 +9,23 @@ import ( ) // Changed returns true if named field has been set -func (o *KubeOptions) Changed(fieldName string) bool { +func (o *PlayOptions) Changed(fieldName string) bool { return util.Changed(o, fieldName) } // ToParams formats struct fields to be passed to API service -func (o *KubeOptions) ToParams() (url.Values, error) { +func (o *PlayOptions) ToParams() (url.Values, error) { return util.ToParams(o) } // WithAnnotations set field Annotations to given value -func (o *KubeOptions) WithAnnotations(value map[string]string) *KubeOptions { +func (o *PlayOptions) WithAnnotations(value map[string]string) *PlayOptions { o.Annotations = value return o } // GetAnnotations returns value of field Annotations -func (o *KubeOptions) GetAnnotations() map[string]string { +func (o *PlayOptions) GetAnnotations() map[string]string { if o.Annotations == nil { var z map[string]string return z @@ -34,13 +34,13 @@ func (o *KubeOptions) GetAnnotations() map[string]string { } // WithAuthfile set field Authfile to given value -func (o *KubeOptions) WithAuthfile(value string) *KubeOptions { +func (o *PlayOptions) WithAuthfile(value string) *PlayOptions { o.Authfile = &value return o } // GetAuthfile returns value of field Authfile -func (o *KubeOptions) GetAuthfile() string { +func (o *PlayOptions) GetAuthfile() string { if o.Authfile == nil { var z string return z @@ -49,13 +49,13 @@ func (o *KubeOptions) GetAuthfile() string { } // WithCertDir set field CertDir to given value -func (o *KubeOptions) WithCertDir(value string) *KubeOptions { +func (o *PlayOptions) WithCertDir(value string) *PlayOptions { o.CertDir = &value return o } // GetCertDir returns value of field CertDir -func (o *KubeOptions) GetCertDir() string { +func (o *PlayOptions) GetCertDir() string { if o.CertDir == nil { var z string return z @@ -64,13 +64,13 @@ func (o *KubeOptions) GetCertDir() string { } // WithUsername set field Username to given value -func (o *KubeOptions) WithUsername(value string) *KubeOptions { +func (o *PlayOptions) WithUsername(value string) *PlayOptions { o.Username = &value return o } // GetUsername returns value of field Username -func (o *KubeOptions) GetUsername() string { +func (o *PlayOptions) GetUsername() string { if o.Username == nil { var z string return z @@ -79,13 +79,13 @@ func (o *KubeOptions) GetUsername() string { } // WithPassword set field Password to given value -func (o *KubeOptions) WithPassword(value string) *KubeOptions { +func (o *PlayOptions) WithPassword(value string) *PlayOptions { o.Password = &value return o } // GetPassword returns value of field Password -func (o *KubeOptions) GetPassword() string { +func (o *PlayOptions) GetPassword() string { if o.Password == nil { var z string return z @@ -94,13 +94,13 @@ func (o *KubeOptions) GetPassword() string { } // WithNetwork set field Network to given value -func (o *KubeOptions) WithNetwork(value []string) *KubeOptions { +func (o *PlayOptions) WithNetwork(value []string) *PlayOptions { o.Network = &value return o } // GetNetwork returns value of field Network -func (o *KubeOptions) GetNetwork() []string { +func (o *PlayOptions) GetNetwork() []string { if o.Network == nil { var z []string return z @@ -109,13 +109,13 @@ func (o *KubeOptions) GetNetwork() []string { } // WithNoHosts set field NoHosts to given value -func (o *KubeOptions) WithNoHosts(value bool) *KubeOptions { +func (o *PlayOptions) WithNoHosts(value bool) *PlayOptions { o.NoHosts = &value return o } // GetNoHosts returns value of field NoHosts -func (o *KubeOptions) GetNoHosts() bool { +func (o *PlayOptions) GetNoHosts() bool { if o.NoHosts == nil { var z bool return z @@ -124,13 +124,13 @@ func (o *KubeOptions) GetNoHosts() bool { } // WithQuiet set field Quiet to given value -func (o *KubeOptions) WithQuiet(value bool) *KubeOptions { +func (o *PlayOptions) WithQuiet(value bool) *PlayOptions { o.Quiet = &value return o } // GetQuiet returns value of field Quiet -func (o *KubeOptions) GetQuiet() bool { +func (o *PlayOptions) GetQuiet() bool { if o.Quiet == nil { var z bool return z @@ -139,13 +139,13 @@ func (o *KubeOptions) GetQuiet() bool { } // WithSignaturePolicy set field SignaturePolicy to given value -func (o *KubeOptions) WithSignaturePolicy(value string) *KubeOptions { +func (o *PlayOptions) WithSignaturePolicy(value string) *PlayOptions { o.SignaturePolicy = &value return o } // GetSignaturePolicy returns value of field SignaturePolicy -func (o *KubeOptions) GetSignaturePolicy() string { +func (o *PlayOptions) GetSignaturePolicy() string { if o.SignaturePolicy == nil { var z string return z @@ -154,13 +154,13 @@ func (o *KubeOptions) GetSignaturePolicy() string { } // WithSkipTLSVerify set field SkipTLSVerify to given value -func (o *KubeOptions) WithSkipTLSVerify(value bool) *KubeOptions { +func (o *PlayOptions) WithSkipTLSVerify(value bool) *PlayOptions { o.SkipTLSVerify = &value return o } // GetSkipTLSVerify returns value of field SkipTLSVerify -func (o *KubeOptions) GetSkipTLSVerify() bool { +func (o *PlayOptions) GetSkipTLSVerify() bool { if o.SkipTLSVerify == nil { var z bool return z @@ -169,13 +169,13 @@ func (o *KubeOptions) GetSkipTLSVerify() bool { } // WithSeccompProfileRoot set field SeccompProfileRoot to given value -func (o *KubeOptions) WithSeccompProfileRoot(value string) *KubeOptions { +func (o *PlayOptions) WithSeccompProfileRoot(value string) *PlayOptions { o.SeccompProfileRoot = &value return o } // GetSeccompProfileRoot returns value of field SeccompProfileRoot -func (o *KubeOptions) GetSeccompProfileRoot() string { +func (o *PlayOptions) GetSeccompProfileRoot() string { if o.SeccompProfileRoot == nil { var z string return z @@ -184,13 +184,13 @@ func (o *KubeOptions) GetSeccompProfileRoot() string { } // WithStaticIPs set field StaticIPs to given value -func (o *KubeOptions) WithStaticIPs(value []net.IP) *KubeOptions { +func (o *PlayOptions) WithStaticIPs(value []net.IP) *PlayOptions { o.StaticIPs = &value return o } // GetStaticIPs returns value of field StaticIPs -func (o *KubeOptions) GetStaticIPs() []net.IP { +func (o *PlayOptions) GetStaticIPs() []net.IP { if o.StaticIPs == nil { var z []net.IP return z @@ -199,13 +199,13 @@ func (o *KubeOptions) GetStaticIPs() []net.IP { } // WithStaticMACs set field StaticMACs to given value -func (o *KubeOptions) WithStaticMACs(value []net.HardwareAddr) *KubeOptions { +func (o *PlayOptions) WithStaticMACs(value []net.HardwareAddr) *PlayOptions { o.StaticMACs = &value return o } // GetStaticMACs returns value of field StaticMACs -func (o *KubeOptions) GetStaticMACs() []net.HardwareAddr { +func (o *PlayOptions) GetStaticMACs() []net.HardwareAddr { if o.StaticMACs == nil { var z []net.HardwareAddr return z @@ -214,13 +214,13 @@ func (o *KubeOptions) GetStaticMACs() []net.HardwareAddr { } // WithConfigMaps set field ConfigMaps to given value -func (o *KubeOptions) WithConfigMaps(value []string) *KubeOptions { +func (o *PlayOptions) WithConfigMaps(value []string) *PlayOptions { o.ConfigMaps = &value return o } // GetConfigMaps returns value of field ConfigMaps -func (o *KubeOptions) GetConfigMaps() []string { +func (o *PlayOptions) GetConfigMaps() []string { if o.ConfigMaps == nil { var z []string return z @@ -229,13 +229,13 @@ func (o *KubeOptions) GetConfigMaps() []string { } // WithLogDriver set field LogDriver to given value -func (o *KubeOptions) WithLogDriver(value string) *KubeOptions { +func (o *PlayOptions) WithLogDriver(value string) *PlayOptions { o.LogDriver = &value return o } // GetLogDriver returns value of field LogDriver -func (o *KubeOptions) GetLogDriver() string { +func (o *PlayOptions) GetLogDriver() string { if o.LogDriver == nil { var z string return z @@ -244,13 +244,13 @@ func (o *KubeOptions) GetLogDriver() string { } // WithLogOptions set field LogOptions to given value -func (o *KubeOptions) WithLogOptions(value []string) *KubeOptions { +func (o *PlayOptions) WithLogOptions(value []string) *PlayOptions { o.LogOptions = &value return o } // GetLogOptions returns value of field LogOptions -func (o *KubeOptions) GetLogOptions() []string { +func (o *PlayOptions) GetLogOptions() []string { if o.LogOptions == nil { var z []string return z @@ -259,13 +259,13 @@ func (o *KubeOptions) GetLogOptions() []string { } // WithStart set field Start to given value -func (o *KubeOptions) WithStart(value bool) *KubeOptions { +func (o *PlayOptions) WithStart(value bool) *PlayOptions { o.Start = &value return o } // GetStart returns value of field Start -func (o *KubeOptions) GetStart() bool { +func (o *PlayOptions) GetStart() bool { if o.Start == nil { var z bool return z @@ -274,13 +274,13 @@ func (o *KubeOptions) GetStart() bool { } // WithUserns set field Userns to given value -func (o *KubeOptions) WithUserns(value string) *KubeOptions { +func (o *PlayOptions) WithUserns(value string) *PlayOptions { o.Userns = &value return o } // GetUserns returns value of field Userns -func (o *KubeOptions) GetUserns() string { +func (o *PlayOptions) GetUserns() string { if o.Userns == nil { var z string return z diff --git a/pkg/bindings/play/play.go b/pkg/bindings/play/play.go index 0261b0250..d5d649135 100644 --- a/pkg/bindings/play/play.go +++ b/pkg/bindings/play/play.go @@ -3,95 +3,25 @@ package play import ( "context" "io" - "net/http" - "os" - "strconv" - "github.com/containers/image/v5/types" - "github.com/containers/podman/v4/pkg/auth" - "github.com/containers/podman/v4/pkg/bindings" + "github.com/containers/podman/v4/pkg/bindings/kube" "github.com/containers/podman/v4/pkg/domain/entities" - "github.com/sirupsen/logrus" ) -func Kube(ctx context.Context, path string, options *KubeOptions) (*entities.PlayKubeReport, error) { - f, err := os.Open(path) - if err != nil { - return nil, err - } - defer f.Close() +type KubeOptions = kube.PlayOptions - return KubeWithBody(ctx, f, options) +func Kube(ctx context.Context, path string, options *KubeOptions) (*entities.PlayKubeReport, error) { + return kube.Play(ctx, path, options) } func KubeWithBody(ctx context.Context, body io.Reader, options *KubeOptions) (*entities.PlayKubeReport, error) { - var report entities.PlayKubeReport - if options == nil { - options = new(KubeOptions) - } - - conn, err := bindings.GetClient(ctx) - if err != nil { - return nil, err - } - - params, err := options.ToParams() - if err != nil { - return nil, err - } - if options.SkipTLSVerify != nil { - params.Set("tlsVerify", strconv.FormatBool(options.GetSkipTLSVerify())) - } - if options.Start != nil { - params.Set("start", strconv.FormatBool(options.GetStart())) - } - - header, err := auth.MakeXRegistryAuthHeader(&types.SystemContext{AuthFilePath: options.GetAuthfile()}, options.GetUsername(), options.GetPassword()) - if err != nil { - return nil, err - } - - response, err := conn.DoRequest(ctx, body, http.MethodPost, "/play/kube", params, header) - if err != nil { - return nil, err - } - defer response.Body.Close() - - if err := response.Process(&report); err != nil { - return nil, err - } - - return &report, nil + return kube.PlayWithBody(ctx, body, options) } -func KubeDown(ctx context.Context, path string) (*entities.PlayKubeReport, error) { - f, err := os.Open(path) - if err != nil { - return nil, err - } - defer func() { - if err := f.Close(); err != nil { - logrus.Warn(err) - } - }() - - return KubeDownWithBody(ctx, f) +func Down(ctx context.Context, path string) (*entities.PlayKubeReport, error) { + return kube.Down(ctx, path) } -func KubeDownWithBody(ctx context.Context, body io.Reader) (*entities.PlayKubeReport, error) { - var report entities.PlayKubeReport - conn, err := bindings.GetClient(ctx) - if err != nil { - return nil, err - } - - response, err := conn.DoRequest(ctx, body, http.MethodDelete, "/play/kube", nil, nil) - if err != nil { - return nil, err - } - if err := response.Process(&report); err != nil { - return nil, err - } - - return &report, nil +func DownWithBody(ctx context.Context, body io.Reader) (*entities.PlayKubeReport, error) { + return kube.DownWithBody(ctx, body) } |