Skip to main content

The cloud resources cleanup utility

Reason this release was yanked:

You are installing the yanked version of cloudwash thats broken for VM Exceptions listing and Azure NICs cleanup.

Project description

Cloudwash

Introduction

cloudwash is a library written in python that can be used to monitor and remove the unused cloud resources in public and private cloud providers.

Most importantly, cloudwash provides the CLI utility called 'swach' that can be used to fire commands to cleanup the resources on cloud.

cloudwash supports following cloud providers:

  • Amazon EC2
  • Google Cloud
  • Microsoft Azure
  • RedHat Enterprize Virtualization Manager - RHEV (Support yet To be added)
  • RedHat Openstack (Support yet To be added)
  • VMWare vCenter (Support yet To be added)
  • OCP Clusters deplyed on Public clouds (Support yet To be added)

The list of resource types it helps to clean could be found under settings.yaml.template](https://github.com/RedHatQE/cloudwash/blob/master/settings.yaml.template) file for individual cloud providers along with cleanup criteria.

Installation

User can run cloudwash multiple ways:

PiP Package Installation

For Linux Users, Depending on the distribution you are using, you may need to install following packages (or similar for your distribution of linux):

  • libcurl-devel
  • openssl-devel
  • libxml2-devel
  • libxml2-static
  • gcc

Pycurl is a one of the dependent package of cloudwash that wants you to install above dependencies. Read more about it http://pycurl.io/docs/latest/install.html

Installation:

$ mkdir ~/cloudwash && cd ~/cloudwash
$ pip install cloudwash

Docker Image Installation

From Container image registry

The container image for cloudwash is available in quay. This image provides the cloudwash installed from released python package with release version tags. Latest tag always points to the latest released version tag.

Build from local DockerFile

This github repo contains a DockerFile, use any container building service to build from the dockerfile:

Build container from Dockerfile.dev that should build a container from the cloudwash github master branch giving the access to pre-released features.

OC BuildConfig Installation

This github repo provides the ready to use BuildConfig on OCP / Kubernetes. The build config should create buildconfig to build master branch based container image. Use the image to build cloudwash pod.

Configuration

The cloudwash uses the DynaConf configuration python module to access the data in settings.yaml or conf directory settings, it also allows an unique way of declaring secrets via Environment variables instead of putting in plain settings.yaml.

e.g: The Azure password field can be set via environment variable by exporting the environment variable

# export CLEANUP_PROVIDERS__AZURE__PASSWORD = myPa$$worb"

Configuration with PyPi package:

Copy/Download settings.yaml.template to local ~/cloudwash directory as settings.yaml, update it with the cloud provider credentials and other configuration details for successful resource reporting and cleanup.

Configuration with cloudwash container images:

Either - The docker images have settings.yaml added from Dockerfile. Build the container from the image, access the container and update the settings.yaml with real values and commit the changes to the image. Use the commited image for cleanup activity.

Or - Export/Set the environment variables for all or only sensitive credentials as shown above. The dynaconf in cloudwash container should read these credentials from environment variable.

Usage Examples

  • Cleanup Help:
# swach --help

Usage: swach [OPTIONS] COMMAND [ARGS]...

A Cleanup Utility to remove cloud resources from cloud Providers!

Options:
-d, --dry Only show what will be removed from Providers!
--help Show this message and exit.

Commands:
azure		Cleanup Azure provider
aws			Cleanup Amazon provider
gce			Cleanup GCE provider
openstack	Cleanup OSP provider
rhev 		Cleanup RHEV provider
vmware 		Cleanup VMWare provider
  • Cleanup Cloud Provider help:
# swach azure --help

Usage: swach azure [OPTIONS]

  Cleanup Azure provider

Options:
  --all             Remove all unused Resources from the provider
  --all_rg          Remove resource group only if all resources are older than SLA
  --nics            Remove only unused NICs from the provider
  --discs           Remove only unused DISCs from the provider
  --vms             Remove only unused VMs from the provider
  --pips            Remove only PiPs from the provider
  --help            Show this message and exit.

  • Cleanup Dry Run (Monitor only mode using option -d):
# swach -d azure --all

<<<<<<< Running the cleanup script in DRY RUN mode >>>>>>>
The AZURE providers settings are initialized and validated !

=========== DRY SUMMARY ============

VMs:
	Deletable: ['test-bvhoduliam']
	Stoppable: ['foremanqe-nightly2']
DISCs:
	Deletable: ['test-bvhoduliam-osdisk']
NICs:
	Deletable: ['test-axodawttrw-nic0']
PIPs:
	Deletable: ['test-axodawttrw-pip0']
====================================
  • Actual Cleanup Run:
# swach azure --all

<<<<<<< Running the cleanup script in ACTION mode >>>>>>>
The AZURE providers settings are initialized and validated !

Stopped [] and removed ['test-bvhoduliam'] VMs from Azure Cloud.
Removed following and all unused nics from Azure Cloud.
['test-axodawttrw-nic0']
Removed following and all unused discs from Azure Cloud.
['test-bvhoduliam-osdisk']
Removed following and all unused pips from Azure Cloud.
['test-axodawttrw-pip0']

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cloudwash-1.0.1.tar.gz (20.2 kB view details)

Uploaded Source

Built Distribution

cloudwash-1.0.1-py3-none-any.whl (15.8 kB view details)

Uploaded Python 3

File details

Details for the file cloudwash-1.0.1.tar.gz.

File metadata

  • Download URL: cloudwash-1.0.1.tar.gz
  • Upload date:
  • Size: 20.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.14

File hashes

Hashes for cloudwash-1.0.1.tar.gz
Algorithm Hash digest
SHA256 dc546845c09450320fae504cf0fcdba373a6404451ad6252dc03c63657157eee
MD5 2f8841dbfaf5b7ad384d839e13ebf939
BLAKE2b-256 3dd7d91124920acb3d26e7a865448d463d7830120157ed318af7bf9c5b31e846

See more details on using hashes here.

File details

Details for the file cloudwash-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: cloudwash-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 15.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.14

File hashes

Hashes for cloudwash-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 fcb310fc0206e30973cb0e2f9006a820c127037685879cef3722cd799896446a
MD5 236d3c79ea6e1027195f077089ccc03a
BLAKE2b-256 e8991201487a06b06cb85f43b29b5899ddf60e558d3f2b6fe8d4b89fe0d38b03

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page