Skip to content

Commit

Permalink
Add default MaxUnavailable spec for ES
Browse files Browse the repository at this point in the history
Signed-off-by: raihankhan <raihan@appscode.com>
  • Loading branch information
raihankhan committed Aug 18, 2023
1 parent 72a039c commit 8ba61ff
Showing 1 changed file with 34 additions and 0 deletions.
34 changes: 34 additions & 0 deletions apis/kubedb/v1alpha2/elasticsearch_helpers.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ import (
core "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/labels"
"k8s.io/apimachinery/pkg/util/intstr"
appslister "k8s.io/client-go/listers/apps/v1"
kmapi "kmodules.xyz/client-go/api/v1"
"kmodules.xyz/client-go/apiextensions"
Expand Down Expand Up @@ -412,6 +413,9 @@ func (e *Elasticsearch) SetDefaults(esVersion *catalog.ElasticsearchVersion, top
if e.Spec.Topology.Ingest.Replicas == nil {
e.Spec.Topology.Ingest.Replicas = pointer.Int32P(1)
}
if e.Spec.Topology.Ingest.MaxUnavailable == nil && *e.Spec.Topology.Ingest.Replicas > 1 {
e.Spec.Topology.Ingest.MaxUnavailable = &intstr.IntOrString{IntVal: 1}
}

// Required nodes, must exist!
// Default to "master"
Expand All @@ -422,6 +426,9 @@ func (e *Elasticsearch) SetDefaults(esVersion *catalog.ElasticsearchVersion, top
if e.Spec.Topology.Master.Replicas == nil {
e.Spec.Topology.Master.Replicas = pointer.Int32P(1)
}
if e.Spec.Topology.Master.MaxUnavailable == nil && *e.Spec.Topology.Master.Replicas > 1 {
e.Spec.Topology.Master.MaxUnavailable = &intstr.IntOrString{IntVal: 1}
}

// Optional nodes, when other type of data nodes are not empty.
// Otherwise required nodes.
Expand All @@ -434,6 +441,9 @@ func (e *Elasticsearch) SetDefaults(esVersion *catalog.ElasticsearchVersion, top
if e.Spec.Topology.Data.Replicas == nil {
e.Spec.Topology.Data.Replicas = pointer.Int32P(1)
}
if e.Spec.Topology.Data.MaxUnavailable == nil && *e.Spec.Topology.Data.Replicas > 1 {
e.Spec.Topology.Data.MaxUnavailable = &intstr.IntOrString{IntVal: 1}
}
}

// Optional, can be empty
Expand All @@ -446,6 +456,9 @@ func (e *Elasticsearch) SetDefaults(esVersion *catalog.ElasticsearchVersion, top
if e.Spec.Topology.DataHot.Replicas == nil {
e.Spec.Topology.DataHot.Replicas = pointer.Int32P(1)
}
if e.Spec.Topology.DataHot.MaxUnavailable == nil && *e.Spec.Topology.DataHot.Replicas > 1 {
e.Spec.Topology.DataHot.MaxUnavailable = &intstr.IntOrString{IntVal: 1}
}
}

// Optional, can be empty
Expand All @@ -458,6 +471,9 @@ func (e *Elasticsearch) SetDefaults(esVersion *catalog.ElasticsearchVersion, top
if e.Spec.Topology.DataWarm.Replicas == nil {
e.Spec.Topology.DataWarm.Replicas = pointer.Int32P(1)
}
if e.Spec.Topology.DataWarm.MaxUnavailable == nil && *e.Spec.Topology.DataWarm.Replicas > 1 {
e.Spec.Topology.DataWarm.MaxUnavailable = &intstr.IntOrString{IntVal: 1}
}
}

// Optional, can be empty
Expand All @@ -470,6 +486,9 @@ func (e *Elasticsearch) SetDefaults(esVersion *catalog.ElasticsearchVersion, top
if e.Spec.Topology.DataCold.Replicas == nil {
e.Spec.Topology.DataCold.Replicas = pointer.Int32P(1)
}
if e.Spec.Topology.DataCold.MaxUnavailable == nil && *e.Spec.Topology.DataCold.Replicas > 1 {
e.Spec.Topology.DataCold.MaxUnavailable = &intstr.IntOrString{IntVal: 1}
}
}

// Optional, can be empty
Expand All @@ -482,6 +501,9 @@ func (e *Elasticsearch) SetDefaults(esVersion *catalog.ElasticsearchVersion, top
if e.Spec.Topology.DataFrozen.Replicas == nil {
e.Spec.Topology.DataFrozen.Replicas = pointer.Int32P(1)
}
if e.Spec.Topology.DataFrozen.MaxUnavailable == nil && *e.Spec.Topology.DataFrozen.Replicas > 1 {
e.Spec.Topology.DataFrozen.MaxUnavailable = &intstr.IntOrString{IntVal: 1}
}
}

// Optional, can be empty
Expand All @@ -494,6 +516,9 @@ func (e *Elasticsearch) SetDefaults(esVersion *catalog.ElasticsearchVersion, top
if e.Spec.Topology.DataContent.Replicas == nil {
e.Spec.Topology.DataContent.Replicas = pointer.Int32P(1)
}
if e.Spec.Topology.DataContent.MaxUnavailable == nil && *e.Spec.Topology.DataContent.Replicas > 1 {
e.Spec.Topology.DataContent.MaxUnavailable = &intstr.IntOrString{IntVal: 1}
}
}

// Optional, can be empty
Expand All @@ -506,6 +531,9 @@ func (e *Elasticsearch) SetDefaults(esVersion *catalog.ElasticsearchVersion, top
if e.Spec.Topology.ML.Replicas == nil {
e.Spec.Topology.ML.Replicas = pointer.Int32P(1)
}
if e.Spec.Topology.ML.MaxUnavailable == nil && *e.Spec.Topology.ML.Replicas > 1 {
e.Spec.Topology.ML.MaxUnavailable = &intstr.IntOrString{IntVal: 1}
}
}

// Optional, can be empty
Expand All @@ -518,13 +546,19 @@ func (e *Elasticsearch) SetDefaults(esVersion *catalog.ElasticsearchVersion, top
if e.Spec.Topology.Transform.Replicas == nil {
e.Spec.Topology.Transform.Replicas = pointer.Int32P(1)
}
if e.Spec.Topology.Transform.MaxUnavailable == nil && *e.Spec.Topology.Transform.Replicas > 1 {
e.Spec.Topology.Transform.MaxUnavailable = &intstr.IntOrString{IntVal: 1}
}
}

} else {
apis.SetDefaultResourceLimits(&e.Spec.PodTemplate.Spec.Resources, DefaultResourcesElasticSearch)
if e.Spec.Replicas == nil {
e.Spec.Replicas = pointer.Int32P(1)
}
if e.Spec.MaxUnavailable == nil && *e.Spec.Replicas > 1 {
e.Spec.MaxUnavailable = &intstr.IntOrString{IntVal: 1}
}
}

// set default kernel settings
Expand Down

0 comments on commit 8ba61ff

Please sign in to comment.