# csi-s3-archiver > A Kubernetes CSI driver giving pods a local scratch volume whose contents are archived to S3 automatically: no sidecar, no S3 SDK, no application change. Pod-local volumes that archive themselves to S3. Driver name `s3archiver.csi.trion.de`, CSI spec v1.12.0, Linux amd64 and arm64. The volume is an ordinary directory on the node rather than a mount, so there is no FUSE, no `mount(2)`, and no Kubernetes API access anywhere in the driver. Files are uploaded once the writer stops touching them, and pod deletion blocks on a final sweep. ## Documentation - [csi-s3-archiver](https://s3archiver.csi.trion.de/): A Kubernetes CSI driver giving pods a local scratch volume whose contents are archived to S3 automatically: no sidecar, no S3 SDK, no application change. - [Architecture](https://s3archiver.csi.trion.de/architecture.html): How csi-s3-archiver is deployed and how it is built: The DaemonSet, the optional Controller, and the classes inside the process with their responsibilities. - [Configuration](https://s3archiver.csi.trion.de/configuration.html): Every environment variable and volumeAttribute csi-s3-archiver accepts, the prefix placeholders, and how to choose an append strategy. - [Credentials](https://s3archiver.csi.trion.de/credentials.html): How csi-s3-archiver resolves credentials per volume: The default provider chain, per-volume secrets, presigned mode and static POST policies. - [Documentation](https://s3archiver.csi.trion.de/docs.html): Documentation for csi-s3-archiver: Configuration reference, credential modes, operational semantics, and how to install it. - [Install](https://s3archiver.csi.trion.de/install.html): Install csi-s3-archiver on a cluster: One kustomize apply, credentials, a first pod that archives a file, and how to verify it worked. - [Operations](https://s3archiver.csi.trion.de/operations.html): Running csi-s3-archiver: What pod deletion waits for, the archiving semantics and their caveats, resource requests and limits, and troubleshooting. - [S3 endpoints: What works where](https://s3archiver.csi.trion.de/s3-compatibility.html): csi-s3-archiver against SeaweedFS, Garage, S3Proxy, CloudServer, Versity and RustFS. A measured capability matrix, and a docker-compose setup for each. ## Kubernetes distributions - [GKE Autopilot and EKS Fargate](https://s3archiver.csi.trion.de/install-autopilot-fargate.html): Why csi-s3-archiver cannot be installed on GKE Autopilot or EKS Fargate, why a mixed cluster is still fine, and what to do instead when it is not. - [csi-s3-archiver on k0s](https://s3archiver.csi.trion.de/install-k0s.html): Installing the driver on k0s: kubelet keeps its state in /var/lib/k0s/kubelet, so either set kubeletDir or start the workers with --kubelet-root-dir. - [csi-s3-archiver on MicroK8s](https://s3archiver.csi.trion.de/install-microk8s.html): Installing the driver on MicroK8s: kubelet keeps its plugin and pod directories under the snap tree, so one kubeletDir value moves all three host paths. - [csi-s3-archiver on OpenShift](https://s3archiver.csi.trion.de/install-openshift.html): Installing the driver on OpenShift: the SecurityContextConstraint the node plugin needs, why hostmount-anyuid is enough, and why the privileged SCC is not required. - [csi-s3-archiver on Talos Linux](https://s3archiver.csi.trion.de/install-talos.html): The Pod Security label the Talos DaemonSet needs, why the kustomize base already has it and Helm does not, and why no kubelet extra mounts apply. - [csi-s3-archiver on vcluster](https://s3archiver.csi.trion.de/install-vcluster.html): Archived CSI volumes inside a virtual cluster. Install on the host, why a DaemonSet inside the vcluster cannot work, and what the prefix placeholders resolve to. ## S3 endpoints - [Zenko CloudServer with csi-s3-archiver](https://s3archiver.csi.trion.de/s3-cloudserver.html): Running Zenko CloudServer with docker compose and pointing csi-s3-archiver at it: The endpoint configuration, what it supports, and what to watch out for. - [Garage with csi-s3-archiver](https://s3archiver.csi.trion.de/s3-garage.html): Running Garage with docker compose and pointing csi-s3-archiver at it: The endpoint configuration, what it supports, and what to watch out for. - [RustFS with csi-s3-archiver](https://s3archiver.csi.trion.de/s3-rustfs.html): Running RustFS with docker compose and pointing csi-s3-archiver at it: The endpoint configuration, what it supports, and what to watch out for. - [S3Proxy with csi-s3-archiver](https://s3archiver.csi.trion.de/s3-s3proxy.html): Running S3Proxy with docker compose and pointing csi-s3-archiver at it: The endpoint configuration, what it supports, and what to watch out for. - [SeaweedFS with csi-s3-archiver](https://s3archiver.csi.trion.de/s3-seaweedfs.html): Running SeaweedFS with docker compose and pointing csi-s3-archiver at it: The endpoint configuration, what it supports, and what to watch out for. - [Versity S3 Gateway with csi-s3-archiver](https://s3archiver.csi.trion.de/s3-versitygw.html): Running Versity S3 Gateway with docker compose and pointing csi-s3-archiver at it: The endpoint configuration, what it supports, and what to watch out for. ## Background and comparison - [Benchmarks](https://s3archiver.csi.trion.de/benchmarks.html): Measured resource use for csi-s3-archiver, why the goofys benchmark does not apply to it, and how to reproduce every number on this page. - [Compared to the alternatives](https://s3archiver.csi.trion.de/compare.html): How csi-s3-archiver differs from S3 FUSE mounts, sidecars, preStop hooks, log shippers and Velero, including when to pick one of those instead. - [FAQ](https://s3archiver.csi.trion.de/faq.html): What happens when S3 is down, why pod deletion blocks, how credentials resolve, and what csi-s3-archiver deliberately will not do. - [Release history](https://s3archiver.csi.trion.de/releases.html): What shipped in each version of csi-s3-archiver, what changed for users, and the versioning and support policy. - [Screenshots](https://s3archiver.csi.trion.de/screenshots.html): The csi-s3-archiver statistics page, and short recordings of installing the driver, archiving a file, shipping a growing log and a rejected volume attribute. - [Security](https://s3archiver.csi.trion.de/security.html): What csi-s3-archiver does not have: No API-server access, no mount(2), no credentials on the node, no shell in the image. Written for regulated environments. - [Why Java](https://s3archiver.csi.trion.de/why-java.html): A CSI driver in Java 25: What the language gives this problem, what the native image costs and saves, and where Go would still have been the easier choice. ## Machine-readable - [reference.json](https://s3archiver.csi.trion.de/reference.json): every environment variable and volumeAttribute as JSON, generated from the same source as the configuration page - [llms-full.txt](https://s3archiver.csi.trion.de/llms-full.txt): every page above as one Markdown document - [security.txt](https://s3archiver.csi.trion.de/.well-known/security.txt): RFC 9116 security contact