Reference
Documentation
Start with the install guide if you have not run it yet. The reference is split by the question you are asking: What can I set, how does it authenticate, and what happens once it is running.
Start here#
Three commands from nothing to an archived file. The install guide has the full walkthrough, including credentials and how to verify it worked.
kubectl apply -k deploy/base
kubectl create secret generic s3-creds \
--from-literal=accessKeyId=... --from-literal=secretAccessKey=...
kubectl apply -f my-pod.yamlOr with Helm, which installs the same objects. The chart is in the repository rather than on a chart repository, because nothing has been tagged yet:
helm install csi-s3-archiver deploy/helm/csi-s3-archiver \
--namespace csi-s3-archiver --create-namespace \
--set config.bucket=prod-dumpsThe values, the credential options and what an upgrade needs are in the Helm section of the install guide.
Reference#
Configuration
Every
S3A_*variable andvolumeAttribute, the prefix placeholders, and how to choose an append strategy.Environment · volumeAttributes · Prefix placeholders · Append strategies
Credentials
The four ways a volume authenticates, resolved in a fixed order: The AWS default chain, per-volume secrets, a signer, or a static POST policy.
Resolution order · Presigned mode · POST policies · Rotation
Operations
What to expect once it is running: What pod deletion waits for, the archiving semantics and their caveats, what to size the container for, and troubleshooting.
The final sweep · Semantics and caveats · Resources · Troubleshooting · Versions
Architecture
What runs where and which class does what: Deployment diagrams for the DaemonSet and the optional Controller, and the structure inside the process.
The DaemonSet · With the Controller · Inside the process · The publish path
Going further#
| Page | Answers |
|---|---|
| Distributions | What is different on vcluster, Talos, OpenShift, MicroK8s and k0s, and the two managed products where the driver cannot run at all. |
| Comparison | Should I use this instead of a FUSE mount, a sidecar, a log shipper or Velero? Includes when not to. |
| Benchmarks | What does it cost to run, measured, and why there is no goofys throughput comparison. |
| Security | What it does not have: No API access, no mount(2), no shell, and in two modes no credentials on the node. |
| FAQ | The questions that come up before adopting it. |
| Why Java | What Java 25 brings to a CSI driver, what the native image costs, and where Go would have been easier. |
| Release history | What shipped when, and the compatibility rules the project holds to. |
Machine-readable#
The same documentation, for the things that read it on your behalf. An assistant answering a
question about this driver, a validating admission webhook, or editor completion for
volumeAttributes can start from one of these instead of from rendered HTML. Each is generated
from the source the pages above are generated from, so none of them can quietly fall behind.
| File | What it is |
|---|---|
| reference.json | Every S3A_* variable and every volumeAttribute as JSON, each with its default, its description, and the environment variable that overrides it. Built from the same table the configuration page renders. |
| llms.txt | An index of the site in the llms.txt format, one line per page saying what that page answers. |
| llms-full.txt | Every page on this site as one Markdown document, each with the URL it can be cited from. |
Nothing here is behind a robots rule and nothing is rate-limited. If you are building something against this driver and the shape of these files is awkward, that is worth telling us about.