Releases: cloudmation-llc/gradle-infrastructure-plugins
Better Support for Instance Metadata
This is a simple fix meant at properly supporting excellent tools such as aws-vault which mock a local metadata server to make assuming roles and satisfying MFA challenges dead simple. Really great for local development.
The instance metadata provider is now placed ahead of the default provider in the chain because if you are developing locally, the default provider will try to use your $HOME/.aws/credentials
ahead of trying a metadata endpoint -- and this defeats aws-vault.
Improvements for Named Profiles, Tags, and Parameters
Several key improvements in this release.
Named Profiles: Support for named profiles needed to be better, and now if a named profile is specified, it is passed to the AWS client builder so that non-credential properties such as the region are used. However, you can still manually set the region on its own, too.
Dynamic Tags and Stack Parameters: Resource tags and stack parameters now accept both a static string, or a closure so that the value can be dynamically resolved through any kind of executable code. Now you can get your values by running a script, calling an API, or performing some complex logic to get the value before the stack is deployed.
Documentation: Added a cookbook with examples of using some of the nicer aspects of Gradle. More to come on this in the future.
Plus, always cleaning up and refactoring where it makes sense.
Ambiguous Constructors
Fixed: Removed a constructor from the ExpandoConfigDsl
class that was causing issues for Gradle, and really did not make sense from a type-checking perspective.
Fixes for Profiles and Stack Naming
Fixed: Named config profiles which do not request MFA now work properly.
Fixed: Configuration of a stack prefix is now used correctly when generating the stack name (even if a custom name for a stack is specified).
Task Prefixing
Refactored the task prefix setting to be part of the task configuration DSL. Added commentary to the documentation with example on how to use.
Configuration Improvements
Updated: I found through functional testing that per task configuration was not working as expected. Digging into the issue further revealed that the ExpandoConfigDsl
class which drives the flexible Gradle configuration for the tasks and projects had some oddities that needed to be fixed. I refactored it top to bottom, and it is now simpler, and behaves consistently.
Improved reporting of stack events
Updated: Previously, events directly on the stack did not get reported out to the console. This means it was possible to miss errors that caused a deployment to fail and go into rollback. This is now fixed, plus the output of the logical and physical resource IDs was cleaned up, too.
Support for MFA
New: MFA challenge is now supported when running plugin tasks if you used a named AWS config profile and have the properties mfa_serial
and role_arn
configured.
Updated: Refactored DSL for custom stack declarations.