csi-driver is a Container Storage Interface (CSI) driver plugin for Kubernetes
to work along cert-manager. The goal for this plugin
is to facilitate requesting and mounting certificate key pairs to pods
seamlessly. This is useful for facilitating mTLS, or otherwise securing
connections of pods with guaranteed present certificates whilst having all of
the features that cert-manager provides.
Why a CSI Driver?
Ensure private keys never leave the node and are never sent over the network.
All private keys are stored locally on the node.
Unique key and certificate per application replica with a grantee to be
present on application run time.
Reduce resource management overhead by defining certificate request spec
in-line of the Kubernetes Pod template.
Automatic renewal of certificates based on expiry of each individual
certificate.
Keys and certificates are destroyed during application termination.
Scope for extending plugin behaviour with visibility on each replica's
certificate request and termination.
Documentation
Please follow the documentation at
cert-manager.io for
installing and using csi-driver.
Release Process
There is a semi-automated release process for csi-driver.
When you create a Git tag with a tagname that has a v prefix and push it to GitHub
it will trigger the release workflow.
This will:
Create and push a Docker image to quay.io/jetstack/cert-manager-csi-driver:${{ github.ref_name }}
Create a Helm chart
Create a draft GitHub release with the Helm chart file attached and containing a reference to the Docker image.
Wait for the release workflow to succeed and if successful visit the draft release page to download the attached Helm chart attachment.
Create a PR in the jetstack/jetstack-charts repository on GitHub, containing the Helm chart file that is attached to the draft GitHub release. This is only currently possible for maintainers inside Venafi, but will be changed in the future.
Wait for the PR to be merged and verify that the Helm chart is available from https://charts.jetstack.io.
Visit the releases page, edit the draft release, click "Generate release notes", and publish the release.