Skip to content

Commit e9caada

Browse files
authored
add policy resolvers (#10)
* add policy resolvers Resolves referred policies for pod, service or namespace resources * update headless svc check spec.clusterIP is immutable, so no need to check on the old resource * add UTs for svc * add function docs
1 parent 9252ce9 commit e9caada

File tree

17 files changed

+3546
-58
lines changed

17 files changed

+3546
-58
lines changed

Makefile

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,10 @@ manifests: controller-gen ## Generate WebhookConfiguration, ClusterRole and Cust
6060
$(CONTROLLER_GEN) rbac:roleName=manager-role crd webhook paths="./..." output:crd:artifacts:config=config/crd/bases
6161

6262
.PHONY: generate
63-
generate: controller-gen ## Generate code containing DeepCopy, DeepCopyInto, and DeepCopyObject method implementations.
63+
generate: controller-gen mockgen ## Generate code containing DeepCopy, DeepCopyInto, and DeepCopyObject method implementations.
6464
$(CONTROLLER_GEN) object:headerFile="hack/boilerplate.go.txt" paths="./..."
65+
MOCKGEN=$(MOCKGEN) ./scripts/gen_mocks.sh
66+
6567

6668
.PHONY: fmt
6769
fmt: ## Run go fmt against code.

go.mod

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@ go 1.19
44

55
require (
66
github.com/go-logr/logr v1.2.4
7+
github.com/golang/mock v1.6.0
78
github.com/google/go-cmp v0.5.9
89
github.com/onsi/ginkgo/v2 v2.9.5
910
github.com/onsi/gomega v1.27.7
11+
github.com/pkg/errors v0.9.1
1012
github.com/samber/lo v1.38.1
1113
github.com/spf13/pflag v1.0.5
1214
github.com/stretchr/testify v1.8.1
@@ -45,7 +47,6 @@ require (
4547
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
4648
github.com/modern-go/reflect2 v1.0.2 // indirect
4749
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
48-
github.com/pkg/errors v0.9.1 // indirect
4950
github.com/pmezard/go-difflib v1.0.0 // indirect
5051
github.com/prometheus/client_golang v1.15.1 // indirect
5152
github.com/prometheus/client_model v0.4.0 // indirect

go.sum

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfU
4545
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE=
4646
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
4747
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
48+
github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc=
49+
github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs=
4850
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
4951
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
5052
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
@@ -214,6 +216,7 @@ golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBn
214216
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
215217
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
216218
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
219+
golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
217220
golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
218221
golang.org/x/tools v0.9.1 h1:8WMNJAz3zrtPmnYC7ISf5dEn3MT0gY7jBJfw27yrrLo=
219222
golang.org/x/tools v0.9.1/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc=

internal/controllers/policy_controller.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ package controllers
1818

1919
import (
2020
"context"
21-
"github.com/aws/amazon-network-policy-controller-k8s/pkg/resolvers"
2221
"time"
2322

2423
"github.com/go-logr/logr"
@@ -32,10 +31,10 @@ import (
3231
"sigs.k8s.io/controller-runtime/pkg/source"
3332

3433
"github.com/aws/amazon-network-policy-controller-k8s/internal/eventhandlers"
35-
"github.com/aws/amazon-network-policy-controller-k8s/pkg/backend"
3634
"github.com/aws/amazon-network-policy-controller-k8s/pkg/config"
3735
"github.com/aws/amazon-network-policy-controller-k8s/pkg/k8s"
3836
"github.com/aws/amazon-network-policy-controller-k8s/pkg/policyendpoints"
37+
"github.com/aws/amazon-network-policy-controller-k8s/pkg/resolvers"
3938
)
4039

4140
const (
@@ -45,7 +44,7 @@ const (
4544

4645
func NewPolicyReconciler(k8sClient client.Client, policyEndpointsManager policyendpoints.PolicyEndpointsManager,
4746
controllerConfig config.ControllerConfig, finalizerManager k8s.FinalizerManager, logger logr.Logger) *policyReconciler {
48-
policyTracker := backend.NewPolicyTracker(logger.WithName("policy-tracker"))
47+
policyTracker := resolvers.NewPolicyTracker(logger.WithName("policy-tracker"))
4948
policyResolver := resolvers.NewPolicyReferenceResolver(k8sClient, policyTracker, logger.WithName("policy-resolver"))
5049
return &policyReconciler{
5150
k8sClient: k8sClient,
@@ -64,7 +63,7 @@ var _ reconcile.Reconciler = (*policyReconciler)(nil)
6463
type policyReconciler struct {
6564
k8sClient client.Client
6665
policyResolver resolvers.PolicyReferenceResolver
67-
policyTracker backend.PolicyTracker
66+
policyTracker resolvers.PolicyTracker
6867
policyEndpointsManager policyendpoints.PolicyEndpointsManager
6968
podUpdateBatchPeriodDuration time.Duration
7069
finalizerManager k8s.FinalizerManager

internal/eventhandlers/policy.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ package eventhandlers
1818

1919
import (
2020
"context"
21+
"github.com/aws/amazon-network-policy-controller-k8s/pkg/resolvers"
2122
"time"
2223

23-
"github.com/aws/amazon-network-policy-controller-k8s/pkg/backend"
2424
"github.com/aws/amazon-network-policy-controller-k8s/pkg/k8s"
2525
"github.com/go-logr/logr"
2626
networking "k8s.io/api/networking/v1"
@@ -33,7 +33,7 @@ import (
3333
)
3434

3535
// NewEnqueueRequestForPolicyEvent constructs new enqueueRequestsForPolicyEvent
36-
func NewEnqueueRequestForPolicyEvent(policyTracker backend.PolicyTracker, podUpdateBatchPeriodDuration time.Duration,
36+
func NewEnqueueRequestForPolicyEvent(policyTracker resolvers.PolicyTracker, podUpdateBatchPeriodDuration time.Duration,
3737
logger logr.Logger) handler.EventHandler {
3838
return &enqueueRequestForPolicyEvent{
3939
policyTracker: policyTracker,
@@ -45,7 +45,7 @@ func NewEnqueueRequestForPolicyEvent(policyTracker backend.PolicyTracker, podUpd
4545
var _ handler.EventHandler = (*enqueueRequestForPolicyEvent)(nil)
4646

4747
type enqueueRequestForPolicyEvent struct {
48-
policyTracker backend.PolicyTracker
48+
policyTracker resolvers.PolicyTracker
4949
podUpdateBatchPeriodDuration time.Duration
5050
logger logr.Logger
5151
}

mocks/controller-runtime/client/client_mocks.go

Lines changed: 259 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)