API resources
- API resources are defined in
api/<version>/xxx_types.go
. - Manifest file for
CustomResourceDefinition
is generated bymake manifests
(controller-gen
). DeepCopy
is 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
ClusterResource
soMySQLUser
in 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
MySQL
object - Host: MySQL user's host
- MysqlName: The name of
- Status
- Conditions
- Phase:
Ready
if 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
MySQL
object
ToDo:
- Validate
DBName