To borrow a phrase from the rap group Outkast, Pure Service Orchestrator™ (PSO) is once again “So Fresh, So Clean.” Two new releases announced in the last couple of weeks (PSO 5.1 and 5.2) complete Pure’s compliance with the CSI 1.2 spec., the state of the art for Kubernetes storage driver integration.

PSO CSI interface

Figure 1. PSO CSI interface

Pure Service Orchestrator 

PSO creates an abstracted orchestration layer that runs within your Kubernetes cluster and utilizes native tools in Linux to provide persistent storage for your applications. PSO installs with a single line of CLI and can scale with a simple upgrade command. This provides developers, platform teams, or  Site Reliability Engineers (SRE) with complete self-service for persistent storage, with no knowledge of physical infrastructure required. PSO supports Pure FlashArray™, FlashBlade™, and Pure Cloud Block Store™. This allows you to use the same APIs for private, hybrid, or all public cloud deployments of Kubernetes.

APIs for private, hybrid, or all public cloud deployments of Kubernetes

Find more information on PSO in the Pure Storage Helm Charts.
See PSO Examples.

What’s New in PSO

Raw Block

Raw block allows for read-write-many (or RWX) on block volumes presented by FlashArray in Kubernetes. Raw Block enables direct access by the application when required. This gives you the ability to do cluster databases with a shared block volume, but it doesn’t limit you to that option. See more details in the ReadWriteMany with CSI and PSO documentation.


When Pure released PSO for CSI over a year ago, we left behind a great feature originally created by our engineering team for Kubernetes customer filter their data infrastructurePSO 1.0. Storage policies with key value pairs (KVP) let a Kubernetes customer filter their infrastructure with the same labels they use in the rest of their Kubernetes nodes and applications. With the recent announcement of topology support with PSO, Pure brings back this capability and adds even more.

What does PSO add to topology? PSO has the ability to use a single storage class to provision across multiple devices (FlashArray, FlashBlade, or CBS). As a result, Pure can now use the built-in watiforfirstConsumer feature of Kubernetes, allowing you to build high availability into your stateful applications. Right now this is unique to Pure and PSO. (I explain this in more detail in this earlier post.)

Check out this demo for topology, the most valuable seven minutes of streaming video you’ll get today.

Volume Expansion

The new PSO feature most requested by customers over the past year was volume expansion. I’m excited to say that it’s here! Remember that IT teams adopted Kubernetes very quickly in the public cloud, where you pay for provisioned space for storage. As you’d expect, it was drilled inside the head of K8s users to never provision more than you need. This led to the creation of many 1GB PVCs, as well as their expansion when needed. Pure Storage built-in thin provisioning and data reduction which made it easy to provision 500GB, even if you only used a small fraction of it. After all, you weren’t hurting anything. Now, with volume expansion, you have better options when your app takes off and grows from 500GB to 10TB. You can resize your PVC, and the backend FlashArray volume or FlashBlade filesystem is resized via the CSI API. See plenty of examples here on our documentation site.

Volume Import

Wait, what? This isn’t even listed on the CSI drivers website. PSO 1.0 was able to import external volumes to be managed in Kubernetes as with PVCs. This renamed the volume but allowed a migration path for non-Kubernetes data to be instantly moved into a PV. The problem for the most common use cases was the need for a ReadWriteMany workload where external devices (think IOT) were able to log to an NFS share while an analytics platform processed this data as part of a data pipeline. Renaming volumes was a problem in this and other cases, and CSI didn’t support volume import at all. This new volume import capability solves this problem, while also streamlining the process of migrating PVs from on-prem to the public cloud when you’re using Pure Cloud Block Store. A hybrid cloud is now a real option for persistent applications. Check here for the technical details for Volume Import.


These solutions are now available to Pure Storage customers, enabling the true modern data experience. Our amazing engineering team is not stopping here. Keep following this blog, join on Slack, and follow me (@jon_2vcps) on twitter for more as we release additional ways to innovate with data on Kubernetes.