Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

azurerm_kubernetes_cluster - api_server_vnet_integration_enabled and api_server_subnet_id added (PREVIEW) #19438

Merged
merged 11 commits into from
Jan 10, 2023
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ func TestAccKubernetesCluster_apiServerAuthorizedIPRanges(t *testing.T) {
check.That(data.ResourceName).Key("kube_admin_config.#").HasValue("0"),
check.That(data.ResourceName).Key("kube_admin_config_raw").HasValue(""),
check.That(data.ResourceName).Key("default_node_pool.0.max_pods").Exists(),
check.That(data.ResourceName).Key("api_server_authorized_ip_ranges.#").HasValue("3"),
check.That(data.ResourceName).Key("api_server_access_profile.0.authorized_ip_ranges.#").HasValue("3"),
),
},
data.ImportStep(),
Expand Down Expand Up @@ -466,11 +466,13 @@ resource "azurerm_kubernetes_cluster" "test" {
load_balancer_sku = "standard"
}

api_server_authorized_ip_ranges = [
"8.8.8.8/32",
"8.8.4.4/32",
"8.8.2.0/24",
]
api_server_access_profile {
authorized_ip_ranges = [
"8.8.8.8/32",
"8.8.4.4/32",
"8.8.2.0/24",
]
}
}
`, data.RandomInteger, data.Locations.Primary, data.RandomInteger, data.RandomInteger, data.RandomInteger, data.RandomInteger)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -764,6 +764,177 @@ func TestAccKubernetesCluster_ebpfDataPlane(t *testing.T) {
})
}

func TestAccKubernetesCluster_apiServerInManagedSubnet(t *testing.T) {
data := acceptance.BuildTestData(t, "azurerm_kubernetes_cluster", "test")
r := KubernetesClusterResource{}

data.ResourceTest(t, r, []acceptance.TestStep{
{
Config: r.apiServerInManagedSubnet(data),
Check: acceptance.ComposeTestCheckFunc(
check.That(data.ResourceName).ExistsInAzure(r),
),
},
data.ImportStep(),
})
}

func TestAccKubernetesCluster_apiServerInBYOSubnet(t *testing.T) {
data := acceptance.BuildTestData(t, "azurerm_kubernetes_cluster", "test")
r := KubernetesClusterResource{}

data.ResourceTest(t, r, []acceptance.TestStep{
{
Config: r.apiServerInBYOSubnet(data),
Check: acceptance.ComposeTestCheckFunc(
check.That(data.ResourceName).ExistsInAzure(r),
),
},
data.ImportStep(),
})
}

func (KubernetesClusterResource) apiServerInBYOSubnet(data acceptance.TestData) string {
return fmt.Sprintf(`
provider "azurerm" {
features {}
}

resource "azurerm_resource_group" "test" {
name = "acctestRG-aks-%d"
location = "%s"
}

resource "azurerm_virtual_network" "test" {
name = "acctestvirtnet%d"
address_space = ["10.0.0.0/8"]
location = azurerm_resource_group.test.location
resource_group_name = azurerm_resource_group.test.name
}

resource "azurerm_subnet" "test" {
name = "acctestsubnet%d"
resource_group_name = azurerm_resource_group.test.name
virtual_network_name = azurerm_virtual_network.test.name
address_prefixes = ["10.1.0.0/16"]

delegation {
name = "aks-delegation"

service_delegation {
actions = ["Microsoft.Network/virtualNetworks/subnets/join/action"]
name = "Microsoft.ContainerService/managedClusters"
}
}
}

resource "azurerm_subnet" "test1" {
name = "acctestsubnet1%d"
resource_group_name = azurerm_resource_group.test.name
virtual_network_name = azurerm_virtual_network.test.name
address_prefixes = ["10.2.0.0/16"]
}

resource "azurerm_user_assigned_identity" "test" {
name = "acctestRG-aks-%d"
resource_group_name = azurerm_resource_group.test.name
location = azurerm_resource_group.test.location
}

resource "azurerm_role_assignment" "test" {
scope = azurerm_subnet.test.id
role_definition_name = "Network Contributor"
principal_id = azurerm_user_assigned_identity.test.principal_id
}

