If you’ve been in the IT world for more than a minute, you’ve seen the incredible rise of Kubernetes, the fantastic innovation around container orchestration, and the strong customer adoption across the board! I was particularly excited about Kubernetes when my team here at NetApp decided to take on the journey with Astra Trident. The Trident team delivered the industry’s first production-quality, open-source, out-of-tree dynamic storage provisioner back in December 2016!Well, here we are 49 releases later!!!, and Astra Trident is still one of the most popular, innovative, and important technologies in NetApp’s Kubernetes arsenal.
But here’s the thing… the first priority of the Kubernetes community in solving the need for persistent data was to ensure containers could access file and block storage systems. So the CSI was born, allowing all storage vendors (well, not *all*, just the file and block solutions) to expose their file and block systems to containerized workloads in a consistent, scalable, extensible, and secure manner. Made total sense to me back then, file and block… what else is there?
After *45* Trident releases (which happened to be Trident v21.07.1), I guess I was ready for a change - I decided to take a new job on NetApp’s StorageGRID team. Great opportunity, new challenges to overcome, new skills to learn, all that good stuff. Object storage, sure no problem! I had heard the rumors and hallway chatter of how quickly object storage, and StorageGRID in particular, was growing in the market! With all the new use cases around object storage as primary storage, higher-performance workloads, infinite scalability, amazing durability… sounds great! I’m in.
Only five months into my new job and worlds are already colliding. Every once in a while, the question will come up – “does StorageGRID support COSI?” (not this one, this one.) Glad I know some people that are tied into the Kubernetes community! Even better, we have people from Trident *and* from the StorageGRID team that are engaged and contributing to the COSI community. I’ve talked to both teams and get the same answer… no one can “support” COSI yet, the spec isn’t ready. Wanting to do a bit more research, I remembered a time when some of the engineers on the Trident team worked on a hackathon project related to COSI, they would definitely have more details.
But I still didn’t understand: why COSI? why didn’t CSI just pick up support for object storage? A quick google, and turns out that it’s captured right on the front page of the COSI spec. Guess I’m not the first one to ask.
That answers that, so back to the story - turns out the team put together a “working” Trident proof-of-concept that could successfully interface with an S3 backend… so it works! Kind of. Unfortunately, there is still work to do on the COSI design and implementation to settle on a final API that will make it easier for end users to consume object storage. The team shared their ideas and suggestions with the COSI community and remain committed to updating the Trident POC when newer versions of the COSI design and implementation are available. <They also won that particular hackathon! Yay team!)
So where does that leave us… tl;dr - COSI isn’t quite ready yet… According to one of the engineers on the team, “COSI remains in the pre-alpha state. The APIs are not yet approved by the Kubernetes community, and the implementation does not yet implement the proposed APIs. We remain hopeful that as the API reaches beta and the rough edges are smoothed off, COSI could become the dominant mode through which object storage is managed and consumed in Kubernetes clusters.” Thanks Ben.
So there you have it, lots of potential, making progress, but just not there yet. Stay tuned. And when COSI is ready, we hope to be ready as well!
If you want to learn more about NetApp’s object storage offerings, visit the StorageGRID webpage. You should also join the conversation and subscribe to our Object Storage forum on the NetApp Community. And lastly, if you are looking for more information on Astra Trident (for file and block), visit thePub at netapp.io.