terraform {
  required_providers {
    azurerm = {
      source  = "hashicorp/azurerm"
      version = "~> 4.58"
    }
    aws = {
      source  = "hashicorp/aws"
      version = "~> 6.0"
    }
    random = {
      source  = "hashicorp/random"
      version = "~> 3.6"
    }
    tls = {
      source  = "hashicorp/tls"
      version = "~> 4.0"
    }
    kubernetes = {
      source  = "hashicorp/kubernetes"
      version = "~> 3.0"
    }
    external = {
      source  = "hashicorp/external"
      version = "~> 2.3"
    }
  }

  backend "s3" {
    bucket       = "autonomous-deployment-terraform-state"
    region       = "us-west-2"
    use_lockfile = true
  }
}

provider "aws" {
  profile = local.base_account
  region  = "us-west-2"
}

provider "aws" {
  profile = "default"
  region  = "us-west-2"
  alias   = "tf_state"
}

provider "azurerm" {
  use_cli         = true
  subscription_id = local.controlplane_subscription
  tenant_id       = local.controlplane_tenant_id
  client_id       = local.controlplane_client_id
  features {}
}

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

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

data "local_command" "git_rev_parse" {
  command   = "git"
  arguments = ["rev-parse", "HEAD"]
}

output "apply_commit" {
  value = chomp(data.local_command.git_rev_parse.stdout)
}
