Latest KBE Blog Post - Migrating to Kubernetes with Open Source Tools

Operator Lifecycle Manager: Creating and using an Operator-managed database server

Deploy a MariaDB Server *operand* by creating the MariaDB manifest.

cat > mariadb-cr.yaml <<EOF
apiVersion: mariadb.persistentsys/v1alpha1
kind: MariaDB
metadata:
  name: mariadb
spec:
  database: test-db
  username: db-user
  password: db-user
  rootpwd: password
  size: 1
  image: 'mariadb/server:10.3'
  dataStoragePath: /mnt/data
  dataStorageSize: 1Gi
EOF

Create the MariaDB Custom Resource:

kubectl create -f mariadb-cr.yaml

The MariaDB Operator should now begin to generate the MariaDB resources:

kubectl get deployments
kubectl get secrets
kubectl get services

Run a mysql client pod, from which you can connect to the mariadb service:

kubectl run mycli -i -t --rm --restart=Never --image=mysql -- /bin/bash

You'll be presented with the shell prompt of a new container with mysql tools installed. Run the mysql client to connect to your Operator-managed MariaDB server:

mysql -h mariadb-service --port 80 -u db-user --password=db-user

Now you're presented with the MariaDB/MySQL Monitor command prompt. You can run the usual SQL queries here:

show databases;
use test-db;
show tables;
CREATE TABLE t1 (
    c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    c2 VARCHAR(100),
    c3 VARCHAR(100) );
show status;