Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 0 additions & 42 deletions k8s-argocd/applications/prod/platform/monitoring-httproute.yaml

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{{- if .Values.monitoring.grafana.enabled }}
# Grafana HTTPRoute
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: grafana
namespace: {{ .Values.monitoring.namespace }}
spec:
parentRefs:
- name: {{ .Values.gateway.name }}
namespace: {{ .Values.gateway.namespace }}

# 도메인 명
hostnames:
- {{ .Values.monitoring.grafana.domain | quote }}

# 라우팅 규칙
rules:
- matches:
- path:
type: PathPrefix
value: /
backendRefs:
- name: {{ .Values.monitoring.grafana.serviceName }}
port: {{ .Values.monitoring.grafana.servicePort }}
{{- end }}
9 changes: 9 additions & 0 deletions k8s-helm/platform-chart/values-prod.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,15 @@ certificates:
- grafana.pinhouse.co.kr
enabled: true

# 모니터링 (Grafana HTTPRoute)
monitoring:
namespace: monitoring
grafana:
enabled: true
domain: grafana.pinhouse.co.kr
serviceName: pinhouse-monitoring-core-grafana
servicePort: 80
Comment on lines +149 to +154
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "[1] monitoring-core 릴리스에서 Grafana 서비스명 단서 검색"
rg -n --iglob '*.yaml' 'monitoring-core-grafana|fullnameOverride|nameOverride|service' k8s-helm/releases/monitoring-core

echo "[2] platform-chart 템플릿이 serviceName 값을 backendRef에 연결하는지 확인"
rg -n --iglob '*.yaml' '\.Values\.monitoring\.grafana\.serviceName|backendRefs|name:|port:' k8s-helm/platform-chart/templates

Repository: PinHouse/PinHouse_CLOUD

Length of output: 10274


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "[1] monitoring-core values.yaml에서 Grafana 설정 확인"
cat -n k8s-helm/releases/monitoring-core/values.yaml | grep -A 20 "^[[:space:]]*32"

echo "[2] monitoring-core templates에서 Grafana Service 정의 찾기"
fd -t f . k8s-helm/releases/monitoring-core/templates -name "*.yaml" | head -20

echo "[3] monitoring-core chart 구조 확인"
ls -la k8s-helm/releases/monitoring-core/

echo "[4] monitoring-core의 Chart.yaml 확인"
cat k8s-helm/releases/monitoring-core/Chart.yaml

Repository: PinHouse/PinHouse_CLOUD

Length of output: 998


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "[1] monitoring-core Chart 정보"
find k8s-helm/releases/monitoring-core -name "Chart.yaml" -o -name "Chart.yml" | xargs cat

echo "[2] monitoring-core values.yaml 전체 구조 확인 (Grafana 섹션)"
rg -A 5 "grafana:" k8s-helm/releases/monitoring-core/values.yaml

echo "[3] monitoring-core deployment 시 사용하는 release name 찾기"
rg -n "monitoring-core" k8s-helm/ --iglob "*.yaml" --iglob "*.yml" | grep -E "(release|name:|helm)" | head -20

echo "[4] platform-chart의 monitoring namespace 설정 확인"
cat -n k8s-helm/platform-chart/values-prod.yaml | sed -n '145,160p'

Repository: PinHouse/PinHouse_CLOUD

Length of output: 1574


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "[1] monitoring-core values.yaml에서 fullnameOverride/nameOverride 검색"
rg -n "fullnameOverride|nameOverride" k8s-helm/releases/monitoring-core/

echo "[2] monitoring-core의 kube-prometheus-stack 설정 확인"
rg -B 2 -A 15 "kube-prometheus-stack:" k8s-helm/releases/monitoring-core/values.yaml | head -50

echo "[3] monitoring-core values-prod-gitops.yaml에서 Grafana 관련 설정"
rg -B 2 -A 10 "grafana:" k8s-helm/releases/monitoring-core/values-prod-gitops.yaml

Repository: PinHouse/PinHouse_CLOUD

Length of output: 133


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "[1] monitoring-core의 전체 values.yaml 내용 (처음 100줄)"
head -100 k8s-helm/releases/monitoring-core/values.yaml

echo "[2] helmfile 또는 ArgoCD 설정에서 monitoring-core release name 확인"
rg -n "monitoring-core" k8s-helm/ -t yaml | grep -E "(release:|name:|chart:)" | head -15

echo "[3] monitoring-core/values-prod-gitops.yaml 전체 확인"
cat k8s-helm/releases/monitoring-core/values-prod-gitops.yaml | head -80

Repository: PinHouse/PinHouse_CLOUD

