SchemaHero builds and uses 2 different container images:
schemahero-manager image is the Kubernetes CRD controller and manager. It runs in the cluster and handles the reconciliation of any deployed custom resources. When a database or table custom resource is deployed, the code to connect to and monitor the connection is in the schemahero container. Both of these container images are built from this repo.
There are several reasons for this separation:
nodeSelectorattribute at the database connection level, allowing the
schemahero-managerto manage multiple databases.
The two images are tagged and released at the same time, using the same versioning system
:x.y.z tag points to a specific, immutable revision. These are created when a tag is pushed. These are the most stable versions of SchemaHero and recommended to use in production. A release tag (one without a
-prerelease suffix) will never be overwritten with a new image.
SchemaHero releases pre-release versions, but does not publish these to the
krew index. These can be manually installed, but are not recommended for production environments.