Skip to content

Pass temporary (not persisted) credentials when creating deployment #11

@machristie

Description

@machristie

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
    {"aws_access_key": "",
     "aws_secret_key": ""}
    • For OpenStack this would be of the form
    {"os_username": "",
     "os_password": "",
     "os_project_name": "",
     "os_project_domain_name": "",
     "os_user_domain_name": ""}
    • For Azure this would be of the form
    {"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

  • AWS credentials via env vars and credentials file
  • GCE credentials via env vars and credentials file
  • openstack credentials via env vars and credentials file
  • Azure credentials via env vars and credentials file
  • cloudlaunch deployments delete
  • Document env var names, dict keys
  • finish unit tests

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions