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"
}