feat(packer): Allow passing in an instance_profile and custom shell scripts that run after the runner installation #4278
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
We ran into a couple obstacles when building our custom AMIs. One was needing to pass a custom instance profile to packer in order to get AWS IAM credentials for pre-pulling some ECR images. The other was wanting to run some custom build scripts after the agent had already been installed.
One of our primary reasons for the custom script after agent installation was to write the
ACTIONS_RUNNER_HOOK_JOB_STARTED=
environment variable to the/opt/actions-runner/.env
file pointing to some cleanup scripts we lay down on disk during AMI building. This may be taken care of if #4263 ends up merging, but we have another couple smaller things we're doing to configure the agent installation directory.I noticed what I think was a missing
instance_type
override variable in the windows-core-2022 file. I'm not sure if that was an oversight, or if it was omitted for a reason. It's been a long time since I've been proficient in Windows, so I wasn't able to test that part of this very well. Because the windows script seemed to already execute after agent installation, I thought it made sense to have the same input variables for all the profiles, and to just run this script directly after the other custom_shell_script that already exists. I thought it safer to make this additional variable instead of moving the custom_shell_script to after agent installation just in case that caused unforeseen issues for others. That being said, we're only using the custom script after agent installation, so moving the existing script to run after agent installation would also solve our problem.Thanks so much for this project, this has been immensely beneficial for us.