Skip to main content

Diadem extends Idem's capabilities, focusing on organizing, parametrizing, and visualizing SLS files across multi-cloud environments.

Project description

Made with pop, a Python implementation of Plugin Oriented Programming Made with Python

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, 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:

Getting Started

Prerequisites

  • Python 3.10+

  • git (if installing from source, or contributing to the project)

Installation

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:

pip install diadem

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

pip install diadem[visualize]

Install from source

# 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:

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

Create argbind relationships between resources only:

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

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

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:

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

Visualize relationships between resources using matplotlib:

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

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

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

Identify orphan resources and craft absent states for them:

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):

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

Roadmap

Reference the open issues for a list of proposed features (and known issues).

Acknowledgements

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

diadem-1.0.1.tar.gz (23.2 kB view details)

Uploaded Source

Built Distribution

diadem-1.0.1-py3-none-any.whl (29.4 kB view details)

Uploaded Python 3

File details

Details for the file diadem-1.0.1.tar.gz.

File metadata

  • Download URL: diadem-1.0.1.tar.gz
  • Upload date:
  • Size: 23.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.9.6 readme-renderer/41.0 requests/2.31.0 requests-toolbelt/1.0.0 urllib3/1.26.18 tqdm/4.66.1 importlib-metadata/7.0.1 keyring/24.3.0 rfc3986/2.0.0 colorama/0.4.6 CPython/3.10.12

File hashes

Hashes for diadem-1.0.1.tar.gz
Algorithm Hash digest
SHA256 60d3dd31b310602156e2d6901a456095766d2ca343d66e201053f084c7009140
MD5 3daa65d6c12834c8cc13ad4457e60613
BLAKE2b-256 2bd871bcf974c325d4b68713fde29f2b567bd3578d91eae61936ca2ae3993d69

See more details on using hashes here.

File details

Details for the file diadem-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: diadem-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 29.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.9.6 readme-renderer/41.0 requests/2.31.0 requests-toolbelt/1.0.0 urllib3/1.26.18 tqdm/4.66.1 importlib-metadata/7.0.1 keyring/24.3.0 rfc3986/2.0.0 colorama/0.4.6 CPython/3.10.12

File hashes

Hashes for diadem-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0ad3227b53a23ccca817c61bdf10cdda372199c8d0eef1ea0b82bb28c30296a5
MD5 3219f32bf078de73230b99bb428d1496
BLAKE2b-256 890f1cff38c82fff0280d1962a3b914397a164af6fa5b4535d97f8656a5b69b1

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page