==================================
AWS Control Tower Manifest Builder
==================================
.. image:: https://img.shields.io/pypi/v/aws_control_tower_manifest_builder.svg
:target: https://pypi.python.org/pypi/aws_control_tower_manifest_builder
.. image:: https://github.com/gabrielbac/aws_control_tower_manifest_builder/actions/workflows/test.yaml/badge.svg
:target: https://github.com/gabrielbac/aws_control_tower_manifest_builder/actions/workflows/test.yaml/
.. image:: https://github.com/gabrielbac/aws_control_tower_manifest_builder/actions/workflows/release.yaml/badge.svg
:target: https://github.com/gabrielbac/aws_control_tower_manifest_builder/actions/workflows/release.yaml/
.. image:: https://readthedocs.org/projects/aws-control-tower-manifest-builder/badge/?version=latest
:target: https://aws-control-tower-manifest-builder.readthedocs.io/en/latest/?version=latest
:alt: Documentation Status
Python package to automatically build the AWS Control Tower Manifest given Cloud Formation templates and SCPs as input.
* Free software: MIT license
* Documentation: https://aws-control-tower-manifest-builder.readthedocs.io.
Features
--------
* Reads Cloud Formation templates and Service Control Policies from specified directories and produces the AWS Control Tower manifest.yaml file.
* See https://s3.amazonaws.com/solutions-reference/customizations-for-aws-control-tower/latest/customizations-for-aws-control-tower-developer-guide.pdf
.. image:: Pipeline.drawio.png
Quick start
-----------
1. Run ``pip install aws-control-tower-manifest-builder``
2. Download sample template and SCPs from S3 "Add link". Extract to directory
3. Run ``aws_control_tower_manifest_builder --input-cf sample_templates --input-scp sample_scp --output output_manifest``
Note: the sample template includes incorrecly formatted templates.
For Developers - before pushing a branch
---------------------------------------------------------------
1. Clone the repo
2. ``make venv``
3. ``make black``
4. ``make lint``
5. ``make test``
6. ``make local-test``
To bump version:
1. Update HISTORY.rst
2. ``git fetch`` to fetch all tags
3. ``make bump-<patch-minor-major>``
4. Make a release in Github and add a tag.
* Cloud Formation templates require a metadata section with the following info:
.. code-block:: yaml
Metadata:
manifest_parameters: # can be customized with --metadata-name
name: detailed_template # Optional. Defaults to the file name. a-z, A-Z, 0-9, and "-"
description: string # Required for SCPs
deploy_method: stackset # Optional. All file in the template directory use "stackset" and in policy directory use "scp".
accounts: ["123456789012", "987456123989"] # Requires "accounts" and/or "organizational_unit". If accounts is used, enforce only account
# IDs with --enforce-account-number-only
organizational_units: ["dev", "prod"] # Requires "accounts" and/or "organizational_unit".
regions: ["us-east-1" , "us-east-2"] # Optional. Defaults to us-east-1.
parameters: # Optional. List of parameters [SSM, Alfred, Values]
- parameter_key: parameter1
parameter_value: value1
- parameter_key: parameter2
parameter_value: value2
export_outputs: # Optional. list of ssm parameters to store output values
- name: /org/member/test-ssm/app-id
value: $[output_ApplicationId]
=======
History
=======
0.3.1 (2022-03-03)
------------------
* First release on PyPI.
0.4.0 (2022-03-27)
------------------
* Change to mantain order, comments and support exclamation marks in Cloudformation
0.4.1 (2022-03-27)
------------------
* Fix for the default region option
0.5.0 (2022-03-29)
------------------
* Add argument to set schema version
0.5.1 (2022-03-24)
------------------
* Fix issue when leaving region blank not picking default value
0.5.2 (2022-04-08)
------------------
* Fail if files name or name in metadata dont match regex
0.5.3 (2022-04-09)
------------------
* Fix in logging and update to Readme
0.5.4 (2022-04-18)
------------------
* Exit with error when there is an issue in any manifest file
0.6.0 (2022-05-18)
------------------
* Enforce description in SCP and correct extension
0.7.0 (2022-08-28)
------------------
* Added 2 new options
--metadata-name -> to customize the name in the metadata
--enforce-account-number-only -> Allows to enforce use of 12 digit account numbers
The input scps folder is not mandatory anymore
0.8.0 (2022-09-08)
------------------
* Added 1 new option
--enable_stack_set_deletion -> defaults to False. Set to True to enable the CT pipeline to delete stacksets.
Raw data
{
"_id": null,
"home_page": "https://github.com/gabrielbac/aws_control_tower_manifest_builder",
"name": "aws-control-tower-manifest-builder",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": "",
"keywords": "aws_control_tower_manifest_builder",
"author": "Gabriel Bacallado",
"author_email": "gabriel.bacallado@gmail.com",
"download_url": "",
"platform": null,
"description": "==================================\nAWS Control Tower Manifest Builder\n==================================\n\n\n.. image:: https://img.shields.io/pypi/v/aws_control_tower_manifest_builder.svg\n :target: https://pypi.python.org/pypi/aws_control_tower_manifest_builder\n\n.. image:: https://github.com/gabrielbac/aws_control_tower_manifest_builder/actions/workflows/test.yaml/badge.svg\n :target: https://github.com/gabrielbac/aws_control_tower_manifest_builder/actions/workflows/test.yaml/\n\n.. image:: https://github.com/gabrielbac/aws_control_tower_manifest_builder/actions/workflows/release.yaml/badge.svg\n :target: https://github.com/gabrielbac/aws_control_tower_manifest_builder/actions/workflows/release.yaml/\n\n.. image:: https://readthedocs.org/projects/aws-control-tower-manifest-builder/badge/?version=latest\n :target: https://aws-control-tower-manifest-builder.readthedocs.io/en/latest/?version=latest\n :alt: Documentation Status\n\n\nPython package to automatically build the AWS Control Tower Manifest given Cloud Formation templates and SCPs as input.\n\n\n* Free software: MIT license\n* Documentation: https://aws-control-tower-manifest-builder.readthedocs.io.\n\n\nFeatures\n--------\n\n* Reads Cloud Formation templates and Service Control Policies from specified directories and produces the AWS Control Tower manifest.yaml file.\n* See https://s3.amazonaws.com/solutions-reference/customizations-for-aws-control-tower/latest/customizations-for-aws-control-tower-developer-guide.pdf\n\n.. image:: Pipeline.drawio.png\n\nQuick start\n-----------\n\n1. Run ``pip install aws-control-tower-manifest-builder``\n2. Download sample template and SCPs from S3 \"Add link\". Extract to directory\n3. Run ``aws_control_tower_manifest_builder --input-cf sample_templates --input-scp sample_scp --output output_manifest``\n Note: the sample template includes incorrecly formatted templates.\n\nFor Developers - before pushing a branch\n---------------------------------------------------------------\n\n1. Clone the repo\n2. ``make venv``\n3. ``make black``\n4. ``make lint``\n5. ``make test``\n6. ``make local-test``\n\nTo bump version:\n1. Update HISTORY.rst\n2. ``git fetch`` to fetch all tags\n3. ``make bump-<patch-minor-major>``\n4. Make a release in Github and add a tag. \n\n* Cloud Formation templates require a metadata section with the following info:\n\n.. code-block:: yaml\n \n Metadata:\n manifest_parameters: # can be customized with --metadata-name\n name: detailed_template # Optional. Defaults to the file name. a-z, A-Z, 0-9, and \"-\"\n description: string # Required for SCPs\n deploy_method: stackset # Optional. All file in the template directory use \"stackset\" and in policy directory use \"scp\".\n accounts: [\"123456789012\", \"987456123989\"] # Requires \"accounts\" and/or \"organizational_unit\". If accounts is used, enforce only account\n # IDs with --enforce-account-number-only\n organizational_units: [\"dev\", \"prod\"] # Requires \"accounts\" and/or \"organizational_unit\".\n regions: [\"us-east-1\" , \"us-east-2\"] # Optional. Defaults to us-east-1.\n parameters: # Optional. List of parameters [SSM, Alfred, Values]\n - parameter_key: parameter1\n parameter_value: value1\n - parameter_key: parameter2\n parameter_value: value2\n export_outputs: # Optional. list of ssm parameters to store output values\n - name: /org/member/test-ssm/app-id\n value: $[output_ApplicationId]\n\n\n\n=======\nHistory\n=======\n\n0.3.1 (2022-03-03)\n------------------\n\n* First release on PyPI.\n\n0.4.0 (2022-03-27)\n------------------\n\n* Change to mantain order, comments and support exclamation marks in Cloudformation\n\n0.4.1 (2022-03-27)\n------------------\n\n* Fix for the default region option\n\n0.5.0 (2022-03-29)\n------------------\n\n* Add argument to set schema version\n\n0.5.1 (2022-03-24)\n------------------\n\n* Fix issue when leaving region blank not picking default value\n\n0.5.2 (2022-04-08)\n------------------\n\n* Fail if files name or name in metadata dont match regex\n\n0.5.3 (2022-04-09)\n------------------\n\n* Fix in logging and update to Readme\n\n0.5.4 (2022-04-18)\n------------------\n\n* Exit with error when there is an issue in any manifest file\n\n0.6.0 (2022-05-18)\n------------------\n\n* Enforce description in SCP and correct extension\n\n0.7.0 (2022-08-28)\n------------------\n\n* Added 2 new options\n --metadata-name -> to customize the name in the metadata\n --enforce-account-number-only -> Allows to enforce use of 12 digit account numbers\n The input scps folder is not mandatory anymore\n\n0.8.0 (2022-09-08)\n------------------\n\n* Added 1 new option\n --enable_stack_set_deletion -> defaults to False. Set to True to enable the CT pipeline to delete stacksets.\n\n",
"bugtrack_url": null,
"license": "MIT license",
"summary": "Python package to automatically build the AWS Control Tower Manifest given Cloud Formation templates as input.",
"version": "0.10.0",
"project_urls": {
"Homepage": "https://github.com/gabrielbac/aws_control_tower_manifest_builder"
},
"split_keywords": [
"aws_control_tower_manifest_builder"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "f0a3be5b234c7e6f54a968ed93e555ddde3e0a5139d0aa61dee36c6d7761480d",
"md5": "ee7db00de0d2c86663feff21a6273cda",
"sha256": "19a91e4eef8399416ccba34bc1106ce97dec4c53e3bf40aa507709ec553061ee"
},
"downloads": -1,
"filename": "aws_control_tower_manifest_builder-0.10.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "ee7db00de0d2c86663feff21a6273cda",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=3.6",
"size": 11801,
"upload_time": "2024-02-10T01:24:27",
"upload_time_iso_8601": "2024-02-10T01:24:27.962481Z",
"url": "https://files.pythonhosted.org/packages/f0/a3/be5b234c7e6f54a968ed93e555ddde3e0a5139d0aa61dee36c6d7761480d/aws_control_tower_manifest_builder-0.10.0-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-02-10 01:24:27",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "gabrielbac",
"github_project": "aws_control_tower_manifest_builder",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"tox": true,
"lcname": "aws-control-tower-manifest-builder"
}