Skip to content

This project automates the provisioning of Managed Kubernetes Clusters (CCE) on OpenTelekomCloud using Terraform. It creates scalable, high-availability clusters with node pools across multiple availability zones. Key features include autoscaling, add-ons like the metrics server, and generating a Kubeconfig file for easy cluster management

License

Notifications You must be signed in to change notification settings

nirbelelti/OTC_terraform_cloud_configuration

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Terraform Cloud Configuration Demo

This project demonstrates the use of Terraform to configure cloud resources on OpenTelekomCloud. The configuration includes setting up a VPC, CCE, DNS, Load Balancer, SWR, and other necessary resources.

Prerequisites

  • Terraform >= 0.12
  • OpenTelekomCloud account
  • Access to the OpenTelekomCloud API

Project Structure

  • stages/development/main.tf: Main Terraform configuration file for the development stage.
  • modules/: Directory containing reusable Terraform modules.

Configuration

  1. Define the variables in a variables.tf file.
  2. Reference these variables in the provider block.
  3. Add a .gitignore file to exclude the terraform.tfvars file from being committed.

Step-by-Step Plan:

  1. Create a variables.tf file to define the variables.
  2. Modify the provider block to use these variables.
  3. Create a terraform.tfvars file to set the values for these variables.
  4. Add a .gitignore file to exclude the terraform.tfvars file.

Code:

variables.tf

terraform The folowwed variables need to be set in your Terraform configuration:

variable "user_name" {
  type        = string
  description = "OpenTelekomCloud user name."
}

variable "password" {
  type        = string
  description = "OpenTelekomCloud password."
}

variable "domain_name" {
  type        = string
  description = "OpenTelekomCloud domain name."
}

variable "tenant_name" {
  type        = string
  description = "OpenTelekomCloud tenant name."
}

Instead of using the variables.tf file, you can use the terraform.tfvars file to set the variables or insert the variables directly into the console. (at your own risk) you can read more about the variables.tf and tfvars files here

stages/development/main.tf

provider "opentelekomcloud" {
  user_name   = var.user_name
  password    = var.password
  domain_name = var.domain_name
  tenant_name = var.tenant_name
}

terraform.tfvars

user_name   = "your_username"
password    = "your_password"
domain_name = "your_domain"
tenant_name = "your_tenant"

.gitignore

terraform.tfvars

Variables

The following variables need to be set in your Terraform configuration:

  • project_name: Name of the project.
  • stage_name: Stage name (e.g., dev, prod).
  • cidr: CIDR block for the VPC.
  • node_flavor: Flavor ID for the CCE nodes.
  • tags: Tags to apply to the resources.
  • allowed_ip: Allowed IP addresses for access control.
  • region: Region for the resources.

Example

Here is an example of how to set the variables in a terraform.tfvars file:

project_name  = "your_project"
stage_name    = "dev"
cidr          = "10.0.0.0/16"
node_flavor   = "s2.large.2"
tags          = { "env" = "dev" }
allowed_ip    = ["0.0.0.0/0"]
region        = "eu-de"

Running the Configuration

First, you need to to be in the stages/development directory. initialize the Terraform configuration by running the following command:

terraform init

Then, you can ethe apply or view the planed configuration by running the following command: for view the planed configuration and changes ran the command below:\

bash terraform plan

you can also run the following command to apply the configuration:

bash terraform apply

About

This project automates the provisioning of Managed Kubernetes Clusters (CCE) on OpenTelekomCloud using Terraform. It creates scalable, high-availability clusters with node pools across multiple availability zones. Key features include autoscaling, add-ons like the metrics server, and generating a Kubeconfig file for easy cluster management

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages