Skip to content

Commit e2f51bf

Browse files
authored
Merge pull request #86 from FlowFuse/feat-aws-oidc-eks-deploy
feat: Replace static AWS authentication with OIDC in the `Deploy container image to kubernetes cluster` reusable workflow
2 parents 097617e + 51d1cbe commit e2f51bf

1 file changed

Lines changed: 24 additions & 13 deletions

File tree

.github/workflows/deploy_container_image.yml

Lines changed: 24 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,19 @@ name: Deploy container image to kubernetes cluster
33
on:
44
workflow_call:
55
inputs:
6+
aws_ecr_iam_role_name:
7+
description: 'IAM role name for ECR push'
8+
type: string
9+
required: false
10+
aws_eks_iam_role_name:
11+
description: 'IAM role name for EKS access'
12+
type: string
13+
required: false
14+
aws_region:
15+
description: 'AWS region'
16+
type: string
17+
required: false
18+
default: 'eu-west-1'
619
deploy:
720
description: 'Deploy to kubernetes cluster'
821
type: boolean
@@ -38,11 +51,8 @@ on:
3851
required: false
3952
default: 'v1.23.4'
4053
secrets:
41-
aws_access_key_id:
42-
description: 'AWS access key ID'
43-
required: true
44-
aws_secret_access_key:
45-
description: 'AWS secret access key'
54+
aws_account_id:
55+
description: 'AWS account ID'
4656
required: true
4757
temporary_registry_token:
4858
description: 'GitHub token'
@@ -62,6 +72,7 @@ jobs:
6272
permissions:
6373
packages: read
6474
contents: read
75+
id-token: write
6576
outputs:
6677
image: ${{ steps.set_outputs.outputs.image }}
6778
steps:
@@ -74,9 +85,10 @@ jobs:
7485
id: aws-config
7586
uses: aws-actions/configure-aws-credentials@ececac1a45f3b08a01d2dd070d28d111c5fe6722 # v4.1.0
7687
with:
77-
aws-access-key-id: ${{ secrets.aws_access_key_id }}
78-
aws-secret-access-key: ${{ secrets.aws_secret_access_key }}
79-
aws-region: eu-west-1
88+
role-to-assume: arn:aws:iam::${{ secrets.aws_account_id }}:role/${{ inputs.aws_ecr_iam_role_name }}
89+
role-duration-seconds: 900
90+
role-session-name: GithubActionsRoleSession
91+
aws-region: ${{ inputs.aws_region }}
8092
mask-aws-account-id: true
8193

8294
- name: Login to AWS ECR
@@ -105,11 +117,10 @@ jobs:
105117
if: ${{fromJson( inputs.deploy )}}
106118
uses: aws-actions/configure-aws-credentials@ececac1a45f3b08a01d2dd070d28d111c5fe6722 # v4.1.0
107119
with:
108-
aws-access-key-id: ${{ secrets.aws_access_key_id }}
109-
aws-secret-access-key: ${{ secrets.aws_secret_access_key }}
110-
aws-region: eu-west-1
111-
role-to-assume: arn:aws:iam::${{ steps.aws-config.outputs.aws-account-id }}:role/K8sAdmin
112-
role-duration-seconds: 1200
120+
role-to-assume: arn:aws:iam::${{ steps.aws-config.outputs.aws-account-id }}:role/${{ inputs.aws_eks_iam_role_name }}
121+
role-duration-seconds: 900
122+
role-session-name: GithubActionsRoleSession
123+
aws-region: ${{ inputs.aws_region }}
113124

114125
- name: Setup kubectl
115126
if: ${{fromJson( inputs.deploy )}}

0 commit comments

Comments
 (0)