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

Commit 6b2dcd0

Browse files
author
odacremolbap
committed
finish creation test memory broker
1 parent e09d28f commit 6b2dcd0

File tree

2 files changed

+156
-15
lines changed

2 files changed

+156
-15
lines changed

pkg/reconciler/common/reconcile_broker.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -283,13 +283,13 @@ func (r *brokerReconciler) reconcileEndpoints(ctx context.Context, service *core
283283

284284
rb.GetReconcilableBrokerStatus().MarkBrokerEndpointsFailed(ReasonUnavailableEndpoints, "Endpoints for broker service are not available")
285285
return nil, pkgreconciler.NewEvent(corev1.EventTypeWarning, ReasonUnavailableEndpoints,
286-
"Endpoints for broker service are not available %s",
286+
"Endpoints for broker service %q are not available",
287287
types.NamespacedName{Namespace: ep.Namespace, Name: ep.Name})
288288

289289
case apierrs.IsNotFound(err):
290290
rb.GetReconcilableBrokerStatus().MarkBrokerEndpointsFailed(ReasonUnavailableEndpoints, "Endpoints for broker service do not exist")
291291
return nil, pkgreconciler.NewEvent(corev1.EventTypeWarning, ReasonUnavailableEndpoints,
292-
"Endpoints for broker service do not exist %s",
292+
"Endpoints for broker service %q do not exist",
293293
types.NamespacedName{Namespace: service.Namespace, Name: service.Name})
294294
}
295295

pkg/reconciler/memorybroker/reconciler_test.go

