Jack
01/31/2025, 7:08 PMecordell
02/04/2025, 2:13 PMJack
02/04/2025, 5:28 PMJack
02/05/2025, 6:18 PMzed import
doesn't contain a relationships:
block, then no relationships are written or deleted. Also, if there are relationships that already exist, it's a no-op. So I think I could work with that file format as a configmap.
FWIW, our use case is basically the following scenarios, and I'm hoping spicedb-operator can eventually handle all of them. We have a single-tenant architecture, so we are supporting a fair number of independent SpiceDB clusters that we want to update together:
1. For new SpiceDB clusters, we want to write an initial schema and set of relationships once the cluster is migrated to our desired version.
2. For outdated SpiceDB clusters, we want to be able to update the cluster. I'm worried that a schema we'd want to apply depends on the SpiceDB upgrade/migration happening first (e.g. caveats), so I'd love for the operator to "bootstrap" the upgraded cluster with the new schema but not overwrite the relationships.
3. For steady-state SpiceDB clusters, we want to be able to push a schema update across all clusters. A zed schema write
or a zed import
with an empty relationships block (or one containing just the initial bootstrapped relationships) would do it as long as it's not destructive to the rest of the relationships we've added over time.
I'm pretty agnostic as to whether the operator actively manages the schema via only the ConfigMap and locks down the WriteRelationships API in SpiceDB -- that may be the cleanest solution though.Jack
02/05/2025, 6:42 PM