Add auth exporter module: implement Kubernetes resources, exporter logic, and testing
This commit is contained in:
@@ -0,0 +1,121 @@
|
||||
|
||||
resource "kubernetes_service_account" "auth_exporter" {
|
||||
metadata {
|
||||
name = "auth-exporter-sa"
|
||||
namespace = var.namespace
|
||||
}
|
||||
}
|
||||
|
||||
resource "kubernetes_config_map" "auth_exporter" {
|
||||
metadata {
|
||||
name = "auth-exporter-config"
|
||||
namespace = var.namespace
|
||||
}
|
||||
data = {
|
||||
"exporter.py" = local.exporter_script
|
||||
"requirements.txt" = local.requirements_txt
|
||||
}
|
||||
}
|
||||
|
||||
resource "kubernetes_deployment" "auth_exporter" {
|
||||
metadata {
|
||||
name = "auth-exporter"
|
||||
namespace = var.namespace
|
||||
labels = {
|
||||
app = "auth-exporter"
|
||||
}
|
||||
}
|
||||
spec {
|
||||
replicas = 1
|
||||
selector {
|
||||
match_labels = {
|
||||
app = "auth-exporter"
|
||||
}
|
||||
}
|
||||
template {
|
||||
metadata {
|
||||
labels = {
|
||||
app = "auth-exporter"
|
||||
}
|
||||
annotations = {
|
||||
"checksum/exporter" = local.exporter_checksum
|
||||
"checksum/requirements" = local.requirements_checksum
|
||||
}
|
||||
}
|
||||
spec {
|
||||
service_account_name = kubernetes_service_account.auth_exporter.metadata[0].name
|
||||
automount_service_account_token = false
|
||||
container {
|
||||
name = "auth-exporter"
|
||||
image = var.tag
|
||||
command = ["sh", "-c", join(" && ", local.commands)]
|
||||
port {
|
||||
container_port = 9100
|
||||
name = "http-metrics"
|
||||
}
|
||||
volume_mount {
|
||||
name = "exporter-volume"
|
||||
mount_path = "/exporter"
|
||||
read_only = true
|
||||
}
|
||||
volume_mount {
|
||||
name = "workdir"
|
||||
mount_path = "/tmp"
|
||||
}
|
||||
volume_mount {
|
||||
name = "host-logs"
|
||||
mount_path = "/var/log"
|
||||
read_only = true
|
||||
}
|
||||
security_context {
|
||||
run_as_user = 0
|
||||
run_as_group = 0
|
||||
read_only_root_filesystem = true
|
||||
}
|
||||
}
|
||||
volume {
|
||||
name = "exporter-volume"
|
||||
config_map {
|
||||
name = kubernetes_config_map.auth_exporter.metadata[0].name
|
||||
}
|
||||
}
|
||||
volume {
|
||||
name = "workdir"
|
||||
host_path {
|
||||
path = local.workdir
|
||||
type = "DirectoryOrCreate"
|
||||
}
|
||||
}
|
||||
volume {
|
||||
name = "host-logs"
|
||||
host_path {
|
||||
path = "/var/log"
|
||||
type = "Directory"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
resource "kubernetes_service" "auth_exporter" {
|
||||
metadata {
|
||||
name = "auth-exporter"
|
||||
namespace = var.namespace
|
||||
labels = {
|
||||
app = "auth-exporter"
|
||||
}
|
||||
}
|
||||
spec {
|
||||
selector = {
|
||||
app = "auth-exporter"
|
||||
}
|
||||
port {
|
||||
port = 9100
|
||||
target_port = 9100
|
||||
protocol = "TCP"
|
||||
name = "http-metrics"
|
||||
}
|
||||
type = "ClusterIP"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user