module "iam-falco-sidekick" {
  count                = var.enable_falco ? 1 : 0
  source               = "../aws_modules/iam-falco-sidekick/controlplane"
  env                  = var.env
  logical_region_name  = var.logical_region_name
  controlplane_account = local.seed_account
  cluster_name         = local.eks.name
  eks_oidc             = trimprefix(local.eks.oidc_issuer_url, "https://")
}

module "falco" {
  count  = var.enable_falco ? 1 : 0
  source = "../../modules/app"

  kubeconfig_path       = module.kubeconfig.path
  workflow              = "deploy-falco.yaml"
  wait_workflow_success = true

  parameters = {
    env               = var.env
    logicalRegionName = var.logical_region_name
    cluster           = module.argocd_cluster.name
    region            = var.aws_region
    cloud             = "aws"
    auto_merge        = "true"
    additionalArgs = jsonencode({
      irsa_role_arn = module.iam-falco-sidekick[0].role_arn
    })
  }

  services = [
    {
      name      = "daemonset/falco"
      namespace = "falco"
      wait_for  = "daemonset-ready"
    }
  ]

  finalizer = {
    workflow = "destroy-region-application.yaml"
    parameters = {
      cloud             = "aws"
      env               = var.env
      logicalRegionName = var.logical_region_name
      cluster           = module.argocd_cluster.name
      application       = "falco"
      auto_merge        = "true"
    }
  }

  depends_on = [module.iam-falco-sidekick, module.dataplane-manager]
}
