CloudVE / CloudVE/cloudlaunch-cli

Pass temporary (not persisted) credentials when creating deployment

Open
#11 6 comments 0 reactions 1 assignee Claimed by @machristie View on GitHub
Dominant language
Python
Stars
4
Forks
2
PR merge metrics
No merged PRs in 30d

Description

Add the ability to providing credentials when creating a deployment. Currently the cloudlaunch-cli can create a deployment only if the user has default credentials for the given target cloud stored on the CLoudLaunch server. This new capability will support use cases where it is simpler to not have persisted default credentials in CloudLaunch and also to support users who may be reluctant to store their credentials with CloudLaunch.

The credentials can be passed as
* environment variables
* For AWS: `AWS_ACCESS_KEY` and `AWS_SECRET_KEY`
* For OpenStack: `OS_USERNAME`, `OS_PASSWORD`, `OS_PROJECT_NAME`, `OS_PROJECT_DOMAIN_NAME`, and `OS_USER_DOMAIN_NAME`
* For Azure: `AZURE_SUBSCRIPTION_ID`, `AZURE_CLIENT_ID`, `AZURE_SECRET`, `AZURE_TENANT`, `AZURE_RESOURCE_GROUP`, `AZURE_STORAGE_ACCOUNT`, `AZURE_VM_DEFAULT_USERNAME`
* For Google Compute Engine: `GCE_CREDENTIALS_JSON` which can either be a file path or the entire JSON as a string
* the path to a JSON file with the credential properties, via a `--credentials` argument
* For AWS this would be of the form
```json
{"aws_access_key": "",
"aws_secret_key": ""}
```
* For OpenStack this would be of the form
```json
{"os_username": "",
"os_password": "",
"os_project_name": "",
"os_project_domain_name": "",
"os_user_domain_name": ""}
```
* For Azure this would be of the form
```json
{"azure_subscription_id": "",
"azure_client_id": "",
"azure_secret": "",
"azure_tenant": "",
"azure_resource_group": "",
"azure_storage_account": "",
"azure_vm_default_username": ""}
```
* For GCE this would just be the JSON credentials file that is obtained from GCE

TODO
* [x] AWS credentials via env vars and credentials file
* [x] GCE credentials via env vars and credentials file
* [x] openstack credentials via env vars and credentials file
* [x] Azure credentials via env vars and credentials file
* [ ] `cloudlaunch deployments delete`
* [ ] Document env var names, dict keys
* [ ] finish unit tests

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.