terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 5.0"
    }
    azurerm = {
      source  = "hashicorp/azurerm"
      version = "~>4.11"
    }
  }
  backend "azurerm" {}
}
provider "aws" {
  region = "us-west-2"
}
provider "azurerm" {
  features {
    resource_group {
      prevent_deletion_if_contains_resources = false
    }
  }
}

variable "aks_oidc" {
  type = string
}

variable "env" {
  type = string
}

variable "logical_region_name" {
  type = string
}

variable "controlplane_account" {
  type = string
}

module "crossplane-aws-provider" {
  source = "../../modules/controlplane"

  controlplane_account = var.controlplane_account
  oidc                 = var.aks_oidc
  role_name            = "${var.env}-${var.logical_region_name}-crossplane-aws-provider"
  service_account      = "aws-provider-upstream"
  policy_document = jsonencode({
    Version = "2012-10-17"
    Statement = [
      {
        "Action" : [
          "kms:*",
          "route53:*",
          "s3:*",
          "iam:*",
          "ec2:*",
          "elasticloadbalancing:*",
          "secretsmanager:*",
          "eks:*"
        ],
        "Effect" : "Allow",
        "Resource" : "*"
      },
      {
        "Action" : [
          "sts:AssumeRole"
        ],
        "Effect" : "Allow",
        "Resource" : "*"
      }
    ]
  })
}

output "role_arn" {
  value = module.crossplane-aws-provider.controlplane_role_arn
}
