Skip to content

Commit 514e765

Browse files
committed
fix terraform
1 parent 45e70bf commit 514e765

File tree

4 files changed

+136
-71
lines changed

4 files changed

+136
-71
lines changed

.gitignore

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,28 @@
11
k8s-security/secrets-management.yaml
2+
3+
# Terraform - State files (contain secrets and local metadata)
4+
terraform/terraform.tfstate
5+
terraform/terraform.tfstate.backup
6+
terraform/crash.log
7+
8+
# Terraform - Local provider cache
9+
terraform/.terraform/
10+
.terraform/
11+
12+
# Terraform - Variable files (often contain secrets)
13+
*.tfvars
14+
*.tfvars.json
15+
16+
# Local development
17+
.claude/
18+
docs/*.md
19+
DEPLOY_NOW.md
20+
ENHANCEMENTS_SUMMARY.md
21+
FINAL_FIX_GUIDE.md
22+
GITHUB_ACTIONS_RESOLUTION.md
23+
RESUME_PROJECT_GUIDE.md
24+
SKILLS_ALIGNMENT.md
25+
START_HERE.md
26+
27+
# Template files
28+
k8s-security/secrets-management-TEMPLATE.yaml

README.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,13 @@ Production-ready monitoring solution demonstrating enterprise architecture:
3434

3535
Prerequisites: Kubernetes cluster, Docker, Terraform, kubectl, helm, git
3636

37-
Terraform deployment (recommended):
37+
Terraform deployment (recommended - WSL2):
3838
```bash
39+
minikube start --driver=docker --force
40+
eval $(minikube docker-env)
41+
3942
cd terraform
4043
terraform init
41-
cp terraform.tfvars.example terraform.tfvars
4244
terraform apply
4345
```
4446

terraform/.terraform.lock.hcl

Lines changed: 62 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

terraform/main.tf

Lines changed: 43 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ terraform {
1212
source = "hashicorp/helm"
1313
version = "~> 2.12"
1414
}
15+
null = {
16+
source = "hashicorp/null"
17+
version = "~> 3.2"
18+
}
1519
}
1620
}
1721

@@ -39,142 +43,112 @@ resource "kubernetes_namespace" "monitoring" {
3943
depends_on = []
4044
}
4145

42-
# Add Prometheus Helm repository
43-
resource "helm_repository" "prometheus" {
44-
name = "prometheus-community"
45-
url = "https://prometheus-community.github.io/helm-charts"
46-
repository_ca_certificate = var.helm_ca_cert
47-
}
48-
49-
# Add Grafana Helm repository
50-
resource "helm_repository" "grafana" {
51-
name = "grafana"
52-
url = "https://grafana.github.io/helm-charts"
53-
repository_ca_certificate = var.helm_ca_cert
54-
}
55-
5646
# Deploy Prometheus using Helm
5747
resource "helm_release" "prometheus" {
58-
name = "prometheus"
59-
repository = helm_repository.prometheus.name
60-
chart = "prometheus"
61-
namespace = kubernetes_namespace.monitoring.metadata[0].name
48+
name = "prometheus"
49+
repository = "https://prometheus-community.github.io/helm-charts"
50+
chart = "prometheus"
51+
namespace = kubernetes_namespace.monitoring.metadata[0].name
6252
create_namespace = false
63-
wait = true
64-
timeout = 600
53+
wait = true
54+
timeout = 600
6555

6656
values = [
6757
file("${path.module}/../observability/prometheus/values.yaml")
6858
]
6959

70-
depends_on = [kubernetes_namespace.monitoring, helm_repository.prometheus]
60+
depends_on = [kubernetes_namespace.monitoring]
7161
}
7262

73-
# Deploy Jaeger
74-
resource "kubernetes_manifest" "jaeger" {
75-
manifest = yamldecode(file("${path.module}/../observability/jaeger/jaeger-deployment.yaml"))
63+
# Deploy Jaeger using kubectl
64+
resource "null_resource" "jaeger" {
65+
provisioner "local-exec" {
66+
command = "kubectl apply -f ${path.module}/../observability/jaeger/jaeger-deployment.yaml"
67+
}
7668

7769
depends_on = [kubernetes_namespace.monitoring]
7870
}
7971

8072
# Deploy Loki using Helm
8173
resource "helm_release" "loki" {
82-
name = "loki"
83-
repository = helm_repository.grafana.name
84-
chart = "loki"
85-
namespace = kubernetes_namespace.monitoring.metadata[0].name
74+
name = "loki"
75+
repository = "https://grafana.github.io/helm-charts"
76+
chart = "loki"
77+
namespace = kubernetes_namespace.monitoring.metadata[0].name
8678
create_namespace = false
87-
wait = true
88-
timeout = 600
79+
wait = true
80+
timeout = 600
8981

9082
values = [
9183
file("${path.module}/../observability/loki/values.yaml")
9284
]
9385

94-
depends_on = [kubernetes_namespace.monitoring, helm_repository.grafana]
86+
depends_on = [kubernetes_namespace.monitoring]
9587
}
9688

9789
# Deploy Grafana using Helm
9890
resource "helm_release" "grafana" {
99-
name = "grafana"
100-
repository = helm_repository.grafana.name
101-
chart = "grafana"
102-
namespace = kubernetes_namespace.monitoring.metadata[0].name
91+
name = "grafana"
92+
repository = "https://grafana.github.io/helm-charts"
93+
chart = "grafana"
94+
namespace = kubernetes_namespace.monitoring.metadata[0].name
10395
create_namespace = false
104-
wait = true
105-
timeout = 600
96+
wait = true
97+
timeout = 600
10698

10799
values = [
108100
file("${path.module}/../observability/grafana/values.yaml")
109101
]
110102

111-
depends_on = [kubernetes_namespace.monitoring, helm_repository.grafana]
103+
depends_on = [kubernetes_namespace.monitoring]
112104
}
113105

114106
# Deploy Prometheus Operator for ServiceMonitor support
115107
resource "helm_release" "kube_prometheus_stack" {
116-
name = "prometheus-operator"
117-
repository = helm_repository.prometheus.name
118-
chart = "kube-prometheus-stack"
119-
namespace = kubernetes_namespace.monitoring.metadata[0].name
108+
name = "prometheus-operator"
109+
repository = "https://prometheus-community.github.io/helm-charts"
110+
chart = "kube-prometheus-stack"
111+
namespace = kubernetes_namespace.monitoring.metadata[0].name
120112
create_namespace = false
121-
wait = true
122-
timeout = 900
113+
wait = true
114+
timeout = 900
123115

124116
set {
125117
name = "prometheus.prometheusSpec.serviceMonitorSelectorNilUsesHelmValues"
126118
value = "false"
127119
}
128120

129-
depends_on = [kubernetes_namespace.monitoring, helm_repository.prometheus]
121+
depends_on = [kubernetes_namespace.monitoring]
130122
}
131123

132-
# Apply ServiceMonitor for OTel metrics
133-
resource "kubernetes_manifest" "service_monitor" {
134-
manifest = yamldecode(file("${path.module}/../observability/prometheus/service-monitor.yaml"))
124+
# Apply ServiceMonitor for OTel metrics using kubectl
125+
resource "null_resource" "service_monitor" {
126+
provisioner "local-exec" {
127+
command = "kubectl apply -f ${path.module}/../observability/prometheus/service-monitor.yaml"
128+
}
135129

136130
depends_on = [helm_release.kube_prometheus_stack]
137131
}
138132

139-
# Create default namespace resources (applications)
140-
resource "kubernetes_namespace" "default" {
141-
metadata {
142-
name = "default"
143-
labels = {
144-
"name" = "default"
145-
}
146-
}
147-
}
148-
149-
# Deploy backend service
133+
# Deploy backend service (default namespace already exists)
150134
resource "kubernetes_manifest" "backend_deployment" {
151135
manifest = yamldecode(file("${path.module}/../app/backend/backend-deployment.yaml"))
152-
153-
depends_on = [kubernetes_namespace.default]
154136
}
155137

156138
resource "kubernetes_manifest" "backend_service" {
157139
manifest = yamldecode(file("${path.module}/../app/backend/backend-service.yaml"))
158-
159-
depends_on = [kubernetes_namespace.default]
160140
}
161141

162142
# Deploy frontend service
163143
resource "kubernetes_manifest" "frontend_deployment" {
164144
manifest = yamldecode(file("${path.module}/../app/frontend/frontend-deployment.yaml"))
165-
166-
depends_on = [kubernetes_namespace.default]
167145
}
168146

169147
resource "kubernetes_manifest" "frontend_service" {
170148
manifest = yamldecode(file("${path.module}/../app/frontend/frontend-service.yaml"))
171-
172-
depends_on = [kubernetes_namespace.default]
173149
}
174150

175151
# Deploy ConfigMap
176152
resource "kubernetes_manifest" "configmap" {
177153
manifest = yamldecode(file("${path.module}/../app/configmap.yaml"))
178-
179-
depends_on = [kubernetes_namespace.default]
180154
}

0 commit comments

Comments
 (0)