Split base from modules

- Add infra as a example
- Introduces a dependency issue between adot operator and workload collector
This commit is contained in:
Rodrigue Koffi
2022-08-09 23:24:01 +02:00
parent 5b5d5e7dd1
commit 6dca51b135
16 changed files with 139 additions and 147 deletions
+6
View File
@@ -0,0 +1,6 @@
locals {
name = "adot"
eks_addon_role_name = "eks:addon-manager"
eks_addon_clusterrole_name = "eks:addon-manager-otel"
addon_namespace = "opentelemetry-operator-system"
}
@@ -7,11 +7,10 @@ module "cert_manager" {
}
resource "kubernetes_namespace_v1" "adot" {
count = local.create_namespace ? 1 : 0
metadata {
# If using EKS addon, namespace must be "opentelemetry-operator-system"
name = var.enable_amazon_eks_adot ? local.addon_namespace : try(var.helm_config.namespace, local.addon_namespace)
name = local.addon_namespace
labels = {
# Prerequisite for EKS addon
@@ -21,19 +20,15 @@ resource "kubernetes_namespace_v1" "adot" {
}
data "aws_eks_addon_version" "this" {
count = var.enable_amazon_eks_adot ? 1 : 0
addon_name = local.name
kubernetes_version = try(var.addon_config.kubernetes_version, var.kubernetes_version)
most_recent = try(var.addon_config.most_recent, true)
}
resource "aws_eks_addon" "adot" {
count = var.enable_amazon_eks_adot ? 1 : 0
cluster_name = var.addon_context.eks_cluster_id
addon_name = local.name
addon_version = try(var.addon_config.addon_version, data.aws_eks_addon_version.this[0].version)
addon_version = try(var.addon_config.addon_version, data.aws_eks_addon_version.this.version)
resolve_conflicts = try(var.addon_config.resolve_conflicts, "OVERWRITE")
service_account_role_arn = try(var.addon_config.service_account_role_arn, null)
preserve = try(var.addon_config.preserve, true)
@@ -43,8 +38,8 @@ resource "aws_eks_addon" "adot" {
try(var.addon_config.tags, {}),
# implicit dependency with roles
{
RoleVersion = try(kubernetes_role_v1.adot[0].metadata[0].resource_version, ""),
ClusterRoleVersion = try(kubernetes_cluster_role_v1.adot[0].metadata[0].resource_version, "")
RoleVersion = try(kubernetes_role_v1.adot.metadata[0].resource_version, ""),
ClusterRoleVersion = try(kubernetes_cluster_role_v1.adot.metadata[0].resource_version, "")
}
)
@@ -52,11 +47,10 @@ resource "aws_eks_addon" "adot" {
}
resource "kubernetes_role_v1" "adot" {
count = var.enable_amazon_eks_adot ? 1 : 0
metadata {
name = local.eks_addon_role_name
namespace = kubernetes_namespace_v1.adot[0].metadata[0].name
namespace = kubernetes_namespace_v1.adot.metadata[0].name
}
rule {
@@ -118,11 +112,10 @@ resource "kubernetes_role_v1" "adot" {
}
resource "kubernetes_role_binding_v1" "adot" {
count = var.enable_amazon_eks_adot ? 1 : 0
metadata {
name = local.eks_addon_role_name
namespace = kubernetes_namespace_v1.adot[0].metadata[0].name
namespace = kubernetes_namespace_v1.adot.metadata[0].name
}
subject {
@@ -138,7 +131,6 @@ resource "kubernetes_role_binding_v1" "adot" {
}
resource "kubernetes_cluster_role_v1" "adot" {
count = var.enable_amazon_eks_adot ? 1 : 0
metadata {
name = local.eks_addon_clusterrole_name
@@ -153,7 +145,7 @@ resource "kubernetes_cluster_role_v1" "adot" {
rule {
api_groups = [""]
resources = ["namespaces"]
resource_names = [kubernetes_namespace_v1.adot[0].metadata[0].name]
resource_names = [kubernetes_namespace_v1.adot.metadata[0].name]
verbs = ["create", "delete", "get", "list", "patch", "update", "watch"]
}
rule {
@@ -266,7 +258,6 @@ resource "kubernetes_cluster_role_v1" "adot" {
}
resource "kubernetes_cluster_role_binding_v1" "adot" {
count = var.enable_amazon_eks_adot ? 1 : 0
metadata {
name = local.eks_addon_clusterrole_name
@@ -283,15 +274,3 @@ resource "kubernetes_cluster_role_binding_v1" "adot" {
}
}
module "helm_addon" {
source = "github.com/aws-ia/terraform-aws-eks-blueprints/modules/kubernetes-addons/helm-addon"
count = var.enable_opentelemetry_operator ? 1 : 0
helm_config = local.helm_config
irsa_config = null
addon_context = var.addon_context
depends_on = [module.cert_manager]
}
@@ -34,15 +34,3 @@ variable "addon_config" {
type = any
default = {}
}
variable "enable_amazon_eks_adot" {
description = "Enable Amazon EKS ADOT add-on"
type = bool
default = true
}
variable "enable_opentelemetry_operator" {
description = "Enable opentelemetry operator addon"
type = bool
default = false
}
-25
View File
@@ -1,25 +0,0 @@
locals {
name = "adot"
eks_addon_role_name = "eks:addon-manager"
eks_addon_clusterrole_name = "eks:addon-manager-otel"
addon_namespace = "opentelemetry-operator-system"
create_namespace = var.enable_opentelemetry_operator ? true : try(var.helm_config.create_namespace, true)
namespace = local.create_namespace ? kubernetes_namespace_v1.adot[0].metadata[0].name : try(var.helm_config.namespace, local.addon_namespace)
default_helm_config = {
name = "opentelemetry"
repository = "https://open-telemetry.github.io/opentelemetry-helm-charts"
chart = "opentelemetry-operator"
version = "0.10.0"
namespace = local.namespace
timeout = "1200"
description = "ADOT Operator helm chart"
values = []
}
helm_config = merge(
local.default_helm_config,
var.helm_config
)
}