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.

install
kubectl apply -k deploy/base
kubectl create secret generic s3-creds \
    --from-literal=accessKeyId=... --from-literal=secretAccessKey=...
kubectl apply -f my-pod.yaml

Or 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:

install with Helm
helm install csi-s3-archiver deploy/helm/csi-s3-archiver \
    --namespace csi-s3-archiver --create-namespace \
    --set config.bucket=prod-dumps

The values, the credential options and what an upgrade needs are in the Helm section of the install guide.

Reference#

  • Configuration

    Every S3A_* variable and volumeAttribute, 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#

PageAnswers
DistributionsWhat is different on vcluster, Talos, OpenShift, MicroK8s and k0s, and the two managed products where the driver cannot run at all.
ComparisonShould I use this instead of a FUSE mount, a sidecar, a log shipper or Velero? Includes when not to.
BenchmarksWhat does it cost to run, measured, and why there is no goofys throughput comparison.
SecurityWhat it does not have: No API access, no mount(2), no shell, and in two modes no credentials on the node.
FAQThe questions that come up before adopting it.
Why JavaWhat Java 25 brings to a CSI driver, what the native image costs, and where Go would have been easier.
Release historyWhat 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.

FileWhat it is
reference.jsonEvery 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.txtAn index of the site in the llms.txt format, one line per page saying what that page answers.
llms-full.txtEvery 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.