If you have no textural detail in the eye and therefore can afford some discontinuity in the tension it's easy enough to achieve. Use one mesh for the deforming eye, a second one that's a proper sphere with the iris centered around the iris, bind it to the stretchy mesh from the iris out so the iris receives minimal distortion (that can then be trivially made perfectly circular if you want absolutely zero distortion with an ICE op), then project the rest on the deformed sphere.
It takes some monstrous extreme before you get collisions (area around the Iris crashing into the iris), but if that happens you can still run several iterations of smooth and reproject as a final pass. Alternatively yes, you can do it with a shader and have a representation of that on a mesh with an equivalent OGL shader or with a simple approximation on a mesh for just the iris for animators and render it flawlessly as displacement and geo culling at rendertime (something we also have a shader to do here), but it's not really necessary unless you have some stringent requirement for surface tension being extremely uniform.