Skip to content

Commit a1ccba1

Browse files
committed
Use GitHub org secrets directly, drop KMS dependency for CI
KMS database was reset — machine identities gone. Use org-level GitHub secrets (DOCKERHUB_*, DIGITALOCEAN_ACCESS_TOKEN) directly instead of fetching through KMS at build time. Simpler and more reliable.
1 parent 5d875bc commit a1ccba1

File tree

1 file changed

+3
-87
lines changed

1 file changed

+3
-87
lines changed

.github/workflows/deploy.yml

Lines changed: 3 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -19,49 +19,6 @@ jobs:
1919
steps:
2020
- uses: actions/checkout@v4
2121

22-
- name: Fetch CI secrets from Hanzo KMS
23-
id: kms
24-
env:
25-
KMS_CLIENT_ID: ${{ secrets.KMS_CLIENT_ID }}
26-
KMS_CLIENT_SECRET: ${{ secrets.KMS_CLIENT_SECRET }}
27-
run: |
28-
set -euo pipefail
29-
KMS_URL="${KMS_URL:-https://kms.hanzo.ai}"
30-
31-
retry() {
32-
local n=0
33-
until [ $n -ge 5 ]; do
34-
"$@" && return 0
35-
n=$((n+1)); echo "::warning::Retry $n/5..." >&2; sleep $((n*5))
36-
done
37-
return 1
38-
}
39-
40-
kms_login() {
41-
curl -fsS -X POST "${KMS_URL}/api/v1/auth/universal-auth/login" \
42-
-H "Content-Type: application/json" \
43-
-d "$(jq -nc --arg cid "$KMS_CLIENT_ID" --arg cs "$KMS_CLIENT_SECRET" \
44-
'{clientId: $cid, clientSecret: $cs}')" \
45-
| jq -re '.accessToken'
46-
}
47-
48-
ACCESS_TOKEN="$(retry kms_login)"
49-
[ -n "${ACCESS_TOKEN}" ] && [ "${ACCESS_TOKEN}" != "null" ] || {
50-
echo "::error::Failed to authenticate to Hanzo KMS"; exit 1; }
51-
52-
fetch_secret() {
53-
curl -fsS "${KMS_URL}/api/v3/secrets/raw/${1}?workspaceSlug=gitops&environment=prod&secretPath=/ci&viewSecretValue=true&include_imports=true" \
54-
-H "Authorization: Bearer ${ACCESS_TOKEN}" \
55-
| jq -re '.secret.secretValue'
56-
}
57-
58-
for name in DOCKERHUB_USERNAME DOCKERHUB_TOKEN DIGITALOCEAN_ACCESS_TOKEN; do
59-
val="$(retry fetch_secret "$name")"
60-
[ -n "$val" ] && [ "$val" != "null" ] || { echo "::error::Missing KMS secret $name"; exit 1; }
61-
echo "::add-mask::${val}"
62-
echo "${name}=${val}" >> "$GITHUB_OUTPUT"
63-
done
64-
6522
- name: Set up Docker Buildx
6623
uses: docker/setup-buildx-action@v3
6724

@@ -77,8 +34,8 @@ jobs:
7734
continue-on-error: true
7835
with:
7936
registry: docker.io
80-
username: ${{ steps.kms.outputs.DOCKERHUB_USERNAME }}
81-
password: ${{ steps.kms.outputs.DOCKERHUB_TOKEN }}
37+
username: ${{ secrets.DOCKERHUB_USERNAME }}
38+
password: ${{ secrets.DOCKERHUB_TOKEN }}
8239

8340
- name: Image metadata
8441
id: meta
@@ -112,51 +69,10 @@ jobs:
11269
steps:
11370
- uses: actions/checkout@v4
11471

115-
- name: Fetch secrets from Hanzo KMS
116-
id: kms
117-
env:
118-
KMS_CLIENT_ID: ${{ secrets.KMS_CLIENT_ID }}
119-
KMS_CLIENT_SECRET: ${{ secrets.KMS_CLIENT_SECRET }}
120-
run: |
121-
set -euo pipefail
122-
KMS_URL="${KMS_URL:-https://kms.hanzo.ai}"
123-
124-
retry() {
125-
local n=0
126-
until [ $n -ge 5 ]; do
127-
"$@" && return 0
128-
n=$((n+1)); echo "::warning::Retry $n/5..." >&2; sleep $((n*5))
129-
done
130-
return 1
131-
}
132-
133-
kms_login() {
134-
curl -fsS -X POST "${KMS_URL}/api/v1/auth/universal-auth/login" \
135-
-H "Content-Type: application/json" \
136-
-d "$(jq -nc --arg cid "$KMS_CLIENT_ID" --arg cs "$KMS_CLIENT_SECRET" \
137-
'{clientId: $cid, clientSecret: $cs}')" \
138-
| jq -re '.accessToken'
139-
}
140-
141-
ACCESS_TOKEN="$(retry kms_login)"
142-
[ -n "${ACCESS_TOKEN}" ] && [ "${ACCESS_TOKEN}" != "null" ] || {
143-
echo "::error::Failed to authenticate to Hanzo KMS"; exit 1; }
144-
145-
fetch_do_token() {
146-
curl -fsS "${KMS_URL}/api/v3/secrets/raw/DIGITALOCEAN_ACCESS_TOKEN?workspaceSlug=gitops&environment=prod&secretPath=/ci&viewSecretValue=true&include_imports=true" \
147-
-H "Authorization: Bearer ${ACCESS_TOKEN}" \
148-
| jq -re '.secret.secretValue'
149-
}
150-
151-
val="$(retry fetch_do_token)"
152-
[ -n "$val" ] && [ "$val" != "null" ] || { echo "::error::Missing KMS secret DIGITALOCEAN_ACCESS_TOKEN"; exit 1; }
153-
echo "::add-mask::${val}"
154-
echo "DIGITALOCEAN_ACCESS_TOKEN=${val}" >> "$GITHUB_OUTPUT"
155-
15672
- name: Install doctl
15773
uses: digitalocean/action-doctl@v2
15874
with:
159-
token: ${{ steps.kms.outputs.DIGITALOCEAN_ACCESS_TOKEN }}
75+
token: ${{ secrets.DIGITALOCEAN_ACCESS_TOKEN }}
16076

16177
- name: Configure kubectl (hanzo-k8s)
16278
run: doctl kubernetes cluster kubeconfig save hanzo-k8s

0 commit comments

Comments
 (0)