Skip to content

Commit 851f6d0

Browse files
committed
Change github actions authentication to use workload identity federation
1 parent 8c5700f commit 851f6d0

File tree

3 files changed

+37
-27
lines changed

3 files changed

+37
-27
lines changed

.github/workflows/main-staging.yml

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,10 @@ jobs:
1010
HUGO_VERSION: 0.143.1
1111
GCLOUD_VERSION: 458.0.1-linux-x86_64
1212
BUCKET: docs-staging-learn-redis-com
13-
BUCKET_SERVICE_ACCOUNT: ${{ secrets.BUCKET_DOCUMENTATION_SA_STAGING }}
14-
BUCKET_SECRET: ${{ secrets.BUCKET_DOCUMENTATION_STAGING }}
15-
GCP_PROJECT: ${{ secrets.GCP_PROJECT_STAGING }}
13+
STAGING_PROJECT_ID: ${{ secrets.GCP_PROJECT_STAGING }}
14+
STAGING_SERVICE_ACCOUNT: ${{ secrets.STAGING_SERVICE_ACCOUNT }}
15+
STAGING_WORKLOAD_IDENTITY_PROVIDER: ${{ secrets.STAGING_WORKLOAD_IDENTITY_PROVIDER }}
16+
1617
steps:
1718
- name: Start
1819
run: echo "The name of the branch is ${{ github.ref }} on ${{ github.repository }}"
@@ -167,12 +168,14 @@ jobs:
167168
wget -O ${{ github.workspace }}/google-cloud-cli.tar.gz "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-cli-$GCLOUD_VERSION.tar.gz" \
168169
&& tar -xvf google-cloud-cli.tar.gz -C ${{ github.workspace }}\
169170
&& ${{ github.workspace }}/google-cloud-sdk/install.sh --quiet
170-
- name: Prepare bucket authentication
171-
run: echo $BUCKET_SECRET | base64 --decode > service_account.json && ls -a service_account.json
172-
- name: Authenticate to the bucket
173-
run: |
174-
./google-cloud-sdk/bin/gcloud auth activate-service-account $BUCKET_SERVICE_ACCOUNT --key-file=./service_account.json --project=$GCP_PROJECT \
175-
&& ./google-cloud-sdk/bin/gcloud auth list
171+
172+
- name: 'Google auth'
173+
uses: 'google-github-actions/auth@v2'
174+
with:
175+
project_id: '${{ env.STAGING_PROJECT_ID }}'
176+
service_account: '${{ env.STAGING_SERVICE_ACCOUNT }}'
177+
workload_identity_provider: '${{ env.STAGING_WORKLOAD_IDENTITY_PROVIDER }}'
178+
176179
- name: Sync the branch to the bucket
177180
run: |
178181
if [[ "${{ github.ref_name }}" == "main" ]]

