Skip to content

Commit c95e06b

Browse files
knative-prow-robotCali0707pierDipi
authored
[release-1.12] fix selector path for cg scale subresource (#3688)
* fix selector path for cg scale subresource Signed-off-by: Calum Murray <cmurray@redhat.com> * set .status.selector properly Signed-off-by: Calum Murray <cmurray@redhat.com> * fix: unit tests expect correct cg status Signed-off-by: Calum Murray <cmurray@redhat.com> * fix: selector is omitted from struct when empty Co-authored-by: Pierangelo Di Pilato <pierangelodipilato@gmail.com> --------- Signed-off-by: Calum Murray <cmurray@redhat.com> Co-authored-by: Calum Murray <cmurray@redhat.com> Co-authored-by: Pierangelo Di Pilato <pierangelodipilato@gmail.com>
1 parent a3ac3c2 commit c95e06b

File tree

4 files changed

+32
-0
lines changed

4 files changed

+32
-0
lines changed

control-plane/pkg/apis/internals/kafka/eventing/v1alpha1/consumer_group_types.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,10 @@ type ConsumerGroupStatus struct {
124124
// same Template, but individual replicas also have a consistent identity.
125125
// +optional
126126
Replicas *int32 `json:"replicas,omitempty"`
127+
128+
// Selector is the string serialized label selector needed for the scale subresource.
129+
// Defaults to ""
130+
Selector string `json:"selector,omitempty"`
127131
}
128132

129133
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

control-plane/pkg/reconciler/consumergroup/consumergroup.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,8 @@ type Reconciler struct {
178178
func (r *Reconciler) ReconcileKind(ctx context.Context, cg *kafkainternals.ConsumerGroup) reconciler.Event {
179179
recordExpectedReplicasMetric(ctx, cg)
180180

181+
r.reconcileStatusSelector(cg)
182+
181183
if err := r.reconcileInitialOffset(ctx, cg); err != nil {
182184
return cg.MarkInitializeOffsetFailed("InitializeOffset", err)
183185
}
@@ -259,6 +261,10 @@ func (r *Reconciler) FinalizeKind(ctx context.Context, cg *kafkainternals.Consum
259261
return nil
260262
}
261263

264+
func (r *Reconciler) reconcileStatusSelector(cg *kafkainternals.ConsumerGroup) {
265+
cg.Status.Selector = labels.SelectorFromValidatedSet(cg.Spec.Selector).String()
266+
}
267+
262268
func (r *Reconciler) deleteConsumerGroupMetadata(ctx context.Context, cg *kafkainternals.ConsumerGroup) error {
263269
saramaSecurityOption, err := r.newAuthConfigOption(ctx, cg)
264270
if err != nil {

control-plane/pkg/reconciler/consumergroup/consumergroup_test.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,7 @@ func TestReconcileKind(t *testing.T) {
148148
ConsumerGroupReplicas(2),
149149
ConsumerGroupStatusReplicas(0),
150150
ConsumerForTrigger(),
151+
ConsumerGroupStatusSelector(ConsumerLabels),
151152
)
152153
cg.Status.Placements = []eventingduckv1alpha1.Placement{
153154
{PodName: "p1", VReplicas: 1},
@@ -234,6 +235,7 @@ func TestReconcileKind(t *testing.T) {
234235
),
235236
)),
236237
ConsumerGroupReplicas(2),
238+
ConsumerGroupStatusSelector(ConsumerLabels),
237239
ConsumerGroupStatusReplicas(0),
238240
ConsumerForTrigger(),
239241
)
@@ -340,6 +342,7 @@ func TestReconcileKind(t *testing.T) {
340342
}),
341343
)),
342344
ConsumerGroupReplicas(2),
345+
ConsumerGroupStatusSelector(ConsumerLabels),
343346
ConsumerForTrigger(),
344347
)
345348
cg.InitializeConditions()
@@ -448,6 +451,7 @@ func TestReconcileKind(t *testing.T) {
448451
}),
449452
)),
450453
ConsumerGroupReplicas(2),
454+
ConsumerGroupStatusSelector(ConsumerLabels),
451455
ConsumerGroupStatusReplicas(0),
452456
ConsumerForTrigger(),
453457
)
@@ -572,6 +576,7 @@ func TestReconcileKind(t *testing.T) {
572576
}),
573577
)),
574578
ConsumerGroupReplicas(2),
579+
ConsumerGroupStatusSelector(ConsumerLabels),
575580
ConsumerGroupStatusReplicas(1),
576581
ConsumerForTrigger(),
577582
)
@@ -758,6 +763,7 @@ func TestReconcileKind(t *testing.T) {
758763
}),
759764
)),
760765
ConsumerGroupReplicas(2),
766+
ConsumerGroupStatusSelector(ConsumerLabels),
761767
ConsumerForTrigger(),
762768
)
763769
cg.InitializeConditions()
@@ -974,6 +980,7 @@ func TestReconcileKind(t *testing.T) {
974980
)),
975981
ConsumerGroupReplicas(2),
976982
ConsumerGroupStatusReplicas(1),
983+
ConsumerGroupStatusSelector(ConsumerLabels),
977984
ConsumerForTrigger(),
978985
)
979986
cg.Status.Placements = []eventingduckv1alpha1.Placement{
@@ -1063,6 +1070,7 @@ func TestReconcileKind(t *testing.T) {
10631070
ConsumerGroupReplicas(1),
10641071
ConsumerGroupStatusReplicas(0),
10651072
ConsumerForTrigger(),
1073+
ConsumerGroupStatusSelector(ConsumerLabels),
10661074
)
10671075
cg.Status.Placements = []eventingduckv1alpha1.Placement{
10681076
{PodName: "p1", VReplicas: 1},
@@ -1144,6 +1152,7 @@ func TestReconcileKind(t *testing.T) {
11441152
ConsumerGroupIdConfig("my.group.id"),
11451153
),
11461154
)),
1155+
ConsumerGroupStatusSelector(ConsumerLabels),
11471156
ConsumerGroupReplicas(2),
11481157
ConsumerGroupStatusReplicas(0),
11491158
ConsumerForTrigger(),
@@ -1230,6 +1239,7 @@ func TestReconcileKind(t *testing.T) {
12301239
ConsumerGroupIdConfig("my.group.id"),
12311240
),
12321241
)),
1242+
ConsumerGroupStatusSelector(ConsumerLabels),
12331243
ConsumerGroupReplicas(2),
12341244
ConsumerGroupStatusReplicas(1),
12351245
ConsumerForTrigger(),
@@ -1358,6 +1368,7 @@ func TestReconcileKind(t *testing.T) {
13581368
ConsumerInitialOffset(sources.OffsetLatest),
13591369
)),
13601370
)),
1371+
ConsumerGroupStatusSelector(ConsumerLabels),
13611372
ConsumerGroupReplicas(3),
13621373
ConsumerForTrigger(),
13631374
)
@@ -1468,6 +1479,7 @@ func TestReconcileKind(t *testing.T) {
14681479
ConsumerGroupIdConfig("my.group.id"),
14691480
),
14701481
)),
1482+
ConsumerGroupStatusSelector(ConsumerLabels),
14711483
ConsumerGroupReplicas(3),
14721484
ConsumerForTrigger(),
14731485
)
@@ -1577,6 +1589,7 @@ func TestReconcileKind(t *testing.T) {
15771589
ConsumerGroupIdConfig("my.group.id"),
15781590
),
15791591
)),
1592+
ConsumerGroupStatusSelector(ConsumerLabels),
15801593
ConsumerGroupReplicas(2),
15811594
ConsumerForTrigger(),
15821595
)
@@ -1640,6 +1653,7 @@ func TestReconcileKind(t *testing.T) {
16401653
),
16411654
)),
16421655
ConsumerGroupReplicas(2),
1656+
ConsumerGroupStatusSelector(ConsumerLabels),
16431657
ConsumerForTrigger(),
16441658
)
16451659
cg.GetConditionSet().Manage(cg.GetStatus()).InitializeConditions()
@@ -1776,6 +1790,7 @@ func TestReconcileKindNoAutoscaler(t *testing.T) {
17761790
),
17771791
)),
17781792
ConsumerGroupReplicas(2),
1793+
ConsumerGroupStatusSelector(ConsumerLabels),
17791794
ConsumerGroupStatusReplicas(1),
17801795
ConsumerForTrigger(),
17811796
)

control-plane/pkg/reconciler/testing/objects_consumergroup.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import (
2323

2424
corev1 "k8s.io/api/core/v1"
2525
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
26+
"k8s.io/apimachinery/pkg/labels"
2627
"k8s.io/utils/pointer"
2728
"knative.dev/pkg/apis"
2829
duckv1 "knative.dev/pkg/apis/duck/v1"
@@ -189,6 +190,12 @@ func ConsumerGroupStatusReplicas(replicas int32) ConsumerGroupOption {
189190
}
190191
}
191192

193+
func ConsumerGroupStatusSelector(label map[string]string) ConsumerGroupOption {
194+
return func(cg *kafkainternals.ConsumerGroup) {
195+
cg.Status.Selector = labels.SelectorFromSet(label).String()
196+
}
197+
}
198+
192199
func ConsumerGroupReplicasStatus(replicas int32) ConsumerGroupOption {
193200
return func(cg *kafkainternals.ConsumerGroup) {
194201
cg.Status.Replicas = pointer.Int32(replicas)

0 commit comments

Comments
 (0)