@@ -3,6 +3,19 @@ name: Deploy container image to kubernetes cluster
33on :
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
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'
6272 permissions :
6373 packages : read
6474 contents : read
75+ id-token : write
6576 outputs :
6677 image : ${{ steps.set_outputs.outputs.image }}
6778 steps :
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