3 ms·
Sad to see flexVolume deprecated. CSI is a more powerful interface and I knew this was coming, but the simplicity of the flexVolume exec model for node-local vo
by paulfurtado 5y ago
Sad to see flexVolume deprecated. CSI is a more powerful interface and I knew this was coming, but the simplicity of the flexVolume exec model for node-local volumes was an amazing feature.
With very little effort, you could use them to create volumes managed by any binary or script: for example, a volume that fetches internal build artifacts or a volume similar to configmaps that pulls from external data sources on pod startup.
The new CSI interface requires operating a GRPC server on a local unix socket. It'd have been great if it were at least HTTP+JSON. GRPC really increases the barrier to entry in all languages that can't use the golang CSI driver libraries and it's hard to see the advantages for a low volume API on localhost.
- akvadrako 5y agoBut you could just create a CSI driver once that execs a local script. I dont see the issue.
- paulfurtado 5y agoThat still significantly raises the barrier to entry until someone writes a generic CSI implementation that translates to the flexvolume API. And then it's still yet another daemon running on every kubernetes node 24/7. Regardless, in our case the scripts are full-fledged python applications so inevitably we'll just turn them into grpc servers. We're an advanced kubernetes shop so this isn't a real hurdle, but not everyone is. My complaint isn't that it is impossible, it's that it makes it much more work compared to the previous API and by selecting GRPC as the protocol instead of HTTP, they are largely disregarding the trivial language interoperability there once was for little gain. GRPC+protonuf is a PITA in non-go languages and build systems.