77 "fmt"
88 "io"
99 "net/http"
10+ "os"
1011 "testing"
1112
1213 "github.com/golang/mock/gomock"
@@ -414,7 +415,7 @@ func TestAKSClusterResourceUpdateContext(t *testing.T) {
414415 })
415416}
416417
417- func TestAccAKS_ResourceAKSCluster (t * testing.T ) {
418+ func TestAccAKS_ResourceAKSCluster_SecretFlow (t * testing.T ) {
418419 rName := fmt .Sprintf ("%v-aks-%v" , ResourcePrefix , acctest .RandString (8 ))
419420 resourceName := "castai_aks_cluster.test"
420421 clusterName := "core-tf-acc"
@@ -452,7 +453,7 @@ func TestAccAKS_ResourceAKSCluster(t *testing.T) {
452453}
453454
454455func testAccAKSClusterConfig (rName string , clusterName string , resourceGroupName , nodeResourceGroup string ) string {
455- return ConfigCompose ( testAccAzureConfig (rName , resourceGroupName , nodeResourceGroup ), fmt .Sprintf (`
456+ return concatenateConfigs ( testAccAzureConfigUsingClientSecret (rName , resourceGroupName , nodeResourceGroup ), fmt .Sprintf (`
456457resource "castai_aks_cluster" "test" {
457458 name = %[1]q
458459
@@ -468,7 +469,52 @@ resource "castai_aks_cluster" "test" {
468469` , clusterName , nodeResourceGroup ))
469470}
470471
471- func testAccAzureConfig (rName , rgName , ngName string ) string {
472+ func TestAccAKS_ResourceAKSCluster_ImpersonationFlow (t * testing.T ) {
473+ const resourceName = "castai_aks_cluster.test"
474+ const clusterName = "terraform-tests-december-2025"
475+ resource .Test (t , resource.TestCase {
476+ PreCheck : func () { testAccPreCheck (t ) },
477+ ProviderFactories : providerFactories ,
478+ Steps : []resource.TestStep {
479+ {
480+ Config : testAccAzureClusterWithFederationID (clusterName ),
481+ Check : resource .ComposeTestCheckFunc (
482+ resource .TestCheckResourceAttr (resourceName , "name" , clusterName ),
483+ resource .TestCheckResourceAttrSet (resourceName , "credentials_id" ),
484+ resource .TestCheckResourceAttr (resourceName , "region" , "westeurope" ),
485+ resource .TestCheckResourceAttrSet (resourceName , "cluster_token" ),
486+ ),
487+ },
488+ },
489+ ExternalProviders : map [string ]resource.ExternalProvider {
490+ "azurerm" : {
491+ Source : "hashicorp/azurerm" ,
492+ },
493+ },
494+ })
495+ }
496+
497+ func testAccAzureClusterWithFederationID (clusterName string ) string {
498+ subscriptionID := os .Getenv ("ARM_SUBSCRIPTION_ID" )
499+ federationID := os .Getenv ("AZURE_TF_ACCEPTANCE_TEST_FEDERATION_ID" )
500+ tenantID := os .Getenv ("AZURE_TF_ACCEPTANCE_TEST_FEDERATION_TENANT_ID" )
501+ clientID := os .Getenv ("AZURE_TF_ACCEPTANCE_TEST_FEDERATION_CLIENT_ID" )
502+
503+ return fmt .Sprintf (`
504+ resource "castai_aks_cluster" "test" {
505+ name = %[3]q
506+
507+ region = "westeurope"
508+ subscription_id = %[1]q
509+ tenant_id = %[4]q
510+ client_id = %[5]q
511+ federation_id = %[2]q
512+ node_resource_group = "%[3]s-ng"
513+ }
514+ ` , subscriptionID , federationID , clusterName , tenantID , clientID )
515+ }
516+
517+ func testAccAzureConfigUsingClientSecret (rName , rgName , ngName string ) string {
472518 return fmt .Sprintf (`
473519provider "azurerm" {
474520 features {}
0 commit comments