aws-control-tower-manifest-builder


Nameaws-control-tower-manifest-builder JSON
Version 0.10.0 PyPI version JSON
download
home_pagehttps://github.com/gabrielbac/aws_control_tower_manifest_builder
SummaryPython package to automatically build the AWS Control Tower Manifest given Cloud Formation templates as input.
upload_time2024-02-10 01:24:27
maintainer
docs_urlNone
authorGabriel Bacallado
requires_python>=3.6
licenseMIT license
keywords aws_control_tower_manifest_builder
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ==================================
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"
}
        
Elapsed time: 0.18011s