Skip to content

Commit

Permalink
Merge pull request #136 from erikgb/switch-hub-version
Browse files Browse the repository at this point in the history
chore: make v2 API the new conversion hub
  • Loading branch information
zoetrope committed Jun 14, 2024
2 parents dcb4795 + de9516b commit 46c86f9
Show file tree
Hide file tree
Showing 14 changed files with 167 additions and 167 deletions.
14 changes: 7 additions & 7 deletions api/accurate/v1/conversion.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
}

Expand All @@ -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
}

Expand Down
8 changes: 4 additions & 4 deletions api/accurate/v1/conversion_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand All @@ -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},
}))
Expand All @@ -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 = ""
}
2 changes: 1 addition & 1 deletion api/accurate/v1/doc.go
Original file line number Diff line number Diff line change
@@ -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
18 changes: 9 additions & 9 deletions api/accurate/v1/subnamespace_conversion.go
Original file line number Diff line number Diff line change
@@ -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 {
Expand Down
8 changes: 4 additions & 4 deletions api/accurate/v1/subnamespace_conversion_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
}{
Expand Down Expand Up @@ -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
Expand Down
76 changes: 38 additions & 38 deletions api/accurate/v1/zz_generated.conversion.go

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

1 change: 0 additions & 1 deletion api/accurate/v2/doc.go
Original file line number Diff line number Diff line change
@@ -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
2 changes: 0 additions & 2 deletions api/accurate/v2/groupversion_info.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,4 @@ var (

// AddToScheme adds the types in this group-version to the given scheme.
AddToScheme = SchemeBuilder.AddToScheme

localSchemeBuilder = SchemeBuilder.SchemeBuilder
)
43 changes: 2 additions & 41 deletions api/accurate/v2/subnamespace_conversion.go
Original file line number Diff line number Diff line change
@@ -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() {}
Original file line number Diff line number Diff line change
@@ -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"
Expand All @@ -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},
}))
Expand Down
1 change: 1 addition & 0 deletions api/accurate/v2alpha1/doc.go
Original file line number Diff line number Diff line change
@@ -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
2 changes: 2 additions & 0 deletions api/accurate/v2alpha1/groupversion_info.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,6 @@ var (

// AddToScheme adds the types in this group-version to the given scheme.
AddToScheme = SchemeBuilder.AddToScheme

localSchemeBuilder = SchemeBuilder.SchemeBuilder
)

0 comments on commit 46c86f9

Please sign in to comment.