Alibaba Cloud Managed Kubernetes Terraform

12/27/2018

I want to create Kubernetes cluster with Terraform,

Regarding the doc page here: https://www.terraform.io/docs/providers/alicloud/r/cs_managed_kubernetes.html

variable "name" {
default = "my-first-k8s"
}
data "alicloud_zones" main {
  available_resource_creation = "VSwitch"
}

data "alicloud_instance_types" "default" {
    availability_zone = "${data.alicloud_zones.main.zones.0.id}"
    cpu_core_count = 1
    memory_size = 2
} 

Where do I insert vswitch id? and how to set the region id?

-- Fauzan
alibaba-cloud
kubernetes
terraform

2 Answers

12/29/2018

To set region:

While configuring Alicloud provider in Terraform itself you can set the region:

provider "alicloud" {
  access_key = "${var.access_key}"
  secret_key = "${var.secret_key}"
  region     = "${var.region}"
}

For instance, let me consider Beijing as the region:

provider "alicloud" {
      access_key = "accesskey"
      secret_key = "secretkey"
      region     = "cn-beijing"
    }

To set vswitch IDs:

while defining the resource section we can insert the desired vswitches

resource "alicloud_instance"{
  # ...
  instance_name = "in-the-vpc"
  vswitch_id = "${data.alicloud_vswitches.vswitches_ds.vswitches.0.id}"
  # ...
}

For instance, let me consider vsw-25naue4gz as the vswitch id:

resource "alicloud_instance"{
      # ...
      vswitch_id = "vsw-25naue4gz"
      # ...
    }
-- Ranjith Udayakumar
Source: StackOverflow

12/27/2018

You can insert the vswitch id in the resource definition:

resource "alicloud_cs_managed_kubernetes" "k8s" {
  name = "${var.name}"
  availability_zone = "${data.alicloud_zones.main.zones.0.id}"
  new_nat_gateway = true
  worker_instance_types = ["${data.alicloud_instance_types.default.instance_types.0.id}"]
  worker_numbers = [2]
  password = "Test12345"
  pod_cidr = "172.20.0.0/16"
  service_cidr = "172.21.0.0/20"
  install_cloud_monitor = true
  worker_disk_category  = "cloud_efficiency"
  vswitch_ids = ["your-alibaba-vswitch-id"]
}

For the zones (if you want to override the defaults) based on this and the docs, you need to do something like this:

data "alicloud_zones" main {
  available_resource_creation = "VSwitch"

  zones = [
     {
       id = "..."
       local_name = "..."
       ...
     },
     {
       id = "..."
       local_name = "..."
       ...
     },
     ...
  ]
}
-- Rico
Source: StackOverflow