carica-cfn-tools


Namecarica-cfn-tools JSON
Version 1.25 PyPI version JSON
download
home_pagehttps://github.com/caricalabs/carica-cfn-tools
SummaryTools to manage CloudFormation stack configuration
upload_time2024-01-30 17:54:52
maintainer
docs_urlNone
authorCarica Labs, LLC
requires_python
licenseAPL 2.0
keywords cloudformation cfn stack template config configuration
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            carica-cfn-tools - Tools to manage CloudFormation stack configuration
==================================================================================

Simple command line tools to create and update CloudFormation stacks that
make it easy to version-control both your templates and stack configurations
in one place.  Supports a few proprietary transforms useful for dynamically
merging a manually maintained template with a generated template (for example,
sam.json from "chalice package") that contains resources you'd like to include
in your main template.

Development
-----------

The ``vinstall`` script uses the `venv` module to prepare a Python environment useful
for development, so you don't have to build and install carica-cfn-tools to be
able to run and test it.

#. Run ``./vinstall``
#. Activate the virtual environment by running ``. ./venv/bin/activate``
#. The ``console_scripts`` listed in ``setup.py`` are now in your path, so you
   can simply run them like:

   ``carica-cfn ...``

Sample Stack Config
-------------------
::

    Region: us-east-1
    Bucket: mycorp-cfn-us-east-1
    Name: WarehouseApp
    Template: ../templates/warehouse-app.yml
    Jinja: true
    Parameters:
      # Normal parameter values can include strings, numbers, booleans, etc.
      Stage: dev
      TableReadCapacityUnits: 10
      TableWriteCapacityUnits: 5
      AdminPassword:
        # A parameter with a "ParameterStore" sub-key will be resolved to the
        # SSM Parameter Store parameter with that name.
        ParameterStore: dev.warehouseapp.admin-password
      PostgreSQLPassword:
        # A parameter with a "SecretsManager" sub-key will be resolved to the
        # Secrets Manager secret with that ID.
        SecretsManager: dev.warehouseapp.postgresql-password
    Extras:
      - ../cfn/static/logo.png
      - ../cfn/static/index.html
    JinjaExtras:
      - ../cfn/includes/*.yml
    JinjaExtrasContext:
      FOO: bar


`Region` sets where the CloudFormation template and related resources will be
uploaded and where the CloudFormation stack will be created.  This must match
the region the `Bucket` was created in.  This is required.

`Bucket` sets where the CloudFormation template and related resources will be
uploaded.  This is required.

`Name` sets the name of the CloudFormation stack.  This is required.

`Template` is a relative path to the CloudFormation YAML or JSON template
file to create the stack from.  This is required.

`Jinja` is an optional setting that controls whether `Template` will be
processed with Jinja2 before being uploaded.  This setting does not enable
Jinja2 for extras; use `JinjaExtras` for that.

`Extras` and `JinjaExtras` can be absolute paths or glob patterns relative to
the stack config file.

`Extras` or `JinjaExtras` that are directories, whether specified by absolute
path or expanded from a glob pattern, are copied recursively into the deployment
at a top-level directory named after the *last* directory component of the source.
An extra directory path like `/foo/bar/baz` ends up as `/baz` in the deployment.

`Extras` or `JinjaExtras` that are files, whether by absolute path or expanded
from a glob pattern, are copied into the root of the deployment.

`JinjaExtras` are processed with the Jinja2 template engine after all extras
are copied to a temporary directory.

`JinjaExtrasContext` is a dictionary passed as the context when Jinja is run.



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/caricalabs/carica-cfn-tools",
    "name": "carica-cfn-tools",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "cloudformation cfn stack template config configuration",
    "author": "Carica Labs, LLC",
    "author_email": "info@caricalabs.com",
    "download_url": "https://files.pythonhosted.org/packages/5b/9a/828d61816ae1e2ba21536e0d020fa77a53867b87e442a17735f843d26413/carica_cfn_tools-1.25.tar.gz",
    "platform": null,
    "description": "carica-cfn-tools - Tools to manage CloudFormation stack configuration\n==================================================================================\n\nSimple command line tools to create and update CloudFormation stacks that\nmake it easy to version-control both your templates and stack configurations\nin one place.  Supports a few proprietary transforms useful for dynamically\nmerging a manually maintained template with a generated template (for example,\nsam.json from \"chalice package\") that contains resources you'd like to include\nin your main template.\n\nDevelopment\n-----------\n\nThe ``vinstall`` script uses the `venv` module to prepare a Python environment useful\nfor development, so you don't have to build and install carica-cfn-tools to be\nable to run and test it.\n\n#. Run ``./vinstall``\n#. Activate the virtual environment by running ``. ./venv/bin/activate``\n#. The ``console_scripts`` listed in ``setup.py`` are now in your path, so you\n   can simply run them like:\n\n   ``carica-cfn ...``\n\nSample Stack Config\n-------------------\n::\n\n    Region: us-east-1\n    Bucket: mycorp-cfn-us-east-1\n    Name: WarehouseApp\n    Template: ../templates/warehouse-app.yml\n    Jinja: true\n    Parameters:\n      # Normal parameter values can include strings, numbers, booleans, etc.\n      Stage: dev\n      TableReadCapacityUnits: 10\n      TableWriteCapacityUnits: 5\n      AdminPassword:\n        # A parameter with a \"ParameterStore\" sub-key will be resolved to the\n        # SSM Parameter Store parameter with that name.\n        ParameterStore: dev.warehouseapp.admin-password\n      PostgreSQLPassword:\n        # A parameter with a \"SecretsManager\" sub-key will be resolved to the\n        # Secrets Manager secret with that ID.\n        SecretsManager: dev.warehouseapp.postgresql-password\n    Extras:\n      - ../cfn/static/logo.png\n      - ../cfn/static/index.html\n    JinjaExtras:\n      - ../cfn/includes/*.yml\n    JinjaExtrasContext:\n      FOO: bar\n\n\n`Region` sets where the CloudFormation template and related resources will be\nuploaded and where the CloudFormation stack will be created.  This must match\nthe region the `Bucket` was created in.  This is required.\n\n`Bucket` sets where the CloudFormation template and related resources will be\nuploaded.  This is required.\n\n`Name` sets the name of the CloudFormation stack.  This is required.\n\n`Template` is a relative path to the CloudFormation YAML or JSON template\nfile to create the stack from.  This is required.\n\n`Jinja` is an optional setting that controls whether `Template` will be\nprocessed with Jinja2 before being uploaded.  This setting does not enable\nJinja2 for extras; use `JinjaExtras` for that.\n\n`Extras` and `JinjaExtras` can be absolute paths or glob patterns relative to\nthe stack config file.\n\n`Extras` or `JinjaExtras` that are directories, whether specified by absolute\npath or expanded from a glob pattern, are copied recursively into the deployment\nat a top-level directory named after the *last* directory component of the source.\nAn extra directory path like `/foo/bar/baz` ends up as `/baz` in the deployment.\n\n`Extras` or `JinjaExtras` that are files, whether by absolute path or expanded\nfrom a glob pattern, are copied into the root of the deployment.\n\n`JinjaExtras` are processed with the Jinja2 template engine after all extras\nare copied to a temporary directory.\n\n`JinjaExtrasContext` is a dictionary passed as the context when Jinja is run.\n\n\n",
    "bugtrack_url": null,
    "license": "APL 2.0",
    "summary": "Tools to manage CloudFormation stack configuration",
    "version": "1.25",
    "project_urls": {
        "Homepage": "https://github.com/caricalabs/carica-cfn-tools"
    },
    "split_keywords": [
        "cloudformation",
        "cfn",
        "stack",
        "template",
        "config",
        "configuration"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3bce0da3ff57c11a1e2a048a0a20bf1f65fd0f7c1e2fde24034adcbd5378e5e1",
                "md5": "58be3f373384dba7b52f6ebd0ef5d517",
                "sha256": "7342954b03e69df80e6caba434fdc1b88361a3ed649a655462dd1a6e1ed019a9"
            },
            "downloads": -1,
            "filename": "carica_cfn_tools-1.25-py2.py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "58be3f373384dba7b52f6ebd0ef5d517",
            "packagetype": "bdist_wheel",
            "python_version": "py2.py3",
            "requires_python": null,
            "size": 18746,
            "upload_time": "2024-01-30T17:54:50",
            "upload_time_iso_8601": "2024-01-30T17:54:50.553182Z",
            "url": "https://files.pythonhosted.org/packages/3b/ce/0da3ff57c11a1e2a048a0a20bf1f65fd0f7c1e2fde24034adcbd5378e5e1/carica_cfn_tools-1.25-py2.py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5b9a828d61816ae1e2ba21536e0d020fa77a53867b87e442a17735f843d26413",
                "md5": "f115af3cd6e515d981a689327b955262",
                "sha256": "ec0efe56aedd8149081008714f4d06eaee322eef01f6797be32756394f52e446"
            },
            "downloads": -1,
            "filename": "carica_cfn_tools-1.25.tar.gz",
            "has_sig": false,
            "md5_digest": "f115af3cd6e515d981a689327b955262",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 18440,
            "upload_time": "2024-01-30T17:54:52",
            "upload_time_iso_8601": "2024-01-30T17:54:52.427395Z",
            "url": "https://files.pythonhosted.org/packages/5b/9a/828d61816ae1e2ba21536e0d020fa77a53867b87e442a17735f843d26413/carica_cfn_tools-1.25.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-01-30 17:54:52",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "caricalabs",
    "github_project": "carica-cfn-tools",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [],
    "lcname": "carica-cfn-tools"
}
        
Elapsed time: 0.17572s