Following the guide from Microsoft on how to "Create a Kubernetes cluster with Azure Kubernetes Service using Terraform" you can easily set up a Kubernetes cluster on Azure. However, after you have done this you will not have an ingress controller as this is not created together with the cluster.
Below is the full example from the microsoft page on how to create a cluster, with the addition on how to create the AGIC:
resource "azurerm_kubernetes_cluster" "k8s" {
name = var.cluster_name
location = azurerm_resource_group.k8s.location
resource_group_name = azurerm_resource_group.k8s.name
dns_prefix = var.dns_prefix
kubernetes_version = "1.21.2"
linux_profile {
admin_username = "ubuntu"
ssh_key {
key_data = file(var.ssh_public_key)
}
}
default_node_pool {
name = "agentpool"
node_count = var.agent_count
vm_size = "Standard_DS2_v2"
}
service_principal {
client_id = var.client_id
client_secret = var.client_secret
}
addon_profile {
oms_agent {
enabled = true
log_analytics_workspace_id = azurerm_log_analytics_workspace.test.id
}
ingress_application_gateway {
enabled = true
subnet_cidr = "10.1.0.0/16"
gateway_name = "${var.cluster_name}-AGIC"
}
}
network_profile {
load_balancer_sku = "Standard"
network_plugin = "kubenet"
}
tags = {
Environment = "Development"
}
}
The interesting part is below. Here the ingress application gateway is created:
ingress_application_gateway {
enabled = true
subnet_cidr = "10.1.0.0/16"
gateway_name = "${var.cluster_name}-AGIC"
}
You can see the full documentation here. I hope you found this helpful, feel free to leave a comment down below!