Skip to content
This repository was archived by the owner on Dec 11, 2023. It is now read-only.

Commit f409f6f

Browse files
author
odacremolbap
committed
add status reconciliation to memorybroker test
1 parent 30fcf41 commit f409f6f

File tree

5 files changed

+83
-15
lines changed

5 files changed

+83
-15
lines changed

pkg/reconciler/common/events.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,10 @@ const (
1111
ReasonFailedDeploymentCreate = "FailedDeploymentCreate"
1212
ReasonFailedDeploymentUpdate = "FailedDeploymentUpdate"
1313

14-
ReasonFailedSecretGet = "FailedSecretGet"
15-
ReasonFailedSecretCreate = "FailedSecretCreate"
16-
ReasonFailedSecretUpdate = "FailedSecretUpdate"
14+
ReasonFailedSecretCompose = "FailedSecretCompose"
15+
ReasonFailedSecretGet = "FailedSecretGet"
16+
ReasonFailedSecretCreate = "FailedSecretCreate"
17+
ReasonFailedSecretUpdate = "FailedSecretUpdate"
1718

1819
ReasonFailedServiceAccountGet = "FailedServiceAccountGet"
1920
ReasonFailedServiceAccountCreate = "FailedServiceAccountCreate"

pkg/reconciler/common/reconcile_secret.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ func NewSecretReconciler(ctx context.Context, secretLister corev1listers.SecretL
5757
func (r *secretReconciler) Reconcile(ctx context.Context, rb eventingv1alpha1.ReconcilableBroker) (*corev1.Secret, error) {
5858
desired, err := r.buildConfigSecret(ctx, rb)
5959
if err != nil {
60+
rb.GetReconcilableBrokerStatus().MarkConfigSecretFailed(ReasonFailedSecretCompose, "Failed to compose secret config from broker")
6061
return nil, err
6162
}
6263

pkg/reconciler/memorybroker/reconciler.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,10 @@ func (r *reconciler) ReconcileKind(ctx context.Context, mb *eventingv1alpha1.Mem
7272
}
7373

7474
func getServiceAddress(svc *corev1.Service) *apis.URL {
75+
if svc == nil || len(svc.Spec.Ports) == 0 {
76+
return nil
77+
}
78+
7579
var port string
7680
if svc.Spec.Ports[0].Port != 80 {
7781
port = ":" + strconv.Itoa(int(svc.Spec.Ports[0].Port))

pkg/reconciler/memorybroker/reconciler_test.go

Lines changed: 46 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ import (
1111
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1212
"k8s.io/apimachinery/pkg/runtime"
1313
"k8s.io/apimachinery/pkg/util/intstr"
14+
kt "k8s.io/client-go/testing"
15+
1416
v1addr "knative.dev/pkg/client/injection/ducks/duck/v1/addressable"
1517
"knative.dev/pkg/configmap"
1618
"knative.dev/pkg/controller"
@@ -20,7 +22,6 @@ import (
2022
fakeeventingclient "github.com/triggermesh/triggermesh-core/pkg/client/generated/injection/client/fake"
2123
"github.com/triggermesh/triggermesh-core/pkg/client/generated/injection/reconciler/eventing/v1alpha1/memorybroker"
2224
"github.com/triggermesh/triggermesh-core/pkg/reconciler/common"
23-
"github.com/triggermesh/triggermesh-core/pkg/reconciler/resources"
2425
tmt "github.com/triggermesh/triggermesh-core/pkg/reconciler/testing"
2526
tmtv1alpha1 "github.com/triggermesh/triggermesh-core/pkg/reconciler/testing/v1alpha1"
2627
)
@@ -62,19 +63,52 @@ func TestAllCases(t *testing.T) {
6263
newDeploymentForBroker(tNamespace, tName),
6364
newServiceForBroker(tNamespace, tName),
6465
},
66+
WantStatusUpdates: []kt.UpdateActionImpl{
67+
{
68+
Object: tmtv1alpha1.NewMemoryBroker(tNamespace, tName,
69+
// tmtv1alpha1.MemoryBrokerWithStatusAddress("http://"+tName+"-mb-broker."+tNamespace+".svc.cluster.local"),
70+
tmtv1alpha1.MemoryBrokerWithStatusCondition("Addressable", corev1.ConditionUnknown, "", ""),
71+
tmtv1alpha1.MemoryBrokerWithStatusCondition("BrokerConfigSecretReady", corev1.ConditionTrue, "", ""),
72+
tmtv1alpha1.MemoryBrokerWithStatusCondition("BrokerDeploymentReady", corev1.ConditionUnknown, "", ""),
73+
tmtv1alpha1.MemoryBrokerWithStatusCondition("BrokerEndpointsReady", corev1.ConditionFalse, "UnavailableEndpoints", "Endpoints for broker service do not exist"),
74+
tmtv1alpha1.MemoryBrokerWithStatusCondition("BrokerServiceAccountReady", corev1.ConditionTrue, "", ""),
75+
tmtv1alpha1.MemoryBrokerWithStatusCondition("BrokerServiceReady", corev1.ConditionTrue, "", ""),
76+
tmtv1alpha1.MemoryBrokerWithStatusCondition("MemoryBrokerBrokerRoleBinding", corev1.ConditionTrue, "", ""),
77+
tmtv1alpha1.MemoryBrokerWithStatusCondition("Ready", corev1.ConditionFalse, "UnavailableEndpoints", "Endpoints for broker service do not exist"),
78+
),
79+
},
80+
},
81+
6582
WantEvents: []string{
6683
knt.Eventf(corev1.EventTypeWarning, "UnavailableEndpoints", `Endpoints for broker service "`+tNamespace+`/`+tName+`-mb-broker" do not exist`),
6784
},
68-
}, {
69-
Name: "deleting broker",
70-
Key: tKey,
71-
Objects: []runtime.Object{
72-
tmtv1alpha1.NewMemoryBroker(tNamespace, tName,
73-
tmtv1alpha1.MemoryBrokerWithMetaOptions(resources.MetaSetDeletion(&tNow))),
74-
},
75-
WantCreates: []runtime.Object{
76-
// Reconciliation is skipped and no objects are created.
77-
},
85+
86+
// }, {
87+
// Name: "update status",
88+
// Key: tKey,
89+
// Objects: []runtime.Object{
90+
// tmtv1alpha1.NewMemoryBroker(tNamespace, tName),
91+
// },
92+
// WantCreates: []runtime.Object{
93+
// newSecretForBroker(tNamespace, tName),
94+
// newServiceAccountForBroker(tNamespace, tName),
95+
// newRoleBindingForBroker(tNamespace, tName),
96+
// newDeploymentForBroker(tNamespace, tName),
97+
// newServiceForBroker(tNamespace, tName),
98+
// },
99+
// WantEvents: []string{
100+
// knt.Eventf(corev1.EventTypeWarning, "UnavailableEndpoints", `Endpoints for broker service "`+tNamespace+`/`+tName+`-mb-broker" do not exist`),
101+
// },
102+
// }, {
103+
// Name: "deleting broker",
104+
// Key: tKey,
105+
// Objects: []runtime.Object{
106+
// tmtv1alpha1.NewMemoryBroker(tNamespace, tName,
107+
// tmtv1alpha1.MemoryBrokerWithMetaOptions(resources.MetaSetDeletion(&tNow))),
108+
// },
109+
// WantCreates: []runtime.Object{
110+
// // Reconciliation is skipped and no objects are created.
111+
// },
78112
},
79113
}
80114

@@ -102,7 +136,7 @@ func TestAllCases(t *testing.T) {
102136
listers.GetMemoryBrokerLister(),
103137
controller.GetEventRecorder(ctx),
104138
r,
105-
controller.Options{SkipStatusUpdates: true})
139+
controller.Options{SkipStatusUpdates: false})
106140
}, false, logger))
107141
}
108142

