All Projects → elastic → terraform-provider-elasticstack

elastic / terraform-provider-elasticstack

Licence: Apache-2.0 license
Terraform provider for Elastic Stack

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to terraform-provider-elasticstack

terraform-provider-hsdp
Terraform provider to orchestrate various HSDP resources like IAM, CDL, CDR, MDM, Container Host, Edge, etc
Stars: ✭ 26 (-57.38%)
Mutual labels:  terraform-provider
terraform-provider-mackerel
Terraform provider for Mackerel
Stars: ✭ 16 (-73.77%)
Mutual labels:  terraform-provider
gatsby-wiki
Creating a Knowledgbase using Gatsby.js and React.js (see final product ->
Stars: ✭ 32 (-47.54%)
Mutual labels:  elasticstack
terraform-provider-testing
An experimental Terraform provider to assist in writing tests for Terraform modules
Stars: ✭ 59 (-3.28%)
Mutual labels:  terraform-provider
terraform-provider-junos
Terraform's provider for Junos devices
Stars: ✭ 44 (-27.87%)
Mutual labels:  terraform-provider
terraform-provider-statuscake
Terraform StatusCake provider.
Stars: ✭ 26 (-57.38%)
Mutual labels:  terraform-provider
terraform-provider-teamcity
Terraform Provider for Jetbrains TeamCity CI server
Stars: ✭ 70 (+14.75%)
Mutual labels:  terraform-provider
terraform-provider-ovirt
Terraform provider for oVirt 4.x
Stars: ✭ 125 (+104.92%)
Mutual labels:  terraform-provider
terraform-provider-jxadmin
A Jenkins X provider for terraform
Stars: ✭ 14 (-77.05%)
Mutual labels:  terraform-provider
terraform-provider-influxdb
Terraform InfluxDB provider
Stars: ✭ 19 (-68.85%)
Mutual labels:  terraform-provider
terraform-provider-dns
Supports DNS updates (RFC 2136) and can optionally be configured with secret key based transaction authentication (RFC 2845).
Stars: ✭ 75 (+22.95%)
Mutual labels:  terraform-provider
terraform-provider-dockermachine
Docker machine provider for Terraform
Stars: ✭ 20 (-67.21%)
Mutual labels:  terraform-provider
terraform-provider-k8s
Kubernetes Terraform provider with support for raw manifests
Stars: ✭ 129 (+111.48%)
Mutual labels:  terraform-provider
terraform-provider-filesystem
A @hashicorp Terraform provider for interacting with the filesystem
Stars: ✭ 61 (+0%)
Mutual labels:  terraform-provider
terraform-provider-citrixadc
Terraform Custom Provider for Citrix ADC (formerly Citrix NetScaler)
Stars: ✭ 89 (+45.9%)
Mutual labels:  terraform-provider
terraform-provider-infoblox
Infoblox plugin for Terraform
Stars: ✭ 40 (-34.43%)
Mutual labels:  terraform-provider
terraform-provider-launchdarkly
Terraform LaunchDarkly provider
Stars: ✭ 16 (-73.77%)
Mutual labels:  terraform-provider
terraform-provider-opennebula
Terraform provider for OpenNebula
Stars: ✭ 38 (-37.7%)
Mutual labels:  terraform-provider
terraform-provider-inwx
terraform provider for INWX
Stars: ✭ 23 (-62.3%)
Mutual labels:  terraform-provider
go-graylog
Graylog API client for Go and terraform provider for Graylog
Stars: ✭ 45 (-26.23%)
Mutual labels:  terraform-provider

Terraform Provider Elastic Stack

Acceptance Status

Use of the provider

The Elastic Stack provider allows you to manage and configure the Elastic stack (Elasticsearch, Kibana, etc) as code using terraform.

Getting started

The provider supports Elastic Stack versions 7.x+

It is recommended to setup at least minimum security, https://www.elastic.co/guide/en/elasticsearch/reference/current/security-minimal-setup.html in order to interact with the Elasticsearch and be able to use the provider's full capabilities.

Configuring required providers:

terraform {
  required_version = ">= 1.0.0"
  required_providers {
    elasticstack = {
      source  = "elastic/elasticstack"
      version = "~> 0.3.3"
    }
  }
}

Authentication

The Elasticstack provider offers few different ways of providing credentials for authentication. The following methods are supported:

  • Static credentials
  • Environment variables
  • Each elasticsearch resource supports elasticsearch_connection block - allowing using the same provider to configure many different clusters at the same time

Static credentials

Default static credentials can be provided by adding the username, password and endpoints in elasticsearch block:

provider "elasticstack" {
  elasticsearch {
    username  = "elastic"
    password  = "changeme"
    endpoints = ["http://localhost:9200"]
  }
}

Environment Variables

You can provide your credentials for the default connection via the ELASTICSEARCH_USERNAME, ELASTICSEARCH_PASSWORD and comma-separated list ELASTICSEARCH_ENDPOINTS, environment variables, representing your user, password and Elasticsearch API endpoints respectively.

provider "elasticstack" {
  elasticsearch {}
}

Per resource credentials

See docs related to the specific resources.

Developing the Provider

If you wish to work on the provider, you'll first need Go installed on your machine (see Requirements).

To compile the provider, run go install. This will build the provider and put the provider binary in the $GOPATH/bin directory.

To install the provider locally into the ~/.terraform.d/plugins/... directory one can use make install command. This will allow to refer this provider dirrecty in the Terraform configuration without needing to download it from the registry.

To generate or update documentation, run make gen. All the generated docs will have to be committed to the repository as well.

In order to run the full suite of Acceptance tests, run make testacc.

If you have Docker installed, you can use following command to start the Elasticsearch container and run Acceptance tests against it:

$ make docker-testacc

To clean up the used containers and to free up the assigned container names, run make docker-clean.

Requirements

Building The Provider

  1. Clone the repository
  2. Enter the repository directory
  3. Build the provider using the make install command:
$ make install

Adding Dependencies

This provider uses Go modules. Please see the Go documentation for the most up to date information about using Go modules.

To add a new dependency github.com/author/dependency to your Terraform provider:

go get github.com/author/dependency
go mod tidy

Then commit the changes to go.mod and go.sum.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].