ecs-files-composer


Nameecs-files-composer JSON
Version 1.3.0 PyPI version JSON
download
home_page
SummaryFiles and configuration handler to inject configuration files into volumes for ECS containers
upload_time2023-07-04 12:20:27
maintainer
docs_urlNone
authorJohn Preston
requires_python>=3.8,<4.0
licenseMPL-2.0
keywords aws ecs k8s secrets
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            .. meta::
    :description: ECS Files Composer input config
    :keywords: AWS, AWS ECS, Docker, Compose, docker-compose, AWS S3, AWS SSM, Secrets, Configuration

===================
ECS Files Composer
===================


.. image:: https://img.shields.io/pypi/v/ecs_files_composer.svg
        :target: https://pypi.python.org/pypi/ecs_files_composer


.. image:: https://codebuild.eu-west-1.amazonaws.com/badges?uuid=eyJlbmNyeXB0ZWREYXRhIjoiRWk3VUhxUi9peEdZRGs2cGFiTk5XM0VDK1FEQTBMN2JTdHh5b091NTVVdFd3RmpoM1lpdGkrTGtTZDJzVCt5dDBCc3Zsc0dXWHI5RHJRSG82UFJNdUJzPSIsIml2UGFyYW1ldGVyU3BlYyI6InJlYXlBWStNMDVZNEoyMnQiLCJtYXRlcmlhbFNldFNlcmlhbCI6MX0%3D&branch=main


What does it do?
=================

ECS Files Composer, although can be used in EKS and other Docker context, is a small program that will allow users
to define files they need pulled out of AWS Services, such as AWS S3 or AWS SSM Parameter Store, and load the content
to a given location, adding builtin capabilities to set file ownership, mode, and other handy features.

The configuration of the job to perform can be written in YAML or JSON (see examples), so long as they comply to a given
schema.

Why use it?
============

Having your core application, when reliant on configuration files, can be tricky to start in a way that the configuration
needs to be pulled first and then started. This can add un-necessary complexity and logic to the application.
And some docker images you might pull off the shelves from DockerHub do not necessarily allow for configuration override
from environment variables.

By using a sidecar that handles all of that logic, you delegate all of these activities to it. And with the ability to define
which container to start first with success criteria, you also ensure that your application won't start without the configuration
files it needs.

.. hint::

    This app / docker image can be used in any context, locally, on-premise, with Docker, on AWS ECS / EKS or in other cloud platforms.

How to use it ?
=================

`Full official documentation <https://docs.files-composer.compose-x.io/index.html>`__


Docker
----------------

.. code-block:: bash

    docker run public.ecr.aws/compose-x/ecs-files-composer:${VERSION:-latest} -h
    docker run -v $PWD:/ /var/tmp,:/public.ecr.aws/compose-x/ecs-files-composer:${VERSION:-latest} -f files.yaml

.. attention::

    The default user is root to avoid running into issues when using chmod/chown and other commands.
    Change behaviour at your own risks.


CLI
------------