Length of output: 4519


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "[1] 프로젝트 루트 구조 확인"
ls -la k8s-helm/ | head -20

echo "[2] helmfile 또는 배포 설정 찾기"
find k8s-helm -name "helmfile*" -o -name "kustomization.yaml" -o -name "*.tf" | head -10

echo "[3] monitoring-core 배포 관련 설정"
rg -n "release:" k8s-helm/ --iglob "*.yaml" | grep -i monitoring | head -10

echo "[4] kube-prometheus-stack에서 grafana service 이름이 어떻게 결정되는지 확인"
rg -n "kube-prome|fullName" k8s-helm/releases/monitoring-core/ --iglob "*.yaml"

Repository: PinHouse/PinHouse_CLOUD

Length of output: 436


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "[1] monitoring-alloy values에서 Prometheus 접근 방식 확인"
rg -B 3 -A 3 "monitoring-core-kube-prome" k8s-helm/releases/monitoring-alloy/values.yaml

echo "[2] monitoring-core 배포 시 릴리스명 파악 (argocd app 또는 deploy script)"
find . -name "*.yaml" -o -name "*.yml" -o -name "*.sh" | xargs grep -l "monitoring-core" 2>/dev/null | head -10

echo "[3] kube-prometheus-stack 기본 서비스명 패턴 확인"
rg -n "service:" k8s-helm/releases/monitoring-core/values.yaml -A 5 | head -30

Repository: PinHouse/PinHouse_CLOUD

Length of output: 736


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "[1] ArgoCD monitoring-core app 정의 확인"
cat k8s-argocd/applications/prod/monitoring/monitoring-core.yaml

echo "[2] kube-prometheus-stack 섹션에서 fullnameOverride 최종 확인"
rg -n "fullnameOverride|grafana:" k8s-helm/releases/monitoring-core/values.yaml -A 3

Repository: PinHouse/PinHouse_CLOUD

Length of output: 1309


serviceName 값이 실제 Grafana Service 이름과 일치하지 않습니다. HTTPRoute 백엔드가 실패하게 됩니다.

현재 설정:

  • ArgoCD 배포에서 릴리스명: monitoring-core
  • kube-prometheus-stack 네이밍 규칙: {{ releaseName }}-kube-prome-{{ component }}
  • 따라서 실제 Grafana Service 이름: monitoring-core-kube-prome-grafana

그런데 platform-chart의 values 파일에는:

  • serviceName: pinhouse-monitoring-core-grafana

이 값으로 인해 HTTPRoute가 존재하지 않는 백엔드 서비스를 찾게 되어 런타임에 503 에러가 발생합니다.

수정 필요:
serviceNamemonitoring-core-kube-prome-grafana 로 변경하거나, monitoring-core 릴리스의 fullnameOverride를 pinhouse-monitoring-core 로 설정하세요.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@k8s-helm/platform-chart/values-prod.yaml` around lines 149 - 154, The Grafana
backend service referenced by grafana.serviceName is incorrect and will break
HTTPRoute; update the grafana.serviceName value from
"pinhouse-monitoring-core-grafana" to the actual service name
"monitoring-core-kube-prome-grafana" (or alternatively set the monitoring-core
release's Helm fullnameOverride to "pinhouse-monitoring-core") so the service
referenced by grafana.serviceName matches the kube-prometheus-stack naming
convention.


# GCP Secret Manager 기반 시크릿 적용
externalSecrets:
enabled: true
Expand Down
16 changes: 15 additions & 1 deletion k8s-helm/platform-chart/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -68,10 +68,15 @@ gateway:
# 특수 리스너 (ArgoCD 등)
listeners:
argo:
enabled: true
enabled: false
domain: nonprod.argo.your-domain.com # 🔒 실제 도메인으로 변경
tlsSecretName: your-tls-argo

grafana:
enabled: false
domain: grafana.your-domain.com # 🔒 실제 도메인으로 변경
tlsSecretName: your-tls-grafana

# 접근 제어 (Access Control)
accessControl:
enabled: false
Expand Down Expand Up @@ -112,3 +117,12 @@ externalSecrets:

# ExternalSecret 리소스 목록
secrets: []

# 모니터링 (Grafana HTTPRoute)
monitoring:
namespace: monitoring
grafana:
enabled: false
domain: grafana.your-domain.com # 🔒 실제 도메인으로 변경
serviceName: pinhouse-monitoring-core-grafana
servicePort: 80
27 changes: 0 additions & 27 deletions k8s-kustomize/platform/monitoring/httproute.yaml

This file was deleted.

9 changes: 0 additions & 9 deletions k8s-kustomize/platform/monitoring/kustomization.yaml

This file was deleted.