Installing SchemaHero
SchemaHero has 2 different components: an in-cluster Kubernetes Operator and a client side kubectl plugin that you can use to interact with the operator. The best way to get started is to install the kubectl plugin:
Client
The SchemaHero client component is packaged as a kubectl
plugin, and distributed through the krew package manager.
If you don't already have krew installed, head over to the krew installation guide, follow the steps there and then come back here.
Install the SchemaHero client component using:
kubectl krew install schemahero
Note: This will not install anything to your cluster, it only places a single binary named kubectl-schemahero
on your path.
Verify the installation by checking the version:
kubectl schemahero version
You should see the version of SchemaHero installed on your workstation (0.12.1 or similar).
Operator
SchemaHero relies on an in-cluster operator. The next step in the installation is the operator components:
One Command Deploy
It's easy to install the operator using the built-in command:
kubectl schemahero install
The above command will create a schemahero-system
namespace, and install 3 new Custom Resource Definitions to your cluster.
GitOps and Other Workflows
An alternative approach is to let the kubectl plugin generate the YAML that can be checked in, commited, and deployed using another tool:
kubectl schemahero install --yaml
This will create the necessary YAML to install the in-cluster SchemaHero operator.
After inspection, you can use kubectl
to apply
this YAML to your cluster.
Verification
To verify the deployment, you can run:
kubectl get pods -n schemahero-system
There should be 1 pod running in this namespace:
$ kubectl get pods -n schemahero-system
NAME READY STATUS RESTARTS AGE
schemahero-0 1/1 Running 0 66s
Verifying the image authenticity
We sign the official container images that are published on each release.
These are signed using cosign.
To verify the container image, you download our public key into a file named schemahero.pub
and then:
cosign verify -key schemahero.pub schemahero/schemahero:0.12.3
If the container image was properly signed, you will see output similar to:
Verification for schemahero/schemahero:0.12.3 --
The following checks were performed on each of these signatures:
- The cosign claims were validated
- The signatures were verified against the specified public key
- Any certificates were verified against the Fulcio roots.
{"critical":{"identity":{"docker-reference":"index.docker.io/schemahero/schemahero"},"image":{"docker-manifest-digest":"sha256:d8f2a52b42d80917f4de89f254c5bdfd55edc5a866fe97e2703259405315bc8b"},"type":"cosign container image signature"},"optional":null}
Download the Software Bill of Materials
We also publish a SBOM (Software Bill of Materials) in SPDX format for each release. To download the SBOM for a specific version, use the cosign tool and run:
cosign download sbom schemahero/schemahero:0.12.3
It's sometimes useful to save the SBOM to a file:
cosign download sbom schemahero/schemahero:0.12.3 > sbom.txt
Found SBOM of media type: text/spdx