This is an implementation of a Service Broker that uses Helm to provision instances of MariaDB. This is a proof-of-concept for the Kubernetes Service Catalog, and should not be used in production.
Learn more about the Kubernetes Service Catalog
- Kubernetes cluster (minikube)
- Helm 2.x
- Service Catalog API - follow the walkthrough
The MariaDB Service Broker can be installed using the Helm chart in this repository.
$ git clone https://github.com/prydonius/mariadb-broker.git
$ cd mariadb-broker
$ helm install --name mariadb-broker --namespace mariadb-broker charts/mariadb-broker
To register the Broker with the Service Catalog, create the Broker object:
$ kubectl --context service-catalog create -f examples/mariadb-broker.yaml
If the Broker was successfully registered, the mariadb
ServiceClass will now
be available in the catalog:
$ kubectl --context service-catalog get serviceclasses
NAME KIND
mariadb ServiceClass.v1alpha1.servicecatalog.k8s.io
$ kubectl --context service-catalog create -f examples/mariadb-instance.yaml
This will result in the installation of a new MariaDB chart:
$ helm list
NAME REVISION UPDATED STATUS CHART NAMESPACE
i-3e0e9973-a072-49ba-8308-19568e7f4669 1 Sat May 13 17:28:35 2017 DEPLOYED mariadb-0.6.1 3e0e9973-a072-49ba-8308-19568e7f4669
$ kubectl --context service-catalog create -f examples/mariadb-binding.yaml
A secret called mariadb-instance-credentials
will be created containing the
connection details for this MariaDB instance.
$ kubectl get secret mariadb-instance-credentials -o yaml
examples/wordpress.yaml is an example of an application definition consuming the database credentials from the secret generated by the MariaDB Broker.
$ kubectl create -f examples/wordpress.yaml
Access the Service via the LoadBalancer IP or NodePort in your browser.