Files
docker-cli/cli/command/stack/kubernetes/loader.go
Silvin Lubecki 9b27e92903 Fix stack marshaling for Kubernetes
Signed-off-by: Silvin Lubecki <silvin.lubecki@docker.com>
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2018-02-20 16:43:24 +01:00

34 lines
779 B
Go

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 `yaml:",inline"`
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) {
cfg.Filename = ""
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
}