Skip to content

Commit

Permalink
Add common spec to dependencies (#637)
Browse files Browse the repository at this point in the history
Signed-off-by: Gary Brown <[email protected]>
  • Loading branch information
objectiser authored and jpkrohling committed Sep 3, 2019
1 parent 97c85c2 commit 98deec9
Show file tree
Hide file tree
Showing 5 changed files with 68 additions and 13 deletions.
5 changes: 4 additions & 1 deletion pkg/account/const.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,9 @@ const (
// AllInOneComponent represents the value for the Component type for Jaeger All-In-One
AllInOneComponent Component = "all-in-one"

// AgentComponent epresents the value for the Component type for Jaeger Agent
// AgentComponent represents the value for the Component type for Jaeger Agent
AgentComponent Component = "agent"

// DependenciesComponent represents the value for the Component type for Jaeger Dependencies CronJob
DependenciesComponent Component = "dependencies"
)
2 changes: 1 addition & 1 deletion pkg/apis/jaegertracing/v1/jaeger_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -378,7 +378,7 @@ type JaegerDependenciesSpec struct {
TTLSecondsAfterFinished *int32 `json:"ttlSecondsAfterFinished,omitempty"`

// +optional
Resources v1.ResourceRequirements `json:"resources,omitempty"`
JaegerCommonSpec `json:",inline,omitempty"`
}

// JaegerEsIndexCleanerSpec holds the options related to es-index-cleaner
Expand Down
2 changes: 1 addition & 1 deletion pkg/apis/jaegertracing/v1/zz_generated.deepcopy.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

29 changes: 20 additions & 9 deletions pkg/cronjob/spark_dependencies.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import (
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"

"github.com/jaegertracing/jaeger-operator/pkg/account"
v1 "github.com/jaegertracing/jaeger-operator/pkg/apis/jaegertracing/v1"
"github.com/jaegertracing/jaeger-operator/pkg/storage"
"github.com/jaegertracing/jaeger-operator/pkg/util"
Expand All @@ -34,8 +35,17 @@ func CreateSparkDependencies(jaeger *v1.Jaeger) *batchv1beta1.CronJob {
trueVar := true
one := int32(1)
name := fmt.Sprintf("%s-spark-dependencies", jaeger.Name)
resources := jaeger.Spec.Storage.Dependencies.Resources
util.MergeResources(&resources, jaeger.Spec.Resources)

baseCommonSpec := v1.JaegerCommonSpec{
Annotations: map[string]string{
"prometheus.io/scrape": "false",
"sidecar.istio.io/inject": "false",
"linkerd.io/inject": "disabled",
},
}

commonSpec := util.Merge([]v1.JaegerCommonSpec{jaeger.Spec.Storage.Dependencies.JaegerCommonSpec, jaeger.Spec.JaegerCommonSpec, baseCommonSpec})

return &batchv1beta1.CronJob{
ObjectMeta: metav1.ObjectMeta{
Name: name,
Expand Down Expand Up @@ -72,17 +82,18 @@ func CreateSparkDependencies(jaeger *v1.Jaeger) *batchv1beta1.CronJob {
Name: name,
// let spark job use its default values
Env: removeEmptyVars(envVars),
Resources: resources,
Resources: commonSpec.Resources,
},
},
RestartPolicy: corev1.RestartPolicyNever,
RestartPolicy: corev1.RestartPolicyNever,
Affinity: commonSpec.Affinity,
Tolerations: commonSpec.Tolerations,
SecurityContext: commonSpec.SecurityContext,
ServiceAccountName: account.JaegerServiceAccountFor(jaeger, account.DependenciesComponent),
},
ObjectMeta: metav1.ObjectMeta{
Annotations: map[string]string{
"prometheus.io/scrape": "false",
"sidecar.istio.io/inject": "false",
"linkerd.io/inject": "disabled",
},
Labels: commonSpec.Labels,
Annotations: commonSpec.Annotations,
},
},
},
Expand Down
43 changes: 42 additions & 1 deletion pkg/cronjob/spark_dependencies_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import (
"github.com/stretchr/testify/assert"
corev1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/api/resource"
"k8s.io/apimachinery/pkg/types"

v1 "github.com/jaegertracing/jaeger-operator/pkg/apis/jaegertracing/v1"
)
Expand Down Expand Up @@ -85,6 +86,44 @@ func TestSparkDependencies(t *testing.T) {
assert.Equal(t, j.Namespace, cjob.Namespace)
}

func TestDependenciesAnnotations(t *testing.T) {
jaeger := v1.NewJaeger(types.NamespacedName{Name: "TestDependenciesAnnotations"})
jaeger.Spec.Annotations = map[string]string{
"name": "operator",
"hello": "jaeger",
}
jaeger.Spec.Storage.Dependencies.Annotations = map[string]string{
"hello": "world", // Override top level annotation
"prometheus.io/scrape": "false", // Override implicit value
}

cjob := CreateSparkDependencies(jaeger)

assert.Equal(t, "operator", cjob.Spec.JobTemplate.Spec.Template.Annotations["name"])
assert.Equal(t, "false", cjob.Spec.JobTemplate.Spec.Template.Annotations["sidecar.istio.io/inject"])
assert.Equal(t, "world", cjob.Spec.JobTemplate.Spec.Template.Annotations["hello"])
assert.Equal(t, "false", cjob.Spec.JobTemplate.Spec.Template.Annotations["prometheus.io/scrape"])
assert.Equal(t, "disabled", cjob.Spec.JobTemplate.Spec.Template.Annotations["linkerd.io/inject"])
}

func TestDependenciesLabels(t *testing.T) {
jaeger := v1.NewJaeger(types.NamespacedName{Name: "TestDependenciesLabels"})
jaeger.Spec.Labels = map[string]string{
"name": "operator",
"hello": "jaeger",
}
jaeger.Spec.Storage.Dependencies.Labels = map[string]string{
"hello": "world", // Override top level label
"another": "false",
}

cjob := CreateSparkDependencies(jaeger)

assert.Equal(t, "operator", cjob.Spec.JobTemplate.Spec.Template.Labels["name"])
assert.Equal(t, "world", cjob.Spec.JobTemplate.Spec.Template.Labels["hello"])
assert.Equal(t, "false", cjob.Spec.JobTemplate.Spec.Template.Labels["another"])
}

func TestSparkDependenciesResources(t *testing.T) {

parentResources := corev1.ResourceRequirements{
Expand Down Expand Up @@ -131,7 +170,9 @@ func TestSparkDependenciesResources(t *testing.T) {
Storage: v1.JaegerStorageSpec{
Type: "elasticsearch",
Dependencies: v1.JaegerDependenciesSpec{
Resources: dependencyResources,
JaegerCommonSpec: v1.JaegerCommonSpec{
Resources: dependencyResources,
},
},
},
JaegerCommonSpec: v1.JaegerCommonSpec{
Expand Down

0 comments on commit 98deec9

Please sign in to comment.