Terraform Provider
Follow these steps to create a Kubernetes cluster using the Platform9 terraform provider.
What you’ll need
- General understanding of Terraform
- Access to the inbox of a valid email address
- AWS account that meets the AWS Native Clusters
Log in to your Platform9 Account
Log in to your Platform9 account. Once you sign in you’ll be directed to your account's dashboard. This is a summary of all Kubernetes clusters, nodes, pods, and cloud accounts associated with your Platform9 account. If this is a brand new account, there may not be anything associated… yet!

Platform9 – UI - Dashboard
Create a terraform file
Create a file named p9-simple-cluster.tf and paste the below contents within that file.
locals {
p9_tenant_uuid = ""
aws_account_key = ""
aws_account_secret = ""
aws_keypair_name = ""
tags = {
source: "terraform/platform9/pf9"
provider_version: "0.1.6"
}
}
terraform {
required_providers {
pf9 = {
source = "platform9/pf9"
version = "0.1.6"
}
}
}
provider "pf9" {}
resource "pf9_aws_cloud_provider" "My-AWS-Provider" {
name = "My-AWS-Provider"
type = "aws"
key = local.aws_account_key
secret = local.aws_account_secret
project_uuid = local.p9_tenant_uuid
}
resource "pf9_cluster" "simple-aws-cluster" {
/*P9 Account Values*/
project_uuid = local.p9_tenant_uuid
cloud_provider_uuid = ""
/*Cluster Config Values*/
name = "simple-aws-cluster"
containers_cidr = "10.20.0.0/16"
services_cidr = "10.21.0.0/16"
num_masters = 1
num_workers = 1
/*AWS Specific Values*/
ami = "ubuntu"
azs = ["us-east-1b"]
region = "us-east-1"
worker_flavor = "t2.medium"
master_flavor = "t2.medium"
ssh_key = local.aws_keypair_name
tags = local.tags
}
In the “locals” area of the file fill in the relevant information:
p9_tenant_uuid | Your Platform9 project UUID. Learn how to find this value, here. |
aws_account_key | Your AWS account info. |
aws_account_secret | Your AWS account secret. |
aws_keypair_name | The name of a saved AWS keypair. |
Save the file and note its path
Create cloud provider and cluster using Terraform
Navigate to the directory where you saved the tf file, in your terminal
Run the following command using the terraform cli
terraform init
Terraform will find the .tf file and initialize the directory for management of the provider.
Once initialized, start the Terraform pf9 provider with the following command
terraform apply
Terraform will run through validations of your values and begin creating the cloud provider and then the cluster.
To follow the progress of your cluster creation go back to the Platform9 dashboard and navigate to “Infrastructure”, and then “Node Health”. Initially, the screen will be:

As the deployment progresses, the screen will update with steps completed and a final message of "Connected" and "Healthy".


Navigate back to your dashboard to see a summary of the new management plane.
Removing the new cluster using Terraform
- Using your terminal run the following command:
terraform destroy
This will remove the cluster completely.