@@ -16,28 +16,31 @@ import (
1616
1717type Driver struct {
1818 * drivers.BaseDriver
19- Boot2DockerURL string
20- VSwitch string
21- DiskSize int
22- MemSize int
23- CPU int
24- MacAddr string
25- VLanID int
19+ Boot2DockerURL string
20+ VSwitch string
21+ DiskSize int
22+ MemSize int
23+ CPU int
24+ MacAddr string
25+ VLanID int
26+ DisableDynamicMemory bool
2627}
2728
2829const (
29- defaultDiskSize = 20000
30- defaultMemory = 1024
31- defaultCPU = 1
32- defaultVLanID = 0
30+ defaultDiskSize = 20000
31+ defaultMemory = 1024
32+ defaultCPU = 1
33+ defaultVLanID = 0
34+ defaultDisableDynamicMemory = false
3335)
3436
3537// NewDriver creates a new Hyper-v driver with default settings.
3638func NewDriver (hostName , storePath string ) * Driver {
3739 return & Driver {
38- DiskSize : defaultDiskSize ,
39- MemSize : defaultMemory ,
40- CPU : defaultCPU ,
40+ DiskSize : defaultDiskSize ,
41+ MemSize : defaultMemory ,
42+ CPU : defaultCPU ,
43+ DisableDynamicMemory : defaultDisableDynamicMemory ,
4144 BaseDriver : & drivers.BaseDriver {
4245 MachineName : hostName ,
4346 StorePath : storePath ,
@@ -88,6 +91,11 @@ func (d *Driver) GetCreateFlags() []mcnflag.Flag {
8891 Value : defaultVLanID ,
8992 EnvVar : "HYPERV_VLAN_ID" ,
9093 },
94+ mcnflag.BoolFlag {
95+ Name : "hyperv-disable-dynamic-memory" ,
96+ Usage : "Disable dynamic memory management setting" ,
97+ EnvVar : "HYPERV_DISABLE_DYNAMIC_MEMORY" ,
98+ },
9199 }
92100}
93101
@@ -100,6 +108,7 @@ func (d *Driver) SetConfigFromFlags(flags drivers.DriverOptions) error {
100108 d .MacAddr = flags .String ("hyperv-static-macaddress" )
101109 d .VLanID = flags .Int ("hyperv-vlan-id" )
102110 d .SSHUser = "docker"
111+ d .DisableDynamicMemory = flags .Bool ("hyperv-disable-dynamic-memory" )
103112 d .SetSwarmConfigFromFlags (flags )
104113
105114 return nil
@@ -212,6 +221,13 @@ func (d *Driver) Create() error {
212221 "-MemoryStartupBytes" , toMb (d .MemSize )); err != nil {
213222 return err
214223 }
224+ if d .DisableDynamicMemory {
225+ if err := cmd ("Hyper-V\\ Set-VMMemory" ,
226+ "-VMName" , d .MachineName ,
227+ "-DynamicMemoryEnabled" , "$false" ); err != nil {
228+ return err
229+ }
230+ }
215231
216232 if d .CPU > 1 {
217233 if err := cmd ("Hyper-V\\ Set-VMProcessor" ,
0 commit comments