Files
gitops-ack-kro-argocd/terraform/hub/locals.tf
T

96 lines
3.2 KiB
Terraform

locals {
cluster_info = module.eks
vpc_cidr = "10.0.0.0/16"
azs = slice(data.aws_availability_zones.available.names, 0, 2)
enable_automode = var.enable_automode
use_ack = var.use_ack
enable_efs = var.enable_efs
name = var.cluster_name
environment = var.environment
fleet_member = "control-plane"
tenant = var.tenant
region = data.aws_region.current.id
cluster_version = var.kubernetes_version
argocd_namespace = "argocd"
gitops_addons_repo_url = "https://github.com/${var.git_org_name}/${var.gitops_addons_repo_name}.git"
gitops_fleet_repo_url = "https://github.com/${var.git_org_name}/${var.gitops_fleet_repo_name}.git"
external_secrets = {
namespace = "external-secrets"
service_account = "external-secrets-sa"
}
aws_addons = {
enable_external_secrets = try(var.addons.enable_external_secrets, false)
enable_kro_eks_rgs = try(var.addons.enable_kro_eks_rgs, false)
enable_multi_acct = try(var.addons.enable_multi_acct, false)
}
oss_addons = {
}
addons = merge(
local.aws_addons,
local.oss_addons,
{ tenant = local.tenant },
{ fleet_member = local.fleet_member },
{ kubernetes_version = local.cluster_version },
{ aws_cluster_name = local.cluster_info.cluster_name },
)
addons_metadata = merge(
{
aws_cluster_name = local.cluster_info.cluster_name
aws_region = local.region
aws_account_id = data.aws_caller_identity.current.account_id
aws_vpc_id = module.vpc.vpc_id
use_ack = local.use_ack
},
{
addons_repo_url = local.gitops_addons_repo_url
addons_repo_path = var.gitops_addons_repo_path
addons_repo_basepath = var.gitops_addons_repo_base_path
addons_repo_revision = var.gitops_addons_repo_revision
},
{
fleet_repo_url = local.gitops_fleet_repo_url
fleet_repo_path = var.gitops_fleet_repo_path
fleet_repo_basepath = var.gitops_fleet_repo_base_path
fleet_repo_revision = var.gitops_fleet_repo_revision
},
{
external_secrets_namespace = local.external_secrets.namespace
external_secrets_service_account = local.external_secrets.service_account
}
)
argocd_apps = {
applicationsets = file("${path.module}/bootstrap/applicationsets.yaml")
}
role_arns = []
# # Generate dynamic access entries for each admin rolelocals {
admin_access_entries = {
for role_arn in local.role_arns : role_arn => {
principal_arn = role_arn
policy_associations = {
admins = {
policy_arn = "arn:aws:eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy"
access_scope = {
type = "cluster"
}
}
}
}
}
# Merging dynamic entries with static entries if needed
access_entries = merge({}, local.admin_access_entries)
tags = {
Blueprint = local.name
GithubRepo = "github.com/gitops-bridge-dev/gitops-bridge"
}
}