122 lines
2.8 KiB
Terraform
122 lines
2.8 KiB
Terraform
|
|
|
||
|
|
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"
|
||
|
|
}
|
||
|
|
}
|