Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Logging Cleanup - Part 1 #410

Merged
merged 1 commit into from
Sep 26, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -96,9 +96,8 @@ manifest: ## Generate CRD manifest

e2e-test-namespace := "e2e-test"

## Run e2e tests against cluster pointed to by ~/.kube/config
.PHONY: e2e-test
e2e-test:
e2e-test: ## Run e2e tests against cluster pointed to by ~/.kube/config
@kubectl create namespace $(e2e-test-namespace) > /dev/null 2>&1 || true # ignore already exists error
cd test && go test \
-p 1 \
Expand All @@ -112,7 +111,7 @@ e2e-test:

.SILENT:
.PHONY: e2e-clean
e2e-clean:
e2e-clean: ## Delete eks resources created in the e2e test namespace
@echo -n "Cleaning up e2e tests... "
@kubectl delete namespace $(e2e-test-namespace) > /dev/null 2>&1
@kubectl create namespace $(e2e-test-namespace) > /dev/null 2>&1
Expand Down
22 changes: 9 additions & 13 deletions controllers/eventhandlers/gateway.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@ import (
"github.com/aws/aws-application-networking-k8s/pkg/model/core"
"github.com/aws/aws-application-networking-k8s/pkg/utils/gwlog"

"github.com/golang/glog"

"k8s.io/apimachinery/pkg/api/equality"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/types"
Expand Down Expand Up @@ -39,22 +37,21 @@ var ZeroTransitionTime = metav1.NewTime(time.Time{})

func (h *enqueueRequestsForGatewayEvent) Create(e event.CreateEvent, queue workqueue.RateLimitingInterface) {
gwNew := e.Object.(*gateway_api.Gateway)
glog.V(2).Infof("Gateway Create and Spec is %v", gwNew.Spec)

h.log.Infof("Received Create event for Gateway %s-%s", gwNew.Name, gwNew.Namespace)

// initialize transition time
gwNew.Status.Conditions[0].LastTransitionTime = ZeroTransitionTime
h.enqueueImpactedRoutes(queue)
}

func (h *enqueueRequestsForGatewayEvent) Update(e event.UpdateEvent, queue workqueue.RateLimitingInterface) {
h.log.Info("Gateway Update ")

gwOld := e.ObjectOld.(*gateway_api.Gateway)
gwNew := e.ObjectNew.(*gateway_api.Gateway)

h.log.Infof("Received Update event for Gateway %s-%s", gwNew.GetName(), gwNew.GetNamespace())

if !equality.Semantic.DeepEqual(gwOld.Spec, gwNew.Spec) {
glog.V(2).Infof("Gateway Update old spec %v to new spec %v",
gwOld.Spec, gwNew.Spec)
// initialize transition time
gwNew.Status.Conditions[0].LastTransitionTime = ZeroTransitionTime
h.enqueueImpactedRoutes(queue)
Expand All @@ -75,10 +72,10 @@ func (h *enqueueRequestsForGatewayEvent) enqueueImpactedRoutes(queue workqueue.R
h.log.Errorf("Failed to list all routes, %s", err)
return
}
for _, route := range routes {

for _, route := range routes {
if len(route.Spec().ParentRefs()) <= 0 {
h.log.Infof("Ignore route no parentRefs %s", route.Name())
h.log.Debugf("Ignoring Route with no parentRef %s-%s", route.Name(), route.Namespace())
continue
}

Expand All @@ -95,7 +92,7 @@ func (h *enqueueRequestsForGatewayEvent) enqueueImpactedRoutes(queue workqueue.R

gw := &gateway_api.Gateway{}
if err := h.client.Get(context.TODO(), gwName, gw); err != nil {
h.log.Infof("Ignore Route with unknown parentRef %s", route.Name())
h.log.Debugf("Ignoring Route with unknown parentRef %s-%s", route.Name(), route.Namespace())
continue
}

Expand All @@ -107,19 +104,18 @@ func (h *enqueueRequestsForGatewayEvent) enqueueImpactedRoutes(queue workqueue.R
}

if err := h.client.Get(context.TODO(), gwClassName, gwClass); err != nil {
h.log.Infof("Ignore Route with unknown Gateway %s", route.Name())
h.log.Debugf("Ignoring Route with unknown Gateway %s-%s", route.Name(), route.Namespace())
continue
}

if gwClass.Spec.ControllerName == config.LatticeGatewayControllerName {
glog.V(2).Infof("Trigger Route from Gateway event, route %s", route.Name())
h.log.Debugf("Adding Route %s-%s to queue due to Gateway event", route.Name(), route.Namespace())
queue.Add(reconcile.Request{
NamespacedName: types.NamespacedName{
Namespace: route.Namespace(),
Name: route.Name(),
},
})
}

}
}
34 changes: 16 additions & 18 deletions controllers/eventhandlers/gatewayclass.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package eventhandlers

import (
"context"
"github.com/golang/glog"

"k8s.io/apimachinery/pkg/types"
"k8s.io/client-go/util/workqueue"
Expand All @@ -13,15 +12,18 @@ import (
gateway_api "sigs.k8s.io/gateway-api/apis/v1beta1"

"github.com/aws/aws-application-networking-k8s/pkg/config"
"github.com/aws/aws-application-networking-k8s/pkg/utils/gwlog"
)

func NewEnqueueRequestsForGatewayClassEvent(client client.Client) handler.EventHandler {
func NewEnqueueRequestsForGatewayClassEvent(log gwlog.Logger, client client.Client) handler.EventHandler {
return &enqueueRequestsForGatewayClassEvent{
log: log,
client: client,
}
}

type enqueueRequestsForGatewayClassEvent struct {
log gwlog.Logger
client client.Client
}

Expand All @@ -31,40 +33,36 @@ func (h *enqueueRequestsForGatewayClassEvent) Create(e event.CreateEvent, queue
}

func (h *enqueueRequestsForGatewayClassEvent) Update(e event.UpdateEvent, queue workqueue.RateLimitingInterface) {
glog.V(6).Info("GatwayClass, Update ")
}

func (h *enqueueRequestsForGatewayClassEvent) Delete(e event.DeleteEvent, queue workqueue.RateLimitingInterface) {
glog.V(6).Info("GatewayClass, Delete")
}

func (h *enqueueRequestsForGatewayClassEvent) Generic(e event.GenericEvent, queue workqueue.RateLimitingInterface) {
}

func (h *enqueueRequestsForGatewayClassEvent) enqueueImpactedGateway(queue workqueue.RateLimitingInterface, gwclass *gateway_api.GatewayClass) {

func (h *enqueueRequestsForGatewayClassEvent) enqueueImpactedGateway(
queue workqueue.RateLimitingInterface,
gwClass *gateway_api.GatewayClass,
) {
gwList := &gateway_api.GatewayList{}

h.client.List(context.TODO(), gwList)
err := h.client.List(context.TODO(), gwList)
if err != nil {
h.log.Errorf("Error listing Gateways during GatewayClass event %s", err)
return
}

for _, gw := range gwList.Items {

if string(gw.Spec.GatewayClassName) == string(gwclass.Name) {

if gwclass.Spec.ControllerName == config.LatticeGatewayControllerName {
glog.V(6).Infof("Found matching gateway, %s\n", gw.Name)

if string(gw.Spec.GatewayClassName) == gwClass.Name {
if gwClass.Spec.ControllerName == config.LatticeGatewayControllerName {
h.log.Debugf("Found matching gateway, %s-%s", gw.Name, gw.Namespace)
queue.Add(reconcile.Request{
NamespacedName: types.NamespacedName{
Namespace: gw.Namespace,
Name: gw.Name,
},
})

}

}

}

}
2 changes: 1 addition & 1 deletion controllers/gateway_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ func RegisterGatewayController(
stackMarshaller: stackMarshaller,
}

gwClassEventHandler := eventhandlers.NewEnqueueRequestsForGatewayClassEvent(mgrClient)
gwClassEventHandler := eventhandlers.NewEnqueueRequestsForGatewayClassEvent(log, mgrClient)
vpcAssociationPolicyEventHandler := eventhandlers.NewVpcAssociationPolicyEventHandler(log, mgrClient)
builder := ctrl.NewControllerManagedBy(mgr).
For(&gateway_api.Gateway{})
Expand Down
Loading