Lines changed: 154 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@ import (
44
"context"
55
"testing"
66

7+
appsv1 "k8s.io/api/apps/v1"
78
corev1 "k8s.io/api/core/v1"
89
rbacv1 "k8s.io/api/rbac/v1"
910
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1011
"k8s.io/apimachinery/pkg/runtime"
12+
"k8s.io/apimachinery/pkg/util/intstr"
1113
v1addr "knative.dev/pkg/client/injection/ducks/duck/v1/addressable"
1214
"knative.dev/pkg/configmap"
1315
"knative.dev/pkg/controller"
@@ -23,13 +25,15 @@ import (
2325

2426
const (
2527
tBrokerImage = "image.test:v.test"
26-
testNamespace = "test-namespace"
27-
testName = "test-name"
28+
tNamespace = "test-namespace"
29+
tName = "test-name"
30+
tBrokerSuffix = "-mb-broker"
2831
)
2932

3033
var (
31-
tKey = testNamespace + "/" + testName
32-
tTrue = true
34+
tKey = tNamespace + "/" + tName
35+
tTrue = true
36+
tReplicas int32 = 1
3337
)
3438

3539
func TestAllCases(t *testing.T) {
@@ -46,12 +50,17 @@ func TestAllCases(t *testing.T) {
4650
Name: "new broker",
4751
Key: tKey,
4852
Objects: []runtime.Object{
49-
tmtv1alpha1.NewMemoryBroker(testNamespace, testName),
53+
tmtv1alpha1.NewMemoryBroker(tNamespace, tName),
5054
},
5155
WantCreates: []runtime.Object{
52-
newSecretForBroker(testNamespace, testName),
53-
newServiceAccountForBroker(testNamespace, testName),
54-
newRoleBindingForBroker(testNamespace, testName),
56+
newSecretForBroker(tNamespace, tName),
57+
newServiceAccountForBroker(tNamespace, tName),
58+
newRoleBindingForBroker(tNamespace, tName),
59+
newDeploymentForBroker(tNamespace, tName),
60+
newServiceForBroker(tNamespace, tName),
61+
},
62+
WantEvents: []string{
63+
knt.Eventf(corev1.EventTypeWarning, "UnavailableEndpoints", `Endpoints for broker service "`+tNamespace+`/`+tName+`-mb-broker" do not exist`),
5564
},
5665
},
5766
}
@@ -127,10 +136,10 @@ func newServiceAccountForBroker(namespace, name string) *corev1.ServiceAccount {
127136
},
128137
ObjectMeta: metav1.ObjectMeta{
129138
Namespace: namespace,
130-
Name: name + "-mb-broker",
139+
Name: name + tBrokerSuffix,
131140
Labels: map[string]string{
132141
"app.kubernetes.io/component": "broker-serviceaccount",
133-
"app.kubernetes.io/instance": name + "-mb-broker",
142+
"app.kubernetes.io/instance": name + tBrokerSuffix,
134143
"app.kubernetes.io/managed-by": "triggermesh-core",
135144
"app.kubernetes.io/name": "memorybroker",
136145
"app.kubernetes.io/part-of": "triggermesh",
@@ -158,10 +167,10 @@ func newRoleBindingForBroker(namespace, name string) *rbacv1.RoleBinding {
158167
},
159168
ObjectMeta: metav1.ObjectMeta{
160169
Namespace: namespace,
161-
Name: name + "-mb-broker",
170+
Name: name + tBrokerSuffix,
162171
Labels: map[string]string{
163172
"app.kubernetes.io/component": "broker-rolebinding",
164-
"app.kubernetes.io/instance": name + "mb-broker",
173+
"app.kubernetes.io/instance": name + tBrokerSuffix,
165174
"app.kubernetes.io/managed-by": "triggermesh-core",
166175
"app.kubernetes.io/name": "memorybroker",
167176
"app.kubernetes.io/part-of": "triggermesh",
@@ -177,7 +186,7 @@ func newRoleBindingForBroker(namespace, name string) *rbacv1.RoleBinding {
177186
},
178187
},
179188
Subjects: []rbacv1.Subject{
180-
{Kind: "ServiceAccount", Name: name + "-mb-broker", Namespace: namespace},
189+
{Kind: "ServiceAccount", Name: name + tBrokerSuffix, Namespace: namespace},
181190
},
182191
RoleRef: rbacv1.RoleRef{
183192
APIGroup: "rbac.authorization.k8s.io",
@@ -188,3 +197,135 @@ func newRoleBindingForBroker(namespace, name string) *rbacv1.RoleBinding {
188197

189198
return rb
190199
}
200+
201+
func newServiceForBroker(namespace, name string) *corev1.Service {
202+
s := &corev1.Service{
203+
TypeMeta: metav1.TypeMeta{
204+
APIVersion: "v1",
205+
Kind: "Service",
206+
},
207+
ObjectMeta: metav1.ObjectMeta{
208+
Namespace: namespace,
209+
Name: name + tBrokerSuffix,
210+
Labels: map[string]string{
211+
"app.kubernetes.io/component": "broker-service",
212+
"app.kubernetes.io/instance": name + tBrokerSuffix,
213+
"app.kubernetes.io/managed-by": "triggermesh-core",
214+
"app.kubernetes.io/name": "memorybroker",
215+
"app.kubernetes.io/part-of": "triggermesh",
216+
},
217+
OwnerReferences: []metav1.OwnerReference{
218+
{
219+
APIVersion: "eventing.triggermesh.io/v1alpha1",
220+
Kind: "MemoryBroker",
221+
Name: name,
222+
Controller: &tTrue,
223+
BlockOwnerDeletion: &tTrue,
224+
},
225+
},
226+
},
227+
Spec: corev1.ServiceSpec{
228+
Selector: map[string]string{
229+
"app.kubernetes.io/component": "broker-deployment",
230+
"app.kubernetes.io/instance": name + "-mb-broker",
231+
},
232+
Ports: []corev1.ServicePort{
233+
{
234+
Name: "httpce",
235+
Port: 80,
236+
TargetPort: intstr.IntOrString{
237+
IntVal: 8080,
238+
},
239+
},
240+
},
241+
Type: corev1.ServiceTypeClusterIP,
242+
},
243+
}
244+
245+
return s
246+
}
247+
248+
func newDeploymentForBroker(namespace, name string) *appsv1.Deployment {
249+
d := &appsv1.Deployment{
250+
TypeMeta: metav1.TypeMeta{
251+
APIVersion: "apps/v1",
252+
Kind: "Deployment",
253+
},
254+
ObjectMeta: metav1.ObjectMeta{
255+
Namespace: namespace,
256+
Name: name + tBrokerSuffix,
257+
Labels: map[string]string{
258+
"app.kubernetes.io/component": "broker-deployment",
259+
"app.kubernetes.io/instance": name + tBrokerSuffix,
260+
"app.kubernetes.io/managed-by": "triggermesh-core",
261+
"app.kubernetes.io/name": "memorybroker",
262+
"app.kubernetes.io/part-of": "triggermesh",
263+
},
264+
OwnerReferences: []metav1.OwnerReference{
265+
{
266+
APIVersion: "eventing.triggermesh.io/v1alpha1",
267+
Kind: "MemoryBroker",
268+
Name: name,
269+
Controller: &tTrue,
270+
BlockOwnerDeletion: &tTrue,
271+
},
272+
},
273+
},
274+
Spec: appsv1.DeploymentSpec{
275+
Replicas: &tReplicas,
276+
Selector: &metav1.LabelSelector{
277+
MatchLabels: map[string]string{
278+
"app.kubernetes.io/component": "broker-deployment",
279+
"app.kubernetes.io/instance": name + tBrokerSuffix,
280+
},
281+
},
282+
Template: corev1.PodTemplateSpec{
283+
ObjectMeta: metav1.ObjectMeta{
284+
Labels: map[string]string{
285+
"app.kubernetes.io/component": "broker-deployment",
286+
"app.kubernetes.io/instance": name + tBrokerSuffix,
287+
"app.kubernetes.io/managed-by": "triggermesh-core",
288+
"app.kubernetes.io/part-of": "triggermesh",
289+
},
290+
},
291+
Spec: corev1.PodSpec{
292+
ServiceAccountName: name + tBrokerSuffix,
293+
Containers: []corev1.Container{
294+
{
295+
Name: "broker",
296+
Image: tBrokerImage,
297+
Args: []string{"start"},
298+
ImagePullPolicy: corev1.PullAlways,
299+
Ports: []corev1.ContainerPort{
300+
{
301+
Name: "httpce",
302+
ContainerPort: 8080,
303+
},
304+
{
305+
Name: "metrics",
306+
ContainerPort: 9090,
307+
},
308+
},
309+
Env: []corev1.EnvVar{
310+
{Name: "PORT", Value: "8080"},
311+
{Name: "BROKER_NAME", Value: name},
312+
{
313+
Name: "KUBERNETES_NAMESPACE",
314+
ValueFrom: &corev1.EnvVarSource{
315+
FieldRef: &corev1.ObjectFieldSelector{
316+
FieldPath: "metadata.namespace",
317+
},
318+
},
319+
},
320+
{Name: "KUBERNETES_BROKER_CONFIG_SECRET_NAME", Value: name + "-mb-config"},
321+
{Name: "KUBERNETES_BROKER_CONFIG_SECRET_KEY", Value: "config"},
322+
},
323+
},
324+
},
325+
},
326+
},
327+
},
328+
}
329+
330+
return d
331+
}

0 commit comments

Comments
 (0)