func (in *ClusterSpec) DeepCopyInto(out *ClusterSpec) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	if in.Authentication != nil {
		in, out := &in.Authentication, &out.Authentication
		*out = new(AuthenticationWebhook)
		**out = **in
	}
	if in.Authorization != nil {
		in, out := &in.Authorization, &out.Authorization
		*out = new(AuthorizationWebhook)
		**out = **in
	}
	in.OS.DeepCopyInto(&out.OS)
	out.CRI = in.CRI
	in.APIServer.DeepCopyInto(&out.APIServer)
	if in.KubeletArguments != nil {
		in, out := &in.KubeletArguments, &out.KubeletArguments
		*out = make([]ServerArgument, len(*in))
		copy(*out, *in)
	}
	if in.Addons != nil {
		in, out := &in.Addons, &out.Addons
		*out = make([]Addon, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	out.Flavor = in.Flavor
}
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
package v1alpha3
import (
	runtime "k8s.io/apimachinery/pkg/runtime"
)
func (in *APIServer) DeepCopyInto(out *APIServer) {
	*out = *in
	if in.AdditionalSANs != nil {
		in, out := &in.AdditionalSANs, &out.AdditionalSANs
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.ExtraArguments != nil {
		in, out := &in.ExtraArguments, &out.ExtraArguments
		*out = make([]ServerArgument, len(*in))
		copy(*out, *in)
	}
}
func (in *APIServer) DeepCopy() *APIServer {
	if in == nil {
		return nil
	}
	out := new(APIServer)
	in.DeepCopyInto(out)
	return out
}
func (in *Addon) DeepCopyInto(out *Addon) {
	*out = *in
	if in.Params != nil {
		in, out := &in.Params, &out.Params
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.Deps != nil {
		in, out := &in.Deps, &out.Deps
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
}
func (in *Addon) DeepCopy() *Addon {
	if in == nil {
		return nil
	}
	out := new(Addon)
	in.DeepCopyInto(out)
	return out
}
func (in *AuthenticationWebhook) DeepCopyInto(out *AuthenticationWebhook) {
	*out = *in
}
func (in *AuthenticationWebhook) DeepCopy() *AuthenticationWebhook {
	if in == nil {
		return nil
	}
	out := new(AuthenticationWebhook)
	in.DeepCopyInto(out)
	return out
}
func (in *AuthorizationWebhook) DeepCopyInto(out *AuthorizationWebhook) {
	*out = *in
}
func (in *AuthorizationWebhook) DeepCopy() *AuthorizationWebhook {
	if in == nil {
		return nil
	}
	out := new(AuthorizationWebhook)
	in.DeepCopyInto(out)
	return out
}
func (in *ClusterFlavor) DeepCopyInto(out *ClusterFlavor) {
	*out = *in
}
func (in *ClusterFlavor) DeepCopy() *ClusterFlavor {
	if in == nil {
		return nil
	}
	out := new(ClusterFlavor)
	in.DeepCopyInto(out)
	return out
}