-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
109 lines (90 loc) · 3.11 KB
/
Makefile
File metadata and controls
109 lines (90 loc) · 3.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
TERRAFORM_IMAGE_NAME=hashicorp/terraform:1.9
BUCKET_NAME=pubsub-storage-poc
PUBSUB_TOPIC=projects/personal-433817/topics/pubsubpoc-users
SESSION_TOPIC_NAME=projects/personal-433817/topics/pubsubpoc-sessions
MOVIE_TOPIC_NAME=projects/personal-433817/topics/pubsubpoc-movies
START_DATE=2024-11-05
# TRACE, DEBUG, INFO, WARN or ERROR
BASE_TERRAFORM=docker run --rm \
-v $(shell pwd)/infra/terraform/:/workspace/ \
-v $(shell pwd)/credential.json:/credential.json \
-w /workspace \
-e TF_LOG=ERROR \
-e GOOGLE_APPLICATION_CREDENTIALS=/credential.json \
${TERRAFORM_IMAGE_NAME}
-include .env
build-and-push-redrive-image:
yes | gcloud auth configure-docker us-docker.pkg.dev
cd examples/pubsub && docker build --no-cache -t pubsub-redrive:latest --platform linux/amd64 .
docker tag pubsub-redrive:latest us-docker.pkg.dev/personal-433817/pubsub-redrive/pubsub-redrive:latest
docker push us-docker.pkg.dev/personal-433817/pubsub-redrive/pubsub-redrive:latest
echo:
${BASE_TERRAFORM}
init:
${BASE_TERRAFORM} init
plan: init
${BASE_TERRAFORM} plan
deploy-basics: init
${BASE_TERRAFORM} apply \
-target=google_storage_bucket.pubsub-storage \
-target=google_artifact_registry_repository.redrive-repo \
-target=google_project_iam_custom_role.initial-role \
-target=google_project_iam_custom_role.basic-role \
-target=google_project_iam_member.members \
-target=google_storage_bucket_iam_member.bucket-members \
-target=google_project_iam_binding.project \
-target=google_bigquery_dataset.dataset \
--auto-approve
deploy-pubsubs: plan build-and-push-redrive-image
${BASE_TERRAFORM} apply \
-target=module.pubsub-users \
-target=module.pubsub-movies \
-target=module.pubsub-sessions \
-target=module.pubsub-not-allowed \
--auto-approve
deploy-tables: plan
${BASE_TERRAFORM} apply \
-target=module.users_table \
-target=module.users_table_raw \
-target=module.sessions_table \
-target=module.sessions_table_raw \
-target=module.movies_table \
-target=module.movies_table_raw \
--auto-approve
deploy-all: deploy-basics build-and-push-redrive-image
${BASE_TERRAFORM} apply --auto-approve
deploy: init
${BASE_TERRAFORM} apply --auto-approve
destroy: init
${BASE_TERRAFORM} destroy --auto-approve
pubsub-produce:
cd examples/pubsub && \
TOPIC_NAME=${PUBSUB_TOPIC} \
SESSION_TOPIC_NAME=${SESSION_TOPIC_NAME} \
MOVIE_TOPIC_NAME=${MOVIE_TOPIC_NAME} \
python pubsub/producer.py
pubsub-compact-users:
cd examples/pubsub && \
BUCKET_NAME=${BUCKET_NAME} \
TOPIC_NAME=${PUBSUB_TOPIC} \
START_DATE=${START_DATE} \
python pubsub/compact.py
pubsub-compact-sessions:
cd examples/pubsub && \
BUCKET_NAME=${BUCKET_NAME} \
TOPIC_NAME=${SESSION_TOPIC_NAME} \
START_DATE=${START_DATE} \
python pubsub/compact.py
pubsub-compact-movies:
cd examples/pubsub && \
BUCKET_NAME=${BUCKET_NAME} \
TOPIC_NAME=${MOVIE_TOPIC_NAME} \
START_DATE=${START_DATE} \
python pubsub/compact.py
pubsub-compact: pubsub-compact-users pubsub-compact-sessions pubsub-compact-movies
pubsub-redrive:
cd examples/pubsub && \
BUCKET_NAME=${BUCKET_NAME} \
TOPIC_NAME=${PUBSUB_TOPIC} \
FROM_DATE=${START_DATE} \
python pubsub/redrive.py