(ctx context.Context, containerID string, quota xunix.CPUQuota)
| 175 | } |
| 176 | |
| 177 | func setContainerQuotaCGroupV1(ctx context.Context, containerID string, quota xunix.CPUQuota) error { |
| 178 | var ( |
| 179 | fs = xunix.GetFS(ctx) |
| 180 | cgroupBase = fmt.Sprintf("/sys/fs/cgroup/cpu,cpuacct/docker/%s/syscont-cgroup-root/", containerID) |
| 181 | ) |
| 182 | |
| 183 | err := afero.WriteFile(fs, filepath.Join(cgroupBase, "cpu.cfs_period_us"), []byte(strconv.Itoa(quota.Period)), 0o644) |
| 184 | if err != nil { |
| 185 | return xerrors.Errorf("write cpu.cfs_period_us to inner container cgroup: %w", err) |
| 186 | } |
| 187 | |
| 188 | err = afero.WriteFile(fs, filepath.Join(cgroupBase, "cpu.cfs_quota_us"), []byte(strconv.Itoa(quota.Quota)), 0o644) |
| 189 | if err != nil { |
| 190 | return xerrors.Errorf("write cpu.cfs_quota_us to inner container cgroup: %w", err) |
| 191 | } |
| 192 | |
| 193 | return nil |
| 194 | } |
| 195 | |
| 196 | func generateBindMounts(mounts []xunix.Mount) []string { |
| 197 | binds := make([]string, 0, len(mounts)) |
no test coverage detected