Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vgkowski/cassandra-operator
kubernetes operator for cassandra clusters automation
https://github.com/vgkowski/cassandra-operator
Last synced: 1 day ago
JSON representation
kubernetes operator for cassandra clusters automation
- Host: GitHub
- URL: https://github.com/vgkowski/cassandra-operator
- Owner: vgkowski
- License: apache-2.0
- Created: 2018-01-23T17:18:54.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2018-03-09T07:43:47.000Z (over 6 years ago)
- Last Synced: 2024-05-22T13:32:32.615Z (6 months ago)
- Language: Go
- Size: 46.9 KB
- Stars: 9
- Watchers: 3
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: Readme.md
- License: LICENSE
Awesome Lists containing this project
README
# Building the operator
Kubernetes version: 1.9
This operator use the kubernetes code-generator for
* clientset: used to manipulate objects defined in the CRD (cassandraCluster)
* informers: cache for registering to events on objects defined in the CRD
* listers
* deep copy
1. Get dependencies packages in your $GOPATH with `go get k8s.io/kubernetes k8s.io/apimachinery`
1. Initialize the dependancies with `dep init` in the project root directory
1. Clone the [code-generator](https://github.com/kubernetes/code-generator) repo in the `vendor/k8s.io` directory.
Be careful of cloning the branch matching the Kubernetes version
`git clone -b https://github.com/kubernetes/code-generator`
2. Run the script `vendor/k8s.io/code-generator/generate-groups.sh all github.com/vgkowski/cassandra-operator/pkg/client github.com/vgkowski/cassandra-operator/pkg/apis cassandra:v1` or `hack/update-codegen.sh`# Improvements
* Currently the relationship between native Kubernetes objects and CassandraClusters is done with the name which is equal.
For multiple resources of the same type (services for instance) a postfix is added to the name ("-internode" for internode service and "-access" for access service)
A better option would be to use the `metadata.ownerReference` but it requires to search and get objects by this reference instead of by name.
For indexed objects like Pods or PVCs the search and get is done through the label `CassandraCluster` which contains the name of the cluster
* Implement proper Cassandra admin logic (current code isn't working)