@@ -10,8 +10,18 @@ resource "google_cloud_run_v2_service" "juicebox" {
1010 template {
1111 timeout = " 300s"
1212 service_account = google_service_account. service_account . email
13+ volumes {
14+ name = " otel-config"
15+ secret {
16+ secret = google_secret_manager_secret. opentelemetry_configuration . secret_id
17+ items {
18+ version = " latest"
19+ path = " config.yaml"
20+ }
21+ }
22+ }
1323 containers {
14- name = " juicebox-1 "
24+ name = " jb-sw-realms "
1525 ports {
1626 name = " http1"
1727 container_port = 8080
@@ -49,6 +59,10 @@ resource "google_cloud_run_v2_service" "juicebox" {
4959 name = " REALM_ID"
5060 value = var. realm_id
5161 }
62+ env {
63+ name = " OPENTELEMETRY_ENDPOINT"
64+ value = " localhost:4317"
65+ }
5266 dynamic "env" {
5367 for_each = var. juicebox_vars
5468 content {
@@ -57,11 +71,27 @@ resource "google_cloud_run_v2_service" "juicebox" {
5771 }
5872 }
5973 }
60- }
61- lifecycle {
62- ignore_changes = [
63- client
64- ]
74+ containers {
75+ name = " otel-collector"
76+ resources {
77+ limits = {
78+ cpu = " 1"
79+ memory = " 512Mi"
80+ }
81+ }
82+ image = " ${ var . otelcol_image_url } :${ var . otelcol_image_version } "
83+ volume_mounts {
84+ name = " otel-config"
85+ mount_path = " /etc/otelcol-contrib/"
86+ }
87+ dynamic "env" {
88+ for_each = var. otelcol_vars
89+ content {
90+ name = env. key
91+ value = env. value
92+ }
93+ }
94+ }
6595 }
6696}
6797
@@ -73,6 +103,22 @@ resource "google_project_iam_binding" "logs_writer_binding" {
73103 ]
74104}
75105
106+ resource "google_project_iam_binding" "metrics_writer_binding" {
107+ project = var. project_id
108+ role = " roles/monitoring.metricWriter"
109+ members = [
110+ " serviceAccount:${ google_service_account . service_account . email } "
111+ ]
112+ }
113+
114+ resource "google_project_iam_binding" "cloud_trace_agent_binding" {
115+ project = var. project_id
116+ role = " roles/cloudtrace.agent"
117+ members = [
118+ " serviceAccount:${ google_service_account . service_account . email } "
119+ ]
120+ }
121+
76122resource "google_cloud_run_v2_service_iam_binding" "allow_unauthenticated_users" {
77123 project = var. project_id
78124 name = google_cloud_run_v2_service. juicebox . name
0 commit comments