resource "azurerm_kubernetes_cluster" "test" {
name = "acctestaks%d"
location = azurerm_resource_group.test.location
resource_group_name = azurerm_resource_group.test.name
dns_prefix = "acctestaks%d"

api_server_access_profile {
vnet_integration_enabled = true
subnet_id = azurerm_subnet.test.id
}

linux_profile {
admin_username = "acctestuser%d"

ssh_key {
key_data = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCqaZoyiz1qbdOQ8xEf6uEu1cCwYowo5FHtsBhqLoDnnp7KUTEBN+L2NxRIfQ781rxV6Iq5jSav6b2Q8z5KiseOlvKA/RF2wqU0UPYqQviQhLmW6THTpmrv/YkUCuzxDpsH7DUDhZcwySLKVVe0Qm3+5N2Ta6UYH3lsDf9R9wTP2K/+vAnflKebuypNlmocIvakFWoZda18FOmsOoIVXQ8HWFNCuw9ZCunMSN62QGamCe3dL5cXlkgHYv7ekJE15IA9aOJcM7e90oeTqo+7HTcWfdu0qQqPWY5ujyMw/llas8tsXY85LFqRnr3gJ02bAscjc477+X+j/gkpFoN1QEmt terraform@demo.tld"
}
}

default_node_pool {
name = "default"
node_count = 2
vm_size = "Standard_DS2_v2"
vnet_subnet_id = azurerm_subnet.test1.id
}

identity {
type = "UserAssigned"
identity_ids = [azurerm_user_assigned_identity.test.id]
}

network_profile {
network_plugin = "azure"
}

depends_on = [
azurerm_role_assignment.test,
]
}
`, data.RandomInteger, data.Locations.Primary, data.RandomInteger, data.RandomInteger, data.RandomInteger, data.RandomInteger, data.RandomInteger, data.RandomInteger, data.RandomInteger)
}

func (KubernetesClusterResource) apiServerInManagedSubnet(data acceptance.TestData) string {
return fmt.Sprintf(`
provider "azurerm" {
features {}
}

resource "azurerm_resource_group" "test" {
name = "acctestRG-aks-%d"
location = "%s"
}

resource "azurerm_kubernetes_cluster" "test" {
name = "acctestaks%d"
location = azurerm_resource_group.test.location
resource_group_name = azurerm_resource_group.test.name
dns_prefix = "acctestaks%d"

api_server_access_profile {
vnet_integration_enabled = true
}

linux_profile {
admin_username = "acctestuser%d"

ssh_key {
key_data = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCqaZoyiz1qbdOQ8xEf6uEu1cCwYowo5FHtsBhqLoDnnp7KUTEBN+L2NxRIfQ781rxV6Iq5jSav6b2Q8z5KiseOlvKA/RF2wqU0UPYqQviQhLmW6THTpmrv/YkUCuzxDpsH7DUDhZcwySLKVVe0Qm3+5N2Ta6UYH3lsDf9R9wTP2K/+vAnflKebuypNlmocIvakFWoZda18FOmsOoIVXQ8HWFNCuw9ZCunMSN62QGamCe3dL5cXlkgHYv7ekJE15IA9aOJcM7e90oeTqo+7HTcWfdu0qQqPWY5ujyMw/llas8tsXY85LFqRnr3gJ02bAscjc477+X+j/gkpFoN1QEmt terraform@demo.tld"
}
}

default_node_pool {
name = "default"
node_count = 2
vm_size = "Standard_DS2_v2"
}

identity {
type = "SystemAssigned"
}

network_profile {
network_plugin = "azure"
}
}
`, data.RandomInteger, data.Locations.Primary, data.RandomInteger, data.RandomInteger, data.RandomInteger)
}

func (KubernetesClusterResource) advancedNetworkingConfig(data acceptance.TestData, networkPlugin string) string {
return fmt.Sprintf(`
provider "azurerm" {
Expand Down Expand Up @@ -3089,7 +3260,9 @@ resource "azurerm_kubernetes_cluster" "test" {
func (KubernetesClusterResource) publicNetworkAccess(data acceptance.TestData, enabled bool) string {
authorizedIPConfig := ""
if !enabled {
authorizedIPConfig = `api_server_authorized_ip_ranges = ["0.0.0.0/32"]`
authorizedIPConfig = `api_server_access_profile {
authorized_ip_ranges = ["0.0.0.0/32"]
}`
}
return fmt.Sprintf(`
provider "azurerm" {
Expand Down
Loading