592 Commits

Author SHA1 Message Date
Boris
a51e7dd07d
refact ip stack (#11953) 2025-02-11 03:37:58 -08:00
Antoine Legrand
4373c1be1d
Revert "Add support for ipv6 only cluster via "enable_ipv6only_stack_networks…" (#11941)
This reverts commit 76c0a3aa7578a3a66cdc98ba962febf6c19ddb3c.
2025-02-03 07:06:58 -08:00
dependabot[bot]
6af849089e
build(deps): bump the molecule group with 2 updates (#11933)
Bumps the molecule group with 2 updates: [molecule](https://github.com/ansible-community/molecule) and [molecule-plugins[vagrant]](https://github.com/ansible-community/molecule-plugins).


Updates `molecule` from 24.12.0 to 25.1.0
- [Release notes](https://github.com/ansible-community/molecule/releases)
- [Commits](https://github.com/ansible-community/molecule/compare/v24.12.0...v25.1.0)

Updates `molecule-plugins[vagrant]` from 23.6.0 to 23.7.0
- [Release notes](https://github.com/ansible-community/molecule-plugins/releases)
- [Commits](https://github.com/ansible-community/molecule-plugins/compare/v23.6.0...v23.7.0)

---
updated-dependencies:
- dependency-name: molecule
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: molecule
- dependency-name: molecule-plugins[vagrant]
  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>
2025-01-28 07:05:26 -08:00
Boris
76c0a3aa75
Add support for ipv6 only cluster via "enable_ipv6only_stack_networks" (#11831) 2025-01-27 04:15:22 -08:00
Max Gautier
d23c1464c9
Remove krew support (#11824)
* Remove krew installation support

Krew is fundamentally to install kubectl plugins, which are eminently a
client side things.
It's also not difficult to install on a client machine.

* Remove krew cleanup
2025-01-23 20:45:21 -08:00
Max Gautier
191f71afea
Drop explicit k8s_cluster group in CI inventory (#11858)
This removes compatibility with releases below 2.27.0, now that it has
been released and that we're testing upgrades against it.
2025-01-23 02:34:58 -08:00
Max Gautier
bfe858ba06
CI: cleanup dependencies, pre-commit autoupdate (#11904)
ansible-lint and yamllint are run as pre-commit hooks, which are
installed by pre-commit directly. So there is no need to put them in
tests/requirements.txt.

So remove them and make it leaner.
2025-01-23 01:56:59 -08:00
Kubernetes Prow Robot
5a7e1be070
Merge pull request #11905 from VannTen/feat/readme_template_version
Update README.md versions automatically in pre-commit
2025-01-22 19:42:37 -08:00
Max Gautier
d2e51e777c
CI: cleanup vars identical to kubespray defaults (#11903) 2025-01-21 05:46:37 -08:00
Max Gautier
a142f40e25
Update versions in README.md with pre-commit
Currently, versions in README.md need to be manually updated, and we
check it's done with a bash script.

Add a small utility playbook to add versions in README.md from their
actual default values, automatically.
This is done in pre-commit, and replace the scripted check ; instead it
will autofix the README.md, and fails in CI if needed.

We switch markdownlint behind the local hooks to gave it the opportunity
to catch a problem with the rendering.
2025-01-21 12:10:21 +01:00
Max Gautier
b548ccbe7f
Adapt CI/vagrant to run without sample inventory 2025-01-17 16:22:57 +01:00
Kay Yan
b104bb7a57
[kubernetes] Support Kubernetes v1.32.0 with RHEL8 (#11885)
* [kubernetes] Support Kubernetes v1.32.0

* add workaround for RHEL8

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

---------

Signed-off-by: Kay Yan <kay.yan@daocloud.io>
Co-authored-by: Mohamed Zaian <mohamedzaian@gmail.com>
2025-01-15 08:54:35 -08:00
Kay Yan
3527cb1916
Update CI test from AlmaLinux8 to AlmaLinux9 (#11889)
Signed-off-by: Kay Yan <kay.yan@daocloud.io>
2025-01-14 02:50:32 -08:00
Kay Yan
369be00960
increase the memory requirement to 2GB (#11864)
Signed-off-by: Kay Yan <kay.yan@daocloud.io>
2025-01-07 08:00:28 +01:00
Max Gautier
ac9b76eb2e
Ignore Mem preflight errors on ubuntu upgrade testcase (#11859) 2025-01-06 11:52:16 +01:00
Kubernetes Prow Robot
57490d5e5e
Merge pull request #11793 from VannTen/cleanup/ci_testcases_better_callback
Use debug stdout callback in ci rather than manual debug
2024-12-27 18:40:12 +01:00
dependabot[bot]
6c69ffed5b
build(deps): bump molecule-plugins[vagrant] from 23.5.3 to 23.6.0 (#11826)
Bumps [molecule-plugins[vagrant]](https://github.com/ansible-community/molecule-plugins) from 23.5.3 to 23.6.0.
- [Release notes](https://github.com/ansible-community/molecule-plugins/releases)
- [Commits](https://github.com/ansible-community/molecule-plugins/compare/v23.5.3...v23.6.0)

---
updated-dependencies:
- dependency-name: molecule-plugins[vagrant]
  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>
2024-12-24 14:46:11 +01:00
Kubernetes Prow Robot
30f0a14489
Merge pull request #11792 from VannTen/flake/race_sa_creation
Fix flakey test + cleanup in testcases/030-checknetwork
2024-12-17 03:26:52 +01:00
Kubernetes Prow Robot
acfaef2adf
Merge pull request #11797 from VannTen/ci/fix_collection_testing
CI: build collection before runnings tests
2024-12-16 11:12:51 +01:00
dependabot[bot]
a2cde9e77e
build(deps): bump ansible-lint from 24.10.0 to 24.12.2 (#11799)
Bumps [ansible-lint](https://github.com/ansible/ansible-lint) from 24.10.0 to 24.12.2.
- [Release notes](https://github.com/ansible/ansible-lint/releases)
- [Commits](https://github.com/ansible/ansible-lint/compare/v24.10.0...v24.12.2)

---
updated-dependencies:
- dependency-name: ansible-lint
  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>
2024-12-16 07:50:51 +01:00
Max Gautier
7da317348c
CI: remove IDEMPOT_CHECK (#11796)
There is no test with IDEMPOT_CHECK=true since commit 7b78e6872 (disable
idempotency tests (#1872), 2017-10-26)

Remove the related infra from our CI scripts.
2024-12-13 20:02:26 +01:00
Max Gautier
2dddb4fb65
CI: test collections in one packet job 2024-12-13 16:44:31 +01:00
Max Gautier
18fab585ad
CI: build collection before runnings tests
We were running the playbooks before building the collections, so this
probably wasn't testing much.
2024-12-13 16:44:30 +01:00
Max Gautier
86a949dc81
CI: Remove Flatcar specifics
We don't test Flatcar at all in CI, thus remove special handling for it.
2024-12-13 11:44:51 +01:00
Max Gautier
f6d1c294d4
CI: Use the debug stdout callback instead of manual debug
This display in a readable (by humans) way the result of most tasks, and
should be way more readable that what we have now, which is frequently a
bunch of unreadable json.

+ some small fixes (using delegated_to instead of when
  <control_plane_host>)
2024-12-13 11:44:49 +01:00
Max Gautier
630e9de658
CI: drop special casing for Opensuse and CoreOS (#11791)
- special casing should be in Kubespray, not in the test. It makes no
  sense to do something in tests which won't be done in actual usage.
- We don't actually test CoreOS at all in the CI.
2024-12-13 03:52:26 +01:00
Max Gautier
12ed1fcf93
CI-tests: remove hostnets stuff from 030_check-network
There is no pods with hostNetwork deployed in this test, and therefore
the tasks are skipped / empty output (checked in CI).
2024-12-12 15:52:05 +01:00
Max Gautier
930df78d8a
CI: Use deployment instead of Pod for agnhost
This is a followup to 2ba28a338 (Revert "Wait for available API token in
a new namespace (#7045)", 2024-10-25).

While checking for the serviceaccount token is not effective, there is
still a race when creating a Pod directly, because the ServiceAccount
itself might not be created yet.
More details at https://github.com/kubernetes/kubernetes/issues/66689.

This cause very frequent flakes in our CI with spurious failures.

Use a Deployment instead ; it will takes cares of creating the Pods and
retrying ; it also let us use kubectl rollout status instead of manually
checking for the pods.
2024-12-12 15:52:04 +01:00
Kubernetes Prow Robot
74aee12305
Merge pull request #11786 from VannTen/cleanup/unused_ci_test_files
Remove testfiles which are not used in the CI.
2024-12-12 12:32:27 +01:00
Max Gautier
5bfc3396e9
CI: ignore Mem errors for some failing test in ci-extended 2024-12-12 09:52:59 +01:00
Max Gautier
b9e9364c50
Remove ara support in CI
We do not use it and it has some overhead.
2024-12-11 17:28:35 +01:00
Max Gautier
61b9bb93f1
Remove unneeded test dependencies
AFAICS, these are not used anywhere
2024-12-11 17:28:33 +01:00
Max Gautier
d9cf380ce0
Remove testfiles which are not used in the CI.
To reproduce this commit run in bash:

for file in $(ls tests/files/)
do
    if ! grep -Rq ${file%.*} .gitlab.ci; then
    rm tests/files/${file}
    fi
done

This also means that our CI matrix was not accurate.
2024-12-11 17:21:49 +01:00
dependabot[bot]
fccd143533
build(deps): bump molecule from 24.9.0 to 24.12.0 (#11774)
Bumps [molecule](https://github.com/ansible-community/molecule) from 24.9.0 to 24.12.0.
- [Release notes](https://github.com/ansible-community/molecule/releases)
- [Commits](https://github.com/ansible-community/molecule/compare/v24.9.0...v24.12.0)

---
updated-dependencies:
- dependency-name: molecule
  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>
2024-12-09 14:56:05 +00:00
ERIK
70b75d35b6
support asymmetric encryption algorithms in ClusterConfigration (#11757)
Signed-off-by: bo.jiang <bo.jiang@daocloud.io>
2024-11-29 08:06:58 +00:00
Max Gautier
280507ff70
Remove leftover CI for ansible-core 2.11 (apparently) (#11754) 2024-11-28 17:22:58 +00:00
dependabot[bot]
e330ffa4ad
build(deps): bump ansible-lint from 24.9.2 to 24.10.0 (#11720)
Bumps [ansible-lint](https://github.com/ansible/ansible-lint) from 24.9.2 to 24.10.0.
- [Release notes](https://github.com/ansible/ansible-lint/releases)
- [Commits](https://github.com/ansible/ansible-lint/compare/v24.9.2...v24.10.0)

---
updated-dependencies:
- dependency-name: ansible-lint
  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>
2024-11-18 17:58:57 +00:00
Max Gautier
68718dcb6f
Stricter kubeadm validation (config and runtime checks) (#11710)
* kubeadm: do not ignore preflight errors blindly

The "ignoring all errors" seems to date back to the inception of the
kubeadm support (it was --skip-preflight-check before).

This can mask real errors and prevent users from seeing them.

Do not ignore any errors by default and make the set of ignored errors
configurable.

* download/kubeadm: remove redundant task

The mode is already set by the previous `copy` task.

* Validate kubeadm configs

This should help to fail early when we have invalid kubeadm configs (from
a kubespray bug or a misconfiguration).

* kubeadm-upgrade: remove unnecessary bool cast

* Convert kubeadm join discovery timeout to v1beta4 config

* CI: Ignore kubeadm:Mem errors on some setup.
2024-11-15 06:34:52 +00:00
Kubernetes Prow Robot
05e2b47db6
Merge pull request #11530 from VannTen/ci/cleanup_with_k8s_gc
[CI] Use Kubernetes GC to clean kubevirt VMs (packet-* jobs)
2024-11-14 10:49:15 +00:00
Max Gautier
47f67818b6
CI: (packet-ci) simplify role layout 2024-11-14 09:41:02 +01:00
Max Gautier
236a7486f4
CI: directly use ANSIBLE_VERBOSITY instead of tweaking command line
https://docs.ansible.com/ansible/latest/reference_appendices/config.html#envvar-ANSIBLE_VERBOSITY
2024-11-14 09:41:01 +01:00
Max Gautier
b5464afa55
CI: workaround for upgrade test backward compatibility
The new CI does not define k8s_cluster group, so it relies on
kubernetes-sigs/kubespray#11559.

This does not work for upgrade testing (which use the previous release).
We can revert this commit after 2.27.0
2024-11-14 09:41:01 +01:00
Max Gautier
ceb4b2fa7d
CI: use current tests/ directory for upgrade testing
We should not rollback our test setup during upgrade test.
The only reason to do that would be for incompatible changes in the test
inventory, and we already checkout master for those (${CI_JOB_NAME}.yml)

Also do some cleanup by removing unnecessary intermediary variables
2024-11-14 09:41:00 +01:00
Max Gautier
ff4de880ae
CI: Replace kubevirt dynamic inventory with generated yaml
VirtualMachineInstance resources sometimes temporarily loose their
IP (at least as far as the kubevirt controllers can see).
See https://github.com/kubevirt/kubevirt/issues/12698 for the upstream
bug.

This does not seems to affect actual connection (if it did, our current
CI would not work).
However, our CI execute multiple playbooks, and in particular:
1. The provisioning playbook (which checks that the IPs have been
   provisioned by querying the K8S API)
2. Kubespray itself

If any of the VirtualMachineInstance looses its IP between after 1
checked for it, and before 2 starts, the dynamic inventory (which is
invoked when the playbook is launched by ansible-playbook) will not have
an ip for that host, and will try to use the name for ssh, which of
course will not work.

Instead, when we have a valid state during provisioning (all IPs
presents), use it to construct a static inventory which will be used for
the rest of the CI run.
2024-11-14 09:40:59 +01:00
Max Gautier
329ffd45f0
CI: use kubevirt.core dynamic inventory
This allows a single source of truth for the virtual machines in a
kubevirt ci-run.

`etcd_member_name` should be correctly handled in kubespray-defaults for
testing the recover cases.
2024-11-14 09:40:58 +01:00
Max Gautier
a8e7238c9f
CI: make the ansible inventory a directory
Not constraining the inventory to .ini allows us to use dynamic
inventory, which is needed for simplifying kubevirt jobs inventory.

Also reduces the scope of the ANSIBLE_INVENTORY variable.
2024-11-13 17:32:52 +01:00
Max Gautier
c46e5dc33a
CI: use VirtualMachineInstance for VMs
VMI in Kubevirt are the abstraction below VirtualMachine.

- We don't really need the extra abstraction of VirtualMachine objects
- Convert the waiting for VMs ip address to use kubernetes.core.k8s_info
  and no shell pipeline
2024-11-13 17:32:50 +01:00
Kay Yan
81a66cc73d
add ci for openeuler (#11689)
Signed-off-by: Kay Yan <kay.yan@daocloud.io>
2024-11-12 10:36:46 +00:00
Max Gautier
69201662df
Remove no_log in CI tests (#11702)
We always want to see the logs in the CI.
2024-11-11 03:54:44 +00:00
Kubernetes Prow Robot
107c3cc6f4
Merge pull request #11633 from tico88612/feat/remove-in-tree-cloud-provider
Cleanup: remove in-tree cloud provider support
2024-11-05 09:13:30 +00:00