New
- new CLI bootstrap commands for Toolchain and Target accounts
- create SessionManager class for supporting multi-account, multi-region
- bootstrap command support to generate CFN templates for Toolchain and Target accounts
- added deployment for toolchain and target accounts via CFN
- support for cross-account and cross-region deployments
- support for envVariable as valueFrom via .env and python-dotenv
- threaded the priming of accounts on create and destroy
- added destroy of managed polices when destroying deployments
- threaded module info fetching
- added account and region to module list output
- added region and profile support for CLI commands
- added multi-region support for list moduledata
- support ParameterStore and SecretsManager as sources for module parameters (new valueFrom types)
- added region adn profile support for all cli commands where needed
Changes
- update DeploymentManifest to support targetAccountMappings and regionMappings
- update ModuleManifest to support targetAccount and targetRegion with defaults
- move deployment level Parameters (dockerCredentialsSecret, permissionsBoundaryName) to mappings
- refactor cli commands/groups to reduce line count in `__main__.py`
- moved projectpolicy.yaml into resources/.
- added profile and region support for session in `_session_utils.py`
- convertd `session_manager.py` to only use `_session_utils.py`
- refactored deployment_command objects and signatures for threadding
Fixes
- fix import failure of seedfarmer top-level module if seedfarmer.yaml doesn't exist
- enable basic CLI functions by lazy loading seedfarmer.yaml and boto3.Session
- ensure get_account_id() and get_regin() always use correct boto3.Session
- ensure bootstrap functions look for roles and cfn templates when updating/deploying roles
- honed back deployment role permissions
- modified session manager to support threadding with the toolchain session
- rename manifest parameter permissionBoundaryArn -> permissionsBoundaryName to align on AWS naming and hide account ids in ARNs
- ensure we find a deploymed manifest when listing/printing module metadata