Files
alexandre.pires d069fe3585 feat(cert-checker): add Kubernetes resources for certificate checking functionality
- Implemented a new module for cert-checker with Kubernetes resources including ServiceAccount, Role, RoleBinding, ConfigMap, and CronJob.
- Added Python script to check certificate expiry and restart deployments if necessary.
- Configured environment variables for deployment name, namespace, and service details.
- Included requirements for the Python environment.

feat(devolo-exporter): introduce Devolo exporter for Prometheus metrics

- Created a new module for Devolo exporter with Kubernetes resources including ServiceAccount, ConfigMap, Deployment, and Service.
- Developed Python scripts to scrape metrics from Devolo devices and expose them to Prometheus.
- Configured environment variables for Devolo device IP, model, and ports.
- Added requirements for the Python environment.
2025-10-13 22:35:35 +02:00

64 lines
1.4 KiB
Terraform

resource "kubernetes_namespace" "mail" {
metadata {
annotations = {
name = "mail"
}
labels = {
name = "mail"
}
name = "mail"
}
}
resource "kubernetes_secret" "relay_mail_credentials" {
metadata {
name = "relay-mail-credentials"
namespace = kubernetes_namespace.mail.metadata[0].name
}
data = {
username = var.relay_smtp_username
password = var.relay_smtp_password
}
type = "Opaque"
}
resource "kubernetes_service_account" "mail_app" {
metadata {
name = "mail-app-sa"
namespace = kubernetes_namespace.mail.metadata[0].name
}
automount_service_account_token = false
}
resource "kubernetes_manifest" "mail_certificate" {
manifest = {
apiVersion = "cert-manager.io/v1"
kind = "Certificate"
metadata = {
name = "mail-cert"
namespace = kubernetes_namespace.mail.metadata[0].name
}
spec = {
secretName = "mail-tls"
issuerRef = {
name = "letsencrypt-prod"
kind = "ClusterIssuer"
}
commonName = "imap.${var.primary_domain}"
dnsNames = flatten([for account in var.email_accounts : [
"imap.${account.domain}",
"smtp.${account.domain}"
]])
}
}
}
module "cert_checker" {
source = "../../utils/cert-checker"
namespace = kubernetes_namespace.mail.metadata[0].name
persistent_folder = local.mail_path
deployments = local.deployments
}