Skip to content

Commit ba36d4f

Browse files
committed
patch: adding ability to pass labels through to the services for query
1 parent 87d8ae0 commit ba36d4f

File tree

2 files changed

+40
-1
lines changed

2 files changed

+40
-1
lines changed

pkg/service/query.go

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,14 @@ func NewQueryService(jaeger *v1.Jaeger, selector map[string]string) *corev1.Serv
1717
if jaeger.Spec.Query.Annotations != nil {
1818
annotations = jaeger.Spec.Query.Annotations
1919
}
20+
21+
labels := util.Labels(GetNameForQueryService(jaeger), "service-query", *jaeger)
22+
if jaeger.Spec.Query.Labels != nil {
23+
for k, v := range jaeger.Spec.Query.Labels {
24+
labels[k] = v
25+
}
26+
27+
}
2028
if jaeger.Spec.Ingress.Security == v1.IngressSecurityOAuthProxy {
2129
annotations["service.alpha.openshift.io/serving-cert-secret-name"] = GetTLSSecretNameForQueryService(jaeger)
2230
}
@@ -56,7 +64,7 @@ func NewQueryService(jaeger *v1.Jaeger, selector map[string]string) *corev1.Serv
5664
ObjectMeta: metav1.ObjectMeta{
5765
Name: GetNameForQueryService(jaeger),
5866
Namespace: jaeger.Namespace,
59-
Labels: util.Labels(GetNameForQueryService(jaeger), "service-query", *jaeger),
67+
Labels: labels,
6068
Annotations: annotations,
6169
OwnerReferences: []metav1.OwnerReference{
6270
{

pkg/service/query_test.go

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package service
22

33
import (
4+
"fmt"
45
"testing"
56

67
"github.com/stretchr/testify/assert"
@@ -151,3 +152,33 @@ func TestQueryServiceSpecAnnotations(t *testing.T) {
151152
assert.Equal(t, intstr.FromInt(16687), svc.Spec.Ports[2].TargetPort)
152153
assert.Equal(t, map[string]string{"component": "jaeger"}, svc.Annotations)
153154
}
155+
156+
func TestQueryServiceSpecLabels(t *testing.T) {
157+
name := "TestQueryServiceSpecLabels"
158+
selector := map[string]string{"app": "myapp", "jaeger": name, "jaeger-component": "query"}
159+
160+
// Test 1: Without custom labels
161+
jaeger := v1.NewJaeger(types.NamespacedName{Name: name})
162+
svc := NewQueryService(jaeger, selector)
163+
fmt.Println(svc.ObjectMeta.Labels)
164+
165+
// Verify default labels from util.Labels are present
166+
assert.Equal(t, "testqueryservicespeclabels-query", svc.ObjectMeta.Name)
167+
assert.Len(t, svc.Spec.Ports, 3)
168+
assert.Equal(t, int32(16686), svc.Spec.Ports[0].Port)
169+
assert.Equal(t, int32(16685), svc.Spec.Ports[1].Port)
170+
assert.Equal(t, int32(16687), svc.Spec.Ports[2].Port)
171+
assert.Equal(t, "http-query", svc.Spec.Ports[0].Name)
172+
assert.Equal(t, "grpc-query", svc.Spec.Ports[1].Name)
173+
assert.Equal(t, "admin-http", svc.Spec.Ports[2].Name)
174+
assert.Equal(t, intstr.FromInt(16686), svc.Spec.Ports[0].TargetPort)
175+
assert.Equal(t, intstr.FromInt(16685), svc.Spec.Ports[1].TargetPort)
176+
assert.Equal(t, intstr.FromInt(16687), svc.Spec.Ports[2].TargetPort)
177+
178+
assert.Equal(t, "jaeger", svc.ObjectMeta.Labels["app"])
179+
assert.Equal(t, fmt.Sprintf("%s", svc.ObjectMeta.Name), svc.ObjectMeta.Labels["app.kubernetes.io/name"])
180+
assert.Equal(t, name, svc.ObjectMeta.Labels["app.kubernetes.io/instance"])
181+
assert.Equal(t, "service-query", svc.ObjectMeta.Labels["app.kubernetes.io/component"])
182+
assert.Equal(t, "jaeger", svc.ObjectMeta.Labels["app.kubernetes.io/part-of"])
183+
assert.Equal(t, "jaeger-operator", svc.ObjectMeta.Labels["app.kubernetes.io/managed-by"])
184+
}

0 commit comments

Comments
 (0)