-
Notifications
You must be signed in to change notification settings - Fork 16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[FEATURE] Support CodeBuild runtime-versions in module deployspecs #467
Comments
We will evaluate. @chamcca Can you comment on the level of need ("I need this now, it is blocking", "Q1 2024 will be ok", etc etc) |
Q1 2024 is probably fine as this isn't really blocking. Really the concern is about being locked into runtime-versions which are EOL, specifically Node 16. Suspect it's just a matter of time until CDK CLI drops support for it (as they've done in the past). In addition, controlling the runtime-version for a module ensures repeatable, consistent results even if the underlying image is updated.
|
We have evaluated and there are some wrinkles that we will need to figure out (no blockers here). We currently do support overriding the build image at the module level (not deployspec level) and that will remain consistent. As far as the runtime support, the AWS-provided images have specific runtimes they support (ex: aws/standard:6 supports nodejs 16 and not 18), so we are evaluating whether we want the runtime support for standard images to be supported in the deployspec (or how that would be handled if not a standard image is used) |
After reviewing this request and also the code, we have decided to to the following:
Reasoning: the runtimes of the AWS Curated Build image are specific to the image itself (i.e standard:6.0 only supports python 3.10 not 3.11) and to install the Adding runtime support to the deployspec will tightly couple a module to a particular build image with no chance to make it configurable as the deployspec is apart of the code itself (in checksum calc / gitpath pulls). In other words, a deployspec (module) that specifies a runtime (ie. using an AWS Curated Image) can ONLY use images that have that runtime available in the image, introducing a coupling to the image itself. As we can see, there is a tight mapping between the build image and the runtimes it supports (see links below.) The latest version of AWS CodeSeeder will allow AWS Curated build overrides and SeedFarmer will leverage that when deploying modules. REF: |
Is your feature request related to a problem? Please describe.
Not a problem yet, but will be. Current runtimes for python and nodejs are locked (and kind of out of date) in the CodeBuild Build definition. It would be really useful to reuse the
runtime-versions
support from thebuildspec
in the seedfarmerdeployspec
.Describe the solution you'd like
In the deployspec.yaml for a module, support adding the runtime-versions attribute to the install phase of the deploy and destroy sections:
This seems doable since seedfarmer is utilizing CodeBuild's base images which already support runtime declaration. Brief investigation of the code appears to support passing through from deployspec to the CodeBuild API overrides.
Describe alternatives you've considered
Manually modifying the CodeBuild Build definition after bootstrapping the environment. But this is just a temporary workaround as it then applies to any/all modules in the project.
The text was updated successfully, but these errors were encountered: