Thanks for your help!
Here is how I achieved my objective.
I started openvpn using this command:
openvpn --daemon --config /path/to/my/ovpn.conf
In the ovpn.conf, I have these 2 lines:
route-up /path/to/my/route-up.sh
route-noexec
down /path/to/my/vpn-down.sh
I think that the route-up line needs to be before the route-noexec (I used to use the --route-up and --route-noexec in the command line and I'm pretty sure --route-up needed to be before the --route-noexec).
In the route-up.sh script, I have this:
#!/bin/sh
ip route add $ifconfig_remote dev $dev proto kernel scope link src $ifconfig_local
ip route add $route_network_1 via $ifconfig_remote dev $dev metric 1 table 10
ip route add 0.0.0.0/1 via $ifconfig_remote dev $dev table 10
ip route add 128.0.0.0/1 via $ifconfig_remote dev $dev table 10
ip rule add from 192.168.1.32/27 table 10
ip rule add to 192.168.1.32/27 table 10
I still need to find a way to add the rule for the from/to of the whole VPN IP's network.
so I guess that by using something along the line of
vpniprange=$(echo $route_network_1 | use regex here to get the 10.8.11 | append '.0')
ip rule add from $vpniprange/24 table 10
ip rule add to $vpniprange/24 table 10
Then, in the script that is run when VPN goes down, I flush the table 10, and remove the rules
#!/bin/sh
ip route flush table 10
ip rule del from 192.168.1.32/27 table 10
ip rule del to 192.168.1.32/27 table 10
ip rule del from $vpniprange/24 table 10
ip rule del to $vpniprange/24 table 10
By doing this, all device that have an IP in the 192.168.1.32/27 (.33 to .62 inclusive) will get routed through the VPN.
Hope this helps!