# Getting Started
# Pre-requisites
Before you get started using KUDO, you need to have a running Kubernetes cluster setup. We use Kind (opens new window) and Minikube (opens new window) for testing purposes.
- Setup a Kubernetes Cluster in version
1.13
or later (if you plan to use Minikube, please see the notes below) - Install kubectl (opens new window) in version
1.13
or later. - Install cert-manager (opens new window). KUDO makes use of webhooks (opens new window) which require TLS. See additional notes below if you're interested in developing and testing KUDO without having to install cert-manager.
# Install KUDO CLI
Install the kubectl kudo
plugin. To do so, please follow the CLI plugin installation instructions.
The KUDO CLI leverages the kubectl plugin system, which gives you all its functionality under kubectl kudo
. This is a convenient way to install and deal with your KUDO Operators.
# Install KUDO into your cluster
Once you have a running cluster with kubectl
installed along with the KUDO CLI plugin, you can install KUDO like so:
$ kubectl kudo init
This will create several resources. First, it will create the Custom Resource Definitions (opens new window), service account (opens new window), and role bindings (opens new window) necessary for KUDO to operate. It will also create an instance of the KUDO controller (opens new window) so that we can begin creating instances of applications.
If you want to manage the installation by hand the following is also possible:
$ kubectl kudo init --dry-run -o=yaml > kudo.yaml
$ kubectl apply -f kudo.yaml
See kudo init documentation for more KUDO installation options.
# Deploy Your First Operator
To get started, follow the instructions in the Apache Kafka example to deploy a Kafka cluster along with its dependency ZooKeeper.
See the KUDO Operator repository at https://github.com/kudobuilder/operators/ (opens new window) for more KUDO Operators and documentation.
# Create Your First Operator
To see the powers of KUDO unleashed in full, you should try creating your own operator.
# Notes on Minikube
If you plan on developing and testing KUDO locally via Minikube, you'll need to launch your cluster with a reasonable amount of memory allocated. By default, Minikube runs with 2GB - we recommend at least 10GB, especially if you're working with applications such as Kafka. You can start Minikube with some suitable resource adjustments as follows:
$ minikube start --cpus=4 --memory=10240 --disk-size=40g
# Notes on KIND
In order to use KIND with storage Operators, you must be using KIND version 0.7.0 or newer.
# Notes on cert-manager
If the cert-manager dependency isn't an option for your environment, then you can install KUDO with an (insecure) self-signed CA bundle by doing the following:
$ kubectl kudo init --unsafe-self-signed-webhook-ca
For development, you should also take a look at this blog post.