Skip to content

Instantly share code, notes, and snippets.

@philips
Last active April 5, 2023 14:17
Show Gist options
  • Save philips/a97a143546c87b86b870a82a753db14c to your computer and use it in GitHub Desktop.
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.

@klizhentas
Copy link

we use TPR to provide transaction like behavior for resource upgrades in rigging: https://github.com/gravitational/rigging

@olix0r
Copy link

olix0r commented Feb 16, 2017

@davecheney
Copy link

We're trying to use them at Atlassian but struggling with the client libraries.

@hongchaodeng
Copy link

hongchaodeng commented Feb 16, 2017

@adieu link your archon here?

@davecheney besides tpr, we also need to push upstream to pay attention and fix client library.

@stevesloka
Copy link

@klizhentas
Copy link

klizhentas commented Feb 16, 2017

@davecheney - my best take on using client library with it after a day of digging around:

https://github.com/gravitational/rigging/blob/master/changeset.go#L941

@fatih
Copy link

fatih commented Feb 16, 2017

We're using TPR in DigitalOcean for our internal CA system to issue certificates. The examples in the client were not useful and I had to dive into the code to make sense on how to use the client when doing CRUD methods on a TPR.

@teemow
Copy link

teemow commented Feb 16, 2017

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

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

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
Copy link

resouer commented Feb 16, 2017

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

@sebgoa
Copy link

sebgoa commented Feb 16, 2017

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

@pst
Copy link

pst commented Feb 16, 2017

I'm using TPRs for Kubestack operators.

@tamalsaha
Copy link

tamalsaha commented Feb 16, 2017

We, AppsCode, are using TPRs for

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

@nebril
Copy link

nebril commented Feb 16, 2017

AppController uses TPR to store deployment graphs.

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

@khrisrichardson
Copy link

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

@mrIncompetent
Copy link

mrIncompetent commented Feb 17, 2017

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
Copy link

elevran commented Feb 19, 2017

WIP using TPR's for Amalgam8 microservice routing rules.

@hjacobs
Copy link

hjacobs commented Feb 21, 2017

We are using TPRs at Zalando Technology for:

@ledzep2
Copy link

ledzep2 commented Feb 27, 2017

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
Copy link

adieu commented Mar 1, 2017

@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

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

@superbrothers
Copy link

superbrothers commented Mar 13, 2017

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
Copy link

ryanj commented Mar 30, 2017

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

@lpabon
Copy link

lpabon commented Apr 28, 2017

@pidah
Copy link

pidah commented May 30, 2017

@pgburt
Copy link

pgburt commented Jun 15, 2017

@uoryon
Copy link

uoryon commented Jun 26, 2017

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

@orainxiong
Copy link

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