kompozit


Namekompozit JSON
Version 0.2.1b0 PyPI version JSON
download
home_pagehttps://github.com/veerendra2/kompozit
SummaryDeclarative Configuration Management Tool for Docker Compose.
upload_time2024-12-24 17:58:28
maintainerNone
docs_urlNone
authorveerendra2
requires_python>=3.9
licenseApache License
keywords gitops cicd docker-compose configuration management
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Kompozit

[![Docker Pulls](https://img.shields.io/docker/pulls/veerendra2/kompozit)](https://hub.docker.com/r/veerendra2/kompozit) [![PyPI - Status](https://img.shields.io/pypi/status/kompozit)](https://pypi.org/project/kompozit/) [![PyPI - Version](https://img.shields.io/pypi/v/kompozit)](https://pypi.org/project/kompozit/) [![PyPI - Downloads](https://img.shields.io/pypi/dm/kompozit)](https://pypi.org/project/kompozit/) [![Release](https://github.com/veerendra2/kompozit/actions/workflows/release.yml/badge.svg)](https://github.com/veerendra2/kompozit/actions/workflows/release.yml)

> ℹ Mostly likely you may want to use [Use multiple Compose files](https://docs.docker.com/compose/how-tos/multiple-compose-files/) in Docker Compose itself.

Declarative Configuration Management Tool for Docker Compose.

_Like [`kustomize.io`](https://kustomize.io/), but for [Docker Compose](https://docs.docker.com/compose/)._

<p align="center">
  <img alt="kompozit logo", width="150" src="https://i.postimg.cc/cH1dYN6f/komposeit.png">
</p>

## Features

Kompozit simplifies complex Docker Compose setups using declarative overlays, supporting:

- **[`patchesJSON6902`](https://datatracker.ietf.org/doc/html/rfc6902)**: Precise modifications with JSON Merge Patch.
- **[`patchesStrategicMerge`](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-api-machinery/strategic-merge-patch.md)**: Flexible hierarchical changes with Strategic Merge Patch.

## Resources

- 📖 [Documentation](https://veerendra2.gitbook.io/kompozit)
- 🛠️ [Examples](https://github.com/veerendra2/kompozit/tree/main/examples)

## But Why...? 🤔

There are scenarios where you might need different Docker Compose configurations for the same application on different machines.

- For example, I use slightly different configurations for the Traefik reverse proxy when managing my public WordPress site versus my home server. Instead of maintaining multiple, slightly different `docker-compose.yml` files for the same app, you can use kompozit to simplify and manage these variations efficiently.

Additionally, kompozit allows you to combine multiple `docker-compose.yml` files into a single stack.

- For instance, you can keep a generic `docker-compose.yml` for PostgreSQL in a central location and customize it for different stacks in other locations as needed.

## Installation 💻

### PyPi

> [https://pypi.org/project/kompozit/](https://pypi.org/project/kompozit/)

```bash
python -m pip install kompozit

kompozit -h
usage: kompozit [-h] [-b BUILD_PATH] [-o OUTPUT_DIR] [-v]

Declarative Configuration Management Tool for Docker Compose.

options:
  -h, --help            show this help message and exit
  -b, --build BUILD_PATH
                        Path to a directory containing 'kompozition.yaml' or 'kompozition.yml'. (default: .)
  -o, --output-dir OUTPUT_DIR
                        Directory to save the generated Docker Compose files. (default: None)
  -v, --version         Show kompozit version
```

### Docker

> [https://hub.docker.com/r/veerendra2/kompozit](https://hub.docker.com/r/veerendra2/kompozit)

```bash
docker pull veerendra2/kompozit
```

## Usage Examples ⚙️

```bash
git clone git@github.com:veerendra2/kompozit.git
cd kompozit
python -m pip install .

kompozit --build ./examples/overlay
...

# inside docker
docker pull kompozit:latest
docker run -it --rm -v ./examples:/examples kompozit:latest -b /examples/overlay
```

## Local Development 🔧

```bash
git clone git@github.com:veerendra2/kompozit.git
cd kompozit

python -m venv venv
source venv/bin/activate
pip install -e .
```

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/veerendra2/kompozit",
    "name": "kompozit",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": "gitops, cicd, docker-compose, configuration management",
    "author": "veerendra2",
    "author_email": "vk.tyk23@simplelogin.com",
    "download_url": "https://files.pythonhosted.org/packages/ce/81/0101df1706f38c5dd996d47288e6e20e259684e27c010132d01a92f0ef9c/kompozit-0.2.1b0.tar.gz",
    "platform": null,
    "description": "# Kompozit\n\n[![Docker Pulls](https://img.shields.io/docker/pulls/veerendra2/kompozit)](https://hub.docker.com/r/veerendra2/kompozit) [![PyPI - Status](https://img.shields.io/pypi/status/kompozit)](https://pypi.org/project/kompozit/) [![PyPI - Version](https://img.shields.io/pypi/v/kompozit)](https://pypi.org/project/kompozit/) [![PyPI - Downloads](https://img.shields.io/pypi/dm/kompozit)](https://pypi.org/project/kompozit/) [![Release](https://github.com/veerendra2/kompozit/actions/workflows/release.yml/badge.svg)](https://github.com/veerendra2/kompozit/actions/workflows/release.yml)\n\n> \u2139 Mostly likely you may want to use [Use multiple Compose files](https://docs.docker.com/compose/how-tos/multiple-compose-files/) in Docker Compose itself.\n\nDeclarative Configuration Management Tool for Docker Compose.\n\n_Like [`kustomize.io`](https://kustomize.io/), but for [Docker Compose](https://docs.docker.com/compose/)._\n\n<p align=\"center\">\n  <img alt=\"kompozit logo\", width=\"150\" src=\"https://i.postimg.cc/cH1dYN6f/komposeit.png\">\n</p>\n\n## Features\n\nKompozit simplifies complex Docker Compose setups using declarative overlays, supporting:\n\n- **[`patchesJSON6902`](https://datatracker.ietf.org/doc/html/rfc6902)**: Precise modifications with JSON Merge Patch.\n- **[`patchesStrategicMerge`](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-api-machinery/strategic-merge-patch.md)**: Flexible hierarchical changes with Strategic Merge Patch.\n\n## Resources\n\n- \ud83d\udcd6 [Documentation](https://veerendra2.gitbook.io/kompozit)\n- \ud83d\udee0\ufe0f [Examples](https://github.com/veerendra2/kompozit/tree/main/examples)\n\n## But Why...? \ud83e\udd14\n\nThere are scenarios where you might need different Docker Compose configurations for the same application on different machines.\n\n- For example, I use slightly different configurations for the Traefik reverse proxy when managing my public WordPress site versus my home server. Instead of maintaining multiple, slightly different `docker-compose.yml` files for the same app, you can use kompozit to simplify and manage these variations efficiently.\n\nAdditionally, kompozit allows you to combine multiple `docker-compose.yml` files into a single stack.\n\n- For instance, you can keep a generic `docker-compose.yml` for PostgreSQL in a central location and customize it for different stacks in other locations as needed.\n\n## Installation \ud83d\udcbb\n\n### PyPi\n\n> [https://pypi.org/project/kompozit/](https://pypi.org/project/kompozit/)\n\n```bash\npython -m pip install kompozit\n\nkompozit -h\nusage: kompozit [-h] [-b BUILD_PATH] [-o OUTPUT_DIR] [-v]\n\nDeclarative Configuration Management Tool for Docker Compose.\n\noptions:\n  -h, --help            show this help message and exit\n  -b, --build BUILD_PATH\n                        Path to a directory containing 'kompozition.yaml' or 'kompozition.yml'. (default: .)\n  -o, --output-dir OUTPUT_DIR\n                        Directory to save the generated Docker Compose files. (default: None)\n  -v, --version         Show kompozit version\n```\n\n### Docker\n\n> [https://hub.docker.com/r/veerendra2/kompozit](https://hub.docker.com/r/veerendra2/kompozit)\n\n```bash\ndocker pull veerendra2/kompozit\n```\n\n## Usage Examples \u2699\ufe0f\n\n```bash\ngit clone git@github.com:veerendra2/kompozit.git\ncd kompozit\npython -m pip install .\n\nkompozit --build ./examples/overlay\n...\n\n# inside docker\ndocker pull kompozit:latest\ndocker run -it --rm -v ./examples:/examples kompozit:latest -b /examples/overlay\n```\n\n## Local Development \ud83d\udd27\n\n```bash\ngit clone git@github.com:veerendra2/kompozit.git\ncd kompozit\n\npython -m venv venv\nsource venv/bin/activate\npip install -e .\n```\n",
    "bugtrack_url": null,
    "license": "Apache License",
    "summary": "Declarative Configuration Management Tool for Docker Compose.",
    "version": "0.2.1b0",
    "project_urls": {
        "Documentation": "https://veerendra2.gitbook.io/kompozit",
        "Download": "https://github.com/veerendra2/kompozit/archive/0.2.1-beta.tar.gz",
        "Homepage": "https://github.com/veerendra2/kompozit"
    },
    "split_keywords": [
        "gitops",
        " cicd",
        " docker-compose",
        " configuration management"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ce810101df1706f38c5dd996d47288e6e20e259684e27c010132d01a92f0ef9c",
                "md5": "d3c43ca209e3e9f9b280a093da688793",
                "sha256": "2398d706455b1ef70b9594b36a74c22db90c4e7112e3819ee57546547667888a"
            },
            "downloads": -1,
            "filename": "kompozit-0.2.1b0.tar.gz",
            "has_sig": false,
            "md5_digest": "d3c43ca209e3e9f9b280a093da688793",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 9220,
            "upload_time": "2024-12-24T17:58:28",
            "upload_time_iso_8601": "2024-12-24T17:58:28.896567Z",
            "url": "https://files.pythonhosted.org/packages/ce/81/0101df1706f38c5dd996d47288e6e20e259684e27c010132d01a92f0ef9c/kompozit-0.2.1b0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-12-24 17:58:28",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "veerendra2",
    "github_project": "kompozit",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "kompozit"
}
        
Elapsed time: 1.59859s