Since `distutils` package is no longer present in `python3.12` and newer, the generated script will no longer work with recent python versions. This change removes the dependency on `distutils.version` and replaces it with `packaging.version`, which is part of the standard library.
* Drop WorkloadRef field and introduce SchedulingGroup field in Pod API
* Introduce v1alpha2 Workload and PodGroup APIs, drop v1alpha1 Workload API
Co-authored-by: yongruilin <yongrlin@outlook.com>
* Run hack/update-codegen.sh
* Adjust kube-scheduler code and integration tests to v1alpha2 API
* Drop v1alpha1 scheduling API group and run make update
---------
Co-authored-by: yongruilin <yongrlin@outlook.com>
Downloading repository metadata and installing these packages can take too
long, causing timeouts in e2e-gce and similar jobs because the 300s timeout for
"Kubernetes is up and running" gets exceeded.
It's unclear whether all of these packages are still needed. They apparently
were in 2020 (acd286d), but maybe not anymore?
Mask and stop services that compete with apt operations or are not
needed for Kubernetes nodes:
- apt-news.service/timer: fetches APT news, holds apt lock
- esm-cache.service: Ubuntu Pro cache updates
- snapd.service/socket: Snap package manager
- lxd-installer.socket: LXD container helper
- ubuntu-advantage.service: Ubuntu Pro auto-attach
- unattended-upgrades.service: automatic security updates
- motd-news.timer: MOTD news fetching
- update-notifier-motd.timer: "new Ubuntu version" checks
- update-notifier-download.timer: failed package retry
This addresses CI timeouts where apt-news.service running concurrently
with apt-get update caused the master node to take ~5 minutes for
package index downloads (vs ~5-9 seconds on worker nodes).
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
when both UBUNTU_INSTALL_CONTAINERD_VERSION and UBUNTU_INSTALL_RUNC_VERSION
are set, skip apt entirely and download binaries directly from GitHub.
this avoids installing apt packages that get immediately overwritten.
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
This has been replaced by `//build:...` for a long time now.
Removal of the old build tag was automated with:
for i in $(git grep -l '^// +build' | grep -v -e '^vendor/'); do if ! grep -q '^// Code generated' "$i"; then sed -i -e '/^\/\/ +build/d' "$i"; fi; done
Commit 6031ff29c1
("make containerd download more robust") updated the containerd systemd
unit to use `Environment=PATH=/home/containerd/bin:$PATH`. However,
environment variables are not evaluated in systemd units in that way.
This resulted in containerd running with the literal value
`/home/containerd/bin:$PATH` for its PATH, breaking containerd (it could
not access the apparmor_parser program).
The old way passes the PATH that configure.sh runs with to containerd,
which is not optimal, but at least it doesn't break the tests. Let's
revert to the old way.