Files
troubleshoot/pkg/docrewrite/v1beta2.go
2020-09-01 19:57:11 +00:00

36 lines
735 B
Go

package docrewrite
import (
"github.com/pkg/errors"
"gopkg.in/yaml.v2"
)
func ConvertToV1Beta2(doc []byte) ([]byte, error) {
var parsed map[string]interface{}
err := yaml.Unmarshal(doc, &parsed)
if err != nil {
return nil, errors.Wrap(err, "failed to unmarshal yaml")
}
v, ok := parsed["apiVersion"]
if !ok {
return nil, errors.New("no apiVersion in document")
}
if v == "troubleshoot.sh/v1beta2" {
return doc, nil
}
if v != "troubleshoot.replicated.com/v1beta1" {
return nil, errors.Errorf("cannot convert %s", v)
}
parsed["apiVersion"] = "troubleshoot.sh/v1beta2"
newDoc, err := yaml.Marshal(parsed)
if err != nil {
return nil, errors.Wrap(err, "failed to marshal new spec")
}
return newDoc, nil
}