Terraform module for deploying a CCEv2 cluster.
- v2.3.0: compatibility break!! please read carefuly the release note https://github.com/FlexibleEngineCloud/terraform-flexibleengine-cce/releases/tag/v2.3.0
- v2.2.0: please read carefuly the release note https://github.com/FlexibleEngineCloud/terraform-flexibleengine-cce/releases/tag/v2.2.0
- v2.1.0: please read carefuly the release note https://github.com/FlexibleEngineCloud/terraform-flexibleengine-cce/releases/tag/v2.1.0
module "cce2_cluster" {
source = "FlexibleEngineCloud/cce/flexibleengine"
version = "2.3.0"
cluster_name = "cluster-test"
cluster_desc = " Cluster for testing purpose"
cluster_flavor = "cce.s1.small"
vpc_id = "<VPC_ID>"
network_id = "<NETWORK_ID>" //Caution here, you have to use NETWORK_ID even if argument is "subnet_id". Will be fixed soon
cluster_version = "v1.15.6-r1"
node_os = "CentOS 7.5" // Can be "EulerOS 2.5" or "CentOS 7.5"
node_runtime = "containerd // Valid values are docker and containerd"
key_pair = "my-key"
annotations = { "cluster.install.addons.external/install": "[{\"addonTemplateName\":\"icagent\"}]" }
nodes_list = [
{
node_index = "node0"
node_name = "cce-node1"
node_flavor = "s3.large.2"
availability_zone = "eu-west-0a"
root_volume_type = "SATA"
root_volume_size = 40
data_volume_type = "SATA"
data_volume_size = 100
node_labels = {}
vm_tags = {}
postinstall_script = null
preinstall_script = null
taints = []
},
{
node_index = "node1"
node_name = "cce-node2"
node_flavor = "s3.large.2"
availability_zone = "eu-west-0b"
root_volume_type = "SATA"
root_volume_size = 40
data_volume_type = "SATA"
data_volume_size = 100
node_labels = {
type = "extra-node"
}
vm_tags = {
Owner = "Me"
Env = "Prod"
}
postinstall_script = null
preinstall_script = null
taints = [
{
key = "key1"
value = "value1"
effect = "NoSchedule"
},
{
key = "key1"
value = "value1"
effect = "NoExecute"
},
{
key = "key2"
value = "value2"
effect = "NoSchedule"
}
]
}
]
node_pool_list = [
{
node_pool_index = "nodepool0"
node_pool_name = "cce-nodepool-test"
node_flavor = "s3.large.2"
availability_zone = null
initial_node_count = 1
scale_enable = true
min_node_count = 1
max_node_count = 3
scale_down_cooldown_time = null
priority = null
root_volume_type = "SATA"
root_volume_size = 40
data_volume_type = "SATA"
data_volume_size = 100
node_labels = {
taints = "test-taint"
}
preinstall_script = null
postinstall_script = null
taints = [
{
key = "key1"
value = "value1"
effect = "NoSchedule"
},
{
key = "key1"
value = "value1"
effect = "NoExecute"
},
{
key = "key2"
value = "value2"
effect = "NoSchedule"
}
]
}
]
}
################################
### Terragrunt Configuration ###
################################
terraform {
source = "FlexibleEngineCloud/cce/flexibleengine"
version = "2.3.0"
}
include {
path = find_in_parent_folders()
}
##################
### Parameters ###
##################
inputs = {
cluster_name = "cluster-test"
cluster_desc = "Cluster for testing purpose"
cluster_flavor = "cce.s1.small"
cluster_version = "v1.15.6-r1"
node_os = "CentOS 7.5" // Can be "EulerOS 2.5" or "CentOS 7.5"
node_runtime = "containerd // Valid values are docker and containerd"
key_pair = "my-key"
nodes_list = [
{
node_index = "node0"
node_name = "existing-node-1"
node_flavor = "s3.xlarge.2"
availability_zone = "eu-west-0a"
root_volume_type = "SATA"
root_volume_size = 40
data_volume_type = "SATA"
data_volume_size = 100
node_labels = {}
vm_tags = {}
postinstall_script = null
preinstall_script = null
tainst = []
},
{
node_index = "node1"
node_name = "cce-node-2"
node_flavor = "s3.xlarge.2"
availability_zone = "eu-west-0a"
root_volume_type = "SATA"
root_volume_size = 40
data_volume_type = "SATA"
data_volume_size = 100
node_labels = {
type = "extra-node"
}
vm_tags = {
Owner = "Me"
Env = "Prod"
}
postinstall_script = null
preinstall_script = null
taints = [
{
key = "key1"
value = "value1"
effect = "NoSchedule"
},
{
key = "key1"
value = "value1"
effect = "NoExecute"
},
{
key = "key2"
value = "value2"
effect = "NoSchedule"
}
]
}
]
node_pool_list = [
{
node_pool_index = "nodepool0"
node_pool_name = "cce-nodepool-test"
node_flavor = "s3.large.2"
availability_zone = null
initial_node_count = 1
scale_enable = true
min_node_count = 1
max_node_count = 3
scale_down_cooldown_time = null
priority = null
root_volume_type = "SATA"
root_volume_size = 40
data_volume_type = "SATA"
data_volume_size = 100
node_labels = {
taints = "test-taint"
}
preinstall_script = null
postinstall_script = null
taints = [
{
key = "key1"
value = "value1"
effect = "NoSchedule"
},
{
key = "key1"
value = "value1"
effect = "NoExecute"
},
{
key = "key2"
value = "value2"
effect = "NoSchedule"
}
]
}
]
}
Name | Version |
---|---|
terraform | >= 0.13 |
flexibleengine | >= 1.17 |
Name | Version |
---|---|
flexibleengine | >= 1.17 |
Name | Description | Type | Default | Required |
---|---|---|---|---|
availability_zone | Availability Zone used to deploy | string |
"eu-west-0a" |
no |
cluster_desc | Description of the cluster | string |
n/a | yes |
cluster_eip | EIP of the cluster | string |
null |
no |
cluster_flavor | Flavor of the CCE2 Cluster | string |
n/a | yes |
cluster_name | Name of the cluster | string |
n/a | yes |
cluster_type | Cluster Type, possible values are VirtualMachine and BareMetal | string |
VirtualMachine | no |
cluster_version | Version of the cluster | string |
n/a | yes |
container_network_type | Network type of the container | string |
overlay_l2 |
yes |
extend_param | Extended Parameters | map(string) |
{} |
no |
key_pair | Name of the SSH key pair | string |
n/a | yes |
network_id | ID of the Network | string |
n/a | yes |
node_os | Operating System of the CCE Worker Node | string |
n/a | yes |
node_pool_list | Nodes poool list of the CCE2 Cluster | list(object({ |
[] |
no |
nodes_list | Nodes list of the CCE2 Cluster | list(object({ |
[] |
no |
vpc_id | ID of the VPC | string |
n/a | yes |
Name | Description |
---|---|
cluster_id | ID of the Cluster created |
nodes_ip | List of nodes IP adresses |
nodes_list | List of nodes |
cce_certificate_clusters | Cluster certificate data and keys |
cce_certificate_users | User certificate data and keys |