Image Tags
SchemaHero builds and uses 2 different container images:
schemahero/schemahero
and schemahero/schemahero-manager
.
The 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 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:
- It's possible to run schemahero as a binary, outside of Kubernetes. As covered later in these docs, this is useful in testing and dev environments when creating fixtures.
- This separation enables SchemaHero to work in tightly controlled environments where it might not be possible to connect to the database from any pod on any node in the cluster.
SchemaHero supports Kubernetes
nodeSelector
attribute at the database connection level, allowing theschemahero-manager
to manage multiple databases.
The two images are tagged and released at the same time, using the same versioning system
Semver: 0.12.1
The :x.y.z
tag points to a specific, immutable revision.
These are created when a tag is pushed.
The current version is 0.12.1.
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.
Prelease Images
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.