Skip to main content

IDEM_CSP

CSP Cloud Provider for Idem

DEVELOPMENT

Clone the idem-csp repository and install with pip.

git clone git@gitlab.com:vmware/idem/idem-csp.git
pip install -e idem_csp

ACCT

After installation the CSP Idem Provider execution and state modules will be accessible to the pop hub. In order to use them we need to set up our credentials. Follow the instructions to generate an api token.

Create a new file called credentials.yaml and populate it with credentials. The default profile will be used automatically by idem unless you specify one with –acct-profile=profile_name on the cli.

There are many ways aws providers/profiles can be stored. See acct backends for more information.

A profile needs to specify the api key it uses and can optionally specify the api url.

credentials.yaml

csp.token:
  default:
    refresh_token: dmd23q3au8ljyajcvhz207of4ivsn9vjiaxzez223qeagdpe0voqiasknykv58jt
    default_org_id: defaults_to_the_logged_in_user_org_id
    # Optional configuration, defaults will be used for these values if not supplied
    csp_url: https://console.cloud.vmware.com

A profile can also be created that uses an access_token directly. However, a csp_url and default_org_id must be explicitly defined.

credentials.yaml

csp:
    my_profile:
        csp_url: https://console.cloud.vmware.com
        default_org_id: my_org_id
        headers:
            csp-auth-token: kl2k3jjoij0un093wjn092w34jta0-3

Now encrypt the credentials file and add the encryption key and encrypted file path to the ENVIRONMENT.

The acct command should be available as it is a requisite of idem and idem-csp. Encrypt the the credential file.

acct encrypt credentials.yaml

output:

-A9ZkiCSOjWYG_lbGmmkVh4jKLFDyOFH4e4S1HNtNwI=

Add these to your environment:

export ACCT_KEY="-A9ZkiCSOjWYG_lbGmmkVh4jKLFDyOFH4e4S1HNtNwI="
export ACCT_FILE=$PWD/credentials.yaml.fernet

Usage

This plugin allows your app to integrate csp authentication.

If your project implements exec modules then add csp to the auth plugins for your project like so:

# my_project_root/my_project/exec/my_project/init.py
def __init__(hub):
    hub.exec.my_project.ACCT = ["csp"]

If your project implements state modules then add csp to the auth plugins for your project like so:

# my_project_root/my_project/states/my_project/init.py
def __init__(hub):
    hub.states.my_project.ACCT = ["csp"]
async def my_func(hub, ctx):
    # Call any exec modules from idem-aiohttp, the ctx contains the right headers for csp apps
    ret = await hub.exec.json.get(ctx, url=f"my_app_url")
    # ret.result will be "True" if the command was a success
    assert ret.result, ret.comment
    # ret.ret has the return data
    return ret.ret

Metadata

Release files for idem-csp 2.0.0

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-csp 2.0.0
File Size Uploaded
idem-csp-2.0.0.tar.gz 8.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for idem-csp 2.0.0
File Interpreter ABI Platform
idem_csp-2.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 16.9 kB

Release files / idem-csp-2.0.0.tar.gz

Download URL idem-csp-2.0.0.tar.gz
Size 8.6 kB
Tags Source
SHA-256 checksum
How to use checksums
66f4e5e9aa936bc6502930a6bcc1eb241bbf9941d1df6871524a24be95b07617
BLAKE2b-256 checksum
How to use checksums
484494abfa988b11119ffa176a5415c69a631fcbb2f1e19ab15cbd8616a8b13e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.2

Release files / idem_csp-2.0.0-py3-none-any.whl

Download URL idem_csp-2.0.0-py3-none-any.whl
Size 8.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
64b6dc8800b1322e1432ec7e78259f810bbae4ea75fdfe990f082375d9ad0744
BLAKE2b-256 checksum
How to use checksums
b1bfd1d300f400d3e3a7fba5def09e52096547debab0b19b9e8398db69a688c7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.2

Release history Release notifications | RSS feed

This release

2.0.0 This release

2 release files

1.0.1

2 release files

1.0.0

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