.. code-block:: bash


    usage: ecs_files_composer [-h] [-f FILE_PATH | -e ENV_VAR | --from-ssm SSM_CONFIG | --from-s3 S3_CONFIG] [--role-arn ROLE_ARN] [_ ...]

    optional arguments:
      -h, --help            show this help message and exit
      -f FILE_PATH, --from-file FILE_PATH
                            Configuration for execution from a file
      -e ENV_VAR, --from-env-var ENV_VAR
                            Configuration for execution is in an environment variable
      --from-ssm SSM_CONFIG
                            Configuration for execution is in an SSM Parameter
      --from-s3 S3_CONFIG   Configuration for execution is in an S3
      --role-arn ROLE_ARN   The Role ARN to use for the configuration initialization

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "ecs-files-composer",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.8,<4.0",
    "maintainer_email": "",
    "keywords": "aws,ecs,k8s,secrets",
    "author": "John Preston",
    "author_email": "john@compose-x.io",
    "download_url": "https://files.pythonhosted.org/packages/2b/85/b094bf892862db9b6d96d84f29c685fd70013f1270af8eaa392c6533d475/ecs_files_composer-1.3.0.tar.gz",
    "platform": null,
    "description": ".. meta::\n    :description: ECS Files Composer input config\n    :keywords: AWS, AWS ECS, Docker, Compose, docker-compose, AWS S3, AWS SSM, Secrets, Configuration\n\n===================\nECS Files Composer\n===================\n\n\n.. image:: https://img.shields.io/pypi/v/ecs_files_composer.svg\n        :target: https://pypi.python.org/pypi/ecs_files_composer\n\n\n.. image:: https://codebuild.eu-west-1.amazonaws.com/badges?uuid=eyJlbmNyeXB0ZWREYXRhIjoiRWk3VUhxUi9peEdZRGs2cGFiTk5XM0VDK1FEQTBMN2JTdHh5b091NTVVdFd3RmpoM1lpdGkrTGtTZDJzVCt5dDBCc3Zsc0dXWHI5RHJRSG82UFJNdUJzPSIsIml2UGFyYW1ldGVyU3BlYyI6InJlYXlBWStNMDVZNEoyMnQiLCJtYXRlcmlhbFNldFNlcmlhbCI6MX0%3D&branch=main\n\n\nWhat does it do?\n=================\n\nECS Files Composer, although can be used in EKS and other Docker context, is a small program that will allow users\nto define files they need pulled out of AWS Services, such as AWS S3 or AWS SSM Parameter Store, and load the content\nto a given location, adding builtin capabilities to set file ownership, mode, and other handy features.\n\nThe configuration of the job to perform can be written in YAML or JSON (see examples), so long as they comply to a given\nschema.\n\nWhy use it?\n============\n\nHaving your core application, when reliant on configuration files, can be tricky to start in a way that the configuration\nneeds to be pulled first and then started. This can add un-necessary complexity and logic to the application.\nAnd some docker images you might pull off the shelves from DockerHub do not necessarily allow for configuration override\nfrom environment variables.\n\nBy using a sidecar that handles all of that logic, you delegate all of these activities to it. And with the ability to define\nwhich container to start first with success criteria, you also ensure that your application won't start without the configuration\nfiles it needs.\n\n.. hint::\n\n    This app / docker image can be used in any context, locally, on-premise, with Docker, on AWS ECS / EKS or in other cloud platforms.\n\nHow to use it ?\n=================\n\n`Full official documentation <https://docs.files-composer.compose-x.io/index.html>`__\n\n\nDocker\n----------------\n\n.. code-block:: bash\n\n    docker run public.ecr.aws/compose-x/ecs-files-composer:${VERSION:-latest} -h\n    docker run -v $PWD:/ /var/tmp,:/public.ecr.aws/compose-x/ecs-files-composer:${VERSION:-latest} -f files.yaml\n\n.. attention::\n\n    The default user is root to avoid running into issues when using chmod/chown and other commands.\n    Change behaviour at your own risks.\n\n\nCLI\n------------\n\n.. code-block:: bash\n\n\n    usage: ecs_files_composer [-h] [-f FILE_PATH | -e ENV_VAR | --from-ssm SSM_CONFIG | --from-s3 S3_CONFIG] [--role-arn ROLE_ARN] [_ ...]\n\n    optional arguments:\n      -h, --help            show this help message and exit\n      -f FILE_PATH, --from-file FILE_PATH\n                            Configuration for execution from a file\n      -e ENV_VAR, --from-env-var ENV_VAR\n                            Configuration for execution is in an environment variable\n      --from-ssm SSM_CONFIG\n                            Configuration for execution is in an SSM Parameter\n      --from-s3 S3_CONFIG   Configuration for execution is in an S3\n      --role-arn ROLE_ARN   The Role ARN to use for the configuration initialization\n",
    "bugtrack_url": null,
    "license": "MPL-2.0",
    "summary": "Files and configuration handler to inject configuration files into volumes for ECS containers",
    "version": "1.3.0",
    "project_urls": null,
    "split_keywords": [
        "aws",
        "ecs",
        "k8s",
        "secrets"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "69adb39504b32d42bbb2194e34c0ef0d2a4157b79a3dc7b216a8c6fb919c6ad4",
                "md5": "4b8f64a39088cc6a47e178c0f8697fc8",
                "sha256": "07d8c324b3cd1ffb03dc7423099e837bf3b1c96b0a022ddd901cf181696ab353"
            },
            "downloads": -1,
            "filename": "ecs_files_composer-1.3.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "4b8f64a39088cc6a47e178c0f8697fc8",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8,<4.0",
            "size": 26146,
            "upload_time": "2023-07-04T12:20:25",
            "upload_time_iso_8601": "2023-07-04T12:20:25.761151Z",
            "url": "https://files.pythonhosted.org/packages/69/ad/b39504b32d42bbb2194e34c0ef0d2a4157b79a3dc7b216a8c6fb919c6ad4/ecs_files_composer-1.3.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2b85b094bf892862db9b6d96d84f29c685fd70013f1270af8eaa392c6533d475",
                "md5": "3175f32d5a7089a4adacb08574a14856",
                "sha256": "3a0314c8bcd5bad962692003a386349fadc0f81340da53576e5122f1cbff9d88"
            },
            "downloads": -1,
            "filename": "ecs_files_composer-1.3.0.tar.gz",
            "has_sig": false,
            "md5_digest": "3175f32d5a7089a4adacb08574a14856",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8,<4.0",
            "size": 23140,
            "upload_time": "2023-07-04T12:20:27",
            "upload_time_iso_8601": "2023-07-04T12:20:27.652641Z",
            "url": "https://files.pythonhosted.org/packages/2b/85/b094bf892862db9b6d96d84f29c685fd70013f1270af8eaa392c6533d475/ecs_files_composer-1.3.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-07-04 12:20:27",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "ecs-files-composer"
}
        
Elapsed time: 2.90386s