DockerCLI/cli/command/stack/kubernetes/loader.go

33 lines
730 B
Go
Raw Normal View History

package kubernetes
import (
composetypes "github.com/docker/cli/cli/compose/types"
apiv1beta1 "github.com/docker/cli/kubernetes/compose/v1beta1"
yaml "gopkg.in/yaml.v2"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)
type versionedConfig struct {
composetypes.Config
Version string
}
// LoadStack loads a stack from a Compose config, with a given name.
func LoadStack(name, version string, cfg *composetypes.Config) (*apiv1beta1.Stack, error) {
res, err := yaml.Marshal(versionedConfig{
Version: version,
Config: *cfg,
})
if err != nil {
return nil, err
}
return &apiv1beta1.Stack{
ObjectMeta: metav1.ObjectMeta{
Name: name,
},
Spec: apiv1beta1.StackSpec{
ComposeFile: string(res),
},
}, nil
}