Metacontroller - Lightweight Kubernetes controllers as a service

  •        108

Metacontroller is an add-on for Kubernetes that makes it easy to write and deploy custom controllers. While custom resources provide storage for new types of objects, custom controllers define the behavior of a new extension to the Kubernetes API. Just like the CustomResourceDefinition (CRD) API makes it easy to request storage for a custom resource, the Metacontroller APIs make it easy to define behavior for a new extension API or add custom behavior to existing APIs.

https://github.com/GoogleCloudPlatform/metacontroller
https://metacontroller.app/

Tags
Implementation
License
Platform

   




Related Projects

kubeadm-ha - Kubernetes high availiability deploy based on kubeadm (for v1

  •    Smarty

kube-apiserver: exposes the Kubernetes API. It is the front-end for the Kubernetes control plane. It is designed to scale horizontally – that is, it scales by deploying more instances. etcd: is used as Kubernetes’ backing store. All cluster data is stored here. Always have a backup plan for etcd’s data for your Kubernetes cluster. kube-scheduler: watches newly created pods that have no node assigned, and selects a node for them to run on. kube-controller-manager: runs controllers, which are the background threads that handle routine tasks in the cluster. Logically, each controller is a separate process, but to reduce complexity, they are all compiled into a single binary and run in a single process. kubelet: is the primary node agent. It watches for pods that have been assigned to its node (either by apiserver or via local configuration file) kube-proxy: enables the Kubernetes service abstraction by maintaining network rules on the host and performing connection forwarding. keepalived cluster config a virtual IP address (192.168.20.10), this virtual IP address point to k8s-master01, k8s-master02, k8s-master03. nginx service as the load balancer of k8s-master01, k8s-master02, k8s-master03's apiserver. The other nodes kubernetes services connect the keepalived virtual ip address (192.168.20.10) and nginx exposed port (16443) to communicate with the master cluster's apiservers.

gardener - Kubernetes API server extension and controller manager managing the full lifecycle of conformant Kubernetes clusters (Shoots) as a service on AWS, Azure, GCP, and OpenStack

  •    Go

The Gardener implements the automated management and operation of Kubernetes clusters as a service and aims to support that service on multiple Cloud providers (AWS, GCP, Azure, OpenStack). Its main principle is to use Kubernetes itself as base for its tasks. In essence, the Gardener is an extension API server along with a bundle of Kubernetes controllers which introduces new API objects in an existing Kubernetes cluster (which is called Garden cluster) in order to use them for the management of further Kubernetes clusters (which are called Shoot clusters). To do that reliably and to offer a certain quality of service, it requires to control the main components of a Kubernetes cluster (etcd, API server, controller manager, scheduler). These so-called control plane components are hosted in Kubernetes clusters themselves (which are called Seed clusters).

kooper - Kooper is a simple Go library to create Kubernetes operators and controllers.

  •    Go

Kooper is a simple Go library to create Kubernetes operators and controllers. Kooper is a set of utilities packed as a library or framework to easily create Kubernetes controllers and operators.

CardStackController - iOS custom controller used in Jobandtalent app to present new view controllers as cards

  •    Swift

iOS custom controller used in the Jobandtalent app to present new view controllers as cards. This controller behaves very similar to UINavigationController, maintaining a stack of ViewControllers. The presentation of new view controllers is different though. New view controllers are presented as a new “Card” in front of the current context. The next GIFs show the control in action.

contour - Contour is a Kubernetes ingress controller for Lyft's Envoy proxy.

  •    Go

Contour is an Ingress controller for Kubernetes that works by deploying the Envoy proxy as a reverse proxy and load balancer. Unlike other Ingress controllers, Contour supports dynamic configuration updates out of the box while maintaining a lightweight profile. Contour also introduces a new ingress API (IngressRoute) which is implemented via a Custom Resource Definition (CRD). Its goal is to expand upon the functionality of the Ingress API to allow for a richer user experience as well as solve shortcomings in the original design.


VCTransitionsLibrary - A collection of iOS7 animation controllers and interaction controllers, providing flip, fold and all kinds of other transitions

  •    Objective-C

With iOS 7 you can easily create custom view controller transitions that can be used in a range of contexts (push, pop, modal …). This project provides a library of custom animations which can be dropped directly into your project. It also has a number of 'interaction controllers' which can be used with any of the custom animations in order to make your transitions interactive. The library currently contains the following animations, which can be made interactive with either a swipe or pinch gesture.

SwiftMessages - A very flexible message bar for iOS written in Swift.

  •    Swift

SwiftMessagesSegue is a subclass of UIStoryboardSegue that integrates directly into Interface Builder as a custom modal segue, enabling view controllers to take advantage of SwiftMessages layouts, animations and more. SwiftMessagesSegue works with any UIKIt project — storyboards are not required. Refer to the View Controllers readme below for more information. And check out our blog post Elegant Custom UIViewController Transitioning to learn a great technique you can use to build your own custom segues that utilize UIViewControllerTransitioningDelegate and UIViewControllerAnimatedTransitioning.

StateViewController - Stateful view controller containment for iOS

  •    Swift

When creating rich stateful view controllers, a single view controller class is often tasked with managing the appearance of many other views, controls, and other user interface elements based on a state. That state, in turn, is often inferred from multiple properties that need to be synchronized to correctly represent a single state. Usually the end result is known as the Massive View Controller problem, often solved by deviating from the MVC pattern used and endorsed heavily by Apple. While other patterns, such as MVVM or MVP, can solve your issues, going with the grain rather than against makes interacting with UIKit a whole lot easier. This repository houses one dependency-free class, called StateViewController, which is tasked with solving this issue. StateViewController is a container view controller that presents one or more view controllers for any given state that you define, such as loading, list, or editing. It manages the appearance cycles of each content view controller, making sure that the view lifecycle of the content view controllers are intact and in order, notifying you about state transitions and which content view controllers are about to appear or disappear from the view hierarchy. This allos you to compose multiple view controllers and re-use them throughout the app. The state view controller also provides extensive support for animating the transition between states.

compose2kube - Convert docker-compose service files to Kubernetes objects.

  •    Go

Convert docker-compose service files to Kubernetes objects.compose2kube is in functional beta stage and supports mapping container images, varables, ports, labels, volumes, and restart policies to Kubernetes replication controllers and services. Thanks to the docker/libcompose library, compose2kube will support the complete docker-compose specification in the near future.

kube-plex - Scalable Plex Media Server on Kubernetes -- dispatch transcode jobs as pods on your cluster!

  •    Go

kube-plex is a scalable Plex Media Server solution for Kubernetes. It distributes transcode jobs by creating pods in a Kubernetes cluster to perform transcodes, instead of running transcodes on the Plex Media Server instance itself. kube-plex works by replacing the Plex Transcoder program on the main PMS instance with our own little shim. This shim intercepts calls to Plex Transcoder, and creates Kubernetes pods to perform the work instead. These pods use shared persistent volumes to store the results of the transcode (and read your media!).

ingress - Ingress controllers

  •    Go

This repository contains controllers built around the Kubernetes Ingress resource. It is currently in a state of flux as project maintainers port code over from its previous home.

kubeless - Kubernetes Native Serverless Framework

  •    Go

kubeless is a Kubernetes-native serverless framework that lets you deploy small bits of code without having to worry about the underlying infrastructure plumbing. It leverages Kubernetes resources to provide auto-scaling, API routing, monitoring, troubleshooting and more. Kubeless stands out as we use a Custom Resource Definition to be able to create functions as custom kubernetes resources. We then run an in-cluster controller that watches these custom resources and launches runtimes on-demand. The controller dynamically injects the functions code into the runtimes and make them available over HTTP or via a PubSub mechanism.

kubefwd - Bulk port forwarding Kubernetes services for local development.

  •    Go

Read Kubernetes Port Forwarding for Local Development for background and a detailed guide to kubefwd. kubefwd is a command line utility built to port forward some or all pods within a Kubernetes namespace. kubefwd uses the same port exposed by the service and forwards it from a loopback IP address on your local workstation. kubefwd temporally adds domain entries to your /etc/hosts file with the service names it forwards.

LNPopupController - LNPopupController is a framework for presenting view controllers as popups of other view controllers, much like the Apple Music and Podcasts apps

  •    Objective-C

LNPopupController is a framework for presenting view controllers as popups of other view controllers, much like the Apple Music and Podcasts apps. See a video of the modern popup look & feel here and a video of the classic popup look & feel here.

SCStackViewController - SCStackViewController is a container view controller which allows you to stack other view controllers on the top/left/bottom/right of the root and build custom transitions between them while providing correct physics and appearance calls

  •    Objective-C

SCStackViewController is a generic container view controller which allows you to stack child view controllers on the top/left/bottom/right of the root and build custom transitions between them while providing correct physics and appearance calls, custom layouts, easing functions, custom navigation steps and more. Any suggestions or improvements are more than welcome. Feel free to contact me at stefan.ceriu@gmail.com or @stefanceriu.

guide - Kubernetes clusters for the hobbyist.

  •    

The tinkerers of today are the leaders of tomorrow. This guide answers the question of how to setup and operate a fully functional, secure Kubernetes cluster on a cloud provider such as Hetzner Cloud, DigitalOcean or Scaleway. It explains how to overcome the lack of external ingress controllers, fully isolated secure private networking and persistent distributed block storage.

SPLarkController - Custom transition between controllers. Settings controller for your iOS app.

  •    Swift

Transition between controllers to top. You can change animatable height after presentation controller. For implement settings as in preiew, see section Settings Controller. See project's backers in Sponsors section.

PaperFoldMenuController - A navigation menu on the left of the screen using on PaperFold

  •    Objective-C

PaperFoldMenuController is a UITabBarController replacement, but displays the view controllers in a table view on the left side of the screen. This table view is shown/hidden using PaperFold-for-iOS. Selecting from the menu on the left changes the view controller on the right. PaperFoldMenuController uses view controller containment. ####Parameters #####viewControllers The array of custom view controllers to display on screen. The title of each view controllers are shown in the menu table view on the left.

cabin - The Mobile Dashboard for Kubernetes

  •    Javascript

Cabin is a Mobile application for Kubernetes. It is loaded with features as shown in the screenshots and the screencast. It is a mobile native version of the Kubernetes dashboard with intuitive finger actions to manipulate Kubernetes resources. For example you can delete pods with a single left swipe. You can also add, delete labels, scale deployments with a finger scroll, access logs of your pods, run simple exec commands in containers, trigger rolling-updates by changing the image of your deployments, etc... Currently still in dev is support for Helm charts. You can view Charts repositories and launch charts.

k8s - A simple Kubernetes Go client

  •    Go

A slimmed down Go client generated using Kubernetes' new protocol buffer support. This package behaves similarly to official Kubernetes' Go client, but only imports two external dependencies.client-go is a framework for building production ready controllers, components that regularly watch API resources and push the system towards a desired state. If you're writing a program that watches several resources in a loop for long durations, client-go's informers framework is a battle tested solution which will scale with the size of the cluster.