Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dgzlopes/cloud-detect
Module that determines a host's cloud provider.
https://github.com/dgzlopes/cloud-detect
agnostic aws azure cloud detect devops digitalocean gcp metadata multicloud python3 vendoring
Last synced: 6 days ago
JSON representation
Module that determines a host's cloud provider.
- Host: GitHub
- URL: https://github.com/dgzlopes/cloud-detect
- Owner: dgzlopes
- License: mit
- Created: 2019-08-02T10:52:38.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-03-21T14:37:28.000Z (8 months ago)
- Last Synced: 2024-09-22T01:12:55.282Z (about 1 month ago)
- Topics: agnostic, aws, azure, cloud, detect, devops, digitalocean, gcp, metadata, multicloud, python3, vendoring
- Language: Python
- Homepage: https://pypi.org/project/cloud-detect/
- Size: 39.1 KB
- Stars: 35
- Watchers: 4
- Forks: 13
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# cloud-detect
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/cloud-detect.svg)](https://pypi.org/project/cloud-detect/)
[![PyPI](https://img.shields.io/pypi/v/cloud-detect.svg)](https://pypi.org/project/cloud-detect/)
[![PyPI - License](https://img.shields.io/pypi/l/cloud-detect.svg)](https://github.com/dgzlopes/cloud-detect/blob/master/LICENSE.md)
[![Build Status](https://github.com/dgzlopes/cloud-detect/workflows/Testing%20for%20Python%20Versions%203.6-3.11%20via%20tox/badge.svg)](https://github.com/dgzlopes/cloud-detect/actions?query=workflow%3A%22Testing+for+Python+Versions+3.6-3.11+via+tox%22)## About
`cloud-detect` is a Python module that determines a host's cloud provider. Highly inspired by the Go based [Satellite](https://github.com/banzaicloud/satellite), `cloud-detect` uses the same techniques (file systems and provider metadata) to properly identify cloud providers.## Features
- Supports identification of Alibaba, AWS, Azure, Digital Ocean, GCP, Oracle Cloud and Vultr hosts.
- Fast and supports asyncio
- Logging integration.
- Small and extensible.## Usage
```
>>> from cloud_detect import provider
>>> provider()
'aws'>>> provider() # when tested in local/non-supported cloud env
'unknown'
```> Right now the only possible responses are: 'alibaba', 'aws', 'azure', 'do', 'gcp', 'oci', 'vultr' or 'unknown'
> You can get the list of supported providers using
>>`>>> from cloud_detect import SUPPORTED_PROVIDERS`## Installation
Via pip:
```
pip install cloud-detect
```## Examples
[Termination-handler](https://github.com/dgzlopes/termination-handler) uses cloud-detect to keep the handling of termination notices on spot/preemptible instances cloud-agnostic, making easier to operate the same tooling in various distinct environments.## How to contribute
1. Check for open issues or open a fresh issue to start a discussion around a feature idea or a bug.
2. Fork [the repository](https://github.com/dgzlopes/cloud-detect) on GitHub to start making your changes to the master branch (or branch off of it).
3. Write a test which shows that the bug was fixed or that the feature works as expected.
4. Send a [pull request](https://help.github.com/en/articles/creating-a-pull-request-from-a-fork) and bug [me](https://github.com/dgzlopes) until it gets merged and published.Some things that would be great to have:
- Add more cloud providers
- Add codecov