Skip to content

Commit

Permalink
feat: add windows node exporter (#1326)
Browse files Browse the repository at this point in the history
  • Loading branch information
lemaitre-aneo authored Nov 6, 2024
2 parents f94bbf6 + c405527 commit 38d8fa4
Show file tree
Hide file tree
Showing 6 changed files with 55 additions and 2 deletions.
2 changes: 2 additions & 0 deletions infrastructure/quick-deploy/aws/ecr.tf
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ locals {
var.seq == null ? null : [var.seq.cli_image_name, var.seq.cli_image_tag],
var.grafana == null ? null : [var.grafana.image_name, var.grafana.image_tag],
var.node_exporter == null ? null : [var.node_exporter.image_name, var.node_exporter.image_tag],
var.windows_exporter == null ? null : [var.windows_exporter.image_name, var.windows_exporter.image_tag],
var.windows_exporter == null ? null : [var.windows_exporter.init_image_name, var.windows_exporter.init_image_tag],
var.partition_metrics_exporter == null ? null : [var.partition_metrics_exporter.image_name, var.partition_metrics_exporter.image_tag],
var.ingress == null ? null : [var.ingress.image, var.ingress.tag],
var.authentication == null ? null : [var.authentication.image, var.authentication.tag],
Expand Down
18 changes: 18 additions & 0 deletions infrastructure/quick-deploy/aws/monitoring.tf
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,24 @@ module "node_exporter" {
}
}

# windows exporter
module "windows_exporter" {
count = var.windows_exporter != null ? 1 : 0
source = "./generated/infra-modules/monitoring/onpremise/exporters/windows-exporter"
namespace = local.namespace
node_selector = var.windows_exporter.node_selector
docker_image = {
image = local.ecr_images["${var.windows_exporter.image_name}:${try(coalesce(var.windows_exporter.image_tag), "")}"].image
tag = local.ecr_images["${var.windows_exporter.image_name}:${try(coalesce(var.windows_exporter.image_tag), "")}"].tag
image_pull_secrets = var.windows_exporter.pull_secrets
}
init_docker_image = {
image = local.ecr_images["${var.windows_exporter.init_image_name}:${try(coalesce(var.windows_exporter.init_image_tag), "")}"].image
tag = local.ecr_images["${var.windows_exporter.init_image_name}:${try(coalesce(var.windows_exporter.init_image_tag), "")}"].tag
image_pull_secrets = var.windows_exporter.init_pull_secrets
}
}

# Metrics exporter
module "metrics_exporter" {
source = "./generated/infra-modules/monitoring/onpremise/exporters/metrics-exporter"
Expand Down
6 changes: 6 additions & 0 deletions infrastructure/quick-deploy/aws/parameters.tfvars
Original file line number Diff line number Diff line change
Expand Up @@ -359,6 +359,12 @@ node_exporter = {
node_selector = {}
}

windows_exporter = {
node_selector = {
"plateform" = "windows"
}
}

prometheus = {
node_selector = { service = "metrics" }
#persistent_volume = {
Expand Down
12 changes: 12 additions & 0 deletions infrastructure/quick-deploy/aws/providers.tf
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,18 @@ provider "aws" {
profile = var.profile
}

provider "kubectl" {
host = module.eks.cluster_endpoint
cluster_ca_certificate = base64decode(module.eks.cluster_certificate_authority_data)

exec {
api_version = "client.authentication.k8s.io/v1beta1"
command = "aws"
# This requires the awscli to be installed locally where Terraform is executed
args = ["eks", "get-token", "--cluster-name", module.eks.cluster_name, "--profile", var.profile]
}
}

provider "kubernetes" {
host = module.eks.cluster_endpoint
cluster_ca_certificate = base64decode(module.eks.cluster_certificate_authority_data)
Expand Down
13 changes: 13 additions & 0 deletions infrastructure/quick-deploy/aws/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -823,3 +823,16 @@ variable "static" {
default = {}
}

variable "windows_exporter" {
description = "Windows exporter configuration"
type = object({
image_name = optional(string, "ghcr.io/prometheus-community/windows-exporter")
image_tag = optional(string)
pull_secrets = optional(string, "")
init_image_name = optional(string, "mcr.microsoft.com/windows/nanoserver")
init_image_tag = optional(string)
init_pull_secrets = optional(string, "")
node_selector = optional(any, {})
})
default = null
}
6 changes: 4 additions & 2 deletions versions.tfvars.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"armonik_versions": {
"armonik": "2.20.0",
"infra": "0.5.0-pre-8-f5b8bd3",
"infra": "0.5.1-pre-1-84546ad",
"infra_plugins": "0.1.1",
"core": "0.24.3",
"api": "3.19.0",
Expand Down Expand Up @@ -73,7 +73,9 @@
"bitnami/rabbitmq": "3.12.14",
"ghcr.io/chaos-mesh/chaos-mesh": "v2.6.3",
"ghcr.io/chaos-mesh/chaos-daemon": "v2.6.3",
"ghcr.io/chaos-mesh/chaos-dashboard": "v2.6.3"
"ghcr.io/chaos-mesh/chaos-dashboard": "v2.6.3",
"ghcr.io/prometheus-community/windows-exporter": "0.29.2-ltsc2022",
"mcr.microsoft.com/windows/nanoserver": "ltsc2022"
},
"helm_charts" : {
"keda" : { "repository" : "https://kedacore.github.io/charts" , "version" : "2.9.3"},
Expand Down

0 comments on commit 38d8fa4

Please sign in to comment.