Automating cleanup, maintenance and troubleshooting tasks in Cloud Computing

Overview

Cloud Janitor

Cloud Janitor is a tool to automate complex maintenance and troubleshooting tasks in cloud computing. It's built considering the security and flexibility requirements found in operating real-world production workloads.

In cloud computing many responsibilities are shared between the provider and the consumer of services. This tool's goal is to share automations that customers and partners frequently need to build themselves, often with minimal differences.

As an example context, consider the task of cleaning up your AWS account after testing some drafts. Here's how our features can help:

Resource Filtering so that only the matched resources are deleted.

Defensive Defaults so that resources are only deleted when you disable the "dry run" flag.

Dependency Resolution so that deletes are cascaded to dependent resources.

Logs & Reporting so that you have a record of invocations and their results for queries and visualization.

Flexible Runtime so it can be used as an executable container, executable jar, native executable, github action or your preferred CI/CD tool.

Rate Limiting so that API throttling and limits are respected.

Easy to Operate all configuration can be passed as environment variables, as well as other sources supported by quarkus.io.

Cloud Janitor is also built to be easily extensible and contributions are most welcome! Join our Discord chat at https://caravana.cloud/cloud-janitor

Executing Cloud Janitor

Here are a few ways you can execute this project. The default task is called "marvin" and is mostly harmless. It will just print "Don't panic" to the logs.

All mentioned binaries can be found in the project releases page.

Docker Container

docker run caravanacloud/cloud-janitor

Github Action

- name: Cloud Janitor
  uses: CaravanaCloud/[email protected]

Executable Jar

java -jar java -jar cloud-janitor.jar

RPM Package

Install it:

rpm -Uvh --force cloud-janitor.rpm

Add it to your PATH:

sudo ln -sf /opt/cloud-janitor/bin/cloud-janitor /usr/local/bin/cj

Run it:

cj

From sources (dev mode)

./mvnw quarkus:dev

Configuring Tasks

Here are a few samples demonstrating how to use environment variables to configure tasks.

marvin

Don't panic! This is just a sample task. Try running this one to check everything is working:

tt marvin

cleanup-aws

Delete AWS resources based on a naming prefix. Try adding this configuration to $CWD/config/application.yaml:

tt:
  task: cleanup-aws
  dryRun: true
  ocp:
    baseDomain: devcluster.openshift.com
  aws:
    region: ap-northeast-1
    cleanup:
      prefix: rhnb-

Wishlist:

  • Support more/all AWS Services on cleanup task
  • Improve test coverage
  • Report/Delete AWS resources by tag
  • Report/Delete AWS resources by usage
  • Parallel Tasks
  • Waiter Tasks
  • Shell Tasks
  • Cross-Language Tasks through GraalVM / JSR 223
  • Report/Notify usage by attribution ("chargeback")
  • OpenShift Cluster Provisioning and Deployment
  • Fully-automated OpenShift management (Source2Service)

Features Wishlist:

  1. Ansible integration
  2. Kogito-defined tasks
  3. CloudWatch and/or ElasticSearch/Logstash/Kibana for visualization

Badges

Tests Coverage

Comments
Releases(v1.8.1)
Owner
Caravana Cloud
Helping developers be successful with cloud computing
Caravana Cloud
Implementation of Greedy Particle Swarm Optimization, HSGA and Hybrid(GA+PSO) for the purpose of Task Scheduling in cloud computing environment using CloudSim

Implementation of Greedy Particle Swarm Optimization, HSGA and Hybrid(GA+PSO) for the purpose of Task Scheduling in cloud computing environment using CloudSim

Yash Jain 5 Dec 18, 2022
A smart personal voice assistant powered by Alan AI. Enjoy hands free application that can manage daily tasks

Todogenix A smart personal voice assistant using Alan AI. Intro Todogenix is a personal assistant app powered by Alan AI that helps store and manage o

Venu Sai Madisetti 8 Mar 15, 2022
A Toolkit for Modeling and Simulation of Resource Management Techniques in Internet of Things, Edge and Fog Computing Environments

The iFogSimToolkit (with its new release iFogSim2) for Modeling and Simulation of Resource Management Techniques in Internet of Things, Edge and Fog Computing Environments. In the new release Mobili Management, Microservice Management, and Dynamic Clustering mechanisms are added as new features.

The Cloud Computing and Distributed Systems (CLOUDS) Laboratory 69 Dec 17, 2022
Demo microservice architecture with Spring ,Spring Cloud Gateway , Spring Cloud config server , Eureuka , keycloak and Docker.

spring-microservice Demo microservice architecture with Spring ,Spring Cloud Gateway , Spring Cloud config server , Eureuka , keycloak and Docker. Arc

null 4 Sep 13, 2022
A spring cloud infrastructure provides various of commonly used cloud components and auto-configurations for high project consistency

A spring cloud infrastructure provides various of commonly used cloud components and auto-configurations for high project consistency.

Project-Hephaestus 2 Feb 8, 2022
A high availability shopping(ecommerce) system using SpringBoot, Spring Cloud, Eureka Server, Spring Cloud Gateway, resillience4j, Kafka, Redis and MySQL.

High-availability-shopping-system A high availability shopping(ecommerce) system using SpringBoot, Spring Cloud, Eureka Server, Spring Cloud Gateway,

