You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Here are the required organization-level roles for you, the deployer, to allow the deploy script to set up roles and log sink. (Note that *Organization Owner* is not enough).
92
95
**Organization Role Administrator* so the deployment script can create a custom IAM role for Iris that allows it to get and set labels.
93
96
**Security Admin* so the deployment script can grant the needed role bindings, e.g., to the App Engine service account.
94
97
**Logs Configuration Writer* so the deployment script can create an organization log sink that sends logs to
95
98
PubSub.
96
99
97
-
* The required project-level roles: *Project Owner* or *Project Editor* on the project where Iris is deployed, so that the deployment script can create role bindings, topics and subscriptions, and deploy App Engine. Fine-granted "predefined roles" are not possible because deploying Cloud Scheduler cron requires at least Editor or Owner, per GCP docs.
100
+
#### Project-level roles
101
+
* The required project-level roles: *Project Owner* or *Project Editor* on the project where Iris is deployed, so that the deployment script can
102
+
* create role bindings, topics and subscriptions
103
+
* deploy App Engine.
104
+
*`actAs` the serivice account `iris-msg-sender` for deploying it to allow JWT auth.
98
105
99
-
### App Engine Defaults
106
+
* Fine-granted "predefined roles" are not possible because deploying Cloud Scheduler cron requires at least Editor or Owner, per GCP docs.
100
107
108
+
### App Engine Defaults
101
109
102
110
## Deployment
103
111
@@ -159,6 +167,7 @@ names start `_gcp_`. The part of the function name after `_gcp_` is used for the
159
167
* Another topic is a dead-letter topic.
160
168
* PubSub subscriptions
161
169
* There is one for each topic: These direct the messages to `/label_one` and `/do_label` in `main.py`, respectively.
170
+
* For security, these two PubSub subscriptions [use JWT auth](These https://cloud.google.com/pubsub/docs/authenticate-push-subscriptions). The deployment script sets this up for you.
162
171
* A dead-letter subscription. This is a pull subscription. By default, it just accumulates the messages. You can use it to see statistics, or you can pull messages from it.
Copy file name to clipboardexpand all lines: TODO.md
+3-15
Original file line number
Diff line number
Diff line change
@@ -5,21 +5,10 @@
5
5
* P2 Memory consumption: Even an empty AppEngine app (not Iris, just a Hello World with 3 lines of code in total) crashes on out-of-memory for the smalled AppEngine instance. Google has confirmed this. See if there is a workaround. This will save money.
6
6
7
7
* P2 PubSub push endpoint security:
8
-
Note: The token by itself is not very secure, though
9
-
Google has at times recommended this approach.
10
-
11
-
Alternatives:
12
-
- Replace the `PUBSUB_VERIFICATION_TOKEN` with random value in `deploy.sh`
13
-
- Or better: [Use JWT](https://cloud.google.com/pubsub/docs/push)
8
+
Note: The token by itself is not very secure, though Google has at times recommended this approach.
14
9
15
-
* P3 In `integration_test.sh`
16
-
- Test more labels (in addition to `iris3_name` which is now tested)
17
-
- Test the copying of labels from the project.
18
-
- Support testing of the cron-based labeling, which would also allow testing of Cloud SQL and of attachment of
19
-
Disks. In this test:
20
-
1. Modify cron to run 1 minute after the deployment is launched (and restore it at the end of the test.)
21
-
1. Call `deploy.sh` using with the `-c` switch to disable event-based labeling 1. Wait 1.5 minutes after deploy
0 commit comments