Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 20 additions & 20 deletions controlplane/kubeadm/api/v1alpha3/conversion.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,10 @@ import (
utilconversion "sigs.k8s.io/cluster-api/util/conversion"
)

func (src *KubeadmControlPlane) ConvertTo(destRaw conversion.Hub) error {
dest := destRaw.(*v1beta1.KubeadmControlPlane)
func (src *KubeadmControlPlane) ConvertTo(dstRaw conversion.Hub) error {
dst := dstRaw.(*v1beta1.KubeadmControlPlane)

if err := Convert_v1alpha3_KubeadmControlPlane_To_v1beta1_KubeadmControlPlane(src, dest, nil); err != nil {
if err := Convert_v1alpha3_KubeadmControlPlane_To_v1beta1_KubeadmControlPlane(src, dst, nil); err != nil {
return err
}

Expand All @@ -38,53 +38,53 @@ func (src *KubeadmControlPlane) ConvertTo(destRaw conversion.Hub) error {
return err
}

dest.Spec.MachineTemplate.ObjectMeta = restored.Spec.MachineTemplate.ObjectMeta
dest.Status.Version = restored.Status.Version
dst.Spec.MachineTemplate.ObjectMeta = restored.Spec.MachineTemplate.ObjectMeta
dst.Status.Version = restored.Status.Version

if restored.Spec.KubeadmConfigSpec.JoinConfiguration != nil && restored.Spec.KubeadmConfigSpec.JoinConfiguration.NodeRegistration.IgnorePreflightErrors != nil {
if dest.Spec.KubeadmConfigSpec.JoinConfiguration == nil {
dest.Spec.KubeadmConfigSpec.JoinConfiguration = &kubeadmbootstrapv1.JoinConfiguration{}
if dst.Spec.KubeadmConfigSpec.JoinConfiguration == nil {
dst.Spec.KubeadmConfigSpec.JoinConfiguration = &kubeadmbootstrapv1.JoinConfiguration{}
}
dest.Spec.KubeadmConfigSpec.JoinConfiguration.NodeRegistration.IgnorePreflightErrors = restored.Spec.KubeadmConfigSpec.JoinConfiguration.NodeRegistration.IgnorePreflightErrors
dst.Spec.KubeadmConfigSpec.JoinConfiguration.NodeRegistration.IgnorePreflightErrors = restored.Spec.KubeadmConfigSpec.JoinConfiguration.NodeRegistration.IgnorePreflightErrors
}

if restored.Spec.KubeadmConfigSpec.InitConfiguration != nil && restored.Spec.KubeadmConfigSpec.InitConfiguration.NodeRegistration.IgnorePreflightErrors != nil {
if dest.Spec.KubeadmConfigSpec.InitConfiguration == nil {
dest.Spec.KubeadmConfigSpec.InitConfiguration = &kubeadmbootstrapv1.InitConfiguration{}
if dst.Spec.KubeadmConfigSpec.InitConfiguration == nil {
dst.Spec.KubeadmConfigSpec.InitConfiguration = &kubeadmbootstrapv1.InitConfiguration{}
}
dest.Spec.KubeadmConfigSpec.InitConfiguration.NodeRegistration.IgnorePreflightErrors = restored.Spec.KubeadmConfigSpec.InitConfiguration.NodeRegistration.IgnorePreflightErrors
dst.Spec.KubeadmConfigSpec.InitConfiguration.NodeRegistration.IgnorePreflightErrors = restored.Spec.KubeadmConfigSpec.InitConfiguration.NodeRegistration.IgnorePreflightErrors
}

dest.Spec.KubeadmConfigSpec.Ignition = restored.Spec.KubeadmConfigSpec.Ignition
dst.Spec.KubeadmConfigSpec.Ignition = restored.Spec.KubeadmConfigSpec.Ignition

return nil
}

func (dest *KubeadmControlPlane) ConvertFrom(srcRaw conversion.Hub) error {
func (dst *KubeadmControlPlane) ConvertFrom(srcRaw conversion.Hub) error {
src := srcRaw.(*v1beta1.KubeadmControlPlane)

if err := Convert_v1beta1_KubeadmControlPlane_To_v1alpha3_KubeadmControlPlane(src, dest, nil); err != nil {
if err := Convert_v1beta1_KubeadmControlPlane_To_v1alpha3_KubeadmControlPlane(src, dst, nil); err != nil {
return err
}

// Preserve Hub data on down-conversion except for metadata
if err := utilconversion.MarshalData(src, dest); err != nil {
if err := utilconversion.MarshalData(src, dst); err != nil {
return err
}

return nil
}

func (src *KubeadmControlPlaneList) ConvertTo(destRaw conversion.Hub) error {
dest := destRaw.(*v1beta1.KubeadmControlPlaneList)
func (src *KubeadmControlPlaneList) ConvertTo(dstRaw conversion.Hub) error {
dst := dstRaw.(*v1beta1.KubeadmControlPlaneList)

return Convert_v1alpha3_KubeadmControlPlaneList_To_v1beta1_KubeadmControlPlaneList(src, dest, nil)
return Convert_v1alpha3_KubeadmControlPlaneList_To_v1beta1_KubeadmControlPlaneList(src, dst, nil)
}

func (dest *KubeadmControlPlaneList) ConvertFrom(srcRaw conversion.Hub) error {
func (dst *KubeadmControlPlaneList) ConvertFrom(srcRaw conversion.Hub) error {
src := srcRaw.(*v1beta1.KubeadmControlPlaneList)

return Convert_v1beta1_KubeadmControlPlaneList_To_v1alpha3_KubeadmControlPlaneList(src, dest, nil)
return Convert_v1beta1_KubeadmControlPlaneList_To_v1alpha3_KubeadmControlPlaneList(src, dst, nil)
}

func Convert_v1beta1_KubeadmControlPlaneSpec_To_v1alpha3_KubeadmControlPlaneSpec(in *v1beta1.KubeadmControlPlaneSpec, out *KubeadmControlPlaneSpec, s apiconversion.Scope) error {
Expand Down
107 changes: 83 additions & 24 deletions controlplane/kubeadm/api/v1alpha4/conversion.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,18 @@ limitations under the License.
package v1alpha4

import (
apiconversion "k8s.io/apimachinery/pkg/conversion"
"sigs.k8s.io/controller-runtime/pkg/conversion"

kubeadmbootstrapv1alpha4 "sigs.k8s.io/cluster-api/bootstrap/kubeadm/api/v1alpha4"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit we are kind of standardizing on boostrapvx, but we can eventually tackle this is a separated PR

Suggested change
kubeadmbootstrapv1alpha4 "sigs.k8s.io/cluster-api/bootstrap/kubeadm/api/v1alpha4"
bootstrapv1alpha4 "sigs.k8s.io/cluster-api/bootstrap/kubeadm/api/v1alpha4"

Copy link
Member Author

@sbueringer sbueringer Dec 8, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yup. I'll take a look tomorrow (in a separate PR)

"sigs.k8s.io/cluster-api/controlplane/kubeadm/api/v1beta1"
utilconversion "sigs.k8s.io/cluster-api/util/conversion"
)

func (src *KubeadmControlPlane) ConvertTo(destRaw conversion.Hub) error {
dest := destRaw.(*v1beta1.KubeadmControlPlane)
func (src *KubeadmControlPlane) ConvertTo(dstRaw conversion.Hub) error {
dst := dstRaw.(*v1beta1.KubeadmControlPlane)

if err := Convert_v1alpha4_KubeadmControlPlane_To_v1beta1_KubeadmControlPlane(src, dest, nil); err != nil {
if err := Convert_v1alpha4_KubeadmControlPlane_To_v1beta1_KubeadmControlPlane(src, dst, nil); err != nil {
return err
}

Expand All @@ -36,38 +38,38 @@ func (src *KubeadmControlPlane) ConvertTo(destRaw conversion.Hub) error {
return err
}

dest.Spec.KubeadmConfigSpec.Ignition = restored.Spec.KubeadmConfigSpec.Ignition
dst.Spec.KubeadmConfigSpec.Ignition = restored.Spec.KubeadmConfigSpec.Ignition

return nil
}

func (dest *KubeadmControlPlane) ConvertFrom(srcRaw conversion.Hub) error {
func (dst *KubeadmControlPlane) ConvertFrom(srcRaw conversion.Hub) error {
src := srcRaw.(*v1beta1.KubeadmControlPlane)

if err := Convert_v1beta1_KubeadmControlPlane_To_v1alpha4_KubeadmControlPlane(src, dest, nil); err != nil {
if err := Convert_v1beta1_KubeadmControlPlane_To_v1alpha4_KubeadmControlPlane(src, dst, nil); err != nil {
return err
}

// Preserve Hub data on down-conversion except for metadata
return utilconversion.MarshalData(src, dest)
return utilconversion.MarshalData(src, dst)
}

func (src *KubeadmControlPlaneList) ConvertTo(destRaw conversion.Hub) error {
dest := destRaw.(*v1beta1.KubeadmControlPlaneList)
func (src *KubeadmControlPlaneList) ConvertTo(dstRaw conversion.Hub) error {
dst := dstRaw.(*v1beta1.KubeadmControlPlaneList)

return Convert_v1alpha4_KubeadmControlPlaneList_To_v1beta1_KubeadmControlPlaneList(src, dest, nil)
return Convert_v1alpha4_KubeadmControlPlaneList_To_v1beta1_KubeadmControlPlaneList(src, dst, nil)
}

func (dest *KubeadmControlPlaneList) ConvertFrom(srcRaw conversion.Hub) error {
func (dst *KubeadmControlPlaneList) ConvertFrom(srcRaw conversion.Hub) error {
src := srcRaw.(*v1beta1.KubeadmControlPlaneList)

return Convert_v1beta1_KubeadmControlPlaneList_To_v1alpha4_KubeadmControlPlaneList(src, dest, nil)
return Convert_v1beta1_KubeadmControlPlaneList_To_v1alpha4_KubeadmControlPlaneList(src, dst, nil)
}

func (src *KubeadmControlPlaneTemplate) ConvertTo(destRaw conversion.Hub) error {
dest := destRaw.(*v1beta1.KubeadmControlPlaneTemplate)
func (src *KubeadmControlPlaneTemplate) ConvertTo(dstRaw conversion.Hub) error {
dst := dstRaw.(*v1beta1.KubeadmControlPlaneTemplate)

if err := Convert_v1alpha4_KubeadmControlPlaneTemplate_To_v1beta1_KubeadmControlPlaneTemplate(src, dest, nil); err != nil {
if err := Convert_v1alpha4_KubeadmControlPlaneTemplate_To_v1beta1_KubeadmControlPlaneTemplate(src, dst, nil); err != nil {
return err
}

Expand All @@ -77,30 +79,87 @@ func (src *KubeadmControlPlaneTemplate) ConvertTo(destRaw conversion.Hub) error
return err
}

dest.Spec.Template.Spec.KubeadmConfigSpec.Ignition = restored.Spec.Template.Spec.KubeadmConfigSpec.Ignition
dst.Spec.Template.Spec.KubeadmConfigSpec.Ignition = restored.Spec.Template.Spec.KubeadmConfigSpec.Ignition
dst.Spec.Template.Spec.MachineTemplate = restored.Spec.Template.Spec.MachineTemplate

return nil
}

func (dest *KubeadmControlPlaneTemplate) ConvertFrom(srcRaw conversion.Hub) error {
func (dst *KubeadmControlPlaneTemplate) ConvertFrom(srcRaw conversion.Hub) error {
src := srcRaw.(*v1beta1.KubeadmControlPlaneTemplate)

if err := Convert_v1beta1_KubeadmControlPlaneTemplate_To_v1alpha4_KubeadmControlPlaneTemplate(src, dest, nil); err != nil {
if err := Convert_v1beta1_KubeadmControlPlaneTemplate_To_v1alpha4_KubeadmControlPlaneTemplate(src, dst, nil); err != nil {
return err
}

// Preserve Hub data on down-conversion except for metadata
return utilconversion.MarshalData(src, dest)
return utilconversion.MarshalData(src, dst)
}

func (src *KubeadmControlPlaneTemplateList) ConvertTo(destRaw conversion.Hub) error {
dest := destRaw.(*v1beta1.KubeadmControlPlaneTemplateList)
func (src *KubeadmControlPlaneTemplateList) ConvertTo(dstRaw conversion.Hub) error {
dst := dstRaw.(*v1beta1.KubeadmControlPlaneTemplateList)

return Convert_v1alpha4_KubeadmControlPlaneTemplateList_To_v1beta1_KubeadmControlPlaneTemplateList(src, dest, nil)
return Convert_v1alpha4_KubeadmControlPlaneTemplateList_To_v1beta1_KubeadmControlPlaneTemplateList(src, dst, nil)
}

func (dest *KubeadmControlPlaneTemplateList) ConvertFrom(srcRaw conversion.Hub) error {
func (dst *KubeadmControlPlaneTemplateList) ConvertFrom(srcRaw conversion.Hub) error {
src := srcRaw.(*v1beta1.KubeadmControlPlaneTemplateList)

return Convert_v1beta1_KubeadmControlPlaneTemplateList_To_v1alpha4_KubeadmControlPlaneTemplateList(src, dest, nil)
return Convert_v1beta1_KubeadmControlPlaneTemplateList_To_v1alpha4_KubeadmControlPlaneTemplateList(src, dst, nil)
}

func Convert_v1alpha4_KubeadmControlPlaneSpec_To_v1beta1_KubeadmControlPlaneTemplateResourceSpec(in *KubeadmControlPlaneSpec, out *v1beta1.KubeadmControlPlaneTemplateResourceSpec, s apiconversion.Scope) error {
out.MachineTemplate = &v1beta1.KubeadmControlPlaneTemplateMachineTemplate{
NodeDrainTimeout: in.MachineTemplate.NodeDrainTimeout,
}

if err := kubeadmbootstrapv1alpha4.Convert_v1alpha4_KubeadmConfigSpec_To_v1beta1_KubeadmConfigSpec(&in.KubeadmConfigSpec, &out.KubeadmConfigSpec, s); err != nil {
return err
}

out.RolloutAfter = in.RolloutAfter

if in.RolloutStrategy != nil {
out.RolloutStrategy = &v1beta1.RolloutStrategy{}
if len(in.RolloutStrategy.Type) > 0 {
out.RolloutStrategy.Type = v1beta1.RolloutStrategyType(in.RolloutStrategy.Type)
}
if in.RolloutStrategy.RollingUpdate != nil {
out.RolloutStrategy.RollingUpdate = &v1beta1.RollingUpdate{}

if in.RolloutStrategy.RollingUpdate.MaxSurge != nil {
out.RolloutStrategy.RollingUpdate.MaxSurge = in.RolloutStrategy.RollingUpdate.MaxSurge
}
}
}

return nil
}

func Convert_v1beta1_KubeadmControlPlaneTemplateResourceSpec_To_v1alpha4_KubeadmControlPlaneSpec(in *v1beta1.KubeadmControlPlaneTemplateResourceSpec, out *KubeadmControlPlaneSpec, s apiconversion.Scope) error {
if in.MachineTemplate != nil {
out.MachineTemplate.NodeDrainTimeout = in.MachineTemplate.NodeDrainTimeout
}

if err := kubeadmbootstrapv1alpha4.Convert_v1beta1_KubeadmConfigSpec_To_v1alpha4_KubeadmConfigSpec(&in.KubeadmConfigSpec, &out.KubeadmConfigSpec, s); err != nil {
return err
}

out.RolloutAfter = in.RolloutAfter

if in.RolloutStrategy != nil {
out.RolloutStrategy = &RolloutStrategy{}
if len(in.RolloutStrategy.Type) > 0 {
out.RolloutStrategy.Type = RolloutStrategyType(in.RolloutStrategy.Type)
}
if in.RolloutStrategy.RollingUpdate != nil {
out.RolloutStrategy.RollingUpdate = &RollingUpdate{}

if in.RolloutStrategy.RollingUpdate.MaxSurge != nil {
out.RolloutStrategy.RollingUpdate.MaxSurge = in.RolloutStrategy.RollingUpdate.MaxSurge
}
}
}

return nil
}
17 changes: 15 additions & 2 deletions controlplane/kubeadm/api/v1alpha4/conversion_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,12 @@ import (
"testing"

fuzz "github.com/google/gofuzz"
corev1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/api/apitesting/fuzzer"
runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer"

"sigs.k8s.io/cluster-api/bootstrap/kubeadm/api/v1alpha4"
clusterv1alpha4 "sigs.k8s.io/cluster-api/api/v1alpha4"
cabpkv1alpha4 "sigs.k8s.io/cluster-api/bootstrap/kubeadm/api/v1alpha4"
cabpkv1 "sigs.k8s.io/cluster-api/bootstrap/kubeadm/api/v1beta1"
"sigs.k8s.io/cluster-api/bootstrap/kubeadm/types/upstreamv1beta1"
"sigs.k8s.io/cluster-api/controlplane/kubeadm/api/v1beta1"
Expand Down Expand Up @@ -65,6 +67,7 @@ func fuzzFuncs(_ runtimeserializer.CodecFactory) []interface{} {
cabpkBootstrapTokenStringFuzzer,
dnsFuzzer,
kubeadmBootstrapTokenStringFuzzerV1Alpha4,
kubeadmControlPlaneTemplateResourceSpecFuzzerV1Alpha4,
}
}

Expand All @@ -85,7 +88,17 @@ func dnsFuzzer(obj *upstreamv1beta1.DNS, c fuzz.Continue) {
obj.Type = ""
}

func kubeadmBootstrapTokenStringFuzzerV1Alpha4(in *v1alpha4.BootstrapTokenString, c fuzz.Continue) {
func kubeadmBootstrapTokenStringFuzzerV1Alpha4(in *cabpkv1alpha4.BootstrapTokenString, c fuzz.Continue) {
in.ID = fakeID
in.Secret = fakeSecret
}

func kubeadmControlPlaneTemplateResourceSpecFuzzerV1Alpha4(in *KubeadmControlPlaneTemplateResource, c fuzz.Continue) {
c.Fuzz(in)

// Fields have been dropped in KCPTemplate.
in.Spec.Replicas = nil
in.Spec.Version = ""
in.Spec.MachineTemplate.ObjectMeta = clusterv1alpha4.ObjectMeta{}
in.Spec.MachineTemplate.InfrastructureRef = corev1.ObjectReference{}
}
14 changes: 12 additions & 2 deletions controlplane/kubeadm/api/v1alpha4/zz_generated.conversion.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading