Created
November 13, 2025 06:18
-
-
Save koorukuroo/0b6c571abb4d96ac804f32f7bac6fa42 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # helm.tf | |
| # Helm provider 설정 및 helm_release 리소스 정의 | |
| provider "helm" { | |
| kubernetes { | |
| config_path = "~/.kube/config" | |
| } | |
| } | |
| # Prometheus Stack Helm Release | |
| resource "helm_release" "prometheus" { | |
| name = "prometheus" | |
| repository = "https://prometheus-community.github.io/helm-charts" | |
| chart = "kube-prometheus-stack" | |
| namespace = "monitoring" | |
| create_namespace = true | |
| set { | |
| name = "grafana.adminPassword" | |
| value = "admin123" | |
| } | |
| # Grafana 서비스 타입 설정 (선택사항) | |
| set { | |
| name = "grafana.service.type" | |
| value = "ClusterIP" | |
| } | |
| # Prometheus 리소스 제한 설정 (선택사항) | |
| set { | |
| name = "prometheus.prometheusSpec.resources.requests.memory" | |
| value = "512Mi" | |
| } | |
| set { | |
| name = "prometheus.prometheusSpec.resources.limits.memory" | |
| value = "2Gi" | |
| } | |
| } | |
| # FastAPI Helm Release (기존 my-fastapi-chart 사용) | |
| resource "helm_release" "fastapi" { | |
| name = "my-fastapi-terraform" | |
| chart = "../helm-charts/my-fastapi-chart" | |
| namespace = "apps" | |
| create_namespace = true | |
| # values.yaml 오버라이드 | |
| set { | |
| name = "replicaCount" | |
| value = "3" | |
| } | |
| set { | |
| name = "image.tag" | |
| value = "python3.11-slim" | |
| } | |
| set { | |
| name = "config.greeting" | |
| value = "Hello from Terraform Helm!" | |
| } | |
| set { | |
| name = "config.environment" | |
| value = "terraform" | |
| } | |
| # 리소스 설정 | |
| set { | |
| name = "resources.requests.cpu" | |
| value = "100m" | |
| } | |
| set { | |
| name = "resources.requests.memory" | |
| value = "256Mi" | |
| } | |
| set { | |
| name = "resources.limits.cpu" | |
| value = "500m" | |
| } | |
| set { | |
| name = "resources.limits.memory" | |
| value = "512Mi" | |
| } | |
| # Ingress 설정 | |
| set { | |
| name = "ingress.enabled" | |
| value = "true" | |
| } | |
| set { | |
| name = "ingress.host" | |
| value = "fastapi-terraform.local" | |
| } | |
| # HPA 활성화 (선택사항) | |
| set { | |
| name = "autoscaling.enabled" | |
| value = "false" | |
| } | |
| depends_on = [helm_release.prometheus] | |
| } | |
| # Output으로 배포된 정보 확인 | |
| output "prometheus_status" { | |
| value = { | |
| name = helm_release.prometheus.name | |
| namespace = helm_release.prometheus.namespace | |
| chart = helm_release.prometheus.chart | |
| version = helm_release.prometheus.version | |
| } | |
| description = "Prometheus Helm Release 정보" | |
| } | |
| output "fastapi_status" { | |
| value = { | |
| name = helm_release.fastapi.name | |
| namespace = helm_release.fastapi.namespace | |
| chart = helm_release.fastapi.chart | |
| } | |
| description = "FastAPI Helm Release 정보" | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment