All Projects → nicolai86 → couchdb-operator

nicolai86 / couchdb-operator

Licence: other
prototype kubernetes operator for couchDB

Programming Languages

go
31211 projects - #10 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to couchdb-operator

K8s Mediaserver Operator
Repository for k8s Mediaserver Operator project
Stars: ✭ 81 (+376.47%)
Mutual labels:  k8s, kubernetes-operator
Bonny
The Elixir based Kubernetes Development Framework
Stars: ✭ 190 (+1017.65%)
Mutual labels:  k8s, kubernetes-operator
K8gb
A cloud native Kubernetes Global Balancer
Stars: ✭ 113 (+564.71%)
Mutual labels:  k8s, kubernetes-operator
rabbitmq-operator
RabbitMQ Kubernetes operator
Stars: ✭ 16 (-5.88%)
Mutual labels:  k8s, kubernetes-operator
td-redis-operator
一款强大的云原生redis-operator,经过大规模生产级运行考验,支持分布式集群、支持主备切换等缓存集群解决方案…The powerful cloud-native redis-operator, which has passed the test of large-scale production-level operation, supports distributed clusters and active/standby switching ...
Stars: ✭ 327 (+1823.53%)
Mutual labels:  k8s, kubernetes-operator
Wlm Operator
Singularity implementation of k8s operator for interacting with SLURM.
Stars: ✭ 78 (+358.82%)
Mutual labels:  k8s, kubernetes-operator
Cronjobber
Cronjobber is a cronjob controller for Kubernetes with support for time zones
Stars: ✭ 169 (+894.12%)
Mutual labels:  k8s, kubernetes-operator
Sens8
Kubernetes controller for Sensu checks
Stars: ✭ 42 (+147.06%)
Mutual labels:  k8s, kubernetes-operator
kotary
Managing Kubernetes Quota with confidence
Stars: ✭ 85 (+400%)
Mutual labels:  k8s, kubernetes-operator
infinispan-operator
Infinispan Operator
Stars: ✭ 32 (+88.24%)
Mutual labels:  k8s, kubernetes-operator
Eunomia
A GitOps Operator for Kubernetes
Stars: ✭ 130 (+664.71%)
Mutual labels:  k8s, kubernetes-operator
grafana-operator
An operator for Grafana that installs and manages Grafana instances, Dashboards and Datasources through Kubernetes/OpenShift CRs
Stars: ✭ 449 (+2541.18%)
Mutual labels:  k8s, kubernetes-operator
Rbacsync
Automatically sync groups into Kubernetes RBAC
Stars: ✭ 197 (+1058.82%)
Mutual labels:  k8s, kubernetes-operator
mloperator
Machine Learning Operator & Controller for Kubernetes
Stars: ✭ 85 (+400%)
Mutual labels:  k8s, kubernetes-operator
siddhi-operator
Operator allows you to run stream processing logic directly on a Kubernetes cluster
Stars: ✭ 16 (-5.88%)
Mutual labels:  k8s, kubernetes-operator
kube-dump
Backup a Kubernetes cluster as a yaml manifest
Stars: ✭ 142 (+735.29%)
Mutual labels:  k8s
spellcard
A Leiningen template for k8s deployment automation.
Stars: ✭ 15 (-11.76%)
Mutual labels:  k8s
netperf-operator
Kubernetes operator to measure TCP transmission speed between 2 pods
Stars: ✭ 39 (+129.41%)
Mutual labels:  kubernetes-operator
Sessel
Document RDFizer for CouchDB
Stars: ✭ 22 (+29.41%)
Mutual labels:  couchdb
kubeadm-ansible
Kuberadmin ansible is a toolkit for simple and quick installing k8s cluster.
Stars: ✭ 37 (+117.65%)
Mutual labels:  k8s

couchdb operator

this k8s operator allows you to run a 2.1 couchdb cluster on top of k8s.

status

  • operator
    • RBAC support
    • CRD (CouchDB)
      • definition
      • management custom object add (spawn cluster)
      • management custom object update (update cluster)
      • management custom object delete (delete cluster)
    • deployment template (port, readyness, livelyness)
    • cluster management
      • credentials from configMap, secrets
      • pod anti affinity
      • node selection via labels
      • custom labels
      • new pod -> join cluster
      • old pod gone -> leave cluster
    • operator definition
  • README

guiding notes

see 7 principles taken from coreOS post: https://coreos.com/blog/introducing-operators.html and https://github.com/kubernetes/community/blob/master/contributors/devel/controllers.md

prerequisites

  • k8s >= 1.7.0

usage

$ kubectl apply -f k8s/resource-type.yml
$ kubectl apply -f k8s/deployment.yml

now, you can deploy a couchdb cluster like this:

apiVersion: "stable.couchdb.org/v1"
kind: CouchDB
metadata:
  name: my-couchdb-cluster
spec:
  version: "2.1.0"
  image:   "nicolai86/couchdb"
  replicas: 3 

the operator takes care of spawning the necessary pods and joining them into a single cluster.

development

required: golang 1.9+, kubernetes cluster (minikube, GKE, Azure...). To get a working operator locally, assuming kubectl is setup correctly:

$ go get -u github.com/golang/dep/cmd/dep
$ go get -du github.com/nicolai86/couchdb-operator
$ cd $(go env GOPATH)/src/github.com/nicolai86/couchdb-operator
$ dep ensure
$ OPERATOR_NAMESPACE=couchdb-operator 
$ OPERATOR_NAME=couchdb-operator 
$ KUBECONFIG=~/.kube/config 
$ go run main.go
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].