let appName = "nextdns-exporter"; nextdns-exporterImage = "ghcr.io/raylas/nextdns-exporter:0.5.3"; in { kubernetes.resources."monitoring.coreos.com"."v1".ServiceMonitor.nextdns-exporter = { metadata.namespace = "prometheus"; metadata.labels.app = appName; spec = { selector.matchLabels.app = appName; endpoints = [ { port = "metrics"; interval = "30s"; } { port = "ts-metrics"; interval = "30s"; } ]; }; }; kubernetes.resources.services.nextdns-exporter-metrics = { metadata.namespace = "prometheus"; metadata.labels.app = appName; spec = { selector.app = appName; ports.metrics = { port = 9948; targetPort = 9948; }; ports.ts-metrics = { port = 9949; targetPort = 9949; }; }; }; kubernetes.resources.deployments.nextdns-exporter = { metadata.namespace = "prometheus"; spec = { selector.matchLabels.app = appName; template = { metadata.labels.app = appName; spec = { containers = { nextdns-exporter = { image = nextdns-exporterImage; imagePullPolicy = "Always"; ports.metrics.containerPort = 9948; envFrom = [{secretRef.name = "nextdns-exporter";}]; }; nextdns-ts-exporter = { image = nextdns-exporterImage; imagePullPolicy = "Always"; ports.metrics.containerPort = 9949; env.METRICS_PORT.value = "9949"; envFrom = [{secretRef.name = "nextdns-ts-exporter";}]; }; }; }; }; }; }; }