terraform {
  required_providers {
    azurerm = {
      source                = "hashicorp/azurerm"
      version               = "~> 4.58"
      configuration_aliases = [azurerm.jump_server]
    }
    azuread = {
      source  = "hashicorp/azuread"
      version = "~> 3.0"
    }
    aws = {
      source                = "hashicorp/aws"
      version               = "~> 6.0"
      configuration_aliases = [aws.kv_bucket]
    }
    kubernetes = {
      source  = "hashicorp/kubernetes"
      version = "~> 3.0"
    }
    external = {
      source  = "hashicorp/external"
      version = "~> 2.3"
    }
  }
}

provider "aws" {
  alias = "kv_bucket"
  # The o11y_cluster module reads from the shared autonomous-deployment-kv
  # bucket, which is accessed via the central default/tf_state credentials.
  profile = "default"
  region  = "us-west-2"
}

provider "azurerm" {
  use_cli         = true
  subscription_id = var.pingcap_subscription_id
  tenant_id       = var.pingcap_tenant_id
  client_id       = var.controlplane_client_id
  features {}
}

provider "azurerm" {
  alias           = "jump_server"
  use_cli         = true
  subscription_id = var.jump_server_subscription
  tenant_id       = var.jump_server_tenant_id
  client_id       = var.controlplane_client_id
  features {}
}

provider "azuread" {
  use_oidc  = true
  tenant_id = var.pingcap_tenant_id
  client_id = var.controlplane_client_id
}

provider "kubernetes" {
  config_path = module.kubeconfig.path
}
