diadem


Namediadem JSON
Version 1.0.1 PyPI version JSON
download
home_pagehttps://gitlab.com/akm0d/diadem
SummaryDiadem extends Idem's capabilities, focusing on organizing, parametrizing, and visualizing SLS files across multi-cloud environments.
upload_time2024-01-29 18:09:25
maintainer
docs_urlNone
authorTyler Levy Conde
requires_python>=3.10
licenseApache Software License 2.0
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ======
diadem
======

.. image:: https://img.shields.io/badge/made%20with-pop-teal
   :alt: Made with pop, a Python implementation of Plugin Oriented Programming
   :target: https://pop.readthedocs.io/

.. image:: https://img.shields.io/badge/made%20with-python-yellow
   :alt: Made with Python
   :target: https://www.python.org/

Diadem extends idem to streamline cloud resource management by organizing, parametrizing, and visualizing SLS data.

About
=====

Built on POP, diadem integrates with Idem, providing a user-friendly cli interface for handling complex cloud infrastructures.
It extends idem with the subcommands "compile" and "view", which grant idem the ability to do tasks based on complex
analysis of relationships between resources. Such as:

- Graphing the relationships between resources
- Identifying orphans
- Abstracting the similarities between resources into params
- Creating arg-bind relationships between resources

Each of these abilities enable you to easily get started with efficiently managing cloud resources with idem from ground zero.

What is POP?
------------

This project is built with `pop <https://pop.readthedocs.io/>`__, a Python-based
implementation of *Plugin Oriented Programming (POP)*. POP seeks to bring
together concepts and wisdom from the history of computing in new ways to solve
modern computing problems.

For more information:

* `Intro to Plugin Oriented Programming (POP) <https://pop-book.readthedocs.io/en/latest/>`__
* `pop-awesome <https://gitlab.com/vmware/pop/pop-awesome>`__
* `pop-create <https://gitlab.com/vmware/pop/pop-create/>`__

Getting Started
===============

Prerequisites
-------------

* Python 3.10+
* git *(if installing from source, or contributing to the project)*

Installation
------------

.. note::

   If wanting to contribute to the project, and setup your local development
   environment, see the ``CONTRIBUTING.rst`` document in the source repository
   for this project.

If wanting to use ``diadem``, you can do so by either
installing from PyPI or from source.

Install from PyPI
+++++++++++++++++

Install diadem with only the "compile" functionality:

.. code-block:: bash

   pip install diadem

Install diadem with matplotlib for data visualizations with matplotlib and networkx:

.. code-block:: bash

   pip install diadem[visualize]

Install from source
+++++++++++++++++++

.. code-block:: bash

   # clone repo
   git clone git@gitlab.com:Akm0d/diadem.git
   cd diadem

   # Setup venv
   python3 -m virtualenv .venv
   source .venv/bin/activate
   pip install -e .

Usage
=====

Diadem simplifies the management of cloud resources.
Use it to enumerate resources, organize SLS files, and visualize cloud infrastructure, ensuring efficient and secure cloud operations.

Examples
--------

Enumerate cloud resources with idem describe:

.. code-block:: bash

   idem describe "aws.*" > aws.sls
   idem describe "gitlab.*" > gitlab.sls

Create argbind relationships between resources only:

.. code-block:: bash

   idem compile aws.sls gitlab.sls --match-strategy=pass

Parametrize sls files by creating arg-bind relationships and abstract similarities between resources into params:

.. code-block:: bash

   idem compile aws.sls gitlab.sls

Parametrize sls files by creating arg-bind relationships, abstract similarities between resources into params, and organize the output into logical groups in a file tree:

.. code-block:: bash

   idem compile aws.sls gitlab.sls --tree=/srv/idem


Visualize relationships between resources using matplotlib:

.. code-block:: bash

   idem view /srv/idem/state --params /srv/idem/param

Run idem state on the newly crafted sls/param trees:

.. code-block:: bash

   idem state /srv/idem/state --params /srv/idem/param

