From 8d2c92bef6cd0d9c64e9f28189139dad23a79adb Mon Sep 17 00:00:00 2001 From: Abhishek Date: Fri, 16 Dec 2016 12:06:43 +0530 Subject: [PATCH] make default kompose conversion YAML --- cmd/convert.go | 16 +++++++----- pkg/kobject/kobject.go | 3 ++- pkg/transformer/kubernetes/k8sutils.go | 36 +++++++++++++------------- pkg/transformer/utils.go | 16 ++++++------ 4 files changed, 38 insertions(+), 33 deletions(-) diff --git a/cmd/convert.go b/cmd/convert.go index 8b1c518180..b42ae890c7 100644 --- a/cmd/convert.go +++ b/cmd/convert.go @@ -26,12 +26,12 @@ import ( ) var ( - ConvertSource, ConvertOut string - ConvertChart, ConvertDeployment, ConvertDaemonSet bool - ConvertReplicationController, ConvertYaml, ConvertStdout bool - ConvertEmptyVols, ConvertDeploymentConfig bool - ConvertReplicas int - ConvertOpt kobject.ConvertOptions + ConvertSource, ConvertOut string + ConvertChart, ConvertDeployment, ConvertDaemonSet bool + ConvertReplicationController, ConvertYaml, ConvertJson, ConvertStdout bool + ConvertEmptyVols, ConvertDeploymentConfig bool + ConvertReplicas int + ConvertOpt kobject.ConvertOptions ) var ConvertProvider string = GlobalProvider @@ -46,6 +46,7 @@ var convertCmd = &cobra.Command{ ToStdout: ConvertStdout, CreateChart: ConvertChart, GenerateYaml: ConvertYaml, + GenerateJson: ConvertJson, Replicas: ConvertReplicas, InputFile: GlobalFile, OutFile: ConvertOut, @@ -87,6 +88,9 @@ func init() { // Standard between the two convertCmd.Flags().BoolVarP(&ConvertYaml, "yaml", "y", false, "Generate resource files into yaml format") + convertCmd.Flags().BoolVarP(&ConvertJson, "json", "j", false, "Generate resource files into json format") + convertCmd.Flags().MarkDeprecated("yaml", "YAML is the default format now.") + convertCmd.Flags().MarkShorthandDeprecated("y", "YAML is the default format now.") convertCmd.Flags().BoolVar(&ConvertStdout, "stdout", false, "Print converted objects to stdout") convertCmd.Flags().BoolVar(&ConvertEmptyVols, "emptyvols", false, "Use Empty Volumes. Do not generate PVCs") convertCmd.Flags().StringVarP(&ConvertOut, "out", "o", "", "Specify a file name to save objects to") diff --git a/pkg/kobject/kobject.go b/pkg/kobject/kobject.go index 93a720914e..9aebe12b9f 100644 --- a/pkg/kobject/kobject.go +++ b/pkg/kobject/kobject.go @@ -34,7 +34,8 @@ type ConvertOptions struct { CreateDS bool CreateDeploymentConfig bool CreateChart bool - GenerateYaml bool + GenerateYaml bool + GenerateJson bool EmptyVols bool Replicas int InputFile string diff --git a/pkg/transformer/kubernetes/k8sutils.go b/pkg/transformer/kubernetes/k8sutils.go index 8eed26160d..6638b8a310 100644 --- a/pkg/transformer/kubernetes/k8sutils.go +++ b/pkg/transformer/kubernetes/k8sutils.go @@ -184,11 +184,11 @@ func PrintList(objects []runtime.Object, opt kobject.ConvertOptions) error { if err != nil { return err } - data, err := marshal(convertedList, opt.GenerateYaml) + data, err := marshal(convertedList, opt.GenerateJson) if err != nil { return fmt.Errorf("Error in marshalling the List: %v", err) } - files = append(files, transformer.Print("", dirName, "", data, opt.ToStdout, opt.GenerateYaml, f)) + files = append(files, transformer.Print("", dirName, "", data, opt.ToStdout, opt.GenerateJson, f)) } else { var file string // create a separate file for each provider @@ -197,32 +197,32 @@ func PrintList(objects []runtime.Object, opt kobject.ConvertOptions) error { if err != nil { return err } - - data, err := marshal(versionedObject, opt.GenerateYaml) + data, err := marshal(versionedObject, opt.GenerateJson) if err != nil { return err } switch t := v.(type) { case *api.ReplicationController: - file = transformer.Print(t.Name, dirName, strings.ToLower(t.Kind), data, opt.ToStdout, opt.GenerateYaml, f) + file = transformer.Print(t.Name, dirName, strings.ToLower(t.Kind), data, opt.ToStdout, opt.GenerateJson, f) case *extensions.Deployment: - file = transformer.Print(t.Name, dirName, strings.ToLower(t.Kind), data, opt.ToStdout, opt.GenerateYaml, f) + file = transformer.Print(t.Name, dirName, strings.ToLower(t.Kind), data, opt.ToStdout, opt.GenerateJson, f) case *extensions.DaemonSet: - file = transformer.Print(t.Name, dirName, strings.ToLower(t.Kind), data, opt.ToStdout, opt.GenerateYaml, f) + file = transformer.Print(t.Name, dirName, strings.ToLower(t.Kind), data, opt.ToStdout, opt.GenerateJson, f) case *deployapi.DeploymentConfig: - file = transformer.Print(t.Name, dirName, strings.ToLower(t.Kind), data, opt.ToStdout, opt.GenerateYaml, f) + file = transformer.Print(t.Name, dirName, strings.ToLower(t.Kind), data, opt.ToStdout, opt.GenerateJson, f) case *imageapi.ImageStream: - file = transformer.Print(t.Name, dirName, strings.ToLower(t.Kind), data, opt.ToStdout, opt.GenerateYaml, f) + file = transformer.Print(t.Name, dirName, strings.ToLower(t.Kind), data, opt.ToStdout, opt.GenerateJson, f) case *api.Service: - file = transformer.Print(t.Name, dirName, strings.ToLower(t.Kind), data, opt.ToStdout, opt.GenerateYaml, f) + file = transformer.Print(t.Name, dirName, strings.ToLower(t.Kind), data, opt.ToStdout, opt.GenerateJson, f) case *api.PersistentVolumeClaim: - file = transformer.Print(t.Name, dirName, strings.ToLower(t.Kind), data, opt.ToStdout, opt.GenerateYaml, f) + file = transformer.Print(t.Name, dirName, strings.ToLower(t.Kind), data, opt.ToStdout, opt.GenerateJson, f) case *api.Pod: - file = transformer.Print(t.Name, dirName, strings.ToLower(t.Kind), data, opt.ToStdout, opt.GenerateYaml, f) + file = transformer.Print(t.Name, dirName, strings.ToLower(t.Kind), data, opt.ToStdout, opt.GenerateJson, f) case *routeapi.Route: - file = transformer.Print(t.Name, dirName, strings.ToLower(t.Kind), data, opt.ToStdout, opt.GenerateYaml, f) + file = transformer.Print(t.Name, dirName, strings.ToLower(t.Kind), data, opt.ToStdout, opt.GenerateJson, f) case *extensions.Ingress: - file = transformer.Print(t.Name, dirName, strings.ToLower(t.Kind), data, opt.ToStdout, opt.GenerateYaml, f) + file = transformer.Print(t.Name, dirName, strings.ToLower(t.Kind), data, opt.ToStdout, opt.GenerateJson, f) + } files = append(files, file) } @@ -234,12 +234,12 @@ func PrintList(objects []runtime.Object, opt kobject.ConvertOptions) error { } // marshal object runtime.Object and return byte array -func marshal(obj runtime.Object, yamlFormat bool) (data []byte, err error) { +func marshal(obj runtime.Object, jsonFormat bool) (data []byte, err error) { // convert data to yaml or json - if yamlFormat { - data, err = yaml.Marshal(obj) - } else { + if jsonFormat { data, err = json.MarshalIndent(obj, "", " ") + } else { + data, err = yaml.Marshal(obj) } if err != nil { data = nil diff --git a/pkg/transformer/utils.go b/pkg/transformer/utils.go index cb951ee3df..1883827706 100644 --- a/pkg/transformer/utils.go +++ b/pkg/transformer/utils.go @@ -110,7 +110,7 @@ func ConfigAnnotations(service kobject.ServiceConfig) map[string]string { } // Transform data to json/yaml -func TransformData(obj runtime.Object, GenerateYaml bool) ([]byte, error) { +func TransformData(obj runtime.Object, GenerateJson bool) ([]byte, error) { // Convert to versioned object objectVersion := obj.GetObjectKind().GroupVersionKind() version := unversioned.GroupVersion{Group: objectVersion.Group, Version: objectVersion.Version} @@ -120,9 +120,9 @@ func TransformData(obj runtime.Object, GenerateYaml bool) ([]byte, error) { } // convert data to json / yaml - data, err := json.MarshalIndent(versionedObj, "", " ") - if GenerateYaml == true { - data, err = yaml.Marshal(versionedObj) + data, err := yaml.Marshal(versionedObj) + if GenerateJson == true { + data, err = json.MarshalIndent(versionedObj, "", " ") } if err != nil { return nil, err @@ -132,13 +132,13 @@ func TransformData(obj runtime.Object, GenerateYaml bool) ([]byte, error) { } // Either print to stdout or to file/s -func Print(name, path string, trailing string, data []byte, toStdout, generateYaml bool, f *os.File) string { +func Print(name, path string, trailing string, data []byte, toStdout, generateJson bool, f *os.File) string { file := "" - if generateYaml { - file = fmt.Sprintf("%s-%s.yaml", name, trailing) - } else { + if generateJson { file = fmt.Sprintf("%s-%s.json", name, trailing) + } else { + file = fmt.Sprintf("%s-%s.yaml", name, trailing) } if toStdout { fmt.Fprintf(os.Stdout, "%s\n", string(data))