...
Hyrax Containers
Kubernetes (k8s)
Many Containers, there is a need to configure these into a set of services which can interface/communicate
Typically, the architecture is oriented towards running one (or a limited number of processes) per container
Hence, a Rails application runs in one container, a key/value store in another container, Solr in another container…
This is similar to Docker Compose, but at a much larger scale, with an extensive API for clients to query or update
API provides users to declare and set the state of the entire system of Containers
Helm Charts for Hyrax
https://helm.sh/docs/topics/charts/#helm
Package manager for k8s
Essentially, k8s will take a set of YAML files to define the state of the cluster of the containers
As such, Helm provides a templating language/domain-specific language (with variables) for describing the state of the container cluster
The actual application code within the container, then, can be set
(e. g. setting the version of Solr, or certain customizations, etc.)
A repeatable pattern for deploying many Hyrax applications
Container Registries
Open Container Initiative (OCI) artifact registry
Artifacts can be container images, but also, other binaries (e. g. software binaries)
Providing authentication is supported
UCSB and UCSD have had experience sharing a registry
Helm charts permit one to define the images deployed, the ports exposed, and the network topology (to some extent)
k8s itself manages the pulling of the container images and manages the resources used to provision the container
Hence, k8s needs to be able to access the credentials required to query and pull the container registry
Registry can serve as a repository for other artifacts, including Helm Charts
This is experimentally supported at the moment
GitHub Packages
Notes
Hyrax Container
Samvera provides Dockerfiles for running Hyrax
K8s
<To be drafted>
...