Skip to content

Commit 30547f9

Browse files
committed
Bootstrap Stage 12 staging Modal secrets
1 parent 5da7856 commit 30547f9

2 files changed

Lines changed: 90 additions & 0 deletions

File tree

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
#!/usr/bin/env bash
2+
# One-use transfer of established GitHub Modal credentials to GCP Secret Manager.
3+
4+
set -euo pipefail
5+
set +x
6+
7+
: "${MODAL_TOKEN_ID:?MODAL_TOKEN_ID is required}"
8+
: "${MODAL_TOKEN_SECRET:?MODAL_TOKEN_SECRET is required}"
9+
10+
project="policyengine-simulation-entry"
11+
deploy_account="sim-entry-gh-deployer@policyengine-simulation-entry.iam.gserviceaccount.com"
12+
13+
active_account="$(gcloud auth list --filter=status:ACTIVE --format='value(account)')"
14+
if [[ "${active_account}" != "${deploy_account}" ]]; then
15+
echo "Unexpected GCP deployment identity" >&2
16+
exit 1
17+
fi
18+
19+
add_if_empty() {
20+
local secret_name="$1"
21+
local value="$2"
22+
local enabled_version
23+
gcloud secrets describe "${secret_name}" \
24+
--project "${project}" >/dev/null
25+
enabled_version="$(
26+
gcloud secrets versions list "${secret_name}" \
27+
--project "${project}" \
28+
--filter 'state=ENABLED' \
29+
--format 'value(name)' \
30+
--limit 1
31+
)"
32+
if [[ -z "${enabled_version}" ]]; then
33+
printf '%s' "${value}" |
34+
gcloud secrets versions add "${secret_name}" \
35+
--project "${project}" \
36+
--data-file=- \
37+
--quiet >/dev/null
38+
fi
39+
}
40+
41+
add_if_empty "stage12-staging-modal-token-id" "${MODAL_TOKEN_ID}"
42+
add_if_empty "stage12-staging-modal-token-secret" "${MODAL_TOKEN_SECRET}"
43+
44+
for secret_name in \
45+
stage12-staging-modal-token-id \
46+
stage12-staging-modal-token-secret; do
47+
enabled_version="$(
48+
gcloud secrets versions list "${secret_name}" \
49+
--project "${project}" \
50+
--filter 'state=ENABLED' \
51+
--format 'value(name)' \
52+
--limit 1
53+
)"
54+
if [[ -z "${enabled_version}" ]]; then
55+
echo "Modal token transfer did not create an enabled secret version" >&2
56+
exit 1
57+
fi
58+
done
59+
60+
echo "Both Stage 12 staging Modal token secrets now have an enabled version."
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
name: One-use Stage 12 staging Modal secret bootstrap
2+
3+
on:
4+
push:
5+
branches:
6+
- stage12-bootstrap-staging-modal-secrets-20260915
7+
8+
permissions:
9+
contents: read
10+
id-token: write
11+
12+
jobs:
13+
transfer-existing-modal-token:
14+
runs-on: ubuntu-latest
15+
environment: beta
16+
steps:
17+
- uses: actions/checkout@v6
18+
19+
- uses: google-github-actions/auth@v2
20+
with:
21+
workload_identity_provider: ${{ secrets.SIMULATION_ENTRYPOINT_GCP_WIF_PROVIDER }}
22+
service_account: ${{ secrets.SIMULATION_ENTRYPOINT_GCP_DEPLOY_SERVICE_ACCOUNT }}
23+
24+
- uses: google-github-actions/setup-gcloud@v2
25+
26+
- name: Copy established Modal token to the pre-created GCP secrets
27+
env:
28+
MODAL_TOKEN_ID: ${{ secrets.MODAL_TOKEN_ID }}
29+
MODAL_TOKEN_SECRET: ${{ secrets.MODAL_TOKEN_SECRET }}
30+
run: bash .github/scripts/stage12-bootstrap-modal-token-secrets.sh

0 commit comments

Comments
 (0)