From de9516b05863862e4b48807ad3f5aad3467ed9cf Mon Sep 17 00:00:00 2001 From: Erik Godding Boye Date: Mon, 10 Jun 2024 18:23:54 +0200 Subject: [PATCH] chore: make v2 API the new conversion hub --- api/accurate/v1/conversion.go | 14 +-- api/accurate/v1/conversion_test.go | 8 +- api/accurate/v1/doc.go | 2 +- api/accurate/v1/subnamespace_conversion.go | 18 +-- .../v1/subnamespace_conversion_test.go | 8 +- api/accurate/v1/zz_generated.conversion.go | 76 ++++++------ api/accurate/v2/doc.go | 1 - api/accurate/v2/groupversion_info.go | 2 - api/accurate/v2/subnamespace_conversion.go | 43 +------ .../{v2 => v2alpha1}/conversion_test.go | 6 +- api/accurate/v2alpha1/doc.go | 1 + api/accurate/v2alpha1/groupversion_info.go | 2 + .../v2alpha1/subnamespace_conversion.go | 43 ++++++- .../zz_generated.conversion.go | 110 +++++++++--------- 14 files changed, 167 insertions(+), 167 deletions(-) rename api/accurate/{v2 => v2alpha1}/conversion_test.go (84%) rename api/accurate/{v2 => v2alpha1}/zz_generated.conversion.go (60%) diff --git a/api/accurate/v1/conversion.go b/api/accurate/v1/conversion.go index e26b336..04fe69d 100644 --- a/api/accurate/v1/conversion.go +++ b/api/accurate/v1/conversion.go @@ -5,16 +5,16 @@ import ( "fmt" "strconv" - accuratev2alpha1 "github.com/cybozu-go/accurate/api/accurate/v2alpha1" + accuratev2 "github.com/cybozu-go/accurate/api/accurate/v2" "github.com/cybozu-go/accurate/pkg/constants" "k8s.io/apimachinery/pkg/api/meta" "k8s.io/apimachinery/pkg/conversion" kstatus "sigs.k8s.io/cli-utils/pkg/kstatus/status" ) -// Convert_v1_SubNamespace_To_v2alpha1_SubNamespace complements the generated conversion functions since status needs special handling -func Convert_v1_SubNamespace_To_v2alpha1_SubNamespace(in *SubNamespace, out *accuratev2alpha1.SubNamespace, s conversion.Scope) error { - if err := autoConvert_v1_SubNamespace_To_v2alpha1_SubNamespace(in, out, s); err != nil { +// Convert_v1_SubNamespace_To_v2_SubNamespace complements the generated conversion functions since status needs special handling +func Convert_v1_SubNamespace_To_v2_SubNamespace(in *SubNamespace, out *accuratev2.SubNamespace, s conversion.Scope) error { + if err := autoConvert_v1_SubNamespace_To_v2_SubNamespace(in, out, s); err != nil { return err } @@ -40,9 +40,9 @@ func Convert_v1_SubNamespace_To_v2alpha1_SubNamespace(in *SubNamespace, out *acc return nil } -// Convert_v2alpha1_SubNamespace_To_v1_SubNamespace complements the generated conversion functions since status needs special handling -func Convert_v2alpha1_SubNamespace_To_v1_SubNamespace(in *accuratev2alpha1.SubNamespace, out *SubNamespace, s conversion.Scope) error { - if err := autoConvert_v2alpha1_SubNamespace_To_v1_SubNamespace(in, out, s); err != nil { +// Convert_v2_SubNamespace_To_v1_SubNamespace complements the generated conversion functions since status needs special handling +func Convert_v2_SubNamespace_To_v1_SubNamespace(in *accuratev2.SubNamespace, out *SubNamespace, s conversion.Scope) error { + if err := autoConvert_v2_SubNamespace_To_v1_SubNamespace(in, out, s); err != nil { return err } diff --git a/api/accurate/v1/conversion_test.go b/api/accurate/v1/conversion_test.go index 54d4362..b542c4f 100644 --- a/api/accurate/v1/conversion_test.go +++ b/api/accurate/v1/conversion_test.go @@ -3,7 +3,7 @@ package v1 import ( "testing" - accuratev2alpha1 "github.com/cybozu-go/accurate/api/accurate/v2alpha1" + accuratev2 "github.com/cybozu-go/accurate/api/accurate/v2" utilconversion "github.com/cybozu-go/accurate/internal/util/conversion" fuzz "github.com/google/gofuzz" "k8s.io/apimachinery/pkg/api/apitesting/fuzzer" @@ -12,7 +12,7 @@ import ( func TestFuzzyConversion(t *testing.T) { t.Run("for SubNamespace", utilconversion.FuzzTestFunc(utilconversion.FuzzTestFuncInput{ - Hub: &accuratev2alpha1.SubNamespace{}, + Hub: &accuratev2.SubNamespace{}, Spoke: &SubNamespace{}, FuzzerFuncs: []fuzzer.FuzzerFuncs{SubNamespaceStatusFuzzFunc}, })) @@ -28,7 +28,7 @@ func SubNamespaceStatusFuzzer(in *SubNamespace, c fuzz.Continue) { c.FuzzNoCustom(in) // The status is just a string in v1, and the controller is the sole actor updating status. - // As long as we make the controller reconcile v2alpha1, and also makes it the stored version, - // we will never need to convert status from v1 to v2alpha1. + // As long as we make the controller reconcile v2, and also makes it the stored version, + // we will never need to convert status from v1 to v2. in.Status = "" } diff --git a/api/accurate/v1/doc.go b/api/accurate/v1/doc.go index 41fd477..0316935 100644 --- a/api/accurate/v1/doc.go +++ b/api/accurate/v1/doc.go @@ -1,4 +1,4 @@ // +kubebuilder:object:generate=true // +groupName=accurate.cybozu.com -// +k8s:conversion-gen=github.com/cybozu-go/accurate/api/accurate/v2alpha1 +// +k8s:conversion-gen=github.com/cybozu-go/accurate/api/accurate/v2 package v1 diff --git a/api/accurate/v1/subnamespace_conversion.go b/api/accurate/v1/subnamespace_conversion.go index 2ed5166..60f13d7 100644 --- a/api/accurate/v1/subnamespace_conversion.go +++ b/api/accurate/v1/subnamespace_conversion.go @@ -1,37 +1,37 @@ package v1 import ( - accuratev2alpha1 "github.com/cybozu-go/accurate/api/accurate/v2alpha1" + accuratev2 "github.com/cybozu-go/accurate/api/accurate/v2" "github.com/go-logr/logr" ctrl "sigs.k8s.io/controller-runtime" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/conversion" ) -// ConvertTo converts this SubNamespace to the Hub version (v2alpha1). +// ConvertTo converts this SubNamespace to the Hub version (v2). func (src *SubNamespace) ConvertTo(dstRaw conversion.Hub) error { - dst := dstRaw.(*accuratev2alpha1.SubNamespace) + dst := dstRaw.(*accuratev2.SubNamespace) logger := getConversionLogger(src).WithValues( "source", SchemeGroupVersion.Version, - "destination", accuratev2alpha1.SchemeGroupVersion.Version, + "destination", accuratev2.SchemeGroupVersion.Version, ) logger.V(5).Info("converting") - return Convert_v1_SubNamespace_To_v2alpha1_SubNamespace(src, dst, nil) + return Convert_v1_SubNamespace_To_v2_SubNamespace(src, dst, nil) } -// ConvertFrom converts from the Hub version (v2alpha1) to this version. +// ConvertFrom converts from the Hub version (v2) to this version. func (dst *SubNamespace) ConvertFrom(srcRaw conversion.Hub) error { - src := srcRaw.(*accuratev2alpha1.SubNamespace) + src := srcRaw.(*accuratev2.SubNamespace) logger := getConversionLogger(src).WithValues( - "source", accuratev2alpha1.SchemeGroupVersion.Version, + "source", accuratev2.SchemeGroupVersion.Version, "destination", SchemeGroupVersion.Version, ) logger.V(5).Info("converting") - return Convert_v2alpha1_SubNamespace_To_v1_SubNamespace(src, dst, nil) + return Convert_v2_SubNamespace_To_v1_SubNamespace(src, dst, nil) } func getConversionLogger(obj client.Object) logr.Logger { diff --git a/api/accurate/v1/subnamespace_conversion_test.go b/api/accurate/v1/subnamespace_conversion_test.go index 86810ee..0b01005 100644 --- a/api/accurate/v1/subnamespace_conversion_test.go +++ b/api/accurate/v1/subnamespace_conversion_test.go @@ -3,14 +3,14 @@ package v1 import ( "testing" - accuratev2alpha1 "github.com/cybozu-go/accurate/api/accurate/v2alpha1" + accuratev2 "github.com/cybozu-go/accurate/api/accurate/v2" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kstatus "sigs.k8s.io/cli-utils/pkg/kstatus/status" ) func TestSubNamespace_ConvertFrom(t *testing.T) { tests := map[string]struct { - src *accuratev2alpha1.SubNamespace + src *accuratev2.SubNamespace expStatus SubNamespaceStatus wantErr bool }{ @@ -42,8 +42,8 @@ func TestSubNamespace_ConvertFrom(t *testing.T) { } } -func newSubNamespaceWithStatus(gen, obsGen int, conds ...metav1.Condition) *accuratev2alpha1.SubNamespace { - subNS := &accuratev2alpha1.SubNamespace{} +func newSubNamespaceWithStatus(gen, obsGen int, conds ...metav1.Condition) *accuratev2.SubNamespace { + subNS := &accuratev2.SubNamespace{} subNS.Generation = int64(gen) subNS.Status.ObservedGeneration = int64(obsGen) subNS.Status.Conditions = conds diff --git a/api/accurate/v1/zz_generated.conversion.go b/api/accurate/v1/zz_generated.conversion.go index 0586278..bb06d98 100644 --- a/api/accurate/v1/zz_generated.conversion.go +++ b/api/accurate/v1/zz_generated.conversion.go @@ -8,7 +8,7 @@ package v1 import ( unsafe "unsafe" - v2alpha1 "github.com/cybozu-go/accurate/api/accurate/v2alpha1" + v2 "github.com/cybozu-go/accurate/api/accurate/v2" conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" ) @@ -20,64 +20,64 @@ func init() { // RegisterConversions adds conversion functions to the given scheme. // Public to allow building arbitrary schemes. func RegisterConversions(s *runtime.Scheme) error { - if err := s.AddGeneratedConversionFunc((*SubNamespaceList)(nil), (*v2alpha1.SubNamespaceList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1_SubNamespaceList_To_v2alpha1_SubNamespaceList(a.(*SubNamespaceList), b.(*v2alpha1.SubNamespaceList), scope) + if err := s.AddGeneratedConversionFunc((*SubNamespaceList)(nil), (*v2.SubNamespaceList)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1_SubNamespaceList_To_v2_SubNamespaceList(a.(*SubNamespaceList), b.(*v2.SubNamespaceList), scope) }); err != nil { return err } - if err := s.AddGeneratedConversionFunc((*v2alpha1.SubNamespaceList)(nil), (*SubNamespaceList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v2alpha1_SubNamespaceList_To_v1_SubNamespaceList(a.(*v2alpha1.SubNamespaceList), b.(*SubNamespaceList), scope) + if err := s.AddGeneratedConversionFunc((*v2.SubNamespaceList)(nil), (*SubNamespaceList)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v2_SubNamespaceList_To_v1_SubNamespaceList(a.(*v2.SubNamespaceList), b.(*SubNamespaceList), scope) }); err != nil { return err } - if err := s.AddGeneratedConversionFunc((*SubNamespaceSpec)(nil), (*v2alpha1.SubNamespaceSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1_SubNamespaceSpec_To_v2alpha1_SubNamespaceSpec(a.(*SubNamespaceSpec), b.(*v2alpha1.SubNamespaceSpec), scope) + if err := s.AddGeneratedConversionFunc((*SubNamespaceSpec)(nil), (*v2.SubNamespaceSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1_SubNamespaceSpec_To_v2_SubNamespaceSpec(a.(*SubNamespaceSpec), b.(*v2.SubNamespaceSpec), scope) }); err != nil { return err } - if err := s.AddGeneratedConversionFunc((*v2alpha1.SubNamespaceSpec)(nil), (*SubNamespaceSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v2alpha1_SubNamespaceSpec_To_v1_SubNamespaceSpec(a.(*v2alpha1.SubNamespaceSpec), b.(*SubNamespaceSpec), scope) + if err := s.AddGeneratedConversionFunc((*v2.SubNamespaceSpec)(nil), (*SubNamespaceSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v2_SubNamespaceSpec_To_v1_SubNamespaceSpec(a.(*v2.SubNamespaceSpec), b.(*SubNamespaceSpec), scope) }); err != nil { return err } - if err := s.AddConversionFunc((*SubNamespace)(nil), (*v2alpha1.SubNamespace)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v1_SubNamespace_To_v2alpha1_SubNamespace(a.(*SubNamespace), b.(*v2alpha1.SubNamespace), scope) + if err := s.AddConversionFunc((*SubNamespace)(nil), (*v2.SubNamespace)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1_SubNamespace_To_v2_SubNamespace(a.(*SubNamespace), b.(*v2.SubNamespace), scope) }); err != nil { return err } - if err := s.AddConversionFunc((*v2alpha1.SubNamespace)(nil), (*SubNamespace)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v2alpha1_SubNamespace_To_v1_SubNamespace(a.(*v2alpha1.SubNamespace), b.(*SubNamespace), scope) + if err := s.AddConversionFunc((*v2.SubNamespace)(nil), (*SubNamespace)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v2_SubNamespace_To_v1_SubNamespace(a.(*v2.SubNamespace), b.(*SubNamespace), scope) }); err != nil { return err } return nil } -func autoConvert_v1_SubNamespace_To_v2alpha1_SubNamespace(in *SubNamespace, out *v2alpha1.SubNamespace, s conversion.Scope) error { +func autoConvert_v1_SubNamespace_To_v2_SubNamespace(in *SubNamespace, out *v2.SubNamespace, s conversion.Scope) error { out.ObjectMeta = in.ObjectMeta - if err := Convert_v1_SubNamespaceSpec_To_v2alpha1_SubNamespaceSpec(&in.Spec, &out.Spec, s); err != nil { + if err := Convert_v1_SubNamespaceSpec_To_v2_SubNamespaceSpec(&in.Spec, &out.Spec, s); err != nil { return err } - // WARNING: in.Status requires manual conversion: inconvertible types (github.com/cybozu-go/accurate/api/accurate/v1.SubNamespaceStatus vs github.com/cybozu-go/accurate/api/accurate/v2alpha1.SubNamespaceStatus) + // WARNING: in.Status requires manual conversion: inconvertible types (github.com/cybozu-go/accurate/api/accurate/v1.SubNamespaceStatus vs github.com/cybozu-go/accurate/api/accurate/v2.SubNamespaceStatus) return nil } -func autoConvert_v2alpha1_SubNamespace_To_v1_SubNamespace(in *v2alpha1.SubNamespace, out *SubNamespace, s conversion.Scope) error { +func autoConvert_v2_SubNamespace_To_v1_SubNamespace(in *v2.SubNamespace, out *SubNamespace, s conversion.Scope) error { out.ObjectMeta = in.ObjectMeta - if err := Convert_v2alpha1_SubNamespaceSpec_To_v1_SubNamespaceSpec(&in.Spec, &out.Spec, s); err != nil { + if err := Convert_v2_SubNamespaceSpec_To_v1_SubNamespaceSpec(&in.Spec, &out.Spec, s); err != nil { return err } - // WARNING: in.Status requires manual conversion: inconvertible types (github.com/cybozu-go/accurate/api/accurate/v2alpha1.SubNamespaceStatus vs github.com/cybozu-go/accurate/api/accurate/v1.SubNamespaceStatus) + // WARNING: in.Status requires manual conversion: inconvertible types (github.com/cybozu-go/accurate/api/accurate/v2.SubNamespaceStatus vs github.com/cybozu-go/accurate/api/accurate/v1.SubNamespaceStatus) return nil } -func autoConvert_v1_SubNamespaceList_To_v2alpha1_SubNamespaceList(in *SubNamespaceList, out *v2alpha1.SubNamespaceList, s conversion.Scope) error { +func autoConvert_v1_SubNamespaceList_To_v2_SubNamespaceList(in *SubNamespaceList, out *v2.SubNamespaceList, s conversion.Scope) error { out.ListMeta = in.ListMeta if in.Items != nil { in, out := &in.Items, &out.Items - *out = make([]v2alpha1.SubNamespace, len(*in)) + *out = make([]v2.SubNamespace, len(*in)) for i := range *in { - if err := Convert_v1_SubNamespace_To_v2alpha1_SubNamespace(&(*in)[i], &(*out)[i], s); err != nil { + if err := Convert_v1_SubNamespace_To_v2_SubNamespace(&(*in)[i], &(*out)[i], s); err != nil { return err } } @@ -87,18 +87,18 @@ func autoConvert_v1_SubNamespaceList_To_v2alpha1_SubNamespaceList(in *SubNamespa return nil } -// Convert_v1_SubNamespaceList_To_v2alpha1_SubNamespaceList is an autogenerated conversion function. -func Convert_v1_SubNamespaceList_To_v2alpha1_SubNamespaceList(in *SubNamespaceList, out *v2alpha1.SubNamespaceList, s conversion.Scope) error { - return autoConvert_v1_SubNamespaceList_To_v2alpha1_SubNamespaceList(in, out, s) +// Convert_v1_SubNamespaceList_To_v2_SubNamespaceList is an autogenerated conversion function. +func Convert_v1_SubNamespaceList_To_v2_SubNamespaceList(in *SubNamespaceList, out *v2.SubNamespaceList, s conversion.Scope) error { + return autoConvert_v1_SubNamespaceList_To_v2_SubNamespaceList(in, out, s) } -func autoConvert_v2alpha1_SubNamespaceList_To_v1_SubNamespaceList(in *v2alpha1.SubNamespaceList, out *SubNamespaceList, s conversion.Scope) error { +func autoConvert_v2_SubNamespaceList_To_v1_SubNamespaceList(in *v2.SubNamespaceList, out *SubNamespaceList, s conversion.Scope) error { out.ListMeta = in.ListMeta if in.Items != nil { in, out := &in.Items, &out.Items *out = make([]SubNamespace, len(*in)) for i := range *in { - if err := Convert_v2alpha1_SubNamespace_To_v1_SubNamespace(&(*in)[i], &(*out)[i], s); err != nil { + if err := Convert_v2_SubNamespace_To_v1_SubNamespace(&(*in)[i], &(*out)[i], s); err != nil { return err } } @@ -108,29 +108,29 @@ func autoConvert_v2alpha1_SubNamespaceList_To_v1_SubNamespaceList(in *v2alpha1.S return nil } -// Convert_v2alpha1_SubNamespaceList_To_v1_SubNamespaceList is an autogenerated conversion function. -func Convert_v2alpha1_SubNamespaceList_To_v1_SubNamespaceList(in *v2alpha1.SubNamespaceList, out *SubNamespaceList, s conversion.Scope) error { - return autoConvert_v2alpha1_SubNamespaceList_To_v1_SubNamespaceList(in, out, s) +// Convert_v2_SubNamespaceList_To_v1_SubNamespaceList is an autogenerated conversion function. +func Convert_v2_SubNamespaceList_To_v1_SubNamespaceList(in *v2.SubNamespaceList, out *SubNamespaceList, s conversion.Scope) error { + return autoConvert_v2_SubNamespaceList_To_v1_SubNamespaceList(in, out, s) } -func autoConvert_v1_SubNamespaceSpec_To_v2alpha1_SubNamespaceSpec(in *SubNamespaceSpec, out *v2alpha1.SubNamespaceSpec, s conversion.Scope) error { +func autoConvert_v1_SubNamespaceSpec_To_v2_SubNamespaceSpec(in *SubNamespaceSpec, out *v2.SubNamespaceSpec, s conversion.Scope) error { out.Labels = *(*map[string]string)(unsafe.Pointer(&in.Labels)) out.Annotations = *(*map[string]string)(unsafe.Pointer(&in.Annotations)) return nil } -// Convert_v1_SubNamespaceSpec_To_v2alpha1_SubNamespaceSpec is an autogenerated conversion function. -func Convert_v1_SubNamespaceSpec_To_v2alpha1_SubNamespaceSpec(in *SubNamespaceSpec, out *v2alpha1.SubNamespaceSpec, s conversion.Scope) error { - return autoConvert_v1_SubNamespaceSpec_To_v2alpha1_SubNamespaceSpec(in, out, s) +// Convert_v1_SubNamespaceSpec_To_v2_SubNamespaceSpec is an autogenerated conversion function. +func Convert_v1_SubNamespaceSpec_To_v2_SubNamespaceSpec(in *SubNamespaceSpec, out *v2.SubNamespaceSpec, s conversion.Scope) error { + return autoConvert_v1_SubNamespaceSpec_To_v2_SubNamespaceSpec(in, out, s) } -func autoConvert_v2alpha1_SubNamespaceSpec_To_v1_SubNamespaceSpec(in *v2alpha1.SubNamespaceSpec, out *SubNamespaceSpec, s conversion.Scope) error { +func autoConvert_v2_SubNamespaceSpec_To_v1_SubNamespaceSpec(in *v2.SubNamespaceSpec, out *SubNamespaceSpec, s conversion.Scope) error { out.Labels = *(*map[string]string)(unsafe.Pointer(&in.Labels)) out.Annotations = *(*map[string]string)(unsafe.Pointer(&in.Annotations)) return nil } -// Convert_v2alpha1_SubNamespaceSpec_To_v1_SubNamespaceSpec is an autogenerated conversion function. -func Convert_v2alpha1_SubNamespaceSpec_To_v1_SubNamespaceSpec(in *v2alpha1.SubNamespaceSpec, out *SubNamespaceSpec, s conversion.Scope) error { - return autoConvert_v2alpha1_SubNamespaceSpec_To_v1_SubNamespaceSpec(in, out, s) +// Convert_v2_SubNamespaceSpec_To_v1_SubNamespaceSpec is an autogenerated conversion function. +func Convert_v2_SubNamespaceSpec_To_v1_SubNamespaceSpec(in *v2.SubNamespaceSpec, out *SubNamespaceSpec, s conversion.Scope) error { + return autoConvert_v2_SubNamespaceSpec_To_v1_SubNamespaceSpec(in, out, s) } diff --git a/api/accurate/v2/doc.go b/api/accurate/v2/doc.go index 6ec0003..9d677ac 100644 --- a/api/accurate/v2/doc.go +++ b/api/accurate/v2/doc.go @@ -1,4 +1,3 @@ // +kubebuilder:object:generate=true // +groupName=accurate.cybozu.com -// +k8s:conversion-gen=github.com/cybozu-go/accurate/api/accurate/v2alpha1 package v2 diff --git a/api/accurate/v2/groupversion_info.go b/api/accurate/v2/groupversion_info.go index db1ad72..2214c30 100644 --- a/api/accurate/v2/groupversion_info.go +++ b/api/accurate/v2/groupversion_info.go @@ -15,6 +15,4 @@ var ( // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = SchemeBuilder.AddToScheme - - localSchemeBuilder = SchemeBuilder.SchemeBuilder ) diff --git a/api/accurate/v2/subnamespace_conversion.go b/api/accurate/v2/subnamespace_conversion.go index bb41bde..6c12ff3 100644 --- a/api/accurate/v2/subnamespace_conversion.go +++ b/api/accurate/v2/subnamespace_conversion.go @@ -1,43 +1,4 @@ package v2 -import ( - accuratev2alpha1 "github.com/cybozu-go/accurate/api/accurate/v2alpha1" - "github.com/go-logr/logr" - ctrl "sigs.k8s.io/controller-runtime" - "sigs.k8s.io/controller-runtime/pkg/client" - "sigs.k8s.io/controller-runtime/pkg/conversion" -) - -// ConvertTo converts this SubNamespace to the Hub version (v2alpha1). -func (src *SubNamespace) ConvertTo(dstRaw conversion.Hub) error { - dst := dstRaw.(*accuratev2alpha1.SubNamespace) - - logger := getConversionLogger(src).WithValues( - "source", SchemeGroupVersion.Version, - "destination", accuratev2alpha1.SchemeGroupVersion.Version, - ) - logger.V(5).Info("converting") - - return Convert_v2_SubNamespace_To_v2alpha1_SubNamespace(src, dst, nil) -} - -// ConvertFrom converts from the Hub version (v2alpha1) to this version. -func (dst *SubNamespace) ConvertFrom(srcRaw conversion.Hub) error { - src := srcRaw.(*accuratev2alpha1.SubNamespace) - - logger := getConversionLogger(src).WithValues( - "source", accuratev2alpha1.SchemeGroupVersion.Version, - "destination", SchemeGroupVersion.Version, - ) - logger.V(5).Info("converting") - - return Convert_v2alpha1_SubNamespace_To_v2_SubNamespace(src, dst, nil) -} - -func getConversionLogger(obj client.Object) logr.Logger { - return ctrl.Log.WithName("conversion").WithValues( - "kind", "SubNamespace", - "namespace", obj.GetNamespace(), - "name", obj.GetName(), - ) -} +// Hub marks this SubNamespace version as a conversion hub. +func (*SubNamespace) Hub() {} diff --git a/api/accurate/v2/conversion_test.go b/api/accurate/v2alpha1/conversion_test.go similarity index 84% rename from api/accurate/v2/conversion_test.go rename to api/accurate/v2alpha1/conversion_test.go index 3b17501..b6382a8 100644 --- a/api/accurate/v2/conversion_test.go +++ b/api/accurate/v2alpha1/conversion_test.go @@ -1,9 +1,9 @@ -package v2 +package v2alpha1 import ( "testing" - accuratev2alpha1 "github.com/cybozu-go/accurate/api/accurate/v2alpha1" + accuratev2 "github.com/cybozu-go/accurate/api/accurate/v2" utilconversion "github.com/cybozu-go/accurate/internal/util/conversion" fuzz "github.com/google/gofuzz" "k8s.io/apimachinery/pkg/api/apitesting/fuzzer" @@ -12,7 +12,7 @@ import ( func TestFuzzyConversion(t *testing.T) { t.Run("for SubNamespace", utilconversion.FuzzTestFunc(utilconversion.FuzzTestFuncInput{ - Hub: &accuratev2alpha1.SubNamespace{}, + Hub: &accuratev2.SubNamespace{}, Spoke: &SubNamespace{}, FuzzerFuncs: []fuzzer.FuzzerFuncs{SubNamespaceStatusFuzzFunc}, })) diff --git a/api/accurate/v2alpha1/doc.go b/api/accurate/v2alpha1/doc.go index 5a49f71..fcacea6 100644 --- a/api/accurate/v2alpha1/doc.go +++ b/api/accurate/v2alpha1/doc.go @@ -1,3 +1,4 @@ // +kubebuilder:object:generate=true // +groupName=accurate.cybozu.com +// +k8s:conversion-gen=github.com/cybozu-go/accurate/api/accurate/v2 package v2alpha1 diff --git a/api/accurate/v2alpha1/groupversion_info.go b/api/accurate/v2alpha1/groupversion_info.go index 119dbe2..43ee68d 100644 --- a/api/accurate/v2alpha1/groupversion_info.go +++ b/api/accurate/v2alpha1/groupversion_info.go @@ -15,4 +15,6 @@ var ( // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = SchemeBuilder.AddToScheme + + localSchemeBuilder = SchemeBuilder.SchemeBuilder ) diff --git a/api/accurate/v2alpha1/subnamespace_conversion.go b/api/accurate/v2alpha1/subnamespace_conversion.go index 28560c8..2cd3d1d 100644 --- a/api/accurate/v2alpha1/subnamespace_conversion.go +++ b/api/accurate/v2alpha1/subnamespace_conversion.go @@ -1,4 +1,43 @@ package v2alpha1 -// Hub marks this SubNamespace version as a conversion hub. -func (*SubNamespace) Hub() {} +import ( + accuratev2 "github.com/cybozu-go/accurate/api/accurate/v2" + "github.com/go-logr/logr" + ctrl "sigs.k8s.io/controller-runtime" + "sigs.k8s.io/controller-runtime/pkg/client" + "sigs.k8s.io/controller-runtime/pkg/conversion" +) + +// ConvertTo converts this SubNamespace to the Hub version (v2alpha1). +func (src *SubNamespace) ConvertTo(dstRaw conversion.Hub) error { + dst := dstRaw.(*accuratev2.SubNamespace) + + logger := getConversionLogger(src).WithValues( + "source", SchemeGroupVersion.Version, + "destination", accuratev2.SchemeGroupVersion.Version, + ) + logger.V(5).Info("converting") + + return Convert_v2alpha1_SubNamespace_To_v2_SubNamespace(src, dst, nil) +} + +// ConvertFrom converts from the Hub version (v2alpha1) to this version. +func (dst *SubNamespace) ConvertFrom(srcRaw conversion.Hub) error { + src := srcRaw.(*accuratev2.SubNamespace) + + logger := getConversionLogger(src).WithValues( + "source", accuratev2.SchemeGroupVersion.Version, + "destination", SchemeGroupVersion.Version, + ) + logger.V(5).Info("converting") + + return Convert_v2_SubNamespace_To_v2alpha1_SubNamespace(src, dst, nil) +} + +func getConversionLogger(obj client.Object) logr.Logger { + return ctrl.Log.WithName("conversion").WithValues( + "kind", "SubNamespace", + "namespace", obj.GetNamespace(), + "name", obj.GetName(), + ) +} diff --git a/api/accurate/v2/zz_generated.conversion.go b/api/accurate/v2alpha1/zz_generated.conversion.go similarity index 60% rename from api/accurate/v2/zz_generated.conversion.go rename to api/accurate/v2alpha1/zz_generated.conversion.go index a575e06..ef68e82 100644 --- a/api/accurate/v2/zz_generated.conversion.go +++ b/api/accurate/v2alpha1/zz_generated.conversion.go @@ -3,12 +3,12 @@ // Code generated by conversion-gen. DO NOT EDIT. -package v2 +package v2alpha1 import ( unsafe "unsafe" - v2alpha1 "github.com/cybozu-go/accurate/api/accurate/v2alpha1" + v2 "github.com/cybozu-go/accurate/api/accurate/v2" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" @@ -21,143 +21,143 @@ func init() { // RegisterConversions adds conversion functions to the given scheme. // Public to allow building arbitrary schemes. func RegisterConversions(s *runtime.Scheme) error { - if err := s.AddGeneratedConversionFunc((*SubNamespace)(nil), (*v2alpha1.SubNamespace)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v2_SubNamespace_To_v2alpha1_SubNamespace(a.(*SubNamespace), b.(*v2alpha1.SubNamespace), scope) + if err := s.AddGeneratedConversionFunc((*SubNamespace)(nil), (*v2.SubNamespace)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v2alpha1_SubNamespace_To_v2_SubNamespace(a.(*SubNamespace), b.(*v2.SubNamespace), scope) }); err != nil { return err } - if err := s.AddGeneratedConversionFunc((*v2alpha1.SubNamespace)(nil), (*SubNamespace)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v2alpha1_SubNamespace_To_v2_SubNamespace(a.(*v2alpha1.SubNamespace), b.(*SubNamespace), scope) + if err := s.AddGeneratedConversionFunc((*v2.SubNamespace)(nil), (*SubNamespace)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v2_SubNamespace_To_v2alpha1_SubNamespace(a.(*v2.SubNamespace), b.(*SubNamespace), scope) }); err != nil { return err } - if err := s.AddGeneratedConversionFunc((*SubNamespaceList)(nil), (*v2alpha1.SubNamespaceList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v2_SubNamespaceList_To_v2alpha1_SubNamespaceList(a.(*SubNamespaceList), b.(*v2alpha1.SubNamespaceList), scope) + if err := s.AddGeneratedConversionFunc((*SubNamespaceList)(nil), (*v2.SubNamespaceList)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v2alpha1_SubNamespaceList_To_v2_SubNamespaceList(a.(*SubNamespaceList), b.(*v2.SubNamespaceList), scope) }); err != nil { return err } - if err := s.AddGeneratedConversionFunc((*v2alpha1.SubNamespaceList)(nil), (*SubNamespaceList)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v2alpha1_SubNamespaceList_To_v2_SubNamespaceList(a.(*v2alpha1.SubNamespaceList), b.(*SubNamespaceList), scope) + if err := s.AddGeneratedConversionFunc((*v2.SubNamespaceList)(nil), (*SubNamespaceList)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v2_SubNamespaceList_To_v2alpha1_SubNamespaceList(a.(*v2.SubNamespaceList), b.(*SubNamespaceList), scope) }); err != nil { return err } - if err := s.AddGeneratedConversionFunc((*SubNamespaceSpec)(nil), (*v2alpha1.SubNamespaceSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v2_SubNamespaceSpec_To_v2alpha1_SubNamespaceSpec(a.(*SubNamespaceSpec), b.(*v2alpha1.SubNamespaceSpec), scope) + if err := s.AddGeneratedConversionFunc((*SubNamespaceSpec)(nil), (*v2.SubNamespaceSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v2alpha1_SubNamespaceSpec_To_v2_SubNamespaceSpec(a.(*SubNamespaceSpec), b.(*v2.SubNamespaceSpec), scope) }); err != nil { return err } - if err := s.AddGeneratedConversionFunc((*v2alpha1.SubNamespaceSpec)(nil), (*SubNamespaceSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v2alpha1_SubNamespaceSpec_To_v2_SubNamespaceSpec(a.(*v2alpha1.SubNamespaceSpec), b.(*SubNamespaceSpec), scope) + if err := s.AddGeneratedConversionFunc((*v2.SubNamespaceSpec)(nil), (*SubNamespaceSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v2_SubNamespaceSpec_To_v2alpha1_SubNamespaceSpec(a.(*v2.SubNamespaceSpec), b.(*SubNamespaceSpec), scope) }); err != nil { return err } - if err := s.AddGeneratedConversionFunc((*SubNamespaceStatus)(nil), (*v2alpha1.SubNamespaceStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v2_SubNamespaceStatus_To_v2alpha1_SubNamespaceStatus(a.(*SubNamespaceStatus), b.(*v2alpha1.SubNamespaceStatus), scope) + if err := s.AddGeneratedConversionFunc((*SubNamespaceStatus)(nil), (*v2.SubNamespaceStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v2alpha1_SubNamespaceStatus_To_v2_SubNamespaceStatus(a.(*SubNamespaceStatus), b.(*v2.SubNamespaceStatus), scope) }); err != nil { return err } - if err := s.AddGeneratedConversionFunc((*v2alpha1.SubNamespaceStatus)(nil), (*SubNamespaceStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { - return Convert_v2alpha1_SubNamespaceStatus_To_v2_SubNamespaceStatus(a.(*v2alpha1.SubNamespaceStatus), b.(*SubNamespaceStatus), scope) + if err := s.AddGeneratedConversionFunc((*v2.SubNamespaceStatus)(nil), (*SubNamespaceStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v2_SubNamespaceStatus_To_v2alpha1_SubNamespaceStatus(a.(*v2.SubNamespaceStatus), b.(*SubNamespaceStatus), scope) }); err != nil { return err } return nil } -func autoConvert_v2_SubNamespace_To_v2alpha1_SubNamespace(in *SubNamespace, out *v2alpha1.SubNamespace, s conversion.Scope) error { +func autoConvert_v2alpha1_SubNamespace_To_v2_SubNamespace(in *SubNamespace, out *v2.SubNamespace, s conversion.Scope) error { out.ObjectMeta = in.ObjectMeta - if err := Convert_v2_SubNamespaceSpec_To_v2alpha1_SubNamespaceSpec(&in.Spec, &out.Spec, s); err != nil { + if err := Convert_v2alpha1_SubNamespaceSpec_To_v2_SubNamespaceSpec(&in.Spec, &out.Spec, s); err != nil { return err } - if err := Convert_v2_SubNamespaceStatus_To_v2alpha1_SubNamespaceStatus(&in.Status, &out.Status, s); err != nil { + if err := Convert_v2alpha1_SubNamespaceStatus_To_v2_SubNamespaceStatus(&in.Status, &out.Status, s); err != nil { return err } return nil } -// Convert_v2_SubNamespace_To_v2alpha1_SubNamespace is an autogenerated conversion function. -func Convert_v2_SubNamespace_To_v2alpha1_SubNamespace(in *SubNamespace, out *v2alpha1.SubNamespace, s conversion.Scope) error { - return autoConvert_v2_SubNamespace_To_v2alpha1_SubNamespace(in, out, s) +// Convert_v2alpha1_SubNamespace_To_v2_SubNamespace is an autogenerated conversion function. +func Convert_v2alpha1_SubNamespace_To_v2_SubNamespace(in *SubNamespace, out *v2.SubNamespace, s conversion.Scope) error { + return autoConvert_v2alpha1_SubNamespace_To_v2_SubNamespace(in, out, s) } -func autoConvert_v2alpha1_SubNamespace_To_v2_SubNamespace(in *v2alpha1.SubNamespace, out *SubNamespace, s conversion.Scope) error { +func autoConvert_v2_SubNamespace_To_v2alpha1_SubNamespace(in *v2.SubNamespace, out *SubNamespace, s conversion.Scope) error { out.ObjectMeta = in.ObjectMeta - if err := Convert_v2alpha1_SubNamespaceSpec_To_v2_SubNamespaceSpec(&in.Spec, &out.Spec, s); err != nil { + if err := Convert_v2_SubNamespaceSpec_To_v2alpha1_SubNamespaceSpec(&in.Spec, &out.Spec, s); err != nil { return err } - if err := Convert_v2alpha1_SubNamespaceStatus_To_v2_SubNamespaceStatus(&in.Status, &out.Status, s); err != nil { + if err := Convert_v2_SubNamespaceStatus_To_v2alpha1_SubNamespaceStatus(&in.Status, &out.Status, s); err != nil { return err } return nil } -// Convert_v2alpha1_SubNamespace_To_v2_SubNamespace is an autogenerated conversion function. -func Convert_v2alpha1_SubNamespace_To_v2_SubNamespace(in *v2alpha1.SubNamespace, out *SubNamespace, s conversion.Scope) error { - return autoConvert_v2alpha1_SubNamespace_To_v2_SubNamespace(in, out, s) +// Convert_v2_SubNamespace_To_v2alpha1_SubNamespace is an autogenerated conversion function. +func Convert_v2_SubNamespace_To_v2alpha1_SubNamespace(in *v2.SubNamespace, out *SubNamespace, s conversion.Scope) error { + return autoConvert_v2_SubNamespace_To_v2alpha1_SubNamespace(in, out, s) } -func autoConvert_v2_SubNamespaceList_To_v2alpha1_SubNamespaceList(in *SubNamespaceList, out *v2alpha1.SubNamespaceList, s conversion.Scope) error { +func autoConvert_v2alpha1_SubNamespaceList_To_v2_SubNamespaceList(in *SubNamespaceList, out *v2.SubNamespaceList, s conversion.Scope) error { out.ListMeta = in.ListMeta - out.Items = *(*[]v2alpha1.SubNamespace)(unsafe.Pointer(&in.Items)) + out.Items = *(*[]v2.SubNamespace)(unsafe.Pointer(&in.Items)) return nil } -// Convert_v2_SubNamespaceList_To_v2alpha1_SubNamespaceList is an autogenerated conversion function. -func Convert_v2_SubNamespaceList_To_v2alpha1_SubNamespaceList(in *SubNamespaceList, out *v2alpha1.SubNamespaceList, s conversion.Scope) error { - return autoConvert_v2_SubNamespaceList_To_v2alpha1_SubNamespaceList(in, out, s) +// Convert_v2alpha1_SubNamespaceList_To_v2_SubNamespaceList is an autogenerated conversion function. +func Convert_v2alpha1_SubNamespaceList_To_v2_SubNamespaceList(in *SubNamespaceList, out *v2.SubNamespaceList, s conversion.Scope) error { + return autoConvert_v2alpha1_SubNamespaceList_To_v2_SubNamespaceList(in, out, s) } -func autoConvert_v2alpha1_SubNamespaceList_To_v2_SubNamespaceList(in *v2alpha1.SubNamespaceList, out *SubNamespaceList, s conversion.Scope) error { +func autoConvert_v2_SubNamespaceList_To_v2alpha1_SubNamespaceList(in *v2.SubNamespaceList, out *SubNamespaceList, s conversion.Scope) error { out.ListMeta = in.ListMeta out.Items = *(*[]SubNamespace)(unsafe.Pointer(&in.Items)) return nil } -// Convert_v2alpha1_SubNamespaceList_To_v2_SubNamespaceList is an autogenerated conversion function. -func Convert_v2alpha1_SubNamespaceList_To_v2_SubNamespaceList(in *v2alpha1.SubNamespaceList, out *SubNamespaceList, s conversion.Scope) error { - return autoConvert_v2alpha1_SubNamespaceList_To_v2_SubNamespaceList(in, out, s) +// Convert_v2_SubNamespaceList_To_v2alpha1_SubNamespaceList is an autogenerated conversion function. +func Convert_v2_SubNamespaceList_To_v2alpha1_SubNamespaceList(in *v2.SubNamespaceList, out *SubNamespaceList, s conversion.Scope) error { + return autoConvert_v2_SubNamespaceList_To_v2alpha1_SubNamespaceList(in, out, s) } -func autoConvert_v2_SubNamespaceSpec_To_v2alpha1_SubNamespaceSpec(in *SubNamespaceSpec, out *v2alpha1.SubNamespaceSpec, s conversion.Scope) error { +func autoConvert_v2alpha1_SubNamespaceSpec_To_v2_SubNamespaceSpec(in *SubNamespaceSpec, out *v2.SubNamespaceSpec, s conversion.Scope) error { out.Labels = *(*map[string]string)(unsafe.Pointer(&in.Labels)) out.Annotations = *(*map[string]string)(unsafe.Pointer(&in.Annotations)) return nil } -// Convert_v2_SubNamespaceSpec_To_v2alpha1_SubNamespaceSpec is an autogenerated conversion function. -func Convert_v2_SubNamespaceSpec_To_v2alpha1_SubNamespaceSpec(in *SubNamespaceSpec, out *v2alpha1.SubNamespaceSpec, s conversion.Scope) error { - return autoConvert_v2_SubNamespaceSpec_To_v2alpha1_SubNamespaceSpec(in, out, s) +// Convert_v2alpha1_SubNamespaceSpec_To_v2_SubNamespaceSpec is an autogenerated conversion function. +func Convert_v2alpha1_SubNamespaceSpec_To_v2_SubNamespaceSpec(in *SubNamespaceSpec, out *v2.SubNamespaceSpec, s conversion.Scope) error { + return autoConvert_v2alpha1_SubNamespaceSpec_To_v2_SubNamespaceSpec(in, out, s) } -func autoConvert_v2alpha1_SubNamespaceSpec_To_v2_SubNamespaceSpec(in *v2alpha1.SubNamespaceSpec, out *SubNamespaceSpec, s conversion.Scope) error { +func autoConvert_v2_SubNamespaceSpec_To_v2alpha1_SubNamespaceSpec(in *v2.SubNamespaceSpec, out *SubNamespaceSpec, s conversion.Scope) error { out.Labels = *(*map[string]string)(unsafe.Pointer(&in.Labels)) out.Annotations = *(*map[string]string)(unsafe.Pointer(&in.Annotations)) return nil } -// Convert_v2alpha1_SubNamespaceSpec_To_v2_SubNamespaceSpec is an autogenerated conversion function. -func Convert_v2alpha1_SubNamespaceSpec_To_v2_SubNamespaceSpec(in *v2alpha1.SubNamespaceSpec, out *SubNamespaceSpec, s conversion.Scope) error { - return autoConvert_v2alpha1_SubNamespaceSpec_To_v2_SubNamespaceSpec(in, out, s) +// Convert_v2_SubNamespaceSpec_To_v2alpha1_SubNamespaceSpec is an autogenerated conversion function. +func Convert_v2_SubNamespaceSpec_To_v2alpha1_SubNamespaceSpec(in *v2.SubNamespaceSpec, out *SubNamespaceSpec, s conversion.Scope) error { + return autoConvert_v2_SubNamespaceSpec_To_v2alpha1_SubNamespaceSpec(in, out, s) } -func autoConvert_v2_SubNamespaceStatus_To_v2alpha1_SubNamespaceStatus(in *SubNamespaceStatus, out *v2alpha1.SubNamespaceStatus, s conversion.Scope) error { +func autoConvert_v2alpha1_SubNamespaceStatus_To_v2_SubNamespaceStatus(in *SubNamespaceStatus, out *v2.SubNamespaceStatus, s conversion.Scope) error { out.ObservedGeneration = in.ObservedGeneration out.Conditions = *(*[]v1.Condition)(unsafe.Pointer(&in.Conditions)) return nil } -// Convert_v2_SubNamespaceStatus_To_v2alpha1_SubNamespaceStatus is an autogenerated conversion function. -func Convert_v2_SubNamespaceStatus_To_v2alpha1_SubNamespaceStatus(in *SubNamespaceStatus, out *v2alpha1.SubNamespaceStatus, s conversion.Scope) error { - return autoConvert_v2_SubNamespaceStatus_To_v2alpha1_SubNamespaceStatus(in, out, s) +// Convert_v2alpha1_SubNamespaceStatus_To_v2_SubNamespaceStatus is an autogenerated conversion function. +func Convert_v2alpha1_SubNamespaceStatus_To_v2_SubNamespaceStatus(in *SubNamespaceStatus, out *v2.SubNamespaceStatus, s conversion.Scope) error { + return autoConvert_v2alpha1_SubNamespaceStatus_To_v2_SubNamespaceStatus(in, out, s) } -func autoConvert_v2alpha1_SubNamespaceStatus_To_v2_SubNamespaceStatus(in *v2alpha1.SubNamespaceStatus, out *SubNamespaceStatus, s conversion.Scope) error { +func autoConvert_v2_SubNamespaceStatus_To_v2alpha1_SubNamespaceStatus(in *v2.SubNamespaceStatus, out *SubNamespaceStatus, s conversion.Scope) error { out.ObservedGeneration = in.ObservedGeneration out.Conditions = *(*[]v1.Condition)(unsafe.Pointer(&in.Conditions)) return nil } -// Convert_v2alpha1_SubNamespaceStatus_To_v2_SubNamespaceStatus is an autogenerated conversion function. -func Convert_v2alpha1_SubNamespaceStatus_To_v2_SubNamespaceStatus(in *v2alpha1.SubNamespaceStatus, out *SubNamespaceStatus, s conversion.Scope) error { - return autoConvert_v2alpha1_SubNamespaceStatus_To_v2_SubNamespaceStatus(in, out, s) +// Convert_v2_SubNamespaceStatus_To_v2alpha1_SubNamespaceStatus is an autogenerated conversion function. +func Convert_v2_SubNamespaceStatus_To_v2alpha1_SubNamespaceStatus(in *v2.SubNamespaceStatus, out *SubNamespaceStatus, s conversion.Scope) error { + return autoConvert_v2_SubNamespaceStatus_To_v2alpha1_SubNamespaceStatus(in, out, s) }