.github/workflows/main.yml

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,10 @@ jobs:
1010
HUGO_VERSION: 0.143.1
1111
GCLOUD_VERSION: 458.0.1-linux-x86_64
1212
BUCKET: docs-prod-learn-redis-com
13-
BUCKET_SERVICE_ACCOUNT: ${{ secrets.BUCKET_DOCUMENTATION_SA_PROD }}
14-
BUCKET_SECRET: ${{ secrets.BUCKET_DOCUMENTATION_PROD }}
15-
GCP_PROJECT: ${{ secrets.GCP_PROJECT_PROD }}
13+
PROD_PROJECT_ID: ${{ secrets.GCP_PROJECT_PROD }}
14+
PROD_SERVICE_ACCOUNT: ${{ secrets.PROD_SERVICE_ACCOUNT }}
15+
PROD_WORKLOAD_IDENTITY_PROVIDER: ${{ secrets.PROD_WORKLOAD_IDENTITY_PROVIDER }}
16+
1617
steps:
1718
- name: Start
1819
run: echo "The name of the branch is ${{ github.ref }} on ${{ github.repository }}"
@@ -167,12 +168,14 @@ jobs:
167168
wget -O ${{ github.workspace }}/google-cloud-cli.tar.gz "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-cli-$GCLOUD_VERSION.tar.gz" \
168169
&& tar -xvf google-cloud-cli.tar.gz -C ${{ github.workspace }}\
169170
&& ${{ github.workspace }}/google-cloud-sdk/install.sh --quiet
170-
- name: Prepare bucket authentication
171-
run: echo $BUCKET_SECRET | base64 --decode > service_account.json && ls -a service_account.json
172-
- name: Authenticate to the bucket
173-
run: |
174-
./google-cloud-sdk/bin/gcloud auth activate-service-account $BUCKET_SERVICE_ACCOUNT --key-file=./service_account.json --project=$GCP_PROJECT \
175-
&& ./google-cloud-sdk/bin/gcloud auth list
171+
172+
- name: 'Google auth'
173+
uses: 'google-github-actions/auth@v2'
174+
with:
175+
project_id: '${{ env.PROD_PROJECT_ID }}'
176+
service_account: '${{ env.PROD_SERVICE_ACCOUNT }}'
177+
workload_identity_provider: '${{ env.PROD_WORKLOAD_IDENTITY_PROVIDER }}'
178+
176179
- name: Sync the branch to the bucket
177180
run: |
178181
if [[ "${{ github.ref_name }}" == "main" ]]

.github/workflows/test_gcs_access.yml

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,24 +10,28 @@ jobs:
1010
env:
1111
GCLOUD_VERSION: 458.0.1-linux-x86_64
1212
BUCKET: docs-prod-learn-redis-com
13-
BUCKET_SERVICE_ACCOUNT: ${{ secrets.BUCKET_DOCUMENTATION_SA_PROD }}
14-
BUCKET_SECRET: ${{ secrets.BUCKET_DOCUMENTATION_PROD }}
15-
GCP_PROJECT: ${{ secrets.GCP_PROJECT_PROD }}
13+
PROD_PROJECT_ID: ${{ secrets.GCP_PROJECT_PROD }}
14+
PROD_SERVICE_ACCOUNT: ${{ secrets.PROD_SERVICE_ACCOUNT }}
15+
PROD_WORKLOAD_IDENTITY_PROVIDER: ${{ secrets.PROD_WORKLOAD_IDENTITY_PROVIDER }}
16+
1617
steps:
1718
- uses: actions/checkout@v4
1819
- name: Start
1920
run: echo "The name of the branch is ${{ github.ref }} on ${{ github.repository }}"
20-
- name: Fetch the credentails
21-
run: echo $BUCKET_SECRET | base64 --decode > service_account.json && ls -a service_account.json
21+
2222
- name: Install the Google Cloud CLI
2323
run: |
2424
wget -O ${{ github.workspace }}/google-cloud-cli.tar.gz "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-cli-$GCLOUD_VERSION.tar.gz" \
2525
&& tar -xvf google-cloud-cli.tar.gz -C ${{ github.workspace }}\
2626
&& ${{ github.workspace }}/google-cloud-sdk/install.sh --quiet
27-
- name: Authenticate to Google Cloud
28-
run: |
29-
./google-cloud-sdk/bin/gcloud auth activate-service-account $BUCKET_SERVICE_ACCOUNT --key-file=./service_account.json --project=$GCP_PROJECT \
30-
&& ./google-cloud-sdk/bin/gcloud auth list
27+
28+
- name: 'Google auth'
29+
uses: 'google-github-actions/auth@v2'
30+
with:
31+
project_id: '${{ env.PROD_PROJECT_ID }}'
32+
service_account: '${{ env.PROD_SERVICE_ACCOUNT }}'
33+
workload_identity_provider: '${{ env.PROD_WORKLOAD_IDENTITY_PROVIDER }}'
34+
3135
- name: List files
3236
run: ./google-cloud-sdk/bin/gsutil ls gs://$BUCKET
3337
- name: End

0 commit comments

Comments
 (0)