Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
29 changes: 22 additions & 7 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,9 +1,24 @@
# Local .terraform directories
**/.terraform/*

# .tfstate files
# Compiled files
*.tfstate
*.tfstate.*
*.tfstate.backup
*.terraform.*

# Module directory
.terraform/

# terraform log
*.log

# auto-generated key pair file
*.pem

# tools files
.DS_Store
.idea

# .tfvars files
*.tfvars
# others
*.bak
*.bk
.terraform.lock.hcl
.terraform.tfstate.lock.info
*/vendor
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ More details see [How to use provider in the module](https://www.terraform.io/do

| Name | Version |
|------|---------|
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 0.12.0 |
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 0.13.0 |
| <a name="requirement_alicloud"></a> [alicloud](#requirement\_alicloud) | >= 1.56.0 |

Authors
Expand Down
12 changes: 0 additions & 12 deletions example/main.tf

This file was deleted.

4 changes: 0 additions & 4 deletions example/outputs.tf

This file was deleted.

4 changes: 0 additions & 4 deletions example/versions.tf

This file was deleted.

32 changes: 32 additions & 0 deletions examples/complete/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Complete

Configuration in this directory creates ElasticSearch Instances.

## Usage

To run this example you need to execute:

```bash
$ terraform init
$ terraform plan
$ terraform apply
```

Note that this example may create resources which cost money. Run `terraform destroy` when you don't need these resources.

This example provides the tf variables file in the folder `tfvars`. If you want to create or update this example,
you can run this example as the following commands:
```bash
$ terraform plan -var-file=tfvars/01-update.tfvars
$ terraform apply -var-file=tfvars/01-update.tfvars
```

Also, you can add more variables files in the folder `tfvars`.

<!-- BEGINNING OF PRE-COMMIT-TERRAFORM DOCS HOOK -->
## Requirements

| Name | Version |
|------|---------|
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 0.13.0 |
| <a name="requirement_alicloud"></a> [alicloud](#requirement\_alicloud) | >= 1.56.0 |
31 changes: 31 additions & 0 deletions examples/complete/main.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
data "alicloud_elasticsearch_zones" "default" {
}

module "vpc" {
source = "alibaba/vpc/alicloud"
create = true
vpc_cidr = "172.16.0.0/16"
vswitch_cidrs = ["172.16.0.0/21"]
availability_zones = [data.alicloud_elasticsearch_zones.default.zones.0.id]
}

module "example" {
source = "../.."

number_of_instance = 1

instance_charge_type = var.instance_charge_type
period = var.period
data_node_amount = var.data_node_amount
data_node_spec = var.data_node_spec
data_node_disk_size = var.data_node_disk_size
data_node_disk_type = var.data_node_disk_type
vswitch_id = module.vpc.this_vswitch_ids[0]
password = var.password
es_version = "5.5.3_with_X-Pack"
private_whitelist = var.private_whitelist
kibana_whitelist = var.kibana_whitelist
master_node_spec = var.master_node_spec
description = var.description

}
3 changes: 3 additions & 0 deletions examples/complete/outputs.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
output "elasticsearch_ids" {
value = module.example.this_elasticsearch_ids
}
11 changes: 11 additions & 0 deletions examples/complete/tfvars/01-update.tfvars
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#alicloud_elasticsearch_instance
period = 2
data_node_amount = 3
data_node_spec = "elasticsearch.sn2ne.large"
data_node_disk_size = 30
data_node_disk_type = "cloud_ssd"
password = "YourPassword123!Update"
private_whitelist = ["172.16.0.0/21"]
kibana_whitelist = ["172.16.0.0/21"]
master_node_spec = "elasticsearch.sn2ne.xlarge"
description = "update-tf-description"
65 changes: 65 additions & 0 deletions examples/complete/variables.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
variable "instance_charge_type" {
description = "Valid values are PrePaid, PostPaid. Default to PostPaid"
type = string
default = "PostPaid"
}

variable "period" {
description = "The duration that you will buy Elasticsearch instance (in month). It is valid when instance_charge_type is PrePaid. Valid values: [1~9], 12, 24, 36."
type = number
default = 1
}

variable "data_node_amount" {
description = "The Elasticsearch cluster's data node quantity, between 2 and 50."
type = number
default = 2
}

variable "data_node_spec" {
description = "The data node specifications of the Elasticsearch instance."
type = string
default = "elasticsearch.sn1ne.large"
}

variable "data_node_disk_size" {
description = "The single data node storage space."
type = number
default = 20
}

variable "data_node_disk_type" {
description = "The data node disk type. Supported values: cloud_ssd, cloud_efficiency."
type = string
default = "cloud_efficiency"
}

variable "password" {
description = "The password of the instance."
type = string
default = "YourPassword123!"
}

variable "private_whitelist" {
description = "Set the instance's IP whitelist in VPC network."
type = list(string)
default = ["0.0.0.0/0"]
}

variable "kibana_whitelist" {
description = "Set the Kibana's IP whitelist in internet network."
type = list(string)
default = ["0.0.0.0/0"]
}

variable "master_node_spec" {
description = "The master node specifications of the Elasticsearch instance."
type = string
default = "elasticsearch.sn2ne.large"
}

variable "description" {
description = "The description of the Elasticsearch instance."
type = string
default = "tf-description"
}
3 changes: 3 additions & 0 deletions examples/complete/versions.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
terraform {
required_version = ">= 0.13"
}
14 changes: 5 additions & 9 deletions main.tf
Original file line number Diff line number Diff line change
@@ -1,21 +1,17 @@
#########################
# Elasticsearch instance
#########################

resource "alicloud_elasticsearch_instance" "instance" {
count = var.number_of_instance

instance_charge_type = var.instance_charge_type
period = var.period
data_node_amount = var.data_node_amount
data_node_spec = var.data_node_spec
data_node_disk_size = var.data_node_disk_size
data_node_disk_type = var.data_node_disk_type
vswitch_id = var.vswitch_id
password = var.password
version = var.es_version
count = var.number_of_instance
private_whitelist = var.private_whitelist
kibana_whitelist = var.kibana_whitelist
description = var.description
master_node_spec = var.master_node_spec
period = var.period
}

description = var.description
}
31 changes: 15 additions & 16 deletions outputs.tf
Original file line number Diff line number Diff line change
@@ -1,61 +1,60 @@
output "this_elasticsearch_ids" {
value = alicloud_elasticsearch_instance.instance.*.id
value = concat(alicloud_elasticsearch_instance.instance.*.id, [""])[0]
}

output "this_instance_charge_type" {
value = alicloud_elasticsearch_instance.instance.*.instance_charge_type[0]
value = concat(alicloud_elasticsearch_instance.instance.*.instance_charge_type, [""])[0]
}

output "this_period" {
value = alicloud_elasticsearch_instance.instance.*.period[0]
value = concat(alicloud_elasticsearch_instance.instance.*.period, [""])[0]

}

output "this_data_node_spec" {
value = alicloud_elasticsearch_instance.instance.*.data_node_spec[0]
value = concat(alicloud_elasticsearch_instance.instance.*.data_node_spec, [""])[0]
}

output "this_data_node_amount" {
value = alicloud_elasticsearch_instance.instance.*.data_node_amount[0]
value = concat(alicloud_elasticsearch_instance.instance.*.data_node_amount, [""])[0]
}

output "this_data_node_disk_size" {
value = alicloud_elasticsearch_instance.instance.*.data_node_disk_size[0]
value = concat(alicloud_elasticsearch_instance.instance.*.data_node_disk_size, [""])[0]
}

output "this_data_node_disk_type" {
value = alicloud_elasticsearch_instance.instance.*.data_node_disk_type[0]
value = concat(alicloud_elasticsearch_instance.instance.*.data_node_disk_type, [""])[0]
}

output "this_es_version" {
value = alicloud_elasticsearch_instance.instance.*.version[0]
value = concat(alicloud_elasticsearch_instance.instance.*.version, [""])[0]
}

output "this_vswitch_id" {
value = alicloud_elasticsearch_instance.instance.*.vswitch_id[0]
value = concat(alicloud_elasticsearch_instance.instance.*.vswitch_id, [""])[0]
}

output "this_password" {
value = alicloud_elasticsearch_instance.instance.*.password[0]
value = concat(alicloud_elasticsearch_instance.instance.*.password, [""])[0]
}

output "this_private_whitelist" {
value = alicloud_elasticsearch_instance.instance.*.private_whitelist[0]
value = concat(alicloud_elasticsearch_instance.instance.*.private_whitelist, [""])[0]
}

output "this_kibana_whitelist" {
value = alicloud_elasticsearch_instance.instance.*.kibana_whitelist[0]
value = concat(alicloud_elasticsearch_instance.instance.*.kibana_whitelist, [""])[0]
}

output "this_master_node_spec" {
value = alicloud_elasticsearch_instance.instance.*.master_node_spec[0]
value = concat(alicloud_elasticsearch_instance.instance.*.master_node_spec, [""])[0]
}

output "this_description" {
value = alicloud_elasticsearch_instance.instance.*.description[0]
value = concat(alicloud_elasticsearch_instance.instance.*.description, [""])[0]
}

output "number_of_instance" {
value = length(alicloud_elasticsearch_instance.instance.*.id)
}

}
12 changes: 6 additions & 6 deletions terratest/basic/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,13 @@ module "vpc" {
}

module "elasticsearch" {
source = "../../"
period = var.period
source = "../../"
period = var.period
password = var.password
private_whitelist = var.private_whitelist
kibana_whitelist = var.kibana_whitelist
description = var.description
number_of_instance = var.number_of_instance
private_whitelist = var.private_whitelist
kibana_whitelist = var.kibana_whitelist
description = var.description
number_of_instance = var.number_of_instance
data_node_spec = var.data_node_spec
data_node_amount = var.data_node_amount
data_node_disk_size = var.data_node_disk_size
Expand Down
Loading