-
Notifications
You must be signed in to change notification settings - Fork 4.6k
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
- support for the cost_analysis_enabled
property
#26052
azurerm_kubernetes_cluster
- support for the cost_analysis_enabled
property
#26052
Conversation
azurerm_kubernetes_cluster
- support for the cost_analysis_enabled
propertyazurerm_kubernetes_cluster
- support for the cost_analysis_enabled
property
azurerm_kubernetes_cluster
- support for the cost_analysis_enabled
propertyazurerm_kubernetes_cluster
- support for the cost_analysis_enabled
property
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @ms-henglu. Overall this looks fine, please take a look at the two suggestions left in-line. This should be good to go once they're resolved.
func TestAccKubernetesCluster_costAnalysisEnabled(t *testing.T) { | ||
data := acceptance.BuildTestData(t, "azurerm_kubernetes_cluster", "test") | ||
r := KubernetesClusterResource{} | ||
|
||
data.ResourceTest(t, r, []acceptance.TestStep{ | ||
{ | ||
Config: r.costAnalysisEnabled(data, true), | ||
Check: acceptance.ComposeTestCheckFunc( | ||
check.That(data.ResourceName).ExistsInAzure(r), | ||
), | ||
}, | ||
data.ImportStep(), | ||
}) | ||
} | ||
|
||
func TestAccKubernetesCluster_costAnalysis(t *testing.T) { | ||
data := acceptance.BuildTestData(t, "azurerm_kubernetes_cluster", "test") | ||
r := KubernetesClusterResource{} | ||
|
||
data.ResourceTest(t, r, []acceptance.TestStep{ | ||
{ | ||
Config: r.costAnalysisEnabled(data, false), | ||
Check: acceptance.ComposeTestCheckFunc( | ||
check.That(data.ResourceName).ExistsInAzure(r), | ||
), | ||
}, | ||
data.ImportStep(), | ||
{ | ||
Config: r.costAnalysisEnabled(data, true), | ||
Check: acceptance.ComposeTestCheckFunc( | ||
check.That(data.ResourceName).ExistsInAzure(r), | ||
), | ||
}, | ||
data.ImportStep(), | ||
{ | ||
Config: r.costAnalysisEnabled(data, false), | ||
Check: acceptance.ComposeTestCheckFunc( | ||
check.That(data.ResourceName).ExistsInAzure(r), | ||
), | ||
}, | ||
data.ImportStep(), | ||
}) | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for being thorough with the tests here @ms-henglu, but I think we consolidate these into one test by toggling from true
-> false
-> true
. This way we're testing the initial creation of a resource with cost analysis enabled, and then that we can toggle this. I don't think it's necessary to explicitly test the default value false
at creation since every other test where we're not specifying cost_analysis_enabled
will be checking this.
func TestAccKubernetesCluster_costAnalysisEnabled(t *testing.T) { | |
data := acceptance.BuildTestData(t, "azurerm_kubernetes_cluster", "test") | |
r := KubernetesClusterResource{} | |
data.ResourceTest(t, r, []acceptance.TestStep{ | |
{ | |
Config: r.costAnalysisEnabled(data, true), | |
Check: acceptance.ComposeTestCheckFunc( | |
check.That(data.ResourceName).ExistsInAzure(r), | |
), | |
}, | |
data.ImportStep(), | |
}) | |
} | |
func TestAccKubernetesCluster_costAnalysis(t *testing.T) { | |
data := acceptance.BuildTestData(t, "azurerm_kubernetes_cluster", "test") | |
r := KubernetesClusterResource{} | |
data.ResourceTest(t, r, []acceptance.TestStep{ | |
{ | |
Config: r.costAnalysisEnabled(data, false), | |
Check: acceptance.ComposeTestCheckFunc( | |
check.That(data.ResourceName).ExistsInAzure(r), | |
), | |
}, | |
data.ImportStep(), | |
{ | |
Config: r.costAnalysisEnabled(data, true), | |
Check: acceptance.ComposeTestCheckFunc( | |
check.That(data.ResourceName).ExistsInAzure(r), | |
), | |
}, | |
data.ImportStep(), | |
{ | |
Config: r.costAnalysisEnabled(data, false), | |
Check: acceptance.ComposeTestCheckFunc( | |
check.That(data.ResourceName).ExistsInAzure(r), | |
), | |
}, | |
data.ImportStep(), | |
}) | |
} | |
func TestAccKubernetesCluster_costAnalysis(t *testing.T) { | |
data := acceptance.BuildTestData(t, "azurerm_kubernetes_cluster", "test") | |
r := KubernetesClusterResource{} | |
data.ResourceTest(t, r, []acceptance.TestStep{ | |
{ | |
Config: r.costAnalysisEnabled(data, true), | |
Check: acceptance.ComposeTestCheckFunc( | |
check.That(data.ResourceName).ExistsInAzure(r), | |
), | |
}, | |
data.ImportStep(), | |
{ | |
Config: r.costAnalysisEnabled(data, false), | |
Check: acceptance.ComposeTestCheckFunc( | |
check.That(data.ResourceName).ExistsInAzure(r), | |
), | |
}, | |
data.ImportStep(), | |
{ | |
Config: r.costAnalysisEnabled(data, true), | |
Check: acceptance.ComposeTestCheckFunc( | |
check.That(data.ResourceName).ExistsInAzure(r), | |
), | |
}, | |
data.ImportStep(), | |
}) | |
} |
@@ -99,6 +99,8 @@ In addition, one of either `identity` or `service_principal` blocks must be spec | |||
|
|||
* `confidential_computing` - (Optional) A `confidential_computing` block as defined below. For more details please [the documentation](https://learn.microsoft.com/en-us/azure/confidential-computing/confidential-nodes-aks-overview) | |||
|
|||
* `cost_analysis_enabled` - (Optional) Should cost analysis be enabled for this Kubernetes Cluster? Defaults to `false`. The `sku_tier` must be set to `Standard` or `Premium` to enable this feature. Enabling this will add Kubernetes Namespace and Deployment details to the Cost Analysis views in the Azure portal. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The
sku_tier
must be set toStandard
orPremium
to enable this feature.
Can we add this validation into the code as well?
Thanks @stephybun for the code review. I've updated this Pr as suggested. Please take another look, thanks! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We have a test failure:
------- Stdout: -------
=== RUN TestAccKubernetesCluster_costAnalysis
=== PAUSE TestAccKubernetesCluster_costAnalysis
=== CONT TestAccKubernetesCluster_costAnalysis
testcase.go:113: Step 3/6 error: After applying this test step, the plan was not empty.
stdout:
Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
~ update in-place
Terraform will perform the following actions:
# azurerm_kubernetes_cluster.test will be updated in-place
~ resource "azurerm_kubernetes_cluster" "test" {
~ cost_analysis_enabled = true -> false
id = "/subscriptions/*******/resourceGroups/acctestRG-aks-240530064851694058/providers/Microsoft.ContainerService/managedClusters/acctestaks240530064851694058"
name = "acctestaks240530064851694058"
tags = {}
# (27 unchanged attributes hidden)
# (4 unchanged blocks hidden)
}
Plan: 0 to add, 1 to change, 0 to destroy.
--- FAIL: TestAccKubernetesCluster_costAnalysis (759.53s)
FAIL```
Thanks @stephybun , I've fixed the typo:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @ms-henglu LGTM 👍
I'm going to lock this pull request because it has been closed for 30 days ⏳. This helps our maintainers find and focus on the active contributions. |
fixes #23982
Community Note
Description
PR Checklist
For example: “
resource_name_here
- description of change e.g. adding propertynew_property_name_here
”Changes to existing Resource / Data Source
Testing
The failed tests are not related to this change.
Change Log
Below please provide what should go into the changelog (if anything) conforming to the Changelog Format documented here.
azurerm_resource
- support for thething1
property [GH-00000]This is a (please select all that apply):
Related Issue(s)
Fixes #0000
Note
If this PR changes meaningfully during the course of review please update the title and description as required.