API resources
- API resources are defined in
api/<version>/xxx_types.go. - Manifest file for
CustomResourceDefinitionis generated bymake manifests(controller-gen). DeepCopyis generated bymake generate(controller-gen).
MySQL
MySQL represents a MySQL cluster with root acess.
- Spec
- AdminUser
- AdminPassword
- Status
- UserCount
- DBCount
TODO:
- Credential management. (#190 GCP SecretManager)
-
Change to
ClusterResourcesoMySQLUserin any namespace can reference it. (No need of changingOwnerReference)Namespaced dependents can specify cluster-scoped or namespaced owners. Ref: Owner references in object specifications
MySQLUser
When MySQLUser is created/edited/deleted, MySQL user will be created/edited/deleted by the controller.
- Spec
- MysqlName: The name of
MySQLobject - Host: MySQL user's host
- MysqlName: The name of
- Status
- Conditions
- Phase:
Readyif Secret and MySQL user are created, otherwiseNotReady - Reason: Reason for
NotReady
MySQLDB
You can create MySQL database with this custom resource.
- Spec
- DBName: The database name. (The reason for not directly using the object's name is becase some object name can't be used for database name)
- MysqlName: The name of
MySQLobject
ToDo:
- Validate
DBName