Diadem extends Idem's capabilities, focusing on organizing, parametrizing, and visualizing SLS files across multi-cloud environments.
Project description
Diadem is a Python-based tool designed to streamline cloud resource management by organizing, parametrizing, and visualizing SLS files across various cloud platforms, enhancing both efficiency and security.
About
Diadem offers a comprehensive solution for managing extensive cloud resources. Built on POP, it integrates seamlessly with Idem, providing a user-friendly interface for handling complex cloud infrastructures. Its visualization capabilities offer clear insights into resource dependencies, making it an essential tool for modern cloud environments.
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
Parametrize sls files by creating arg-bind relationships and an SLS tree:
idem compile aws.sls gitlab.sls --tree /srv/idem
This reads aws.sls and gitlab.sls into memory onto idem’s unified SLS tree. It then uses diadem to create param files based on similarities between the resource states. The new parameterized SLS files and param files are then put into the /srv/idem directory.
Visualize relationships between resources using matplotlib:
idem view /srv/idem
Run idem state on the newly crafted sls/param trees:
idem state --tree /srv/idem
Roadmap
Reference the open issues for a list of proposed features (and known issues).
Acknowledgements
Img Shields for making repository badges easy.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file diadem-1.0.0.tar.gz
.
File metadata
- Download URL: diadem-1.0.0.tar.gz
- Upload date:
- Size: 23.0 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/2.1.0 tqdm/4.66.1 importlib-metadata/7.0.1 keyring/24.3.0 rfc3986/2.0.0 colorama/0.4.6 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cd9a9f13bd9bce8158b4d6fdcff30f9a0dfbc7abbf36f13f8802bd89c32ebef0 |
|
MD5 | 08089f1de754b11fbbf5bb1853a918b7 |
|
BLAKE2b-256 | 4c37b5e990ad0971dbdf5560161f93b7044ca7272d4c58a22e212a6c5416b5db |
File details
Details for the file diadem-1.0.0-py3-none-any.whl
.
File metadata
- Download URL: diadem-1.0.0-py3-none-any.whl
- Upload date:
- Size: 31.8 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/2.1.0 tqdm/4.66.1 importlib-metadata/7.0.1 keyring/24.3.0 rfc3986/2.0.0 colorama/0.4.6 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 60a82697a8eb976355351080603fa83a3dbc7f689bb0a0e642d4f72ae117fb33 |
|
MD5 | c06f53d8c06be37602f10bef513392c3 |
|
BLAKE2b-256 | 2b4efb8465198cbb4bdb218880b402cf1fa18ba9df31d00bc2207ed597f1e279 |