Skip to content

Commit

Permalink
add policy resolvers (#10)
Browse files Browse the repository at this point in the history
* 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
  • Loading branch information
kishorj authored Jul 10, 2023
1 parent 9252ce9 commit e9caada
Show file tree
Hide file tree
Showing 17 changed files with 3,546 additions and 58 deletions.
4 changes: 3 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -60,8 +60,10 @@ manifests: controller-gen ## Generate WebhookConfiguration, ClusterRole and Cust
$(CONTROLLER_GEN) rbac:roleName=manager-role crd webhook paths="./..." output:crd:artifacts:config=config/crd/bases

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


.PHONY: fmt
fmt: ## Run go fmt against code.
Expand Down
3 changes: 2 additions & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,11 @@ go 1.19

require (
github.com/go-logr/logr v1.2.4
github.com/golang/mock v1.6.0
github.com/google/go-cmp v0.5.9
github.com/onsi/ginkgo/v2 v2.9.5
github.com/onsi/gomega v1.27.7
github.com/pkg/errors v0.9.1
github.com/samber/lo v1.38.1
github.com/spf13/pflag v1.0.5
github.com/stretchr/testify v1.8.1
Expand Down Expand Up @@ -45,7 +47,6 @@ require (
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/prometheus/client_golang v1.15.1 // indirect
github.com/prometheus/client_model v0.4.0 // indirect
Expand Down
3 changes: 3 additions & 0 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfU
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE=
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc=
github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs=
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
Expand Down Expand Up @@ -214,6 +216,7 @@ golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBn
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.9.1 h1:8WMNJAz3zrtPmnYC7ISf5dEn3MT0gY7jBJfw27yrrLo=
golang.org/x/tools v0.9.1/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc=
Expand Down
7 changes: 3 additions & 4 deletions internal/controllers/policy_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ package controllers

import (
"context"
"github.com/aws/amazon-network-policy-controller-k8s/pkg/resolvers"
"time"

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

"github.com/aws/amazon-network-policy-controller-k8s/internal/eventhandlers"
"github.com/aws/amazon-network-policy-controller-k8s/pkg/backend"
"github.com/aws/amazon-network-policy-controller-k8s/pkg/config"
"github.com/aws/amazon-network-policy-controller-k8s/pkg/k8s"
"github.com/aws/amazon-network-policy-controller-k8s/pkg/policyendpoints"
"github.com/aws/amazon-network-policy-controller-k8s/pkg/resolvers"
)

const (
Expand All @@ -45,7 +44,7 @@ const (

func NewPolicyReconciler(k8sClient client.Client, policyEndpointsManager policyendpoints.PolicyEndpointsManager,
controllerConfig config.ControllerConfig, finalizerManager k8s.FinalizerManager, logger logr.Logger) *policyReconciler {
policyTracker := backend.NewPolicyTracker(logger.WithName("policy-tracker"))
policyTracker := resolvers.NewPolicyTracker(logger.WithName("policy-tracker"))
policyResolver := resolvers.NewPolicyReferenceResolver(k8sClient, policyTracker, logger.WithName("policy-resolver"))
return &policyReconciler{
k8sClient: k8sClient,
Expand All @@ -64,7 +63,7 @@ var _ reconcile.Reconciler = (*policyReconciler)(nil)
type policyReconciler struct {
k8sClient client.Client
policyResolver resolvers.PolicyReferenceResolver
policyTracker backend.PolicyTracker
policyTracker resolvers.PolicyTracker
policyEndpointsManager policyendpoints.PolicyEndpointsManager
podUpdateBatchPeriodDuration time.Duration
finalizerManager k8s.FinalizerManager
Expand Down
6 changes: 3 additions & 3 deletions internal/eventhandlers/policy.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ package eventhandlers

import (
"context"
"github.com/aws/amazon-network-policy-controller-k8s/pkg/resolvers"
"time"

"github.com/aws/amazon-network-policy-controller-k8s/pkg/backend"
"github.com/aws/amazon-network-policy-controller-k8s/pkg/k8s"
"github.com/go-logr/logr"
networking "k8s.io/api/networking/v1"
Expand All @@ -33,7 +33,7 @@ import (
)

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

type enqueueRequestForPolicyEvent struct {
policyTracker backend.PolicyTracker
policyTracker resolvers.PolicyTracker
podUpdateBatchPeriodDuration time.Duration
logger logr.Logger
}
Expand Down
259 changes: 259 additions & 0 deletions mocks/controller-runtime/client/client_mocks.go

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

Loading

0 comments on commit e9caada

Please sign in to comment.