LeiH 1 Oct 26, 2022
MFP (Mathematic language For Parallel computing) Android library

MFPAndroLib This is MFP (Mathematic language For Parallel computing) Android library project. MFP is a novel scripting programming language designed a

Tony Cui 6 Sep 5, 2022
循序渐进,学习Spring Boot、Spring Boot & Shiro、Spring Batch、Spring Cloud、Spring Cloud Alibaba、Spring Security & Spring Security OAuth2,博客Spring系列源码:https://mrbird.cc

Spring 系列教程 该仓库为个人博客https://mrbird.cc中Spring系列源码,包含Spring Boot、Spring Boot & Shiro、Spring Cloud,Spring Boot & Spring Security & Spring Security OAuth2

mrbird 24.8k Jan 6, 2023
一个涵盖六个专栏:Spring Boot 2.X、Spring Cloud、Spring Cloud Alibaba、Dubbo、分布式消息队列、分布式事务的仓库。希望胖友小手一抖,右上角来个 Star,感恩 1024

友情提示:因为提供了 50000+ 行示例代码,所以艿艿默认注释了所有 Maven Module。 胖友可以根据自己的需要,修改 pom.xml 即可。 一个涵盖六个主流技术栈的正经仓库: 《Spring Boot 专栏》 《Spring Cloud Alibaba 专栏》 《Spring Clou

芋道源码 15.7k Dec 31, 2022
一套涵盖大部分核心组件使用的Spring Cloud教程,包括Spring Cloud Alibaba及分布式事务Seata,基于Spring Cloud Greenwich及SpringBoot 2.1.7。22篇文章,篇篇精华,32个Demo,涵盖大部分应用场景。

springcloud-learning 简介 一套涵盖大部分核心组件使用的Spring Cloud教程,包括Spring Cloud Alibaba及分布式事务Seata,基于Spring Cloud Greenwich及SpringBoot 2.1.7。22篇文章,篇篇精华,32个Demo,涵盖

macro 5.6k Dec 30, 2022
ActiveJ is an alternative Java platform built from the ground up. ActiveJ redefines web, high load, and cloud programming in Java, featuring ultimate performance and scalability!

Introduction ActiveJ is a full-featured modern Java platform, created from the ground up as an alternative to Spring/Micronauts/Netty/Jetty. It is des

ActiveJ LLC 579 Jan 7, 2023
An integration solution for Spring Cloud and Tencent middleware - Spring Cloud和腾讯中间件的集成方案

Spring Cloud Tencent English | 简体中文 Introduction Spring Cloud Tencent contains components distributed micro-service applications need during developin

Tencent 2.6k Dec 29, 2022
Microservice Architecture with Spring Boot, Spring Cloud and Docker

Piggy Metrics Piggy Metrics is a simple financial advisor app built to demonstrate the Microservice Architecture Pattern using Spring Boot, Spring Clo

Alexander Lukyanchikov 12.1k Jan 1, 2023
Spring Boot microservices app with Spring Cloud, Robust and resilient backend managing e-Commerce app

e-Commerce-boot μServices Important Note: This project's new milestone is to move The whole system to work on Kubernetes, so stay tuned. Introduction

Selim Horri 65 Dec 23, 2022
Cloud Native and Low Code Platform to create FullStack web Admin applications in minutes

Cloud Native and Low Code Platform to create FullStack web Admin applications in minutes ✨ Features & Technologies REST API generator Low Code CRUD &

Gemini Framework 171 Dec 26, 2022
The goal of this project is to play with Spring Cloud Stream Event Routing and CloudEvents

The goal of this project is to play with Spring Cloud Stream Event Routing and CloudEvents. For it, we will implement a producer and consumer of news & alert events.

Ivan Franchin 6 Oct 28, 2022
A fast, light and cloud native OAuth 2.0 authorization microservices based on light-4j

A fast, light weight and cloud native OAuth 2.0 Server based on microservices architecture built on top of light-4j and light-rest-4j frameworks. Stac

null 291 Dec 17, 2022
mall-swarm是一套微服务商城系统,采用了 Spring Cloud Hoxton & Alibaba、Spring Boot 2.3、Oauth2、MyBatis、Docker、Elasticsearch、Kubernetes等核心技术,同时提供了基于Vue的管理后台方便快速搭建系统。mall-swarm在电商业务的基础集成了注册中心、配置中心、监控中心、网关等系统功能。文档齐全,附带全套Spring Cloud教程。

mall-swarm 友情提示 快速体验项目:在线访问地址。 全套学习教程:《mall学习教程》。 Spring Cloud全套教程:《SpringCloud学习教程》。 专属学习路线:学习不走弯路,整理了套非常不错的《mall专属学习路线》。 项目交流:想要加群交流项目的朋友,可以加入mall项目

macro 9.7k Jan 3, 2023
Spring Cloud 学习案例,服务发现、服务治理、链路追踪、服务监控等

Spring Cloud Examples Spring Cloud 使用的各种示例,以最简单、最实用为标准 Spring Cloud 中文索引 | Spring Boot学习示例代码 | 参与贡献 English | github地址 | 码云地址 推荐程序员都关注的一个漫画公众号 关注后,回复:

纯洁的微笑 6k Jan 2, 2023