From 01e39a38e95e6edb1dbc5c0edf042d6ed9df0c0e Mon Sep 17 00:00:00 2001 From: Pavol Loffay Date: Fri, 18 Oct 2019 17:02:19 +0200 Subject: [PATCH] Pass only specified options to spark dependencies (#708) * Pass only specified options to spark dependencies Signed-off-by: Pavol Loffay * generate Signed-off-by: Pavol Loffay * fmt Signed-off-by: Pavol Loffay --- pkg/apis/jaegertracing/v1/jaeger_types.go | 4 ++-- pkg/apis/jaegertracing/v1/zz_generated.deepcopy.go | 10 ++++++++++ pkg/cronjob/spark_dependencies.go | 11 ++++++++--- pkg/cronjob/spark_dependencies_test.go | 14 +++++++++++++- 4 files changed, 33 insertions(+), 6 deletions(-) diff --git a/pkg/apis/jaegertracing/v1/jaeger_types.go b/pkg/apis/jaegertracing/v1/jaeger_types.go index 4a88156fb..b010d2ad8 100644 --- a/pkg/apis/jaegertracing/v1/jaeger_types.go +++ b/pkg/apis/jaegertracing/v1/jaeger_types.go @@ -375,10 +375,10 @@ type JaegerDependenciesSpec struct { CassandraClientAuthEnabled bool `json:"cassandraClientAuthEnabled,omitempty"` // +optional - ElasticsearchClientNodeOnly bool `json:"elasticsearchClientNodeOnly,omitempty"` + ElasticsearchClientNodeOnly *bool `json:"elasticsearchClientNodeOnly,omitempty"` // +optional - ElasticsearchNodesWanOnly bool `json:"elasticsearchNodesWanOnly,omitempty"` + ElasticsearchNodesWanOnly *bool `json:"elasticsearchNodesWanOnly,omitempty"` // +optional TTLSecondsAfterFinished *int32 `json:"ttlSecondsAfterFinished,omitempty"` diff --git a/pkg/apis/jaegertracing/v1/zz_generated.deepcopy.go b/pkg/apis/jaegertracing/v1/zz_generated.deepcopy.go index 9e58eb179..96f3b6bb4 100644 --- a/pkg/apis/jaegertracing/v1/zz_generated.deepcopy.go +++ b/pkg/apis/jaegertracing/v1/zz_generated.deepcopy.go @@ -247,6 +247,16 @@ func (in *JaegerDependenciesSpec) DeepCopyInto(out *JaegerDependenciesSpec) { *out = new(int32) **out = **in } + if in.ElasticsearchClientNodeOnly != nil { + in, out := &in.ElasticsearchClientNodeOnly, &out.ElasticsearchClientNodeOnly + *out = new(bool) + **out = **in + } + if in.ElasticsearchNodesWanOnly != nil { + in, out := &in.ElasticsearchNodesWanOnly, &out.ElasticsearchNodesWanOnly + *out = new(bool) + **out = **in + } if in.TTLSecondsAfterFinished != nil { in, out := &in.TTLSecondsAfterFinished, &out.TTLSecondsAfterFinished *out = new(int32) diff --git a/pkg/cronjob/spark_dependencies.go b/pkg/cronjob/spark_dependencies.go index 338101d4a..d887de8dd 100644 --- a/pkg/cronjob/spark_dependencies.go +++ b/pkg/cronjob/spark_dependencies.go @@ -134,14 +134,19 @@ func getStorageEnvs(s v1.JaegerStorageSpec) []corev1.EnvVar { {Name: "CASSANDRA_CLIENT_AUTH_ENABLED", Value: strconv.FormatBool(s.Dependencies.CassandraClientAuthEnabled)}, } case "elasticsearch": - return []corev1.EnvVar{ + vars := []corev1.EnvVar{ {Name: "ES_NODES", Value: sFlagsMap["es.server-urls"]}, {Name: "ES_INDEX_PREFIX", Value: sFlagsMap["es.index-prefix"]}, {Name: "ES_USERNAME", Value: sFlagsMap["es.username"]}, {Name: "ES_PASSWORD", Value: sFlagsMap["es.password"]}, - {Name: "ES_CLIENT_NODE_ONLY", Value: strconv.FormatBool(s.Dependencies.ElasticsearchClientNodeOnly)}, - {Name: "ES_NODES_WAN_ONLY", Value: strconv.FormatBool(s.Dependencies.ElasticsearchNodesWanOnly)}, } + if s.Dependencies.ElasticsearchNodesWanOnly != nil { + vars = append(vars, corev1.EnvVar{Name: "ES_NODES_WAN_ONLY", Value: strconv.FormatBool(*s.Dependencies.ElasticsearchNodesWanOnly)}) + } + if s.Dependencies.ElasticsearchClientNodeOnly != nil { + vars = append(vars, corev1.EnvVar{Name: "ES_CLIENT_NODE_ONLY", Value: strconv.FormatBool(*s.Dependencies.ElasticsearchClientNodeOnly)}) + } + return vars default: return nil } diff --git a/pkg/cronjob/spark_dependencies_test.go b/pkg/cronjob/spark_dependencies_test.go index 9422621df..69b5d11cd 100644 --- a/pkg/cronjob/spark_dependencies_test.go +++ b/pkg/cronjob/spark_dependencies_test.go @@ -28,6 +28,8 @@ func TestRemoveEmptyVars(t *testing.T) { } func TestStorageEnvs(t *testing.T) { + trueVar := true + falseVar := false tests := []struct { storage v1.JaegerStorageSpec expected []corev1.EnvVar @@ -65,8 +67,18 @@ func TestStorageEnvs(t *testing.T) { {Name: "ES_INDEX_PREFIX", Value: "haha"}, {Name: "ES_USERNAME", Value: "jdoe"}, {Name: "ES_PASSWORD", Value: "none"}, - {Name: "ES_CLIENT_NODE_ONLY", Value: "false"}, + }}, + {storage: v1.JaegerStorageSpec{Type: "elasticsearch", + Options: v1.NewOptions(map[string]interface{}{"es.server-urls": "lol:hol", "es.index-prefix": "haha", + "es.username": "jdoe", "es.password": "none"}), + Dependencies: v1.JaegerDependenciesSpec{ElasticsearchClientNodeOnly: &trueVar, ElasticsearchNodesWanOnly: &falseVar}}, + expected: []corev1.EnvVar{ + {Name: "ES_NODES", Value: "lol:hol"}, + {Name: "ES_INDEX_PREFIX", Value: "haha"}, + {Name: "ES_USERNAME", Value: "jdoe"}, + {Name: "ES_PASSWORD", Value: "none"}, {Name: "ES_NODES_WAN_ONLY", Value: "false"}, + {Name: "ES_CLIENT_NODE_ONLY", Value: "true"}, }}, } for _, test := range tests {