resource "aws_eks_cluster" "digsys-p3-eks" {
  #checkov:skip=CKV_AWS_58: Ensure EKS Cluster has Secrets Encryption Enabled
  name                      = var.cluster_name
  version                   = var.cluster_version
  role_arn                  = var.eks_cluster_role_arn
  enabled_cluster_log_types = var.enabled_cluster_log_types
  encryption_config {
    resources = var.encryption_config_resources
    provider {
      key_arn = var.encryption_config_provider_key_arn
    }
  }
  vpc_config {
    endpoint_private_access = var.vpc_config_endpoint_private_access
    endpoint_public_access  = var.vpc_config_endpoint_public_access
    security_group_ids = [
      aws_security_group.DIGSYS-P3-EKS-CLUSTER-SG.id
    ]
    subnet_ids = [aws_subnet.DIGSYS-P3-XAPP-1A.id, aws_subnet.DIGSYS-P3-XAPP-1B.id]
  }
  tags = merge(var.eks_tags, { Name = "digsys-p3-eks" })
}

data "aws_eks_cluster" "digsys-p3-eks" {
  name       = "digsys-p3-eks"
  depends_on = [aws_eks_cluster.digsys-p3-eks]
}

data "aws_eks_cluster" "digsys-eom-eks" {
  name = aws_eks_cluster.digsys-p3-eks.name
}

data "aws_eks_cluster_auth" "digsys-p3-eks" {
  name       = "digsys-p3-eks"
  depends_on = [aws_eks_cluster.digsys-p3-eks]
}

data "tls_certificate" "digsys-p3-eks" {
  url = data.aws_eks_cluster.digsys-p3-eks.identity[0].oidc[0].issuer
}

data "aws_eks_cluster_auth" "digsys-p3-eks-token" {
  name = "digsys-p3-eks"
}

resource "kubernetes_namespace" "dra-kafka-connect" {
  metadata {
    name = "dra-kafka-connect"
  }
}

resource "kubernetes_namespace" "prod-drd" {
  metadata {
    name = "prod-drd"
    labels = {
      "environment"            = "prod"
      "name"                   = "prod-drd"
      "tags.datadoghq.com/env" = "prod"
    }
  }
}

resource "kubernetes_namespace" "prod-oms" {
  metadata {
    name = "prod-oms"
  }
}

resource "kubernetes_namespace" "prod-oms-asset-ingest" {
  metadata {
    name = "prod-oms-asset-ingest"
    labels = {
      "tags.datadoghq.com/env"     = "prod"
      "tags.datadoghq.com/service" = "oms-asset-ingest"
      "environment"                = "prod"
      "name"                       = "prod-oms-asset-ingest"
    }
  }
}

resource "kubernetes_namespace" "datadog" {
  metadata {
    name = "datadog"
  }
}

resource "kubernetes_namespace" "midict-prod" {
  metadata {
    name = "midict-prod"
  }
}
