Skip to main content

Contracts, Configuration, and Bootstrapping methods common to all idem cloud implementations

USAGE and INSTALLATION

A guide to getting started!

Binary

We’ve provided a new means of using idem-cloud. Now a portable binary can be downloaded and it will contains a pre-compiled version of idem and all it’s necessary sub-components.

Once downloaded from here [link HERE], idem-cloud can be ran as an executable from the CLI as such:

./idem-cloud --help

What makes this approach so fantastic is no system changes need to be made in order to run idem-cloud. This allows you as a user to download an executable and immediately start managing your cloud infrastructure.

Traditional Install

If you would prefer a more traditional experience on your system, please follow these steps below to install: This can be installed via pip:

pip install idem-cloud

DEVELOPMENT

Clone the idem-cloud repository and install with pip.

git clone git@gitlab.com:saltstack/pop/idem-cloud.git
pip install -e idem_cloud

TESTING

  • Install docker-compose and enable the docker service

  • Install the testing requirements:

    pip install -r requirements-test.txt
  • Run the tests:

    pytest tests

Set UP

After installation the Idem Bootstrap execution and state modules will be accessible to the pop hub.

EXECUTION MODULES

Once everything has been set up properly, execution modules can be called directly by idem. Execution modules can be accessed by reference relative to their location in the exec directory in idem-cloud/cloud For example, idem-cloud/cloud/exec/bootstrap/salt.py contains a function called create() This function can be accessed from the command line with:

idem exec bootstrap.salt.create user=root host=127.0.0.1

Filters can be used when calling list functions from any cloud list function from the command line, such as idem-aws, so that the output isn’t so verbose:

idem exec aws.ec2.vpc.list --filter vpc_id

STATES

States are also accessed by their relative location in idem-aws/idem_aws/states. For example, idem-aws/idem_aws/states/aws/ec2/vpc.py contains a function absent(). In my state file I can create a state that uses the absent function like so.

my_state.sls:

idem_cloud_boostrap:
  bootstrap.salt.absent:
    - user: root
    - host: 127.0.0.1

I can execute this state with:

idem state my_state.sls

idem state also has some flags that can significantly boost the scalability and performance of the run. Let’s use this new state which verifies that 100 vpcs are absent:

{% for i in range(100) %}
idem_cloud_boostrap_minion_{{i}}:
  bootstrap.salt.absent:
    - host: "idem_cloud_test_minion_{{i}}"
    - user: root
{% endfor -%}

I can execute this state with –runtime parallel to make full use of idem’s async execution calls:

idem state --runtime parallel my_state.sls

Metadata

Release files for idem-cloud 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for idem-cloud 1.0.1
File Size Uploaded
idem-cloud-1.0.1.tar.gz 7.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for idem-cloud 1.0.1
File Interpreter ABI Platform
idem_cloud-1.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 15.8 kB

Release files / idem-cloud-1.0.1.tar.gz

Download URL idem-cloud-1.0.1.tar.gz
Size 7.9 kB
Tags Source
SHA-256 checksum
How to use checksums
0f85dcae0d3b2a5b5fca97312128c6fd077aa7540a2bf60969b42dd19de0a5bb
BLAKE2b-256 checksum
How to use checksums
3f520043ebd805e202df646d434fdd03ecd1e4509918f86a54e2ff483326dcbc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.7

Release files / idem_cloud-1.0.1-py3-none-any.whl

Download URL idem_cloud-1.0.1-py3-none-any.whl
Size 7.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cccefd123042ae9d16bcb2b3f4289ee063fc1bab2e3c62b0f5abb10b1a0debaf
BLAKE2b-256 checksum
How to use checksums
bf842bf3c7c8cb4789b904133bd9f4d7d648f595724067221e4591d58906183f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.7

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page