All Projects → vernemq → vmq-operator

vernemq / vmq-operator

Licence: Apache-2.0 license
VerneMQ Operator creates/configures/manages VerneMQ clusters atop Kubernetes

Programming Languages

go
31211 projects - #10 most used programming language
erlang
1774 projects
Jsonnet
166 projects

Projects that are alternatives of or similar to vmq-operator

secreter
Kubernetes operator and CLI tool for encrypting and managing Kubernetes secrets
Stars: ✭ 69 (+155.56%)
Mutual labels:  operator
minikube-operator
An operator for Minikube - Kubernetes on Kubernetes
Stars: ✭ 26 (-3.7%)
Mutual labels:  operator
openshift-disconnected-operators
No description or website provided.
Stars: ✭ 52 (+92.59%)
Mutual labels:  operator
vitess-operator
Kubernetes Operator for Vitess
Stars: ✭ 198 (+633.33%)
Mutual labels:  operator
k8s-notify
Turn kubernetes events into useful notifications & alerts
Stars: ✭ 46 (+70.37%)
Mutual labels:  operator
cryostat-operator
An OpenShift Operator to facilitate setup and management of Cryostast and expose the Cryostat API through Kubernetes Custom Resources.
Stars: ✭ 25 (-7.41%)
Mutual labels:  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 (+1111.11%)
Mutual labels:  operator
kaos
Kinda Chaos Monkey for Kubernetes
Stars: ✭ 18 (-33.33%)
Mutual labels:  operator
oracle-database-operator
The Oracle Database Operator for Kubernetes (a.k.a. OraOperator) helps developers, DBAs, DevOps and GitOps teams reduce the time and complexity of deploying and managing Oracle Databases. It eliminates the dependency on a human operator or administrator for the majority of database operations.
Stars: ✭ 74 (+174.07%)
Mutual labels:  operator
namespace-provisioner
A Kubernetes operator creating K8s resources by annotating namespaces
Stars: ✭ 52 (+92.59%)
Mutual labels:  operator
learning-unit-testing-for-k8s-operator
学习如何为 Kubernetes Operators 进行单元测试 Learning How to Write Unit Tests for Kubernetes Operators
Stars: ✭ 51 (+88.89%)
Mutual labels:  operator
bilrost
Kubernetes controller/operator to set up OAUTH2/OIDC security on any ingress based service
Stars: ✭ 17 (-37.04%)
Mutual labels:  operator
loki-operator
viaq.github.io/loki-operator/
Stars: ✭ 30 (+11.11%)
Mutual labels:  operator
mysql-operator
Asynchronous MySQL Replication on Kubernetes using Percona Server and Openark's Orchestrator.
Stars: ✭ 810 (+2900%)
Mutual labels:  operator
ibm-spectrum-scale-csi
The IBM Spectrum Scale Container Storage Interface (CSI) project enables container orchestrators, such as Kubernetes and OpenShift, to manage the life-cycle of persistent storage.
Stars: ✭ 41 (+51.85%)
Mutual labels:  operator
sbom-operator
Catalogue all images of a Kubernetes cluster to multiple targets with Syft
Stars: ✭ 114 (+322.22%)
Mutual labels:  operator
operator-manifests
Artisanally packaged Kubernetes Operators
Stars: ✭ 15 (-44.44%)
Mutual labels:  operator
wildfly-operator
Kubernetes Operator for WildFly
Stars: ✭ 28 (+3.7%)
Mutual labels:  operator
terraform-operator
A Kubernetes CRD to handle terraform operations
Stars: ✭ 204 (+655.56%)
Mutual labels:  operator
grafana-operator
An operator for Grafana that installs and manages Grafana instances, Dashboards and Datasources through Kubernetes/OpenShift CRs
Stars: ✭ 449 (+1562.96%)
Mutual labels:  operator

VerneMQ Kubernetes Operator

Project status: alpha

The main goal of the VerneMQ Kubernetes Operator is to simplify the deployment of a VerneMQ cluster on Kubernetes. While the operator isn't the silver bullet for every VerneMQ deployment we hope to cover most cases, where scalability and high availability are required.

See: Getting Started Guide

Development

Note: the following sections are mostly copy pasted from https://github.com/operator-framework/operator-sdk/edit/master/doc/user-guide.md

Prerequisites

  • git
  • go version v1.10+.
  • docker version 17.03+.
  • kubectl version v1.11.0+.
  • Access to a kubernetes v.1.11.0+ cluster (use Minikube locally).

Quick Start

First, checkout and install the operator-sdk CLI, see https://github.com/operator-framework/operator-sdk/blob/master/doc/user/install-operator-sdk.md for more information.

Build and run the operator

Before running the operator, the CRD must be registered with the Kubernetes apiserver:

$ kubectl create -f deploy/crds/vernemq_v1alpha1_vernemq_crd.yaml

Once this is done, there are two ways to run the operator:

  • As a Deployment inside a Kubernetes cluster
  • As Go program outside a cluster

1. Run as a Deployment inside the cluster

Build the vmq-operator image and push it to a registry [not required for minicube testing]:

$ operator-sdk build vernemq/vmq-operator:latest
$ sed -i 's|REPLACE_IMAGE|vernemq/vmq-operator:latest|g' deploy/operator.yaml
$ docker push vernemq/vmq-operator:latest

The Deployment manifest is generated at deploy/operator.yaml. Be sure to update the deployment image as shown above since the default is just a placeholder.

Setup RBAC and deploy the vmq-operator:

$ kubectl create -f deploy/service_account.yaml
$ kubectl create -f deploy/role.yaml
$ kubectl create -f deploy/role_binding.yaml
$ kubectl create -f deploy/operator.yaml

Verify that the vmq-operator is up and running:

$ kubectl get deployment
NAME                     DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
vmq-operator       1         1         1            1           1m

2. Run locally outside the cluster

This method is preferred during development cycle to deploy and test faster.

Set the name of the operator in an environment variable:

export OPERATOR_NAME=vmq-operator

Run the operator locally with the default kubernetes config file present at $HOME/.kube/config:

$ operator-sdk up local --namespace=default
2018/09/30 23:10:11 Go Version: go1.10.2
2018/09/30 23:10:11 Go OS/Arch: darwin/amd64
2018/09/30 23:10:11 operator-sdk Version: 0.0.6+git
2018/09/30 23:10:12 Registering Components.
2018/09/30 23:10:12 Starting the Cmd.

You can use a specific kubeconfig via the flag --kubeconfig=<path/to/kubeconfig>.

Create a VerneMQ CR

Create the example VerneMQ CR that was generated at deploy/crds/vernemq_v1alpha1_vernemq_cr.yaml:

$ cat deploy/crds/vernemq_v1alpha1_vernemq_cr.yaml
apiVersion: "vernrmq.com/v1alpha1"
kind: "VerneMQ"
metadata:
  name: "example-vernemq"
spec:
  size: 3

$ kubectl apply -f deploy/crds/vernemq_v1alpha1_vernemq_cr.yaml

Check the pods and CR status to confirm the status is updated with the vernemq pod names:

$ kubectl get pods
NAME                            READY   STATUS             RESTARTS   AGE
example-vernemq-0               1/1     Running            0          6m31s
example-vernemq-1               1/1     Running            0          6m19s
example-vernemq-2               1/1     Running            0          6m18s
vmq-operator-7fbfd5bfbc-9cbjc   0/1     ImagePullBackOff   0          11m

License

The Operator SDK and the VerneMQ Operator are under Apache 2.0 license. See the LICENSE file for details.

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].