![Build Status](https://github.com/ricardobranco777/cloudview/actions/workflows/ci.yml/badge.svg)
# cloudview
View instance information on EC2, Azure, GCE & OpenStack.
Support for other cloud service providers may be easily added thanks to [Apache Libcloud](https://libcloud.apache.org/)
Docker image available at `ghcr.io/ricardobranco777/cloudview:latest`
## Usage
```
Usage: cloudview [OPTIONS]
Options:
-c, --config FILE path to clouds.yaml
-l, --log debug|info|warning|error|critical
logging level
-o, --output none|text|html|json output type
-p, --port PORT run a web server on port PORT
-r, --reverse reverse sort
-s, --sort name|time|state sort type
-S, --states error|migrating|normal|paused|pending|rebooting|reconfiguring|running|starting|stopped|stopping|suspended|terminated|unknown|updating
filter by instance state
-T, --time TIME_FORMAT time format as used by strftime(3)
-V, --version show version and exit
-v, --verbose be verbose
--insecure insecure mode
```
## Requirements
Docker or Podman to run the Docker image or:
- Python 3.8+ to run installed by pip
- [Apache Libcloud](https://libcloud.apache.org/)
## clouds.yaml
Edit [examples/clouds.yaml](clouds.yaml) with the relevant information and run `chmod 600 /path/to/clouds.yaml`.
NOTES:
- The key names are not arbitrary and are the names of the arguments passed to the class factory of each provider in libcloud.
- If this file is not present, **cloudview** will try to get the information from the standard `AWS_*`, `AZURE_*`, `GOOGLE_*` & `OS_` environment variables.
## To run stand-alone:
```
pip3 install --user cloudview
cloudview [OPTIONS]
```
## To run with Docker or Podman:
`docker run --rm [OPTIONS] -v /path/to/clouds.yaml:/clouds.yaml:ro ghcr.io/ricardobranco777/cloudview -c /clouds.yaml`
NOTES:
- Make sure you also mount the path to the JSON file holding the GCE credentials with the same path mentioned in `clouds.yaml`
- For private Openstack you'd also want to mount the CA's certificates and add `-e REQUESTS_CA_BUNDLE=/path/to/certs.pem`
## Run the web server with Docker Compose:
If you have a TLS key pair, put the certificates in `cert.pem`, the private key in `key.pem` and the file containing the passphrase to the private key in `key.txt`. Then edit the [docker-compose.yml](examples/docker-compose.yml) file to mount the directory to `/etc/nginx/ssl` in the container like this: `- "/path/to/tls:/etc/nginx/ssl:ro"`. Set and export the `NGINX_HOST` environment variable with the FQDN of your host.
For HTTP Basic Authentication, create a file named `auth.htpasswd` in the same directory with the TLS key pair.
If you don't have a TLS key pair, a self-signed certificate and a random password for logging in will be generated. You can see the latter with `docker compose logs`. The user is `test`.
After running `docker compose build` & `docker compose up -d` you can browse to [https://localhost:8443](https://localhost:8443)
## Debugging
- For debugging you can set the `LIBCLOUD_DEBUG` environment variable to a path like `/dev/stderr`
## Additional information
- [EC2](https://libcloud.readthedocs.io/en/stable/compute/drivers/ec2.html)
- [Azure](https://libcloud.readthedocs.io/en/stable/compute/drivers/azure_arm.html)
- [GCE](https://libcloud.readthedocs.io/en/stable/compute/drivers/gce.html)
- [Openstack](https://libcloud.readthedocs.io/en/stable/compute/drivers/openstack.html)
## Similar projects
- [public cloud watch](https://github.com/SUSE/pcw/)
Raw data
{
"_id": null,
"home_page": "https://github.com/ricardobranco777/cloudview",
"name": "cloudview",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "",
"keywords": "cloudview",
"author": "Ricardo Branco",
"author_email": "rbranco@suse.de",
"download_url": "https://files.pythonhosted.org/packages/ad/2f/5243b3a8fffb37593cc64eb87120ad3bde7a9a235d9cd5611f62ccb83825/cloudview-0.9.tar.gz",
"platform": null,
"description": "![Build Status](https://github.com/ricardobranco777/cloudview/actions/workflows/ci.yml/badge.svg)\n\n# cloudview\n\nView instance information on EC2, Azure, GCE & OpenStack.\n\nSupport for other cloud service providers may be easily added thanks to [Apache Libcloud](https://libcloud.apache.org/)\n\nDocker image available at `ghcr.io/ricardobranco777/cloudview:latest`\n\n## Usage\n\n```\nUsage: cloudview [OPTIONS]\nOptions:\n -c, --config FILE path to clouds.yaml\n -l, --log debug|info|warning|error|critical\n logging level\n -o, --output none|text|html|json output type\n -p, --port PORT run a web server on port PORT\n -r, --reverse reverse sort\n -s, --sort name|time|state sort type\n -S, --states error|migrating|normal|paused|pending|rebooting|reconfiguring|running|starting|stopped|stopping|suspended|terminated|unknown|updating\n filter by instance state\n -T, --time TIME_FORMAT time format as used by strftime(3)\n -V, --version show version and exit\n -v, --verbose be verbose\n --insecure insecure mode\n```\n\n## Requirements\n\nDocker or Podman to run the Docker image or:\n\n- Python 3.8+ to run installed by pip\n- [Apache Libcloud](https://libcloud.apache.org/)\n\n## clouds.yaml\n\nEdit [examples/clouds.yaml](clouds.yaml) with the relevant information and run `chmod 600 /path/to/clouds.yaml`.\n\nNOTES:\n- The key names are not arbitrary and are the names of the arguments passed to the class factory of each provider in libcloud.\n- If this file is not present, **cloudview** will try to get the information from the standard `AWS_*`, `AZURE_*`, `GOOGLE_*` & `OS_` environment variables.\n\n## To run stand-alone:\n\n```\npip3 install --user cloudview\ncloudview [OPTIONS]\n```\n\n## To run with Docker or Podman:\n\n`docker run --rm [OPTIONS] -v /path/to/clouds.yaml:/clouds.yaml:ro ghcr.io/ricardobranco777/cloudview -c /clouds.yaml`\n\nNOTES:\n- Make sure you also mount the path to the JSON file holding the GCE credentials with the same path mentioned in `clouds.yaml`\n- For private Openstack you'd also want to mount the CA's certificates and add `-e REQUESTS_CA_BUNDLE=/path/to/certs.pem`\n\n## Run the web server with Docker Compose:\n\nIf you have a TLS key pair, put the certificates in `cert.pem`, the private key in `key.pem` and the file containing the passphrase to the private key in `key.txt`. Then edit the [docker-compose.yml](examples/docker-compose.yml) file to mount the directory to `/etc/nginx/ssl` in the container like this: `- \"/path/to/tls:/etc/nginx/ssl:ro\"`. Set and export the `NGINX_HOST` environment variable with the FQDN of your host.\n\nFor HTTP Basic Authentication, create a file named `auth.htpasswd` in the same directory with the TLS key pair.\n\nIf you don't have a TLS key pair, a self-signed certificate and a random password for logging in will be generated. You can see the latter with `docker compose logs`. The user is `test`.\n\nAfter running `docker compose build` & `docker compose up -d` you can browse to [https://localhost:8443](https://localhost:8443)\n\n## Debugging\n\n- For debugging you can set the `LIBCLOUD_DEBUG` environment variable to a path like `/dev/stderr`\n\n## Additional information\n\n- [EC2](https://libcloud.readthedocs.io/en/stable/compute/drivers/ec2.html)\n- [Azure](https://libcloud.readthedocs.io/en/stable/compute/drivers/azure_arm.html)\n- [GCE](https://libcloud.readthedocs.io/en/stable/compute/drivers/gce.html)\n- [Openstack](https://libcloud.readthedocs.io/en/stable/compute/drivers/openstack.html)\n\n## Similar projects\n\n - [public cloud watch](https://github.com/SUSE/pcw/)\n",
"bugtrack_url": null,
"license": "MIT License",
"summary": "View instance information on all supported cloud providers",
"version": "0.9",
"project_urls": {
"Homepage": "https://github.com/ricardobranco777/cloudview"
},
"split_keywords": [
"cloudview"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "3655bb866aec66ade0e50a2fbcce36c9802f4a8eb934c9950b9ebb44a73e036a",
"md5": "bb2a30a2c5db2fffd16a050da765addd",
"sha256": "85c587c48b949e8040ba383b0a30ab1f0c7bfd7cdac3260b78cc2d9550774c34"
},
"downloads": -1,
"filename": "cloudview-0.9-py3-none-any.whl",
"has_sig": false,
"md5_digest": "bb2a30a2c5db2fffd16a050da765addd",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 16843,
"upload_time": "2023-08-22T19:29:14",
"upload_time_iso_8601": "2023-08-22T19:29:14.064163Z",
"url": "https://files.pythonhosted.org/packages/36/55/bb866aec66ade0e50a2fbcce36c9802f4a8eb934c9950b9ebb44a73e036a/cloudview-0.9-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ad2f5243b3a8fffb37593cc64eb87120ad3bde7a9a235d9cd5611f62ccb83825",
"md5": "d97fb4dca9481681179fd16fe32cc3e0",
"sha256": "16af0ffe60cf243dd641fdbca526394bc6c9900f051d53a7400ea967896ebe6f"
},
"downloads": -1,
"filename": "cloudview-0.9.tar.gz",
"has_sig": false,
"md5_digest": "d97fb4dca9481681179fd16fe32cc3e0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 14418,
"upload_time": "2023-08-22T19:29:15",
"upload_time_iso_8601": "2023-08-22T19:29:15.285979Z",
"url": "https://files.pythonhosted.org/packages/ad/2f/5243b3a8fffb37593cc64eb87120ad3bde7a9a235d9cd5611f62ccb83825/cloudview-0.9.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-08-22 19:29:15",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "ricardobranco777",
"github_project": "cloudview",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [],
"lcname": "cloudview"
}