Revert "Add memory swap to swarm"
This reverts commit 71828f2792.
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
This commit is contained in:
@@ -235,17 +235,15 @@ type resourceOptions struct {
|
||||
resCPU opts.NanoCPUs
|
||||
resMemBytes opts.MemBytes
|
||||
resGenericResources []string
|
||||
swapBytes opts.MemBytes
|
||||
memSwappiness int64
|
||||
}
|
||||
|
||||
func (r *resourceOptions) ToResourceRequirements(flags *pflag.FlagSet) (*swarm.ResourceRequirements, error) {
|
||||
func (r *resourceOptions) ToResourceRequirements() (*swarm.ResourceRequirements, error) {
|
||||
generic, err := ParseGenericResources(r.resGenericResources)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
resreq := &swarm.ResourceRequirements{
|
||||
return &swarm.ResourceRequirements{
|
||||
Limits: &swarm.Limit{
|
||||
NanoCPUs: r.limitCPU.Value(),
|
||||
MemoryBytes: r.limitMemBytes.Value(),
|
||||
@@ -256,20 +254,7 @@ func (r *resourceOptions) ToResourceRequirements(flags *pflag.FlagSet) (*swarm.R
|
||||
MemoryBytes: r.resMemBytes.Value(),
|
||||
GenericResources: generic,
|
||||
},
|
||||
}
|
||||
|
||||
// SwapBytes and MemorySwappiness are *int64 (pointers), so we need to have
|
||||
// a variable we can take a pointer to. Additionally, we need to ensure
|
||||
// that these values are only set if they are set as options.
|
||||
if flags.Changed(flagSwapBytes) {
|
||||
swapBytes := r.swapBytes.Value()
|
||||
resreq.SwapBytes = &swapBytes
|
||||
}
|
||||
if flags.Changed(flagMemSwappiness) {
|
||||
resreq.MemorySwappiness = &r.memSwappiness
|
||||
}
|
||||
|
||||
return resreq, nil
|
||||
}, nil
|
||||
}
|
||||
|
||||
type restartPolicyOptions struct {
|
||||
@@ -749,7 +734,7 @@ func (options *serviceOptions) ToService(ctx context.Context, apiClient client.N
|
||||
return networks[i].Target < networks[j].Target
|
||||
})
|
||||
|
||||
resources, err := options.resources.ToResourceRequirements(flags)
|
||||
resources, err := options.resources.ToResourceRequirements()
|
||||
if err != nil {
|
||||
return service, err
|
||||
}
|
||||
@@ -904,10 +889,6 @@ func addServiceFlags(flags *pflag.FlagSet, options *serviceOptions, defaultFlagV
|
||||
flags.Var(&options.resources.resMemBytes, flagReserveMemory, "Reserve Memory")
|
||||
flags.Int64Var(&options.resources.limitPids, flagLimitPids, 0, "Limit maximum number of processes (default 0 = unlimited)")
|
||||
flags.SetAnnotation(flagLimitPids, "version", []string{"1.41"})
|
||||
flags.Var(&options.resources.swapBytes, flagSwapBytes, "Swap Bytes (-1 for unlimited)")
|
||||
flags.SetAnnotation(flagLimitPids, "version", []string{"1.52"})
|
||||
flags.Int64Var(&options.resources.memSwappiness, flagMemSwappiness, -1, "Tune memory swappiness (0-100), -1 to reset to default")
|
||||
flags.SetAnnotation(flagLimitPids, "version", []string{"1.52"})
|
||||
|
||||
flags.Var(&options.stopGrace, flagStopGracePeriod, flagDesc(flagStopGracePeriod, "Time to wait before force killing a container (ns|us|ms|s|m|h)"))
|
||||
flags.Var(&options.replicas, flagReplicas, "Number of tasks")
|
||||
@@ -1092,8 +1073,6 @@ const (
|
||||
flagUlimitAdd = "ulimit-add"
|
||||
flagUlimitRemove = "ulimit-rm"
|
||||
flagOomScoreAdj = "oom-score-adj"
|
||||
flagSwapBytes = "memory-swap"
|
||||
flagMemSwappiness = "memory-swappiness"
|
||||
)
|
||||
|
||||
func toNetipAddrSlice(ips []string) []netip.Addr {
|
||||
|
||||
@@ -163,10 +163,8 @@ func TestResourceOptionsToResourceRequirements(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
flags := newCreateCommand(nil).Flags()
|
||||
|
||||
for _, opt := range incorrectOptions {
|
||||
_, err := opt.ToResourceRequirements(flags)
|
||||
_, err := opt.ToResourceRequirements()
|
||||
assert.Check(t, is.ErrorContains(err, ""))
|
||||
}
|
||||
|
||||
@@ -180,41 +178,12 @@ func TestResourceOptionsToResourceRequirements(t *testing.T) {
|
||||
}
|
||||
|
||||
for _, opt := range correctOptions {
|
||||
r, err := opt.ToResourceRequirements(flags)
|
||||
r, err := opt.ToResourceRequirements()
|
||||
assert.NilError(t, err)
|
||||
assert.Check(t, is.Len(r.Reservations.GenericResources, len(opt.resGenericResources)))
|
||||
}
|
||||
}
|
||||
|
||||
func TestResourceOptionsToResourceRequirementsSwap(t *testing.T) {
|
||||
// first, check that no flag set means no field set in the return
|
||||
flags := newCreateCommand(nil).Flags()
|
||||
|
||||
// These should be the default values of the field.
|
||||
swapOptions := resourceOptions{
|
||||
swapBytes: 0,
|
||||
memSwappiness: -1,
|
||||
}
|
||||
|
||||
r, err := swapOptions.ToResourceRequirements(flags)
|
||||
assert.NilError(t, err)
|
||||
assert.Check(t, is.Nil(r.SwapBytes))
|
||||
assert.Check(t, is.Nil(r.MemorySwappiness))
|
||||
|
||||
// now set the flags and some values
|
||||
flags.Set(flagSwapBytes, "86000")
|
||||
flags.Set(flagMemSwappiness, "23")
|
||||
swapOptions.swapBytes = 86000
|
||||
swapOptions.memSwappiness = 23
|
||||
|
||||
r, err = swapOptions.ToResourceRequirements(flags)
|
||||
assert.NilError(t, err)
|
||||
assert.Check(t, r.SwapBytes != nil)
|
||||
assert.Check(t, is.Equal(*(r.SwapBytes), int64(86000)))
|
||||
assert.Check(t, r.MemorySwappiness != nil)
|
||||
assert.Check(t, is.Equal(*(r.MemorySwappiness), int64(23)))
|
||||
}
|
||||
|
||||
func TestToServiceNetwork(t *testing.T) {
|
||||
nws := []network.Inspect{
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user