2021-04-12 17:00:36 +00:00
|
|
|
package compiler
|
2020-08-05 17:09:45 +00:00
|
|
|
|
|
|
|
import (
|
2021-10-23 16:44:48 +00:00
|
|
|
v1 "github.com/google/go-containerregistry/pkg/v1"
|
2021-01-24 18:04:57 +00:00
|
|
|
|
2021-12-17 14:21:03 +00:00
|
|
|
"github.com/mudler/luet/pkg/api/core/types"
|
2021-04-12 17:00:36 +00:00
|
|
|
"github.com/mudler/luet/pkg/compiler/backend"
|
2020-08-05 17:09:45 +00:00
|
|
|
"github.com/pkg/errors"
|
|
|
|
)
|
|
|
|
|
2021-12-17 14:21:03 +00:00
|
|
|
func NewBackend(ctx types.Context, s string) (CompilerBackend, error) {
|
2021-04-12 17:00:36 +00:00
|
|
|
var compilerBackend CompilerBackend
|
|
|
|
|
|
|
|
switch s {
|
|
|
|
case backend.ImgBackend:
|
2021-10-20 22:13:02 +00:00
|
|
|
compilerBackend = backend.NewSimpleImgBackend(ctx)
|
2021-04-12 17:00:36 +00:00
|
|
|
case backend.DockerBackend:
|
2021-10-20 22:13:02 +00:00
|
|
|
compilerBackend = backend.NewSimpleDockerBackend(ctx)
|
2021-04-12 17:00:36 +00:00
|
|
|
default:
|
|
|
|
return nil, errors.New("invalid backend. Unsupported")
|
|
|
|
}
|
|
|
|
|
|
|
|
return compilerBackend, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
type CompilerBackend interface {
|
|
|
|
BuildImage(backend.Options) error
|
|
|
|
ExportImage(backend.Options) error
|
2021-10-28 21:42:06 +00:00
|
|
|
LoadImage(string) error
|
2021-04-12 17:00:36 +00:00
|
|
|
RemoveImage(backend.Options) error
|
|
|
|
ImageDefinitionToTar(backend.Options) error
|
|
|
|
|
|
|
|
CopyImage(string, string) error
|
|
|
|
DownloadImage(opts backend.Options) error
|
|
|
|
|
|
|
|
Push(opts backend.Options) error
|
|
|
|
ImageAvailable(string) bool
|
|
|
|
|
2021-10-26 10:14:01 +00:00
|
|
|
ImageReference(img1 string, ondisk bool) (v1.Image, error)
|
2021-04-12 17:00:36 +00:00
|
|
|
ImageExists(string) bool
|
|
|
|
}
|