Cluster Setup and IPFS

Purpose

This subtopic addresses the automated provisioning and configuration of Kubernetes clusters tailored for the ShapeShift Unchained platform, with a particular focus on integrating a decentralized file storage solution via IPFS (InterPlanetary File System). It solves the problem of managing scalable, reliable infrastructure environments and providing decentralized storage capabilities as a native part of the deployment process, thereby enabling blockchain services and APIs to leverage distributed storage seamlessly.

Functionality

The cluster setup leverages Pulumi scripts to:

This automation encapsulates infrastructure setup and decentralized storage provisioning into a single, easily repeatable deployment process.

Integration

Cluster Setup and IPFS integrates tightly with the parent topic of **Deployment Automation** by providing the foundational Kubernetes environment and storage infrastructure upon which blockchain node daemons, indexers, and API services run.

This subtopic adds a new dimension to deployment automation by integrating decentralized storage infrastructure natively, which is not covered by other subtopics focused solely on Kubernetes resource management or Docker image automation.

Diagram

flowchart TD
  A[Start Pulumi Deployment] --> B[Create EKS Kubernetes Cluster]
  B --> C[Create Namespaces (default & env-specific)]
  C --> D[Build & Push Docker Images (if configured)]
  D --> E[Deploy IPFS Cluster in 'unchained-infra' namespace]
  E --> F[Create Secrets & ConfigMaps for IPFS]
  F --> G[Deploy IPFS Daemon & IPFS-Cluster StatefulSet]
  G --> H[Set up Persistent Volumes]
  H --> I[Configure TLS Certs & Traefik IngressRoute]
  I --> J[IPFS Gateway Available with Secure Access]
  J --> K[Cluster Ready for Blockchain Services Deployment]

Code Snippet Highlights

This encapsulates how the cluster is bootstrapped and how IPFS is integrated as a core infrastructure component to support decentralized file storage needs within the Kubernetes environment.