IPFS is a distributed system for storing and accessing files, websites, applications, and data.

We've extended Kubernetes with Peer and ClusterPeer custom resources which can be used to deploy IPFS peers, swarms, and clusters from the given spec.


Peer is an ipfs peer running go-ipfs client and connecting to the public ipfs swarm or a private swarm secured by swarm key. Here's an example of a very basic ipfs peer connecting to the public ipfs swarm.

apiVersion: ipfs.kotal.io/v1alpha1
kind: Peer
Name: simple-peer
spec: {}

For all the fields associated with the Peer API resource:

kubectl explain peers
kubectl explain peers.spec

Full ipfs peer reference is documented here.


ClusterPeer is an ipfs cluster peer running ipfs-cluster-service client, connecting to ipfs peer and optional bootstrap cluster peer(s). ClusterPeers provide data orchestration across a swarm of IPFS daemons by allocating, replicating and tracking a global pinset distributed among multiple peers. Here's an example of cluster peer connecting to ipfs peer.

apiVersion: ipfs.kotal.io/v1alpha1
kind: ClusterPeer
Name: simple-cluster-peer
peerEndpoint: /dns4/simple-peer/tcp/5001

For all the fields associated with the ClusterPeer API resource:

kubectl explain clusterpeers
kubectl explain clusterpeers.spec

Full ipfs cluster peer reference is documented here.