Skip to content

Instantly share code, notes, and snippets.

@philips
Last active June 19, 2026 17:29
Show Gist options
  • Select an option

  • Save philips/a97a143546c87b86b870a82a753db14c to your computer and use it in GitHub Desktop.

Select an option

Save philips/a97a143546c87b86b870a82a753db14c to your computer and use it in GitHub Desktop.
Kubernetes Third-Party Resource Users

NOTICE

This list has moved to a GitHub repo for easier tracking: https://github.com/coreos/awesome-kubernetes-extensions

List

Please comment below if you are using Kubernetes Third-Party Resources and I will add you to the list.

Known Users:

TODO:

Resources:

I am interested in documenting all of the users and getting some more feedback on what is and isn't working.

@teemow

teemow commented Feb 16, 2017

Copy link
Copy Markdown

We are using TPRs to manage kubernetes clusters with kubernetes.

See http://blog.kubernetes.io/2017/01/how-we-run-kubernetes-in-kubernetes-kubeception.html

@majewsky

Copy link
Copy Markdown

At SAP, we're working on an OpenStack operator that creates various types of things in OpenStack (currently, Keystone domains, projects, users, groups and roles; will expand to Swift accounts, Designate zones etc. later): https://github.com/sapcc/kubernetes-operators/tree/master/openstack-operator

@ipedrazas

Copy link
Copy Markdown

There's a difference between TPRs and Operators. At Soho House I've built a few with different degrees of success. Some of the operators use TPRs, some of them they just listen to events and react to them.

  • Postgres Operator (TPR): to create/destroy databases in the cluster or in the cloud.
  • Namespace Operator: to initialise namespaces (secrets, ingress, etc), and destroy ns once they're not needed anymore.
  • EIP Operator (TPR): whitelisting IPs and management of those IPs/labels

Since I was the only one with kubernetes knowledge, I expose the kube events using NATs to allow the other developers to build logic around what's happening in the cluster. For example, we have a couple of jobs that interface with banks and Salesforce and these jobs need to know what has been executed and what's in execution at runtime. I'm using Nats as a way of turning the Kube API into a kind of pub/sub event queue.

I will be talking at KubeCon about our solution and what it worked and what it didn't.

@resouer

resouer commented Feb 16, 2017

Copy link
Copy Markdown

hypernetes is using TPR resource to manage network. https://github.com/hyperhq/hypernetes/

@sebgoa

sebgoa commented Feb 16, 2017

Copy link
Copy Markdown

kubeless https://github.com/skippbox/kubeless is using TPR . I would like to see better support for it in the incubating Python client

@pst

pst commented Feb 16, 2017

Copy link
Copy Markdown

I'm using TPRs for Kubestack operators.

@tamalsaha

tamalsaha commented Feb 16, 2017

Copy link
Copy Markdown

We, AppsCode, are using TPRs for

Helm project is looking into using TPRs to store release data:

@nebril

nebril commented Feb 16, 2017

Copy link
Copy Markdown

AppController uses TPR to store deployment graphs.

https://github.com/Mirantis/k8s-AppController

@khrisrichardson

Copy link
Copy Markdown

WIP for Spark on Kubernetes: kubernetes/kubernetes#34377 (comment)

@mrIncompetent

mrIncompetent commented Feb 17, 2017

Copy link
Copy Markdown

We, Loodse - https://beta.kubermatic.io, use them but having the following issues:
-They don't get deleted with the namespace
-Having a TPR called node.example.org makes kubectl get nodes return my tpr's instead of the actual cluster nodes

Edit: As reference we used: https://github.com/Mirantis/k8s-externalipcontroller/tree/master/pkg/extensions

@elevran

elevran commented Feb 19, 2017

Copy link
Copy Markdown

WIP using TPR's for Amalgam8 microservice routing rules.

@hjacobs

hjacobs commented Feb 21, 2017

Copy link
Copy Markdown

We are using TPRs at Zalando Technology for:

@ledzep2

ledzep2 commented Feb 27, 2017

Copy link
Copy Markdown

We are building Archon which is a set of controllers that runs on k8s and manages the physical resources that k8s currently doesn't, like Instance, InstanceGroup, Network (defined as TPR). So the cluster managed can scale itself.

@adieu

adieu commented Mar 1, 2017

Copy link
Copy Markdown

@hongchaodeng didn't get notification from github. But luckily my colleague found this gist.

@philips is it possible to put the link to archon repo at the end? I think it will make the format better. Thanks a lot.

@krallistic

Copy link
Copy Markdown

I use TPR for a Kafka Operator
https://github.com/krallistic/kafka-operator

@superbrothers

superbrothers commented Mar 13, 2017

Copy link
Copy Markdown

We're also using TPRs to manage kubernetes clusters with kubernetes, and develop many controllers like KubernetesController, MachineController, MachineSetController, MachineDeploymentController, etc.

Implement Kubernetes as a Serivce using TPR (in Japanease)

@ryanj

ryanj commented Mar 30, 2017

Copy link
Copy Markdown

CrunchyData PostgreSQL operator: https://github.com/CrunchyData/postgres-operator

@lpabon

lpabon commented Apr 28, 2017

Copy link
Copy Markdown

@pidah

pidah commented May 30, 2017

Copy link
Copy Markdown

@pgburt

pgburt commented Jun 15, 2017

Copy link
Copy Markdown

@uoryon

uoryon commented Jun 26, 2017

Copy link
Copy Markdown

I use TPR for a Mongo Operator
https://github.com/kirk-enterprise/mongo-operator

@orainxiong

Copy link
Copy Markdown

Using TPR for RDBMS Operator to support mainstream version Oracle, MySQL, MariaDB
https://docs.google.com/document/d/1zPigFS-VqysjIn569TZgd42whyBlspKcudRaLSrB5Aw/edit#

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment