Skip to content

Commit 77fc587

Browse files
tobiokjwardy
authored andcommitted
Use Kibana for version checks if ES is not configured (elastic#869)
* Use Kibana for version checks if ES is not configured * Changelog
1 parent 946e25c commit 77fc587

File tree

3 files changed

+40
-10
lines changed

3 files changed

+40
-10
lines changed

CHANGELOG.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
## [Unreleased]
22

3+
- Allow `elasticstack_kibana_alerting_rule` to be used without Elasticsearch being configured. ([#869](https://github.com/elastic/terraform-provider-elasticstack/pull/869))
34
- Add resource `elasticstack_elasticsearch_data_stream_lifecycle` ([838](https://github.com/elastic/terraform-provider-elasticstack/issues/838))
45

56
## [0.11.10] - 2024-10-23
@@ -390,8 +391,8 @@
390391
- CI integration
391392
392393
[Unreleased]: https://github.com/elastic/terraform-provider-elasticstack/compare/v0.11.10...HEAD
393-
[0.11.9]: https://github.com/elastic/terraform-provider-elasticstack/compare/v0.11.9...v0.11.10
394-
[0.11.8]: https://github.com/elastic/terraform-provider-elasticstack/compare/v0.11.8...v0.11.9
394+
[0.11.10]: https://github.com/elastic/terraform-provider-elasticstack/compare/v0.11.9...v0.11.10
395+
[0.11.9]: https://github.com/elastic/terraform-provider-elasticstack/compare/v0.11.8...v0.11.9
395396
[0.11.8]: https://github.com/elastic/terraform-provider-elasticstack/compare/v0.11.7...v0.11.8
396397
[0.11.7]: https://github.com/elastic/terraform-provider-elasticstack/compare/v0.11.6...v0.11.7
397398
[0.11.6]: https://github.com/elastic/terraform-provider-elasticstack/compare/v0.11.5...v0.11.6

internal/clients/api_client.go

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -358,6 +358,43 @@ func (a *ApiClient) serverInfo(ctx context.Context) (*models.ClusterInfo, diag.D
358358
}
359359

360360
func (a *ApiClient) ServerVersion(ctx context.Context) (*version.Version, diag.Diagnostics) {
361+
if a.elasticsearch != nil {
362+
return a.versionFromElasticsearch(ctx)
363+
}
364+
365+
return a.versionFromKibana()
366+
}
367+
368+
func (a *ApiClient) versionFromKibana() (*version.Version, diag.Diagnostics) {
369+
kibClient, err := a.GetKibanaClient()
370+
if err != nil {
371+
return nil, diag.FromErr(err)
372+
}
373+
374+
status, err := kibClient.KibanaStatus.Get()
375+
if err != nil {
376+
return nil, diag.FromErr(err)
377+
}
378+
379+
vMap, ok := status["version"].(map[string]interface{})
380+
if !ok {
381+
return nil, diag.Errorf("failed to get version from Kibana API")
382+
}
383+
384+
rawVersion, ok := vMap["number"].(string)
385+
if !ok {
386+
return nil, diag.Errorf("failed to get version number from Kibana status")
387+
}
388+
389+
serverVersion, err := version.NewVersion(rawVersion)
390+
if err != nil {
391+
return nil, diag.FromErr(err)
392+
}
393+
394+
return serverVersion, nil
395+
}
396+
397+
func (a *ApiClient) versionFromElasticsearch(ctx context.Context) (*version.Version, diag.Diagnostics) {
361398
info, diags := a.serverInfo(ctx)
362399
if diags.HasError() {
363400
return nil, diags

internal/kibana/alerting_test.go

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,6 @@ func TestAccResourceAlertingRule(t *testing.T) {
189189
func testAccResourceAlertingRuleCreate(name string) string {
190190
return fmt.Sprintf(`
191191
provider "elasticstack" {
192-
elasticsearch {}
193192
kibana {}
194193
}
195194
@@ -221,7 +220,6 @@ resource "elasticstack_kibana_alerting_rule" "test_rule" {
221220
func testAccResourceAlertingRuleUpdate(name string) string {
222221
return fmt.Sprintf(`
223222
provider "elasticstack" {
224-
elasticsearch {}
225223
kibana {}
226224
}
227225
@@ -256,7 +254,6 @@ resource "elasticstack_kibana_alerting_rule" "test_rule" {
256254
func testAccResourceAlertingRuleWithFrequencyCreate(name string) string {
257255
return fmt.Sprintf(`
258256
provider "elasticstack" {
259-
elasticsearch {}
260257
kibana {}
261258
}
262259
@@ -314,7 +311,6 @@ resource "elasticstack_kibana_alerting_rule" "test_rule" {
314311
func testAccResourceAlertingRuleWithFrequencyUpdate(name string) string {
315312
return fmt.Sprintf(`
316313
provider "elasticstack" {
317-
elasticsearch {}
318314
kibana {}
319315
}
320316
@@ -375,7 +371,6 @@ resource "elasticstack_kibana_alerting_rule" "test_rule" {
375371
func testAccResourceAlertingRuleWithAlertsFilterCreate(name string) string {
376372
return fmt.Sprintf(`
377373
provider "elasticstack" {
378-
elasticsearch {}
379374
kibana {}
380375
}
381376
@@ -450,7 +445,6 @@ resource "elasticstack_kibana_alerting_rule" "test_rule" {
450445
func testAccResourceAlertingRuleWithAlertsFilterUpdate(name string) string {
451446
return fmt.Sprintf(`
452447
provider "elasticstack" {
453-
elasticsearch {}
454448
kibana {}
455449
}
456450
@@ -527,7 +521,6 @@ resource "elasticstack_kibana_alerting_rule" "test_rule" {
527521
func testAccResourceAlertingRuleWithAlertDelayCreate(name string) string {
528522
return fmt.Sprintf(`
529523
provider "elasticstack" {
530-
elasticsearch {}
531524
kibana {}
532525
}
533526
@@ -587,7 +580,6 @@ resource "elasticstack_kibana_alerting_rule" "test_rule" {
587580
func testAccResourceAlertingRuleWithAlertDelayUpdate(name string) string {
588581
return fmt.Sprintf(`
589582
provider "elasticstack" {
590-
elasticsearch {}
591583
kibana {}
592584
}
593585

0 commit comments

Comments
 (0)