Identify orphan resources and craft absent states for them:

.. code-block:: bash

   idem view /srv/idem/state  --params /srv/idem/param > orphans.sls

Show a graph of relationships between resources (requires having installed diadem with the "visualize" extras):

.. code-block:: bash

   idem view /srv/idem/state --params /srv/idem/param --show

Roadmap
=======

Reference the `open issues <https://gitlab.com/akm0d/diadem/issues>`__ for a list of
proposed features (and known issues).

Acknowledgements
================

* `Img Shields <https://shields.io>`__ for making repository badges easy.

            

Raw data

            {
    "_id": null,
    "home_page": "https://gitlab.com/akm0d/diadem",
    "name": "diadem",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": "",
    "keywords": "",
    "author": "Tyler Levy Conde",
    "author_email": "yonstib@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/2b/d8/71bcf974c325d4b68713fde29f2b567bd3578d91eae61936ca2ae3993d69/diadem-1.0.1.tar.gz",
    "platform": null,
    "description": "======\ndiadem\n======\n\n.. image:: https://img.shields.io/badge/made%20with-pop-teal\n   :alt: Made with pop, a Python implementation of Plugin Oriented Programming\n   :target: https://pop.readthedocs.io/\n\n.. image:: https://img.shields.io/badge/made%20with-python-yellow\n   :alt: Made with Python\n   :target: https://www.python.org/\n\nDiadem extends idem to streamline cloud resource management by organizing, parametrizing, and visualizing SLS data.\n\nAbout\n=====\n\nBuilt on POP, diadem integrates with Idem, providing a user-friendly cli interface for handling complex cloud infrastructures.\nIt extends idem with the subcommands \"compile\" and \"view\", which grant idem the ability to do tasks based on complex\nanalysis of relationships between resources. Such as:\n\n- Graphing the relationships between resources\n- Identifying orphans\n- Abstracting the similarities between resources into params\n- Creating arg-bind relationships between resources\n\nEach of these abilities enable you to easily get started with efficiently managing cloud resources with idem from ground zero.\n\nWhat is POP?\n------------\n\nThis project is built with `pop <https://pop.readthedocs.io/>`__, a Python-based\nimplementation of *Plugin Oriented Programming (POP)*. POP seeks to bring\ntogether concepts and wisdom from the history of computing in new ways to solve\nmodern computing problems.\n\nFor more information:\n\n* `Intro to Plugin Oriented Programming (POP) <https://pop-book.readthedocs.io/en/latest/>`__\n* `pop-awesome <https://gitlab.com/vmware/pop/pop-awesome>`__\n* `pop-create <https://gitlab.com/vmware/pop/pop-create/>`__\n\nGetting Started\n===============\n\nPrerequisites\n-------------\n\n* Python 3.10+\n* git *(if installing from source, or contributing to the project)*\n\nInstallation\n------------\n\n.. note::\n\n   If wanting to contribute to the project, and setup your local development\n   environment, see the ``CONTRIBUTING.rst`` document in the source repository\n   for this project.\n\nIf wanting to use ``diadem``, you can do so by either\ninstalling from PyPI or from source.\n\nInstall from PyPI\n+++++++++++++++++\n\nInstall diadem with only the \"compile\" functionality:\n\n.. code-block:: bash\n\n   pip install diadem\n\nInstall diadem with matplotlib for data visualizations with matplotlib and networkx:\n\n.. code-block:: bash\n\n   pip install diadem[visualize]\n\nInstall from source\n+++++++++++++++++++\n\n.. code-block:: bash\n\n   # clone repo\n   git clone git@gitlab.com:Akm0d/diadem.git\n   cd diadem\n\n   # Setup venv\n   python3 -m virtualenv .venv\n   source .venv/bin/activate\n   pip install -e .\n\nUsage\n=====\n\nDiadem simplifies the management of cloud resources.\nUse it to enumerate resources, organize SLS files, and visualize cloud infrastructure, ensuring efficient and secure cloud operations.\n\nExamples\n--------\n\nEnumerate cloud resources with idem describe:\n\n.. code-block:: bash\n\n   idem describe \"aws.*\" > aws.sls\n   idem describe \"gitlab.*\" > gitlab.sls\n\nCreate argbind relationships between resources only:\n\n.. code-block:: bash\n\n   idem compile aws.sls gitlab.sls --match-strategy=pass\n\nParametrize sls files by creating arg-bind relationships and abstract similarities between resources into params:\n\n.. code-block:: bash\n\n   idem compile aws.sls gitlab.sls\n\nParametrize sls files by creating arg-bind relationships, abstract similarities between resources into params, and organize the output into logical groups in a file tree:\n\n.. code-block:: bash\n\n   idem compile aws.sls gitlab.sls --tree=/srv/idem\n\n\nVisualize relationships between resources using matplotlib:\n\n.. code-block:: bash\n\n   idem view /srv/idem/state --params /srv/idem/param\n\nRun idem state on the newly crafted sls/param trees:\n\n.. code-block:: bash\n\n   idem state /srv/idem/state --params /srv/idem/param\n\nIdentify orphan resources and craft absent states for them:\n\n.. code-block:: bash\n\n   idem view /srv/idem/state  --params /srv/idem/param > orphans.sls\n\nShow a graph of relationships between resources (requires having installed diadem with the \"visualize\" extras):\n\n.. code-block:: bash\n\n   idem view /srv/idem/state --params /srv/idem/param --show\n\nRoadmap\n=======\n\nReference the `open issues <https://gitlab.com/akm0d/diadem/issues>`__ for a list of\nproposed features (and known issues).\n\nAcknowledgements\n================\n\n* `Img Shields <https://shields.io>`__ for making repository badges easy.\n",
    "bugtrack_url": null,
    "license": "Apache Software License 2.0",
    "summary": "Diadem extends Idem's capabilities, focusing on organizing, parametrizing, and visualizing SLS files across multi-cloud environments.",
    "version": "1.0.1",
    "project_urls": {
        "Homepage": "https://gitlab.com/akm0d/diadem"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "890f1cff38c82fff0280d1962a3b914397a164af6fa5b4535d97f8656a5b69b1",
                "md5": "3219f32bf078de73230b99bb428d1496",
                "sha256": "0ad3227b53a23ccca817c61bdf10cdda372199c8d0eef1ea0b82bb28c30296a5"
            },
            "downloads": -1,
            "filename": "diadem-1.0.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "3219f32bf078de73230b99bb428d1496",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 29436,
            "upload_time": "2024-01-29T18:09:23",
            "upload_time_iso_8601": "2024-01-29T18:09:23.614752Z",
            "url": "https://files.pythonhosted.org/packages/89/0f/1cff38c82fff0280d1962a3b914397a164af6fa5b4535d97f8656a5b69b1/diadem-1.0.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2bd871bcf974c325d4b68713fde29f2b567bd3578d91eae61936ca2ae3993d69",
                "md5": "3daa65d6c12834c8cc13ad4457e60613",
                "sha256": "60d3dd31b310602156e2d6901a456095766d2ca343d66e201053f084c7009140"
            },
            "downloads": -1,
            "filename": "diadem-1.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "3daa65d6c12834c8cc13ad4457e60613",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 23191,
            "upload_time": "2024-01-29T18:09:25",
            "upload_time_iso_8601": "2024-01-29T18:09:25.418812Z",
            "url": "https://files.pythonhosted.org/packages/2b/d8/71bcf974c325d4b68713fde29f2b567bd3578d91eae61936ca2ae3993d69/diadem-1.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-01-29 18:09:25",
    "github": false,
    "gitlab": true,
    "bitbucket": false,
    "codeberg": false,
    "gitlab_user": "akm0d",
    "gitlab_project": "diadem",
    "lcname": "diadem"
}
        
Elapsed time: 0.17145s