# monitoring-values.yaml prometheus: prometheusSpec: # Forces Prometheus to find ServiceMonitors cluster-wide (like blocky in kube-system) serviceMonitorSelectorNilUsesHelmValues: false ingress: enabled: true ingressClassName: nginx annotations: cert-manager.io/cluster-issuer: "letsencrypt-production" # THE 502 FIX: Instructs NGINX to bridge to the unencrypted pod port safely nginx.ingress.kubernetes.io/backend-protocol: "HTTP" hosts: - prometheus.needlestack.boo paths: - / pathType: Prefix tls: - secretName: prometheus-tls-secret hosts: - prometheus.needlestack.boo grafana: ingress: enabled: true ingressClassName: nginx annotations: cert-manager.io/cluster-issuer: "letsencrypt-production" # THE 502 FIX: Instructs NGINX to bridge to the unencrypted pod port safely nginx.ingress.kubernetes.io/backend-protocol: "HTTP" hosts: - grafana.needlestack.boo # THE SCHEMA FIX: Wrapped as an explicit array object to match the chart constraints paths: - / pathType: Prefix tls: - secretName: grafana-tls-secret hosts: - grafana.needlestack.boo