Skip to content

truefoundry/terraform-azure-truefoundry-cluster

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

terraform-azure-truefoundry-cluster

Truefoundry Azure Cluster Module

Requirements

Name Version
terraform >= 1.4
azurerm 3.94.0

Providers

Name Version
azurerm 3.94.0

Modules

Name Source Version
aks Azure/aks/azurerm 8.0.0

Resources

Name Type
azurerm_role_assignment.network_contributor_cluster resource
azurerm_user_assigned_identity.cluster resource

Inputs

Name Description Type Default Required
allowed_ip_ranges Allowed IP ranges to connect to the cluster list(string)
[
"0.0.0.0/0"
]
no
control_plane Whether the cluster is control plane bool n/a yes
control_plane_instance_type Whether the cluster is control plane string "Standard_D2s_v5" no
cpu_pools CPU pools to be attached
list(object({
name = string
instance_type = string
max_count = optional(number, 2)
enable_spot_pool = optional(bool, true)
enable_on_demand_pool = optional(bool, true)
}))
n/a yes
disk_driver_version Version of disk driver. Supported values v1 and v2 string "v1" no
disk_size Disk size of the initial node pool in GB string "100" no
dns_ip IP from service CIDR used for internal DNS string "10.255.0.10" no
enable_blob_driver Enable blob storage provider bool true no
enable_disk_driver Enable disk storage provider bool true no
enable_file_driver Enable file storage provider bool true no
enable_snapshot_controller Enable snapshot controller bool true no
enable_storage_profile Enable storage profile for the cluster. If disabled enable_blob_driver, enable_file_driver, enable_disk_driver and enable_snapshot_controller will have no impact bool true no
gpu_pools GPU pools to be attached
list(object({
name = string
instance_type = string
max_count = optional(number, 2)
enable_spot_pool = optional(bool, true)
enable_on_demand_pool = optional(bool, true)
}))
n/a yes
initial_node_pool_max_count Max count in the initial node pool number 2 no
initial_node_pool_max_surge Max surge in percentage for the intial node pool string "10" no
initial_node_pool_min_count Min count in the initial node pool number 1 no
initial_node_pool_name Name of the initial node pool string "initial" no
intial_node_pool_instance_type Instance size of the initial node pool string "Standard_D2s_v5" no
kubernetes_version Version of the kubernetes engine string "1.28" no
location Location of the resource group string n/a yes
log_analytics_workspace_enabled value to enable log analytics workspace bool true no
max_pods_per_node Max pods per node number 32 no
name Name of the cluster string n/a yes
network_plugin Network plugin to use for cluster string "kubenet" no
oidc_issuer_enabled Enable OIDC for the cluster bool true no
orchestrator_version Kubernetes version for the orchestration layer (nodes). By default it will be derived with var.kubernetes_version until passed explicitly string "1.28" no
pod_cidr CIDR of the pod in cluster string "10.244.0.0/16" no
private_cluster_enabled Private cluster bool false no
resource_group_name Name of the resource group string n/a yes
service_cidr CIDR of the services in cluster string "10.255.0.0/16" no
subnet_id Subnet Id for the cluster string n/a yes
tags A map of tags to add to all resources map(string) {} no
vnet_id Vnet ID for the cluster string n/a yes
workload_identity_enabled Enable workload identity in the cluster bool true no

Outputs

Name Description
cluster_endpoint Endpoint for your Kubernetes API server
cluster_host The host in the azurerm_kubernetes_cluster's kube_config block. The Kubernetes cluster server host.
cluster_id The name/id of the EKS cluster. Will block on cluster creation until the cluster is really ready
cluster_identity The azurerm_kubernetes_cluster's identity block.
cluster_name Name of the cluster
cluster_networking_profile Networking profile of the cluster
cluster_oidc_issuer_url OIDC issuer url of the cluster