**Problem:**
Schedule default-http-backend and metrics-server to Windows node will be failed.
**Solution:**
Add nodeAffinity to default-http-backend and metrics-server workload
spec
**Issue:**
https://github.com/rancher/rancher/issues/19929
**Problem:**
The nginx ingress daemonSet securityContext can not be applied to
version before 0.16.0
**Solution:**
When the nginx controller version is older than 0.16.0, we use the old
way to set it up.
1. Support to configure Flannel as "host-gw" backend
2. Define the network component yaml and ingress
controller yaml only schedule to non-Windows node
3. Support to configure Docker container's port publishing