Skip to content

stenic/sql-operator

Repository files navigation

SqlOperator

Last release Artifact Hub FOSSA Status

Operate sql databases, users and grants.

This is a WIP project and should not at all be used in production at this time. Feel free to validate in CI pipelines.

Engines

Currenty, only MySQL is supported.

Installation

kubectl create namespace sql-operator
helm repo add sql-operator https://stenic.github.io/sql-operator/
helm install sql-operator --namespace sql-operator sql-operator/sql-operator

Objects

SqlHost

The SqlHost object contains information how the operator should connect to the remote server. Note that this information should be protected using rbac.

SqlDatabase

The SqlDatabase object manages a database on the referenced SqlHost.

SqlUser

The SqlUser object manages a user on the referenced SqlHost.

SqlGrant

The SqlGrant object manages the grant for the referenced SqlUser on the referenced SqlDatabase.

Example

The following example registeres a SqlHost pointing to a shared integration host and creates a database, user and grants to run integration tests for the application.

---
# Register a host - Not created by the operator
apiVersion: stenic.io/v1alpha1
kind: SqlHost
metadata:
  name: integration
spec:
  engine: Mysql
  dsn: sqloperator:xxxxxxxxxxx@tcp(192.168.1.123:3306)/

---
# Create a database on the host
apiVersion: stenic.io/v1alpha1
kind: SqlDatabase
metadata:
  name: application-int-db
spec:
  databaseName: myapp_testing
  hostRef:
    name: integration
  cleanupPolicy: Delete

---
# Create a user on the host
apiVersion: stenic.io/v1alpha1
kind: SqlUser
metadata:
  name: application-int-user
spec:
  credentials:
    username: myapp_username
    password: myapp_password
  hostRef:
    name: integration
  cleanupPolicy: Delete

---
# Add some grant to the user
apiVersion: stenic.io/v1alpha1
kind: SqlGrant
metadata:
  name: application-int-grant
spec:
  userRef:
    name: application-int-user
  databaseRef:
    name: application-int-db
  grants:
    - INSERT
    - SELECT
    - UPDATE
    - DELETE
  cleanupPolicy: Delete

License

FOSSA Status