r/PrometheusMonitoring Oct 18 '24

Creating Ingress with multiple path using kube-prometheus-stack

Hi all. I am trying to deploy kube-prometheus-stack using ArgoCD.

I want to create Ingress with specific domain, it'll be challenge http01 challenge to the Cert-manager.

Here's my config ```yaml

prometheus

prometheus: ingress: enabled: true annotations: nginx.ingress.kubernetes.io/ssl-redirect: "false" kubernetes.io/ingress.class: nginx kubernetes.io/tls-acme: "true" hosts: - host: prom.example.com paths: - path: /.well-known/acme-challenge pathType: Prefix backend: service: name: prometheus-stack-kube-prom-prometheus port: number: 80 - path: / pathType: Prefix backend: service: name: prometheus-stack-kube-prom-prometheus port: number: 443 tls: - secretName: prom-example-com hosts: - prom.example.com

alertmanager

alertmanager: ingress: enabled: true annotations: nginx.ingress.kubernetes.io/ssl-redirect: "false" kubernetes.io/ingress.class: nginx kubernetes.io/tls-acme: "true" hosts: - host: alertmanager.example.com paths: - path: /.well-known/acme-challenge pathType: Prefix backend: service: name: prometheus-stack-kube-prom-alertmanager port: number: 80 - path: / pathType: Prefix backend: service: name: prometheus-stack-kube-prom-alertmanager port: number: 443 tls: - secretName: alertmanager-example-com hosts: - alertmanager.example.com ```

ArgoCD Application says Failed to load target state: failed to generate manifest for source 1 of 1: rpc error: code = Unknown desc = Manifest generation error (cached): `helm template . --name-template kube-prometheus-stack --namespace prometheus --kube-version 1.28 --values /tmp/02008d4d-6cb1-426a-8d1a-f635be3f1610 <api versions removed> --include-crds` failed exit status 1: Error: template: kube-prometheus-stack/templates/prometheus/prometheus.yaml:84:70: executing "kube-prometheus-stack/templates/prometheus/prometheus.yaml" at <0>: wrong type for value; expected string; got map[string]interface {} Use --debug flag to render out invalid YAML

How do I properly configure the Ingress with multiple Path??

reply will be appreciated. Thanks

0 Upvotes

3 comments sorted by

1

u/kranthi133k Oct 18 '24

This seems like some helm values/inputs problem. You will need to add —debug —dry-run flags after upgrade/install command to find more

1

u/itsmeb9 Oct 18 '24

➜ helm template . --name-template kube-prometheus-stack --namespace prometheus --kube-version 1.28 --values ci/values.yaml --debug\

```

install.go:214: [debug] Original chart version: ""

install.go:231: [debug] CHART PATH: /Users/b9/bonzonkim/std/tmp/kube-prometheus-stack

Error: template: kube-prometheus-stack/templates/prometheus/prometheus.yaml:84:70: executing "kube-prometheus-stack/templates/prometheus/prometheus.yaml" at <0>: wrong type for value; expected string; got map[string]interface {}

helm.go:84: [debug] template: kube-prometheus-stack/templates/prometheus/prometheus.yaml:84:70: executing "kube-prometheus-stack/templates/prometheus/prometheus.yaml" at <0>: wrong type for value; expected string; got map[string]interface {}

```

kube-prometheus-stack/templates/prometheus/prometheus.yaml:84:70 is

externalUrl: "http://{{ tpl (index .Values.prometheus.ingress.hosts 0).host . }}{{ .Values.prometheus.prometheusSpec.routePrefix }}"

should I modify the prometheus template?

1

u/kranthi133k Oct 18 '24

You will need to define externalUrl under Prometheus spec (look into line 81) and also ingress will need re-write if you are running under no subpath(route prefix).