{ "apiVersion": "apiextensions.k8s.io/v1", "kind": "CustomResourceDefinition", "metadata": { "name": "mysqlreplicacrds.flowercore.io" }, "spec": { "group": "flowercore.io", "names": { "kind": "MySqlReplicaCrd", "listKind": "MySqlReplicaCrdList", "plural": "mysqlreplicacrds", "singular": "mysqlreplicacrd", "shortNames": [ "mysqlreplica", "mysqlrepl" ] }, "scope": "Namespaced", "versions": [ { "name": "v1", "served": true, "storage": true, "schema": { "openAPIV3Schema": { "type": "object", "properties": { "spec": { "type": "object", "properties": { "action": { "type": "string", "description": "Reserved for ADR-039 action dispatch. The replica reconciler is declarative \u2014 promote / failover go through the MySQL Manager Web API instead." }, "labels": { "type": "object", "additionalProperties": { "type": "string" }, "description": "Replica topology fields carried as labels (primary-instance, replica-instance, replication-user, replication-user-secret, auto-failover)." } } }, "status": { "type": "object", "properties": { "phase": { "type": "string", "description": "Replication phase (Pending, Configuring, Running, Degraded, Failed, Promoted)." }, "lastApplied": { "type": "string", "format": "date-time", "description": "UTC timestamp of the last successful reconcile." }, "currentSourceHost": { "type": "string", "description": "SOURCE_HOST currently configured on the replica." }, "currentSourcePort": { "type": "integer", "description": "SOURCE_PORT currently configured on the replica." }, "secondsBehindSource": { "type": "integer", "format": "int64", "description": "Seconds_Behind_Source from SHOW REPLICA STATUS." }, "replicaIoRunning": { "type": "string", "description": "Replica_IO_Running (Yes/No/Connecting)." }, "replicaSqlRunning": { "type": "string", "description": "Replica_SQL_Running." }, "lastError": { "type": "string", "description": "Most recent IO / SQL error text." }, "lastAction": { "type": "string" }, "lastActionStatus": { "type": "string" }, "lastActionTimestamp": { "type": "string", "format": "date-time" }, "message": { "type": "string" }, "ready": { "type": "string" }, "retryCount": { "type": "integer" }, "nextRetryAt": { "type": "string", "format": "date-time" }, "conditions": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string" }, "status": { "type": "string" }, "lastTransitionTime": { "type": "string", "format": "date-time" }, "reason": { "type": "string" }, "message": { "type": "string" } } } } } } } } }, "subresources": { "status": {} }, "additionalPrinterColumns": [ { "name": "Phase", "type": "string", "jsonPath": ".status.phase" }, { "name": "Source", "type": "string", "jsonPath": ".status.currentSourceHost" }, { "name": "Lag", "type": "integer", "jsonPath": ".status.secondsBehindSource" }, { "name": "Ready", "type": "string", "jsonPath": ".status.ready" }, { "name": "Age", "type": "date", "jsonPath": ".metadata.creationTimestamp" } ] } ] } }