pkg/reconciler/testing/v1alpha1/memorybroker.go

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
package v1alpha1
22

33
import (
4+
corev1 "k8s.io/api/core/v1"
45
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
56

7+
knapis "knative.dev/pkg/apis"
8+
69
eventingv1alpha1 "github.com/triggermesh/triggermesh-core/pkg/apis/eventing/v1alpha1"
710
"github.com/triggermesh/triggermesh-core/pkg/reconciler/resources"
811
)
@@ -34,3 +37,28 @@ func MemoryBrokerWithMetaOptions(opts ...resources.MetaOption) MemoryBrokerOptio
3437
}
3538
}
3639
}
40+
41+
func MemoryBrokerWithStatusAddress(url string) MemoryBrokerOption {
42+
return func(d *eventingv1alpha1.MemoryBroker) {
43+
44+
pu, err := knapis.ParseURL(url)
45+
if err != nil {
46+
panic(err)
47+
}
48+
d.Status.Address.URL = pu
49+
}
50+
}
51+
52+
func MemoryBrokerWithStatusCondition(typ string, status corev1.ConditionStatus, reason, msg string) MemoryBrokerOption {
53+
return func(d *eventingv1alpha1.MemoryBroker) {
54+
55+
d.Status.Conditions = append(d.Status.Conditions,
56+
knapis.Condition{
57+
Type: knapis.ConditionType(typ),
58+
Status: status,
59+
Reason: reason,
60+
Message: msg,
61+
},
62+
)
63+
}
64+
}

0 commit comments

Comments
 (0)