v0.8.0
Major improvements in this release:
- The balloons policy becomes fully aware of hardware topology, able to utilize idle CPUs, and allows users to choose between packing or spreading workloads across CPUs.
- CRI-RM becomes compatible with CRI v1 towards both kubelet and container runtimes. Backwards compatibility to CRI v1alpha2 is maintained in both directions, too.
- Fixes a crash when pod status data is not available in the synchronization phase at cri-resmgr start-up.
What's Changed
Policies
- balloons: add MaxBalloons configuration option by @askervin in #865
- balloons: fix empty cpuset of a balloon that has containers by @askervin in #907
- balloons: prefer an empty existing balloon over creating new by @askervin in #909
- balloons: add e2e tests for topology aware allocation and idle CPU sharing by @fmuyassarov in #932
- balloons: add CPU topology tree functions by @askervin in #941
- balloons: fix handling of undefined (unlimited) MaxCPUs by @askervin in #942
- balloons: add debug logging by @askervin in #944
- balloons: topology aware balloon creation/inflation/deflation by @askervin in #945
- balloons: add topology aware idle CPU sharing to balloons by @askervin in #946
- balloons: add sharedidlecpus and balloon topology to metrics by @askervin in #947
- balloons: fix synchronizing running containers at start. by @askervin in #966
- topology-aware: allow annotated opt-out from reserved pool allocation. by @klihub in #935
- topology-aware: don't restore config on startup by @klihub in #936
- topology-aware: ignore topology pseudo-hints by @klihub in #937
- topology-aware: fix memory tiering with cgroup v2 by @askervin in #961
- podpools: fix synchronizing all running containers at start. by @askervin in #965
- resource-manager: remove 'null' pseudo-policy. by @klihub in #938
CRI v1
- pkg/cri: switch internals to CRI v1, add ingress/egress v1/v1alpha2 CRI conversion. by @klihub in #781
- resmgr: warn (once) about CRI update requests. by @klihub in #915
- fixes: add missing bits to formally comply with CRI v1 v0.25.4 by @klihub in #934
Bug fixes
Build
- images: take go version from go.mod by @marquiz in #855
- images: build statically linked binaries by @marquiz in #866
- go-mod: update go-restful by @marquiz in #873
- dockerfiles: drop cross-build for ubuntu-21.04 by @marquiz in #877
- dockerfiles: rename suse 15.2 to 15.4 by @marquiz in #880
- jenkinsfile: build *:devel images from master branch by @marquiz in #876
- jenkinsfile: fix the structure by @marquiz in #883
- build: Update outdated dependencies by @marquiz in #918
- build: Update dependencies by @marquiz in #924
- fixes: update(s) to build with more recent protoc & friends by @klihub in #925
- Makefile: don't change dir when running go build by @marquiz in #867
- Makefile: use statically linked binaries in e2e-tests by @marquiz in #871
- Makefile: specify go version in a make variable by @marquiz in #949
- Makefile: fix cross-tar target by @marquiz in #950
- Makefile: add cross-tar to cross-packages by @marquiz in #953
- Makefile: user gomodcache from host in cross-builds by @marquiz in #957
- Makefile: dynamically linked binary-dist by @marquiz in #958
- packaging: drop agent and webhook from deb packages by @marquiz in #960
- packaging: store licenses by @marquiz in #959
Validation
- e2e: add support for distro=fedora-{35,36}, make 36 default. by @askervin in #857
- e2e: misc fixes to e2e tests by @jukkar in #875
- e2e: add host-mount-vm helper by @askervin in #879
- e2e: check if cri-resmgr is expected to run with different policy by @askervin in #890
- e2e: balloons: Cleanup pods in the tests by @jukkar in #891
- e2e: Remove Ubuntu 21.04 support by @jukkar in #895
- e2e: add .internal and 192.168.0.0/12 to no_proxy by @askervin in #896
- e2e: add vm-install-minikube and vm-create-minikube-cluster by @askervin in #897
- e2e: add debian support for distro-install-kernel-dev by @askervin in #902
- e2e: add Fedora support for distro-install-kernel-dev by @askervin in #905
- e2e: run Qemu with -nographic instead of -vga qxl by @askervin in #912
- e2e: Remove the qemu-version verifier container when it exits by @fmuyassarov in #921
- demo/lib: don't assume pidof accepts -q. by @klihub in #926
- e2e: allow other containers in the same balloons by @askervin in #943
- e2e: update packaging tests by @marquiz in #952
- e2e: fix cmdline help of the runner script by @marquiz in #954
- e2e: add opensuse-15.4, drop 15.3, DISABLE_VGA depends on distro by @askervin in #955
- e2e: fix k8scni=weavenet needed by distro=centos-7 by @askervin in #963
- e2e: disable numa_balancing in dynamic page demotion test by @askervin in #962
- demo/lib/distro.bash: fix tumbleweed image url by @marquiz in #956
Documentation
- docs: update balloons sample configuration by @askervin in #858
- docs: improve balloons documentation by @askervin in #861
- scripts, docs: remove references to dockershim. by @klihub in #885
- sample-configs: Replace tabs with spaces in broken balloons-policy.cfg example by @ppalucki in #894
- docs: update sphinx to v5.3.0 by @marquiz in #928
- docs: add warning to PinMemory option to balloons documentation by @askervin in #933
- docs: document AllocatorTopologyBalancing and ShareIdleCPUsInSame by @askervin in #948
Misc
- resmgr,relay: make image socket default to runtime one. by @klihub in #863
- resmgr: allow optional unix://-prefix for socket path options. by @klihub in #864
- resmgr: allow disabling the agent ingress and egress interfaces. by @klihub in #881
- resmgr: make sysfs/other hostfs pseudoroot directory configurable on the command line. by @klihub in #900
- resmgr: fix forced-config option description. by @klihub in #906
- cri-resmgr-agent: print version info on startup. by @klihub in #911
- gitignore: Don't track static binaries in Git by @fmuyassarov in #914
- control/memory: check top tier memory control on startup. by @klihub in #916
- scripts: pairwise maximizes covered triplets by @klihub in #929
- fixes: reduce flood of logs in default/sample configuration. by @klihub in #940
- github: update release instructions by @marquiz in #951
New Contributors
- @ppalucki made their first contribution in #894
- @fmuyassarov made their first contribution in #914
Full Changelog: v0.7.0...v0.8.0rc1