func (p *PortMapping) UnmarshalYAML(unmarshal func(interface{}) error) error {
	type PortMappingAlias PortMapping
	var a PortMappingAlias
	if err := unmarshal(&a); err != nil {
		return err
	}
	a.Protocol = PortMappingProtocol(strings.ToUpper(string(a.Protocol)))
	switch a.Protocol {
	case "":  
	case PortMappingProtocolTCP:
	case PortMappingProtocolUDP:
	case PortMappingProtocolSCTP:
	default:
		return errors.Errorf("Unknown PortMappingProtocol: %q", a.Protocol)
	}
	*p = PortMapping(a)
	return nil
}
UnmarshalYAML implements custom decoding YAML
https://godoc.org/gopkg.in/yaml.v3
package v1alpha4
import (
	"strings"
	"sigs.k8s.io/kind/pkg/errors"
)
func (m *Mount) UnmarshalYAML(unmarshal func(interface{}) error) error {
	type MountAlias Mount
	var a MountAlias
	if err := unmarshal(&a); err != nil {
		return err
	}
	switch a.Propagation {
	case "":  
	case MountPropagationNone:
	case MountPropagationHostToContainer:
	case MountPropagationBidirectional:
	default:
		return errors.Errorf("Unknown MountPropagation: %q", a.Propagation)
	}
	*m = Mount(a)
	return nil
}