Add velero install command (#1287)

Add velero install command

Signed-off-by: Nolan Brubaker <brubakern@vmware.com>
This commit is contained in:
Nolan Brubaker
2019-04-15 14:10:11 -07:00
committed by KubeKween
parent bc8f07f963
commit 6f474016a6
9 changed files with 602 additions and 6 deletions
+6 -2
View File
@@ -42,7 +42,7 @@ func Encode(obj runtime.Object, format string) ([]byte, error) {
// EncodeTo converts the provided object to the specified format and
// writes the encoded data to the provided io.Writer.
func EncodeTo(obj runtime.Object, format string, w io.Writer) error {
encoder, err := EncoderFor(format)
encoder, err := EncoderFor(format, obj)
if err != nil {
return err
}
@@ -51,7 +51,8 @@ func EncodeTo(obj runtime.Object, format string, w io.Writer) error {
}
// EncoderFor gets the appropriate encoder for the specified format.
func EncoderFor(format string) (runtime.Encoder, error) {
// Only objects registered in the velero scheme, or objects with their TypeMeta set will have valid encoders.
func EncoderFor(format string, obj runtime.Object) (runtime.Encoder, error) {
var encoder runtime.Encoder
desiredMediaType := fmt.Sprintf("application/%s", format)
serializerInfo, found := runtime.SerializerInfoForMediaType(scheme.Codecs.SupportedMediaTypes(), desiredMediaType)
@@ -63,6 +64,9 @@ func EncoderFor(format string) (runtime.Encoder, error) {
} else {
encoder = serializerInfo.Serializer
}
if !obj.GetObjectKind().GroupVersionKind().Empty() {
return encoder, nil
}
encoder = scheme.Codecs.EncoderForVersion(encoder, v1.SchemeGroupVersion)
return encoder, nil
}