Skip to content

Commit

Permalink
Changed to use recommended labels (#172)
Browse files Browse the repository at this point in the history
Signed-off-by: Juraci Paixão Kröhling <juraci@kroehling.de>
  • Loading branch information
jpkrohling authored Jan 22, 2019
1 parent 1e134be commit 7f16a8c
Show file tree
Hide file tree
Showing 8 changed files with 117 additions and 29 deletions.
21 changes: 16 additions & 5 deletions pkg/deployment/agent.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ func (a *Agent) Get() *appsv1.DaemonSet {

args := append(a.jaeger.Spec.Agent.Options.ToArgs(), fmt.Sprintf("--collector.host-port=%s:14267", service.GetNameForCollectorService(a.jaeger)))
trueVar := true
selector := a.selector()
labels := a.labels()

baseCommonSpec := v1alpha1.JaegerCommonSpec{
Annotations: map[string]string{
Expand Down Expand Up @@ -73,11 +73,11 @@ func (a *Agent) Get() *appsv1.DaemonSet {
},
Spec: appsv1.DaemonSetSpec{
Selector: &metav1.LabelSelector{
MatchLabels: selector,
MatchLabels: labels,
},
Template: v1.PodTemplateSpec{
ObjectMeta: metav1.ObjectMeta{
Labels: selector,
Labels: labels,
Annotations: commonSpec.Annotations,
},
Spec: v1.PodSpec{
Expand Down Expand Up @@ -128,6 +128,17 @@ func (a *Agent) Get() *appsv1.DaemonSet {
}
}

func (a *Agent) selector() map[string]string {
return map[string]string{"app": "jaeger", "jaeger": a.jaeger.Name, "jaeger-component": "agent-daemonset"}
func (a *Agent) labels() map[string]string {
return map[string]string{
"app": "jaeger", // TODO(jpkroehling): see collector.go in this package
"app.kubernetes.io/name": a.name(),
"app.kubernetes.io/instance": a.jaeger.Name,
"app.kubernetes.io/component": "agent",
"app.kubernetes.io/part-of": "jaeger",
"app.kubernetes.io/managed-by": "jaeger-operator",
}
}

func (a *Agent) name() string {
return fmt.Sprintf("%s-agent", a.jaeger.Name)
}
12 changes: 12 additions & 0 deletions pkg/deployment/agent_test.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package deployment

import (
"fmt"
"testing"

"github.com/spf13/viper"
Expand Down Expand Up @@ -118,3 +119,14 @@ func TestDaemonSetAgentResources(t *testing.T) {
assert.Equal(t, *resource.NewQuantity(512, resource.DecimalSI), dep.Spec.Template.Spec.Containers[0].Resources.Limits[v1.ResourceLimitsEphemeralStorage])
assert.Equal(t, *resource.NewQuantity(512, resource.DecimalSI), dep.Spec.Template.Spec.Containers[0].Resources.Requests[v1.ResourceRequestsEphemeralStorage])
}

func TestAgentLabels(t *testing.T) {
jaeger := v1alpha1.NewJaeger("TestAgentLabels")
jaeger.Spec.Agent.Strategy = "daemonset"
a := NewAgent(jaeger)
dep := a.Get()
assert.Equal(t, "jaeger-operator", dep.Spec.Template.Labels["app.kubernetes.io/managed-by"])
assert.Equal(t, "agent", dep.Spec.Template.Labels["app.kubernetes.io/component"])
assert.Equal(t, a.jaeger.Name, dep.Spec.Template.Labels["app.kubernetes.io/instance"])
assert.Equal(t, fmt.Sprintf("%s-agent", a.jaeger.Name), dep.Spec.Template.Labels["app.kubernetes.io/name"])
}
29 changes: 20 additions & 9 deletions pkg/deployment/all-in-one.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ func NewAllInOne(jaeger *v1alpha1.Jaeger) *AllInOne {
// Get returns a pod for the current all-in-one configuration
func (a *AllInOne) Get() *appsv1.Deployment {
logrus.Debug("Assembling an all-in-one deployment")
selector := a.selector()
labels := a.labels()
trueVar := true

baseCommonSpec := v1alpha1.JaegerCommonSpec{
Expand Down Expand Up @@ -85,11 +85,11 @@ func (a *AllInOne) Get() *appsv1.Deployment {
},
Spec: appsv1.DeploymentSpec{
Selector: &metav1.LabelSelector{
MatchLabels: selector,
MatchLabels: labels,
},
Template: v1.PodTemplateSpec{
ObjectMeta: metav1.ObjectMeta{
Labels: selector,
Labels: labels,
Annotations: commonSpec.Annotations,
},
Spec: v1.PodSpec{
Expand Down Expand Up @@ -166,14 +166,25 @@ func (a *AllInOne) Get() *appsv1.Deployment {

// Services returns a list of services to be deployed along with the all-in-one deployment
func (a *AllInOne) Services() []*v1.Service {
selector := a.selector()
labels := a.labels()
return []*v1.Service{
service.NewCollectorService(a.jaeger, selector),
service.NewQueryService(a.jaeger, selector),
service.NewAgentService(a.jaeger, selector),
service.NewCollectorService(a.jaeger, labels),
service.NewQueryService(a.jaeger, labels),
service.NewAgentService(a.jaeger, labels),
}
}

func (a *AllInOne) selector() map[string]string {
return map[string]string{"app": "jaeger", "jaeger": a.jaeger.Name}
func (a *AllInOne) labels() map[string]string {
return map[string]string{
"app": "jaeger", // TODO(jpkroehling): see collector.go in this package
"app.kubernetes.io/name": a.name(),
"app.kubernetes.io/instance": a.jaeger.Name,
"app.kubernetes.io/component": "all-in-one",
"app.kubernetes.io/part-of": "jaeger",
"app.kubernetes.io/managed-by": "jaeger-operator",
}
}

func (a *AllInOne) name() string {
return a.jaeger.Name
}
9 changes: 9 additions & 0 deletions pkg/deployment/all-in-one_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -251,3 +251,12 @@ func TestAllInOneResources(t *testing.T) {
assert.Equal(t, *resource.NewQuantity(512, resource.DecimalSI), dep.Spec.Template.Spec.Containers[0].Resources.Limits[v1.ResourceLimitsEphemeralStorage])
assert.Equal(t, *resource.NewQuantity(512, resource.DecimalSI), dep.Spec.Template.Spec.Containers[0].Resources.Requests[v1.ResourceRequestsEphemeralStorage])
}

func TestAllInOneLabels(t *testing.T) {
a := NewAllInOne(v1alpha1.NewJaeger("TestAllInOneLabels"))
dep := a.Get()
assert.Equal(t, "jaeger-operator", dep.Spec.Template.Labels["app.kubernetes.io/managed-by"])
assert.Equal(t, "all-in-one", dep.Spec.Template.Labels["app.kubernetes.io/component"])
assert.Equal(t, a.jaeger.Name, dep.Spec.Template.Labels["app.kubernetes.io/instance"])
assert.Equal(t, a.jaeger.Name, dep.Spec.Template.Labels["app.kubernetes.io/name"])
}
31 changes: 23 additions & 8 deletions pkg/deployment/collector.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ func NewCollector(jaeger *v1alpha1.Jaeger) *Collector {
func (c *Collector) Get() *appsv1.Deployment {
logrus.Debugf("Assembling a collector deployment for %v", c.jaeger)

selector := c.selector()
labels := c.labels()
trueVar := true
replicas := int32(c.jaeger.Spec.Collector.Size)

Expand Down Expand Up @@ -75,7 +75,7 @@ func (c *Collector) Get() *appsv1.Deployment {
Kind: "Deployment",
},
ObjectMeta: metav1.ObjectMeta{
Name: fmt.Sprintf("%s-collector", c.jaeger.Name),
Name: c.name(),
Namespace: c.jaeger.Namespace,
OwnerReferences: []metav1.OwnerReference{
metav1.OwnerReference{
Expand All @@ -90,11 +90,11 @@ func (c *Collector) Get() *appsv1.Deployment {
Spec: appsv1.DeploymentSpec{
Replicas: &replicas,
Selector: &metav1.LabelSelector{
MatchLabels: selector,
MatchLabels: labels,
},
Template: v1.PodTemplateSpec{
ObjectMeta: metav1.ObjectMeta{
Labels: selector,
Labels: labels,
Annotations: commonSpec.Annotations,
},
Spec: v1.PodSpec{
Expand Down Expand Up @@ -148,12 +148,27 @@ func (c *Collector) Get() *appsv1.Deployment {

// Services returns a list of services to be deployed along with the all-in-one deployment
func (c *Collector) Services() []*v1.Service {
selector := c.selector()
return []*v1.Service{
service.NewCollectorService(c.jaeger, selector),
service.NewCollectorService(c.jaeger, c.labels()),
}
}

func (c *Collector) selector() map[string]string {
return map[string]string{"app": "jaeger", "jaeger": c.jaeger.Name, "jaeger-component": "collector"}
func (c *Collector) labels() map[string]string {
return map[string]string{
"app": "jaeger", // kept for backwards compatibility, remove by version 2.0
"app.kubernetes.io/name": c.name(),
"app.kubernetes.io/instance": c.jaeger.Name,
"app.kubernetes.io/component": "collector",
"app.kubernetes.io/part-of": "jaeger",
"app.kubernetes.io/managed-by": "jaeger-operator", // should we qualify this with the operator's namespace?

// the 'version' label is out for now for two reasons:
// 1. https://github.com/jaegertracing/jaeger-operator/issues/166
// 2. these labels are also used as selectors, and as such, need to be consistent... this
// might be a problem once we support updating the jaeger version
}
}

func (c *Collector) name() string {
return fmt.Sprintf("%s-collector", c.jaeger.Name)
}
10 changes: 10 additions & 0 deletions pkg/deployment/collector_test.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package deployment

import (
"fmt"
"testing"

"github.com/spf13/viper"
Expand Down Expand Up @@ -266,3 +267,12 @@ func TestCollectorResources(t *testing.T) {
assert.Equal(t, *resource.NewQuantity(512, resource.DecimalSI), dep.Spec.Template.Spec.Containers[0].Resources.Limits[v1.ResourceLimitsEphemeralStorage])
assert.Equal(t, *resource.NewQuantity(512, resource.DecimalSI), dep.Spec.Template.Spec.Containers[0].Resources.Requests[v1.ResourceRequestsEphemeralStorage])
}

func TestCollectorLabels(t *testing.T) {
c := NewCollector(v1alpha1.NewJaeger("TestCollectorLabels"))
dep := c.Get()
assert.Equal(t, "jaeger-operator", dep.Spec.Template.Labels["app.kubernetes.io/managed-by"])
assert.Equal(t, "collector", dep.Spec.Template.Labels["app.kubernetes.io/component"])
assert.Equal(t, c.jaeger.Name, dep.Spec.Template.Labels["app.kubernetes.io/instance"])
assert.Equal(t, fmt.Sprintf("%s-collector", c.jaeger.Name), dep.Spec.Template.Labels["app.kubernetes.io/name"])
}
25 changes: 18 additions & 7 deletions pkg/deployment/query.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ func NewQuery(jaeger *v1alpha1.Jaeger) *Query {
// Get returns a deployment specification for the current instance
func (q *Query) Get() *appsv1.Deployment {
logrus.Debug("Assembling a query deployment")
selector := q.selector()
labels := q.labels()
trueVar := true
replicas := int32(q.jaeger.Spec.Query.Size)

Expand Down Expand Up @@ -95,11 +95,11 @@ func (q *Query) Get() *appsv1.Deployment {
Spec: appsv1.DeploymentSpec{
Replicas: &replicas,
Selector: &metav1.LabelSelector{
MatchLabels: selector,
MatchLabels: labels,
},
Template: v1.PodTemplateSpec{
ObjectMeta: metav1.ObjectMeta{
Labels: selector,
Labels: labels,
Annotations: commonSpec.Annotations,
},
Spec: v1.PodSpec{
Expand Down Expand Up @@ -141,12 +141,23 @@ func (q *Query) Get() *appsv1.Deployment {

// Services returns a list of services to be deployed along with the query deployment
func (q *Query) Services() []*v1.Service {
selector := q.selector()
labels := q.labels()
return []*v1.Service{
service.NewQueryService(q.jaeger, selector),
service.NewQueryService(q.jaeger, labels),
}
}

func (q *Query) selector() map[string]string {
return map[string]string{"app": "jaeger", "jaeger": q.jaeger.Name, "jaeger-component": "query"}
func (q *Query) labels() map[string]string {
return map[string]string{
"app": "jaeger", // TODO(jpkroehling): see collector.go in this package
"app.kubernetes.io/name": q.name(),
"app.kubernetes.io/instance": q.jaeger.Name,
"app.kubernetes.io/component": "query",
"app.kubernetes.io/part-of": "jaeger",
"app.kubernetes.io/managed-by": "jaeger-operator",
}
}

func (q *Query) name() string {
return fmt.Sprintf("%s-query", q.jaeger.Name)
}
9 changes: 9 additions & 0 deletions pkg/deployment/query_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -254,3 +254,12 @@ func TestQueryResources(t *testing.T) {
assert.Equal(t, *resource.NewQuantity(512, resource.DecimalSI), dep.Spec.Template.Spec.Containers[0].Resources.Limits[v1.ResourceLimitsEphemeralStorage])
assert.Equal(t, *resource.NewQuantity(512, resource.DecimalSI), dep.Spec.Template.Spec.Containers[0].Resources.Requests[v1.ResourceRequestsEphemeralStorage])
}

func TestQueryLabels(t *testing.T) {
query := NewQuery(v1alpha1.NewJaeger("TestQueryLabels"))
dep := query.Get()
assert.Equal(t, "jaeger-operator", dep.Spec.Template.Labels["app.kubernetes.io/managed-by"])
assert.Equal(t, "query", dep.Spec.Template.Labels["app.kubernetes.io/component"])
assert.Equal(t, query.jaeger.Name, dep.Spec.Template.Labels["app.kubernetes.io/instance"])
assert.Equal(t, fmt.Sprintf("%s-query", query.jaeger.Name), dep.Spec.Template.Labels["app.kubernetes.io/name"])
}

0 comments on commit 7f16a8c

Please sign in to comment.