Skip to content

rh-ecosystem-edge/recert

Folders and files

NameName
Last commit message
Last commit date
Jan 11, 2024
Mar 15, 2024
Mar 12, 2025
Mar 12, 2025
Oct 24, 2023
Jan 31, 2024
Jun 12, 2024
Sep 28, 2023
Feb 25, 2025
Dec 5, 2024
Jun 19, 2023
Nov 21, 2023
Oct 18, 2023
Sep 28, 2023
Jun 7, 2023
Dec 5, 2024
Dec 5, 2024
Jun 6, 2024
Dec 22, 2023
Oct 10, 2024
Feb 19, 2025
Apr 17, 2024
Mar 25, 2024
Apr 10, 2024
Nov 7, 2023
Nov 6, 2023
Nov 3, 2023
Sep 18, 2024
Feb 27, 2024

Repository files navigation

Recert

A tool to regenerate all cryptographic objects in a cluster (both in the etcd database and filesystem files) before it starts. Works by scanning the existing certificates/keys/jwts, understanding how they relate, and replacing them in an identical structure, but with new randomly generated keys and optional customizations.

Why

The motivation for creating this tool was the effort to allow users to install a SNO cluster once in a lab, then copy its disk image for immediate deployment in many different sites. By running the tool during the first boot of a host from said image, the new cluster will then have its own independent crypto that is separate from other clusters deployed in the same manner.

Documentation

For more information see the design doc

Usage examples

Local Development

You need rust, protoc, podman, openssl, meld, and an IBU seed image. Then Set the pull secret for the seed image under ~/seed-pull-secret run ./run_seed.sh <seed pullspec>

On Fedora a lot of these can be installed using: sudo dnf install protobuf-compiler podman openssl meld

Run on a cluster

See sno-relocation-poc

Syncing assets to skip specific OpenShift rollouts

See hack/assets

Image build

export DOCKER_BUILDKIT=1
docker build . -t recert

TODO

TODO List
  • Remove OLM package server hack
  • Convert from resource YAML to etcd key-value key more gracefully
  • Find proof that root-ca private key is actually missing
  • When shelling out to openssl to check if cert A signed cert B, construct the command in such a way that if A == B, then it will not give a green result when said cert is not self signed
  • Fix all code TODO comments

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages