1. Get the application URL by running these commands: {{- if contains "NodePort" .Values.service.type }} export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "open-meteo-service.fullname" . }}) export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") echo http://$NODE_IP:$NODE_PORT/docs {{- else if contains "LoadBalancer" .Values.service.type }} export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "open-meteo-service.fullname" . }} -o jsonpath="{.status.loadBalancer.ingress[0].ip}") echo http://$SERVICE_IP:{{ .Values.service.port }}/docs {{- else }} kubectl port-forward --namespace {{ .Release.Namespace }} svc/{{ include "open-meteo-service.fullname" . }} 8080:{{ .Values.service.port }} echo http://127.0.0.1:8080/docs {{- end }} 2. Prometheus (if enabled): kubectl port-forward --namespace {{ .Release.Namespace }} svc/{{ include "open-meteo-service.prometheusFullname" . }} 9090:{{ .Values.prometheus.service.port }} echo http://127.0.0.1:9090 3. Grafana (if enabled): kubectl port-forward --namespace {{ .Release.Namespace }} svc/{{ include "open-meteo-service.grafanaFullname" . }} 3000:{{ .Values.grafana.service.port }} echo http://127.0.0.1:3000 ({{ .Values.grafana.adminUser }}/{{ .Values.grafana.adminPassword }})