d069fe3585
- 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.
64 lines
1.4 KiB
Terraform
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
|
|
}
|