Skip to content

Commit d542520

Browse files
authored
Merge branch 'main' into bugfix/api-key-alerting
2 parents 5531702 + a74ccf6 commit d542520

File tree

11 files changed

+664
-509
lines changed

11 files changed

+664
-509
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
- Fixed a bug where the `id` attribute for `elasticstack_kibana_slo` resources was ignored by renaming the attribute to `slo_id`. ([#622](https://github.com/elastic/terraform-provider-elasticstack/pull/622))
99
- Fixed a bug where the `rule_id` attribute for `elasticstack_kibana_alerting_rule` was ignored. ([#626](https://github.com/elastic/terraform-provider-elasticstack/pull/626))
1010
- Fixed a bug with incorrect HTTP header name for API key for alerting client. ([#633](https://github.com/elastic/terraform-provider-elasticstack/pull/633))
11+
- Fix provider crash when running against Serverless projects ([#630](https://github.com/elastic/terraform-provider-elasticstack/pull/630))
1112

1213
### Added
1314

docs/resources/elasticsearch_index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ If specified, this mapping can include: field names, [field data types](https://
9494
**NOTE:**
9595
- Changing datatypes in the existing _mappings_ will force index to be re-created.
9696
- Removing field will be ignored by default same as elasticsearch. You need to recreate the index to remove field completely.
97-
- `master_timeout` (String) Period to wait for a connection to the master node. If no response is received before the timeout expires, the request fails and returns an error. Defaults to `30s`.
97+
- `master_timeout` (String) Period to wait for a connection to the master node. If no response is received before the timeout expires, the request fails and returns an error. Defaults to `30s`. This value is ignored when running against Serverless projects.
9898
- `max_docvalue_fields_search` (Number) The maximum number of `docvalue_fields` that are allowed in a query.
9999
- `max_inner_result_window` (Number) The maximum value of `from + size` for inner hits definition and top hits aggregations to this index.
100100
- `max_ngram_diff` (Number) The maximum allowed difference between min_gram and max_gram for NGramTokenizer and NGramTokenFilter.
@@ -130,7 +130,7 @@ If specified, this mapping can include: field names, [field data types](https://
130130
- `sort_order` (List of String) The direction to sort shards in. Accepts `asc`, `desc`.
131131
- `timeout` (String) Period to wait for a response. If no response is received before the timeout expires, the request fails and returns an error. Defaults to `30s`.
132132
- `unassigned_node_left_delayed_timeout` (String) Time to delay the allocation of replica shards which become unassigned because a node has left, in time units, e.g. `10s`
133-
- `wait_for_active_shards` (String) The number of shard copies that must be active before proceeding with the operation. Set to `all` or any positive integer up to the total number of shards in the index (number_of_replicas+1). Default: `1`, the primary shard.
133+
- `wait_for_active_shards` (String) The number of shard copies that must be active before proceeding with the operation. Set to `all` or any positive integer up to the total number of shards in the index (number_of_replicas+1). Default: `1`, the primary shard. This value is ignored when running against Serverless projects.
134134

135135
### Read-Only
136136

go.mod

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
module github.com/elastic/terraform-provider-elasticstack
22

3-
go 1.21
3+
go 1.22
44

5-
toolchain go1.21.4
5+
toolchain go1.22.2
66

77
require (
8-
github.com/deepmap/oapi-codegen/v2 v2.0.0
8+
github.com/deepmap/oapi-codegen/v2 v2.1.0
99
github.com/disaster37/go-kibana-rest/v8 v8.5.0
1010
github.com/elastic/go-elasticsearch/v7 v7.17.10
1111
github.com/google/uuid v1.6.0
@@ -18,7 +18,7 @@ require (
1818
github.com/hashicorp/terraform-plugin-mux v0.16.0
1919
github.com/hashicorp/terraform-plugin-sdk/v2 v2.33.0
2020
github.com/mitchellh/mapstructure v1.5.0
21-
github.com/oapi-codegen/runtime v1.1.0
21+
github.com/oapi-codegen/runtime v1.1.1
2222
github.com/stretchr/testify v1.9.0
2323
)
2424

go.sum

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxG
2323
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
2424
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
2525
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
26-
github.com/deepmap/oapi-codegen/v2 v2.0.0 h1:3TS7w3r+XnjKFXcbFbc16pTWzfTy0OLPkCsutEHjWDA=
27-
github.com/deepmap/oapi-codegen/v2 v2.0.0/go.mod h1:7zR+ZL3WzLeCkr2k8oWTxEa0v8y/F25ane0l6A5UjLA=
26+
github.com/deepmap/oapi-codegen/v2 v2.1.0 h1:I/NMVhJCtuvL9x+S2QzZKpSjGi33oDZwPRdemvOZWyQ=
27+
github.com/deepmap/oapi-codegen/v2 v2.1.0/go.mod h1:R1wL226vc5VmCNJUvMyYr3hJMm5reyv25j952zAVXZ8=
2828
github.com/elastic/go-elasticsearch/v7 v7.17.10 h1:TCQ8i4PmIJuBunvBS6bwT2ybzVFxxUhhltAs3Gyu1yo=
2929
github.com/elastic/go-elasticsearch/v7 v7.17.10/go.mod h1:OJ4wdbtDNk5g503kvlHLyErCgQwwzmDtaFC4XyOxXA4=
3030
github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc=
@@ -141,10 +141,8 @@ github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyua
141141
github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
142142
github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ=
143143
github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw=
144-
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs=
145-
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
146-
github.com/oapi-codegen/runtime v1.1.0 h1:rJpoNUawn5XTvekgfkvSZr0RqEnoYpFkyvrzfWeFKWM=
147-
github.com/oapi-codegen/runtime v1.1.0/go.mod h1:BeSfBkWWWnAnGdyS+S/GnlbmHKzf8/hwkvelJZDeKA8=
144+
github.com/oapi-codegen/runtime v1.1.1 h1:EXLHh0DXIJnWhdRPN2w4MXAzFyE4CskzhNLUmtpMYro=
145+
github.com/oapi-codegen/runtime v1.1.1/go.mod h1:SK9X900oXmPWilYR5/WKPzt3Kqxn/uS/+lbpREv+eCg=
148146
github.com/oklog/run v1.1.0 h1:GEenZ1cK0+q0+wsJew9qUg/DyD8k3JzYsZAi5gYi2mA=
149147
github.com/oklog/run v1.1.0/go.mod h1:sVPdnTZT1zYwAJeCMu2Th4T21pA3FPOQRfWjQlk7DVU=
150148
github.com/pjbgf/sha1cd v0.3.0 h1:4D5XXmUUBUl/xQ6IjCkEAbqXskkq/4O7LmGn0AqMDs4=
@@ -246,9 +244,8 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ
246244
google.golang.org/protobuf v1.34.0 h1:Qo/qEd2RZPCf2nKuorzksSknv0d3ERwp1vFG38gSmH4=
247245
google.golang.org/protobuf v1.34.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
248246
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
247+
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
249248
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
250-
gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b h1:QRR6H1YWRnHb4Y/HeNFCTJLFVxaq6wH4YuVdsUOr75U=
251-
gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
252249
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
253250
gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME=
254251
gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI=

internal/clients/api_client.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -336,6 +336,15 @@ func (a *ApiClient) ServerVersion(ctx context.Context) (*version.Version, diag.D
336336
return serverVersion, nil
337337
}
338338

339+
func (a *ApiClient) ServerFlavor(ctx context.Context) (string, diag.Diagnostics) {
340+
info, diags := a.serverInfo(ctx)
341+
if diags.HasError() {
342+
return "", diags
343+
}
344+
345+
return info.Version.BuildFlavor, nil
346+
}
347+
339348
func (a *ApiClient) ClusterID(ctx context.Context) (*string, diag.Diagnostics) {
340349
info, diags := a.serverInfo(ctx)
341350
if diags.HasError() {

internal/elasticsearch/index/index.go

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -544,13 +544,13 @@ If specified, this mapping can include: field names, [field data types](https://
544544
},
545545
"wait_for_active_shards": {
546546
Type: schema.TypeString,
547-
Description: "The number of shard copies that must be active before proceeding with the operation. Set to `all` or any positive integer up to the total number of shards in the index (number_of_replicas+1). Default: `1`, the primary shard.",
547+
Description: "The number of shard copies that must be active before proceeding with the operation. Set to `all` or any positive integer up to the total number of shards in the index (number_of_replicas+1). Default: `1`, the primary shard. This value is ignored when running against Serverless projects.",
548548
Optional: true,
549549
Default: "1",
550550
},
551551
"master_timeout": {
552552
Type: schema.TypeString,
553-
Description: "Period to wait for a connection to the master node. If no response is received before the timeout expires, the request fails and returns an error. Defaults to `30s`.",
553+
Description: "Period to wait for a connection to the master node. If no response is received before the timeout expires, the request fails and returns an error. Defaults to `30s`. This value is ignored when running against Serverless projects.",
554554
Optional: true,
555555
Default: "30s",
556556
ValidateFunc: utils.StringIsDuration,
@@ -759,25 +759,35 @@ func resourceIndexCreate(ctx context.Context, d *schema.ResourceData, meta inter
759759
}
760760
}
761761

762-
params := models.PutIndexParams{
763-
WaitForActiveShards: d.Get("wait_for_active_shards").(string),
764-
IncludeTypeName: d.Get("include_type_name").(bool),
765-
}
766762
serverVersion, diags := client.ServerVersion(ctx)
767763
if diags.HasError() {
768764
return diags
769765
}
766+
767+
serverFlavor, diags := client.ServerFlavor(ctx)
768+
if diags.HasError() {
769+
return diags
770+
}
771+
772+
params := models.PutIndexParams{
773+
IncludeTypeName: d.Get("include_type_name").(bool),
774+
}
775+
770776
if includeTypeName := d.Get("include_type_name").(bool); includeTypeName {
771777
if serverVersion.GreaterThanOrEqual(includeTypeNameMinUnsupportedVersion) {
772778
return diag.FromErr(fmt.Errorf("'include_type_name' field is supported only for elasticsearch v7.x"))
773779
}
774780
params.IncludeTypeName = includeTypeName
775781
}
776-
masterTimeout, err := time.ParseDuration(d.Get("master_timeout").(string))
777-
if err != nil {
778-
return diag.FromErr(err)
782+
783+
if serverFlavor != "serverless" {
784+
params.WaitForActiveShards = d.Get("wait_for_active_shards").(string)
785+
masterTimeout, err := time.ParseDuration(d.Get("master_timeout").(string))
786+
if err != nil {
787+
return diag.FromErr(err)
788+
}
789+
params.MasterTimeout = masterTimeout
779790
}
780-
params.MasterTimeout = masterTimeout
781791

782792
timeout, err := time.ParseDuration(d.Get("timeout").(string))
783793
if err != nil {

internal/models/models.go

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,29 @@ import (
77
"time"
88
)
99

10+
type BuildDate struct {
11+
time.Time
12+
}
13+
14+
func (b *BuildDate) UnmarshalJSON(dateBytes []byte) error {
15+
dateStr := strings.Trim(string(dateBytes), "\"")
16+
if dateStr == "null" {
17+
b.Time = time.Time{}
18+
return nil
19+
}
20+
21+
t, err := time.Parse("2006-01-02T15:04:05Z07:00", dateStr)
22+
if err != nil {
23+
t, err = time.Parse("2006-01-02", dateStr)
24+
if err != nil {
25+
return err
26+
}
27+
}
28+
29+
b.Time = t
30+
return nil
31+
}
32+
1033
type ClusterInfo struct {
1134
Name string `json:"name"`
1235
ClusterName string `json:"cluster_name"`
@@ -16,7 +39,7 @@ type ClusterInfo struct {
1639
BuildType string `json:"build_type"`
1740
BuildHash string `json:"build_hash"`
1841
BuildFlavor string `json:"build_flavor"`
19-
BuildDate time.Time `json:"build_date"`
42+
BuildDate BuildDate `json:"build_date"`
2043
BuildSnapshot bool `json:"build_snapshot"`
2144
LuceneVersion string `json:"lucene_version"`
2245
MinimumWireCompatibilityVersion string `json:"minimum_wire_compatibility_version"`

libs/go-kibana-rest/go.mod

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ require (
1717
github.com/onsi/ginkgo v1.16.5 // indirect
1818
github.com/onsi/gomega v1.24.0 // indirect
1919
github.com/pmezard/go-difflib v1.0.0 // indirect
20-
golang.org/x/crypto v0.17.0 // indirect
21-
golang.org/x/net v0.17.0 // indirect
22-
golang.org/x/sys v0.15.0 // indirect
23-
golang.org/x/term v0.15.0 // indirect
20+
golang.org/x/crypto v0.21.0 // indirect
21+
golang.org/x/net v0.23.0 // indirect
22+
golang.org/x/sys v0.18.0 // indirect
23+
golang.org/x/term v0.18.0 // indirect
2424
gopkg.in/yaml.v3 v3.0.1 // indirect
2525
)

libs/go-kibana-rest/go.sum

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -55,17 +55,17 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec
5555
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
5656
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
5757
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
58-
golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k=
59-
golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4=
58+
golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA=
59+
golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs=
6060
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
6161
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
6262
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
6363
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
6464
golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
6565
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
6666
golang.org/x/net v0.0.0-20211029224645-99673261e6eb/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
67-
golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM=
68-
golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE=
67+
golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs=
68+
golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg=
6969
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
7070
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
7171
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -83,11 +83,11 @@ golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7w
8383
golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
8484
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
8585
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
86-
golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc=
87-
golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
86+
golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4=
87+
golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
8888
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
89-
golang.org/x/term v0.15.0 h1:y/Oo/a/q3IXu26lQgl04j/gjuBDOBlx7X6Om1j2CPW4=
90-
golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0=
89+
golang.org/x/term v0.18.0 h1:FcHjZXDMxI8mM3nwhX9HlKop4C0YQvCVCdwYl2wOtE8=
90+
golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58=
9191
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
9292
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
9393
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=

0 commit comments

Comments
 (0)