How to Deploy SDS Block with ROSA and PostgreSQL Using Terraform and Ansible
Modern cloud-native platforms demand speed, consistency, and automation — especially when deploying persistent storage for mission-critical applications. This blog walks through how to automate the full deployment of Hitachi VSP One SDS Block on AWS, integrate it with Red Hat OpenShift Service on AWS (ROSA), and run PostgreSQL using Terraform and Ansible. This approach turns what used to require days of manual work into a repeatable, one-click Infrastructure-as-Code pipeline.
For complete technical details and deployment steps, refer to the full Reference Architecture document.
👉 Download the Reference Architecture (RA)
Why This Automation Matters
Organizations moving to cloud-native architecture often struggle with:
- Manual configuration of cloud infrastructure
- Complex, error-prone SDS Block provisioning
- Integrating ROSA worker nodes with iSCSI-based storage
- Ensuring consistent PVC → PV provisioning
- Managing multipath, storage pools, and CSI drivers
Automating all these with Terraform and Ansible creates:
· Consistent deployments across environments
· Faster onboarding for DevOps teams
· Reduced operational overhead
· Stronger reliability and performance for stateful workloads
Solution Overview
This automated deployment provisions AWS infrastructure, Hitachi VSP One SDS Block, ROSA clusters, CSI drivers, and PostgreSQL workloads. Key components include VPC creation, SDS Block provisioning, ROSA worker configuration, and CSI-based dynamic volume provisioning.
1. AWS Infrastructure
- VPC, subnets, routing
- IAM policies and roles
- EC2-based SDS Block nodes
- Utility VM for Terraform + Ansible
2.Hitachi VSP One SDS Block
- Automated cluster deployment on AWS
- Password reset & initialization
- Storage pool creation and expansion
- iSCSI configuration and multipath enablement
3.ROSA Cluster
- Hosted Control Plane (HCP) or Classic
- OIDC workflow integration
- Worker nodes in private subnets
4. Storage Integration
- HSPC (Hitachi CSI Driver) installation
- Secret & StorageClass creation
- Dynamic PVC → PV provisioning
5. PostgreSQL Deployment
A sample PostgreSQL pod validates that SDS Block volumes are correctly:
- Created
- Mapped
- Attached
- Mounted inside the container
End-to-End Workflow
Below is the actual flow used by the Terraform + Ansible automation:
- Terraform Apply
Provisions AWS foundation, ROSA cluster, and SDS Block nodes.
- SDS Block Cluster Provisioning
EC2 nodes are initialized and form the SDS Block cluster.
- Password Reset Script
A Python helper resets the SDS default password to secure the API.
- Storage Pool Expansion
Ansible automatically discovers attached disks and adds them to the pool.
- ROSA Cluster Deployment
Terraform provisions ROSA HCP with required IAM configurations.
- CSI Driver Installation
HSPC operator + iSCSI daemonsets are deployed.
- StorageClass Creation
Terraform renders the SDS endpoint, credentials, and SC manifest.
- PVC Creation & PV Binding
Kubernetes triggers SDS Block to create a volume and attach it.
- PostgreSQL Pod Deployment
The pod mounts its volume via iSCSI and runs successfully.
Key Benefits of This Architecture
Fully Automated IaC Deployment
Deploy AWS + ROSA + SDS Block + PostgreSQL with a single Terraform apply.
Accelerated Time-to-Value
End-to-end provisioning completed in hours instead of weeks.
Enterprise-grade Data Protection
Multipathing, snapshots, encryption, and SDS reliability features.
High Performance for Stateful Workloads
SDS Block provides predictable I/O behavior ideal for PostgreSQL.
Repeatable and Version-controlled
Every environment (dev, QA, prod) is deployed exactly the same way.
Unified Operations
Centralized automation for AWS, ROSA, SDS Block, and Kubernetes storage.
Network Architecture (Single-AZ Example)
The deployment uses:
|
Subnet
|
Purpose
|
|
Control subnet
|
SDS control-plane
|
|
Internode subnet
|
SDS replication traffic
|
|
Compute subnet
|
SDS Compute node
|
|
ROSA worker subnet
|
Worker nodes + PostgreSQL pods
|
Validation Highlights
Once deployment completes:
✔ PVC successfully binds to an SDS-backed PV
✔ PostgreSQL pod transitions to Running
✔ iSCSI sessions appear on worker nodes
✔ SDS Block events confirm:
- Pool expansion
- Volume creation
- Volume server connection
- Successful LUN attachment
When to Use This Architecture
This automated solution is ideal for:
- Cloud-native modernization projects
- Any team running databases on ROSA
- Enterprises requiring automated storage provisioning
- Consistent environments across multiple AWS regions
- Hybrid or DR-ready PostgreSQL deployments
Conclusion
Fully automating Hitachi VSP One SDS Block with ROSA using Terraform and Ansible gives organizations a reliable, repeatable, production-ready foundation for running PostgreSQL and other stateful workloads in AWS.
This approach removes manual complexity, accelerates deployment, and provides enterprise-class data services backed by Hitachi’s SDS platform.
If you are evaluating stateful workloads on ROSA or looking to standardize IaC methodologies across teams, this solution provides a ready blueprint.
#VSPOneSDSBlock