Argocd

terraform {
  required_version = "~> 1.10"

  backend "s3" {
    bucket               = "tf-state-911453050078"
    key                  = "modules/argocd/examples/simple.tfstate"
    workspace_key_prefix = "terraform-aws-kubernetes-platform"
    region               = "eu-central-1"
    use_lockfile         = true
  }

  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 6.9"
    }
    helm = {
      source  = "hashicorp/helm"
      version = "~> 3.0"
    }
    kubectl = {
      source  = "alekc/kubectl"
      version = "~> 2.0"
    }
    kubernetes = {
      source  = "hashicorp/kubernetes"
      version = "~> 2.27"
    }
  }
}

provider "aws" {
  region = local.region
}

provider "kubernetes" {
  host                   = module.k8s_platform.eks.cluster_endpoint
  cluster_ca_certificate = base64decode(module.k8s_platform.eks.cluster_certificate_authority_data)
  exec {
    api_version = "client.authentication.k8s.io/v1beta1"
    command     = "aws"
    args        = ["eks", "get-token", "--cluster-name", module.k8s_platform.eks.cluster_name]
  }
}

provider "helm" {
  kubernetes = {
    host                   = module.k8s_platform.eks.cluster_endpoint
    cluster_ca_certificate = base64decode(module.k8s_platform.eks.cluster_certificate_authority_data)
    exec = {
      api_version = "client.authentication.k8s.io/v1beta1"
      command     = "aws"
      args        = ["eks", "get-token", "--cluster-name", module.k8s_platform.eks.cluster_name]
    }
  }
}

locals {
  region = "eu-central-1"
}

module "k8s_platform" {
  source = "./../../.."

  name = "ex-argocd"

  cluster_admins = {
    cicd = {
      role_name = "cicd-iac"
    }
  }

  tags = {
    Environment = "sandbox"
    GithubRepo  = "terraform-aws-kubernetes-platform"
    GithubOrg   = "tx-pts-dai"
  }

  vpc = {
    vpc_id   = "vpc-12345678"
    vpc_cidr = "10.0.0.0/16"
    private_subnets = [
      "subnet-12345678",
      "subnet-23456789",
    ]
    intra_subnets = [
      "subnet-34567890",
      "subnet-45678901",
    ]
  }
}

module "hub" {
  source = "./.."

  enable_hub = true

  cluster_name = module.k8s_platform.eks.cluster_name
}

module "spoke" {
  source = "./.."

  enable_spoke = true

  cluster_name = module.k8s_platform.eks.cluster_name

  hub_iam_role_arn = module.hub.hub_iam_role_arn

  hub_iam_role_arns = ["arn:aws:iam::123456789012:role/another-role"]
}