Skip to content

Commit

Permalink
chore: refactor ops package
Browse files Browse the repository at this point in the history
Signed-off-by: Mattia Lavacca <[email protected]>
  • Loading branch information
mlavacca committed Oct 21, 2024
1 parent 0129f25 commit bc68ed7
Show file tree
Hide file tree
Showing 97 changed files with 367 additions and 318 deletions.
9 changes: 4 additions & 5 deletions .mockery.yaml
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
quiet: False
inpackage: True
disable-version-string: True
with-expecter: True

filename: "{{ trimSuffix .InterfaceFile \".go\" | base | lower }}_mock.go"
dir: "{{ .InterfaceDir }}"
filename: "zz_generated.{{ trimSuffix .InterfaceFile \".go\" | base | lower }}_mock.go"
dir: "{{ .InterfaceDir }}/mocks"
mockname: "Mock{{ .InterfaceName }}"
outpkg: "{{ .PackageName }}"
outpkg: "mocks"

packages:
github.com/kong/gateway-operator/controller/konnect/ops:
github.com/kong/gateway-operator/controller/konnect/ops/sdk:
interfaces:
ControlPlaneSDK:
ControlPlaneGroupSDK:
Expand Down
7 changes: 4 additions & 3 deletions controller/konnect/ops/ops.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import (
ctrllog "sigs.k8s.io/controller-runtime/pkg/log"

"github.com/kong/gateway-operator/controller/konnect/constraints"
sdkops "github.com/kong/gateway-operator/controller/konnect/ops/sdk"
"github.com/kong/gateway-operator/controller/pkg/log"
"github.com/kong/gateway-operator/pkg/consts"
k8sutils "github.com/kong/gateway-operator/pkg/utils/kubernetes"
Expand Down Expand Up @@ -46,7 +47,7 @@ func Create[
TEnt constraints.EntityType[T],
](
ctx context.Context,
sdk SDKWrapper,
sdk sdkops.SDKWrapper,
cl client.Client,
e TEnt,
) (*T, error) {
Expand Down Expand Up @@ -164,7 +165,7 @@ func Create[
func Delete[
T constraints.SupportedKonnectEntityType,
TEnt constraints.EntityType[T],
](ctx context.Context, sdk SDKWrapper, cl client.Client, e *T) error {
](ctx context.Context, sdk sdkops.SDKWrapper, cl client.Client, e *T) error {
ent := TEnt(e)
if ent.GetKonnectStatus().GetKonnectID() == "" {
return fmt.Errorf(
Expand Down Expand Up @@ -273,7 +274,7 @@ func Update[
TEnt constraints.EntityType[T],
](
ctx context.Context,
sdk SDKWrapper,
sdk sdkops.SDKWrapper,
syncPeriod time.Duration,
cl client.Client,
e TEnt,
Expand Down
16 changes: 9 additions & 7 deletions controller/konnect/ops/ops_controlplane.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ import (
"sigs.k8s.io/controller-runtime/pkg/client"
ctrllog "sigs.k8s.io/controller-runtime/pkg/log"

sdkops "github.com/kong/gateway-operator/controller/konnect/ops/sdk"

konnectv1alpha1 "github.com/kong/kubernetes-configuration/api/konnect/v1alpha1"
)

Expand All @@ -25,8 +27,8 @@ import (
// is returned so it can be handled properly downstream.
func createControlPlane(
ctx context.Context,
sdk ControlPlaneSDK,
sdkGroups ControlPlaneGroupSDK,
sdk sdkops.ControlPlaneSDK,
sdkGroups sdkops.ControlPlaneGroupSDK,
cl client.Client,
cp *konnectv1alpha1.KonnectGatewayControlPlane,
) error {
Expand Down Expand Up @@ -64,7 +66,7 @@ func createControlPlane(
// It is assumed that the Konnect ControlPlane has a Konnect ID.
func deleteControlPlane(
ctx context.Context,
sdk ControlPlaneSDK,
sdk sdkops.ControlPlaneSDK,
cp *konnectv1alpha1.KonnectGatewayControlPlane,
) error {
id := cp.GetKonnectStatus().GetKonnectID()
Expand Down Expand Up @@ -101,8 +103,8 @@ func deleteControlPlane(
// be handled properly downstream.
func updateControlPlane(
ctx context.Context,
sdk ControlPlaneSDK,
sdkGroups ControlPlaneGroupSDK,
sdk sdkops.ControlPlaneSDK,
sdkGroups sdkops.ControlPlaneGroupSDK,
cl client.Client,
cp *konnectv1alpha1.KonnectGatewayControlPlane,
) error {
Expand Down Expand Up @@ -159,7 +161,7 @@ func setGroupMembers(
cl client.Client,
cp *konnectv1alpha1.KonnectGatewayControlPlane,
id string,
sdkGroups ControlPlaneGroupSDK,
sdkGroups sdkops.ControlPlaneGroupSDK,
) error {
if len(cp.Spec.Members) == 0 ||
cp.Spec.ClusterType == nil ||
Expand Down Expand Up @@ -216,7 +218,7 @@ func (m membersByID) Swap(i, j int) { m[i], m[j] = m[j], m[i] }
// that matches the UID of the provided KonnectGatewayControlPlane.
func getControlPlaneForUID(
ctx context.Context,
sdk ControlPlaneSDK,
sdk sdkops.ControlPlaneSDK,
cp *konnectv1alpha1.KonnectGatewayControlPlane,
) (string, error) {
reqList := sdkkonnectops.ListControlPlanesRequest{
Expand Down
85 changes: 43 additions & 42 deletions controller/konnect/ops/ops_controlplane_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import (
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/client/fake"

sdkmocks "github.com/kong/gateway-operator/controller/konnect/ops/sdk/mocks"
"github.com/kong/gateway-operator/modules/manager/scheme"

konnectv1alpha1 "github.com/kong/kubernetes-configuration/api/konnect/v1alpha1"
Expand All @@ -33,17 +34,17 @@ func TestCreateControlPlane(t *testing.T) {
ctx := context.Background()
testCases := []struct {
name string
mockCPTuple func(*testing.T) (*MockControlPlaneSDK, *MockControlPlaneGroupSDK, *konnectv1alpha1.KonnectGatewayControlPlane)
mockCPTuple func(*testing.T) (*sdkmocks.MockControlPlaneSDK, *sdkmocks.MockControlPlaneGroupSDK, *konnectv1alpha1.KonnectGatewayControlPlane)
objects []client.Object
expectedErrContains string
expectedErrType error
expectedID string
}{
{
name: "success",
mockCPTuple: func(t *testing.T) (*MockControlPlaneSDK, *MockControlPlaneGroupSDK, *konnectv1alpha1.KonnectGatewayControlPlane) {
sdk := NewMockControlPlaneSDK(t)
sdkGroups := NewMockControlPlaneGroupSDK(t)
mockCPTuple: func(t *testing.T) (*sdkmocks.MockControlPlaneSDK, *sdkmocks.MockControlPlaneGroupSDK, *konnectv1alpha1.KonnectGatewayControlPlane) {
sdk := sdkmocks.NewMockControlPlaneSDK(t)
sdkGroups := sdkmocks.NewMockControlPlaneGroupSDK(t)
cp := &konnectv1alpha1.KonnectGatewayControlPlane{
Spec: konnectv1alpha1.KonnectGatewayControlPlaneSpec{
CreateControlPlaneRequest: sdkkonnectcomp.CreateControlPlaneRequest{
Expand Down Expand Up @@ -72,9 +73,9 @@ func TestCreateControlPlane(t *testing.T) {
},
{
name: "fail",
mockCPTuple: func(t *testing.T) (*MockControlPlaneSDK, *MockControlPlaneGroupSDK, *konnectv1alpha1.KonnectGatewayControlPlane) {
sdk := NewMockControlPlaneSDK(t)
sdkGroups := NewMockControlPlaneGroupSDK(t)
mockCPTuple: func(t *testing.T) (*sdkmocks.MockControlPlaneSDK, *sdkmocks.MockControlPlaneGroupSDK, *konnectv1alpha1.KonnectGatewayControlPlane) {
sdk := sdkmocks.NewMockControlPlaneSDK(t)
sdkGroups := sdkmocks.NewMockControlPlaneGroupSDK(t)
cp := &konnectv1alpha1.KonnectGatewayControlPlane{
ObjectMeta: metav1.ObjectMeta{
Name: "cp-1",
Expand Down Expand Up @@ -125,9 +126,9 @@ func TestCreateControlPlane(t *testing.T) {
},
},
},
mockCPTuple: func(t *testing.T) (*MockControlPlaneSDK, *MockControlPlaneGroupSDK, *konnectv1alpha1.KonnectGatewayControlPlane) {
sdk := NewMockControlPlaneSDK(t)
sdkGroups := NewMockControlPlaneGroupSDK(t)
mockCPTuple: func(t *testing.T) (*sdkmocks.MockControlPlaneSDK, *sdkmocks.MockControlPlaneGroupSDK, *konnectv1alpha1.KonnectGatewayControlPlane) {
sdk := sdkmocks.NewMockControlPlaneSDK(t)
sdkGroups := sdkmocks.NewMockControlPlaneGroupSDK(t)
cp := &konnectv1alpha1.KonnectGatewayControlPlane{
ObjectMeta: metav1.ObjectMeta{
Name: "cpg-1",
Expand Down Expand Up @@ -194,9 +195,9 @@ func TestCreateControlPlane(t *testing.T) {
},
},
},
mockCPTuple: func(t *testing.T) (*MockControlPlaneSDK, *MockControlPlaneGroupSDK, *konnectv1alpha1.KonnectGatewayControlPlane) {
sdk := NewMockControlPlaneSDK(t)
sdkGroups := NewMockControlPlaneGroupSDK(t)
mockCPTuple: func(t *testing.T) (*sdkmocks.MockControlPlaneSDK, *sdkmocks.MockControlPlaneGroupSDK, *konnectv1alpha1.KonnectGatewayControlPlane) {
sdk := sdkmocks.NewMockControlPlaneSDK(t)
sdkGroups := sdkmocks.NewMockControlPlaneGroupSDK(t)
cp := &konnectv1alpha1.KonnectGatewayControlPlane{
ObjectMeta: metav1.ObjectMeta{
Name: "cpg-1",
Expand Down Expand Up @@ -275,14 +276,14 @@ func TestDeleteControlPlane(t *testing.T) {
ctx := context.Background()
testCases := []struct {
name string
mockCPPair func(*testing.T) (*MockControlPlaneSDK, *konnectv1alpha1.KonnectGatewayControlPlane)
mockCPPair func(*testing.T) (*sdkmocks.MockControlPlaneSDK, *konnectv1alpha1.KonnectGatewayControlPlane)
expectedErr bool
assertions func(*testing.T, *konnectv1alpha1.KonnectGatewayControlPlane)
}{
{
name: "success",
mockCPPair: func(t *testing.T) (*MockControlPlaneSDK, *konnectv1alpha1.KonnectGatewayControlPlane) {
sdk := NewMockControlPlaneSDK(t)
mockCPPair: func(t *testing.T) (*sdkmocks.MockControlPlaneSDK, *konnectv1alpha1.KonnectGatewayControlPlane) {
sdk := sdkmocks.NewMockControlPlaneSDK(t)
cp := &konnectv1alpha1.KonnectGatewayControlPlane{
Spec: konnectv1alpha1.KonnectGatewayControlPlaneSpec{
CreateControlPlaneRequest: sdkkonnectcomp.CreateControlPlaneRequest{
Expand Down Expand Up @@ -310,8 +311,8 @@ func TestDeleteControlPlane(t *testing.T) {
},
{
name: "fail",
mockCPPair: func(t *testing.T) (*MockControlPlaneSDK, *konnectv1alpha1.KonnectGatewayControlPlane) {
sdk := NewMockControlPlaneSDK(t)
mockCPPair: func(t *testing.T) (*sdkmocks.MockControlPlaneSDK, *konnectv1alpha1.KonnectGatewayControlPlane) {
sdk := sdkmocks.NewMockControlPlaneSDK(t)
cp := &konnectv1alpha1.KonnectGatewayControlPlane{
ObjectMeta: metav1.ObjectMeta{
Name: "cp-1",
Expand Down Expand Up @@ -345,8 +346,8 @@ func TestDeleteControlPlane(t *testing.T) {
},
{
name: "not found error is ignored and considered a success when trying to delete",
mockCPPair: func(t *testing.T) (*MockControlPlaneSDK, *konnectv1alpha1.KonnectGatewayControlPlane) {
sdk := NewMockControlPlaneSDK(t)
mockCPPair: func(t *testing.T) (*sdkmocks.MockControlPlaneSDK, *konnectv1alpha1.KonnectGatewayControlPlane) {
sdk := sdkmocks.NewMockControlPlaneSDK(t)
cp := &konnectv1alpha1.KonnectGatewayControlPlane{
ObjectMeta: metav1.ObjectMeta{
Name: "cp-1",
Expand Down Expand Up @@ -403,15 +404,15 @@ func TestUpdateControlPlane(t *testing.T) {
ctx := context.Background()
testCases := []struct {
name string
mockCPTuple func(*testing.T) (*MockControlPlaneSDK, *MockControlPlaneGroupSDK, *konnectv1alpha1.KonnectGatewayControlPlane)
mockCPTuple func(*testing.T) (*sdkmocks.MockControlPlaneSDK, *sdkmocks.MockControlPlaneGroupSDK, *konnectv1alpha1.KonnectGatewayControlPlane)
expectedErr bool
expectedID string
}{
{
name: "success",
mockCPTuple: func(t *testing.T) (*MockControlPlaneSDK, *MockControlPlaneGroupSDK, *konnectv1alpha1.KonnectGatewayControlPlane) {
sdk := NewMockControlPlaneSDK(t)
sdkGroups := NewMockControlPlaneGroupSDK(t)
mockCPTuple: func(t *testing.T) (*sdkmocks.MockControlPlaneSDK, *sdkmocks.MockControlPlaneGroupSDK, *konnectv1alpha1.KonnectGatewayControlPlane) {
sdk := sdkmocks.NewMockControlPlaneSDK(t)
sdkGroups := sdkmocks.NewMockControlPlaneGroupSDK(t)
cp := &konnectv1alpha1.KonnectGatewayControlPlane{
Spec: konnectv1alpha1.KonnectGatewayControlPlaneSpec{
CreateControlPlaneRequest: sdkkonnectcomp.CreateControlPlaneRequest{
Expand Down Expand Up @@ -450,9 +451,9 @@ func TestUpdateControlPlane(t *testing.T) {
},
{
name: "fail",
mockCPTuple: func(t *testing.T) (*MockControlPlaneSDK, *MockControlPlaneGroupSDK, *konnectv1alpha1.KonnectGatewayControlPlane) {
sdk := NewMockControlPlaneSDK(t)
sdkGroups := NewMockControlPlaneGroupSDK(t)
mockCPTuple: func(t *testing.T) (*sdkmocks.MockControlPlaneSDK, *sdkmocks.MockControlPlaneGroupSDK, *konnectv1alpha1.KonnectGatewayControlPlane) {
sdk := sdkmocks.NewMockControlPlaneSDK(t)
sdkGroups := sdkmocks.NewMockControlPlaneGroupSDK(t)
cp := &konnectv1alpha1.KonnectGatewayControlPlane{
ObjectMeta: metav1.ObjectMeta{
Name: "cp-1",
Expand Down Expand Up @@ -495,9 +496,9 @@ func TestUpdateControlPlane(t *testing.T) {
},
{
name: "when not found then try to create",
mockCPTuple: func(t *testing.T) (*MockControlPlaneSDK, *MockControlPlaneGroupSDK, *konnectv1alpha1.KonnectGatewayControlPlane) {
sdk := NewMockControlPlaneSDK(t)
sdkGroups := NewMockControlPlaneGroupSDK(t)
mockCPTuple: func(t *testing.T) (*sdkmocks.MockControlPlaneSDK, *sdkmocks.MockControlPlaneGroupSDK, *konnectv1alpha1.KonnectGatewayControlPlane) {
sdk := sdkmocks.NewMockControlPlaneSDK(t)
sdkGroups := sdkmocks.NewMockControlPlaneGroupSDK(t)
cp := &konnectv1alpha1.KonnectGatewayControlPlane{
ObjectMeta: metav1.ObjectMeta{
Name: "cp-1",
Expand Down Expand Up @@ -592,7 +593,7 @@ func TestCreateAndUpdateControlPlane_KubernetesMetadataConsistency(t *testing.T)
},
},
}
sdk = NewMockSDKFactory(t)
sdk = sdkmocks.NewMockSDKFactory(t)
sdkControlPlanes = sdk.SDK.ControlPlaneSDK
fakeClient = fake.NewClientBuilder().Build()
)
Expand Down Expand Up @@ -640,7 +641,7 @@ func TestSetGroupMembers(t *testing.T) {
name string
group *konnectv1alpha1.KonnectGatewayControlPlane
cps []client.Object
sdk func(t *testing.T) *MockControlPlaneGroupSDK
sdk func(t *testing.T) *sdkmocks.MockControlPlaneGroupSDK
expectedErr bool
}{
{
Expand All @@ -657,8 +658,8 @@ func TestSetGroupMembers(t *testing.T) {
},
},
},
sdk: func(t *testing.T) *MockControlPlaneGroupSDK {
sdk := NewMockControlPlaneGroupSDK(t)
sdk: func(t *testing.T) *sdkmocks.MockControlPlaneGroupSDK {
sdk := sdkmocks.NewMockControlPlaneGroupSDK(t)
return sdk
},
},
Expand Down Expand Up @@ -694,8 +695,8 @@ func TestSetGroupMembers(t *testing.T) {
},
},
},
sdk: func(t *testing.T) *MockControlPlaneGroupSDK {
sdk := NewMockControlPlaneGroupSDK(t)
sdk: func(t *testing.T) *sdkmocks.MockControlPlaneGroupSDK {
sdk := sdkmocks.NewMockControlPlaneGroupSDK(t)
sdk.EXPECT().
PutControlPlanesIDGroupMemberships(
mock.Anything,
Expand Down Expand Up @@ -743,8 +744,8 @@ func TestSetGroupMembers(t *testing.T) {
Status: konnectv1alpha1.KonnectGatewayControlPlaneStatus{},
},
},
sdk: func(t *testing.T) *MockControlPlaneGroupSDK {
sdk := NewMockControlPlaneGroupSDK(t)
sdk: func(t *testing.T) *sdkmocks.MockControlPlaneGroupSDK {
sdk := sdkmocks.NewMockControlPlaneGroupSDK(t)
return sdk
},
expectedErr: true,
Expand Down Expand Up @@ -795,8 +796,8 @@ func TestSetGroupMembers(t *testing.T) {
},
},
},
sdk: func(t *testing.T) *MockControlPlaneGroupSDK {
sdk := NewMockControlPlaneGroupSDK(t)
sdk: func(t *testing.T) *sdkmocks.MockControlPlaneGroupSDK {
sdk := sdkmocks.NewMockControlPlaneGroupSDK(t)
sdk.EXPECT().
PutControlPlanesIDGroupMemberships(
mock.Anything,
Expand Down Expand Up @@ -860,8 +861,8 @@ func TestSetGroupMembers(t *testing.T) {
},
},
},
sdk: func(t *testing.T) *MockControlPlaneGroupSDK {
sdk := NewMockControlPlaneGroupSDK(t)
sdk: func(t *testing.T) *sdkmocks.MockControlPlaneGroupSDK {
sdk := sdkmocks.NewMockControlPlaneGroupSDK(t)
return sdk
},
expectedErr: true,
Expand Down
8 changes: 5 additions & 3 deletions controller/konnect/ops/ops_credentialacl.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,14 @@ import (
"github.com/samber/lo"
ctrllog "sigs.k8s.io/controller-runtime/pkg/log"

sdkops "github.com/kong/gateway-operator/controller/konnect/ops/sdk"

configurationv1alpha1 "github.com/kong/kubernetes-configuration/api/configuration/v1alpha1"
)

func createKongCredentialACL(
ctx context.Context,
sdk KongCredentialACLSDK,
sdk sdkops.KongCredentialACLSDK,
cred *configurationv1alpha1.KongCredentialACL,
) error {
cpID := cred.GetControlPlaneID()
Expand Down Expand Up @@ -51,7 +53,7 @@ func createKongCredentialACL(
// if the operation fails.
func updateKongCredentialACL(
ctx context.Context,
sdk KongCredentialACLSDK,
sdk sdkops.KongCredentialACLSDK,
cred *configurationv1alpha1.KongCredentialACL,
) error {
cpID := cred.GetControlPlaneID()
Expand Down Expand Up @@ -106,7 +108,7 @@ func updateKongCredentialACL(
// It returns an error if the operation fails.
func deleteKongCredentialACL(
ctx context.Context,
sdk KongCredentialACLSDK,
sdk sdkops.KongCredentialACLSDK,
cred *configurationv1alpha1.KongCredentialACL,
) error {
cpID := cred.GetControlPlaneID()
Expand Down
Loading

0 comments on commit bc68ed7

Please sign in to comment.