Commit Graph
488 Commits
Author SHA1 Message Date
Max Gautier 1011c240b4 downloads: split file and containers (#13581)
Splits the definitions into two dicts, while joining then for now to
preserve the downloads dict.

Update all consumers of the variables, which are roughly:
- manual includes of the download role (which will be removed in the
  short future)
- install tasks using the resolved 'dest' to find the artefacts

This will make further division of the downloads role easier.
2026-10-13 09:58:21 +00:00
MohammadReza 9a067a62b9 Fix containerd tracing with containerd 2.x (#13630)
* fix(containerd): pass tracing settings as OpenTelemetry environment variables

* fix(containerd): address review on tracing

* fix(containerd): drop tracing comments
2026-10-12 10:11:23 +00:00
Mehrdad Biukian d75f23cba3 fix(container-engine/cri-o): flush Restart crio handler inside the role (#13416)
* fix(container-engine/cri-o): flush Restart crio handler inside the role

During a Kubernetes upgrade (e.g. 1.32 -> 1.33) the cri-o systemd service is
not restarted even though the new cri-o binaries are deployed. This leaves the
node running the old cri-o version (reported as crio://1.32.x after kubelet is
upgraded to 1.33.x); a manual 'systemctl restart crio' fixes it.

The cri-o role notifies 'Restart crio' from several tasks (binary copy,
registries, proxy drop-in, service file, etc.) but never flushes the handler
itself. The handler only fired when the kubernetes/node role ran its own
'meta: flush_handlers' later in the same play. That cross-role dependency is
fragile during upgrades: if kubernetes/node is skipped, tagged out, or the
flush is reordered, the restart is silently dropped.

Route every restart through the single handler: crio.conf and config.json now
notify 'Restart crio' and the ad-hoc 'trigger service restart only when needed'
task is dropped (its restart duplicated what the handler already does, and a
restarted unit also starts a stopped one). Then add 'meta: flush_handlers'
right after the service start task so the pending handlers run as part of this
role regardless of any downstream role's flush timing.

Signed-off-by: Mehrdad Biukian Naeini <mehrdadbiukian@gmail.com>

* test(youki): run youki before cri-o in molecule converge

The converge ran container-engine/cri-o before container-engine/youki, the reverse of the order used by the container-engine role, which installs the runtime roles (kata-containers, gvisor, crun, youki) before the container manager role.

With cri-o flushing its restart handler inside the role, cri-o is now restarted while /usr/local/bin/youki does not exist yet: CRI-O skips the runtime whose binary is missing, so the youki runtime handler is never registered and the verify step fails with 'failed to find runtime handler youki from runtime list map[crun:...]'. Running the roles in the playbook order puts the youki binary in place before cri-o starts.

Signed-off-by: Mehrdad Biukian Naeini <mehrdadbiukian@gmail.com>

---------

Signed-off-by: Mehrdad Biukian Naeini <mehrdadbiukian@gmail.com>
2026-09-26 09:50:28 +00:00
Kay Yan ce6f5fe886 feat: add openSUSE MicroOS support (#13449)
Signed-off-by: Kay Yan <kay.yan@daocloud.io>
2026-09-20 13:45:57 +00:00
Ali Afsharzadeh 0fd9672b0c Remove obsolete "Flatcar Container Linux by Kinvolk" fact checks (#13528)
Signed-off-by: Ali Afsharzadeh <afsharzadeh8@gmail.com>
2026-09-18 10:12:42 +00:00
Max Gautier 66f8da3f04 CI/molecule: use common vars as well and simplify run (#13520)
The molecule_run.sh isn't really needed since the switch to gitlab-ci
matrix runs.

Also use the inventory variables pattern for kata-containers.
2026-09-17 09:09:23 +00:00
Max Gautier 85cfaa2cef fix/ansible-core 2.19: docker: bool implict conversion (#13471) 2026-09-07 09:00:28 +00:00
Shaleen Bathla a7391a1461 kubelet, crio service: standardize unit file permissions to 0644 (#13408)
* kubelet.service: use standard permissions

systemd[1]: Configuration file /etc/systemd/system/kubelet.service is marked world-inaccessible. This has no effect as configuration data is accessible via APIs without restrictions. Proceeding anyway.

* crio.service: reduce execute permission

systemd[1]: Configuration file /etc/systemd/system/crio.service is marked executable. Please remove executable permission bits. Proceeding anyway.
2026-08-06 13:22:55 +00:00
Nikhil Kumar e0add9ee0d Replace injected Ansible fact variables in container-engine role (#13296) 2026-06-16 08:51:24 +05:30
longxiucai a72ea49b2e Fix: use config version 4 for containerd 2.3+ (#13285) (#13286)
Signed-off-by: longyuxiang <longyuxiang@kylinos.cn>
2026-06-05 08:19:58 +05:30
ChengHao Yang 1b111e06b1 Fix kata-containers job name duplicated
Signed-off-by: ChengHao Yang <17496418+tico88612@users.noreply.github.com>
2026-05-25 20:50:38 +08:00
PangQingcheng 8c3ebff2b9 [kata-containers] Update configuration to support kata 3.4.0 (#13077)
kata containers added create_container_timeout parameter.
If this parameter is missing, the new version of Kata cannot create containers properly and will encounter an error:  failed to create shim task: context deadline exceeded
2026-04-22 13:03:54 +05:30
Tushar240503 b41157cad0 Refactor container-engine dependencies (#12946)
Signed-off-by: Tushar Sharma <tusharkumargzb6@gmail.com>
2026-02-14 19:46:04 +05:30
Tushar240503 1efd3e4f69 StartLimitBurst=10 (#13005)
Signed-off-by: Tushar Sharma <tusharkumargzb6@gmail.com>
2026-02-13 19:40:01 +05:30
Tushar240503 c5c2cf16a0 Move inline defaults to defaults/main.yml (#12926) 2026-02-03 14:14:29 +05:30
accuROAMC 8dacb9cd16 cri-o: fix duplicate top-level "auths" keys in registry config template (#12845)
The config.json.j2 template was generating invalid JSON when multiple
crio_registry_auth entries were defined, resulting in multiple top-level
"auths" objects being rendered, e.g.:

{
  "auths": { "registry1": { "auth": "xxxx" } },
  "auths": { "registry2": { "auth": "yyyy" } }
}

This change moves the loop inside the "auths" object so that all registries
are rendered as siblings under a single "auths" key, producing valid JSON:

{
  "auths": {
    "registry1": { "auth": "xxxx" },
    "registry2": { "auth": "yyyy" }
  }
}
2026-01-20 19:20:50 +05:30
Ali Afsharzadeh 851abbc2e3 Disable discard_unpacked_layers for containerd >= 2.1 (#12821)
Only set `discard_unpacked_layers` in the CRI image config for containerd
versions earlier than 2.1.0.

Starting with containerd v2.1, the CRI plugin uses the Transfer Service for
image pulls by default. The `discard_unpacked_layers` option is incompatible
with the Transfer Service and triggers containerd to fall back to local
image pulls, logging a warning.

This change prevents unsupported configuration from being applied on newer
containerd versions, avoiding runtime warnings and ensuring default image
pull behavior.

Signed-off-by: Ali Afsharzadeh <afsharzadeh8@gmail.com>
2026-01-08 19:39:40 +05:30
Ali Afsharzadeh a0f00761ac Removed deprecated keys from containerd config (#12820)
Signed-off-by: Ali Afsharzadeh <afsharzadeh8@gmail.com>
2026-01-02 14:26:35 +05:30
Max Gautier 5183679a89 crio: molecule: move variables to inventory
Fix download/file (which needs the variable to determine the correct
binaries)
2025-11-18 15:44:09 +01:00
Max Gautier b4fe577203 gvisor: molecule: move variables to inventory
Fix download/file (which needs the variable to determine the correct
binaries)
2025-11-18 15:44:08 +01:00
Max Gautier bde51ebddf youki: molecule: move variables to inventory
Fix download/file (which needs the variable to determine the correct
binaries)
2025-11-18 15:44:06 +01:00
Max Gautier 381426d6d5 cri-docker: molecule: move container_manager to inventory var 2025-11-18 15:44:05 +01:00
peterw 2f3f1d7e65 crio: add option pull_progress_timeout (#12555) 2025-11-15 19:53:37 -08:00
Max Gautier ca9873cfcb crictl: remove useless layer of include_tasks (#12656) 2025-11-14 06:57:39 -08:00
Max Gautier 990695de7b Let containerd create storage / state dir (#12681)
Containerd manages by itself, so there is no need to override it and
change permissions.
2025-11-10 03:42:56 -08:00
Max Gautier b9662dbd86 cleanup: don't cleanup runc orphan binary on immutable distros (#12669) 2025-11-06 22:16:53 -08:00
Mahendra Reddy ee6a792ec0 feat: add support crio additional mounts (#12561)
removed default since it's already set in variables

fix pre commit issue in the pipeline
2025-10-13 18:15:32 -07:00
Mahendra Reddy 270ff65992 fix crio restart while switching runtime (#12008)
fixed kubelet condition

CRI-O: fix for handling of container runtime switching

refactored kubelet start condition

stop/start kubelet and crio only when default runtime is changed

fixed condition for runtime_matches fact variable

fixed set facts for existing container runtime

added crio runtime switch variable

changed condition to use runtime switch variable

added comment for not-found for readers
2025-10-06 01:58:59 -07:00
Kim Hyunyoung, Abel eb26449e80 fix: typo (#12517) 2025-09-01 03:07:12 -07:00
ujstor 4ab213bc44 feat: add containerd_extra_runtime_args for CRI runtime configuration (#12247)
Add support for injecting additional configuration options into the
  containerd CRI runtime plugin section via containerd_extra_runtime_args.
2025-09-01 02:57:12 -07:00
vdveldet e52e262e78 Making 28.3 the new docker default (#12509) 2025-08-27 19:53:09 -07:00
ChengHao Yang 502ba663c5 Fix: Convert -backports sources to archive.debian.org for bullseye and older (#12434)
Signed-off-by: ChengHao Yang <17496418+tico88612@users.noreply.github.com>
2025-08-06 20:26:45 -07:00
Kay YanandMax Gautier 97946cfdb7 support containerd static binary
Co-authored-by: Max Gautier <mg@max.gautier.name>
Signed-off-by: Kay Yan <kay.yan@daocloud.io>
2025-07-18 04:20:58 +00:00
Takuya Murakami 784bf36c66 fix: Use crun in the cri-o distribution and don't use crun role from cri-o role anymore (#12289)
Signed-off-by: Takuya Murakami <murakami_da@nec.com>
2025-07-08 06:37:27 -07:00
pando85 d02910c675 Add header configuration in containerd hosts.toml (#12368)
* Add header configuration in containerd hosts.toml

Signed-off-by: Alexander Gil <pando855@gmail.com>

* Disable log output on containerd mirrors settings if required

Signed-off-by: Alexander Gil <pando855@gmail.com>

---------

Signed-off-by: Alexander Gil <pando855@gmail.com>
2025-07-07 23:41:27 -07:00
ChengHao Yang 3cda93405a Cleanup: Ubuntu 20.04 tests (#12301)
* Test: molecule replace ubuntu2004 with ubuntu2204 ubuntu2404

cri-dockerd, adduser and bastion-ssh-config can't run ubuntu2404, maybe needs to check login.

"System is booting up. Unprivileged users are not permitted to log in yet. Please come back later. For technical details, see pam_nologin(8)."

Signed-off-by: ChengHao Yang
<17496418+tico88612@users.noreply.github.com>

* Test: replace ubuntu-2004 with ubuntu-2404

All ubuntu-2004 tests are removed.

Signed-off-by: ChengHao Yang <17496418+tico88612@users.noreply.github.com>

* Docs: update ci.md

Signed-off-by: ChengHao Yang <17496418+tico88612@users.noreply.github.com>

* Docs: update README.md

Remove Ubuntu 20.04 support

Signed-off-by: ChengHao Yang <17496418+tico88612@users.noreply.github.com>

---------

Signed-off-by: ChengHao Yang
Signed-off-by: ChengHao Yang <17496418+tico88612@users.noreply.github.com>
2025-06-19 18:54:51 -07:00
Max Gautier 5671037b0e Convert alternatives runtimes molecule to ansible verifier 2025-06-17 14:56:14 +02:00
Max Gautier 1ccb3a38a2 Convert cri-dockerd molecule to ansible verifier 2025-06-17 14:56:06 +02:00
Max Gautier 68c4ee23cb Convert CRI-O molecule to ansible verifier 2025-06-17 14:56:04 +02:00
Max Gautier 3f26203ed0 Convert containerd molecule to ansible verifier 2025-06-17 14:56:02 +02:00
Max Gautier a5ede2a5c7 container-engine: factorize molecule testing infra 2025-06-17 14:56:00 +02:00
Max Gautier 69c4c90634 Factorize dynamic groups into a role 2025-06-17 14:55:59 +02:00
Takuya Murakami 16c05338d9 Update cri-o to 1.33.0 for kubernetes 1.33
Use ubuntu 22.04 for molecule test of cri-o,
because crun included in the cri-o does not work on
ubuntu 20.04.
2025-05-22 08:43:03 +09:00
Max Gautier 973bd2e520 Stop cleaning up containerd packages (#12213)
The switch to not use system packages for containerd packages happened
multiples releases ago ; there should not be any up-to-date installation
of kubespray needing that cleanup.

Remove those steps and variables only used by them.
2025-05-13 21:07:16 -07:00
Kubernetes Prow Robot ea7331f5fc Merge pull request #12211 from VannTen/cleanup/rename_remove_node
rename-without-hypens: remove-node/pre-remove
2025-05-13 17:13:16 -07:00
Max Gautier 47508d5c6e Rename bootstrap-os to bootstrap_os
Role names in ansible collections should not have hyphens.
2025-05-13 09:39:54 +02:00
Max Gautier e361def9cd Rename remove-node/pre-remove (no hypens for role in collection) 2025-05-12 22:19:50 +02:00
Max Gautier 7db2aa1cba Rename kubespray-defaults to kubespray_defaults
Role names in ansible collection should not contains hyphens.
2025-05-10 10:04:37 +02:00
Max Gautier 25e4fa17a8 Split kubespray-defaults (-> network_facts)
kubespray-defaults currently does two things:
- records a number of default variable values (in particular values used
  in several places)
- gather and compose some complex network facts (in particular,
  `fallback_ip` and `no_proxy`

There is no actual reason to couple those two things, and it makes using
defaults more difficult (because computing the network facts is somewhat
expensive, we don't want to do it willy-nilly)

Split the two and adjust import paths as needed.
2025-05-09 21:14:26 +02:00
bin.pan 6f0fc020e8 update containerd.options key name (#12170) 2025-05-02 23:27:55 -07:00