179 Commits
Author SHA1 Message Date
Ali Afsharzadeh 311e114fc3 Upgrade cilium from 1.20.3 to 1.20.4 (#13681)
Signed-off-by: Ali Afsharzadeh <afsharzadeh8@gmail.com>
2026-10-28 03:11:18 +00:00
Kay Yan cb7ff78696 Use upstream GHCR images for Flannel and its CNI plugin (#13672)
* Use upstream GHCR images for Flannel and its CNI plugin

Signed-off-by: Kay Yan <kay.yan@daocloud.io>

* Remove redundant Flannel image documentation

Signed-off-by: Kay Yan <kay.yan@daocloud.io>

---------

Signed-off-by: Kay Yan <kay.yan@daocloud.io>
2026-10-26 08:40:08 +00:00
MohammadReza c2ffcdc411 chore(deps): bump flannel to 0.28.10 (#13666) 2026-10-19 03:49:40 +00:00
MohammadReza ee61864e43 chore(deps): upgrade cilium from 1.20.2 to 1.20.3 (#13660) 2026-10-15 17:44:23 +00:00
Frank bebc536fae fix: configure Kubernetes feature gates with dictionaries (#13608)
* fix: configure Kubernetes feature gates with dictionaries

* docs: update feature gate settings to dictionaries
2026-10-15 15:26:39 +00:00
MohammadReza 0addac084f chore(deps): bump prometheus-operator CRDs to 0.94.1 (#13657) 2026-10-15 11:12:26 +00:00
MohammadReza cbc8d9abc0 Bump local-volume-provisioner to v2.10.0 (#13649)
* chore(deps): bump local-volume-provisioner to 2.10.0

* fix(local_volume_provisioner): keep info logs and add upstream's liveness probe
2026-10-14 05:08:53 +00:00
Max Gautierandgithub-actions[bot] 3c455b365a Patch versions updates (#13644)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-10-14 03:01:05 +00:00
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
Ali Afsharzadeh 6a91511e13 Upgrade snapshot-controller to v8.6.0 (#13629) 2026-10-12 10:23:34 +00:00
MohammadReza c5dd17b5cb feat(etcd): default etcd_snapshot_count to 10000 to match etcd 3.6+ (#13600) 2026-10-12 06:55:39 +00:00
Dasmat Hansda 38f82cdce9 refactor: unify inconsistent variables in apiserver endpoint (#13392) 2026-10-12 06:25:22 +00:00
MohammadReza b1881b5a3e chore(deps): bump runc to 1.5.2 (#13622) 2026-10-08 19:39:59 +00:00
MohammadReza 5eae65cc2a chore(deps): bump nerdctl to 2.4.1 (#13617) 2026-10-08 02:44:00 +00:00
Farshad Asadpour c58f0aff41 [argocd] Bump ArgoCD version to 3.5.3 (#13591)
Argo CD publishes its tested Kubernetes versions at
https://argo-cd.readthedocs.io/en/stable/operator-manual/tested-kubernetes-versions/

3.5.3 is the latest available Argo CD release. Its matrix covers v1.33
through v1.36, which does not include the v1.37.1 shipped by this
branch, so this is the best available option rather than a combination
upstream has marked as tested. The 2.14 series is no longer listed on
that matrix.

argocd_version is derived from the first entry of
argocd_install_checksums, so adding the checksum for 3.5.3 at the top
of the list selects it.
2026-10-04 07:20:20 +00:00
MohammadReza ec07470009 Bump registry to 3.1.2 (#13531)
* chore(deps): bump registry to 2.8.3

* chore(deps): bump registry to 3.1.2
2026-09-28 12:36:35 +00:00
Max Gautier cad55c82c6 Cleanup leftover variables from yq removal (#13582) 2026-09-28 08:22:32 +00:00
Max Gautier 58be448c63 Remove yq as it's no longer needed
After removing it's use in argocd install, yq is no longer used
anywhere.

Remove it everywhere.
2026-09-25 19:46:04 +02:00
Max Gautier 88b827e58d argocd: simplify manifests apply
ArgoCD upstream manifests do not include namespace for the objects, so
there is no need to override it, and simply using kubectl flags allow to
set it.

Use the upstream file directly , considerably simplifying the argocd
install.

ansible-lint: the refactor apparently newly exposes the password hash
filter to ansible and this needs passlib, so add it to the pre-commit
dependencies.
2026-09-25 19:45:58 +02:00
Max Gautier 7462b8b93b download: hardcode artifacts mode & owner (#13570)
The artifacts acquisition does not need particular owner or mode, it
only needs to be readable by other parts of kubespray actually installing
the artefacts where needed.

Thus, remove all mode / owner specific maniulation in download and
hardcode to 0644/0755 for file/directory.
2026-09-25 13:02:30 +00:00
Ali Afsharzadeh cc65b8d9e3 Upgrade etcd to 3.7 for Kubernetes 1.37 (#13363)
Signed-off-by: Ali Afsharzadeh <afsharzadeh8@gmail.com>
2026-09-25 06:16:30 +00:00
Ali Afsharzadeh 6e06a10613 Update youki to 0.7.0 and download the static musl build (#13564)
Add the 0.6.0 and 0.7.0 checksums, drop 0.4.x, and move youki back
into the blocking molecule matrix. The seccomp bug behind the old
FIXME (youki#3479) is fixed in 0.7.0.

The 0.7.0 gnu tarball is linked against glibc 2.39, because cross-rs
moved its base image to Ubuntu 24.04 and youki installs cross from
git. It does not run on EL9, Amazon Linux 2023, Ubuntu 22.04 or
Debian 12, and it needs libseccomp on the host.

The musl tarball is static, has the same default features and no
runtime requirements. It is the build upstream recommends in its
setup docs.

Signed-off-by: Ali Afsharzadeh <afsharzadeh8@gmail.com>
2026-09-24 12:18:20 +00:00
Max Gautier c943bcadf6 downloads: separate etcd and etcd_container (#13555)
Mixing two semantically distincts artefacts makes things harder to read
and to consume from other code.

Needed for clean filtering on container / file.
2026-09-24 10:42:17 +00:00
Ali Afsharzadeh 635d996c2c Support Kubernetes 1.37 (#13561)
Signed-off-by: Ali Afsharzadeh <afsharzadeh8@gmail.com>
2026-09-24 10:22:20 +00:00
kubernetes-prow[bot] 7e6c39baf5 Merge pull request #13523 from VannTen/container_merge_repo_tag
downloads/container: merge repo and tag
2026-09-23 17:10:15 +00:00
Max Gautier 2f42f98d22 Update docs and offline scripts for merged repo + tag in downloads 2026-09-23 15:35:00 +02:00
Max Gautier 6ff47af1ce download: Remove checksums for all container
The pull by digest hasn't been working since 800c84dcc (download: use
full hash form (including hash alg), 2025-01-14), where the key was
renamed to checksum, but the download_container still checked sha256.

Stop pretending we pull by digest.
2026-09-23 13:18:50 +02:00
Max Gautier 164f7fbf40 download: merge repo and tag key in downloads container dict
Those key are only used as part of the downloads role which will be
removed, and it's more convenient to use a single key directly in Jinja
pipelines.
2026-09-23 13:18:43 +02:00
Ali Afsharzadeh b1b5c3689c Bump helm to v3.22.0 (#13535)
Add the checksums for 3.22.0, 3.21.x and 3.20.x.
Remove the checksums for 3.16.x, 3.17.x and 3.18.x, so that the list
keeps the three latest minor versions.

Signed-off-by: Ali Afsharzadeh <afsharzadeh8@gmail.com>
2026-09-22 03:16:11 +00:00
MohammadReza d6611c65ee chore(deps): bump cluster-proportional-autoscaler to v1.10.3 (#13529) 2026-09-21 06:38:00 +00:00
Kay Yan 52be0d6956 Bump Gateway API to v1.6.2 (#13534)
Signed-off-by: Kay Yan <kay.yan@daocloud.io>
2026-09-21 06:26:00 +00:00
MohammadReza b8ad8289a8 Bump local-path-provisioner to v0.0.37 (#13525)
* chore(deps): bump local-path-provisioner to v0.0.37

Includes the fix for GHSA-7fxv-8wr2-mfc4, a high-severity HelperPod
template injection issue fixed in v0.0.36, where a user able to edit
the local-path-config ConfigMap could cause unsafe HelperPods to be
created. v0.0.36 adds template validation for this; Kubespray's
helperPod template already passes it (no privileged containers,
hostPath volumes or unsafe pod security settings).

Also syncs two gaps in the vendored manifests, verified against
upstream's v0.0.37 chart RBAC and deploy/local-path-storage.yaml:

- ClusterRole: grant update on persistentvolumeclaims (rancher/
  local-path-provisioner#530) and read access to pods/log, which the
  provisioner needs to read helper pod output. Note the existing
  pods: ["*"] rule does not cover the pods/log subresource.
- helperPod: add priorityClassName system-node-critical and a
  toleration for node.kubernetes.io/disk-pressure, so cleanup pods
  can still be scheduled onto a node that is under disk pressure.

* fix(local-path-provisioner): add health probes and config env vars
2026-09-18 10:20:44 +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 bd20622a16 download: define utility variables (#13521)
local_release_dir has insufficient nuances, as it needs to handle
several cases,
- where to put downloaded artifacts
- where to search for when installing artifacts
- where to search for when using artifacts (passing them via lookup to
  kubectl stdin for instance)

Furthermore, depending on how the user set up download delegation, the
value we want can be on the host the tasks is executing, on the
delegated hosts, etc.

Define variables on top of local_release_dir for differents contexts,
handling which host context to use depending on `download_delegate`.

Mostly, this boils down to choosing the correct `host` for
hostvars[host]['local_release_dir'].
2026-09-17 08:59:23 +00:00
MohammadReza f4eaac3a94 Bump node-feature-discovery to v0.19.0 (#13512)
* chore(deps): bump node-feature-discovery to v0.19.0

Checked all intermediate releases (0.17.0, 0.18.0, 0.19.0) for breaking changes. v0.19.0's RBAC breaking change (nfd-topology-updater needs list+watch on pods) does not apply here: Kubespray does not deploy an nfd-topology-updater workload (only an unused ConfigMap template for it exists in this role). v0.19.0 also removed env/expandenv/getHostByName from NodeFeatureRule templates -- only affects user-authored custom NodeFeatureRule resources, not anything this role ships by default.

* fix(nfd): add missing namespaces RBAC rule and fix nodefeaturegroups typo

* fix(nfd): add missing delete verb to nfd-worker Role

* chore(nfd): sync CRD manifest with upstream v0.19.0

* fix(nfd): drop removed gRPC-era flags/ports from nfd-master

* fix(nfd): remove leftover crd-controller args block

Previous commit added the new args but left the old -crd-controller
and -metrics block in place instead of replacing it.

* fix(nfd): drop removed gRPC-era flags from nfd-worker

* chore(nfd): drop variables no longer read by any template

* fix(nfd): align nfd-worker port naming and add health probes

* fix(nfd): remove obsolete nfd-master Service

* chore(nfd): register removed variables in validate_inventory

* fix(nfd): clean up the obsolete Service manifest on disk

* fix(nfd): add health probes and http port to nfd-gc

* fix(nfd): align nfd-worker env and mounts with upstream
2026-09-17 08:45:26 +00:00
Max Gautier 23f8593cf5 download/calico_crds: use flat manifest path (#13522)
The additional directory is unnecessary.
2026-09-17 07:41:25 +00:00
Ali Afsharzadeh ddb6ee50d9 Upgrade cilium from 1.20.1 to 1.20.2 (#13515)
Signed-off-by: Ali Afsharzadeh <afsharzadeh8@gmail.com>
2026-09-16 14:01:23 +00:00
MohammadReza 09307ebc37 chore(deps): bump metrics-server to v0.9.0 (#13511)
No breaking changes per upstream release notes (CLI flags, RBAC, and
deployment shape unchanged). metrics-server is image-only in Kubespray
(no checksum pinning to update). Upstream also bumped their own
Kubernetes client deps to v1.36.2, matching what Kubespray currently
targets.
2026-09-15 10:05:22 +00:00
Max Gautier 5af06acee1 fix: ansible 2.19: calico resources final evaluation (#13503)
The bgp changes are a bit verbose, because I chose to reproduce the
exact semantics of the current code, so that the manifest handed to
calicoctl does not contain unset fields (instead of just using defaults
value).

It would be more readable to just accept default value in the
manifests, but might be a problem if there is other writer of the same
Calico resources.
2026-09-15 08:55:22 +00:00
Max Gautier b1b01bc579 local_volume_provisioner: match upstream storage class syntax (#13504)
Use the upstream keys without converting them to snake case. This avoids
converting back to camel case when rendering, and aligns ourselves more
with our upstream.
2026-09-14 15:45:22 +00:00
Max Gautier 16ad6da94e fix: ansible 2.19: etcd_events_address final evaluation list (#13498) 2026-09-10 13:40:35 +00:00
Kay Yan b7d99749b8 preinstall: generalize minimum-value semantics for managed sysctls (#13224)
* preinstall: generalize minimum-value semantics for managed sysctls

Move the hardcoded sysctl floor map out of 0080-system-configurations.yml
into a default variable, and introduce additional_sysctl_min so users can
declare their own sysctl floors. Floor semantics only apply a managed
value when the node's current value is lower; pre-tuned images (Bottlerocket,
EKS AMIs, OpenShift RHCOS, hardened distros) and newer kernels that
already set higher values are left alone.

Default floors are aligned with prior art from the OpenShift Node Tuning
Operator (TuneD '=>' floor syntax in the openshift / openshift-node
profiles) and kops. None of the floor keys are part of the kubelet
protect-kernel-defaults validation list, so the floor mechanism cannot
interfere with kubelet startup. Keys not present on the running
kernel/distro are skipped without failing.

additional_sysctl (exact-value semantics) is unchanged for backward
compatibility.

Signed-off-by: Kay Yan <kay.yan@daocloud.io>

* preinstall: refine sysctl floor handling

Keep built-in floor values internal while preserving user overrides
through additional_sysctl_min.

Use sysctl --ignore for unknown keys and filter empty results without
masking other read errors.

Signed-off-by: Kay Yan <kay.yan@daocloud.io>

---------

Signed-off-by: Kay Yan <kay.yan@daocloud.io>
2026-09-10 07:46:33 +00:00
ERIK 26aa4586e9 fix(flannel): make image tag prefix version-aware (#13476)
Signed-off-by: bo.jiang <bo.jiang@daocloud.io>
2026-09-10 07:12:34 +00:00
Max Gautier 0378060c91 fix/ansible 2.19: ssl_ca_dirs: don't rely on final evaluation (#13477) 2026-09-09 09:13:25 +00:00
Max Gautierandgithub-actions[bot] 15dab0c60c Patch versions updates (#13458)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-09-09 00:48:32 +00:00
Max Gautier ff19dbd284 fix/ansible 2.19: local vol provisioner: don't rely on final evaluation (#13481)
- also remove mitogen workaround from local_volume_provisioner since
  creating the dirs is handled by kubernetes/preinstall instead
- correct the tag in kubernetes/preinstall as persistent_volumes isn't
  the same thing
2026-09-08 22:46:35 +00:00
Sandaru Wijewardhana 2dd05e4841 Bump nerdctl to v2.3.5 (#13437)
Signed-off-by: sandaruwijewardhana <sandaruwijewardhana@gmail.com>
2026-09-08 07:44:30 +00:00
Dhakshin Raghav 1daa5c4af0 Bump Flannel version to v0.28.9 (#13436) 2026-09-03 12:32:19 +00:00
Ali Afsharzadeh 46dbdd3994 Patch versions updates (#13423)
Signed-off-by: Ali Afsharzadeh <afsharzadeh8@gmail.com>
2026-08-21 10:07:16 +00:00
Ali Afsharzadeh c2089ae595 Upgrade cilium from 1.20.0 to 1.20.1 (#13419)
Signed-off-by: Ali Afsharzadeh <afsharzadeh8@gmail.com>
2026-08-21 04:31:14 +00:00