-
Notifications
You must be signed in to change notification settings - Fork 66
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
add handling for plan
when cfngin_bucket
does not exist
#429
add handling for plan
when cfngin_bucket
does not exist
#429
Conversation
conftest now imports runway instead of a sub module which is what was causing import errors
the legacy stacker cli components bypass the cloudformation module class (which now loads the shim to avoid import errors) so it needs to be loaded here as well. this section of code is only used by the deprecated `run-stacker` command
@troyready - any ETA on when you may have a change to take a look at this? There are some sensitive areas it's touching (like the shim) and I want to make sure I didn't miss something. There are some undesirable side effects (as noted in #432) that look to impact direct imports (outside of deploy/destroy) to some locations in runway but not all. Theres no real way to fix this without moving things around a bit which would likely constitute a major change. I could temporarily relocate this addition inside of We could also postpone this until v2. |
Summary
Using
runway plan
(with CFNgin modules) in a new environment can create a situation where the S3 bucket used to stage CFN templates has not been created yet. Being a planning step, we want to avoid creating an S3 bucket because the user may not consent to/expect it to be deployed and may intend to deploy it as a dedicated stack.If the S3 bucket does not already exist, Runway will now log that it will be created during the next
deploy
(assuming it's not being created as its own stack) and proceed without using an S3 bucket.This does introduce another case where the template may be too large to use directly with the API. If this is the case, Runway will log that an error occurred, skip the stack who's template was too large, and continue onto the next step.
NOTE: There was an issue uncovered while writing tests for this update and an issue was created to address it (#432).
Why This Is Needed
runway plan
fails for CFNgin modules when thecfngin_bucket
does not exist (closes #424).What Changed
Added
http.HTTPStatus
(part of the standard lib in python >= 3.5)Changed
runway plan
, CFNgin modules will now skip using acfngin_bucket
if it does not existdeploy
runway.module.cloudformation
runway.core
inrunway.cfngin