@Override
	public boolean validate(WorkflowContext context) throws HyscaleException {
		logger.debug("Validating volumes from the service spec");
		ServiceSpec serviceSpec = context.getServiceSpec();
		if (serviceSpec == null) {
			return false;
		}
		long startTime = System.currentTimeMillis();
		TypeReference<List<Volume>> volTypeRef = new TypeReference<List<Volume>>() {
		};
		List<Volume> volumeList = serviceSpec.get(HyscaleSpecFields.volumes, volTypeRef);

		if (volumeList == null || volumeList.isEmpty()) {
			return true;
		}
		ApiClient apiClient = clientProvider.get((K8sAuthorisation) context.getAuthConfig());
		
		try {
		    if (!initStorageClass(apiClient)) {
		        return isValid(true, startTime);
		    }
		} catch (HyscaleException ex) {
		    throw ex;
		}
		
		// Validate Storage class
		if (!validateStorageClass(volumeList)) {
		    return isValid(true, startTime);
		}

		logger.debug("Storage class provided are valid");

		// Validate volume edit
		checkForVolumeEdit(apiClient, context, volumeList);
		return isValid(false, startTime);
	}
Validate Volumes:
Storage Class should be valid
     persist error message and returns false
Size and Storage class modification 
     persist warn message and returns true

@author tushar
workflow-controller/controller-service/src/main/java/io/hyscale/controller/validator/impl/VolumeValidator.java