From 660a6ffb2c77f7bfbf1621c8e94a5cd8d0e5fa9f Mon Sep 17 00:00:00 2001 From: Kevin Earls Date: Thu, 12 Nov 2020 10:51:26 +0100 Subject: [PATCH] Enable tolerations support in elasticsearch config (#1296) Signed-off-by: Kevin Earls --- deploy/crds/jaegertracing.io_jaegers_crd.yaml | 16 ++++++++++++++++ pkg/apis/jaegertracing/v1/jaeger_types.go | 4 ++++ .../jaegertracing/v1/zz_generated.deepcopy.go | 7 +++++++ .../jaegertracing/v1/zz_generated.openapi.go | 19 ++++++++++++++++++- pkg/storage/elasticsearch.go | 5 +++-- pkg/storage/elasticsearch/v1/types.go | 1 + 6 files changed, 49 insertions(+), 3 deletions(-) diff --git a/deploy/crds/jaegertracing.io_jaegers_crd.yaml b/deploy/crds/jaegertracing.io_jaegers_crd.yaml index 5822e235a..839520841 100644 --- a/deploy/crds/jaegertracing.io_jaegers_crd.yaml +++ b/deploy/crds/jaegertracing.io_jaegers_crd.yaml @@ -7325,6 +7325,22 @@ spec: storageClassName: type: string type: object + tolerations: + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + format: int64 + type: integer + value: + type: string + type: object + type: array type: object esIndexCleaner: properties: diff --git a/pkg/apis/jaegertracing/v1/jaeger_types.go b/pkg/apis/jaegertracing/v1/jaeger_types.go index 5ed876c8b..1ab1dd91c 100644 --- a/pkg/apis/jaegertracing/v1/jaeger_types.go +++ b/pkg/apis/jaegertracing/v1/jaeger_types.go @@ -502,6 +502,10 @@ type ElasticsearchSpec struct { // +optional RedundancyPolicy esv1.RedundancyPolicyType `json:"redundancyPolicy,omitempty"` + + // +optional + // +listType=atomic + Tolerations []v1.Toleration `json:"tolerations,omitempty"` } // JaegerCassandraCreateSchemaSpec holds the options related to the create-schema batch job diff --git a/pkg/apis/jaegertracing/v1/zz_generated.deepcopy.go b/pkg/apis/jaegertracing/v1/zz_generated.deepcopy.go index 6e637a113..47e99595d 100644 --- a/pkg/apis/jaegertracing/v1/zz_generated.deepcopy.go +++ b/pkg/apis/jaegertracing/v1/zz_generated.deepcopy.go @@ -56,6 +56,13 @@ func (in *ElasticsearchSpec) DeepCopyInto(out *ElasticsearchSpec) { } } in.Storage.DeepCopyInto(&out.Storage) + if in.Tolerations != nil { + in, out := &in.Tolerations, &out.Tolerations + *out = make([]corev1.Toleration, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } return } diff --git a/pkg/apis/jaegertracing/v1/zz_generated.openapi.go b/pkg/apis/jaegertracing/v1/zz_generated.openapi.go index f94f6325b..a0b33fd7a 100644 --- a/pkg/apis/jaegertracing/v1/zz_generated.openapi.go +++ b/pkg/apis/jaegertracing/v1/zz_generated.openapi.go @@ -119,11 +119,28 @@ func schema_pkg_apis_jaegertracing_v1_ElasticsearchSpec(ref common.ReferenceCall Format: "", }, }, + "tolerations": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Ref: ref("k8s.io/api/core/v1.Toleration"), + }, + }, + }, + }, + }, }, }, }, Dependencies: []string{ - "github.com/jaegertracing/jaeger-operator/pkg/storage/elasticsearch/v1.ElasticsearchStorageSpec", "k8s.io/api/core/v1.ResourceRequirements"}, + "github.com/jaegertracing/jaeger-operator/pkg/storage/elasticsearch/v1.ElasticsearchStorageSpec", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.Toleration"}, } } diff --git a/pkg/storage/elasticsearch.go b/pkg/storage/elasticsearch.go index cd952b332..6539f178c 100644 --- a/pkg/storage/elasticsearch.go +++ b/pkg/storage/elasticsearch.go @@ -168,8 +168,9 @@ func (ed *ElasticsearchDeployment) Elasticsearch() *esv1.Elasticsearch { ManagementState: esv1.ManagementStateManaged, RedundancyPolicy: ed.Jaeger.Spec.Storage.Elasticsearch.RedundancyPolicy, Spec: esv1.ElasticsearchNodeSpec{ - Image: ed.Jaeger.Spec.Storage.Elasticsearch.Image, - Resources: res, + Image: ed.Jaeger.Spec.Storage.Elasticsearch.Image, + Resources: res, + Tolerations: ed.Jaeger.Spec.Storage.Elasticsearch.Tolerations, }, Nodes: getNodes(uuid, ed.Jaeger.Spec.Storage.Elasticsearch), }, diff --git a/pkg/storage/elasticsearch/v1/types.go b/pkg/storage/elasticsearch/v1/types.go index 718ee798c..baeaddaa9 100644 --- a/pkg/storage/elasticsearch/v1/types.go +++ b/pkg/storage/elasticsearch/v1/types.go @@ -105,6 +105,7 @@ type ElasticsearchNodeSpec struct { Image string `json:"image,omitempty"` Resources v1.ResourceRequirements `json:"resources"` NodeSelector map[string]string `json:"nodeSelector,omitempty"` + Tolerations []v1.Toleration `json:"tolerations,omitempty"` } type ElasticsearchRequiredAction string