Skip to content

Commit 9463c12

Browse files
committed
Running pipeline
1 parent ffcff97 commit 9463c12

File tree

9 files changed

+421
-300
lines changed

9 files changed

+421
-300
lines changed

internal/framework/runnables/runnables.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package runnables
22

33
import (
44
"context"
5+
"fmt"
56

67
"sigs.k8s.io/controller-runtime/pkg/manager"
78
)
@@ -56,6 +57,7 @@ func NewCallFunctionsAfterBecameLeader(
5657

5758
func (j *CallFunctionsAfterBecameLeader) Start(ctx context.Context) error {
5859
for _, f := range j.enableFunctions {
60+
fmt.Println("We are calling these functions after we became leader")
5961
f(ctx)
6062
}
6163

internal/mode/static/provisioner/handler.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,13 +55,17 @@ func (h *eventHandler) HandleEventBatch(ctx context.Context, logger logr.Logger,
5555
case *events.UpsertEvent:
5656
switch obj := e.Resource.(type) {
5757
case *gatewayv1.Gateway:
58+
fmt.Println("We are handling a gateway upsert event")
5859
h.store.updateGateway(obj)
5960
case *appsv1.Deployment, *corev1.ServiceAccount, *corev1.ConfigMap, *corev1.Secret:
6061
objLabels := labels.Set(obj.GetLabels())
6162
if h.labelSelector.Matches(objLabels) {
6263
gatewayName := objLabels.Get(controller.GatewayLabel)
6364
gatewayNSName := types.NamespacedName{Namespace: obj.GetNamespace(), Name: gatewayName}
6465

66+
fmt.Println("Here is the type: " + obj.GetObjectKind().GroupVersionKind().Kind)
67+
fmt.Println("We are processing the upsert of this resource: " + obj.GetName())
68+
6569
if err := h.updateOrDeleteResources(ctx, obj, gatewayNSName); err != nil {
6670
logger.Error(err, "error handling resource update")
6771
}
@@ -72,10 +76,16 @@ func (h *eventHandler) HandleEventBatch(ctx context.Context, logger logr.Logger,
7276
gatewayName := objLabels.Get(controller.GatewayLabel)
7377
gatewayNSName := types.NamespacedName{Namespace: obj.GetNamespace(), Name: gatewayName}
7478

79+
fmt.Println("Here is the type: " + obj.GetObjectKind().GroupVersionKind().Kind)
80+
fmt.Println("We are processing the upsert of this resource: " + obj.GetName())
81+
7582
if err := h.updateOrDeleteResources(ctx, obj, gatewayNSName); err != nil {
7683
logger.Error(err, "error handling resource update")
7784
}
7885

86+
// theres a gateway and ngf deployed
87+
// we delete ngf, wait until it comes back on, then before it takes the leader lease we delete the gateway.
88+
7989
statusUpdate := &status.QueueObject{
8090
Deployment: client.ObjectKeyFromObject(obj),
8191
UpdateType: status.UpdateGateway,
@@ -87,8 +97,15 @@ func (h *eventHandler) HandleEventBatch(ctx context.Context, logger logr.Logger,
8797
panic(fmt.Errorf("unknown resource type %T", e.Resource))
8898
}
8999
case *events.DeleteEvent:
100+
obj := e
90101
switch e.Type.(type) {
91102
case *gatewayv1.Gateway:
103+
104+
if !h.provisioner.isLeader() {
105+
h.provisioner.setResourceToDelete(obj.NamespacedName)
106+
}
107+
108+
fmt.Println("We see a delete event for the gateway! ")
92109
if err := h.provisioner.deprovisionNginx(ctx, e.NamespacedName); err != nil {
93110
logger.Error(err, "error deprovisioning nginx resources")
94111
}
@@ -116,6 +133,7 @@ func (h *eventHandler) updateOrDeleteResources(
116133
) error {
117134
if gw := h.store.getGateway(gatewayNSName); gw == nil {
118135
if !h.provisioner.isLeader() {
136+
fmt.Println("We are setting resources to be deleted since gateway is nil and we are not leader")
119137
h.provisioner.setResourceToDelete(gatewayNSName)
120138

121139
return nil

internal/mode/static/provisioner/objects.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"errors"
66
"fmt"
77
"maps"
8+
"sort"
89
"strconv"
910
"time"
1011

@@ -467,6 +468,12 @@ func (p *NginxProvisioner) buildNginxPodTemplateSpec(
467468
podAnnotations["prometheus.io/port"] = strconv.Itoa(int(metricsPort))
468469
}
469470

471+
// need to sort ports so everytime buildNginxPodTemplateSpec is called it will generate the exact same
472+
// array of ports. This is needed to satisfy deterministic results of the method.
473+
sort.Slice(containerPorts, func(i, j int) bool {
474+
return containerPorts[i].ContainerPort < containerPorts[j].ContainerPort
475+
})
476+
470477
image, pullPolicy := p.buildImage(nProxyCfg)
471478

472479
spec := corev1.PodTemplateSpec{
@@ -622,6 +629,12 @@ func (p *NginxProvisioner) buildNginxPodTemplateSpec(
622629
spec.Spec.ImagePullSecrets = append(spec.Spec.ImagePullSecrets, ref)
623630
}
624631

632+
// need to sort ports so everytime buildNginxPodTemplateSpec is called it will generate the exact same
633+
// array of ports. This is needed to satisfy deterministic results of the method.
634+
sort.Slice(spec.Spec.ImagePullSecrets, func(i, j int) bool {
635+
return spec.Spec.ImagePullSecrets[i].Name < spec.Spec.ImagePullSecrets[j].Name
636+
})
637+
625638
if p.cfg.Plus {
626639
initCmd := spec.Spec.InitContainers[0].Command
627640
initCmd = append(initCmd,

internal/mode/static/provisioner/provisioner.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,9 @@ func (p *NginxProvisioner) Enable(ctx context.Context) {
120120
p.lock.Unlock()
121121

122122
p.lock.RLock()
123+
fmt.Println("We are in the provioner's Enable")
123124
for _, gatewayNSName := range p.resourcesToDeleteOnStartup {
125+
fmt.Println("We are deleting some resources: " + gatewayNSName.Name)
124126
if err := p.deprovisionNginx(ctx, gatewayNSName); err != nil {
125127
p.cfg.Logger.Error(err, "error deprovisioning nginx resources on startup")
126128
}
@@ -309,7 +311,9 @@ func (p *NginxProvisioner) deprovisionNginx(ctx context.Context, gatewayNSName t
309311
Namespace: gatewayNSName.Namespace,
310312
}
311313

314+
fmt.Println("We got into deprovisionNginx!")
312315
if p.isLeader() {
316+
fmt.Println("We are a leader and are removing nginx resources")
313317
p.cfg.Logger.Info(
314318
"Removing nginx resources for Gateway",
315319
"name", gatewayNSName.Name,

tests/framework/resourcemanager.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -334,17 +334,22 @@ func (rm *ResourceManager) WaitForAppsToBeReady(namespace string) error {
334334
// WaitForAppsToBeReadyWithCtx waits for all apps in the specified namespace to be ready or
335335
// until the provided context is canceled.
336336
func (rm *ResourceManager) WaitForAppsToBeReadyWithCtx(ctx context.Context, namespace string) error {
337+
fmt.Println("waiting on pods to be ready...")
337338
if err := rm.WaitForPodsToBeReady(ctx, namespace); err != nil {
338339
return err
339340
}
340341

342+
fmt.Println("waiting on routes to be ready...")
343+
341344
if err := rm.waitForHTTPRoutesToBeReady(ctx, namespace); err != nil {
342345
return err
343346
}
347+
fmt.Println("waiting on grpc routes to be ready...")
344348

345349
if err := rm.waitForGRPCRoutesToBeReady(ctx, namespace); err != nil {
346350
return err
347351
}
352+
fmt.Println("waiting on gateways to be ready...")
348353

349354
return rm.waitForGatewaysToBeReady(ctx, namespace)
350355
}

0 commit comments

Comments
 (0)