Compare commits

...

91 Commits

Author SHA1 Message Date
dependabot[bot]
07c382f27e build(deps): bump cryptography from 49.0.0 to 50.0.0
Bumps [cryptography](https://github.com/pyca/cryptography) from 49.0.0 to 50.0.0.
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/49.0.0...50.0.0)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-version: 50.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-08-10 03:14:16 +00:00
Ali Afsharzadeh
ace96af930 Upgrade cilium from 1.19.6 to 1.20.0 (#13401)
Signed-off-by: Ali Afsharzadeh <afsharzadeh8@gmail.com>
2026-08-06 13:26:54 +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
7198b21b3f Replace injected Ansible fact variables in Remaining roles (#13383) 2026-08-03 07:21:29 +00:00
tophac
4ee4ced065 Fix(#13396)Delete the leftover eviction_hard_control_plane variable (#13400) 2026-08-03 04:33:24 +00:00
Debasish Mohanty
f713813c55 fix(csi): update CSI sidecar image versions (#13395)
* feat(csi): update CSI sidecar image versions

* docs(openstack): update sample Cinder CSI sidecar image tags

* chore: trigger CI
2026-08-02 14:53:22 +00:00
dependabot[bot]
c0cbd079ab build(deps): bump actions/setup-python from 6.3.0 to 7.0.0 (#13398)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 6.3.0 to 7.0.0.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](ece7cb06ca...5fda3b95a4)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-version: 7.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-27 15:31:58 +00:00
dependabot[bot]
0665be9c67 build(deps): bump actions/checkout from 7.0.0 to 7.0.1 (#13399)
Bumps [actions/checkout](https://github.com/actions/checkout) from 7.0.0 to 7.0.1.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](9c091bb21b...3d3c42e5aa)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 7.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-27 07:47:57 +00:00
R. P. Taylor
1d67dc671a fix typo in RHEL documentation for Rocky 10 (#13394) 2026-07-25 06:39:51 +00:00
Ali Afsharzadeh
9b092a4f49 Upgrade cilium from 1.19.5 to 1.19.6 (#13376)
Signed-off-by: Ali Afsharzadeh <afsharzadeh8@gmail.com>
2026-07-25 06:35:53 +00:00
Ali Afsharzadeh
8d69fb8f9a Patch versions updates (#13393)
Signed-off-by: Ali Afsharzadeh <afsharzadeh8@gmail.com>
2026-07-24 07:01:52 +00:00
emma034186-stack
5d17ea45a9 fix(cilium): stop early if kube_owner is not root (#13385)
Cilium's init containers run as UID 0 with capabilities (including
CAP_DAC_OVERRIDE) dropped, so host paths it writes to (e.g. /opt/cni/bin)
must be owned by root or it will fail with a permission error.

Add a pre-flight assert that fails fast with a clear message when
kube_network_plugin == cilium and kube_owner != root, instead of
changing CNI bin ownership defaults for all network plugins.
2026-07-22 14:17:51 +00:00
Frank
dafb54734a fix: restrict automatic OS labels (#13386) 2026-07-21 06:52:15 +00:00
wangsifei99
d668c509bb fix: Unneeded bpf fstab entry added when using Cilium #13364 (#13377) 2026-07-20 09:28:12 +00:00
Frank
27527fdb00 refactor(roles): remove redundant default filters (#13380) 2026-07-17 16:35:28 +00:00
Toshihiko Kimura
2d8f15f95a fix(calico): Add missing permissions in RBAC for calico-kube-controllers (#13375)
* fix(calico): Add namespace rbac for calico-kube-controllers

* fix(calico): Add missing RBAC resource for calico-kube-controllers
2026-07-17 15:19:30 +00:00
Jeroen Rijken
cbcda6ea8d Reboot only when required, add the option to clean packages. (#13327)
* Reboot only when required, add the option to clean packages.

* Update docs to reflect only Debian based distribution can be apt
autocleaned

* Add apt cleanup to upgrade tests
2026-07-16 16:25:26 +00:00
somaz
0355ed62b9 fix(cilium): wire scrape port variables to Helm values template (#13370)
Signed-off-by: somaz <genius5711@gmail.com>
2026-07-15 09:57:33 +00:00
Ali Soltaninasab
971e5f561b Support authentication for custom CNI Helm repositories (#13294)
* Add authentication support for custom CNI Helm repository

Pass optional Helm repository username and password values to the custom CNI chart configuration. These values use default(omit) so authentication fields are only included when explicitly defined by the user.

* Document custom CNI Helm repository authentication variables

Add commented sample variables for configuring a username and password when the custom CNI Helm repository requires authentication.

* Address Copilot documentation feedback

Document paired repository credentials and secure password storage.
Remove authentication placeholders from the public Cilium example.
2026-07-15 04:05:20 +00:00
Ali Afsharzadeh
648e55a379 Rename cilium certgen and envoy image variables (#13260)
Signed-off-by: Ali Afsharzadeh <afsharzadeh8@gmail.com>
2026-07-14 14:33:17 +00:00
ChengHao Yang
e15b1f2778 Patch versions updates (#13368)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-14 03:24:19 +00:00
Nikhil Kumar
451957822e Replace injected Ansible fact variables in kubernetes-apps role (#13339) 2026-07-14 02:38:18 +00:00
Adesh Deshmukh
9254afbdc7 Remove dangling 'list' from mutually_exclusive in kube.py (#13352)
The mutually_exclusive constraint referenced 'list', a parameter that does not exist in argument_spec. Remove the dead constraint.

Signed-off-by: Adesh Deshmukh <adeshkd123@gmail.com>
2026-07-09 05:52:31 +00:00
Nikhil Kumar
338d288653 Replace injected Ansible fact variables in kubespray-defaults role (#13340) 2026-07-08 10:08:29 +00:00
kubernetes-prow[bot]
0c7ccdd6cf Merge pull request #13361 from tico88612/fix/1.36-extend-websocket
fix: ExtendWebSocketsToKubelet when container_manager set docker
2026-07-07 09:18:29 +00:00
Adesh Deshmukh
63bdde2ade Fix inverted ignore_errors condition for etcd-events service startup (#13343)
The ignore_errors condition on the etcd-events service startup task
(Configure | Ensure etcd-events is running) uses != instead of ==,
which is the inverse of the correct pattern used for the main etcd
service on the line above.

This was introduced in commit 7516fe142 when the # noqa ignore-errors
comment was added to the line, accidentally flipping the operator.
2026-07-07 07:50:27 +00:00
ChengHao Yang
c1ee4bdef8 test: move openeuler24-calico to pr-full
Signed-off-by: ChengHao Yang <17496418+tico88612@users.noreply.github.com>
2026-07-06 22:08:20 +08:00
dependabot[bot]
cf80a0c409 build(deps): bump molecule from 26.4.0 to 26.6.0 in the molecule group (#13359)
Bumps the molecule group with 1 update: [molecule](https://github.com/ansible-community/molecule).


Updates `molecule` from 26.4.0 to 26.6.0
- [Release notes](https://github.com/ansible-community/molecule/releases)
- [Commits](https://github.com/ansible-community/molecule/compare/v26.4.0...v26.6.0)

---
updated-dependencies:
- dependency-name: molecule
  dependency-version: 26.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: molecule
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-06 11:22:25 +00:00
ChengHao Yang
80b3345ed8 fix: cri-dockerd doesn't support ExtendWebSocketsToKubelet
Disabled the FG ExtendWebSocketsToKubelet when `container_manager` set `docker`, let CI can passed.
2026-07-06 16:57:50 +08:00
Adesh Deshmukh
4832c44bb3 fix(tests): use kube_network_plugin in fedora43-flannel-crio test (#13350)
* fix(tests): use kube_network_plugin in fedora43-flannel-crio test

The fedora43-flannel-crio-collection-scale.yml test config set
'network_plugin: flannel', but all Kubespray roles read
'kube_network_plugin' (defaulting to 'calico'). The test silently
ran Calico instead of Flannel.

Signed-off-by: Adesh Deshmukh <adeshkd123@gmail.com>

* Update CI matrix to reflect fedora43-flannel-crio test correctly

---------

Signed-off-by: Adesh Deshmukh <adeshkd123@gmail.com>
2026-07-05 10:44:22 +00:00
Aleksandr Borisov
c263d746b6 Fix Multus manifest generation with global inventory (#13309)
* Fix Multus manifest generation with global inventory

* Update roles/network_plugin/multus/tasks/main.yml

Co-authored-by: Ali Afsharzadeh <afsharzadeh8@gmail.com>

---------

Co-authored-by: Ali Afsharzadeh <afsharzadeh8@gmail.com>
2026-06-30 12:50:11 +00:00
dependabot[bot]
30e39560e5 build(deps): bump actions/setup-python from 6.2.0 to 6.3.0 (#13331)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 6.2.0 to 6.3.0.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](a309ff8b42...ece7cb06ca)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-version: 6.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-29 09:24:10 +00:00
dependabot[bot]
8f3baa4e18 build(deps): bump actions/cache from 5.0.5 to 6.1.0 (#13330)
Bumps [actions/cache](https://github.com/actions/cache) from 5.0.5 to 6.1.0.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](27d5ce7f10...55cc834586)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: 6.1.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-29 08:52:07 +00:00
Matthias Lohr
925f60247a Make cordon/uncordon confirmation prompts consistent (#13313)
Mention cordon explicitly in the pre-upgrade prompt and add the node
name plus the same continue/cancel hint to the uncordon prompt so both
prompts share consistent wording.
2026-06-24 11:38:21 +00:00
ICHx
60929432f5 flannel: set EnableNFTables when kube_proxy_mode use nftables (#13291)
* flannel: set EnableNFTables when kube_proxy_mode use nftables

* Clean up cni-flannel.yml.j2 by removing comments

Removed commented-out environment variable for cache readiness.

* update cni-flannel.yml.j2

---------

Co-authored-by: ric-mb <noreply@github.com>
2026-06-24 02:50:17 +00:00
Wren Turkal
07960e8bb6 fix: Jinja version test warning (#13322)
The jinja version test conditional uses jinja in the condition, which is
deprecated. I have removed the assertion since ansible 2.18 has a dependency
on jinja2>=3.0.0.
2026-06-23 09:38:37 +00:00
Sumit Solanki
c76137d89e dependabot: ignore ansible major version updates (#13320)
Ansible major versions are upgraded manually to support multiple
OS/Python versions. Configure Dependabot to still propose minor and
patch updates while skipping semver-major bumps.

Signed-off-by: Sumit Solanki <sumit.solanki@ibm.com>
2026-06-23 07:01:33 +00:00
Sumit Solanki
edeeb95f22 fix(cilium): sync operator-generic image for offline registries (#13270)
The Cilium Helm chart appends a -generic suffix to the operator image
repository for non-cloud deployments. Sync the operator-generic image
to offline registries so it matches what the chart requests.

Signed-off-by: Sumit Solanki <sumit.solanki@ibm.com>
2026-06-22 12:49:55 +00:00
dependabot[bot]
9dde36546c build(deps): update bcrypt requirement from <5 to <6 (#13318)
Updates the requirements on [bcrypt](https://github.com/pyca/bcrypt) to permit the latest version.
- [Changelog](https://github.com/pyca/bcrypt/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/bcrypt/compare/v1.0.0...5.0.0)

---
updated-dependencies:
- dependency-name: bcrypt
  dependency-version: 5.0.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-22 06:21:41 +00:00
dependabot[bot]
99be103567 build(deps): bump actions/checkout from 6.0.3 to 7.0.0 (#13319)
Bumps [actions/checkout](https://github.com/actions/checkout) from 6.0.3 to 7.0.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](df4cb1c069...9c091bb21b)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 7.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-22 06:11:40 +00:00
Ali Afsharzadeh
4d8ecca4e7 Upgrade cilium from 1.19.4 to 1.19.5 (#13315)
Signed-off-by: Ali Afsharzadeh <afsharzadeh8@gmail.com>
2026-06-21 14:17:37 +00:00
Alejandro Macedo
8a5cfe8d77 Change failure condition for image container download (#12321)
When installing with `download_run_once`, nerdctl will log to stderr and
cause a failure even if the image was saved successfully. Instead we
rely on the shell exit code to detect the failure.

Signed-off-by: Alejandro Macedo <alex.macedopereira@gmail.com>
2026-06-21 10:51:41 +00:00
Nikhil Kumar
9f7ea6632c Replace injected Ansible fact variables in bootstrap_os role (#13264)
* Replace injected Ansible fact variables in bootstrap_os role

* Restore stale setup task in opensuse role
2026-06-19 11:44:49 +05:30
DongYoung Kim
a553d48c73 Fix missing dependency for ArgoCD master password hashing (#12920)
* add passlib dependency

* add constrained bcrypt version
2026-06-16 13:55:30 +05:30
Nikhil Kumar
e0add9ee0d Replace injected Ansible fact variables in container-engine role (#13296) 2026-06-16 08:51:24 +05:30
dependabot[bot]
a76a475a5b build(deps): bump distlib from 0.4.1 to 0.4.3 (#13307)
Bumps [distlib](https://github.com/pypa/distlib) from 0.4.1 to 0.4.3.
- [Release notes](https://github.com/pypa/distlib/releases)
- [Changelog](https://github.com/pypa/distlib/blob/master/CHANGES.rst)
- [Commits](https://github.com/pypa/distlib/compare/0.4.1...0.4.3)

---
updated-dependencies:
- dependency-name: distlib
  dependency-version: 0.4.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-15 09:34:32 +05:30
dependabot[bot]
701f4be3c1 build(deps): bump cryptography from 48.0.0 to 49.0.0 (#13306)
Bumps [cryptography](https://github.com/pyca/cryptography) from 48.0.0 to 49.0.0.
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/48.0.0...49.0.0)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-version: 49.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-15 09:30:35 +05:30
Wren Turkal
f2a7181f99 fix: make assert test for netaddr actually return a boolean (#13304)
* fix: make assert test for netaddr actually return a boolean

The netaddr test returns a string when the netaddr is installed. This makes
Ansible 2.20 angry. Here's a fix to make sure the true case also returns a
boolean instead of a string.

* fix: more fixes for non-boolean conditions

The `cloud_provider` assertion change is a little more involved. The only two
allowed values are "" and "external". Let's just always check the assertion
instead of skipping it when it's the default value, which is "".

All the other changes should be fairly obvious.
2026-06-14 13:56:32 +05:30
ChengHao Yang
3011e19ccd Patch versions updates (#13305)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-06-13 10:28:46 +05:30
Reza Habibi
9f39517507 fix: make offline containerd URL generation respect containerd_static_binary in sample inventory (#13293) 2026-06-09 09:41:45 +05:30
dependabot[bot]
36eba216f6 build(deps): bump actions/checkout from 6.0.2 to 6.0.3 (#13300)
Bumps [actions/checkout](https://github.com/actions/checkout) from 6.0.2 to 6.0.3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](de0fac2e45...df4cb1c069)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 6.0.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-08 21:39:52 +05:30
dependabot[bot]
03378afd18 build(deps): bump distlib from 0.4.0 to 0.4.1 (#13298)
Bumps [distlib](https://github.com/pypa/distlib) from 0.4.0 to 0.4.1.
- [Release notes](https://github.com/pypa/distlib/releases)
- [Changelog](https://github.com/pypa/distlib/blob/master/CHANGES.rst)
- [Commits](https://github.com/pypa/distlib/compare/0.4.0...0.4.1)

---
updated-dependencies:
- dependency-name: distlib
  dependency-version: 0.4.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-08 21:14:03 +05:30
Srishti Jaiswal
84eede8630 image-builder: add staging OCI publish path (#13273) 2026-06-05 12:05:59 +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
Denis
bd21d04c4f Update dns-autoscaler.yml.j2 fix duplicate nodeSelector (#13290) 2026-06-04 12:17:48 +05:30
ujstor
7c8f928405 fix-absent-cni-kubeadm-join-control-planes (#13280) 2026-06-02 07:34:59 +05:30
Nikhil Kumar
2ffff07887 Replace injected Ansible fact variables in node and control-plane roles (#13240) 2026-06-02 07:34:51 +05:30
ChengHao Yang
8b234bf138 Patch versions updates (#13283)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-06-01 20:52:54 +05:30
Sumit Solanki
e914bd78c2 Bump containerd from 2.2.3 to 2.3.0 (#13265) 2026-05-28 14:56:55 +05:30
Zakhar Dvurechensky
9049703ce0 roles: rely on configured defaults (#13249)
Signed-off-by: Zakhar Dvurechensky <72825626+Zakharden@users.noreply.github.com>
2026-05-27 15:09:50 +05:30
Kubernetes Prow Robot
03ae25e410 Merge pull request #13269 from tico88612/fix/pre-commit
Fixed pre-commit and pin Python Client version in pipeline
2026-05-26 13:41:26 +05:30
ChengHao Yang
d2ca095505 Chore: Pipeline kubernetes-python client version pin 35.0.0
Signed-off-by: ChengHao Yang <17496418+tico88612@users.noreply.github.com>
2026-05-25 20:51:18 +08:00
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
ChengHao Yang
4e6e63d49d Chore: pin the pre-commit ansible-core version
Signed-off-by: ChengHao Yang <17496418+tico88612@users.noreply.github.com>
2026-05-25 20:49:52 +08:00
Ali Afsharzadeh
6107c6ab7c Align nginx worker_rlimit_nofile with containerd defaults (#13255)
Signed-off-by: Ali Afsharzadeh <afsharzadeh8@gmail.com>
2026-05-21 17:10:48 +05:30
Ali Afsharzadeh
7a62933b17 Update load balancer versions to Nginx 1.30.1 and Haproxy 3.2.19 (#13258)
Signed-off-by: Ali Afsharzadeh <afsharzadeh8@gmail.com>
2026-05-21 14:16:46 +05:30
Jiří Suchomel
7214e9899b docs: fix incorrect Ansible paths and standardize inventory references (#13246)
This commit updates documentation across several files to correct broken
file paths and ensure consistency in Ansible command examples

- Standardized inventory naming to `inventory.ini` for sample inventories.
- Fixed `group_vars` paths to reflect the actual directory structure
  (e.g., `group_vars/all/all.yml` instead of `group_vars/all.yml`).
- Corrected the `k8s-cluster.yml` filename in guides.
- Clarified the location for `kubectl_localhost` and `kubeconfig_localhost` settings.
- Replaced non-existent placeholders (like `inventory/single.cfg`) with
  valid repository paths.
- Fixed typos in directory names (e.g., `myclsuter` -> `mycluster`).
2026-05-21 13:30:47 +05:30
Sumit Solanki
7fd29b5529 kube-vip: optional Prometheus metrics (default port 2112) (#13229)
Add kube_vip_metrics_enabled and kube_vip_metrics_port; wire
prometheus_server and container port in the static pod manifest.
Default metrics port to 2112 to match kube-vip upstream. Document
and sample inventory updated.
2026-05-19 11:15:02 +05:30
Ali Afsharzadeh
17f270325d Remove deprecated apiserver-count kubeadm config option (#13262)
Signed-off-by: Ali Afsharzadeh <afsharzadeh8@gmail.com>
2026-05-18 16:17:51 +05:30
Justin Lamp
8c3f6270f8 Add toggle to disable node subnet allocation (#13239)
Signed-off-by: Justin Lamp <justin.lamp@netways.de>
2026-05-16 11:34:34 +05:30
Ali Afsharzadeh
2ac815147b Upgrade cilium from 1.19.3 to 1.19.4 (#13256)
Signed-off-by: Ali Afsharzadeh <afsharzadeh8@gmail.com>
2026-05-14 18:04:28 +05:30
Nikhil Kumar
2ed677ce86 Replace injected Ansible fact variables with ansible_facts in preinstall role (#13232) 2026-05-14 16:08:30 +05:30
ChengHao Yang
22ce2f799f Patch versions updates (#13254)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-05-14 13:26:27 +05:30
dependabot[bot]
469a8296a1 build(deps): bump cryptography from 47.0.0 to 48.0.0 (#13248)
Bumps [cryptography](https://github.com/pyca/cryptography) from 47.0.0 to 48.0.0.
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/47.0.0...48.0.0)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-version: 48.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-11 19:16:00 +05:30
Takuya Murakami
c1768dd21b cri-o: Bump cri-o to 1.36.0 for kubernetes 1.36 (#13244) 2026-05-11 19:15:51 +05:30
Kay Yan
a93615ebde ci: bump EOL Fedora versions to 42/43 (#13206)
Fedora 39 (EOL 2024-11-26), Fedora 40 (EOL 2025-05-13), and Fedora 41
(EOL 2025-12-15) are all out of support and no longer receive security
updates. This bumps the kubevirt CI test matrix to currently supported
releases, distributing tests across Fedora 42 (supported until
2026-05-13) and Fedora 43 (supported until 2026-12-09) to keep
multi-version coverage.

- Add fedora-43 image entry to the kubevirt image-builder
- Rename fedora39-* tests to fedora43-* (4 tests)
- Rename fedora40-* tests to fedora43-* (2 tests)
- Rename fedora41-* tests to fedora42-* (4 tests)
- Update .gitlab-ci/kubevirt.yml testcase names
- Regenerate docs/developers/ci.md

All 10 existing Fedora test configurations (kube-router, calico-selinux,
calico-swap-selinux, crio with/without SELinux enforcing, docker-calico,
flannel-crio-collection-scale) are preserved.

Signed-off-by: Kay Yan <kay.yan@daocloud.io>
2026-05-11 13:59:56 +05:30
Srishti Jaiswal
da6b8e8b81 image-builder: run validation with Dind (#13212)
* image-builder: run validation locally with BuildKit

* upadte checksum

* set BuildKit no-process-sandbox flag for CI

* run BuildKit with rootless-safe daemon flags in CI

* update

* updating root logic

* fix ci failure for can't enable NoProcessSandbox

* switch to stable url

* add --oci-worker-no-process-sandbox ci flag in root path

* add more support

* add validate-docker and validate-single docker
2026-05-11 13:27:50 +05:30
Justin Lamp
6bb1e2f290 Set http proxy environments for helm app installations (#13234)
* Set http proxy environments for helm app installations

Signed-off-by: Justin Lamp <justin.lamp@netways.de>

* Change http_proxy env variables from legacy static entries to new proxy_env variable

Signed-off-by: Justin Lamp <justin.lamp@netways.de>

---------

Signed-off-by: Justin Lamp <justin.lamp@netways.de>
2026-05-10 08:49:45 +05:30
ChengHao Yang
4cefd77639 Move failing youki to allow_failed and patch update (#13241)
* Patch versions updates

* fix: failing blocker youki

https://github.com/youki-dev/youki/issues/3479

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-05-08 18:43:20 +05:30
Sumit Solanki
e97333dbf8 fix: skip kube-proxy-only tasks when kube_proxy_remove is true (#13228)
* fix: skip kube-proxy-only tasks when kube_proxy_remove is true

Signed-off-by: Sumit Solanki <sumit.solanki@ibm.com>

* refactor: use  where defaults already define the var

Signed-off-by: Sumit Solanki <sumit.solanki@ibm.com>

---------

Signed-off-by: Sumit Solanki <sumit.solanki@ibm.com>
2026-05-07 18:31:20 +05:30
Ali Afsharzadeh
09e9c43570 Disable controller-manager allocate-node-cidrs for cilium cluster-pool ipam (#13148)
Signed-off-by: Ali Afsharzadeh <afsharzadeh8@gmail.com>
2026-05-06 15:26:22 +05:30
Seokjun Yang
17f92d2cce Update Docker image version in README (#13226) 2026-05-05 08:18:22 +05:30
ChengHao Yang
e6bd0cb37d Chore: change the GitHub Actions uses commit hash (#13227)
Signed-off-by: ChengHao Yang <17496418+tico88612@users.noreply.github.com>
2026-05-04 10:53:38 +05:30
Takuya Murakami
28bdeb8583 [Kubernetes] Support Kubernetes v1.36.0 (#13219)
- Support Kubernetes 1.36.0
- Bump coredns to 1.14.2
2026-05-01 07:49:25 +05:30
Kay Yan
a254f5ea68 network_plugin/cilium: fail fast when Gateway API CRDs are incompatible (#13223)
Cilium < 1.20 unconditionally registers a field indexer for TLSRoute
v1alpha2 when the Gateway API controller is enabled, but Gateway API
>= 1.5.0 ships TLSRoute v1alpha2 with served=false in the standard
channel. The result is cilium-operator CrashLoopBackOff with:

  no matches for kind "TLSRoute" in version "gateway.networking.k8s.io/v1alpha2"

The fix landed in Cilium 1.20 only and will not be backported.

Add a preflight assert that triggers only when all of the following
hold: cilium_gateway_api_enabled, gateway_api_enabled, cilium_version
< 1.20.0, gateway_api_version >= 1.5.0, and gateway_api_channel ==
"standard". Users hit by this combo get a clear error and two
workarounds (pin gateway_api_version to 1.4.1, or switch
gateway_api_channel to "experimental") instead of debugging a crash
loop after the fact.

Signed-off-by: Kay Yan <kay.yan@daocloud.io>
2026-04-30 11:43:26 +05:30
Yang-Ming Lin
c3d4864e63 Refactor(defaults): centralize etcd defaults (#13161) 2026-04-28 07:54:48 +05:30
dependabot[bot]
655c516129 build(deps): bump stefanbuck/github-issue-parser from 3.2.3 to 3.2.5 (#13218)
Bumps [stefanbuck/github-issue-parser](https://github.com/stefanbuck/github-issue-parser) from 3.2.3 to 3.2.5.
- [Release notes](https://github.com/stefanbuck/github-issue-parser/releases)
- [Commits](10dcc54158...cb6e97157c)

---
updated-dependencies:
- dependency-name: stefanbuck/github-issue-parser
  dependency-version: 3.2.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-28 07:26:49 +05:30
dependabot[bot]
846bcb2ccc build(deps): bump cryptography from 46.0.7 to 47.0.0 (#13217)
Bumps [cryptography](https://github.com/pyca/cryptography) from 46.0.7 to 47.0.0.
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/46.0.7...47.0.0)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-version: 47.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-28 07:22:47 +05:30
Kay Yan
76a9d3db08 Releng: bump galaxy version 2.32.0 (#13214)
Signed-off-by: Kay Yan <kay.yan@daocloud.io>
2026-04-25 15:20:46 +05:30
Kay Yan
1c9add4897 docs: fix release-notes command in release guide (#13211)
The documented example still uses the removed --required-author flag and
misses --repo-path, which breaks with current release-notes binaries.
Update it to use the generate subcommand and point at the local checkout.

Signed-off-by: Kay Yan <kay.yan@daocloud.io>
2026-04-24 09:46:46 +05:30
Ali Afsharzadeh
00a29dffc8 Add myself (guoard) as reviewer (#13197)
Signed-off-by: Ali Afsharzadeh <afsharzadeh8@gmail.com>
2026-04-23 17:48:47 +05:30
137 changed files with 1453 additions and 831 deletions

54
.github/advanced-issue-labeler.yml vendored Normal file
View File

@@ -0,0 +1,54 @@
---
policy:
- section:
- id: [os]
block-list: []
label:
- name: 'RHEL 9'
keys: ['RHEL 9']
- name: 'RHEL 8'
keys: ['RHEL 8']
- name: 'Fedora 40'
keys: ['Fedora 40']
- name: 'Ubuntu 24'
keys: ['Ubuntu 24']
- name: 'Ubuntu 22'
keys: ['Ubuntu 22']
- name: 'Ubuntu 20'
keys: ['Ubuntu 20']
- name: 'Debian 12'
keys: ['Debian 12']
- name: 'Debian 11'
keys: ['Debian 11']
- name: 'Flatcar Container Linux'
keys: ['Flatcar Container Linux']
- name: 'openSUSE Leap'
keys: ['openSUSE Leap']
- name: 'openSUSE Tumbleweed'
keys: ['openSUSE Tumbleweed']
- name: 'Oracle Linux 9'
keys: ['Oracle Linux 9']
- name: 'Oracle Linux 8'
keys: ['Oracle Linux 8']
- name: 'AlmaLinux 9'
keys: ['AlmaLinux 9']
- name: 'AlmaLinux 8'
keys: ['AlmaLinux 8']
- name: 'Rocky Linux 9'
keys: ['Rocky Linux 9']
- name: 'Rocky Linux 8'
keys: ['Rocky Linux 8']
- name: 'Amazon Linux 2'
keys: ['Amazon Linux 2']
- name: 'Kylin Linux Advanced Server V10'
keys: ['Kylin Linux Advanced Server V10']
- name: 'UOS Linux 20'
keys: ['UOS Linux 20']
- name: 'openEuler 24'
keys: ['openEuler 24']
- name: 'openEuler 22'
keys: ['openEuler 22']
- name: 'openEuler 20'
keys: ['openEuler 20']
- name: 'Other|Unsupported'
keys: ['Other|Unsupported']

View File

@@ -12,6 +12,10 @@ updates:
patterns: patterns:
- molecule - molecule
- molecule-plugins* - molecule-plugins*
ignore:
# Ansible major versions are upgraded manually to support multiple OS/Python versions.
- dependency-name: "ansible"
update-types: ["version-update:semver-major"]
- package-ecosystem: "github-actions" - package-ecosystem: "github-actions"
directory: "/" directory: "/"
labels: labels:

View File

@@ -13,20 +13,17 @@ jobs:
issues: write issues: write
steps: steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- name: Parse issue form - name: Parse issue form
uses: stefanbuck/github-issue-parser@10dcc54158ba4c137713d9d69d70a2da63b6bda3 uses: stefanbuck/github-issue-parser@cb6e97157cbf851e3a393ff8d57c93a484cc323f
id: issue-parser id: issue-parser
with: with:
template-path: .github/ISSUE_TEMPLATE/bug-report.yaml template-path: .github/ISSUE_TEMPLATE/bug-report.yaml
- name: Set labels based on OS field - name: Set labels based on allowed OS values
uses: redhat-plumbers-in-action/advanced-issue-labeler@b80ae64e3e156e9c111b075bfa04b295d54e8e2e uses: redhat-plumbers-in-action/advanced-issue-labeler@b80ae64e3e156e9c111b075bfa04b295d54e8e2e
with: with:
issue-form: ${{ steps.issue-parser.outputs.jsonString }} issue-form: ${{ steps.issue-parser.outputs.jsonString }}
section: os config-path: .github/advanced-issue-labeler.yml
block-list: |
None
Other
token: ${{ secrets.GITHUB_TOKEN }} token: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -11,10 +11,10 @@ jobs:
update-patch-versions: update-patch-versions:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with: with:
ref: ${{ inputs.branch }} ref: ${{ inputs.branch }}
- uses: actions/setup-python@v6 - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
with: with:
python-version: '3.13' python-version: '3.13'
cache: 'pip' cache: 'pip'
@@ -22,7 +22,7 @@ jobs:
- run: update-hashes - run: update-hashes
env: env:
API_KEY: ${{ secrets.GITHUB_TOKEN }} API_KEY: ${{ secrets.GITHUB_TOKEN }}
- uses: actions/cache@v5 - uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with: with:
key: pre-commit-hook-propagate key: pre-commit-hook-propagate
path: | path: |

View File

@@ -40,8 +40,8 @@ pr:
- debian11-macvlan - debian11-macvlan
- debian12-cilium - debian12-cilium
- debian13-cilium - debian13-cilium
- fedora39-kube-router - fedora42-kube-router
- fedora41-kube-router - fedora43-kube-router
- fedora42-calico - fedora42-calico
- rockylinux9-cilium - rockylinux9-cilium
- rockylinux10-cilium - rockylinux10-cilium
@@ -56,7 +56,7 @@ pr:
- ubuntu24-kube-router-sep - ubuntu24-kube-router-sep
- ubuntu24-kube-router-svc-proxy - ubuntu24-kube-router-svc-proxy
- ubuntu24-ha-separate-etcd - ubuntu24-ha-separate-etcd
- fedora40-flannel-crio-collection-scale - fedora43-flannel-crio-collection-scale
# This is for flakey test so they don't disrupt the PR worklflow too much. # This is for flakey test so they don't disrupt the PR worklflow too much.
# Jobs here MUST have a open issue so we don't lose sight of them # Jobs here MUST have a open issue so we don't lose sight of them
@@ -70,7 +70,6 @@ pr-flakey:
matrix: matrix:
- TESTCASE: - TESTCASE:
- flatcar4081-calico # https://github.com/kubernetes-sigs/kubespray/issues/12309 - flatcar4081-calico # https://github.com/kubernetes-sigs/kubespray/issues/12309
- openeuler24-calico # https://github.com/kubernetes-sigs/kubespray/issues/12877
# The ubuntu24-calico-all-in-one jobs are meant as early stages to prevent running the full CI if something is horribly broken # The ubuntu24-calico-all-in-one jobs are meant as early stages to prevent running the full CI if something is horribly broken
ubuntu24-calico-all-in-one: ubuntu24-calico-all-in-one:
@@ -105,10 +104,11 @@ pr_full:
- debian11-custom-cni - debian11-custom-cni
- debian11-kubelet-csr-approver - debian11-kubelet-csr-approver
- debian12-custom-cni-helm - debian12-custom-cni-helm
- fedora39-calico-swap-selinux - fedora42-calico-swap-selinux
- fedora39-crio - fedora42-crio
- fedora41-calico-swap-selinux - fedora43-calico-swap-selinux
- fedora41-crio - fedora43-crio
- openeuler24-calico # https://github.com/kubernetes-sigs/kubespray/issues/12877
- ubuntu24-calico-ha-wireguard - ubuntu24-calico-ha-wireguard
- ubuntu24-flannel-ha - ubuntu24-flannel-ha
- ubuntu24-flannel-ha-once - ubuntu24-flannel-ha-once
@@ -166,9 +166,9 @@ periodic:
- debian11-calico-upgrade - debian11-calico-upgrade
- debian11-calico-upgrade-once - debian11-calico-upgrade-once
- debian12-cilium-svc-proxy - debian12-cilium-svc-proxy
- fedora39-calico-selinux - fedora42-calico-selinux
- fedora40-docker-calico - fedora43-calico-selinux
- fedora41-calico-selinux - fedora43-docker-calico
- ubuntu24-calico-etcd-kubeadm-upgrade-ha - ubuntu24-calico-etcd-kubeadm-upgrade-ha
- ubuntu24-calico-ha-recover - ubuntu24-calico-ha-recover
- ubuntu24-calico-ha-recover-noquorum - ubuntu24-calico-ha-recover-noquorum

View File

@@ -35,7 +35,6 @@ molecule:
- container-engine/containerd - container-engine/containerd
- container-engine/cri-o - container-engine/cri-o
- container-engine/gvisor - container-engine/gvisor
- container-engine/youki
- adduser - adduser
- bastion-ssh-config - bastion-ssh-config
- bootstrap_os - bootstrap_os
@@ -53,3 +52,5 @@ molecule_full:
- ROLE: - ROLE:
# FIXME : tests below are perma-failing # FIXME : tests below are perma-failing
- container-engine/kata-containers - container-engine/kata-containers
# FIXME: until youki release 0.6.1
- container-engine/youki

View File

@@ -33,6 +33,7 @@ repos:
hooks: hooks:
- id: ansible-lint - id: ansible-lint
additional_dependencies: additional_dependencies:
- ansible-core>=2.18.0,<2.19.0
- jmespath==1.0.1 - jmespath==1.0.1
- netaddr==1.3.0 - netaddr==1.3.0
- distlib - distlib
@@ -49,7 +50,7 @@ repos:
name: Build and install kubernetes-sigs.kubespray Ansible collection name: Build and install kubernetes-sigs.kubespray Ansible collection
language: python language: python
additional_dependencies: additional_dependencies:
- ansible-core>=2.16.4 - ansible-core>=2.18.0,<2.19.0
- distlib - distlib
entry: tests/scripts/collection-build-install.sh entry: tests/scripts/collection-build-install.sh
pass_filenames: false pass_filenames: false
@@ -91,7 +92,7 @@ repos:
name: Update static files referencing default kubespray values name: Update static files referencing default kubespray values
language: python language: python
additional_dependencies: additional_dependencies:
- ansible-core>=2.16.4 - ansible-core>=2.18.0,<2.19.0
entry: scripts/propagate_ansible_variables.yml entry: scripts/propagate_ansible_variables.yml
pass_filenames: false pass_filenames: false

View File

@@ -35,8 +35,8 @@ RUN --mount=type=bind,source=requirements.txt,target=requirements.txt \
SHELL ["/bin/bash", "-o", "pipefail", "-c"] SHELL ["/bin/bash", "-o", "pipefail", "-c"]
RUN OS_ARCHITECTURE=$(dpkg --print-architecture) \ RUN OS_ARCHITECTURE=$(dpkg --print-architecture) \
&& curl -L "https://dl.k8s.io/release/v1.35.4/bin/linux/${OS_ARCHITECTURE}/kubectl" -o /usr/local/bin/kubectl \ && curl -L "https://dl.k8s.io/release/v1.36.3/bin/linux/${OS_ARCHITECTURE}/kubectl" -o /usr/local/bin/kubectl \
&& echo "$(curl -L "https://dl.k8s.io/release/v1.35.4/bin/linux/${OS_ARCHITECTURE}/kubectl.sha256")" /usr/local/bin/kubectl | sha256sum --check \ && echo "$(curl -L "https://dl.k8s.io/release/v1.36.3/bin/linux/${OS_ARCHITECTURE}/kubectl.sha256")" /usr/local/bin/kubectl | sha256sum --check \
&& chmod a+x /usr/local/bin/kubectl && chmod a+x /usr/local/bin/kubectl
COPY *.yml ./ COPY *.yml ./

View File

@@ -8,6 +8,7 @@ aliases:
kubespray-reviewers: kubespray-reviewers:
- cyclinder - cyclinder
- erikjiang - erikjiang
- guoard
- mzaian - mzaian
- tico88612 - tico88612
- vannten - vannten

View File

@@ -22,7 +22,7 @@ Ensure you have installed Docker then
```ShellSession ```ShellSession
docker run --rm -it --mount type=bind,source="$(pwd)"/inventory/sample,dst=/inventory \ docker run --rm -it --mount type=bind,source="$(pwd)"/inventory/sample,dst=/inventory \
--mount type=bind,source="${HOME}"/.ssh/id_rsa,dst=/root/.ssh/id_rsa \ --mount type=bind,source="${HOME}"/.ssh/id_rsa,dst=/root/.ssh/id_rsa \
quay.io/kubespray/kubespray:v2.30.0 bash quay.io/kubespray/kubespray:v2.31.0 bash
# Inside the container you may now run the kubespray playbooks: # Inside the container you may now run the kubespray playbooks:
ansible-playbook -i /inventory/inventory.ini --private-key /root/.ssh/id_rsa cluster.yml ansible-playbook -i /inventory/inventory.ini --private-key /root/.ssh/id_rsa cluster.yml
``` ```
@@ -111,15 +111,15 @@ Note:
<!-- BEGIN ANSIBLE MANAGED BLOCK --> <!-- BEGIN ANSIBLE MANAGED BLOCK -->
- Core - Core
- [kubernetes](https://github.com/kubernetes/kubernetes) 1.35.4 - [kubernetes](https://github.com/kubernetes/kubernetes) 1.36.3
- [etcd](https://github.com/etcd-io/etcd) 3.6.10 - [etcd](https://github.com/etcd-io/etcd) 3.6.13
- [docker](https://www.docker.com/) 28.3 - [docker](https://www.docker.com/) 28.3
- [containerd](https://containerd.io/) 2.2.3 - [containerd](https://containerd.io/) 2.3.3
- [cri-o](http://cri-o.io/) 1.35.0 (experimental: see [CRI-O Note](docs/CRI/cri-o.md). Only on fedora, ubuntu and centos based OS) - [cri-o](https://cri-o.io/) 1.36.2 (experimental: see [CRI-O Note](docs/CRI/cri-o.md). Only on fedora, ubuntu and centos based OS)
- Network Plugin - Network Plugin
- [cni-plugins](https://github.com/containernetworking/plugins) 1.9.1 - [cni-plugins](https://github.com/containernetworking/plugins) 1.9.1
- [calico](https://github.com/projectcalico/calico) 3.31.5 - [calico](https://github.com/projectcalico/calico) 3.31.6
- [cilium](https://github.com/cilium/cilium) 1.19.3 - [cilium](https://github.com/cilium/cilium) 1.20.0
- [flannel](https://github.com/flannel-io/flannel) 0.28.4 - [flannel](https://github.com/flannel-io/flannel) 0.28.4
- [kube-ovn](https://github.com/alauda/kube-ovn) 1.12.21 - [kube-ovn](https://github.com/alauda/kube-ovn) 1.12.21
- [kube-router](https://github.com/cloudnativelabs/kube-router) 2.1.1 - [kube-router](https://github.com/cloudnativelabs/kube-router) 2.1.1
@@ -127,7 +127,7 @@ Note:
- [kube-vip](https://github.com/kube-vip/kube-vip) 1.0.3 - [kube-vip](https://github.com/kube-vip/kube-vip) 1.0.3
- Application - Application
- [cert-manager](https://github.com/jetstack/cert-manager) 1.15.3 - [cert-manager](https://github.com/jetstack/cert-manager) 1.15.3
- [coredns](https://github.com/coredns/coredns) 1.12.4 - [coredns](https://github.com/coredns/coredns) 1.14.2
- [argocd](https://argoproj.github.io/) 2.14.5 - [argocd](https://argoproj.github.io/) 2.14.5
- [helm](https://helm.sh/) 3.18.4 - [helm](https://helm.sh/) 3.18.4
- [metallb](https://metallb.universe.tf/) 0.13.9 - [metallb](https://metallb.universe.tf/) 0.13.9

View File

@@ -58,7 +58,7 @@ You can create a release note with:
export GITHUB_TOKEN=<your-github-token> export GITHUB_TOKEN=<your-github-token>
export ORG=kubernetes-sigs export ORG=kubernetes-sigs
export REPO=kubespray export REPO=kubespray
release-notes --start-sha <The start commit-id> --end-sha <The end commit-id> --dependencies=false --output=/tmp/kubespray-release-note --required-author="" release-notes generate --org "${ORG}" --repo "${REPO}" --repo-path "${PWD}" --start-sha <The start commit-id> --end-sha <The end commit-id> --dependencies=false --output=/tmp/kubespray-release-note
``` ```
If the release note file(/tmp/kubespray-release-note) contains "### Uncategorized" pull requests, those pull requests don't have a valid kind label(`kind/feature`, etc.). If the release note file(/tmp/kubespray-release-note) contains "### Uncategorized" pull requests, those pull requests don't have a valid kind label(`kind/feature`, etc.).

View File

@@ -245,7 +245,7 @@ cilium_operator_extra_volume_mounts:
## Choose Cilium version ## Choose Cilium version
```yml ```yml
cilium_version: "1.19.3" cilium_version: "1.20.0"
``` ```
## Add variable to config ## Add variable to config

View File

@@ -157,20 +157,20 @@ Example command to filter and apply only DNS configuration tasks and skip
everything else related to host OS configuration and downloading images of containers: everything else related to host OS configuration and downloading images of containers:
```ShellSession ```ShellSession
ansible-playbook -i inventory/sample/hosts.ini cluster.yml --tags preinstall,facts --skip-tags=download,bootstrap_os ansible-playbook -i inventory/sample/inventory.ini cluster.yml --tags preinstall,facts --skip-tags=download,bootstrap_os
``` ```
And this play only removes the K8s cluster DNS resolver IP from hosts' /etc/resolv.conf files: And this play only removes the K8s cluster DNS resolver IP from hosts' /etc/resolv.conf files:
```ShellSession ```ShellSession
ansible-playbook -i inventory/sample/hosts.ini -e dns_mode='none' cluster.yml --tags resolvconf ansible-playbook -i inventory/sample/inventory.ini -e dns_mode='none' cluster.yml --tags resolvconf
``` ```
And this prepares all container images locally (at the ansible runner node) without installing And this prepares all container images locally (at the ansible runner node) without installing
or upgrading related stuff or trying to upload container to K8s cluster nodes: or upgrading related stuff or trying to upload container to K8s cluster nodes:
```ShellSession ```ShellSession
ansible-playbook -i inventory/sample/hosts.ini cluster.yml \ ansible-playbook -i inventory/sample/inventory.ini cluster.yml \
-e download_run_once=true -e download_localhost=true \ -e download_run_once=true -e download_localhost=true \
--tags download --skip-tags upload,upgrade --tags download --skip-tags upload,upgrade
``` ```

View File

@@ -62,7 +62,7 @@ Once the configuration is set, you can execute the playbook again to apply the n
```ShellSession ```ShellSession
cd kubespray cd kubespray
ansible-playbook -i inventory/sample/hosts.ini -b -v cluster.yml ansible-playbook -i inventory/sample/inventory.ini -b -v cluster.yml
``` ```
You'll find some useful examples [here](https://github.com/kubernetes/cloud-provider-vsphere/blob/master/docs/book/tutorials/kubernetes-on-vsphere-with-kubeadm.md#sample-manifests-to-test-csi-driver-functionality) to test your configuration. You'll find some useful examples [here](https://github.com/kubernetes/cloud-provider-vsphere/blob/master/docs/book/tutorials/kubernetes-on-vsphere-with-kubeadm.md#sample-manifests-to-test-csi-driver-functionality) to test your configuration.
@@ -82,7 +82,7 @@ If you intend to leverage the [zone and region node labeling](https://kubernetes
### Kubespray configuration (deprecated) ### Kubespray configuration (deprecated)
First you must define the cloud provider in `inventory/sample/group_vars/all.yml` and set it to `vsphere`. First you must define the cloud provider in `inventory/sample/group_vars/all/all.yml` and set it to `vsphere`.
```yml ```yml
cloud_provider: vsphere cloud_provider: vsphere
@@ -128,7 +128,7 @@ Once the configuration is set, you can execute the playbook again to apply the n
```ShellSession ```ShellSession
cd kubespray cd kubespray
ansible-playbook -i inventory/sample/hosts.ini -b -v cluster.yml ansible-playbook -i inventory/sample/inventory.ini -b -v cluster.yml
``` ```
You'll find some useful examples [here](https://github.com/kubernetes/examples/tree/master/staging/volumes/vsphere) to test your configuration. You'll find some useful examples [here](https://github.com/kubernetes/examples/tree/master/staging/volumes/vsphere) to test your configuration.

View File

@@ -11,5 +11,5 @@ You can deploy instances in your cloud environment in several ways. Examples inc
With ansible-playbook command With ansible-playbook command
```ShellSession ```ShellSession
ansible-playbook -u smana -e ansible_ssh_user=admin -e cloud_provider=[aws|gce] -b --become-user=root -i inventory/single.cfg cluster.yml ansible-playbook -u smana -e ansible_ssh_user=admin -e cloud_provider=[aws|gce] -b --become-user=root -i inventory/sample/inventory.ini cluster.yml
``` ```

View File

@@ -11,10 +11,8 @@ amazon | :white_check_mark: | :x: | :x: | :x: | :x: | :x: | :x: |
debian11 | :white_check_mark: | :x: | :white_check_mark: | :x: | :x: | :x: | :white_check_mark: | debian11 | :white_check_mark: | :x: | :white_check_mark: | :x: | :x: | :x: | :white_check_mark: |
debian12 | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | :x: | :x: | :x: | debian12 | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | :x: | :x: | :x: |
debian13 | :white_check_mark: | :white_check_mark: | :x: | :x: | :x: | :x: | :x: | debian13 | :white_check_mark: | :white_check_mark: | :x: | :x: | :x: | :x: | :x: |
fedora39 | :white_check_mark: | :x: | :x: | :x: | :x: | :white_check_mark: | :x: | fedora42 | :white_check_mark: | :x: | :x: | :x: | :x: | :white_check_mark: | :x: |
fedora40 | :x: | :x: | :x: | :x: | :x: | :x: | :x: | fedora43 | :white_check_mark: | :x: | :x: | :x: | :x: | :white_check_mark: | :x: |
fedora41 | :white_check_mark: | :x: | :x: | :x: | :x: | :white_check_mark: | :x: |
fedora42 | :white_check_mark: | :x: | :x: | :x: | :x: | :x: | :x: |
flatcar4081 | :white_check_mark: | :x: | :x: | :x: | :x: | :x: | :x: | flatcar4081 | :white_check_mark: | :x: | :x: | :x: | :x: | :x: | :x: |
openeuler24 | :white_check_mark: | :x: | :x: | :x: | :x: | :x: | :x: | openeuler24 | :white_check_mark: | :x: | :x: | :x: | :x: | :x: | :x: |
rockylinux10 | :white_check_mark: | :white_check_mark: | :x: | :x: | :x: | :x: | :x: | rockylinux10 | :white_check_mark: | :white_check_mark: | :x: | :x: | :x: | :x: | :x: |
@@ -31,10 +29,8 @@ amazon | :x: | :x: | :x: | :x: | :x: | :x: | :x: |
debian11 | :x: | :x: | :x: | :x: | :x: | :x: | :x: | debian11 | :x: | :x: | :x: | :x: | :x: | :x: | :x: |
debian12 | :x: | :x: | :x: | :x: | :x: | :x: | :x: | debian12 | :x: | :x: | :x: | :x: | :x: | :x: | :x: |
debian13 | :x: | :x: | :x: | :x: | :x: | :x: | :x: | debian13 | :x: | :x: | :x: | :x: | :x: | :x: | :x: |
fedora39 | :white_check_mark: | :x: | :x: | :x: | :x: | :x: | :x: | fedora42 | :white_check_mark: | :x: | :x: | :x: | :x: | :x: | :x: |
fedora40 | :white_check_mark: | :x: | :x: | :x: | :x: | :x: | :x: | fedora43 | :white_check_mark: | :x: | :x: | :white_check_mark: | :x: | :x: | :x: |
fedora41 | :white_check_mark: | :x: | :x: | :x: | :x: | :x: | :x: |
fedora42 | :x: | :x: | :x: | :x: | :x: | :x: | :x: |
flatcar4081 | :x: | :x: | :x: | :x: | :x: | :x: | :x: | flatcar4081 | :x: | :x: | :x: | :x: | :x: | :x: | :x: |
openeuler24 | :x: | :x: | :x: | :x: | :x: | :x: | :x: | openeuler24 | :x: | :x: | :x: | :x: | :x: | :x: | :x: |
rockylinux10 | :x: | :x: | :x: | :x: | :x: | :x: | :x: | rockylinux10 | :x: | :x: | :x: | :x: | :x: | :x: | :x: |
@@ -51,10 +47,8 @@ amazon | :x: | :x: | :x: | :x: | :x: | :x: | :x: |
debian11 | :white_check_mark: | :x: | :x: | :x: | :x: | :x: | :x: | debian11 | :white_check_mark: | :x: | :x: | :x: | :x: | :x: | :x: |
debian12 | :white_check_mark: | :x: | :x: | :x: | :x: | :x: | :x: | debian12 | :white_check_mark: | :x: | :x: | :x: | :x: | :x: | :x: |
debian13 | :x: | :x: | :x: | :x: | :x: | :x: | :x: | debian13 | :x: | :x: | :x: | :x: | :x: | :x: | :x: |
fedora39 | :x: | :x: | :x: | :x: | :x: | :x: | :x: |
fedora40 | :white_check_mark: | :x: | :x: | :x: | :x: | :x: | :x: |
fedora41 | :x: | :x: | :x: | :x: | :x: | :x: | :x: |
fedora42 | :x: | :x: | :x: | :x: | :x: | :x: | :x: | fedora42 | :x: | :x: | :x: | :x: | :x: | :x: | :x: |
fedora43 | :white_check_mark: | :x: | :x: | :x: | :x: | :x: | :x: |
flatcar4081 | :x: | :x: | :x: | :x: | :x: | :x: | :x: | flatcar4081 | :x: | :x: | :x: | :x: | :x: | :x: | :x: |
openeuler24 | :x: | :x: | :x: | :x: | :x: | :x: | :x: | openeuler24 | :x: | :x: | :x: | :x: | :x: | :x: | :x: |
rockylinux10 | :x: | :x: | :x: | :x: | :x: | :x: | :x: | rockylinux10 | :x: | :x: | :x: | :x: | :x: | :x: | :x: |

View File

@@ -15,16 +15,15 @@ and [details on the inventory structure expected by Kubespray](/docs/ansible/inv
<your-favorite-editor> inventory/mycluster/inventory.ini <your-favorite-editor> inventory/mycluster/inventory.ini
# Review and change parameters under ``inventory/mycluster/group_vars`` # Review and change parameters under ``inventory/mycluster/group_vars``
<your-favorite-editor> inventory/mycluster/group_vars/all.yml # for every node, including etcd <your-favorite-editor> inventory/mycluster/group_vars/all/all.yml # for every node, including etcd
<your-favorite-editor> inventory/mycluster/group_vars/k8s_cluster.yml # for every node in the cluster (not etcd when it's separate) <your-favorite-editor> inventory/mycluster/group_vars/k8s_cluster/k8s-cluster.yml # for every node in the cluster (not etcd when it's separate)
<your-favorite-editor> inventory/mycluster/group_vars/kube_control_plane.yml # for the control plane <your-favorite-editor> inventory/mycluster/group_vars/k8s_cluster/kube_control_plane.yml # for the control plane
<your-favorite-editor> inventory/myclsuter/group_vars/kube_node.yml # for worker nodes
``` ```
## Installing the cluster ## Installing the cluster
```ShellSession ```ShellSession
ansible-playbook -i inventory/mycluster/ cluster.yml -b -v \ ansible-playbook -i inventory/mycluster/inventory.ini cluster.yml -b -v \
--private-key=~/.ssh/private_key --private-key=~/.ssh/private_key
``` ```
@@ -36,7 +35,7 @@ You may want to add worker, control plane or etcd nodes to your existing cluster
- Run the ansible-playbook command, substituting `cluster.yml` for `scale.yml`: - Run the ansible-playbook command, substituting `cluster.yml` for `scale.yml`:
```ShellSession ```ShellSession
ansible-playbook -i inventory/mycluster/hosts.yml scale.yml -b -v \ ansible-playbook -i inventory/mycluster/inventory.ini scale.yml -b -v \
--private-key=~/.ssh/private_key --private-key=~/.ssh/private_key
``` ```
@@ -54,7 +53,7 @@ is not working, you can remove the node and install it again.
Use `--extra-vars "node=<nodename>,<nodename2>"` to select the node(s) you want to delete. Use `--extra-vars "node=<nodename>,<nodename2>"` to select the node(s) you want to delete.
```ShellSession ```ShellSession
ansible-playbook -i inventory/mycluster/hosts.yml remove-node.yml -b -v \ ansible-playbook -i inventory/mycluster/inventory.ini remove-node.yml -b -v \
--private-key=~/.ssh/private_key \ --private-key=~/.ssh/private_key \
--extra-vars "node=nodename,nodename2" --extra-vars "node=nodename,nodename2"
``` ```
@@ -87,7 +86,7 @@ the Kubernetes [documentation](https://kubernetes.io/docs/tasks/access-applicati
The main client of Kubernetes is `kubectl`. It is installed on each kube_control_plane The main client of Kubernetes is `kubectl`. It is installed on each kube_control_plane
host and can optionally be configured on your ansible host by setting host and can optionally be configured on your ansible host by setting
`kubectl_localhost: true` and `kubeconfig_localhost: true` in the configuration: `kubectl_localhost: true` and `kubeconfig_localhost: true` in `inventory/mycluster/group_vars/k8s_cluster/k8s-cluster.yml`:
- If `kubectl_localhost` enabled, `kubectl` will download onto `/usr/local/bin/` and setup with bash completion. A helper script `inventory/mycluster/artifacts/kubectl.sh` also created for setup with below `admin.conf`. - If `kubectl_localhost` enabled, `kubectl` will download onto `/usr/local/bin/` and setup with bash completion. A helper script `inventory/mycluster/artifacts/kubectl.sh` also created for setup with below `admin.conf`.
- If `kubeconfig_localhost` enabled `admin.conf` will appear in the `inventory/mycluster/artifacts/` directory after deployment. - If `kubeconfig_localhost` enabled `admin.conf` will appear in the `inventory/mycluster/artifacts/` directory after deployment.

View File

@@ -223,7 +223,7 @@ that controller-0, controller-1 and controller-2 in the `kube_control_plane` gro
worker-0, worker-1 and worker-2 in the `kube_node` group. Add respective `ip` to the respective local VPC IP for each node. worker-0, worker-1 and worker-2 in the `kube_node` group. Add respective `ip` to the respective local VPC IP for each node.
The main configuration for the cluster is stored in The main configuration for the cluster is stored in
`inventory/mycluster/group_vars/k8s_cluster/k8s_cluster.yml`. In this file we `inventory/mycluster/group_vars/k8s_cluster/k8s-cluster.yml`. In this file we
will update the `supplementary_addresses_in_ssl_keys` with a list of the IP will update the `supplementary_addresses_in_ssl_keys` with a list of the IP
addresses of the controller nodes. In that way we can access the addresses of the controller nodes. In that way we can access the
kubernetes API server as an administrator from outside the VPC network. You kubernetes API server as an administrator from outside the VPC network. You
@@ -240,7 +240,7 @@ the kubernetes cluster, just change the 'false' to 'true' for
Now we will deploy the configuration: Now we will deploy the configuration:
```ShellSession ```ShellSession
ansible-playbook -i inventory/mycluster/ -u $USERNAME -b -v --private-key=~/.ssh/id_rsa cluster.yml ansible-playbook -i inventory/mycluster/inventory.ini -u $USERNAME -b -v --private-key=~/.ssh/id_rsa cluster.yml
``` ```
Ansible will now execute the playbook, this can take up to 20 minutes. Ansible will now execute the playbook, this can take up to 20 minutes.
@@ -594,7 +594,7 @@ If you want to keep the VMs and just remove the cluster state, you can simply
run another Ansible playbook: run another Ansible playbook:
```ShellSession ```ShellSession
ansible-playbook -i inventory/mycluster/ -u $USERNAME -b -v --private-key=~/.ssh/id_rsa reset.yml ansible-playbook -i inventory/mycluster/inventory.ini -u $USERNAME -b -v --private-key=~/.ssh/id_rsa reset.yml
``` ```
Resetting the cluster to the VMs original state usually takes about a couple Resetting the cluster to the VMs original state usually takes about a couple

View File

@@ -86,3 +86,12 @@ kube_vip_leaseduration: 30
kube_vip_renewdeadline: 20 kube_vip_renewdeadline: 20
kube_vip_retryperiod: 4 kube_vip_retryperiod: 4
``` ```
To expose [Prometheus metrics](https://kube-vip.io/docs/installation/flags/#environment-variables) from the kube-vip static pod, set `kube_vip_metrics_enabled`. `kube_vip_metrics_port` is an integer; the manifest sets `prometheus_server` to `:PORT` because kube-vip passes that value to Go's HTTP listen address (see [`servePrometheusHTTPServer` in kube-vip](https://github.com/kube-vip/kube-vip/blob/main/cmd/kube-vip.go)). The manifest `ports` entry uses the same number for tooling that reads the pod spec.
Kubespray defaults `kube_vip_metrics_port` to `2112`, matching upstream kube-vip's `--prometheusHTTPServer` default. Override it if your scrape config expects another port.
```yaml
kube_vip_metrics_enabled: true
# kube_vip_metrics_port: 2112
```

View File

@@ -35,6 +35,6 @@ If the RHEL hosts are already registered to a valid Red Hat support subscription
(Experimental in Kubespray CI) (Experimental in Kubespray CI)
The official Rocky Linux 10 cloud image does not include `kernel-module-extra`. Both Kube Proxy and CNI rely on this package, and since it relates to kernel version compatibility (which may require VM reboots, etc.), we haven't found an ideal solution. The official Rocky Linux 10 cloud image does not include `kernel-modules-extra`. Both Kube Proxy and CNI rely on this package, and since it relates to kernel version compatibility (which may require VM reboots, etc.), we haven't found an ideal solution.
However, some users report that it doesn't affect them (minimal version). Therefore, the Kubespray CI Rocky Linux 10 image is built by Kubespray maintainers using `diskimage-builder`. For detailed methods, please refer to [the comments](https://github.com/kubernetes-sigs/kubespray/pull/12355#issuecomment-3705400093). However, some users report that it doesn't affect them (minimal version). Therefore, the Kubespray CI Rocky Linux 10 image is built by Kubespray maintainers using `diskimage-builder`. For detailed methods, please refer to [the comments](https://github.com/kubernetes-sigs/kubespray/pull/12355#issuecomment-3705400093).

View File

@@ -26,13 +26,13 @@ If you wanted to upgrade just kube_version from v1.18.10 to v1.19.7, you could
deploy the following way: deploy the following way:
```ShellSession ```ShellSession
ansible-playbook cluster.yml -i inventory/sample/hosts.ini -e kube_version=1.18.10 -e upgrade_cluster_setup=true ansible-playbook cluster.yml -i inventory/sample/inventory.ini -e kube_version=1.18.10 -e upgrade_cluster_setup=true
``` ```
And then repeat with 1.19.7 as kube_version: And then repeat with 1.19.7 as kube_version:
```ShellSession ```ShellSession
ansible-playbook cluster.yml -i inventory/sample/hosts.ini -e kube_version=1.19.7 -e upgrade_cluster_setup=true ansible-playbook cluster.yml -i inventory/sample/inventory.ini -e kube_version=1.19.7 -e upgrade_cluster_setup=true
``` ```
The var ```-e upgrade_cluster_setup=true``` is needed to be set in order to migrate the deploys of e.g kube-apiserver inside the cluster immediately which is usually only done in the graceful upgrade. (Refer to [#4139](https://github.com/kubernetes-sigs/kubespray/issues/4139) and [#4736](https://github.com/kubernetes-sigs/kubespray/issues/4736)) The var ```-e upgrade_cluster_setup=true``` is needed to be set in order to migrate the deploys of e.g kube-apiserver inside the cluster immediately which is usually only done in the graceful upgrade. (Refer to [#4139](https://github.com/kubernetes-sigs/kubespray/issues/4139) and [#4736](https://github.com/kubernetes-sigs/kubespray/issues/4736))
@@ -46,7 +46,7 @@ existing cluster. That means there must be at least 1 kube_control_plane already
deployed. deployed.
```ShellSession ```ShellSession
ansible-playbook upgrade-cluster.yml -b -i inventory/sample/hosts.ini -e kube_version=1.19.7 ansible-playbook upgrade-cluster.yml -b -i inventory/sample/inventory.ini -e kube_version=1.19.7
``` ```
After a successful upgrade, the Server Version should be updated: After a successful upgrade, the Server Version should be updated:
@@ -60,7 +60,7 @@ Server Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.7", GitCom
You can control how many nodes are upgraded at the same time by modifying the ansible variable named `serial`, as explained [here](https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_strategies.html#setting-the-batch-size-with-serial). If you don't set this variable, it will upgrade the cluster nodes in batches of 20% of the available nodes. Setting `serial=1` would mean upgrade one node at a time. You can control how many nodes are upgraded at the same time by modifying the ansible variable named `serial`, as explained [here](https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_strategies.html#setting-the-batch-size-with-serial). If you don't set this variable, it will upgrade the cluster nodes in batches of 20% of the available nodes. Setting `serial=1` would mean upgrade one node at a time.
```ShellSession ```ShellSession
ansible-playbook upgrade-cluster.yml -b -i inventory/sample/hosts.ini -e kube_version=1.20.7 -e "serial=1" ansible-playbook upgrade-cluster.yml -b -i inventory/sample/inventory.ini -e kube_version=1.20.7 -e "serial=1"
``` ```
### Pausing the upgrade ### Pausing the upgrade
@@ -82,20 +82,20 @@ If you don't want to upgrade all nodes in one run, you can use `--limit` [patter
Before using `--limit` run playbook `facts.yml` without the limit to refresh facts cache for all nodes: Before using `--limit` run playbook `facts.yml` without the limit to refresh facts cache for all nodes:
```ShellSession ```ShellSession
ansible-playbook playbooks/facts.yml -b -i inventory/sample/hosts.ini ansible-playbook playbooks/facts.yml -b -i inventory/sample/inventory.ini
``` ```
After this upgrade control plane and etcd groups [#5147](https://github.com/kubernetes-sigs/kubespray/issues/5147): After this upgrade control plane and etcd groups [#5147](https://github.com/kubernetes-sigs/kubespray/issues/5147):
```ShellSession ```ShellSession
ansible-playbook upgrade-cluster.yml -b -i inventory/sample/hosts.ini -e kube_version=1.20.7 --limit "kube_control_plane:etcd" ansible-playbook upgrade-cluster.yml -b -i inventory/sample/inventory.ini -e kube_version=1.20.7 --limit "kube_control_plane:etcd"
``` ```
Now you can upgrade other nodes in any order and quantity: Now you can upgrade other nodes in any order and quantity:
```ShellSession ```ShellSession
ansible-playbook upgrade-cluster.yml -b -i inventory/sample/hosts.ini -e kube_version=1.20.7 --limit "node4:node6:node7:node12" ansible-playbook upgrade-cluster.yml -b -i inventory/sample/inventory.ini -e kube_version=1.20.7 --limit "node4:node6:node7:node12"
ansible-playbook upgrade-cluster.yml -b -i inventory/sample/hosts.ini -e kube_version=1.20.7 --limit "node5*" ansible-playbook upgrade-cluster.yml -b -i inventory/sample/inventory.ini -e kube_version=1.20.7 --limit "node5*"
``` ```
## Multiple upgrades ## Multiple upgrades
@@ -122,9 +122,9 @@ v2.24.0
v2.22.0 -> v2.23.2 -> v2.24.0 : ✓ v2.22.0 -> v2.23.2 -> v2.24.0 : ✓
v.22.0 -> v2.24.0 : ✕ v.22.0 -> v2.24.0 : ✕
Assuming you don't explicitly define a kubernetes version in your k8s_cluster.yml, you simply check out the next tag and run the upgrade-cluster.yml playbook Assuming you don't explicitly define a kubernetes version in your group_vars/k8s_cluster/k8s-cluster.yml, you simply check out the next tag and run the upgrade-cluster.yml playbook
* If you do define kubernetes version in your inventory (e.g. group_vars/k8s_cluster.yml) then either make sure to update it before running upgrade-cluster, or specify the new version you're upgrading to: `ansible-playbook -i inventory/mycluster/hosts.ini -b upgrade-cluster.yml -e kube_version=1.11.3` * If you do define kubernetes version in your inventory (e.g. group_vars/k8s_cluster/k8s-cluster.yml) then either make sure to update it before running upgrade-cluster, or specify the new version you're upgrading to: `ansible-playbook -i inventory/mycluster/inventory.ini -b upgrade-cluster.yml -e kube_version=1.11.3`
Otherwise, the upgrade will leave your cluster at the same k8s version defined in your inventory vars. Otherwise, the upgrade will leave your cluster at the same k8s version defined in your inventory vars.
@@ -155,7 +155,7 @@ HEAD is now at 05dabb7e Fix Bionic networking restart error #3430 (#3431)
# NOTE: May need to `pip3 install -r requirements.txt` when upgrading. # NOTE: May need to `pip3 install -r requirements.txt` when upgrading.
ansible-playbook -i inventory/mycluster/hosts.ini -b upgrade-cluster.yml ansible-playbook -i inventory/mycluster/inventory.ini -b upgrade-cluster.yml
... ...
@@ -178,7 +178,7 @@ Some deprecations between versions that mean you can't just upgrade straight fro
In this case, I set "kubeadm_enabled" to false, knowing that it is deprecated and removed by 2.9.0, to delay converting the cluster to kubeadm as long as I could. In this case, I set "kubeadm_enabled" to false, knowing that it is deprecated and removed by 2.9.0, to delay converting the cluster to kubeadm as long as I could.
```ShellSession ```ShellSession
$ ansible-playbook -i inventory/mycluster/hosts.ini -b upgrade-cluster.yml $ ansible-playbook -i inventory/mycluster/inventory.ini -b upgrade-cluster.yml
... ...
"msg": "DEPRECATION: non-kubeadm deployment is deprecated from v2.9. Will be removed in next release." "msg": "DEPRECATION: non-kubeadm deployment is deprecated from v2.9. Will be removed in next release."
... ...
@@ -196,7 +196,7 @@ $ git checkout v2.8.1
Previous HEAD position was 9051aa52 Fix ubuntu-contiv test failed (#3808) Previous HEAD position was 9051aa52 Fix ubuntu-contiv test failed (#3808)
HEAD is now at 2ac1c756 More Feature/2.8 backports for 2.8.1 (#3911) HEAD is now at 2ac1c756 More Feature/2.8 backports for 2.8.1 (#3911)
$ ansible-playbook -i inventory/mycluster/hosts.ini -b upgrade-cluster.yml $ ansible-playbook -i inventory/mycluster/inventory.ini -b upgrade-cluster.yml
... ...
"msg": "DEPRECATION: non-kubeadm deployment is deprecated from v2.9. Will be removed in next release." "msg": "DEPRECATION: non-kubeadm deployment is deprecated from v2.9. Will be removed in next release."
... ...
@@ -214,7 +214,7 @@ $ git checkout v2.8.2
Previous HEAD position was 2ac1c756 More Feature/2.8 backports for 2.8.1 (#3911) Previous HEAD position was 2ac1c756 More Feature/2.8 backports for 2.8.1 (#3911)
HEAD is now at 4167807f Upgrade to 1.12.5 (#4066) HEAD is now at 4167807f Upgrade to 1.12.5 (#4066)
$ ansible-playbook -i inventory/mycluster/hosts.ini -b upgrade-cluster.yml $ ansible-playbook -i inventory/mycluster/inventory.ini -b upgrade-cluster.yml
... ...
"msg": "DEPRECATION: non-kubeadm deployment is deprecated from v2.9. Will be removed in next release." "msg": "DEPRECATION: non-kubeadm deployment is deprecated from v2.9. Will be removed in next release."
... ...
@@ -232,7 +232,7 @@ $ git checkout v2.8.3
Previous HEAD position was 4167807f Upgrade to 1.12.5 (#4066) Previous HEAD position was 4167807f Upgrade to 1.12.5 (#4066)
HEAD is now at ea41fc5e backport cve-2019-5736 to release-2.8 (#4234) HEAD is now at ea41fc5e backport cve-2019-5736 to release-2.8 (#4234)
$ ansible-playbook -i inventory/mycluster/hosts.ini -b upgrade-cluster.yml $ ansible-playbook -i inventory/mycluster/inventory.ini -b upgrade-cluster.yml
... ...
"msg": "DEPRECATION: non-kubeadm deployment is deprecated from v2.9. Will be removed in next release." "msg": "DEPRECATION: non-kubeadm deployment is deprecated from v2.9. Will be removed in next release."
... ...
@@ -250,7 +250,7 @@ $ git checkout v2.8.4
Previous HEAD position was ea41fc5e backport cve-2019-5736 to release-2.8 (#4234) Previous HEAD position was ea41fc5e backport cve-2019-5736 to release-2.8 (#4234)
HEAD is now at 3901480b go to k8s 1.12.7 (#4400) HEAD is now at 3901480b go to k8s 1.12.7 (#4400)
$ ansible-playbook -i inventory/mycluster/hosts.ini -b upgrade-cluster.yml $ ansible-playbook -i inventory/mycluster/inventory.ini -b upgrade-cluster.yml
... ...
"msg": "DEPRECATION: non-kubeadm deployment is deprecated from v2.9. Will be removed in next release." "msg": "DEPRECATION: non-kubeadm deployment is deprecated from v2.9. Will be removed in next release."
... ...
@@ -268,7 +268,7 @@ $ git checkout v2.8.5
Previous HEAD position was 3901480b go to k8s 1.12.7 (#4400) Previous HEAD position was 3901480b go to k8s 1.12.7 (#4400)
HEAD is now at 6f97687d Release 2.8 robust san handling (#4478) HEAD is now at 6f97687d Release 2.8 robust san handling (#4478)
$ ansible-playbook -i inventory/mycluster/hosts.ini -b upgrade-cluster.yml $ ansible-playbook -i inventory/mycluster/inventory.ini -b upgrade-cluster.yml
... ...
"msg": "DEPRECATION: non-kubeadm deployment is deprecated from v2.9. Will be removed in next release." "msg": "DEPRECATION: non-kubeadm deployment is deprecated from v2.9. Will be removed in next release."
... ...
@@ -288,14 +288,14 @@ HEAD is now at a4e65c7c Upgrade to Ansible >2.7.0 (#4471)
``` ```
> **Warning** > **Warning**
> IMPORTANT: Some variable formats changed in the k8s_cluster.yml between 2.8.5 and 2.9.0 > IMPORTANT: Some variable formats changed in the group_vars/k8s_cluster/k8s-cluster.yml between 2.8.5 and 2.9.0
If you do not keep your inventory copy up to date, **your upgrade will fail** and your first master will be left non-functional until fixed and re-run. If you do not keep your inventory copy up to date, **your upgrade will fail** and your first master will be left non-functional until fixed and re-run.
It is at this point the cluster was upgraded from non-kubeadm to kubeadm as per the deprecation warning. It is at this point the cluster was upgraded from non-kubeadm to kubeadm as per the deprecation warning.
```ShellSession ```ShellSession
ansible-playbook -i inventory/mycluster/hosts.ini -b upgrade-cluster.yml ansible-playbook -i inventory/mycluster/inventory.ini -b upgrade-cluster.yml
... ...
@@ -320,7 +320,7 @@ $ git checkout v2.10.0
Previous HEAD position was a4e65c7c Upgrade to Ansible >2.7.0 (#4471) Previous HEAD position was a4e65c7c Upgrade to Ansible >2.7.0 (#4471)
HEAD is now at dcd9c950 Add etcd role dependency on kube user to avoid etcd role failure when running scale.yml with a fresh node. (#3240) (#4479) HEAD is now at dcd9c950 Add etcd role dependency on kube user to avoid etcd role failure when running scale.yml with a fresh node. (#3240) (#4479)
ansible-playbook -i inventory/mycluster/hosts.ini -b upgrade-cluster.yml ansible-playbook -i inventory/mycluster/inventory.ini -b upgrade-cluster.yml
... ...
@@ -372,49 +372,49 @@ hosts.
Upgrade docker: Upgrade docker:
```ShellSession ```ShellSession
ansible-playbook -b -i inventory/sample/hosts.ini cluster.yml --tags=docker ansible-playbook -b -i inventory/sample/inventory.ini cluster.yml --tags=docker
``` ```
Upgrade etcd: Upgrade etcd:
```ShellSession ```ShellSession
ansible-playbook -b -i inventory/sample/hosts.ini cluster.yml --tags=etcd ansible-playbook -b -i inventory/sample/inventory.ini cluster.yml --tags=etcd
``` ```
Upgrade etcd without rotating etcd certs: Upgrade etcd without rotating etcd certs:
```ShellSession ```ShellSession
ansible-playbook -b -i inventory/sample/hosts.ini cluster.yml --tags=etcd --limit=etcd --skip-tags=etcd-secrets ansible-playbook -b -i inventory/sample/inventory.ini cluster.yml --tags=etcd --limit=etcd --skip-tags=etcd-secrets
``` ```
Upgrade kubelet: Upgrade kubelet:
```ShellSession ```ShellSession
ansible-playbook -b -i inventory/sample/hosts.ini cluster.yml --tags=node --skip-tags=k8s-gen-certs ansible-playbook -b -i inventory/sample/inventory.ini cluster.yml --tags=node --skip-tags=k8s-gen-certs
``` ```
Upgrade Kubernetes master components: Upgrade Kubernetes master components:
```ShellSession ```ShellSession
ansible-playbook -b -i inventory/sample/hosts.ini cluster.yml --tags=master ansible-playbook -b -i inventory/sample/inventory.ini cluster.yml --tags=master
``` ```
Upgrade network plugins: Upgrade network plugins:
```ShellSession ```ShellSession
ansible-playbook -b -i inventory/sample/hosts.ini cluster.yml --tags=network ansible-playbook -b -i inventory/sample/inventory.ini cluster.yml --tags=network
``` ```
Upgrade all add-ons: Upgrade all add-ons:
```ShellSession ```ShellSession
ansible-playbook -b -i inventory/sample/hosts.ini cluster.yml --tags=apps ansible-playbook -b -i inventory/sample/inventory.ini cluster.yml --tags=apps
``` ```
Upgrade just helm (assuming `helm_enabled` is true): Upgrade just helm (assuming `helm_enabled` is true):
```ShellSession ```ShellSession
ansible-playbook -b -i inventory/sample/hosts.ini cluster.yml --tags=helm ansible-playbook -b -i inventory/sample/inventory.ini cluster.yml --tags=helm
``` ```
## Migrate from Docker to Containerd ## Migrate from Docker to Containerd
@@ -430,10 +430,12 @@ As of Kubespray 2.18.0, containerd is already the default container engine. If y
If you want to upgrade the APT or YUM packages while the nodes are cordoned, you can use: If you want to upgrade the APT or YUM packages while the nodes are cordoned, you can use:
```ShellSession ```ShellSession
ansible-playbook upgrade-cluster.yml -b -i inventory/sample/hosts.ini -e system_upgrade=true ansible-playbook upgrade-cluster.yml -b -i inventory/sample/inventory.ini -e system_upgrade=true
``` ```
Nodes will be rebooted when there are package upgrades (`system_upgrade_reboot: on-upgrade`). Nodes will be rebooted when there are package upgrades (`system_upgrade_reboot: on-upgrade`).
This can be changed to `always` or `never`. This can be changed to `always` or `never`.
Note: Downloads will happen twice unless `system_upgrade_reboot` is `never`. Note: Downloads will happen twice unless `system_upgrade_reboot` is `never`.
Debian based nodes can be cleaned of packages to reduce disk space usage with `system_upgrade_autoclean: true`

View File

@@ -28,11 +28,11 @@ Everything done here requires full root access to every node.
Before you begin, adjust your inventory: Before you begin, adjust your inventory:
```yaml ```yaml
# Filename: k8s_cluster/k8s-cluster.yml # Filename: group_vars/k8s_cluster/k8s-cluster.yml
resolvconf_mode: host_resolvconf resolvconf_mode: host_resolvconf
container_manager: containerd container_manager: containerd
# Filename: etcd.yml # Filename: group_vars/all/etcd.yml
etcd_deployment_type: host etcd_deployment_type: host
``` ```
@@ -66,7 +66,7 @@ apt-get install pigz
### 5) Run `cluster.yml` playbook with `--limit` ### 5) Run `cluster.yml` playbook with `--limit`
```commandline ```commandline
ansible-playbook -i inventory/sample/hosts.ini cluster.yml --limit=NODENAME ansible-playbook -i inventory/sample/inventory.ini cluster.yml --limit=NODENAME
``` ```
This effectively reinstalls containerd and seems to place all config files in the right place. When this completes, kubelet will immediately pick up the new container engine and start spinning up DaemonSets and kube-system Pods. This effectively reinstalls containerd and seems to place all config files in the right place. When this completes, kubelet will immediately pick up the new container engine and start spinning up DaemonSets and kube-system Pods.

View File

@@ -2,7 +2,7 @@
namespace: kubernetes_sigs namespace: kubernetes_sigs
description: Deploy a production ready Kubernetes cluster description: Deploy a production ready Kubernetes cluster
name: kubespray name: kubespray
version: 2.31.0 version: 2.32.0
readme: README.md readme: README.md
authors: authors:
- The Kubespray maintainers (https://kubernetes.slack.com/channels/kubespray) - The Kubespray maintainers (https://kubernetes.slack.com/channels/kubespray)

View File

@@ -71,7 +71,7 @@
# skopeo_download_url: "{{ files_repo }}/github.com/lework/skopeo-binary/releases/download/v{{ skopeo_version }}/skopeo-linux-{{ image_arch }}" # skopeo_download_url: "{{ files_repo }}/github.com/lework/skopeo-binary/releases/download/v{{ skopeo_version }}/skopeo-linux-{{ image_arch }}"
# [Optional] containerd: only if you set container_runtime: containerd # [Optional] containerd: only if you set container_runtime: containerd
# containerd_download_url: "{{ files_repo }}/github.com/containerd/containerd/releases/download/v{{ containerd_version }}/containerd-{{ containerd_version }}-linux-{{ image_arch }}.tar.gz" # containerd_download_url: "{{ files_repo }}/github.com/containerd/containerd/releases/download/v{{ containerd_version }}/containerd-{{ 'static-' if containerd_static_binary }}{{ containerd_version }}-linux-{{ image_arch }}.tar.gz"
# nerdctl_download_url: "{{ files_repo }}/github.com/containerd/nerdctl/releases/download/v{{ nerdctl_version }}/nerdctl-{{ nerdctl_version }}-{{ ansible_system | lower }}-{{ image_arch }}.tar.gz" # nerdctl_download_url: "{{ files_repo }}/github.com/containerd/nerdctl/releases/download/v{{ nerdctl_version }}/nerdctl-{{ nerdctl_version }}-{{ ansible_system | lower }}-{{ image_arch }}.tar.gz"
# [Optional] runsc,containerd-shim-runsc: only if you set gvisor_enabled: true # [Optional] runsc,containerd-shim-runsc: only if you set gvisor_enabled: true

View File

@@ -42,13 +42,13 @@
## Tags for the Cinder CSI images ## Tags for the Cinder CSI images
## registry.k8s.io/sig-storage/csi-attacher ## registry.k8s.io/sig-storage/csi-attacher
# cinder_csi_attacher_image_tag: "v4.4.2" # cinder_csi_attacher_image_tag: "v4.5.1"
## registry.k8s.io/sig-storage/csi-provisioner ## registry.k8s.io/sig-storage/csi-provisioner
# cinder_csi_provisioner_image_tag: "v3.6.2" # cinder_csi_provisioner_image_tag: "v4.0.1"
## registry.k8s.io/sig-storage/csi-snapshotter ## registry.k8s.io/sig-storage/csi-snapshotter
# cinder_csi_snapshotter_image_tag: "v6.3.2" # cinder_csi_snapshotter_image_tag: "v7.0.2"
## registry.k8s.io/sig-storage/csi-resizer ## registry.k8s.io/sig-storage/csi-resizer
# cinder_csi_resizer_image_tag: "v1.9.2" # cinder_csi_resizer_image_tag: "v1.10.1"
## registry.k8s.io/sig-storage/livenessprobe ## registry.k8s.io/sig-storage/livenessprobe
# cinder_csi_livenessprobe_image_tag: "v2.11.0" # cinder_csi_livenessprobe_image_tag: "v2.11.0"

View File

@@ -201,6 +201,8 @@ kube_vip_enabled: false
# kube_vip_lb_fwdmethod: local # kube_vip_lb_fwdmethod: local
# kube_vip_bgp_sourceip: # kube_vip_bgp_sourceip:
# kube_vip_bgp_sourceif: # kube_vip_bgp_sourceif:
# kube_vip_metrics_enabled: false
# kube_vip_metrics_port: 2112
# Node Feature Discovery # Node Feature Discovery
node_feature_discovery_enabled: false node_feature_discovery_enabled: false

View File

@@ -293,7 +293,6 @@ default_kubelet_config_dir: "{{ kube_config_dir }}/dynamic_kubelet_dir"
## Eviction Thresholds to avoid system OOMs ## Eviction Thresholds to avoid system OOMs
# https://kubernetes.io/docs/tasks/administer-cluster/reserve-compute-resources/#eviction-thresholds # https://kubernetes.io/docs/tasks/administer-cluster/reserve-compute-resources/#eviction-thresholds
# eviction_hard: {} # eviction_hard: {}
# eviction_hard_control_plane: {}
# An alternative flexvolume plugin directory # An alternative flexvolume plugin directory
# kubelet_flexvolumes_plugins_dir: /usr/libexec/kubernetes/kubelet-plugins/volume/exec # kubelet_flexvolumes_plugins_dir: /usr/libexec/kubernetes/kubelet-plugins/volume/exec

View File

@@ -30,6 +30,14 @@
## Helm repository URL ## Helm repository URL
# custom_cni_chart_repository_url: "" # custom_cni_chart_repository_url: ""
# #
## Helm repository username, if authentication is required
## Username and password must be defined together
# custom_cni_chart_repository_username: "<helm_repository_username>"
#
## Helm repository password, if authentication is required
## Store sensitive values securely, for example using Ansible Vault
# custom_cni_chart_repository_password: "<helm_repository_password>"
#
## Helm chart reference - path to the chart in the repository ## Helm chart reference - path to the chart in the repository
# custom_cni_chart_ref: "" # custom_cni_chart_ref: ""
# #

View File

@@ -46,8 +46,8 @@ ADD ./tests/requirements.txt /kubespray/tests/requirements.txt
RUN update-alternatives --install /usr/bin/python python /usr/bin/python3 1 \ RUN update-alternatives --install /usr/bin/python python /usr/bin/python3 1 \
&& pip install --break-system-packages --ignore-installed --no-compile --no-cache-dir pip -U \ && pip install --break-system-packages --ignore-installed --no-compile --no-cache-dir pip -U \
&& pip install --break-system-packages --no-compile --no-cache-dir -r tests/requirements.txt \ && pip install --break-system-packages --no-compile --no-cache-dir -r tests/requirements.txt \
&& curl -L https://dl.k8s.io/release/v1.35.4/bin/linux/$(dpkg --print-architecture)/kubectl -o /usr/local/bin/kubectl \ && curl -L https://dl.k8s.io/release/v1.36.3/bin/linux/$(dpkg --print-architecture)/kubectl -o /usr/local/bin/kubectl \
&& echo $(curl -L https://dl.k8s.io/release/v1.35.4/bin/linux/$(dpkg --print-architecture)/kubectl.sha256) /usr/local/bin/kubectl | sha256sum --check \ && echo $(curl -L https://dl.k8s.io/release/v1.36.3/bin/linux/$(dpkg --print-architecture)/kubectl.sha256) /usr/local/bin/kubectl | sha256sum --check \
&& chmod a+x /usr/local/bin/kubectl \ && chmod a+x /usr/local/bin/kubectl \
# Install Vagrant # Install Vagrant
&& curl -LO https://releases.hashicorp.com/vagrant/${VAGRANT_VERSION}/vagrant_${VAGRANT_VERSION}-1_$(dpkg --print-architecture).deb \ && curl -LO https://releases.hashicorp.com/vagrant/${VAGRANT_VERSION}/vagrant_${VAGRANT_VERSION}-1_$(dpkg --print-architecture).deb \
@@ -55,5 +55,5 @@ RUN update-alternatives --install /usr/bin/python python /usr/bin/python3 1 \
&& rm vagrant_${VAGRANT_VERSION}-1_$(dpkg --print-architecture).deb \ && rm vagrant_${VAGRANT_VERSION}-1_$(dpkg --print-architecture).deb \
&& vagrant plugin install vagrant-libvirt \ && vagrant plugin install vagrant-libvirt \
# Install Kubernetes collections # Install Kubernetes collections
&& pip install --break-system-packages --no-compile --no-cache-dir kubernetes \ && pip install --break-system-packages --no-compile --no-cache-dir kubernetes==35.0.0 \
&& ansible-galaxy collection install kubernetes.core && ansible-galaxy collection install kubernetes.core:==6.4.0

View File

@@ -21,13 +21,6 @@
- name: "Check that python netaddr is installed" - name: "Check that python netaddr is installed"
assert: assert:
msg: "Python netaddr is not present" msg: "Python netaddr is not present"
that: "'127.0.0.1' | ansible.utils.ipaddr" that: "'127.0.0.1' | ansible.utils.ipaddr == '127.0.0.1'"
tags:
- check
- name: "Check that jinja is not too old (install via pip)"
assert:
msg: "Your Jinja version is too old, install via pip"
that: "{% set test %}It works{% endset %}{{ test == 'It works' }}"
tags: tags:
- check - check

View File

@@ -325,9 +325,8 @@ def main():
log_level=dict(default=0, type='int'), log_level=dict(default=0, type='int'),
state=dict(default='present', choices=['present', 'absent', 'latest', 'reloaded', 'stopped', 'exists']), state=dict(default='present', choices=['present', 'absent', 'latest', 'reloaded', 'stopped', 'exists']),
recursive=dict(default=False, type='bool'), recursive=dict(default=False, type='bool'),
), ),
mutually_exclusive=[['filename', 'list']] )
)
changed = False changed = False

View File

@@ -1,7 +1,11 @@
ansible==11.13.0 ansible==11.13.0
# Prevented passlib version conflicts
bcrypt<6
# Needed for community.crypto module # Needed for community.crypto module
cryptography==46.0.7 cryptography==50.0.0
# Needed for jinja2 json_query templating # Needed for jinja2 json_query templating
jmespath==1.1.0 jmespath==1.1.0
# Needed for ansible.utils.ipaddr # Needed for ansible.utils.ipaddr
netaddr==1.3.0 netaddr==1.3.0
# Needed for encrypt hash
passlib==1.7.4

View File

@@ -6,7 +6,7 @@
- name: Add proxy to yum.conf or dnf.conf if http_proxy is defined - name: Add proxy to yum.conf or dnf.conf if http_proxy is defined
community.general.ini_file: community.general.ini_file:
path: "{{ ((ansible_distribution_major_version | int) < 8) | ternary('/etc/yum.conf', '/etc/dnf/dnf.conf') }}" path: "{{ ((ansible_facts['distribution_major_version'] | int) < 8) | ternary('/etc/yum.conf', '/etc/dnf/dnf.conf') }}"
section: main section: main
option: proxy option: proxy
value: "{{ http_proxy | default(omit) }}" value: "{{ http_proxy | default(omit) }}"
@@ -20,28 +20,28 @@
- name: Install EPEL for Oracle Linux repo package - name: Install EPEL for Oracle Linux repo package
package: package:
name: "oracle-epel-release-el{{ ansible_distribution_major_version }}" name: "oracle-epel-release-el{{ ansible_facts['distribution_major_version'] }}"
state: present state: present
when: when:
- use_oracle_public_repo - use_oracle_public_repo
- '''ID="ol"'' in os_release.stdout_lines' - '''ID="ol"'' in os_release.stdout_lines'
- (ansible_distribution_version | float) >= 7.6 - (ansible_facts['distribution_version'] | float) >= 7.6
- name: Enable Oracle Linux repo - name: Enable Oracle Linux repo
community.general.ini_file: community.general.ini_file:
dest: "/etc/yum.repos.d/oracle-linux-ol{{ ansible_distribution_major_version }}.repo" dest: "/etc/yum.repos.d/oracle-linux-ol{{ ansible_facts['distribution_major_version'] }}.repo"
section: "ol{{ ansible_distribution_major_version }}_addons" section: "ol{{ ansible_facts['distribution_major_version'] }}_addons"
option: "{{ item.option }}" option: "{{ item.option }}"
value: "{{ item.value }}" value: "{{ item.value }}"
mode: "0644" mode: "0644"
with_items: with_items:
- { option: "name", value: "ol{{ ansible_distribution_major_version }}_addons" } - { option: "name", value: "ol{{ ansible_facts['distribution_major_version'] }}_addons" }
- { option: "enabled", value: "1" } - { option: "enabled", value: "1" }
- { option: "baseurl", value: "http://yum.oracle.com/repo/OracleLinux/OL{{ ansible_distribution_major_version }}/addons/$basearch/" } - { option: "baseurl", value: "http://yum.oracle.com/repo/OracleLinux/OL{{ ansible_facts['distribution_major_version'] }}/addons/$basearch/" }
when: when:
- use_oracle_public_repo - use_oracle_public_repo
- '''ID="ol"'' in os_release.stdout_lines' - '''ID="ol"'' in os_release.stdout_lines'
- (ansible_distribution_version | float) >= 7.6 - (ansible_facts['distribution_version'] | float) >= 7.6
- name: Enable Centos extra repo for Oracle Linux - name: Enable Centos extra repo for Oracle Linux
community.general.ini_file: community.general.ini_file:
@@ -51,15 +51,15 @@
value: "{{ item.value }}" value: "{{ item.value }}"
mode: "0644" mode: "0644"
with_items: with_items:
- { option: "name", value: "CentOS-{{ ansible_distribution_major_version }} - Extras" } - { option: "name", value: "CentOS-{{ ansible_facts['distribution_major_version'] }} - Extras" }
- { option: "enabled", value: "1" } - { option: "enabled", value: "1" }
- { option: "gpgcheck", value: "0" } - { option: "gpgcheck", value: "0" }
- { option: "baseurl", value: "http://mirror.centos.org/centos/{{ ansible_distribution_major_version }}/extras/$basearch/os/" } - { option: "baseurl", value: "http://mirror.centos.org/centos/{{ ansible_facts['distribution_major_version'] }}/extras/$basearch/os/" }
when: when:
- use_oracle_public_repo - use_oracle_public_repo
- '''ID="ol"'' in os_release.stdout_lines' - '''ID="ol"'' in os_release.stdout_lines'
- (ansible_distribution_version | float) >= 7.6 - (ansible_facts['distribution_version'] | float) >= 7.6
- (ansible_distribution_version | float) < 9 - (ansible_facts['distribution_version'] | float) < 9
# CentOS ships with python installed # CentOS ships with python installed

View File

@@ -6,7 +6,7 @@
- name: Add proxy to yum.conf or dnf.conf if http_proxy is defined - name: Add proxy to yum.conf or dnf.conf if http_proxy is defined
community.general.ini_file: community.general.ini_file:
path: "{{ ((ansible_distribution_major_version | int) < 8) | ternary('/etc/yum.conf', '/etc/dnf/dnf.conf') }}" path: "{{ ((ansible_facts['distribution_major_version'] | int) < 8) | ternary('/etc/yum.conf', '/etc/dnf/dnf.conf') }}"
section: main section: main
option: proxy option: proxy
value: "{{ http_proxy | default(omit) }}" value: "{{ http_proxy | default(omit) }}"
@@ -71,7 +71,7 @@
- "rhel-8-for-*-appstream-rpms" - "rhel-8-for-*-appstream-rpms"
state: "{{ 'enabled' if (rhel_enable_repos | bool) else 'disabled' }}" state: "{{ 'enabled' if (rhel_enable_repos | bool) else 'disabled' }}"
when: when:
- ansible_distribution_major_version == "8" - ansible_facts['distribution_major_version'] == "8"
- (not rh_subscription_status.changed) or (rh_subscription_username is defined) or (rh_subscription_org_id is defined) - (not rh_subscription_status.changed) or (rh_subscription_username is defined) or (rh_subscription_org_id is defined)
- name: Check presence of fastestmirror.conf - name: Check presence of fastestmirror.conf

View File

@@ -15,14 +15,14 @@
include_vars: "{{ item }}" include_vars: "{{ item }}"
with_first_found: with_first_found:
- files: - files:
- "{{ ansible_distribution | lower }}-{{ ansible_distribution_version | lower | replace('/', '_') }}.yml" - "{{ ansible_facts['distribution'] | lower }}-{{ ansible_facts['distribution_version'] | lower | replace('/', '_') }}.yml"
- "{{ ansible_distribution | lower }}-{{ ansible_distribution_release | lower }}-{{ host_architecture }}.yml" - "{{ ansible_facts['distribution'] | lower }}-{{ ansible_facts['distribution_release'] | lower }}-{{ host_architecture }}.yml"
- "{{ ansible_distribution | lower }}-{{ ansible_distribution_release | lower }}.yml" - "{{ ansible_facts['distribution'] | lower }}-{{ ansible_facts['distribution_release'] | lower }}.yml"
- "{{ ansible_distribution | lower }}-{{ ansible_distribution_major_version | lower | replace('/', '_') }}.yml" - "{{ ansible_facts['distribution'] | lower }}-{{ ansible_facts['distribution_major_version'] | lower | replace('/', '_') }}.yml"
- "{{ ansible_distribution | lower }}-{{ host_architecture }}.yml" - "{{ ansible_facts['distribution'] | lower }}-{{ host_architecture }}.yml"
- "{{ ansible_distribution | lower }}.yml" - "{{ ansible_facts['distribution'] | lower }}.yml"
- "{{ ansible_os_family | lower }}-{{ host_architecture }}.yml" - "{{ ansible_facts['os_family'] | lower }}-{{ host_architecture }}.yml"
- "{{ ansible_os_family | lower }}.yml" - "{{ ansible_facts['os_family'] | lower }}.yml"
- defaults.yml - defaults.yml
paths: paths:
- ../vars - ../vars

View File

@@ -1,4 +1,8 @@
{% if containerd_version is version('2.3.0', '>=') %}
version = 4
{% else %}
version = 3 version = 3
{% endif %}
root = "{{ containerd_storage_dir }}" root = "{{ containerd_storage_dir }}"
state = "{{ containerd_state_dir }}" state = "{{ containerd_state_dir }}"

View File

@@ -31,7 +31,7 @@ crio_registry_auth: []
crio_seccomp_profile: "" crio_seccomp_profile: ""
crio_selinux: "{{ (preinstall_selinux_state == 'enforcing') | lower }}" crio_selinux: "{{ (preinstall_selinux_state == 'enforcing') | lower }}"
crio_signature_policy: "{% if ansible_os_family == 'ClearLinux' %}/usr/share/defaults/crio/policy.json{% endif %}" crio_signature_policy: "{% if ansible_facts['os_family'] == 'ClearLinux' %}/usr/share/defaults/crio/policy.json{% endif %}"
# Set the pull progress timeout # Set the pull progress timeout
crio_pull_progress_timeout: "10s" crio_pull_progress_timeout: "10s"

View File

@@ -28,7 +28,7 @@
- name: Cri-o | special handling for amazon linux - name: Cri-o | special handling for amazon linux
import_tasks: "setup-amazon.yaml" import_tasks: "setup-amazon.yaml"
when: ansible_distribution in ["Amazon"] when: ansible_facts['distribution'] in ["Amazon"]
- name: Cri-o | build a list of crio runtimes with Katacontainers runtimes - name: Cri-o | build a list of crio runtimes with Katacontainers runtimes
set_fact: set_fact:
@@ -150,7 +150,7 @@
copy: copy:
src: "{{ local_release_dir }}/cri-o/contrib/crio.service" src: "{{ local_release_dir }}/cri-o/contrib/crio.service"
dest: /etc/systemd/system/crio.service dest: /etc/systemd/system/crio.service
mode: "0755" mode: "0644"
remote_src: true remote_src: true
notify: Restart crio notify: Restart crio
@@ -189,7 +189,7 @@
dest: /etc/containers/mounts.conf dest: /etc/containers/mounts.conf
mode: "0644" mode: "0644"
when: when:
- ansible_os_family == 'RedHat' - ansible_facts['os_family'] == 'RedHat'
notify: Restart crio notify: Restart crio
- name: Cri-o | create directory for oci hooks - name: Cri-o | create directory for oci hooks
@@ -220,7 +220,9 @@
dest: /etc/containers/storage.conf dest: /etc/containers/storage.conf
section: storage.options.overlay section: storage.options.overlay
option: mountopt option: mountopt
value: '{{ ''"nodev"'' if ansible_kernel is version(("4.18" if ansible_os_family == "RedHat" else "4.19"), "<") else ''"nodev,metacopy=on"'' }}' value: >-
{{ '"nodev"' if ansible_facts['kernel'] is version(('4.18' if ansible_facts['os_family'] == 'RedHat' else '4.19'), '<')
else '"nodev,metacopy=on"' }}
mode: "0644" mode: "0644"
- name: Cri-o | create directory registries configs - name: Cri-o | create directory registries configs

View File

@@ -4,8 +4,8 @@
- name: CRI-O | Kubic repo name for debian os family - name: CRI-O | Kubic repo name for debian os family
set_fact: set_fact:
crio_kubic_debian_repo_name: "{{ ((ansible_distribution == 'Ubuntu') | ternary('x', '')) ~ ansible_distribution ~ '_' ~ ansible_distribution_version }}" crio_kubic_debian_repo_name: "{{ ((ansible_facts['distribution'] == 'Ubuntu') | ternary('x', '')) ~ ansible_facts['distribution'] ~ '_' ~ ansible_facts['distribution_version'] }}"
when: ansible_os_family == "Debian" when: ansible_facts['os_family'] == "Debian"
tags: tags:
- reset_crio - reset_crio
@@ -30,7 +30,7 @@
yum_repository: yum_repository:
name: devel_kubic_libcontainers_stable name: devel_kubic_libcontainers_stable
state: absent state: absent
when: ansible_distribution in ["Amazon"] when: ansible_facts['distribution'] in ["Amazon"]
tags: tags:
- reset_crio - reset_crio
@@ -39,15 +39,15 @@
name: "devel_kubic_libcontainers_stable_cri-o_v{{ crio_version }}" name: "devel_kubic_libcontainers_stable_cri-o_v{{ crio_version }}"
state: absent state: absent
when: when:
- ansible_os_family == "RedHat" - ansible_facts['os_family'] == "RedHat"
- ansible_distribution not in ["Amazon", "Fedora"] - ansible_facts['distribution'] not in ["Amazon", "Fedora"]
tags: tags:
- reset_crio - reset_crio
- name: CRI-O | Run yum-clean-metadata - name: CRI-O | Run yum-clean-metadata
command: yum clean metadata command: yum clean metadata
when: when:
- ansible_os_family == "RedHat" - ansible_facts['os_family'] == "RedHat"
tags: tags:
- reset_crio - reset_crio

View File

@@ -49,11 +49,11 @@ containerd_package_info:
pkgs: pkgs:
# Fedora docker-ce repo # Fedora docker-ce repo
docker_fedora_repo_base_url: 'https://download.docker.com/linux/fedora/{{ ansible_distribution_major_version }}/$basearch/stable' docker_fedora_repo_base_url: 'https://download.docker.com/linux/fedora/{{ ansible_facts["distribution_major_version"] }}/$basearch/stable'
docker_fedora_repo_gpgkey: 'https://download.docker.com/linux/fedora/gpg' docker_fedora_repo_gpgkey: 'https://download.docker.com/linux/fedora/gpg'
# CentOS/RedHat docker-ce repo # CentOS/RedHat docker-ce repo
docker_rh_repo_base_url: 'https://download.docker.com/linux/rhel/{{ ansible_distribution_major_version }}/$basearch/stable' docker_rh_repo_base_url: 'https://download.docker.com/linux/rhel/{{ ansible_facts["distribution_major_version"] }}/$basearch/stable'
docker_rh_repo_gpgkey: 'https://download.docker.com/linux/rhel/gpg' docker_rh_repo_gpgkey: 'https://download.docker.com/linux/rhel/gpg'
# Ubuntu docker-ce repo # Ubuntu docker-ce repo

View File

@@ -10,7 +10,7 @@
service: service:
name: docker.socket name: docker.socket
state: restarted state: restarted
when: ansible_os_family in ['Flatcar', 'Flatcar Container Linux by Kinvolk'] or is_fedora_coreos when: ansible_facts['os_family'] in ['Flatcar', 'Flatcar Container Linux by Kinvolk'] or is_fedora_coreos
listen: Restart docker listen: Restart docker

View File

@@ -15,16 +15,16 @@
include_vars: "{{ item }}" include_vars: "{{ item }}"
with_first_found: with_first_found:
- files: - files:
- "{{ ansible_distribution | lower }}-{{ ansible_distribution_version | lower | replace('/', '_') }}.yml" - "{{ ansible_facts['distribution'] | lower }}-{{ ansible_facts['distribution_version'] | lower | replace('/', '_') }}.yml"
- "{{ ansible_distribution | lower }}-{{ ansible_distribution_release | lower }}-{{ host_architecture }}.yml" - "{{ ansible_facts['distribution'] | lower }}-{{ ansible_facts['distribution_release'] | lower }}-{{ host_architecture }}.yml"
- "{{ ansible_distribution | lower }}-{{ ansible_distribution_release | lower }}.yml" - "{{ ansible_facts['distribution'] | lower }}-{{ ansible_facts['distribution_release'] | lower }}.yml"
- "{{ ansible_distribution | lower }}-{{ ansible_distribution_major_version | lower | replace('/', '_') }}.yml" - "{{ ansible_facts['distribution'] | lower }}-{{ ansible_facts['distribution_major_version'] | lower | replace('/', '_') }}.yml"
- "{{ ansible_distribution | lower }}-{{ host_architecture }}.yml" - "{{ ansible_facts['distribution'] | lower }}-{{ host_architecture }}.yml"
- "{{ ansible_distribution | lower }}.yml" - "{{ ansible_facts['distribution'] | lower }}.yml"
- "{{ ansible_distribution.split(' ')[0] | lower }}.yml" - "{{ ansible_facts['distribution'].split(' ')[0] | lower }}.yml"
- "{{ ansible_os_family | lower }}-{{ ansible_distribution_major_version | lower | replace('/', '_') }}.yml" - "{{ ansible_facts['os_family'] | lower }}-{{ ansible_facts['distribution_major_version'] | lower | replace('/', '_') }}.yml"
- "{{ ansible_os_family | lower }}-{{ host_architecture }}.yml" - "{{ ansible_facts['os_family'] | lower }}-{{ host_architecture }}.yml"
- "{{ ansible_os_family | lower }}.yml" - "{{ ansible_facts['os_family'] | lower }}.yml"
- defaults.yml - defaults.yml
paths: paths:
- ../vars - ../vars
@@ -35,7 +35,7 @@
- name: Warn about Docker version on SUSE - name: Warn about Docker version on SUSE
debug: debug:
msg: "SUSE distributions always install Docker from the distro repos" msg: "SUSE distributions always install Docker from the distro repos"
when: ansible_pkg_mgr == 'zypper' when: ansible_facts['pkg_mgr'] == 'zypper'
- name: Gather DNS facts - name: Gather DNS facts
include_tasks: set_facts_dns.yml include_tasks: set_facts_dns.yml
@@ -58,33 +58,33 @@
delay: "{{ retry_stagger }}" delay: "{{ retry_stagger }}"
with_items: "{{ docker_repo_key_info.repo_keys }}" with_items: "{{ docker_repo_key_info.repo_keys }}"
environment: "{{ proxy_env }}" environment: "{{ proxy_env }}"
when: ansible_pkg_mgr == 'apt' when: ansible_facts['pkg_mgr'] == 'apt'
# ref to https://github.com/kubernetes-sigs/kubespray/issues/11086 & 12424 # ref to https://github.com/kubernetes-sigs/kubespray/issues/11086 & 12424
- name: Convert -backports sources to archive.debian.org for bullseye and older - name: Convert -backports sources to archive.debian.org for bullseye and older
replace: replace:
path: "{{ item }}" path: "{{ item }}"
regexp: '^(deb(?:-src)?\s+)(?:https?://)?(?:[^ ]+debian\.org)?([^ ]*/debian)(\s+{{ ansible_distribution_release }}-backports\b.*)' regexp: '^(deb(?:-src)?\s+)(?:https?://)?(?:[^ ]+debian\.org)?([^ ]*/debian)(\s+{{ ansible_facts["distribution_release"] }}-backports\b.*)'
replace: '\1http://archive.debian.org/debian\3' replace: '\1http://archive.debian.org/debian\3'
backup: true backup: true
loop: "{{ query('fileglob', '/etc/apt/sources.list') }}" loop: "{{ query('fileglob', '/etc/apt/sources.list') }}"
when: when:
- ansible_os_family == 'Debian' - ansible_facts['os_family'] == 'Debian'
- ansible_distribution_release in ['bullseye', 'buster'] - ansible_facts['distribution_release'] in ['bullseye', 'buster']
- name: Ensure docker-ce repository is enabled - name: Ensure docker-ce repository is enabled
apt_repository: apt_repository:
repo: "{{ item }}" repo: "{{ item }}"
state: present state: present
with_items: "{{ docker_repo_info.repos }}" with_items: "{{ docker_repo_info.repos }}"
when: ansible_pkg_mgr == 'apt' when: ansible_facts['pkg_mgr'] == 'apt'
- name: Configure docker repository on Fedora - name: Configure docker repository on Fedora
template: template:
src: "fedora_docker.repo.j2" src: "fedora_docker.repo.j2"
dest: "{{ yum_repo_dir }}/docker.repo" dest: "{{ yum_repo_dir }}/docker.repo"
mode: "0644" mode: "0644"
when: ansible_distribution == "Fedora" and not is_ostree when: ansible_facts['distribution'] == "Fedora" and not is_ostree
- name: Configure docker repository on RedHat/CentOS/OracleLinux/AlmaLinux/KylinLinux - name: Configure docker repository on RedHat/CentOS/OracleLinux/AlmaLinux/KylinLinux
template: template:
@@ -92,15 +92,15 @@
dest: "{{ yum_repo_dir }}/docker-ce.repo" dest: "{{ yum_repo_dir }}/docker-ce.repo"
mode: "0644" mode: "0644"
when: when:
- ansible_os_family == "RedHat" - ansible_facts['os_family'] == "RedHat"
- ansible_distribution != "Fedora" - ansible_facts['distribution'] != "Fedora"
- not is_ostree - not is_ostree
- name: Remove dpkg hold - name: Remove dpkg hold
dpkg_selections: dpkg_selections:
name: "{{ item }}" name: "{{ item }}"
selection: install selection: install
when: ansible_pkg_mgr == 'apt' when: ansible_facts['pkg_mgr'] == 'apt'
register: ret register: ret
changed_when: false changed_when: false
failed_when: failed_when:
@@ -131,7 +131,7 @@
delay: "{{ retry_stagger }}" delay: "{{ retry_stagger }}"
notify: Restart docker notify: Restart docker
when: when:
- not ansible_os_family in ["Flatcar", "Flatcar Container Linux by Kinvolk"] - not ansible_facts['os_family'] in ["Flatcar", "Flatcar Container Linux by Kinvolk"]
- not is_ostree - not is_ostree
- docker_package_info.pkgs | length > 0 - docker_package_info.pkgs | length > 0
@@ -140,7 +140,7 @@
dpkg_selections: dpkg_selections:
name: "{{ item }}" name: "{{ item }}"
selection: hold selection: hold
when: ansible_pkg_mgr == 'apt' when: ansible_facts['pkg_mgr'] == 'apt'
changed_when: false changed_when: false
with_items: with_items:
- "{{ containerd_package }}" - "{{ containerd_package }}"

View File

@@ -4,7 +4,7 @@
path: "{{ yum_repo_dir }}/docker.repo" path: "{{ yum_repo_dir }}/docker.repo"
state: absent state: absent
when: when:
- ansible_os_family == 'RedHat' - ansible_facts['os_family'] == 'RedHat'
- not is_ostree - not is_ostree
- name: Ensure old versions of Docker are not installed. | Debian - name: Ensure old versions of Docker are not installed. | Debian
@@ -12,7 +12,7 @@
name: '{{ docker_remove_packages_apt }}' name: '{{ docker_remove_packages_apt }}'
state: absent state: absent
when: when:
- ansible_os_family == 'Debian' - ansible_facts['os_family'] == 'Debian'
- (docker_versioned_pkg[docker_version | string] is search('docker-ce')) - (docker_versioned_pkg[docker_version | string] is search('docker-ce'))
@@ -21,7 +21,7 @@
name: '{{ podman_remove_packages_yum }}' name: '{{ podman_remove_packages_yum }}'
state: absent state: absent
when: when:
- ansible_os_family == 'RedHat' - ansible_facts['os_family'] == 'RedHat'
- (docker_versioned_pkg[docker_version | string] is search('docker-ce')) - (docker_versioned_pkg[docker_version | string] is search('docker-ce'))
- not is_ostree - not is_ostree
@@ -31,6 +31,6 @@
name: '{{ docker_remove_packages_yum }}' name: '{{ docker_remove_packages_yum }}'
state: absent state: absent
when: when:
- ansible_os_family == 'RedHat' - ansible_facts['os_family'] == 'RedHat'
- (docker_versioned_pkg[docker_version | string] is search('docker-ce')) - (docker_versioned_pkg[docker_version | string] is search('docker-ce'))
- not is_ostree - not is_ostree

View File

@@ -46,7 +46,7 @@
dpkg_selections: dpkg_selections:
name: "{{ item }}" name: "{{ item }}"
selection: install selection: install
when: ansible_pkg_mgr == 'apt' when: ansible_facts['pkg_mgr'] == 'apt'
changed_when: false changed_when: false
with_items: with_items:
- "{{ docker_packages_list }}" - "{{ docker_packages_list }}"
@@ -61,7 +61,7 @@
- "{{ docker_packages_list }}" - "{{ docker_packages_list }}"
- "{{ containerd_package }}" - "{{ containerd_package }}"
when: when:
- not ansible_os_family in ["Flatcar", "Flatcar Container Linux by Kinvolk"] - not ansible_facts['os_family'] in ["Flatcar", "Flatcar Container Linux by Kinvolk"]
- not is_ostree - not is_ostree
- docker_packages_list | length > 0 - docker_packages_list | length > 0
@@ -70,21 +70,21 @@
repo: "{{ item }}" repo: "{{ item }}"
state: absent state: absent
with_items: "{{ docker_repo_info.repos }}" with_items: "{{ docker_repo_info.repos }}"
when: ansible_pkg_mgr == 'apt' when: ansible_facts['pkg_mgr'] == 'apt'
- name: Docker | Remove docker repository on Fedora - name: Docker | Remove docker repository on Fedora
file: file:
name: "{{ yum_repo_dir }}/docker.repo" name: "{{ yum_repo_dir }}/docker.repo"
state: absent state: absent
when: ansible_distribution == "Fedora" and not is_ostree when: ansible_facts['distribution'] == "Fedora" and not is_ostree
- name: Docker | Remove docker repository on RedHat/CentOS/Oracle/AlmaLinux Linux - name: Docker | Remove docker repository on RedHat/CentOS/Oracle/AlmaLinux Linux
file: file:
name: "{{ yum_repo_dir }}/docker-ce.repo" name: "{{ yum_repo_dir }}/docker-ce.repo"
state: absent state: absent
when: when:
- ansible_os_family == "RedHat" - ansible_facts['os_family'] == "RedHat"
- ansible_distribution != "Fedora" - ansible_facts['distribution'] != "Fedora"
- not is_ostree - not is_ostree
- name: Docker | Remove docker configuration files - name: Docker | Remove docker configuration files

View File

@@ -21,7 +21,7 @@
register: docker_service_file register: docker_service_file
notify: Restart docker notify: Restart docker
when: when:
- not ansible_os_family in ["Flatcar", "Flatcar Container Linux by Kinvolk"] - not ansible_facts['os_family'] in ["Flatcar", "Flatcar Container Linux by Kinvolk"]
- not is_fedora_coreos - not is_fedora_coreos
- name: Write docker options systemd drop-in - name: Write docker options systemd drop-in

View File

@@ -4,7 +4,7 @@ Environment="DOCKER_OPTS={{ docker_options|default('') }} --iptables={{ docker_i
{% for i in docker_insecure_registries %}--insecure-registry={{ i }} {% endfor %} \ {% for i in docker_insecure_registries %}--insecure-registry={{ i }} {% endfor %} \
{% for i in docker_registry_mirrors %}--registry-mirror={{ i }} {% endfor %} \ {% for i in docker_registry_mirrors %}--registry-mirror={{ i }} {% endfor %} \
--data-root={{ docker_daemon_graph }} \ --data-root={{ docker_daemon_graph }} \
{% if ansible_os_family not in ["openSUSE Leap", "openSUSE Tumbleweed", "Suse"] %}{{ docker_log_opts }}{% endif %}" {% if ansible_facts['os_family'] not in ["openSUSE Leap", "openSUSE Tumbleweed", "Suse"] %}{{ docker_log_opts }}{% endif %}"
{% if docker_mount_flags is defined and docker_mount_flags != "" %} {% if docker_mount_flags is defined and docker_mount_flags != "" %}
MountFlags={{ docker_mount_flags }} MountFlags={{ docker_mount_flags }}

View File

@@ -2,7 +2,7 @@
Description=Docker Application Container Engine Description=Docker Application Container Engine
Documentation=http://docs.docker.com Documentation=http://docs.docker.com
After=network.target docker.socket containerd.service lvm2-monitor.service SuSEfirewall2.service After=network.target docker.socket containerd.service lvm2-monitor.service SuSEfirewall2.service
{% if ansible_os_family != "Suse" %} {% if ansible_facts['os_family'] != "Suse" %}
BindsTo=containerd.service BindsTo=containerd.service
{% endif %} {% endif %}
Wants=docker.socket Wants=docker.socket
@@ -17,7 +17,7 @@ ExecReload=/bin/kill -s HUP $MAINPID
Delegate=yes Delegate=yes
KillMode=process KillMode=process
ExecStart={{ docker_bin_dir }}/dockerd \ ExecStart={{ docker_bin_dir }}/dockerd \
{% if ansible_os_family == "Suse" %} {% if ansible_facts['os_family'] == "Suse" %}
--add-runtime oci=/usr/sbin/docker-runc \ --add-runtime oci=/usr/sbin/docker-runc \
{% endif %} {% endif %}
$DOCKER_OPTS \ $DOCKER_OPTS \

View File

@@ -42,49 +42,49 @@ containerd_versioned_pkg:
# https://download.docker.com/linux/debian/ # https://download.docker.com/linux/debian/
docker_versioned_pkg: docker_versioned_pkg:
'latest': docker-ce 'latest': docker-ce
'18.09': docker-ce=5:18.09.9~3-0~debian-{{ ansible_distribution_release | lower }} '18.09': docker-ce=5:18.09.9~3-0~debian-{{ ansible_facts['distribution_release'] | lower }}
'19.03': docker-ce=5:19.03.15~3-0~debian-{{ ansible_distribution_release | lower }} '19.03': docker-ce=5:19.03.15~3-0~debian-{{ ansible_facts['distribution_release'] | lower }}
'20.10': docker-ce=5:20.10.20~3-0~debian-{{ ansible_distribution_release | lower }} '20.10': docker-ce=5:20.10.20~3-0~debian-{{ ansible_facts['distribution_release'] | lower }}
'23.0': docker-ce=5:23.0.6-1~debian.{{ ansible_distribution_major_version }}~{{ ansible_distribution_release | lower }} '23.0': docker-ce=5:23.0.6-1~debian.{{ ansible_facts['distribution_major_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'24.0': docker-ce=5:24.0.9-1~debian.{{ ansible_distribution_major_version }}~{{ ansible_distribution_release | lower }} '24.0': docker-ce=5:24.0.9-1~debian.{{ ansible_facts['distribution_major_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'25.0': docker-ce=5:25.0.5-1~debian.{{ ansible_distribution_major_version }}~{{ ansible_distribution_release | lower }} '25.0': docker-ce=5:25.0.5-1~debian.{{ ansible_facts['distribution_major_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'26.0': docker-ce=5:26.0.2-1~debian.{{ ansible_distribution_major_version }}~{{ ansible_distribution_release | lower }} '26.0': docker-ce=5:26.0.2-1~debian.{{ ansible_facts['distribution_major_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'26.1': docker-ce=5:26.1.4-1~debian.{{ ansible_distribution_major_version }}~{{ ansible_distribution_release | lower }} '26.1': docker-ce=5:26.1.4-1~debian.{{ ansible_facts['distribution_major_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'27.0': docker-ce=5:27.0.3-1~debian.{{ ansible_distribution_major_version }}~{{ ansible_distribution_release | lower }} '27.0': docker-ce=5:27.0.3-1~debian.{{ ansible_facts['distribution_major_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'27.1': docker-ce=5:27.1.2-1~debian.{{ ansible_distribution_major_version }}~{{ ansible_distribution_release | lower }} '27.1': docker-ce=5:27.1.2-1~debian.{{ ansible_facts['distribution_major_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'27.2': docker-ce=5:27.2.1-1~debian.{{ ansible_distribution_major_version }}~{{ ansible_distribution_release | lower }} '27.2': docker-ce=5:27.2.1-1~debian.{{ ansible_facts['distribution_major_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'27.3': docker-ce=5:27.3.1-1~debian.{{ ansible_distribution_major_version }}~{{ ansible_distribution_release | lower }} '27.3': docker-ce=5:27.3.1-1~debian.{{ ansible_facts['distribution_major_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'27.4': docker-ce=5:27.4.1-1~debian.{{ ansible_distribution_major_version }}~{{ ansible_distribution_release | lower }} '27.4': docker-ce=5:27.4.1-1~debian.{{ ansible_facts['distribution_major_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'27.5': docker-ce=5:27.5.1-1~debian.{{ ansible_distribution_major_version }}~{{ ansible_distribution_release | lower }} '27.5': docker-ce=5:27.5.1-1~debian.{{ ansible_facts['distribution_major_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'28.0': docker-ce=5:28.0.4-1~debian.{{ ansible_distribution_major_version }}~{{ ansible_distribution_release | lower }} '28.0': docker-ce=5:28.0.4-1~debian.{{ ansible_facts['distribution_major_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'28.1': docker-ce=5:28.1.1-1~debian.{{ ansible_distribution_major_version }}~{{ ansible_distribution_release | lower }} '28.1': docker-ce=5:28.1.1-1~debian.{{ ansible_facts['distribution_major_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'28.2': docker-ce=5:28.2.2-1~debian.{{ ansible_distribution_major_version }}~{{ ansible_distribution_release | lower }} '28.2': docker-ce=5:28.2.2-1~debian.{{ ansible_facts['distribution_major_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'28.3': docker-ce=5:28.3.3-1~debian.{{ ansible_distribution_major_version }}~{{ ansible_distribution_release | lower }} '28.3': docker-ce=5:28.3.3-1~debian.{{ ansible_facts['distribution_major_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'stable': docker-ce=5:28.3.3-1~debian.{{ ansible_distribution_major_version }}~{{ ansible_distribution_release | lower }} 'stable': docker-ce=5:28.3.3-1~debian.{{ ansible_facts['distribution_major_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'edge': docker-ce=5:28.3.3-1~debian.{{ ansible_distribution_major_version }}~{{ ansible_distribution_release | lower }} 'edge': docker-ce=5:28.3.3-1~debian.{{ ansible_facts['distribution_major_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
docker_cli_versioned_pkg: docker_cli_versioned_pkg:
'latest': docker-ce-cli 'latest': docker-ce-cli
'18.09': docker-ce-cli=5:18.09.9~3-0~debian-{{ ansible_distribution_release | lower }} '18.09': docker-ce-cli=5:18.09.9~3-0~debian-{{ ansible_facts['distribution_release'] | lower }}
'19.03': docker-ce-cli=5:19.03.15~3-0~debian-{{ ansible_distribution_release | lower }} '19.03': docker-ce-cli=5:19.03.15~3-0~debian-{{ ansible_facts['distribution_release'] | lower }}
'20.10': docker-ce-cli=5:20.10.20~3-0~debian-{{ ansible_distribution_release | lower }} '20.10': docker-ce-cli=5:20.10.20~3-0~debian-{{ ansible_facts['distribution_release'] | lower }}
'23.0': docker-ce-cli=5:23.0.6-1~debian.{{ ansible_distribution_major_version }}~{{ ansible_distribution_release | lower }} '23.0': docker-ce-cli=5:23.0.6-1~debian.{{ ansible_facts['distribution_major_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'24.0': docker-ce-cli=5:24.0.9-1~debian.{{ ansible_distribution_major_version }}~{{ ansible_distribution_release | lower }} '24.0': docker-ce-cli=5:24.0.9-1~debian.{{ ansible_facts['distribution_major_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'25.0': docker-ce-cli=5:25.0.5-1~debian.{{ ansible_distribution_major_version }}~{{ ansible_distribution_release | lower }} '25.0': docker-ce-cli=5:25.0.5-1~debian.{{ ansible_facts['distribution_major_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'26.0': docker-ce-cli=5:26.0.2-1~debian.{{ ansible_distribution_major_version }}~{{ ansible_distribution_release | lower }} '26.0': docker-ce-cli=5:26.0.2-1~debian.{{ ansible_facts['distribution_major_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'26.1': docker-ce-cli=5:26.1.4-1~debian.{{ ansible_distribution_major_version }}~{{ ansible_distribution_release | lower }} '26.1': docker-ce-cli=5:26.1.4-1~debian.{{ ansible_facts['distribution_major_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'27.0': docker-ce-cli=5:27.0.3-1~debian.{{ ansible_distribution_major_version }}~{{ ansible_distribution_release | lower }} '27.0': docker-ce-cli=5:27.0.3-1~debian.{{ ansible_facts['distribution_major_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'27.1': docker-ce-cli=5:27.1.2-1~debian.{{ ansible_distribution_major_version }}~{{ ansible_distribution_release | lower }} '27.1': docker-ce-cli=5:27.1.2-1~debian.{{ ansible_facts['distribution_major_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'27.2': docker-ce-cli=5:27.2.1-1~debian.{{ ansible_distribution_major_version }}~{{ ansible_distribution_release | lower }} '27.2': docker-ce-cli=5:27.2.1-1~debian.{{ ansible_facts['distribution_major_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'27.3': docker-ce-cli=5:27.3.1-1~debian.{{ ansible_distribution_major_version }}~{{ ansible_distribution_release | lower }} '27.3': docker-ce-cli=5:27.3.1-1~debian.{{ ansible_facts['distribution_major_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'27.4': docker-ce-cli=5:27.4.1-1~debian.{{ ansible_distribution_major_version }}~{{ ansible_distribution_release | lower }} '27.4': docker-ce-cli=5:27.4.1-1~debian.{{ ansible_facts['distribution_major_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'27.5': docker-ce-cli=5:27.5.1-1~debian.{{ ansible_distribution_major_version }}~{{ ansible_distribution_release | lower }} '27.5': docker-ce-cli=5:27.5.1-1~debian.{{ ansible_facts['distribution_major_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'28.0': docker-ce-cli=5:28.0.4-1~debian.{{ ansible_distribution_major_version }}~{{ ansible_distribution_release | lower }} '28.0': docker-ce-cli=5:28.0.4-1~debian.{{ ansible_facts['distribution_major_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'28.1': docker-ce-cli=5:28.1.1-1~debian.{{ ansible_distribution_major_version }}~{{ ansible_distribution_release | lower }} '28.1': docker-ce-cli=5:28.1.1-1~debian.{{ ansible_facts['distribution_major_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'28.2': docker-ce-cli=5:28.2.2-1~debian.{{ ansible_distribution_major_version }}~{{ ansible_distribution_release | lower }} '28.2': docker-ce-cli=5:28.2.2-1~debian.{{ ansible_facts['distribution_major_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'28.3': docker-ce-cli=5:28.3.3-1~debian.{{ ansible_distribution_major_version }}~{{ ansible_distribution_release | lower }} '28.3': docker-ce-cli=5:28.3.3-1~debian.{{ ansible_facts['distribution_major_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'stable': docker-ce-cli=5:28.3.3-1~debian.{{ ansible_distribution_major_version }}~{{ ansible_distribution_release | lower }} 'stable': docker-ce-cli=5:28.3.3-1~debian.{{ ansible_facts['distribution_major_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'edge': docker-ce-cli=5:28.3.3-1~debian.{{ ansible_distribution_major_version }}~{{ ansible_distribution_release | lower }} 'edge': docker-ce-cli=5:28.3.3-1~debian.{{ ansible_facts['distribution_major_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
docker_package_info: docker_package_info:
pkgs: pkgs:
@@ -101,5 +101,5 @@ docker_repo_info:
repos: repos:
- > - >
deb {{ docker_debian_repo_base_url }} deb {{ docker_debian_repo_base_url }}
{{ ansible_distribution_release | lower }} {{ ansible_facts['distribution_release'] | lower }}
stable stable

View File

@@ -2,87 +2,87 @@
# containerd versions are only relevant for docker # containerd versions are only relevant for docker
containerd_versioned_pkg: containerd_versioned_pkg:
'latest': "{{ containerd_package }}" 'latest': "{{ containerd_package }}"
'1.3.7': "{{ containerd_package }}-1.3.7-3.1.fc{{ ansible_distribution_major_version }}" '1.3.7': "{{ containerd_package }}-1.3.7-3.1.fc{{ ansible_facts['distribution_major_version'] }}"
'1.3.9': "{{ containerd_package }}-1.3.9-3.1.fc{{ ansible_distribution_major_version }}" '1.3.9': "{{ containerd_package }}-1.3.9-3.1.fc{{ ansible_facts['distribution_major_version'] }}"
'1.4.3': "{{ containerd_package }}-1.4.3-3.2.fc{{ ansible_distribution_major_version }}" '1.4.3': "{{ containerd_package }}-1.4.3-3.2.fc{{ ansible_facts['distribution_major_version'] }}"
'1.4.4': "{{ containerd_package }}-1.4.4-3.1.fc{{ ansible_distribution_major_version }}" '1.4.4': "{{ containerd_package }}-1.4.4-3.1.fc{{ ansible_facts['distribution_major_version'] }}"
'1.4.6': "{{ containerd_package }}-1.4.6-3.1.fc{{ ansible_distribution_major_version }}" '1.4.6': "{{ containerd_package }}-1.4.6-3.1.fc{{ ansible_facts['distribution_major_version'] }}"
'1.4.9': "{{ containerd_package }}-1.4.9-3.1.fc{{ ansible_distribution_major_version }}" '1.4.9': "{{ containerd_package }}-1.4.9-3.1.fc{{ ansible_facts['distribution_major_version'] }}"
'1.4.12': "{{ containerd_package }}-1.4.12-3.1.fc{{ ansible_distribution_major_version }}" '1.4.12': "{{ containerd_package }}-1.4.12-3.1.fc{{ ansible_facts['distribution_major_version'] }}"
'1.6.4': "{{ containerd_package }}-1.6.4-3.1.fc{{ ansible_distribution_major_version }}" '1.6.4': "{{ containerd_package }}-1.6.4-3.1.fc{{ ansible_facts['distribution_major_version'] }}"
'1.6.6': "{{ containerd_package }}-1.6.6-3.1.fc{{ ansible_distribution_major_version }}" '1.6.6': "{{ containerd_package }}-1.6.6-3.1.fc{{ ansible_facts['distribution_major_version'] }}"
'1.6.7': "{{ containerd_package }}-1.6.7-3.1.fc{{ ansible_distribution_major_version }}" '1.6.7': "{{ containerd_package }}-1.6.7-3.1.fc{{ ansible_facts['distribution_major_version'] }}"
'1.6.8': "{{ containerd_package }}-1.6.8-3.1.fc{{ ansible_distribution_major_version }}" '1.6.8': "{{ containerd_package }}-1.6.8-3.1.fc{{ ansible_facts['distribution_major_version'] }}"
'1.6.9': "{{ containerd_package }}-1.6.9-3.1.fc{{ ansible_distribution_major_version }}" '1.6.9': "{{ containerd_package }}-1.6.9-3.1.fc{{ ansible_facts['distribution_major_version'] }}"
'1.6.10': "{{ containerd_package }}-1.6.10-3.1.fc{{ ansible_distribution_major_version }}" '1.6.10': "{{ containerd_package }}-1.6.10-3.1.fc{{ ansible_facts['distribution_major_version'] }}"
'1.6.11': "{{ containerd_package }}-1.6.11-3.1.fc{{ ansible_distribution_major_version }}" '1.6.11': "{{ containerd_package }}-1.6.11-3.1.fc{{ ansible_facts['distribution_major_version'] }}"
'1.6.12': "{{ containerd_package }}-1.6.12-3.1.fc{{ ansible_distribution_major_version }}" '1.6.12': "{{ containerd_package }}-1.6.12-3.1.fc{{ ansible_facts['distribution_major_version'] }}"
'1.6.13': "{{ containerd_package }}-1.6.13-3.1.fc{{ ansible_distribution_major_version }}" '1.6.13': "{{ containerd_package }}-1.6.13-3.1.fc{{ ansible_facts['distribution_major_version'] }}"
'1.6.14': "{{ containerd_package }}-1.6.14-3.1.fc{{ ansible_distribution_major_version }}" '1.6.14': "{{ containerd_package }}-1.6.14-3.1.fc{{ ansible_facts['distribution_major_version'] }}"
'1.6.15': "{{ containerd_package }}-1.6.15-3.1.fc{{ ansible_distribution_major_version }}" '1.6.15': "{{ containerd_package }}-1.6.15-3.1.fc{{ ansible_facts['distribution_major_version'] }}"
'1.6.16': "{{ containerd_package }}-1.6.16-3.1.fc{{ ansible_distribution_major_version }}" '1.6.16': "{{ containerd_package }}-1.6.16-3.1.fc{{ ansible_facts['distribution_major_version'] }}"
'1.6.18': "{{ containerd_package }}-1.6.18-3.1.fc{{ ansible_distribution_major_version }}" '1.6.18': "{{ containerd_package }}-1.6.18-3.1.fc{{ ansible_facts['distribution_major_version'] }}"
'1.6.28': "{{ containerd_package }}-1.6.28-3.2.fc{{ ansible_distribution_major_version }}" '1.6.28': "{{ containerd_package }}-1.6.28-3.2.fc{{ ansible_facts['distribution_major_version'] }}"
'1.6.31': "{{ containerd_package }}-1.6.31-3.1.fc{{ ansible_distribution_major_version }}" '1.6.31': "{{ containerd_package }}-1.6.31-3.1.fc{{ ansible_facts['distribution_major_version'] }}"
'1.6.32': "{{ containerd_package }}-1.6.32-3.1.fc{{ ansible_distribution_major_version }}" '1.6.32': "{{ containerd_package }}-1.6.32-3.1.fc{{ ansible_facts['distribution_major_version'] }}"
'1.6.33': "{{ containerd_package }}-1.6.33-3.1.fc{{ ansible_distribution_major_version }}" '1.6.33': "{{ containerd_package }}-1.6.33-3.1.fc{{ ansible_facts['distribution_major_version'] }}"
'1.7.18': "{{ containerd_package }}-1.7.18-3.1.fc{{ ansible_distribution_major_version }}" '1.7.18': "{{ containerd_package }}-1.7.18-3.1.fc{{ ansible_facts['distribution_major_version'] }}"
'1.7.19': "{{ containerd_package }}-1.7.19-3.1.fc{{ ansible_distribution_major_version }}" '1.7.19': "{{ containerd_package }}-1.7.19-3.1.fc{{ ansible_facts['distribution_major_version'] }}"
'1.7.20': "{{ containerd_package }}-1.7.20-3.1.fc{{ ansible_distribution_major_version }}" '1.7.20': "{{ containerd_package }}-1.7.20-3.1.fc{{ ansible_facts['distribution_major_version'] }}"
'1.7.21': "{{ containerd_package }}-1.7.21-3.1.fc{{ ansible_distribution_major_version }}" '1.7.21': "{{ containerd_package }}-1.7.21-3.1.fc{{ ansible_facts['distribution_major_version'] }}"
'1.7.22': "{{ containerd_package }}-1.7.22-3.1.fc{{ ansible_distribution_major_version }}" '1.7.22': "{{ containerd_package }}-1.7.22-3.1.fc{{ ansible_facts['distribution_major_version'] }}"
'1.7.23': "{{ containerd_package }}-1.7.23-3.1.fc{{ ansible_distribution_major_version }}" '1.7.23': "{{ containerd_package }}-1.7.23-3.1.fc{{ ansible_facts['distribution_major_version'] }}"
'1.7.24': "{{ containerd_package }}-1.7.24-3.1.fc{{ ansible_distribution_major_version }}" '1.7.24': "{{ containerd_package }}-1.7.24-3.1.fc{{ ansible_facts['distribution_major_version'] }}"
'1.7.25': "{{ containerd_package }}-1.7.25-3.1.fc{{ ansible_distribution_major_version }}" '1.7.25': "{{ containerd_package }}-1.7.25-3.1.fc{{ ansible_facts['distribution_major_version'] }}"
'1.7.26': "{{ containerd_package }}-1.7.26-3.1.fc{{ ansible_distribution_major_version }}" '1.7.26': "{{ containerd_package }}-1.7.26-3.1.fc{{ ansible_facts['distribution_major_version'] }}"
'1.7.27': "{{ containerd_package }}-1.7.27-3.1.fc{{ ansible_distribution_major_version }}" '1.7.27': "{{ containerd_package }}-1.7.27-3.1.fc{{ ansible_facts['distribution_major_version'] }}"
'stable': "{{ containerd_package }}-1.7.27-3.1.fc{{ ansible_distribution_major_version }}" 'stable': "{{ containerd_package }}-1.7.27-3.1.fc{{ ansible_facts['distribution_major_version'] }}"
'edge': "{{ containerd_package }}-1.7.27-3.1.fc{{ ansible_distribution_major_version }}" 'edge': "{{ containerd_package }}-1.7.27-3.1.fc{{ ansible_facts['distribution_major_version'] }}"
# https://docs.docker.com/install/linux/docker-ce/fedora/ # https://docs.docker.com/install/linux/docker-ce/fedora/
# https://download.docker.com/linux/fedora/<fedora-version>/x86_64/stable/Packages/ # https://download.docker.com/linux/fedora/<fedora-version>/x86_64/stable/Packages/
docker_versioned_pkg: docker_versioned_pkg:
'latest': docker-ce 'latest': docker-ce
'19.03': docker-ce-19.03.15-3.fc{{ ansible_distribution_major_version }} '19.03': docker-ce-19.03.15-3.fc{{ ansible_facts['distribution_major_version'] }}
'20.10': docker-ce-20.10.20-3.fc{{ ansible_distribution_major_version }} '20.10': docker-ce-20.10.20-3.fc{{ ansible_facts['distribution_major_version'] }}
'23.0': docker-ce-3:23.0.6-1.fc{{ ansible_distribution_major_version }} '23.0': docker-ce-3:23.0.6-1.fc{{ ansible_facts['distribution_major_version'] }}
'24.0': docker-ce-3:24.0.9-1.fc{{ ansible_distribution_major_version }} '24.0': docker-ce-3:24.0.9-1.fc{{ ansible_facts['distribution_major_version'] }}
'26.0': docker-ce-3:26.0.2-1.fc{{ ansible_distribution_major_version }} '26.0': docker-ce-3:26.0.2-1.fc{{ ansible_facts['distribution_major_version'] }}
'26.1': docker-ce-3:26.1.4-1.fc{{ ansible_distribution_major_version }} '26.1': docker-ce-3:26.1.4-1.fc{{ ansible_facts['distribution_major_version'] }}
'27.0': docker-ce-3:27.0.3-1.fc{{ ansible_distribution_major_version }} '27.0': docker-ce-3:27.0.3-1.fc{{ ansible_facts['distribution_major_version'] }}
'27.1': docker-ce-3:27.1.2-1.fc{{ ansible_distribution_major_version }} '27.1': docker-ce-3:27.1.2-1.fc{{ ansible_facts['distribution_major_version'] }}
'27.2': docker-ce-3:27.2.1-1.fc{{ ansible_distribution_major_version }} '27.2': docker-ce-3:27.2.1-1.fc{{ ansible_facts['distribution_major_version'] }}
'27.3': docker-ce-3:27.3.1-1.fc{{ ansible_distribution_major_version }} '27.3': docker-ce-3:27.3.1-1.fc{{ ansible_facts['distribution_major_version'] }}
'27.4': docker-ce-3:27.4.1-1.fc{{ ansible_distribution_major_version }} '27.4': docker-ce-3:27.4.1-1.fc{{ ansible_facts['distribution_major_version'] }}
'27.5': docker-ce-3:27.5.1-1.fc{{ ansible_distribution_major_version }} '27.5': docker-ce-3:27.5.1-1.fc{{ ansible_facts['distribution_major_version'] }}
'28.0': docker-ce-3:28.0.4-1.fc{{ ansible_distribution_major_version }} '28.0': docker-ce-3:28.0.4-1.fc{{ ansible_facts['distribution_major_version'] }}
'28.1': docker-ce-3:28.1.1-1.fc{{ ansible_distribution_major_version }} '28.1': docker-ce-3:28.1.1-1.fc{{ ansible_facts['distribution_major_version'] }}
'28.2': docker-ce-3:28.2.2-1.fc{{ ansible_distribution_major_version }} '28.2': docker-ce-3:28.2.2-1.fc{{ ansible_facts['distribution_major_version'] }}
'28.3': docker-ce-3:28.3.3-1.fc{{ ansible_distribution_major_version }} '28.3': docker-ce-3:28.3.3-1.fc{{ ansible_facts['distribution_major_version'] }}
'stable': docker-ce-3:28.3.3-1.fc{{ ansible_distribution_major_version }} 'stable': docker-ce-3:28.3.3-1.fc{{ ansible_facts['distribution_major_version'] }}
'edge': docker-ce-3:28.3.3-1.fc{{ ansible_distribution_major_version }} 'edge': docker-ce-3:28.3.3-1.fc{{ ansible_facts['distribution_major_version'] }}
docker_cli_versioned_pkg: docker_cli_versioned_pkg:
'latest': docker-ce-cli 'latest': docker-ce-cli
'19.03': docker-ce-cli-19.03.15-3.fc{{ ansible_distribution_major_version }} '19.03': docker-ce-cli-19.03.15-3.fc{{ ansible_facts['distribution_major_version'] }}
'20.10': docker-ce-cli-20.10.20-3.fc{{ ansible_distribution_major_version }} '20.10': docker-ce-cli-20.10.20-3.fc{{ ansible_facts['distribution_major_version'] }}
'23.0': docker-ce-cli-1:23.0.6-1.fc{{ ansible_distribution_major_version }} '23.0': docker-ce-cli-1:23.0.6-1.fc{{ ansible_facts['distribution_major_version'] }}
'24.0': docker-ce-cli-1:24.0.9-1.fc{{ ansible_distribution_major_version }} '24.0': docker-ce-cli-1:24.0.9-1.fc{{ ansible_facts['distribution_major_version'] }}
'26.0': docker-ce-cli-1:26.0.2-1.fc{{ ansible_distribution_major_version }} '26.0': docker-ce-cli-1:26.0.2-1.fc{{ ansible_facts['distribution_major_version'] }}
'26.1': docker-ce-cli-1:26.1.4-1.fc{{ ansible_distribution_major_version }} '26.1': docker-ce-cli-1:26.1.4-1.fc{{ ansible_facts['distribution_major_version'] }}
'27.0': docker-ce-cli-1:27.0.3-1.fc{{ ansible_distribution_major_version }} '27.0': docker-ce-cli-1:27.0.3-1.fc{{ ansible_facts['distribution_major_version'] }}
'27.1': docker-ce-cli-1:27.1.2-1.fc{{ ansible_distribution_major_version }} '27.1': docker-ce-cli-1:27.1.2-1.fc{{ ansible_facts['distribution_major_version'] }}
'27.2': docker-ce-cli-1:27.2.1-1.fc{{ ansible_distribution_major_version }} '27.2': docker-ce-cli-1:27.2.1-1.fc{{ ansible_facts['distribution_major_version'] }}
'27.3': docker-ce-cli-1:27.3.1-1.fc{{ ansible_distribution_major_version }} '27.3': docker-ce-cli-1:27.3.1-1.fc{{ ansible_facts['distribution_major_version'] }}
'27.4': docker-ce-cli-1:27.4.1-1.fc{{ ansible_distribution_major_version }} '27.4': docker-ce-cli-1:27.4.1-1.fc{{ ansible_facts['distribution_major_version'] }}
'27.5': docker-ce-cli-1:27.5.1-1.fc{{ ansible_distribution_major_version }} '27.5': docker-ce-cli-1:27.5.1-1.fc{{ ansible_facts['distribution_major_version'] }}
'28.0': docker-ce-cli-1:28.0.4-1.fc{{ ansible_distribution_major_version }} '28.0': docker-ce-cli-1:28.0.4-1.fc{{ ansible_facts['distribution_major_version'] }}
'28.1': docker-ce-cli-1:28.1.1-1.fc{{ ansible_distribution_major_version }} '28.1': docker-ce-cli-1:28.1.1-1.fc{{ ansible_facts['distribution_major_version'] }}
'28.2': docker-ce-cli-1:28.2.2-1.fc{{ ansible_distribution_major_version }} '28.2': docker-ce-cli-1:28.2.2-1.fc{{ ansible_facts['distribution_major_version'] }}
'28.3': docker-ce-cli-1:28.3.3-1.fc{{ ansible_distribution_major_version }} '28.3': docker-ce-cli-1:28.3.3-1.fc{{ ansible_facts['distribution_major_version'] }}
'stable': docker-ce-cli-1:28.3.3-1.fc{{ ansible_distribution_major_version }} 'stable': docker-ce-cli-1:28.3.3-1.fc{{ ansible_facts['distribution_major_version'] }}
'edge': docker-ce-cli-1:28.3.3-1.fc{{ ansible_distribution_major_version }} 'edge': docker-ce-cli-1:28.3.3-1.fc{{ ansible_facts['distribution_major_version'] }}
docker_package_info: docker_package_info:
enablerepo: "docker-ce" enablerepo: "docker-ce"

View File

@@ -2,42 +2,42 @@
# containerd versions are only relevant for docker # containerd versions are only relevant for docker
containerd_versioned_pkg: containerd_versioned_pkg:
'latest': "{{ containerd_package }}" 'latest': "{{ containerd_package }}"
'1.3.7': "{{ containerd_package }}-1.3.7-3.1.el{{ ansible_distribution_major_version }}" '1.3.7': "{{ containerd_package }}-1.3.7-3.1.el{{ ansible_facts['distribution_major_version'] }}"
'1.3.9': "{{ containerd_package }}-1.3.9-3.1.el{{ ansible_distribution_major_version }}" '1.3.9': "{{ containerd_package }}-1.3.9-3.1.el{{ ansible_facts['distribution_major_version'] }}"
'1.4.3': "{{ containerd_package }}-1.4.3-3.2.el{{ ansible_distribution_major_version }}" '1.4.3': "{{ containerd_package }}-1.4.3-3.2.el{{ ansible_facts['distribution_major_version'] }}"
'1.4.4': "{{ containerd_package }}-1.4.4-3.1.el{{ ansible_distribution_major_version }}" '1.4.4': "{{ containerd_package }}-1.4.4-3.1.el{{ ansible_facts['distribution_major_version'] }}"
'1.4.6': "{{ containerd_package }}-1.4.6-3.1.el{{ ansible_distribution_major_version }}" '1.4.6': "{{ containerd_package }}-1.4.6-3.1.el{{ ansible_facts['distribution_major_version'] }}"
'1.4.9': "{{ containerd_package }}-1.4.9-3.1.el{{ ansible_distribution_major_version }}" '1.4.9': "{{ containerd_package }}-1.4.9-3.1.el{{ ansible_facts['distribution_major_version'] }}"
'1.4.12': "{{ containerd_package }}-1.4.12-3.1.el{{ ansible_distribution_major_version }}" '1.4.12': "{{ containerd_package }}-1.4.12-3.1.el{{ ansible_facts['distribution_major_version'] }}"
'1.6.4': "{{ containerd_package }}-1.6.4-3.1.el{{ ansible_distribution_major_version }}" '1.6.4': "{{ containerd_package }}-1.6.4-3.1.el{{ ansible_facts['distribution_major_version'] }}"
'1.6.6': "{{ containerd_package }}-1.6.6-3.1.el{{ ansible_distribution_major_version }}" '1.6.6': "{{ containerd_package }}-1.6.6-3.1.el{{ ansible_facts['distribution_major_version'] }}"
'1.6.7': "{{ containerd_package }}-1.6.7-3.1.el{{ ansible_distribution_major_version }}" '1.6.7': "{{ containerd_package }}-1.6.7-3.1.el{{ ansible_facts['distribution_major_version'] }}"
'1.6.8': "{{ containerd_package }}-1.6.8-3.1.el{{ ansible_distribution_major_version }}" '1.6.8': "{{ containerd_package }}-1.6.8-3.1.el{{ ansible_facts['distribution_major_version'] }}"
'1.6.9': "{{ containerd_package }}-1.6.9-3.1.el{{ ansible_distribution_major_version }}" '1.6.9': "{{ containerd_package }}-1.6.9-3.1.el{{ ansible_facts['distribution_major_version'] }}"
'1.6.10': "{{ containerd_package }}-1.6.10-3.1.el{{ ansible_distribution_major_version }}" '1.6.10': "{{ containerd_package }}-1.6.10-3.1.el{{ ansible_facts['distribution_major_version'] }}"
'1.6.11': "{{ containerd_package }}-1.6.11-3.1.el{{ ansible_distribution_major_version }}" '1.6.11': "{{ containerd_package }}-1.6.11-3.1.el{{ ansible_facts['distribution_major_version'] }}"
'1.6.12': "{{ containerd_package }}-1.6.12-3.1.el{{ ansible_distribution_major_version }}" '1.6.12': "{{ containerd_package }}-1.6.12-3.1.el{{ ansible_facts['distribution_major_version'] }}"
'1.6.13': "{{ containerd_package }}-1.6.13-3.1.el{{ ansible_distribution_major_version }}" '1.6.13': "{{ containerd_package }}-1.6.13-3.1.el{{ ansible_facts['distribution_major_version'] }}"
'1.6.14': "{{ containerd_package }}-1.6.14-3.1.el{{ ansible_distribution_major_version }}" '1.6.14': "{{ containerd_package }}-1.6.14-3.1.el{{ ansible_facts['distribution_major_version'] }}"
'1.6.15': "{{ containerd_package }}-1.6.15-3.1.el{{ ansible_distribution_major_version }}" '1.6.15': "{{ containerd_package }}-1.6.15-3.1.el{{ ansible_facts['distribution_major_version'] }}"
'1.6.16': "{{ containerd_package }}-1.6.16-3.1.el{{ ansible_distribution_major_version }}" '1.6.16': "{{ containerd_package }}-1.6.16-3.1.el{{ ansible_facts['distribution_major_version'] }}"
'1.6.18': "{{ containerd_package }}-1.6.18-3.1.el{{ ansible_distribution_major_version }}" '1.6.18': "{{ containerd_package }}-1.6.18-3.1.el{{ ansible_facts['distribution_major_version'] }}"
'1.6.28': "{{ containerd_package }}-1.6.28-3.1.el{{ ansible_distribution_major_version }}" '1.6.28': "{{ containerd_package }}-1.6.28-3.1.el{{ ansible_facts['distribution_major_version'] }}"
'1.6.31': "{{ containerd_package }}-1.6.31-3.1.el{{ ansible_distribution_major_version }}" '1.6.31': "{{ containerd_package }}-1.6.31-3.1.el{{ ansible_facts['distribution_major_version'] }}"
'1.6.32': "{{ containerd_package }}-1.6.32-3.1.el{{ ansible_distribution_major_version }}" '1.6.32': "{{ containerd_package }}-1.6.32-3.1.el{{ ansible_facts['distribution_major_version'] }}"
'1.6.33': "{{ containerd_package }}-1.6.33-3.1.el{{ ansible_distribution_major_version }}" '1.6.33': "{{ containerd_package }}-1.6.33-3.1.el{{ ansible_facts['distribution_major_version'] }}"
'1.7.18': "{{ containerd_package }}-1.7.18-3.1.el{{ ansible_distribution_major_version }}" '1.7.18': "{{ containerd_package }}-1.7.18-3.1.el{{ ansible_facts['distribution_major_version'] }}"
'1.7.19': "{{ containerd_package }}-1.7.19-3.1.el{{ ansible_distribution_major_version }}" '1.7.19': "{{ containerd_package }}-1.7.19-3.1.el{{ ansible_facts['distribution_major_version'] }}"
'1.7.20': "{{ containerd_package }}-1.7.20-3.1.el{{ ansible_distribution_major_version }}" '1.7.20': "{{ containerd_package }}-1.7.20-3.1.el{{ ansible_facts['distribution_major_version'] }}"
'1.7.21': "{{ containerd_package }}-1.7.21-3.1.el{{ ansible_distribution_major_version }}" '1.7.21': "{{ containerd_package }}-1.7.21-3.1.el{{ ansible_facts['distribution_major_version'] }}"
'1.7.22': "{{ containerd_package }}-1.7.22-3.1.el{{ ansible_distribution_major_version }}" '1.7.22': "{{ containerd_package }}-1.7.22-3.1.el{{ ansible_facts['distribution_major_version'] }}"
'1.7.23': "{{ containerd_package }}-1.7.23-3.1.el{{ ansible_distribution_major_version }}" '1.7.23': "{{ containerd_package }}-1.7.23-3.1.el{{ ansible_facts['distribution_major_version'] }}"
'1.7.24': "{{ containerd_package }}-1.7.24-3.1.el{{ ansible_distribution_major_version }}" '1.7.24': "{{ containerd_package }}-1.7.24-3.1.el{{ ansible_facts['distribution_major_version'] }}"
'1.7.25': "{{ containerd_package }}-1.7.25-3.1.el{{ ansible_distribution_major_version }}" '1.7.25': "{{ containerd_package }}-1.7.25-3.1.el{{ ansible_facts['distribution_major_version'] }}"
'1.7.26': "{{ containerd_package }}-1.7.26-3.1.el{{ ansible_distribution_major_version }}" '1.7.26': "{{ containerd_package }}-1.7.26-3.1.el{{ ansible_facts['distribution_major_version'] }}"
'1.7.27': "{{ containerd_package }}-1.7.27-3.1.el{{ ansible_distribution_major_version }}" '1.7.27': "{{ containerd_package }}-1.7.27-3.1.el{{ ansible_facts['distribution_major_version'] }}"
'stable': "{{ containerd_package }}-1.7.27-3.1.el{{ ansible_distribution_major_version }}" 'stable': "{{ containerd_package }}-1.7.27-3.1.el{{ ansible_facts['distribution_major_version'] }}"
'edge': "{{ containerd_package }}-1.7.27-3.1.el{{ ansible_distribution_major_version }}" 'edge': "{{ containerd_package }}-1.7.27-3.1.el{{ ansible_facts['distribution_major_version'] }}"
# https://docs.docker.com/engine/installation/linux/rhel/#install-from-a-package # https://docs.docker.com/engine/installation/linux/rhel/#install-from-a-package
# https://download.docker.com/linux/rhel/<rhel_version>>/x86_64/stable/Packages/ # https://download.docker.com/linux/rhel/<rhel_version>>/x86_64/stable/Packages/
@@ -45,46 +45,46 @@ containerd_versioned_pkg:
docker_versioned_pkg: docker_versioned_pkg:
'latest': docker-ce 'latest': docker-ce
'18.09': docker-ce-3:18.09.9-3.el7 '18.09': docker-ce-3:18.09.9-3.el7
'19.03': docker-ce-3:19.03.15-3.el{{ ansible_distribution_major_version }} '19.03': docker-ce-3:19.03.15-3.el{{ ansible_facts['distribution_major_version'] }}
'20.10': docker-ce-3:20.10.24-3.el{{ ansible_distribution_major_version }} '20.10': docker-ce-3:20.10.24-3.el{{ ansible_facts['distribution_major_version'] }}
'23.0': docker-ce-3:23.0.6-1.el{{ ansible_distribution_major_version }} '23.0': docker-ce-3:23.0.6-1.el{{ ansible_facts['distribution_major_version'] }}
'24.0': docker-ce-3:24.0.9-1.el{{ ansible_distribution_major_version }} '24.0': docker-ce-3:24.0.9-1.el{{ ansible_facts['distribution_major_version'] }}
'26.0': docker-ce-3:26.0.2-1.el{{ ansible_distribution_major_version }} '26.0': docker-ce-3:26.0.2-1.el{{ ansible_facts['distribution_major_version'] }}
'26.1': docker-ce-3:26.1.4-1.el{{ ansible_distribution_major_version }} '26.1': docker-ce-3:26.1.4-1.el{{ ansible_facts['distribution_major_version'] }}
'27.0': docker-ce-3:27.0.3-1.el{{ ansible_distribution_major_version }} '27.0': docker-ce-3:27.0.3-1.el{{ ansible_facts['distribution_major_version'] }}
'27.1': docker-ce-3:27.1.2-1.el{{ ansible_distribution_major_version }} '27.1': docker-ce-3:27.1.2-1.el{{ ansible_facts['distribution_major_version'] }}
'27.2': docker-ce-3:27.2.1-1.el{{ ansible_distribution_major_version }} '27.2': docker-ce-3:27.2.1-1.el{{ ansible_facts['distribution_major_version'] }}
'27.3': docker-ce-3:27.3.1-1.el{{ ansible_distribution_major_version }} '27.3': docker-ce-3:27.3.1-1.el{{ ansible_facts['distribution_major_version'] }}
'27.4': docker-ce-3:27.4.1-1.el{{ ansible_distribution_major_version }} '27.4': docker-ce-3:27.4.1-1.el{{ ansible_facts['distribution_major_version'] }}
'27.5': docker-ce-3:27.5.1-1.el{{ ansible_distribution_major_version }} '27.5': docker-ce-3:27.5.1-1.el{{ ansible_facts['distribution_major_version'] }}
'28.0': docker-ce-3:28.0.4-1.el{{ ansible_distribution_major_version }} '28.0': docker-ce-3:28.0.4-1.el{{ ansible_facts['distribution_major_version'] }}
'28.1': docker-ce-3:28.1.1-1.el{{ ansible_distribution_major_version }} '28.1': docker-ce-3:28.1.1-1.el{{ ansible_facts['distribution_major_version'] }}
'28.2': docker-ce-3:28.2.2-1.el{{ ansible_distribution_major_version }} '28.2': docker-ce-3:28.2.2-1.el{{ ansible_facts['distribution_major_version'] }}
'28.3': docker-ce-3:28.3.3-1.el{{ ansible_distribution_major_version }} '28.3': docker-ce-3:28.3.3-1.el{{ ansible_facts['distribution_major_version'] }}
'stable': docker-ce-3:28.3.3-1.el{{ ansible_distribution_major_version }} 'stable': docker-ce-3:28.3.3-1.el{{ ansible_facts['distribution_major_version'] }}
'edge': docker-ce-3:28.3.3-1.el{{ ansible_distribution_major_version }} 'edge': docker-ce-3:28.3.3-1.el{{ ansible_facts['distribution_major_version'] }}
docker_cli_versioned_pkg: docker_cli_versioned_pkg:
'latest': docker-ce-cli 'latest': docker-ce-cli
'18.09': docker-ce-cli-1:18.09.9-3.el7 '18.09': docker-ce-cli-1:18.09.9-3.el7
'19.03': docker-ce-cli-1:19.03.15-3.el{{ ansible_distribution_major_version }} '19.03': docker-ce-cli-1:19.03.15-3.el{{ ansible_facts['distribution_major_version'] }}
'20.10': docker-ce-cli-1:20.10.24-3.el{{ ansible_distribution_major_version }} '20.10': docker-ce-cli-1:20.10.24-3.el{{ ansible_facts['distribution_major_version'] }}
'23.0': docker-ce-cli-1:23.0.6-1.el{{ ansible_distribution_major_version }} '23.0': docker-ce-cli-1:23.0.6-1.el{{ ansible_facts['distribution_major_version'] }}
'24.0': docker-ce-cli-1:24.0.9-1.el{{ ansible_distribution_major_version }} '24.0': docker-ce-cli-1:24.0.9-1.el{{ ansible_facts['distribution_major_version'] }}
'26.0': docker-ce-cli-1:26.0.2-1.el{{ ansible_distribution_major_version }} '26.0': docker-ce-cli-1:26.0.2-1.el{{ ansible_facts['distribution_major_version'] }}
'26.1': docker-ce-cli-1:26.1.4-1.el{{ ansible_distribution_major_version }} '26.1': docker-ce-cli-1:26.1.4-1.el{{ ansible_facts['distribution_major_version'] }}
'27.0': docker-ce-cli-1:27.0.3-1.el{{ ansible_distribution_major_version }} '27.0': docker-ce-cli-1:27.0.3-1.el{{ ansible_facts['distribution_major_version'] }}
'27.1': docker-ce-cli-1:27.1.2-1.el{{ ansible_distribution_major_version }} '27.1': docker-ce-cli-1:27.1.2-1.el{{ ansible_facts['distribution_major_version'] }}
'27.2': docker-ce-cli-1:27.2.1-1.el{{ ansible_distribution_major_version }} '27.2': docker-ce-cli-1:27.2.1-1.el{{ ansible_facts['distribution_major_version'] }}
'27.3': docker-ce-cli-1:27.3.1-1.el{{ ansible_distribution_major_version }} '27.3': docker-ce-cli-1:27.3.1-1.el{{ ansible_facts['distribution_major_version'] }}
'27.4': docker-ce-cli-1:27.4.1-1.el{{ ansible_distribution_major_version }} '27.4': docker-ce-cli-1:27.4.1-1.el{{ ansible_facts['distribution_major_version'] }}
'27.5': docker-ce-cli-1:27.5.1-1.el{{ ansible_distribution_major_version }} '27.5': docker-ce-cli-1:27.5.1-1.el{{ ansible_facts['distribution_major_version'] }}
'28.0': docker-ce-cli-1:28.0.4-1.el{{ ansible_distribution_major_version }} '28.0': docker-ce-cli-1:28.0.4-1.el{{ ansible_facts['distribution_major_version'] }}
'28.1': docker-ce-cli-1:28.1.1-1.el{{ ansible_distribution_major_version }} '28.1': docker-ce-cli-1:28.1.1-1.el{{ ansible_facts['distribution_major_version'] }}
'28.2': docker-ce-cli-1:28.2.2-1.el{{ ansible_distribution_major_version }} '28.2': docker-ce-cli-1:28.2.2-1.el{{ ansible_facts['distribution_major_version'] }}
'28.3': docker-ce-cli-1:28.3.3-1.el{{ ansible_distribution_major_version }} '28.3': docker-ce-cli-1:28.3.3-1.el{{ ansible_facts['distribution_major_version'] }}
'stable': docker-ce-cli-1:28.3.3-1.el{{ ansible_distribution_major_version }} 'stable': docker-ce-cli-1:28.3.3-1.el{{ ansible_facts['distribution_major_version'] }}
'edge': docker-ce-cli-1:28.3.3-1.el{{ ansible_distribution_major_version }} 'edge': docker-ce-cli-1:28.3.3-1.el{{ ansible_facts['distribution_major_version'] }}
docker_package_info: docker_package_info:
enablerepo: "docker-ce" enablerepo: "docker-ce"

View File

@@ -35,45 +35,45 @@ containerd_versioned_pkg:
# https://download.docker.com/linux/ubuntu/ # https://download.docker.com/linux/ubuntu/
docker_versioned_pkg: docker_versioned_pkg:
'latest': docker-ce 'latest': docker-ce
'18.09': docker-ce=5:18.09.9~3-0~ubuntu-{{ ansible_distribution_release | lower }} '18.09': docker-ce=5:18.09.9~3-0~ubuntu-{{ ansible_facts['distribution_release'] | lower }}
'19.03': docker-ce=5:19.03.15~3-0~ubuntu-{{ ansible_distribution_release | lower }} '19.03': docker-ce=5:19.03.15~3-0~ubuntu-{{ ansible_facts['distribution_release'] | lower }}
'20.10': docker-ce=5:20.10.20~3-0~ubuntu-{{ ansible_distribution_release | lower }} '20.10': docker-ce=5:20.10.20~3-0~ubuntu-{{ ansible_facts['distribution_release'] | lower }}
'23.0': docker-ce=5:23.0.6-1~ubuntu.{{ ansible_distribution_version }}~{{ ansible_distribution_release | lower }} '23.0': docker-ce=5:23.0.6-1~ubuntu.{{ ansible_facts['distribution_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'24.0': docker-ce=5:24.0.9-1~ubuntu.{{ ansible_distribution_version }}~{{ ansible_distribution_release | lower }} '24.0': docker-ce=5:24.0.9-1~ubuntu.{{ ansible_facts['distribution_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'26.0': docker-ce=5:26.0.2-1~ubuntu.{{ ansible_distribution_version }}~{{ ansible_distribution_release | lower }} '26.0': docker-ce=5:26.0.2-1~ubuntu.{{ ansible_facts['distribution_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'26.1': docker-ce=5:26.1.4-1~ubuntu.{{ ansible_distribution_version }}~{{ ansible_distribution_release | lower }} '26.1': docker-ce=5:26.1.4-1~ubuntu.{{ ansible_facts['distribution_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'27.0': docker-ce=5:27.0.3-1~ubuntu.{{ ansible_distribution_version }}~{{ ansible_distribution_release | lower }} '27.0': docker-ce=5:27.0.3-1~ubuntu.{{ ansible_facts['distribution_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'27.1': docker-ce=5:27.1.2-1~ubuntu.{{ ansible_distribution_version }}~{{ ansible_distribution_release | lower }} '27.1': docker-ce=5:27.1.2-1~ubuntu.{{ ansible_facts['distribution_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'27.2': docker-ce=5:27.2.1-1~ubuntu.{{ ansible_distribution_version }}~{{ ansible_distribution_release | lower }} '27.2': docker-ce=5:27.2.1-1~ubuntu.{{ ansible_facts['distribution_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'27.3': docker-ce=5:27.3.1-1~ubuntu.{{ ansible_distribution_version }}~{{ ansible_distribution_release | lower }} '27.3': docker-ce=5:27.3.1-1~ubuntu.{{ ansible_facts['distribution_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'27.4': docker-ce=5:27.4.1-1~ubuntu.{{ ansible_distribution_version }}~{{ ansible_distribution_release | lower }} '27.4': docker-ce=5:27.4.1-1~ubuntu.{{ ansible_facts['distribution_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'27.5': docker-ce=5:27.5.4-1~ubuntu.{{ ansible_distribution_version }}~{{ ansible_distribution_release | lower }} '27.5': docker-ce=5:27.5.4-1~ubuntu.{{ ansible_facts['distribution_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'28.0': docker-ce=5:28.0.4-1~ubuntu.{{ ansible_distribution_version }}~{{ ansible_distribution_release | lower }} '28.0': docker-ce=5:28.0.4-1~ubuntu.{{ ansible_facts['distribution_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'28.1': docker-ce=5:28.1.1-1~ubuntu.{{ ansible_distribution_version }}~{{ ansible_distribution_release | lower }} '28.1': docker-ce=5:28.1.1-1~ubuntu.{{ ansible_facts['distribution_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'28.2': docker-ce=5:28.2.2-1~ubuntu.{{ ansible_distribution_version }}~{{ ansible_distribution_release | lower }} '28.2': docker-ce=5:28.2.2-1~ubuntu.{{ ansible_facts['distribution_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'28.3': docker-ce=5:28.3.3-1~ubuntu.{{ ansible_distribution_version }}~{{ ansible_distribution_release | lower }} '28.3': docker-ce=5:28.3.3-1~ubuntu.{{ ansible_facts['distribution_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
docker_cli_versioned_pkg: docker_cli_versioned_pkg:
'latest': docker-ce-cli 'latest': docker-ce-cli
'18.09': docker-ce-cli=5:18.09.9~3-0~ubuntu-{{ ansible_distribution_release | lower }} '18.09': docker-ce-cli=5:18.09.9~3-0~ubuntu-{{ ansible_facts['distribution_release'] | lower }}
'19.03': docker-ce-cli=5:19.03.15~3-0~ubuntu-{{ ansible_distribution_release | lower }} '19.03': docker-ce-cli=5:19.03.15~3-0~ubuntu-{{ ansible_facts['distribution_release'] | lower }}
'20.10': docker-ce-cli=5:20.10.20~3-0~ubuntu-{{ ansible_distribution_release | lower }} '20.10': docker-ce-cli=5:20.10.20~3-0~ubuntu-{{ ansible_facts['distribution_release'] | lower }}
'23.0': docker-ce-cli=5:23.0.6-1~ubuntu.{{ ansible_distribution_version }}~{{ ansible_distribution_release | lower }} '23.0': docker-ce-cli=5:23.0.6-1~ubuntu.{{ ansible_facts['distribution_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'24.0': docker-ce-cli=5:24.0.9-1~ubuntu.{{ ansible_distribution_version }}~{{ ansible_distribution_release | lower }} '24.0': docker-ce-cli=5:24.0.9-1~ubuntu.{{ ansible_facts['distribution_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'26.0': docker-ce-cli=5:26.0.2-1~ubuntu.{{ ansible_distribution_version }}~{{ ansible_distribution_release | lower }} '26.0': docker-ce-cli=5:26.0.2-1~ubuntu.{{ ansible_facts['distribution_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'26.1': docker-ce-cli=5:26.1.4-1~ubuntu.{{ ansible_distribution_version }}~{{ ansible_distribution_release | lower }} '26.1': docker-ce-cli=5:26.1.4-1~ubuntu.{{ ansible_facts['distribution_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'27.0': docker-ce-cli=5:27.0.3-1~ubuntu.{{ ansible_distribution_version }}~{{ ansible_distribution_release | lower }} '27.0': docker-ce-cli=5:27.0.3-1~ubuntu.{{ ansible_facts['distribution_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'27.1': docker-ce-cli=5:27.1.2-1~ubuntu.{{ ansible_distribution_version }}~{{ ansible_distribution_release | lower }} '27.1': docker-ce-cli=5:27.1.2-1~ubuntu.{{ ansible_facts['distribution_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'27.2': docker-ce-cli=5:27.2.1-1~ubuntu.{{ ansible_distribution_version }}~{{ ansible_distribution_release | lower }} '27.2': docker-ce-cli=5:27.2.1-1~ubuntu.{{ ansible_facts['distribution_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'27.3': docker-ce-cli=5:27.3.1-1~ubuntu.{{ ansible_distribution_version }}~{{ ansible_distribution_release | lower }} '27.3': docker-ce-cli=5:27.3.1-1~ubuntu.{{ ansible_facts['distribution_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'27.4': docker-ce-cli=5:27.4.1-1~ubuntu.{{ ansible_distribution_version }}~{{ ansible_distribution_release | lower }} '27.4': docker-ce-cli=5:27.4.1-1~ubuntu.{{ ansible_facts['distribution_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'27.5': docker-ce-cli=5:27.5.4-1~ubuntu.{{ ansible_distribution_version }}~{{ ansible_distribution_release | lower }} '27.5': docker-ce-cli=5:27.5.4-1~ubuntu.{{ ansible_facts['distribution_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'28.0': docker-ce-cli=5:28.0.4-1~ubuntu.{{ ansible_distribution_version }}~{{ ansible_distribution_release | lower }} '28.0': docker-ce-cli=5:28.0.4-1~ubuntu.{{ ansible_facts['distribution_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'28.1': docker-ce-cli=5:28.1.1-1~ubuntu.{{ ansible_distribution_version }}~{{ ansible_distribution_release | lower }} '28.1': docker-ce-cli=5:28.1.1-1~ubuntu.{{ ansible_facts['distribution_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'28.2': docker-ce-cli=5:28.2.2-1~ubuntu.{{ ansible_distribution_version }}~{{ ansible_distribution_release | lower }} '28.2': docker-ce-cli=5:28.2.2-1~ubuntu.{{ ansible_facts['distribution_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'28.3': docker-ce-cli=5:28.3.3-1~ubuntu.{{ ansible_distribution_version }}~{{ ansible_distribution_release | lower }} '28.3': docker-ce-cli=5:28.3.3-1~ubuntu.{{ ansible_facts['distribution_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'stable': docker-ce-cli=5:28.3.3-1~ubuntu.{{ ansible_distribution_version }}~{{ ansible_distribution_release | lower }} 'stable': docker-ce-cli=5:28.3.3-1~ubuntu.{{ ansible_facts['distribution_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
'edge': docker-ce-cli=5:28.3.3-1~ubuntu.{{ ansible_distribution_version }}~{{ ansible_distribution_release | lower }} 'edge': docker-ce-cli=5:28.3.3-1~ubuntu.{{ ansible_facts['distribution_version'] }}~{{ ansible_facts['distribution_release'] | lower }}
docker_package_info: docker_package_info:
pkgs: pkgs:
@@ -90,5 +90,5 @@ docker_repo_info:
repos: repos:
- > - >
deb [arch={{ host_architecture }}] {{ docker_ubuntu_repo_base_url }} deb [arch={{ host_architecture }}] {{ docker_ubuntu_repo_base_url }}
{{ ansible_distribution_release | lower }} {{ ansible_facts['distribution_release'] | lower }}
stable stable

View File

@@ -2,28 +2,28 @@
# containerd versions are only relevant for docker # containerd versions are only relevant for docker
containerd_versioned_pkg: containerd_versioned_pkg:
'latest': "{{ containerd_package }}" 'latest': "{{ containerd_package }}"
'1.3.7': "{{ containerd_package }}-1.3.7-3.1.el{{ ansible_distribution_major_version }}" '1.3.7': "{{ containerd_package }}-1.3.7-3.1.el{{ ansible_facts['distribution_major_version'] }}"
'1.3.9': "{{ containerd_package }}-1.3.9-3.1.el{{ ansible_distribution_major_version }}" '1.3.9': "{{ containerd_package }}-1.3.9-3.1.el{{ ansible_facts['distribution_major_version'] }}"
'1.4.3': "{{ containerd_package }}-1.4.3-3.2.el{{ ansible_distribution_major_version }}" '1.4.3': "{{ containerd_package }}-1.4.3-3.2.el{{ ansible_facts['distribution_major_version'] }}"
'1.4.4': "{{ containerd_package }}-1.4.4-3.1.el{{ ansible_distribution_major_version }}" '1.4.4': "{{ containerd_package }}-1.4.4-3.1.el{{ ansible_facts['distribution_major_version'] }}"
'1.4.6': "{{ containerd_package }}-1.4.6-3.1.el{{ ansible_distribution_major_version }}" '1.4.6': "{{ containerd_package }}-1.4.6-3.1.el{{ ansible_facts['distribution_major_version'] }}"
'1.4.9': "{{ containerd_package }}-1.4.9-3.1.el{{ ansible_distribution_major_version }}" '1.4.9': "{{ containerd_package }}-1.4.9-3.1.el{{ ansible_facts['distribution_major_version'] }}"
'1.4.12': "{{ containerd_package }}-1.4.12-3.1.el{{ ansible_distribution_major_version }}" '1.4.12': "{{ containerd_package }}-1.4.12-3.1.el{{ ansible_facts['distribution_major_version'] }}"
'1.6.4': "{{ containerd_package }}-1.6.4-3.1.el{{ ansible_distribution_major_version }}" '1.6.4': "{{ containerd_package }}-1.6.4-3.1.el{{ ansible_facts['distribution_major_version'] }}"
'1.6.8': "{{ containerd_package }}-1.6.8-3.1.el{{ ansible_distribution_major_version }}" '1.6.8': "{{ containerd_package }}-1.6.8-3.1.el{{ ansible_facts['distribution_major_version'] }}"
'1.6.9': "{{ containerd_package }}-1.6.9-3.1.el{{ ansible_distribution_major_version }}" '1.6.9': "{{ containerd_package }}-1.6.9-3.1.el{{ ansible_facts['distribution_major_version'] }}"
'1.6.10': "{{ containerd_package }}-1.6.10-3.1.el{{ ansible_distribution_major_version }}" '1.6.10': "{{ containerd_package }}-1.6.10-3.1.el{{ ansible_facts['distribution_major_version'] }}"
'1.6.11': "{{ containerd_package }}-1.6.11-3.1.el{{ ansible_distribution_major_version }}" '1.6.11': "{{ containerd_package }}-1.6.11-3.1.el{{ ansible_facts['distribution_major_version'] }}"
'1.6.12': "{{ containerd_package }}-1.6.12-3.1.el{{ ansible_distribution_major_version }}" '1.6.12': "{{ containerd_package }}-1.6.12-3.1.el{{ ansible_facts['distribution_major_version'] }}"
'1.6.13': "{{ containerd_package }}-1.6.13-3.1.el{{ ansible_distribution_major_version }}" '1.6.13': "{{ containerd_package }}-1.6.13-3.1.el{{ ansible_facts['distribution_major_version'] }}"
'1.6.14': "{{ containerd_package }}-1.6.14-3.1.el{{ ansible_distribution_major_version }}" '1.6.14': "{{ containerd_package }}-1.6.14-3.1.el{{ ansible_facts['distribution_major_version'] }}"
'1.6.15': "{{ containerd_package }}-1.6.15-3.1.el{{ ansible_distribution_major_version }}" '1.6.15': "{{ containerd_package }}-1.6.15-3.1.el{{ ansible_facts['distribution_major_version'] }}"
'1.6.16': "{{ containerd_package }}-1.6.16-3.1.el{{ ansible_distribution_major_version }}" '1.6.16': "{{ containerd_package }}-1.6.16-3.1.el{{ ansible_facts['distribution_major_version'] }}"
'1.6.18': "{{ containerd_package }}-1.6.18-3.1.el{{ ansible_distribution_major_version }}" '1.6.18': "{{ containerd_package }}-1.6.18-3.1.el{{ ansible_facts['distribution_major_version'] }}"
'1.6.28': "{{ containerd_package }}-1.6.28-3.1.el{{ ansible_distribution_major_version }}" '1.6.28': "{{ containerd_package }}-1.6.28-3.1.el{{ ansible_facts['distribution_major_version'] }}"
'1.6.32': "{{ containerd_package }}-1.6.32-3.1.el{{ ansible_distribution_major_version }}" '1.6.32': "{{ containerd_package }}-1.6.32-3.1.el{{ ansible_facts['distribution_major_version'] }}"
'stable': "{{ containerd_package }}-1.6.32-3.1.el{{ ansible_distribution_major_version }}" 'stable': "{{ containerd_package }}-1.6.32-3.1.el{{ ansible_facts['distribution_major_version'] }}"
'edge': "{{ containerd_package }}-1.6.32-3.1.el{{ ansible_distribution_major_version }}" 'edge': "{{ containerd_package }}-1.6.32-3.1.el{{ ansible_facts['distribution_major_version'] }}"
docker_version: 19.03 docker_version: 19.03
docker_cli_version: 19.03 docker_cli_version: 19.03
@@ -34,22 +34,22 @@ docker_cli_version: 19.03
docker_versioned_pkg: docker_versioned_pkg:
'latest': docker-ce 'latest': docker-ce
'18.09': docker-ce-3:18.09.9-3.el7 '18.09': docker-ce-3:18.09.9-3.el7
'19.03': docker-ce-3:19.03.15-3.el{{ ansible_distribution_major_version }} '19.03': docker-ce-3:19.03.15-3.el{{ ansible_facts['distribution_major_version'] }}
'20.10': docker-ce-3:20.10.17-3.el{{ ansible_distribution_major_version }} '20.10': docker-ce-3:20.10.17-3.el{{ ansible_facts['distribution_major_version'] }}
'23.0': docker-ce-3:23.0.6-1.el{{ ansible_distribution_major_version }} '23.0': docker-ce-3:23.0.6-1.el{{ ansible_facts['distribution_major_version'] }}
'24.0': docker-ce-3:24.0.9-1.el{{ ansible_distribution_major_version }} '24.0': docker-ce-3:24.0.9-1.el{{ ansible_facts['distribution_major_version'] }}
'stable': docker-ce-3:24.0.9-1.el{{ ansible_distribution_major_version }} 'stable': docker-ce-3:24.0.9-1.el{{ ansible_facts['distribution_major_version'] }}
'edge': docker-ce-3:24.0.9-1.el{{ ansible_distribution_major_version }} 'edge': docker-ce-3:24.0.9-1.el{{ ansible_facts['distribution_major_version'] }}
docker_cli_versioned_pkg: docker_cli_versioned_pkg:
'latest': docker-ce-cli 'latest': docker-ce-cli
'18.09': docker-ce-cli-1:18.09.9-3.el7 '18.09': docker-ce-cli-1:18.09.9-3.el7
'19.03': docker-ce-cli-1:19.03.15-3.el{{ ansible_distribution_major_version }} '19.03': docker-ce-cli-1:19.03.15-3.el{{ ansible_facts['distribution_major_version'] }}
'20.10': docker-ce-cli-1:20.10.17-3.el{{ ansible_distribution_major_version }} '20.10': docker-ce-cli-1:20.10.17-3.el{{ ansible_facts['distribution_major_version'] }}
'23.0': docker-ce-cli-1:23.0.6-1.el{{ ansible_distribution_major_version }} '23.0': docker-ce-cli-1:23.0.6-1.el{{ ansible_facts['distribution_major_version'] }}
'24.0': docker-ce-cli-1:24.0.9-1.el{{ ansible_distribution_major_version }} '24.0': docker-ce-cli-1:24.0.9-1.el{{ ansible_facts['distribution_major_version'] }}
'stable': docker-ce-cli-1:24.0.9-1.el{{ ansible_distribution_major_version }} 'stable': docker-ce-cli-1:24.0.9-1.el{{ ansible_facts['distribution_major_version'] }}
'edge': docker-ce-cli-1:24.0.9-1.el{{ ansible_distribution_major_version }} 'edge': docker-ce-cli-1:24.0.9-1.el{{ ansible_facts['distribution_major_version'] }}
docker_package_info: docker_package_info:
enablerepo: "docker-ce" enablerepo: "docker-ce"

View File

@@ -3,7 +3,7 @@ kata_containers_dir: /opt/kata
kata_containers_config_dir: /etc/kata-containers kata_containers_config_dir: /etc/kata-containers
kata_containers_containerd_bin_dir: /usr/local/bin kata_containers_containerd_bin_dir: /usr/local/bin
kata_containers_qemu_default_memory: "{{ ansible_memtotal_mb }}" kata_containers_qemu_default_memory: "{{ ansible_facts['memtotal_mb'] }}"
kata_containers_qemu_debug: 'false' kata_containers_qemu_debug: 'false'
kata_containers_qemu_sandbox_cgroup_only: 'true' kata_containers_qemu_sandbox_cgroup_only: 'true'
kata_containers_qemu_enable_mem_prealloc: 'false' kata_containers_qemu_enable_mem_prealloc: 'false'

View File

@@ -9,7 +9,7 @@
failed_when: > failed_when: >
version is failed or version is failed or
'kata-runtime' not in version.stdout 'kata-runtime' not in version.stdout
- name: Test version - name: Test version check
command: "/opt/kata/bin/kata-runtime check" command: "/opt/kata/bin/kata-runtime check"
register: check register: check
failed_when: > failed_when: >

View File

@@ -14,8 +14,8 @@
- name: Runc | Uninstall runc package managed by package manager - name: Runc | Uninstall runc package managed by package manager
when: when:
- not is_ostree - not is_ostree
- ansible_distribution != "Flatcar Container Linux by Kinvolk" - ansible_facts['distribution'] != "Flatcar Container Linux by Kinvolk"
- ansible_distribution != "Flatcar" - ansible_facts['distribution'] != "Flatcar"
block: block:
- name: Runc | Remove package - name: Runc | Remove package
package: package:

View File

@@ -16,7 +16,7 @@
name: skopeo name: skopeo
state: absent state: absent
when: when:
- not (is_ostree or (ansible_distribution == "Flatcar Container Linux by Kinvolk") or (ansible_distribution == "Flatcar")) - not (is_ostree or (ansible_facts['distribution'] == "Flatcar Container Linux by Kinvolk") or (ansible_facts['distribution'] == "Flatcar"))
ignore_errors: true # noqa ignore-errors ignore_errors: true # noqa ignore-errors
- name: Skopeo | Download skopeo binary - name: Skopeo | Download skopeo binary

View File

@@ -76,7 +76,7 @@
vars: vars:
service_name: containerd.service service_name: containerd.service
when: when:
- not (is_ostree or (ansible_distribution == "Flatcar Container Linux by Kinvolk") or (ansible_distribution == "Flatcar")) - not (is_ostree or (ansible_facts['distribution'] == "Flatcar Container Linux by Kinvolk") or (ansible_facts['distribution'] == "Flatcar"))
- container_manager != "containerd" - container_manager != "containerd"
- docker_installed.matched == 0 - docker_installed.matched == 0
- containerd_installed.matched > 0 - containerd_installed.matched > 0
@@ -104,7 +104,7 @@
vars: vars:
service_name: docker.service service_name: docker.service
when: when:
- not (is_ostree or (ansible_distribution == "Flatcar Container Linux by Kinvolk") or (ansible_distribution == "Flatcar")) - not (is_ostree or (ansible_facts['distribution'] == "Flatcar Container Linux by Kinvolk") or (ansible_facts['distribution'] == "Flatcar"))
- container_manager != "docker" - container_manager != "docker"
- docker_installed.matched > 0 - docker_installed.matched > 0
- ansible_facts.services[service_name]['state'] == 'running' - ansible_facts.services[service_name]['state'] == 'running'
@@ -130,7 +130,7 @@
vars: vars:
service_name: crio.service service_name: crio.service
when: when:
- not (is_ostree or (ansible_distribution == "Flatcar Container Linux by Kinvolk") or (ansible_distribution == "Flatcar")) - not (is_ostree or (ansible_facts['distribution'] == "Flatcar Container Linux by Kinvolk") or (ansible_facts['distribution'] == "Flatcar"))
- container_manager != "crio" - container_manager != "crio"
- crio_installed.matched > 0 - crio_installed.matched > 0
- ansible_facts.services[service_name]['state'] == 'running' - ansible_facts.services[service_name]['state'] == 'running'

View File

@@ -74,7 +74,6 @@
delegate_to: "{{ download_delegate }}" delegate_to: "{{ download_delegate }}"
delegate_facts: false delegate_facts: false
register: container_save_status register: container_save_status
failed_when: container_save_status.stderr
run_once: true run_once: true
become: "{{ user_can_become_root | default(false) or not download_localhost }}" become: "{{ user_can_become_root | default(false) or not download_localhost }}"
when: when:

View File

@@ -2,7 +2,7 @@
- name: Download | Prepare working directories and variables - name: Download | Prepare working directories and variables
import_tasks: prep_download.yml import_tasks: prep_download.yml
when: when:
- not skip_downloads | default(false) - not skip_downloads
tags: tags:
- download - download
- upload - upload
@@ -10,7 +10,7 @@
- name: Download | Get kubeadm binary and list of required images - name: Download | Get kubeadm binary and list of required images
include_tasks: prep_kubeadm_images.yml include_tasks: prep_kubeadm_images.yml
when: when:
- not skip_downloads | default(false) - not skip_downloads
- ('kube_control_plane' in group_names) - ('kube_control_plane' in group_names)
tags: tags:
- download - download
@@ -23,8 +23,8 @@
download: "{{ download_defaults | combine(item.value) }}" download: "{{ download_defaults | combine(item.value) }}"
include_file: "download_{% if download.container %}container{% else %}file{% endif %}.yml" include_file: "download_{% if download.container %}container{% else %}file{% endif %}.yml"
when: when:
- not skip_downloads | default(false) - not skip_downloads
- download.enabled - download.enabled
- item.value.enabled - item.value.enabled
- (not (item.value.container | default(false))) or (item.value.container and download_container) - (not download.container) or (download.container and download_container)
- (download_run_once and inventory_hostname == download_delegate) or (group_names | intersect(download.groups) | length) - (download_run_once and inventory_hostname == download_delegate) or (group_names | intersect(download.groups) | length)

View File

@@ -13,6 +13,8 @@
sync_certs: false sync_certs: false
gen_certs: false gen_certs: false
etcd_secret_changed: false etcd_secret_changed: false
etcd_member_requires_sync: false
kubernetes_host_requires_sync: false
- name: "Check certs | Register ca and etcd admin/member certs on etcd hosts" - name: "Check certs | Register ca and etcd admin/member certs on etcd hosts"
stat: stat:
@@ -128,7 +130,7 @@
set_fact: set_fact:
sync_certs: true sync_certs: true
when: when:
- etcd_member_requires_sync | default(false) or - etcd_member_requires_sync or
kubernetes_host_requires_sync | default(false) or kubernetes_host_requires_sync or
'gen_master_certs_True' in group_names or 'gen_master_certs_True' in group_names or
'gen_node_certs_True' in group_names 'gen_node_certs_True' in group_names

View File

@@ -93,7 +93,7 @@
name: etcd-events name: etcd-events
state: started state: started
enabled: true enabled: true
ignore_errors: "{{ etcd_events_cluster_is_healthy.rc != 0 }}" # noqa ignore-errors ignore_errors: "{{ etcd_events_cluster_is_healthy.rc == 0 }}" # noqa ignore-errors
when: when:
- ('etcd' in group_names) - ('etcd' in group_names)
- etcd_events_cluster_setup - etcd_events_cluster_setup

View File

@@ -24,7 +24,7 @@
run_once: true run_once: true
delegate_to: "{{ groups['etcd'][0] }}" delegate_to: "{{ groups['etcd'][0] }}"
when: when:
- gen_certs | default(false) - gen_certs
- inventory_hostname == groups['etcd'][0] - inventory_hostname == groups['etcd'][0]
- name: Gen_certs | copy certs generation script - name: Gen_certs | copy certs generation script
@@ -43,7 +43,7 @@
HOSTS: "{{ groups['gen_node_certs_True'] | ansible.builtin.intersect(groups['kube_control_plane']) | join(' ') }}" HOSTS: "{{ groups['gen_node_certs_True'] | ansible.builtin.intersect(groups['kube_control_plane']) | join(' ') }}"
run_once: true run_once: true
delegate_to: "{{ groups['etcd'][0] }}" delegate_to: "{{ groups['etcd'][0] }}"
when: gen_certs | default(false) when: gen_certs
notify: Set etcd_secret_changed notify: Set etcd_secret_changed
- name: Gen_certs | run cert generation script for all clients - name: Gen_certs | run cert generation script for all clients
@@ -55,7 +55,7 @@
when: when:
- kube_network_plugin in ["calico", "flannel", "cilium"] or cilium_deploy_additionally - kube_network_plugin in ["calico", "flannel", "cilium"] or cilium_deploy_additionally
- kube_network_plugin != "calico" or calico_datastore == "etcd" - kube_network_plugin != "calico" or calico_datastore == "etcd"
- gen_certs | default(false) - gen_certs
notify: Set etcd_secret_changed notify: Set etcd_secret_changed
- name: Gen_certs | Gather etcd member/admin and kube_control_plane client certs from first etcd node - name: Gen_certs | Gather etcd member/admin and kube_control_plane client certs from first etcd node
@@ -78,7 +78,7 @@
delegate_to: "{{ groups['etcd'][0] }}" delegate_to: "{{ groups['etcd'][0] }}"
when: when:
- ('etcd' in group_names) - ('etcd' in group_names)
- sync_certs | default(false) - sync_certs
- inventory_hostname != groups['etcd'][0] - inventory_hostname != groups['etcd'][0]
notify: Set etcd_secret_changed notify: Set etcd_secret_changed
@@ -92,7 +92,7 @@
with_items: "{{ etcd_master_certs.results }}" with_items: "{{ etcd_master_certs.results }}"
when: when:
- ('etcd' in group_names) - ('etcd' in group_names)
- sync_certs | default(false) - sync_certs
- inventory_hostname != groups['etcd'][0] - inventory_hostname != groups['etcd'][0]
loop_control: loop_control:
label: "{{ item.item }}" label: "{{ item.item }}"
@@ -134,7 +134,7 @@
include_tasks: gen_nodes_certs_script.yml include_tasks: gen_nodes_certs_script.yml
when: when:
- ('kube_control_plane' in group_names) and - ('kube_control_plane' in group_names) and
sync_certs | default(false) and inventory_hostname not in groups['etcd'] sync_certs and inventory_hostname not in groups['etcd']
- name: Gen_certs | Generate etcd certs on nodes if needed - name: Gen_certs | Generate etcd certs on nodes if needed
include_tasks: gen_nodes_certs_script.yml include_tasks: gen_nodes_certs_script.yml
@@ -142,7 +142,7 @@
- kube_network_plugin in ["calico", "flannel", "cilium"] or cilium_deploy_additionally - kube_network_plugin in ["calico", "flannel", "cilium"] or cilium_deploy_additionally
- kube_network_plugin != "calico" or calico_datastore == "etcd" - kube_network_plugin != "calico" or calico_datastore == "etcd"
- ('k8s_cluster' in group_names) and - ('k8s_cluster' in group_names) and
sync_certs | default(false) and inventory_hostname not in groups['etcd'] sync_certs and inventory_hostname not in groups['etcd']
# This is a hack around the fact kubeadm expect the same certs path on all kube_control_plane # This is a hack around the fact kubeadm expect the same certs path on all kube_control_plane
# TODO: fix certs generation to have the same file everywhere # TODO: fix certs generation to have the same file everywhere

View File

@@ -84,7 +84,7 @@
when: when:
- ('etcd' in group_names) - ('etcd' in group_names)
- etcd_cluster_setup - etcd_cluster_setup
- etcd_secret_changed | default(false) - etcd_secret_changed
- name: Restart etcd-events if certs changed - name: Restart etcd-events if certs changed
command: /bin/true command: /bin/true
@@ -92,7 +92,7 @@
when: when:
- ('etcd' in group_names) - ('etcd' in group_names)
- etcd_events_cluster_setup - etcd_events_cluster_setup
- etcd_secret_changed | default(false) - etcd_secret_changed
# After etcd cluster is assembled, make sure that # After etcd cluster is assembled, make sure that
# initial state of the cluster is in `existing` # initial state of the cluster is in `existing`

View File

@@ -1,9 +1,11 @@
--- ---
- name: Add Helm repositories - name: Add Helm repositories
environment: "{{ proxy_env }}"
kubernetes.core.helm_repository: "{{ helm_repository_defaults | combine(item) }}" # noqa args[module] kubernetes.core.helm_repository: "{{ helm_repository_defaults | combine(item) }}" # noqa args[module]
loop: "{{ repositories }}" loop: "{{ repositories }}"
- name: Update Helm repositories - name: Update Helm repositories
environment: "{{ proxy_env }}"
kubernetes.core.helm: kubernetes.core.helm:
state: absent state: absent
binary_path: "{{ bin_dir }}/helm" binary_path: "{{ bin_dir }}/helm"
@@ -15,5 +17,6 @@
- helm_update - helm_update
- name: Install Helm Applications - name: Install Helm Applications
environment: "{{ proxy_env }}"
kubernetes.core.helm: "{{ helm_defaults | combine(release_common_opts, item) }}" # noqa args[module] kubernetes.core.helm: "{{ helm_defaults | combine(release_common_opts, item) }}" # noqa args[module]
loop: "{{ releases }}" loop: "{{ releases }}"

View File

@@ -39,8 +39,6 @@ spec:
type: RuntimeDefault type: RuntimeDefault
supplementalGroups: [ 65534 ] supplementalGroups: [ 65534 ]
fsGroup: 65534 fsGroup: 65534
nodeSelector:
kubernetes.io/os: linux
tolerations: tolerations:
- effect: NoSchedule - effect: NoSchedule
key: node-role.kubernetes.io/control-plane key: node-role.kubernetes.io/control-plane

View File

@@ -4,11 +4,11 @@
include_vars: "{{ item }}" include_vars: "{{ item }}"
with_first_found: with_first_found:
- files: - files:
- "{{ ansible_distribution | lower }}-{{ ansible_distribution_version | lower | replace('/', '_') }}.yml" - "{{ ansible_facts['distribution'] | lower }}-{{ ansible_facts['distribution_version'] | lower | replace('/', '_') }}.yml"
- "{{ ansible_distribution | lower }}-{{ ansible_distribution_release }}.yml" - "{{ ansible_facts['distribution'] | lower }}-{{ ansible_facts['distribution_release'] }}.yml"
- "{{ ansible_distribution | lower }}-{{ ansible_distribution_major_version | lower | replace('/', '_') }}.yml" - "{{ ansible_facts['distribution'] | lower }}-{{ ansible_facts['distribution_major_version'] | lower | replace('/', '_') }}.yml"
- "{{ ansible_distribution | lower }}.yml" - "{{ ansible_facts['distribution'] | lower }}.yml"
- "{{ ansible_os_family | lower }}.yml" - "{{ ansible_facts['os_family'] | lower }}.yml"
skip: true skip: true
- name: Container Engine Acceleration Nvidia GPU | Set fact of download url Tesla - name: Container Engine Acceleration Nvidia GPU | Set fact of download url Tesla

View File

@@ -1,8 +1,8 @@
--- ---
cinder_csi_attacher_image_tag: "v4.4.2" cinder_csi_attacher_image_tag: "v4.5.1"
cinder_csi_provisioner_image_tag: "v3.6.2" cinder_csi_provisioner_image_tag: "v4.0.1"
cinder_csi_snapshotter_image_tag: "v6.3.2" cinder_csi_snapshotter_image_tag: "v7.0.2"
cinder_csi_resizer_image_tag: "v1.9.2" cinder_csi_resizer_image_tag: "v1.10.1"
cinder_csi_livenessprobe_image_tag: "v2.11.0" cinder_csi_livenessprobe_image_tag: "v2.11.0"
# To access Cinder, the CSI controller will need credentials to access # To access Cinder, the CSI controller will need credentials to access

View File

@@ -24,7 +24,7 @@ spec:
- start - start
- --config - --config
- /etc/config/config.json - /etc/config/config.json
{% if local_path_provisioner_debug | default(false) %} {% if local_path_provisioner_debug %}
- --debug - --debug
{% endif %} {% endif %}
volumeMounts: volumeMounts:

View File

@@ -3,11 +3,11 @@
include_vars: "{{ item }}" include_vars: "{{ item }}"
with_first_found: with_first_found:
- files: - files:
- "{{ ansible_distribution | lower }}-{{ ansible_distribution_version | lower | replace('/', '_') }}.yml" - "{{ ansible_facts['distribution'] | lower }}-{{ ansible_facts['distribution_version'] | lower | replace('/', '_') }}.yml"
- "{{ ansible_distribution | lower }}-{{ ansible_distribution_release }}.yml" - "{{ ansible_facts['distribution'] | lower }}-{{ ansible_facts['distribution_release'] }}.yml"
- "{{ ansible_distribution | lower }}-{{ ansible_distribution_major_version | lower | replace('/', '_') }}.yml" - "{{ ansible_facts['distribution'] | lower }}-{{ ansible_facts['distribution_major_version'] | lower | replace('/', '_') }}.yml"
- "{{ ansible_distribution | lower }}.yml" - "{{ ansible_facts['distribution'] | lower }}.yml"
- "{{ ansible_os_family | lower }}.yml" - "{{ ansible_facts['os_family'] | lower }}.yml"
- defaults.yml - defaults.yml
paths: paths:
- ../vars - ../vars
@@ -21,7 +21,7 @@
- name: Helm | Install PyYaml [flatcar] - name: Helm | Install PyYaml [flatcar]
include_tasks: pyyaml-flatcar.yml include_tasks: pyyaml-flatcar.yml
when: ansible_os_family in ["Flatcar", "Flatcar Container Linux by Kinvolk"] when: ansible_facts['os_family'] in ["Flatcar", "Flatcar Container Linux by Kinvolk"]
- name: Helm | Download helm - name: Helm | Download helm
include_tasks: "../../../download/tasks/download_file.yml" include_tasks: "../../../download/tasks/download_file.yml"

View File

@@ -4,9 +4,7 @@ dependencies:
when: when:
- inventory_hostname == groups['kube_control_plane'][0] - inventory_hostname == groups['kube_control_plane'][0]
- kubelet_csr_approver_enabled - kubelet_csr_approver_enabled
environment: environment: "{{ proxy_env }}"
http_proxy: "{{ http_proxy | default('') }}"
https_proxy: "{{ https_proxy | default('') }}"
release_common_opts: {} release_common_opts: {}
releases: releases:
- name: kubelet-csr-approver - name: kubelet-csr-approver

View File

@@ -3,7 +3,8 @@
fail: fail:
msg: "MetalLB require kube_proxy_strict_arp = true, see https://github.com/danderson/metallb/issues/153#issuecomment-518651132" msg: "MetalLB require kube_proxy_strict_arp = true, see https://github.com/danderson/metallb/issues/153#issuecomment-518651132"
when: when:
- "kube_proxy_mode == 'ipvs' and not kube_proxy_strict_arp" - kube_proxy_mode == 'ipvs' and not kube_proxy_strict_arp
- not kube_proxy_remove
- name: Kubernetes Apps | Check that the deprecated 'matallb_auto_assign' variable is not used anymore - name: Kubernetes Apps | Check that the deprecated 'matallb_auto_assign' variable is not used anymore
fail: fail:

View File

@@ -26,7 +26,7 @@ spec:
spec: spec:
priorityClassName: system-cluster-critical priorityClassName: system-cluster-critical
serviceAccountName: metrics-server serviceAccountName: metrics-server
hostNetwork: {{ metrics_server_host_network | default(false) }} hostNetwork: {{ metrics_server_host_network }}
containers: containers:
- name: metrics-server - name: metrics-server
image: {{ metrics_server_image_repo }}:{{ metrics_server_image_tag }} image: {{ metrics_server_image_repo }}:{{ metrics_server_image_tag }}

View File

@@ -71,6 +71,7 @@ rules:
- blockaffinities - blockaffinities
- ipamblocks - ipamblocks
- ipamhandles - ipamhandles
- ipamconfigs
- tiers - tiers
verbs: verbs:
- get - get
@@ -124,4 +125,12 @@ rules:
- list - list
- update - update
- watch - watch
# Namespaces are watched for LoadBalancer IP allocation with namespace selector support
- apiGroups: [""]
resources:
- namespaces
verbs:
- get
- list
- watch
{% endif %} {% endif %}

View File

@@ -41,6 +41,9 @@ control_plane_health_retries: 60 # Default retries for apiserver, scheduler, co
kube_controller_manager_leader_elect_lease_duration: 15s kube_controller_manager_leader_elect_lease_duration: 15s
kube_controller_manager_leader_elect_renew_deadline: 10s kube_controller_manager_leader_elect_renew_deadline: 10s
# Controls whether or not the kube_controller_manager allocates subnets for the node object
kube_controller_manager_allocate_node_cidrs: true
# discovery_timeout modifies the discovery timeout # discovery_timeout modifies the discovery timeout
discovery_timeout: 5m0s discovery_timeout: 5m0s

View File

@@ -5,6 +5,6 @@ dependencies:
user: "{{ addusers.etcd }}" user: "{{ addusers.etcd }}"
when: when:
- etcd_deployment_type == "kubeadm" - etcd_deployment_type == "kubeadm"
- not (ansible_os_family in ["Flatcar", "Flatcar Container Linux by Kinvolk", "ClearLinux"] or is_fedora_coreos) - not (ansible_facts['os_family'] in ["Flatcar", "Flatcar Container Linux by Kinvolk", "ClearLinux"] or is_fedora_coreos)
- role: network_plugin/calico_defaults - role: network_plugin/calico_defaults
- role: etcd_defaults - role: etcd_defaults

View File

@@ -84,23 +84,49 @@
- not kubeadm_already_run.stat.exists - not kubeadm_already_run.stat.exists
- name: Joining control plane node to the cluster. - name: Joining control plane node to the cluster.
command: >-
{{ bin_dir }}/kubeadm join
--config {{ kube_config_dir }}/kubeadm-controlplane.yaml
--ignore-preflight-errors={{ kubeadm_ignore_preflight_errors | join(',') }}
--skip-phases={{ kubeadm_join_phases_skip | join(',') }}
environment:
PATH: "{{ bin_dir }}:{{ ansible_env.PATH }}"
register: kubeadm_join_control_plane
retries: 3
throttle: 1
until: kubeadm_join_control_plane is succeeded
when: when:
- inventory_hostname != first_kube_control_plane - inventory_hostname != first_kube_control_plane
- kubeadm_already_run is not defined or not kubeadm_already_run.stat.exists - kubeadm_already_run is not defined or not kubeadm_already_run.stat.exists
environment:
PATH: "{{ bin_dir }}:{{ ansible_env.PATH }}"
block:
- name: Joining control plane node to the cluster. (1st try)
command: >-
{{ bin_dir }}/kubeadm join
--config {{ kube_config_dir }}/kubeadm-controlplane.yaml
--ignore-preflight-errors={{ kubeadm_ignore_preflight_errors | join(',') }}
--skip-phases={{ kubeadm_join_phases_skip | join(',') }}
register: kubeadm_join_control_plane
throttle: 1
rescue:
- name: Reset cert directory before retrying control plane join
command: "{{ bin_dir }}/kubeadm reset -f --cert-dir {{ kube_cert_dir }}"
environment:
PATH: "{{ bin_dir }}:{{ ansible_env.PATH }}"
- name: Joining control plane node to the cluster. (retry)
command: >-
{{ bin_dir }}/kubeadm join
--config {{ kube_config_dir }}/kubeadm-controlplane.yaml
--ignore-preflight-errors={{ _ignore_errors | flatten | join(',') }}
--skip-phases={{ kubeadm_join_phases_skip | join(',') }}
vars:
_errors_from_first_try:
- 'FileAvailable--etc-kubernetes-manifests-kube-controller-manager.yaml'
- 'FileAvailable--etc-kubernetes-manifests-kube-scheduler.yaml'
- 'FileAvailable--etc-kubernetes-manifests-kube-apiserver.yaml'
- 'Port-10250'
_ignore_errors:
- "{{ kubeadm_ignore_preflight_errors }}"
- "{{ _errors_from_first_try if 'all' not in kubeadm_ignore_preflight_errors else [] }}"
register: kubeadm_join_control_plane
retries: 2
until: kubeadm_join_control_plane is succeeded
throttle: 1
- name: Wait for new control plane nodes to be Ready - name: Wait for new control plane nodes to be Ready
when: kubeadm_already_run.stat.exists when:
- kubeadm_already_run.stat.exists
- kube_network_plugin not in ['cni', 'none']
run_once: true run_once: true
command: > command: >
{{ kubectl }} get nodes --selector node-role.kubernetes.io/control-plane {{ kubectl }} get nodes --selector node-role.kubernetes.io/control-plane

View File

@@ -68,7 +68,7 @@
- name: Install kubectl bash completion - name: Install kubectl bash completion
shell: "{{ bin_dir }}/kubectl completion bash >/etc/bash_completion.d/kubectl.sh" shell: "{{ bin_dir }}/kubectl completion bash >/etc/bash_completion.d/kubectl.sh"
when: ansible_os_family in ["Debian","RedHat", "Suse"] when: ansible_facts['os_family'] in ["Debian","RedHat", "Suse"]
tags: tags:
- kubectl - kubectl
ignore_errors: true # noqa ignore-errors ignore_errors: true # noqa ignore-errors
@@ -79,7 +79,7 @@
owner: root owner: root
group: root group: root
mode: "0755" mode: "0755"
when: ansible_os_family in ["Debian","RedHat", "Suse"] when: ansible_facts['os_family'] in ["Debian","RedHat", "Suse"]
tags: tags:
- kubectl - kubectl
- upgrade - upgrade
@@ -98,7 +98,7 @@
state: present state: present
marker: "# Ansible entries {mark}" marker: "# Ansible entries {mark}"
when: when:
- ansible_os_family in ["Debian","RedHat", "Suse"] - ansible_facts['os_family'] in ["Debian","RedHat", "Suse"]
- kubectl_alias is defined and kubectl_alias != "" - kubectl_alias is defined and kubectl_alias != ""
tags: tags:
- kubectl - kubectl

View File

@@ -156,8 +156,6 @@ apiServer:
- name: disable-admission-plugins - name: disable-admission-plugins
value: "{{ kube_apiserver_disable_admission_plugins | join(',') }}" value: "{{ kube_apiserver_disable_admission_plugins | join(',') }}"
{% endif %} {% endif %}
- name: apiserver-count
value: "{{ kube_apiserver_count }}"
- name: endpoint-reconciler-type - name: endpoint-reconciler-type
value: lease value: lease
{% if etcd_events_cluster_enabled %} {% if etcd_events_cluster_enabled %}
@@ -365,7 +363,17 @@ controllerManager:
{% endif %} {% endif %}
- name: service-cluster-ip-range - name: service-cluster-ip-range
value: "{{ kube_service_subnets }}" value: "{{ kube_service_subnets }}"
{% if kube_network_plugin is defined and kube_network_plugin == "calico" and not calico_ipam_host_local %} {% if not kube_controller_manager_allocate_node_cidrs
or kube_network_plugin is defined and (
(
kube_network_plugin == "calico" and
not calico_ipam_host_local
) or (
kube_network_plugin == "cilium" and
cilium_ipam_mode == "cluster-pool"
)
)
%}
- name: allocate-node-cidrs - name: allocate-node-cidrs
value: "false" value: "false"
{% else %} {% else %}
@@ -578,9 +586,18 @@ clusterDNS:
{% for dns_address in kubelet_cluster_dns %} {% for dns_address in kubelet_cluster_dns %}
- {{ dns_address }} - {{ dns_address }}
{% endfor %} {% endfor %}
{% if kubelet_feature_gates or kube_feature_gates %} {% set disable_websockets_to_kubelet = (container_manager == 'docker' and kube_version is version('1.36.0', '>=')) %}
{% set feature_gates = ( kubelet_feature_gates | default(kube_feature_gates, true) ) %} {% set feature_gates = ( kubelet_feature_gates | default(kube_feature_gates, true) ) %}
{% if disable_websockets_to_kubelet %}
{% set feature_gates = feature_gates | reject('search', '^ExtendWebSocketsToKubelet=') | list %}
{% endif %}
{% if feature_gates or disable_websockets_to_kubelet %}
featureGates: featureGates:
{% if disable_websockets_to_kubelet %}
# cri-dockerd does not support WebSocket streaming
# https://github.com/kubernetes-sigs/kubespray/issues/13360
ExtendWebSocketsToKubelet: false
{% endif %}
{% for feature in feature_gates %} {% for feature in feature_gates %}
{{ feature | replace("=", ": ") }} {{ feature | replace("=", ": ") }}
{% endfor %} {% endfor %}

View File

@@ -56,7 +56,6 @@ system_pid_reserved: 1000
## Eviction Thresholds to avoid system OOMs ## Eviction Thresholds to avoid system OOMs
# https://kubernetes.io/docs/tasks/administer-cluster/reserve-compute-resources/#eviction-thresholds # https://kubernetes.io/docs/tasks/administer-cluster/reserve-compute-resources/#eviction-thresholds
eviction_hard: {} eviction_hard: {}
eviction_hard_control_plane: {}
kubelet_status_update_frequency: 10s kubelet_status_update_frequency: 10s
@@ -88,6 +87,9 @@ kube_vip_retryperiod: 1
kube_vip_enable_node_labeling: false kube_vip_enable_node_labeling: false
kube_vip_bgp_sourceip: kube_vip_bgp_sourceip:
kube_vip_bgp_sourceif: kube_vip_bgp_sourceif:
kube_vip_metrics_enabled: false
# TCP port for kube-vip Prometheus metrics; manifest sets prometheus_server to :PORT (same as kube-vip upstream default, see cmd/kube-vip.go).
kube_vip_metrics_port: 2112
# Requests for load balancer app # Requests for load balancer app
loadbalancer_apiserver_memory_requests: 32M loadbalancer_apiserver_memory_requests: 32M

View File

@@ -54,9 +54,9 @@
include_vars: "{{ item }}" include_vars: "{{ item }}"
with_first_found: with_first_found:
- files: - files:
- "{{ ansible_distribution | lower }}-{{ ansible_distribution_version | lower | replace('/', '_') }}.yml" - "{{ ansible_facts['distribution'] | lower }}-{{ ansible_facts['distribution_version'] | lower | replace('/', '_') }}.yml"
- "{{ ansible_distribution | lower }}-{{ ansible_distribution_release }}.yml" - "{{ ansible_facts['distribution'] | lower }}-{{ ansible_facts['distribution_release'] }}.yml"
- "{{ ansible_distribution | lower }}-{{ ansible_distribution_major_version | lower | replace('/', '_') }}.yml" - "{{ ansible_facts['distribution'] | lower }}-{{ ansible_facts['distribution_major_version'] | lower | replace('/', '_') }}.yml"
- "{{ ansible_distribution | lower }}.yml" - "{{ ansible_facts['distribution'] | lower }}.yml"
- "{{ ansible_os_family | lower }}.yml" - "{{ ansible_facts['os_family'] | lower }}.yml"
skip: true skip: true

View File

@@ -33,7 +33,7 @@
src: "kubelet.service.j2" src: "kubelet.service.j2"
dest: "/etc/systemd/system/kubelet.service" dest: "/etc/systemd/system/kubelet.service"
backup: true backup: true
mode: "0600" mode: "0644"
validate: "sh -c '[ -f /usr/bin/systemd/system/factory-reset.target ] || exit 0 && systemd-analyze verify %s:kubelet.service'" validate: "sh -c '[ -f /usr/bin/systemd/system/factory-reset.target ] || exit 0 && systemd-analyze verify %s:kubelet.service'"
# FIXME: check that systemd version >= 250 (factory-reset.target was introduced in that release) # FIXME: check that systemd version >= 250 (factory-reset.target was introduced in that release)
# Remove once we drop support for systemd < 250 # Remove once we drop support for systemd < 250

View File

@@ -4,6 +4,7 @@
msg: "kube-vip require kube_proxy_strict_arp = true, see https://github.com/kube-vip/kube-vip/blob/main/docs/kubernetes/arp/index.md" msg: "kube-vip require kube_proxy_strict_arp = true, see https://github.com/kube-vip/kube-vip/blob/main/docs/kubernetes/arp/index.md"
when: when:
- kube_proxy_mode == 'ipvs' and not kube_proxy_strict_arp - kube_proxy_mode == 'ipvs' and not kube_proxy_strict_arp
- not kube_proxy_remove
- kube_vip_arp_enabled - kube_vip_arp_enabled
- name: Kube-vip | Check mutually exclusive BGP source settings - name: Kube-vip | Check mutually exclusive BGP source settings

View File

@@ -114,7 +114,9 @@
state: present state: present
persistent: present persistent: present
loop: "{{ kube_proxy_ipvs_modules }}" loop: "{{ kube_proxy_ipvs_modules }}"
when: kube_proxy_mode == 'ipvs' when:
- kube_proxy_mode == 'ipvs'
- not kube_proxy_remove
tags: tags:
- kube-proxy - kube-proxy
@@ -130,6 +132,7 @@
- nf_conntrack_ipv4 - nf_conntrack_ipv4
when: when:
- kube_proxy_mode == 'ipvs' - kube_proxy_mode == 'ipvs'
- not kube_proxy_remove
- modprobe_conntrack_module is not defined or modprobe_conntrack_module is ansible.builtin.failed # loop until first success - modprobe_conntrack_module is not defined or modprobe_conntrack_module is ansible.builtin.failed # loop until first success
tags: tags:
- kube-proxy - kube-proxy
@@ -139,7 +142,9 @@
name: "nf_tables" name: "nf_tables"
state: present state: present
persistent: present persistent: present
when: kube_proxy_mode == 'nftables' when:
- kube_proxy_mode == 'nftables'
- not kube_proxy_remove
tags: tags:
- kube-proxy - kube-proxy

View File

@@ -81,9 +81,19 @@ resolvConf: "{{ kube_resolv_conf }}"
{% if kubelet_config_extra_args %} {% if kubelet_config_extra_args %}
{{ kubelet_config_extra_args | to_nice_yaml(indent=2) }} {{ kubelet_config_extra_args | to_nice_yaml(indent=2) }}
{% endif %} {% endif %}
{% if kubelet_feature_gates or kube_feature_gates %} {% set disable_websockets_to_kubelet = (container_manager == 'docker' and kube_version is version('1.36.0', '>=')) %}
{% set kubelet_gates = (kubelet_feature_gates | default(kube_feature_gates, true)) %}
{% if disable_websockets_to_kubelet %}
{% set kubelet_gates = kubelet_gates | reject('search', '^ExtendWebSocketsToKubelet=') | list %}
{% endif %}
{% if kubelet_gates or disable_websockets_to_kubelet %}
featureGates: featureGates:
{% for feature in (kubelet_feature_gates | default(kube_feature_gates, true)) %} {% if disable_websockets_to_kubelet %}
# cri-dockerd does not support WebSocket streaming
# https://github.com/kubernetes-sigs/kubespray/issues/13360
ExtendWebSocketsToKubelet: false
{% endif %}
{% for feature in kubelet_gates %}
{{ feature | replace("=", ": ") }} {{ feature | replace("=", ": ") }}
{% endfor %} {% endfor %}
{% endif %} {% endif %}

View File

@@ -1,7 +1,7 @@
error_log stderr notice; error_log stderr notice;
worker_processes 2; worker_processes 2;
worker_rlimit_nofile 130048; worker_rlimit_nofile 65535;
worker_shutdown_timeout 10s; worker_shutdown_timeout 10s;
events { events {

View File

@@ -109,11 +109,21 @@ spec:
{% if kube_vip_lb_fwdmethod %} {% if kube_vip_lb_fwdmethod %}
- name: lb_fwdmethod - name: lb_fwdmethod
value: {{ kube_vip_lb_fwdmethod | string | to_json }} value: {{ kube_vip_lb_fwdmethod | string | to_json }}
{% endif %}
{% if kube_vip_metrics_enabled %}
- name: prometheus_server
value: {{ (':' ~ (kube_vip_metrics_port | string)) | to_json }}
{% endif %} {% endif %}
image: {{ kube_vip_image_repo }}:{{ kube_vip_image_tag }} image: {{ kube_vip_image_repo }}:{{ kube_vip_image_tag }}
imagePullPolicy: {{ k8s_image_pull_policy }} imagePullPolicy: {{ k8s_image_pull_policy }}
name: kube-vip name: kube-vip
resources: {} resources: {}
{% if kube_vip_metrics_enabled %}
ports:
- name: metrics
containerPort: {{ kube_vip_metrics_port }}
protocol: TCP
{% endif %}
{% if kube_vip_lb_fwdmethod == "masquerade" %} {% if kube_vip_lb_fwdmethod == "masquerade" %}
securityContext: securityContext:
privileged: true privileged: true

View File

@@ -8,6 +8,9 @@ cloud_resolver: []
disable_host_nameservers: false disable_host_nameservers: false
# Kubespray sets this to true after clusterDNS is running to apply changes to the host resolv.conf # Kubespray sets this to true after clusterDNS is running to apply changes to the host resolv.conf
dns_late: false dns_late: false
# DNS resolver option timeout and retry attempts.
dns_timeout: 2
dns_attempts: 2
# Set to true if your network does not support IPv6 # Set to true if your network does not support IPv6
# This may be necessary for pulling Docker images from # This may be necessary for pulling Docker images from
@@ -104,7 +107,7 @@ redhat_os_family_extensions:
- "UniontechOS" - "UniontechOS"
# Sets DNSStubListener=no, useful if you get "0.0.0.0:53: bind: address already in use" # Sets DNSStubListener=no, useful if you get "0.0.0.0:53: bind: address already in use"
systemd_resolved_disable_stub_listener: "{{ ansible_os_family in ['Flatcar', 'Flatcar Container Linux by Kinvolk'] }}" systemd_resolved_disable_stub_listener: "{{ ansible_facts['os_family'] in ['Flatcar', 'Flatcar Container Linux by Kinvolk'] }}"
# Used to disable File Access Policy Daemon service. # Used to disable File Access Policy Daemon service.
# If service is enabled, the CNI plugin installation will fail # If service is enabled, the CNI plugin installation will fail

View File

@@ -1,7 +1,7 @@
--- ---
- name: Preinstall | apply resolvconf cloud-init - name: Preinstall | apply resolvconf cloud-init
command: /usr/bin/coreos-cloudinit --from-file {{ resolveconf_cloud_init_conf }} command: /usr/bin/coreos-cloudinit --from-file {{ resolveconf_cloud_init_conf }}
when: ansible_os_family in ["Flatcar", "Flatcar Container Linux by Kinvolk"] when: ansible_facts['os_family'] in ["Flatcar", "Flatcar Container Linux by Kinvolk"]
listen: Preinstall | propagate resolvconf to k8s components listen: Preinstall | propagate resolvconf to k8s components
- name: Preinstall | reload NetworkManager - name: Preinstall | reload NetworkManager

View File

@@ -1,9 +1,12 @@
--- ---
- name: Set os_family fact for other redhat-based operating systems - name: Normalize ansible_facts for redhat-family extensions
set_fact: set_fact:
ansible_os_family: "RedHat" ansible_facts: >-
ansible_distribution_major_version: "8" {{ ansible_facts | combine({
when: ansible_distribution in redhat_os_family_extensions 'os_family': 'RedHat',
'distribution_major_version': '8'
}) }}
when: ansible_facts['distribution'] in redhat_os_family_extensions
tags: tags:
- facts - facts
@@ -86,12 +89,12 @@
{%- if resolvconf | bool -%}/etc/resolvconf/resolv.conf.d/base{%- endif -%} {%- if resolvconf | bool -%}/etc/resolvconf/resolv.conf.d/base{%- endif -%}
head: >- head: >-
{%- if resolvconf | bool -%}/etc/resolvconf/resolv.conf.d/head{%- endif -%} {%- if resolvconf | bool -%}/etc/resolvconf/resolv.conf.d/head{%- endif -%}
when: not ansible_os_family in ["Flatcar", "Flatcar Container Linux by Kinvolk"] and not is_fedora_coreos when: ansible_facts['os_family'] not in ["Flatcar", "Flatcar Container Linux by Kinvolk"] and not is_fedora_coreos
- name: Target temporary resolvconf cloud init file (Flatcar Container Linux by Kinvolk / Fedora CoreOS) - name: Target temporary resolvconf cloud init file (Flatcar Container Linux by Kinvolk / Fedora CoreOS)
set_fact: set_fact:
resolvconffile: /tmp/resolveconf_cloud_init_conf resolvconffile: /tmp/resolveconf_cloud_init_conf
when: ansible_os_family in ["Flatcar", "Flatcar Container Linux by Kinvolk"] or is_fedora_coreos when: ansible_facts['os_family'] in ["Flatcar", "Flatcar Container Linux by Kinvolk"] or is_fedora_coreos
- name: Check if /etc/dhclient.conf exists - name: Check if /etc/dhclient.conf exists
stat: stat:
@@ -122,12 +125,12 @@
- name: Target dhclient hook file for Red Hat family - name: Target dhclient hook file for Red Hat family
set_fact: set_fact:
dhclienthookfile: /etc/dhcp/dhclient.d/zdnsupdate.sh dhclienthookfile: /etc/dhcp/dhclient.d/zdnsupdate.sh
when: ansible_os_family == "RedHat" when: ansible_facts['os_family'] == "RedHat"
- name: Target dhclient hook file for Debian family - name: Target dhclient hook file for Debian family
set_fact: set_fact:
dhclienthookfile: /etc/dhcp/dhclient-exit-hooks.d/zdnsupdate dhclienthookfile: /etc/dhcp/dhclient-exit-hooks.d/zdnsupdate
when: ansible_os_family == "Debian" when: ansible_facts['os_family'] == "Debian"
- name: Set etcd vars if using kubeadm mode - name: Set etcd vars if using kubeadm mode
set_fact: set_fact:

View File

@@ -15,25 +15,25 @@
- not ignore_assert_errors - not ignore_assert_errors
- name: Stop if non systemd OS type - name: Stop if non systemd OS type
assert: assert:
that: ansible_service_mgr == "systemd" that: ansible_facts['service_mgr'] == "systemd"
when: not ignore_assert_errors when: not ignore_assert_errors
- name: Stop if the os does not support - name: Stop if the os does not support
assert: assert:
that: (allow_unsupported_distribution_setup | default(false)) or ansible_distribution in supported_os_distributions that: (allow_unsupported_distribution_setup | default(false)) or ansible_facts['distribution'] in supported_os_distributions
msg: "{{ ansible_distribution }} is not a known OS" msg: "{{ ansible_facts['distribution'] }} is not a known OS"
when: not ignore_assert_errors when: not ignore_assert_errors
- name: Stop if memory is too small for control plane nodes - name: Stop if memory is too small for control plane nodes
assert: assert:
that: ansible_memtotal_mb >= minimal_master_memory_mb that: ansible_facts['memtotal_mb'] >= minimal_master_memory_mb
when: when:
- not ignore_assert_errors - not ignore_assert_errors
- ('kube_control_plane' in group_names) - ('kube_control_plane' in group_names)
- name: Stop if memory is too small for nodes - name: Stop if memory is too small for nodes
assert: assert:
that: ansible_memtotal_mb >= minimal_node_memory_mb that: ansible_facts['memtotal_mb'] >= minimal_node_memory_mb
when: when:
- not ignore_assert_errors - not ignore_assert_errors
- ('kube_node' in group_names) - ('kube_node' in group_names)
@@ -47,8 +47,8 @@
- name: Stop if ip var does not match local ips - name: Stop if ip var does not match local ips
assert: assert:
that: (ip in ansible_all_ipv4_addresses) or (ip in ansible_all_ipv6_addresses) that: (ip in ansible_facts['all_ipv4_addresses']) or (ip in ansible_facts['all_ipv6_addresses'])
msg: "IPv4: '{{ ansible_all_ipv4_addresses }}' and IPv6: '{{ ansible_all_ipv6_addresses }}' do not contain '{{ ip }}'" msg: "IPv4: '{{ ansible_facts['all_ipv4_addresses'] }}' and IPv6: '{{ ansible_facts['all_ipv6_addresses'] }}' do not contain '{{ ip }}'"
when: when:
- not ignore_assert_errors - not ignore_assert_errors
- ip is defined - ip is defined
@@ -63,16 +63,29 @@
- name: Stop if kernel version is too low for cilium - name: Stop if kernel version is too low for cilium
assert: assert:
that: ansible_kernel.split('-')[0] is version('4.9.17', '>=') that: ansible_facts['kernel'].split('-')[0] is version('4.9.17', '>=')
when:
- kube_network_plugin == 'cilium' or cilium_deploy_additionally
- not ignore_assert_errors
- name: Stop if kube_owner is not root when using cilium
assert:
that: kube_owner == 'root'
fail_msg: |
kube_owner is set to '{{ kube_owner }}', but cilium requires it to be 'root'.
Cilium's init containers run as UID 0 with capabilities (including CAP_DAC_OVERRIDE) dropped,
so host paths it writes to (e.g. /opt/cni/bin) must be owned by root or it will fail with
a permission error. See https://github.com/kubernetes-sigs/kubespray/issues/13378
when: when:
- kube_network_plugin == 'cilium' or cilium_deploy_additionally - kube_network_plugin == 'cilium' or cilium_deploy_additionally
- not ignore_assert_errors - not ignore_assert_errors
- name: Stop if kernel version is too low for nftables - name: Stop if kernel version is too low for nftables
assert: assert:
that: ansible_kernel.split('-')[0] is version('5.13', '>=') that: ansible_facts['kernel'].split('-')[0] is version('5.13', '>=')
when: when:
- kube_proxy_mode == 'nftables' - kube_proxy_mode == 'nftables'
- not kube_proxy_remove
- not ignore_assert_errors - not ignore_assert_errors
- name: Stop if bad hostname - name: Stop if bad hostname
@@ -92,6 +105,6 @@
- name: Stop if download_localhost is enabled for Flatcar Container Linux - name: Stop if download_localhost is enabled for Flatcar Container Linux
assert: assert:
that: ansible_os_family not in ["Flatcar", "Flatcar Container Linux by Kinvolk"] that: ansible_facts['os_family'] not in ["Flatcar", "Flatcar Container Linux by Kinvolk"]
msg: "download_run_once not supported for Flatcar Container Linux" msg: "download_run_once not supported for Flatcar Container Linux"
when: download_run_once or download_force_cache when: download_run_once or download_force_cache

View File

@@ -1,7 +1,7 @@
--- ---
- name: Create temporary resolveconf cloud init file - name: Create temporary resolveconf cloud init file
command: cp -f /etc/resolv.conf "{{ resolvconffile }}" command: cp -f /etc/resolv.conf "{{ resolvconffile }}"
when: ansible_os_family in ["Flatcar", "Flatcar Container Linux by Kinvolk"] when: ansible_facts['os_family'] in ["Flatcar", "Flatcar Container Linux by Kinvolk"]
- name: Add domain/search/nameservers/options to resolv.conf - name: Add domain/search/nameservers/options to resolv.conf
blockinfile: blockinfile:
@@ -12,7 +12,7 @@
{% for item in nameserverentries %} {% for item in nameserverentries %}
nameserver {{ item }} nameserver {{ item }}
{% endfor %} {% endfor %}
options ndots:{{ ndots }} timeout:{{ dns_timeout | default('2') }} attempts:{{ dns_attempts | default('2') }} options ndots:{{ ndots }} timeout:{{ dns_timeout }} attempts:{{ dns_attempts }}
state: present state: present
insertbefore: BOF insertbefore: BOF
create: true create: true
@@ -45,7 +45,7 @@
- name: Get temporary resolveconf cloud init file content - name: Get temporary resolveconf cloud init file content
command: cat {{ resolvconffile }} command: cat {{ resolvconffile }}
register: cloud_config register: cloud_config
when: ansible_os_family in ["Flatcar", "Flatcar Container Linux by Kinvolk"] when: ansible_facts['os_family'] in ["Flatcar", "Flatcar Container Linux by Kinvolk"]
- name: Persist resolvconf cloud init file - name: Persist resolvconf cloud init file
template: template:
@@ -54,4 +54,4 @@
owner: root owner: root
mode: "0644" mode: "0644"
notify: Preinstall | propagate resolvconf to k8s components notify: Preinstall | propagate resolvconf to k8s components
when: ansible_os_family in ["Flatcar", "Flatcar Container Linux by Kinvolk"] when: ansible_facts['os_family'] in ["Flatcar", "Flatcar Container Linux by Kinvolk"]

View File

@@ -32,7 +32,7 @@
path: /etc/NetworkManager/conf.d/dns.conf path: /etc/NetworkManager/conf.d/dns.conf
section: global-dns section: global-dns
option: options option: options
value: "ndots:{{ ndots }},timeout:{{ dns_timeout | default('2') }},attempts:{{ dns_attempts | default('2') }}" value: "ndots:{{ ndots }},timeout:{{ dns_timeout }},attempts:{{ dns_attempts }}"
mode: '0600' mode: '0600'
backup: "{{ leave_etc_backup_files }}" backup: "{{ leave_etc_backup_files }}"
notify: Preinstall | update resolvconf for networkmanager notify: Preinstall | update resolvconf for networkmanager

View File

@@ -7,8 +7,8 @@
get_checksum: false get_checksum: false
get_mime: false get_mime: false
when: when:
- ansible_os_family == "RedHat" - ansible_facts['os_family'] == "RedHat"
- "'Amazon' not in ansible_distribution" - "'Amazon' not in ansible_facts['distribution']"
register: slc register: slc
- name: Set selinux policy - name: Set selinux policy
@@ -16,8 +16,8 @@
policy: targeted policy: targeted
state: "{{ preinstall_selinux_state }}" state: "{{ preinstall_selinux_state }}"
when: when:
- ansible_os_family == "RedHat" - ansible_facts['os_family'] == "RedHat"
- "'Amazon' not in ansible_distribution" - "'Amazon' not in ansible_facts['distribution']"
- slc.stat.exists - slc.stat.exists
tags: tags:
- bootstrap_os - bootstrap_os
@@ -32,7 +32,7 @@
mode: "0644" mode: "0644"
when: when:
- disable_ipv6_dns - disable_ipv6_dns
- not ansible_os_family in ["Flatcar", "Flatcar Container Linux by Kinvolk"] - ansible_facts['os_family'] not in ["Flatcar", "Flatcar Container Linux by Kinvolk"]
tags: tags:
- bootstrap_os - bootstrap_os

View File

@@ -15,7 +15,7 @@
/etc/ntp.conf /etc/ntp.conf
{%- elif ntp_package == "ntpsec" -%} {%- elif ntp_package == "ntpsec" -%}
/etc/ntpsec/ntp.conf /etc/ntpsec/ntp.conf
{%- elif ansible_os_family in ['RedHat', 'Suse'] -%} {%- elif ansible_facts['os_family'] in ['RedHat', 'Suse'] -%}
/etc/chrony.conf /etc/chrony.conf
{%- else -%} {%- else -%}
/etc/chrony/chrony.conf /etc/chrony/chrony.conf
@@ -24,7 +24,7 @@
ntp_service_name: >- ntp_service_name: >-
{% if ntp_package == "chrony" -%} {% if ntp_package == "chrony" -%}
chronyd chronyd
{%- elif ansible_os_family in ["Flatcar", "Flatcar Container Linux by Kinvolk", "RedHat", "Suse"] -%} {%- elif ansible_facts['os_family'] in ["Flatcar", "Flatcar Container Linux by Kinvolk", "RedHat", "Suse"] -%}
ntpd ntpd
{%- else -%} {%- else -%}
ntp ntp
@@ -72,14 +72,14 @@
when: when:
- ntp_timezone - ntp_timezone
- not is_fedora_coreos - not is_fedora_coreos
- not ansible_os_family in ["Flatcar", "Flatcar Container Linux by Kinvolk"] - ansible_facts['os_family'] not in ["Flatcar", "Flatcar Container Linux by Kinvolk"]
- name: Gather selinux facts - name: Gather selinux facts
ansible.builtin.setup: ansible.builtin.setup:
gather_subset: selinux gather_subset: selinux
when: when:
- ntp_timezone - ntp_timezone
- ansible_os_family == "RedHat" - ansible_facts['os_family'] == "RedHat"
- name: Put SELinux in permissive mode, logging actions that would be blocked. - name: Put SELinux in permissive mode, logging actions that would be blocked.
ansible.posix.selinux: ansible.posix.selinux:
@@ -87,7 +87,7 @@
state: permissive state: permissive
when: when:
- ntp_timezone - ntp_timezone
- ansible_os_family == "RedHat" - ansible_facts['os_family'] == "RedHat"
- ansible_facts.selinux.status == 'enabled' - ansible_facts.selinux.status == 'enabled'
- ansible_facts.selinux.mode == 'enforcing' - ansible_facts.selinux.mode == 'enforcing'
@@ -103,5 +103,5 @@
state: "{{ preinstall_selinux_state }}" state: "{{ preinstall_selinux_state }}"
when: when:
- ntp_timezone - ntp_timezone
- ansible_os_family == "RedHat" - ansible_facts['os_family'] == "RedHat"
- ansible_facts.selinux.status == 'enabled' - ansible_facts.selinux.status == 'enabled'

View File

@@ -26,7 +26,7 @@
owner: root owner: root
mode: "0755" mode: "0755"
notify: Preinstall | propagate resolvconf to k8s components notify: Preinstall | propagate resolvconf to k8s components
when: ansible_os_family not in [ "RedHat", "Suse" ] when: ansible_facts['os_family'] not in [ "RedHat", "Suse" ]
- name: Configure dhclient hooks for resolv.conf (RH-only) - name: Configure dhclient hooks for resolv.conf (RH-only)
template: template:
@@ -35,4 +35,4 @@
owner: root owner: root
mode: "0755" mode: "0755"
notify: Preinstall | propagate resolvconf to k8s components notify: Preinstall | propagate resolvconf to k8s components
when: ansible_os_family == "RedHat" when: ansible_facts['os_family'] == "RedHat"

View File

@@ -83,7 +83,7 @@
- dns_mode != 'none' - dns_mode != 'none'
- resolvconf_mode == 'host_resolvconf' - resolvconf_mode == 'host_resolvconf'
- dhclientconffile is defined - dhclientconffile is defined
- not ansible_os_family in ["Flatcar", "Flatcar Container Linux by Kinvolk"] - ansible_facts['os_family'] not in ["Flatcar", "Flatcar Container Linux by Kinvolk"]
tags: tags:
- bootstrap_os - bootstrap_os
- resolvconf - resolvconf
@@ -94,7 +94,7 @@
- dns_mode != 'none' - dns_mode != 'none'
- resolvconf_mode != 'host_resolvconf' - resolvconf_mode != 'host_resolvconf'
- dhclientconffile is defined - dhclientconffile is defined
- not ansible_os_family in ["Flatcar", "Flatcar Container Linux by Kinvolk"] - ansible_facts['os_family'] not in ["Flatcar", "Flatcar Container Linux by Kinvolk"]
tags: tags:
- bootstrap_os - bootstrap_os
- resolvconf - resolvconf

View File

@@ -6,7 +6,7 @@
if [ $reason = "BOUND" ]; then if [ $reason = "BOUND" ]; then
if [ -n "$new_domain_search" -o -n "$new_domain_name_servers" ]; then if [ -n "$new_domain_search" -o -n "$new_domain_name_servers" ]; then
RESOLV_CONF=$(cat /etc/resolv.conf | sed -r '/^options (timeout|attempts|ndots).*$/d') RESOLV_CONF=$(cat /etc/resolv.conf | sed -r '/^options (timeout|attempts|ndots).*$/d')
OPTIONS="options timeout:{{ dns_timeout|default('2') }} attempts:{{ dns_attempts|default('2') }} ndots:{{ ndots }}" OPTIONS="options timeout:{{ dns_timeout }} attempts:{{ dns_attempts }} ndots:{{ ndots }}"
printf "%b\n" "$RESOLV_CONF\n$OPTIONS" > /etc/resolv.conf printf "%b\n" "$RESOLV_CONF\n$OPTIONS" > /etc/resolv.conf
fi fi

View File

@@ -6,7 +6,7 @@
zdnsupdate_config() { zdnsupdate_config() {
if [ -n "$new_domain_search" -o -n "$new_domain_name_servers" ]; then if [ -n "$new_domain_search" -o -n "$new_domain_name_servers" ]; then
RESOLV_CONF=$(cat /etc/resolv.conf | sed -r '/^options (timeout|attempts|ndots).*$/d') RESOLV_CONF=$(cat /etc/resolv.conf | sed -r '/^options (timeout|attempts|ndots).*$/d')
OPTIONS="options timeout:{{ dns_timeout|default('2') }} attempts:{{ dns_attempts|default('2') }} ndots:{{ ndots }}" OPTIONS="options timeout:{{ dns_timeout }} attempts:{{ dns_attempts }} ndots:{{ ndots }}"
echo -e "$RESOLV_CONF\n$OPTIONS" > /etc/resolv.conf echo -e "$RESOLV_CONF\n$OPTIONS" > /etc/resolv.conf
fi fi

View File

@@ -116,7 +116,7 @@ flannel_version: 0.28.4
flannel_cni_version: 1.7.1-flannel1 flannel_cni_version: 1.7.1-flannel1
cni_version: "{{ (cni_binary_checksums['amd64'] | dict2items)[0].key }}" cni_version: "{{ (cni_binary_checksums['amd64'] | dict2items)[0].key }}"
cilium_version: "1.19.3" cilium_version: "1.20.0"
cilium_cli_version: "{{ (ciliumcli_binary_checksums['amd64'] | dict2items)[0].key }}" cilium_cli_version: "{{ (ciliumcli_binary_checksums['amd64'] | dict2items)[0].key }}"
cilium_enable_hubble: false cilium_enable_hubble: false
@@ -161,17 +161,17 @@ cni_download_url: "{{ github_url }}/containernetworking/plugins/releases/downloa
calicoctl_download_url: "{{ github_url }}/projectcalico/calico/releases/download/v{{ calico_ctl_version }}/calicoctl-linux-{{ image_arch }}" calicoctl_download_url: "{{ github_url }}/projectcalico/calico/releases/download/v{{ calico_ctl_version }}/calicoctl-linux-{{ image_arch }}"
calico_crds_download_url: "{{ github_url }}/projectcalico/calico/raw/v{{ calico_version }}/manifests/crds.yaml" calico_crds_download_url: "{{ github_url }}/projectcalico/calico/raw/v{{ calico_version }}/manifests/crds.yaml"
ciliumcli_download_url: "{{ github_url }}/cilium/cilium-cli/releases/download/v{{ cilium_cli_version }}/cilium-linux-{{ image_arch }}.tar.gz" ciliumcli_download_url: "{{ github_url }}/cilium/cilium-cli/releases/download/v{{ cilium_cli_version }}/cilium-linux-{{ image_arch }}.tar.gz"
crictl_download_url: "{{ github_url }}/kubernetes-sigs/cri-tools/releases/download/v{{ crictl_version }}/crictl-v{{ crictl_version }}-{{ ansible_system | lower }}-{{ image_arch }}.tar.gz" crictl_download_url: "{{ github_url }}/kubernetes-sigs/cri-tools/releases/download/v{{ crictl_version }}/crictl-v{{ crictl_version }}-{{ ansible_facts['system'] | lower }}-{{ image_arch }}.tar.gz"
crio_download_url: "{{ storage_googleapis_url }}/cri-o/artifacts/cri-o.{{ image_arch }}.v{{ crio_version }}.tar.gz" crio_download_url: "{{ storage_googleapis_url }}/cri-o/artifacts/cri-o.{{ image_arch }}.v{{ crio_version }}.tar.gz"
helm_download_url: "{{ get_helm_url }}/helm-v{{ helm_version }}-linux-{{ image_arch }}.tar.gz" helm_download_url: "{{ get_helm_url }}/helm-v{{ helm_version }}-linux-{{ image_arch }}.tar.gz"
runc_download_url: "{{ github_url }}/opencontainers/runc/releases/download/v{{ runc_version }}/runc.{{ image_arch }}" runc_download_url: "{{ github_url }}/opencontainers/runc/releases/download/v{{ runc_version }}/runc.{{ image_arch }}"
crun_download_url: "{{ github_url }}/containers/crun/releases/download/{{ crun_version }}/crun-{{ crun_version }}-linux-{{ image_arch }}" crun_download_url: "{{ github_url }}/containers/crun/releases/download/{{ crun_version }}/crun-{{ crun_version }}-linux-{{ image_arch }}"
youki_download_url: "{{ github_url }}/youki-dev/youki/releases/download/v{{ youki_version }}/youki-{{ youki_version }}-{{ ansible_architecture }}-gnu.tar.gz" youki_download_url: "{{ github_url }}/youki-dev/youki/releases/download/v{{ youki_version }}/youki-{{ youki_version }}-{{ ansible_facts['architecture'] }}-gnu.tar.gz"
kata_containers_download_url: "{{ github_url }}/kata-containers/kata-containers/releases/download/{{ kata_containers_version }}/kata-static-{{ kata_containers_version }}-{{ image_arch }}.tar.xz" kata_containers_download_url: "{{ github_url }}/kata-containers/kata-containers/releases/download/{{ kata_containers_version }}/kata-static-{{ kata_containers_version }}-{{ image_arch }}.tar.xz"
# gVisor only supports amd64 and uses x86_64 to in the download link # gVisor only supports amd64 and uses x86_64 to in the download link
gvisor_runsc_download_url: "{{ storage_googleapis_url }}/gvisor/releases/release/{{ gvisor_version }}/{{ ansible_architecture }}/runsc" gvisor_runsc_download_url: "{{ storage_googleapis_url }}/gvisor/releases/release/{{ gvisor_version }}/{{ ansible_facts['architecture'] }}/runsc"
gvisor_containerd_shim_runsc_download_url: "{{ storage_googleapis_url }}/gvisor/releases/release/{{ gvisor_version }}/{{ ansible_architecture }}/containerd-shim-runsc-v1" gvisor_containerd_shim_runsc_download_url: "{{ storage_googleapis_url }}/gvisor/releases/release/{{ gvisor_version }}/{{ ansible_facts['architecture'] }}/containerd-shim-runsc-v1"
nerdctl_download_url: "{{ github_url }}/containerd/nerdctl/releases/download/v{{ nerdctl_version }}/nerdctl-{{ nerdctl_version }}-{{ ansible_system | lower }}-{{ image_arch }}.tar.gz" nerdctl_download_url: "{{ github_url }}/containerd/nerdctl/releases/download/v{{ nerdctl_version }}/nerdctl-{{ nerdctl_version }}-{{ ansible_facts['system'] | lower }}-{{ image_arch }}.tar.gz"
containerd_download_url: "{{ github_url }}/containerd/containerd/releases/download/v{{ containerd_version }}/containerd-{{ 'static-' if containerd_static_binary }}{{ containerd_version }}-linux-{{ image_arch }}.tar.gz" containerd_download_url: "{{ github_url }}/containerd/containerd/releases/download/v{{ containerd_version }}/containerd-{{ 'static-' if containerd_static_binary }}{{ containerd_version }}-linux-{{ image_arch }}.tar.gz"
cri_dockerd_download_url: "{{ github_url }}/Mirantis/cri-dockerd/releases/download/v{{ cri_dockerd_version }}/cri-dockerd-{{ cri_dockerd_version }}.{{ image_arch }}.tgz" cri_dockerd_download_url: "{{ github_url }}/Mirantis/cri-dockerd/releases/download/v{{ cri_dockerd_version }}/cri-dockerd-{{ cri_dockerd_version }}.{{ image_arch }}.tgz"
skopeo_download_url: "{{ github_url }}/lework/skopeo-binary/releases/download/v{{ skopeo_version }}/skopeo-linux-{{ image_arch }}" skopeo_download_url: "{{ github_url }}/lework/skopeo-binary/releases/download/v{{ skopeo_version }}/skopeo-linux-{{ image_arch }}"
@@ -238,14 +238,14 @@ cilium_operator_image_repo: "{{ quay_image_repo }}/cilium/operator"
cilium_operator_image_tag: "v{{ cilium_version }}" cilium_operator_image_tag: "v{{ cilium_version }}"
cilium_hubble_relay_image_repo: "{{ quay_image_repo }}/cilium/hubble-relay" cilium_hubble_relay_image_repo: "{{ quay_image_repo }}/cilium/hubble-relay"
cilium_hubble_relay_image_tag: "v{{ cilium_version }}" cilium_hubble_relay_image_tag: "v{{ cilium_version }}"
cilium_hubble_certgen_image_repo: "{{ quay_image_repo }}/cilium/certgen" cilium_certgen_image_repo: "{{ quay_image_repo }}/cilium/certgen"
cilium_hubble_certgen_image_tag: "v0.2.4" cilium_certgen_image_tag: "v0.4.8"
cilium_hubble_ui_image_repo: "{{ quay_image_repo }}/cilium/hubble-ui" cilium_hubble_ui_image_repo: "{{ quay_image_repo }}/cilium/hubble-ui"
cilium_hubble_ui_image_tag: "v0.13.3" cilium_hubble_ui_image_tag: "v0.13.5"
cilium_hubble_ui_backend_image_repo: "{{ quay_image_repo }}/cilium/hubble-ui-backend" cilium_hubble_ui_backend_image_repo: "{{ quay_image_repo }}/cilium/hubble-ui-backend"
cilium_hubble_ui_backend_image_tag: "v0.13.3" cilium_hubble_ui_backend_image_tag: "v0.13.5"
cilium_hubble_envoy_image_repo: "{{ quay_image_repo }}/cilium/cilium-envoy" cilium_envoy_image_repo: "{{ quay_image_repo }}/cilium/cilium-envoy"
cilium_hubble_envoy_image_tag: "v1.34.10-1762597008-ff7ae7d623be00078865cff1b0672cc5d9bfc6d5" cilium_envoy_image_tag: "v1.37.5-1782911245-7cffc778c923f68a77954a53b1a98d6b5353f004"
kube_ovn_container_image_repo: "{{ docker_image_repo }}/kubeovn/kube-ovn" kube_ovn_container_image_repo: "{{ docker_image_repo }}/kubeovn/kube-ovn"
kube_ovn_container_image_tag: "v{{ kube_ovn_version }}" kube_ovn_container_image_tag: "v{{ kube_ovn_version }}"
kube_ovn_vpc_container_image_repo: "{{ docker_image_repo }}/kubeovn/vpc-nat-gateway" kube_ovn_vpc_container_image_repo: "{{ docker_image_repo }}/kubeovn/vpc-nat-gateway"
@@ -263,17 +263,17 @@ kube_vip_version: 1.0.3
kube_vip_image_repo: "{{ github_image_repo }}/kube-vip/kube-vip{{ '-iptables' if kube_vip_lb_fwdmethod == 'masquerade' else '' }}" kube_vip_image_repo: "{{ github_image_repo }}/kube-vip/kube-vip{{ '-iptables' if kube_vip_lb_fwdmethod == 'masquerade' else '' }}"
kube_vip_image_tag: "v{{ kube_vip_version }}" kube_vip_image_tag: "v{{ kube_vip_version }}"
nginx_image_repo: "{{ docker_image_repo }}/library/nginx" nginx_image_repo: "{{ docker_image_repo }}/library/nginx"
nginx_image_tag: 1.28.2-alpine nginx_image_tag: 1.30.1-alpine
haproxy_image_repo: "{{ docker_image_repo }}/library/haproxy" haproxy_image_repo: "{{ docker_image_repo }}/library/haproxy"
haproxy_image_tag: 3.2.13-alpine haproxy_image_tag: 3.2.19-alpine
# Coredns version should be supported by corefile-migration (or at least work with) # Coredns version should be supported by corefile-migration (or at least work with)
# bundle with kubeadm; if not 'basic' upgrade can sometimes fail # bundle with kubeadm; if not 'basic' upgrade can sometimes fail
coredns_supported_versions: coredns_supported_versions:
'1.36': 1.14.2
'1.35': 1.12.4 '1.35': 1.12.4
'1.34': 1.12.1 '1.34': 1.12.1
'1.33': 1.12.0
coredns_version: "{{ coredns_supported_versions[kube_major_version] }}" coredns_version: "{{ coredns_supported_versions[kube_major_version] }}"
coredns_image_repo: "{{ kube_image_repo }}{{ '/coredns' if coredns_version is version('1.7.1', '>=') else '' }}/coredns" coredns_image_repo: "{{ kube_image_repo }}{{ '/coredns' if coredns_version is version('1.7.1', '>=') else '' }}/coredns"
coredns_image_tag: "{{ 'v' if coredns_version is version('1.7.1', '>=') else '' }}{{ coredns_version }}" coredns_image_tag: "{{ 'v' if coredns_version is version('1.7.1', '>=') else '' }}{{ coredns_version }}"
@@ -314,22 +314,22 @@ cert_manager_webhook_image_repo: "{{ quay_image_repo }}/jetstack/cert-manager-we
cert_manager_webhook_image_tag: "v{{ cert_manager_version }}" cert_manager_webhook_image_tag: "v{{ cert_manager_version }}"
csi_attacher_image_repo: "{{ kube_image_repo }}/sig-storage/csi-attacher" csi_attacher_image_repo: "{{ kube_image_repo }}/sig-storage/csi-attacher"
csi_attacher_image_tag: "v4.4.2" csi_attacher_image_tag: "v4.5.1"
csi_provisioner_image_repo: "{{ kube_image_repo }}/sig-storage/csi-provisioner" csi_provisioner_image_repo: "{{ kube_image_repo }}/sig-storage/csi-provisioner"
csi_provisioner_image_tag: "v3.6.2" csi_provisioner_image_tag: "v4.0.1"
csi_snapshotter_image_repo: "{{ kube_image_repo }}/sig-storage/csi-snapshotter" csi_snapshotter_image_repo: "{{ kube_image_repo }}/sig-storage/csi-snapshotter"
csi_snapshotter_image_tag: "v6.3.2" csi_snapshotter_image_tag: "v7.0.2"
csi_resizer_image_repo: "{{ kube_image_repo }}/sig-storage/csi-resizer" csi_resizer_image_repo: "{{ kube_image_repo }}/sig-storage/csi-resizer"
csi_resizer_image_tag: "v1.9.2" csi_resizer_image_tag: "v1.10.1"
csi_node_driver_registrar_image_repo: "{{ kube_image_repo }}/sig-storage/csi-node-driver-registrar" csi_node_driver_registrar_image_repo: "{{ kube_image_repo }}/sig-storage/csi-node-driver-registrar"
csi_node_driver_registrar_image_tag: "v2.4.0" csi_node_driver_registrar_image_tag: "v2.4.0"
csi_livenessprobe_image_repo: "{{ kube_image_repo }}/sig-storage/livenessprobe" csi_livenessprobe_image_repo: "{{ kube_image_repo }}/sig-storage/livenessprobe"
csi_livenessprobe_image_tag: "v2.11.0" csi_livenessprobe_image_tag: "v2.11.0"
snapshot_controller_supported_versions: snapshot_controller_supported_versions:
'1.36': "v7.0.2"
'1.35': "v7.0.2" '1.35': "v7.0.2"
'1.34': "v7.0.2" '1.34': "v7.0.2"
'1.33': "v7.0.2"
snapshot_controller_image_repo: "{{ kube_image_repo }}/sig-storage/snapshot-controller" snapshot_controller_image_repo: "{{ kube_image_repo }}/sig-storage/snapshot-controller"
snapshot_controller_image_tag: "{{ snapshot_controller_supported_versions[kube_major_version] }}" snapshot_controller_image_tag: "{{ snapshot_controller_supported_versions[kube_major_version] }}"
@@ -491,7 +491,7 @@ downloads:
youki: youki:
file: true file: true
enabled: "{{ youki_enabled }}" enabled: "{{ youki_enabled }}"
dest: "{{ local_release_dir }}/youki-{{ youki_version }}-{{ ansible_architecture }}.tar.gz" dest: "{{ local_release_dir }}/youki-{{ youki_version }}-{{ ansible_facts['architecture'] }}.tar.gz"
checksum: "{{ youki_archive_checksum }}" checksum: "{{ youki_archive_checksum }}"
url: "{{ youki_download_url }}" url: "{{ youki_download_url }}"
unarchive: true unarchive: true
@@ -539,7 +539,7 @@ downloads:
gvisor_runsc: gvisor_runsc:
enabled: "{{ gvisor_enabled }}" enabled: "{{ gvisor_enabled }}"
file: true file: true
dest: "{{ local_release_dir }}/gvisor-runsc-{{ gvisor_version }}-{{ ansible_architecture }}" dest: "{{ local_release_dir }}/gvisor-runsc-{{ gvisor_version }}-{{ ansible_facts['architecture'] }}"
checksum: "{{ gvisor_runsc_binary_checksum }}" checksum: "{{ gvisor_runsc_binary_checksum }}"
url: "{{ gvisor_runsc_download_url }}" url: "{{ gvisor_runsc_download_url }}"
unarchive: false unarchive: false
@@ -551,7 +551,7 @@ downloads:
gvisor_containerd_shim: gvisor_containerd_shim:
enabled: "{{ gvisor_enabled }}" enabled: "{{ gvisor_enabled }}"
file: true file: true
dest: "{{ local_release_dir }}/gvisor-containerd-shim-runsc-v1-{{ gvisor_version }}-{{ ansible_architecture }}" dest: "{{ local_release_dir }}/gvisor-containerd-shim-runsc-v1-{{ gvisor_version }}-{{ ansible_facts['architecture'] }}"
checksum: "{{ gvisor_containerd_shim_binary_checksum }}" checksum: "{{ gvisor_containerd_shim_binary_checksum }}"
url: "{{ gvisor_containerd_shim_runsc_download_url }}" url: "{{ gvisor_containerd_shim_runsc_download_url }}"
unarchive: false unarchive: false
@@ -596,7 +596,7 @@ downloads:
cilium_operator: cilium_operator:
enabled: "{{ kube_network_plugin == 'cilium' or cilium_deploy_additionally }}" enabled: "{{ kube_network_plugin == 'cilium' or cilium_deploy_additionally }}"
container: true container: true
repo: "{{ cilium_operator_image_repo }}" repo: "{{ cilium_operator_image_repo }}-generic"
tag: "{{ cilium_operator_image_tag }}" tag: "{{ cilium_operator_image_tag }}"
checksum: "{{ cilium_operator_digest_checksum | default(None) }}" checksum: "{{ cilium_operator_digest_checksum | default(None) }}"
groups: groups:
@@ -611,12 +611,12 @@ downloads:
groups: groups:
- k8s_cluster - k8s_cluster
cilium_hubble_certgen: cilium_certgen:
enabled: "{{ cilium_enable_hubble }}" enabled: "{{ kube_network_plugin == 'cilium' }}"
container: true container: true
repo: "{{ cilium_hubble_certgen_image_repo }}" repo: "{{ cilium_certgen_image_repo }}"
tag: "{{ cilium_hubble_certgen_image_tag }}" tag: "{{ cilium_certgen_image_tag }}"
checksum: "{{ cilium_hubble_certgen_digest_checksum | default(None) }}" checksum: "{{ cilium_certgen_digest_checksum | default(None) }}"
groups: groups:
- k8s_cluster - k8s_cluster
@@ -638,12 +638,12 @@ downloads:
groups: groups:
- k8s_cluster - k8s_cluster
cilium_hubble_envoy: cilium_envoy:
enabled: "{{ cilium_enable_hubble }}" enabled: "{{ kube_network_plugin == 'cilium' }}"
container: true container: true
repo: "{{ cilium_hubble_envoy_image_repo }}" repo: "{{ cilium_envoy_image_repo }}"
tag: "{{ cilium_hubble_envoy_image_tag }}" tag: "{{ cilium_envoy_image_tag }}"
checksum: "{{ cilium_hubble_envoy_digest_checksum | default(None) }}" checksum: "{{ cilium_envoy_digest_checksum | default(None) }}"
groups: groups:
- k8s_cluster - k8s_cluster

View File

@@ -33,6 +33,10 @@ kube_version_min_required: "{{ (kubelet_checksums['amd64'] | dict2items)[-1].key
## Kube Proxy mode One of ['ipvs', 'iptables', 'nftables'] ## Kube Proxy mode One of ['ipvs', 'iptables', 'nftables']
kube_proxy_mode: ipvs kube_proxy_mode: ipvs
# When true, kubeadm skips the kube-proxy addon (for example Cilium kube-proxy replacement).
# Node and package tasks that exist only for kube-proxy also honor this (IPVS/nftables modules, ipvsadm, strict_arp checks).
kube_proxy_remove: false
# Debugging option for the kubeadm config validate command # Debugging option for the kubeadm config validate command
# Set to false only for development and testing scenarios where validation is expected to fail (pre-release Kubernetes versions, etc.) # Set to false only for development and testing scenarios where validation is expected to fail (pre-release Kubernetes versions, etc.)
kubeadm_config_validate_enabled: true kubeadm_config_validate_enabled: true
@@ -233,6 +237,10 @@ cilium_deploy_additionally: false
# - Ref: https://docs.cilium.io/en/stable/internals/cilium_operator/#kvstore-operations # - Ref: https://docs.cilium.io/en/stable/internals/cilium_operator/#kvstore-operations
cilium_identity_allocation_mode: crd cilium_identity_allocation_mode: crd
# The default IP address management mode is "Cluster Scope".
# https://docs.cilium.io/en/stable/concepts/networking/ipam/
cilium_ipam_mode: cluster-pool
# Determines if calico_rr group exists # Determines if calico_rr group exists
peer_with_calico_rr: "{{ 'calico_rr' in groups and groups['calico_rr'] | length > 0 }}" peer_with_calico_rr: "{{ 'calico_rr' in groups and groups['calico_rr'] | length > 0 }}"
@@ -642,12 +650,12 @@ local_volume_provisioner_storage_classes: |
ssl_ca_dirs: |- ssl_ca_dirs: |-
[ [
{% if ansible_os_family in ['Flatcar', 'Flatcar Container Linux by Kinvolk'] -%} {% if ansible_facts['os_family'] in ['Flatcar', 'Flatcar Container Linux by Kinvolk'] -%}
'/usr/share/ca-certificates', '/usr/share/ca-certificates',
{% elif ansible_os_family == 'RedHat' -%} {% elif ansible_facts['os_family'] == 'RedHat' -%}
'/etc/pki/tls', '/etc/pki/tls',
'/etc/pki/ca-trust', '/etc/pki/ca-trust',
{% elif ansible_os_family == 'Debian' -%} {% elif ansible_facts['os_family'] == 'Debian' -%}
'/usr/share/ca-certificates', '/usr/share/ca-certificates',
{% endif -%} {% endif -%}
] ]
@@ -655,7 +663,6 @@ ssl_ca_dirs: |-
# used for delegating tasks on a working control plane node # used for delegating tasks on a working control plane node
first_kube_control_plane: "{{ groups['kube_control_plane'] | first }}" first_kube_control_plane: "{{ groups['kube_control_plane'] | first }}"
# Vars for pointing to kubernetes api endpoints # Vars for pointing to kubernetes api endpoints
kube_apiserver_count: "{{ groups['kube_control_plane'] | length }}"
kube_apiserver_address: "{{ hostvars[inventory_hostname]['main_ip'] }}" kube_apiserver_address: "{{ hostvars[inventory_hostname]['main_ip'] }}"
kube_apiserver_access_address: "{{ hostvars[inventory_hostname]['main_access_ip'] }}" kube_apiserver_access_address: "{{ hostvars[inventory_hostname]['main_access_ip'] }}"
first_kube_control_plane_address: "{{ hostvars[groups['kube_control_plane'][0]]['main_access_ip'] }}" first_kube_control_plane_address: "{{ hostvars[groups['kube_control_plane'][0]]['main_access_ip'] }}"
@@ -748,10 +755,10 @@ _host_architecture_groups:
aarch64: arm64 aarch64: arm64
armv7l: arm armv7l: arm
host_architecture: >- host_architecture: >-
{%- if ansible_architecture in _host_architecture_groups -%} {%- if ansible_facts['architecture'] in _host_architecture_groups -%}
{{ _host_architecture_groups[ansible_architecture] }} {{ _host_architecture_groups[ansible_facts['architecture']] }}
{%- else -%} {%- else -%}
{{ ansible_architecture }} {{ ansible_facts['architecture'] }}
{%- endif -%} {%- endif -%}
_host_os_groups: _host_os_groups:
@@ -759,10 +766,10 @@ _host_os_groups:
Darwin: darwin Darwin: darwin
Win32NT: windows Win32NT: windows
host_os: >- host_os: >-
{%- if ansible_system in _host_os_groups -%} {%- if ansible_facts['system'] in _host_os_groups -%}
{{ _host_os_groups[ansible_system] }} {{ _host_os_groups[ansible_facts['system']] }}
{%- else -%} {%- else -%}
{{ ansible_system }} {{ ansible_facts['system'] }}
{%- endif -%} {%- endif -%}
# Sets the eventRecordQPS parameter in kubelet-config.yaml. # Sets the eventRecordQPS parameter in kubelet-config.yaml.
@@ -801,6 +808,7 @@ sysctl_ignore_unknown_keys: false
system_upgrade: false system_upgrade: false
system_upgrade_reboot: on-upgrade # never, always system_upgrade_reboot: on-upgrade # never, always
system_upgrade_autoclean: false
# Enables or disables the scheduler plugins. # Enables or disables the scheduler plugins.
scheduler_plugins_enabled: false scheduler_plugins_enabled: false
@@ -816,7 +824,7 @@ ntp_enabled: false
# The default is ntp for most platforms, or chrony on RHEL/CentOS 7 and later. # The default is ntp for most platforms, or chrony on RHEL/CentOS 7 and later.
# The ntp_package can be one of ['ntp', 'ntpsec', 'chrony'] # The ntp_package can be one of ['ntp', 'ntpsec', 'chrony']
ntp_package: >- ntp_package: >-
{% if ansible_os_family == "RedHat" -%} {% if ansible_facts['os_family'] == "RedHat" -%}
chrony chrony
{%- else -%} {%- else -%}
ntp ntp

Some files were not shown because too many files have changed in this diff Show More