# Quickstart

### Pre-requisites

In order to setup redis-operator, you'll need access to a Kubernetes cluster:-

* [Virtualbox](https://www.virtualbox.org/wiki/Downloads) - hypervisor to run a Kubernetes cluster
* [Minikube](https://kubernetes.io/docs/setup/minikube/) - for Kubernetes cluster creation on local machine
* [Kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/) - to interact with Kubernetes cluster

### Deploying Redis Operator(Minikube)

#### Start a local minikube cluster

Minikube is a minimal Kubernetes cluster run in a virtual machine (here in VirtualBox).

```bash
minikube start --vm-driver virtualbox
```

From now on your local Kubernetes client `kubectl` is configured to use your just started Minikube cluster.

#### Create a new namespace

First, we need to create a namespace for our resources to be deployed in. This is for the sake of separation and keeping order:

```bash
kubectl create namespace redis-operator
```

Redis operator by default watches for every change in Redis Configuration.

### Standalone Redis Setup

```bash
kubectl apply -f example/redis-standalone-example.yaml -n redis-operator
```

### Cluster Redis Setup

```bash
kubectl apply -f example/redis-cluster-example.yaml -n redis-operator
```

### Cleanup

```bash
# To delete standalone setup
kubectl delete -f example/redis-standalone-example.yaml -n redis-operator
# To delete cluster setups
kubectl delete -f example/redis-cluster-example.yaml -n redis-operator
```
