Repository navigation
Add a Helm chart and Linux packages for Record Store - #105
Merged
Merged
Conversation
- Introduced a Helm chart for deploying Record Store on Kubernetes, including a values.yaml file for configuration. - Added scripts for building .deb and .rpm packages for Record Store, ensuring they are statically linked and compatible with various Linux distributions. - Created systemd service unit and configuration files for Record Store, ensuring proper permissions and security practices. - Implemented post-install, pre-remove, and post-remove scripts to manage user and group creation, credential generation, and service management. - Documented the deployment process for both Kubernetes and Linux packages, including installation, configuration, and upgrading procedures. Signed-off-by: Ntege Daniel <danientege785@gmail.com>
Main moved the Rust audit and fuzz jobs into gates.yml and replaced the release workflow's rust job with gates, so the Linux packages now build after the gates, and the release waits for both packaging and the release decision. Provenance covers only the glibc archives, and the release notes now say so.
The public documentation makes no multi-node claims, and DOC-BOUNDARY holds it to that. The chart no longer offers cluster mode: it runs exactly one server pod, and setting replicaCount fails the render instead of being ignored. The join-token init container, the peer port, the pod disruption budget and the multi-node docs are gone. The Kubernetes page now says what one pod means for availability, including that a failed node keeps the pod down until the node returns or is deleted.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this adds
New ways to install Record Store, published with every release:
amd64andarm64. They install the server and CLI, a hardened systemd unit, and a configuration file that upgrades never overwrite. On first install they generate credentials unique to the machine. Nothing starts until an operator enables the service.…-musl.tar.gz) next to the existing glibc ones. The glibc archives need Debian 12 or newer; the static ones run on any distribution.oci://ghcr.io/openelementslabs/charts/record-storeand attached to the release for air-gapped installs. It runs one standalone server as a StatefulSet on its own volume and the console as a Deployment. The management API stays internal (ClusterIPonly).Docs:
docs/deployment/kubernetes.md,docs/deployment/linux-packages.md, and an updated installation page.What it deliberately does not do
replicaCountfails the install rather than being ignored. Multi-node support can come in its own PR together with the docs for it.SHA256SUMS.Limits a user needs to know
Why it is built this way
.debon Debian 12, starts the server and waits for/ready, and installs the.rpmon Rocky 9. A broken maintainer script then fails the release, not the first operator's install.replicaCountis refused. It then installs the chart on a kind cluster.This branch includes a merge of
main. The release job now waits for main'sgates,provenanceandrelease-decisionjobs as well aslinux-packagesandchart.cargo fmt,clippy,test,rust-audit: no Rust changesmkdocs build --strictbash tests/compatibility/run.sh: S3 surface unchangedCHANGELOG.mdupdated under## [Unreleased]helm lint, all render variants and the chart invariants pass locally (the schema check needs Docker and runs in CI)