All Projects → jthomperoo → Custom Pod Autoscaler

jthomperoo / Custom Pod Autoscaler

Licence: apache-2.0
Custom Pod Autoscaler base, allows creation of Custom Pod Autoscalers

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Custom Pod Autoscaler

Milligram
A minimalist CSS framework.
Stars: ✭ 9,568 (+6364.86%)
Mutual labels:  hacktoberfest, framework
Scrapy
Scrapy, a fast high-level web crawling & scraping framework for Python.
Stars: ✭ 42,343 (+28510.14%)
Mutual labels:  hacktoberfest, framework
Libmtev
Mount Everest Application Framework
Stars: ✭ 104 (-29.73%)
Mutual labels:  hacktoberfest, framework
Pastepwn
Python framework to scrape Pastebin pastes and analyze them
Stars: ✭ 87 (-41.22%)
Mutual labels:  hacktoberfest, framework
Cphalcon
High performance, full-stack PHP framework delivered as a C extension.
Stars: ✭ 10,534 (+7017.57%)
Mutual labels:  hacktoberfest, framework
Coteafs Appium
📱 Wrapper Appium Framework in Java which supports Automation of Mobile and Tablet apps.
Stars: ✭ 93 (-37.16%)
Mutual labels:  hacktoberfest, framework
Core
🚀 The Node.js Framework highly focused on developer ergonomics, stability and confidence
Stars: ✭ 11,697 (+7803.38%)
Mutual labels:  hacktoberfest, framework
Backtesting.py
🔎 📈 🐍 💰 Backtest trading strategies in Python.
Stars: ✭ 1,124 (+659.46%)
Mutual labels:  hacktoberfest, framework
Cyclejs
A functional and reactive JavaScript framework for predictable code
Stars: ✭ 9,996 (+6654.05%)
Mutual labels:  hacktoberfest, framework
Elgg
A social networking engine in PHP/MySQL
Stars: ✭ 1,510 (+920.27%)
Mutual labels:  hacktoberfest, framework
Loadingshimmer
An easy way to add a shimmering effect to any view with just one line of code. It is useful as an unobtrusive loading indicator.
Stars: ✭ 1,180 (+697.3%)
Mutual labels:  hacktoberfest, framework
Predictive Horizontal Pod Autoscaler
Horizontal Pod Autoscaler built with predictive abilities using statistical models
Stars: ✭ 132 (-10.81%)
Mutual labels:  hacktoberfest, autoscaling
Edxposedmanager
Companion Android application for EdXposed
Stars: ✭ 1,172 (+691.89%)
Mutual labels:  hacktoberfest, framework
Cloudcmd
✨☁️📁✨ Cloud Commander file manager for the web with console and editor.
Stars: ✭ 1,332 (+800%)
Mutual labels:  hacktoberfest, framework
Falcon
The no-nonsense REST API and microservices framework for Python developers, with a focus on reliability, correctness, and performance at scale.
Stars: ✭ 8,654 (+5747.3%)
Mutual labels:  hacktoberfest, framework
Truffle
A tool for developing smart contracts. Crafted with the finest cacaos.
Stars: ✭ 11,909 (+7946.62%)
Mutual labels:  hacktoberfest, framework
Sylius
Open Source eCommerce Platform on Symfony
Stars: ✭ 6,598 (+4358.11%)
Mutual labels:  hacktoberfest, framework
Dragon
⚡A powerful HTTP router and URL matcher for building Deno web servers.
Stars: ✭ 56 (-62.16%)
Mutual labels:  hacktoberfest, framework
Meteor
Meteor, the JavaScript App Platform
Stars: ✭ 42,739 (+28777.7%)
Mutual labels:  hacktoberfest, framework
Ocpp
Python implementation of the Open Charge Point Protocol (OCPP).
Stars: ✭ 127 (-14.19%)
Mutual labels:  hacktoberfest, framework

Build codecov go.dev Go Report Card Documentation Status License

This project is supported by:

Custom Pod Autoscaler

This is the Custom Pod Autoscaler (CPA) code and base images.

The CPA is part of the Custom Pod Autoscaler Framework.

What is it?

A Custom Pod Autoscaler is a Kubernetes autoscaler that is customised and user created. Custom Pod Autoscalers are designed to be similar to the Kubernetes Horizontal Pod Autoscaler. The Custom Pod Autoscaler framework allows easier and faster development of Kubernetes autoscalers. A Custom Pod Autoscaler can be created by using this project, extending the Docker base images provided and inserting your own logic; see the examples for more information.

Features

  • Supports any language, environment and framework; the only requirement is it must be startable by a shell command or HTTP request.
  • Supports all configuration options of the Horizontal Pod Autoscaler (downscale stabilisation, sync period etc.)
  • Allows fast and easy prototyping and development.
  • Abstracts away all complicated Kubernetes API interactions.
  • Exposes a HTTP REST API for integration with wider systems/manual intervention.
  • Can write autoscalers with limited Kubernetes API or lifecycle knowledge.
  • Configuration at build time or deploy time.
  • Allows scaling to and from zero.
  • Can be configured without master node access, can be configured on managed providers such as EKS or GKE.

How does it work?

A Custom Pod Autoscaler has a base program (defined in this repository) that handles interacting with user logic, for example by using shell commands and piping data into them. When developing a Custom Pod Autoscaler you define logic for two stages:

  • Metric gathering - collecting or generating metrics; can be calling metrics APIs, running calculations locally, making HTTP requests.
  • Evaluating metrics - taking these gathered metrics and using them to decide how many replicas a resource should have.

These two pieces of logic are all the custom logic required to build a Custom Pod Autoscaler, the base program will handle all Kubernetes API interactions for scaling/retrieving resources.

Getting started

Check out this getting started guide for a quick start for developers.

More information

See the wiki for more information, such as guides and references.

Developing this project

Environment

Developing this project requires these dependencies:

To view docs locally, requires:

Commands

  • make - builds the CPA binary.
  • make docker - builds the CPA base images.
  • make lint - lints the code.
  • make unittest - runs the unit tests.
  • make vendor - generates a vendor folder.
  • make doc - hosts the documentation locally, at 127.0.0.1:8000.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].