Commit Graph

11623 Commits

Author SHA1 Message Date
Fabiano Fidêncio
15e85b8ce7
Merge pull request #8473 from ldoktor/artifacts
stable-3.2 | gha: Keep kata tarballs for 15 days
2023-11-21 14:59:24 +01:00
Lukáš Doktor
5a8b357dc8
gha: Keep kata tarballs for 15 days
these tarballs are useful for debugging and re-running jobs, keep them
for 15 days.

Fixes: #8000

Signed-off-by: Lukáš Doktor <ldoktor@redhat.com>
2023-11-19 07:10:29 +01:00
Fabiano Fidêncio
54aa3e7abf
Merge pull request #8402 from amshinde/ipvlan-tests-stable3.2
network: Backports for Ipvlan qemu fix and related tests
2023-11-09 11:22:12 +01:00
Archana Shinde
08152dd468 tests: Add test with nerdctl to verify macvlan support
Add test to verify kata supports macvlan networks.

Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
(cherry picked from commit c075fa6817)
2023-11-08 11:50:32 -08:00
Archana Shinde
4667b837c8 tests: Add test with nerdctl to verify ipvlan support
Add test to verify kata supports ipvlan networks.
This test can be bit tricky as it requires knowledge about host interfaces
to be used as a master for the ipvlan network.
However, with github actions, we can assume interface called eth0 to be
present on the host and functioning.

Fixes: #8366

Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
(cherry picked from commit 07db673eb9)
2023-11-08 11:50:19 -08:00
Archana Shinde
97845c93d8 network: Fix network hotplug for ipvlan and macvlan endpoints.
Since moving from network coldplug to hotplug, the only case verified
was veth endpoints. Support for network hotplug for ipvlan and macvlan was
broken/not added. Fix it.

Fixes: #8391

Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
(cherry picked from commit a6272733e7)
2023-11-08 11:50:02 -08:00
Fabiano Fidêncio
220a2a0300
Merge pull request #8339 from fidencio/topic/stable-3.2-backports-oct-31st-2023
stable-3.2 | Backport everything needed after the release till Oct 31st 2023
2023-10-31 14:36:38 +01:00
Hyounggyu Choi
d48ecf9f22 agent: Skip flaky create_tmpfs on s390x
This is to skip a flaky test `create_tmpfs()` on s390x until a root cause is identified and fixed.

Fixes: #4248

Signed-off-by: Hyounggyu Choi <Hyounggyu.Choi@ibm.com>
(cherry picked from commit a0746c8d7b)
2023-10-31 10:24:39 +01:00
Archana Shinde
3b9e6e7ee4 network: Fix network attach for ipvlan and macvlan
We used the approach of cold-plugging network interface for pre-shimv2
support for docker.Since the hotplug approach was not required,
we never really got to implementing hotplug support for certain network
endpoints, ipvlan and macvlan being among them.

Since moving to shimv2 interface as the default for
runtime, we switched to hotplugging the network interface for supporting
docker and nerdctl. This was done for veth endpoints only.

Implement the hot-attach apis for ipvlan and macvlan as well to support
ipvlan and macvlan networks with docker and nerdctl.

Fixes: #8333

Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
(cherry picked from commit f53f86884f)
2023-10-31 10:24:29 +01:00
David Esparza
48cab2bfd0 metrics: removes double-quotes in checkemtrics when parsing results
This PR removes double quotes in jq output to return raw strings
as input of checkmetrics tool.

Fixes: #8331

Signed-off-by: David Esparza <david.esparza.borquez@intel.com>
(cherry picked from commit c232869af9)
2023-10-31 10:24:20 +01:00
David Esparza
885fcc9aaa metrics: increase the number of attempts to stop kata
This PR increases the number of attempts to stop kata components
when it is required usually before starting a metrics test.

Fixes: #8307

Signed-off-by: David Esparza <david.esparza.borquez@intel.com>
(cherry picked from commit c42a2f2eda)
2023-10-31 10:24:09 +01:00
David Esparza
aa8a96fe51 metrics: FIO ci test enablement
This PR enables the new FIO test based on the containerd client
which is used to track the I/O metrics in the kata-ci environment.

Additionally this PR fixes the parsing of results.

Fixes: #8199

Signed-off-by: David Esparza <david.esparza.borquez@intel.com>
(cherry picked from commit 1626253d9e)
2023-10-31 10:23:55 +01:00
David Esparza
b5d391f18f metrics: update iodepth and job size fio parameters to improve workload
This PR updates the values of the fio parameters for iodepth
requests and for the number of jobs, in order to increase the
number of sequential operations.

Additionally, it adds the list of packages needed to parse the
results.

Fixes: #8198

Signed-off-by: David Esparza <david.esparza.borquez@intel.com>
(cherry picked from commit 873386a349)
2023-10-31 10:23:47 +01:00
James O. D. Hunt
69a23bb4e6 utils: kata-manager: Fix containerd version check
Contained release files include the version number without a "v" prefix.
However, the tag for the equivalent release does include it so handle
this distinction and also tighten up the Kata check by specifying an
explicit version number in the regex.

Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
(cherry picked from commit ae3ea1421d)
2023-10-31 10:23:36 +01:00
James O. D. Hunt
c42d899a6a utils: kata-manager: Fix whitespace
Use tabs consistently.

Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
(cherry picked from commit 346f195532)
2023-10-31 10:23:29 +01:00
James O. D. Hunt
469fa59bbf utils: kata-manager: Fix "Cannot determine download URL" issue
The archive names for x86_64 [Kata releases](https://github.com/kata-containers/kata-containers/releases)
used to include the tag `x86_64`, but that has now been changed to
`amd64`, which unfortunately broke `kata-manager.sh`:

```
kata-static-3.1.3-x86_64.tar.xz
                  ~~~~~~
                  expected

kata-static-3.2.0-alpha3-x86_64.tar.xz
                         ~~~~~~
                         expected

kata-static-3.2.0-alpha4-amd64.tar.xz
                         ~~~~~
                         changed
```

Fixes: #8321.

Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
(cherry picked from commit 2ac7ac1dd2)
2023-10-31 10:23:22 +01:00
James O. D. Hunt
51284275ee utils: kata-manager: Lint fixes
Improve the code by fixing some lint issues:

- defining variables before using them.
- Using `grep -E` rather than `egrep`.
- Quoting variables.
- Adding a check for invalid CLI arguments.

Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
(cherry picked from commit 59bd534827)
2023-10-31 10:23:15 +01:00
Wainer dos Santos Moschetta
47ff3e5655 tests/git-helper: cancel any previous rebase left halfway
In bare-metal machines the git tree might get on unstable state with the
previous rebase left halfway. So let's attempt to abort any rebase before.

Fixes #8318
Signed-off-by: Wainer dos Santos Moschetta <wainersm@redhat.com>
(cherry picked from commit 0ce0abffa6)
2023-10-31 10:22:41 +01:00
Chelsea Mafrica
448db8e975 gha: add dependencies for spell checker
In the migration from the tests repo to the kata containers repo we
missed two huspell dictionaries for static checks; add them.

Fixes #8315

Signed-off-by: Chelsea Mafrica <chelsea.e.mafrica@intel.com>
(cherry picked from commit c20aadd7a8)
2023-10-31 10:22:32 +01:00
Archana Shinde
43299bcca6 kata-manager: Add clh config to containerd config file
kata-manager currently adds default config which currently is qemu.
Add config for clh as well to containerd configuration.
This should allow new users to get started with clh using kata-manager.

Also add config related to enabling privileged_without_host_devices.
Always good to have this config enabled when users try to run privileged
containers so that devices from host are not inadverdantly passed to the
guest.

Fixes: #8280

Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
(cherry picked from commit d3250dff34)
2023-10-31 10:22:22 +01:00
Gabriela Cervantes
44da54ffc4 metrics: Add parallel udp iperf3 benchmark
This PR adds the parallel udp iperf3 benchmark for network metrics.

Fixes #8277

Signed-off-by: Gabriela Cervantes <gabriela.cervantes.tellez@intel.com>
(cherry picked from commit 2d0518cbe6)
2023-10-31 10:21:26 +01:00
Gabriela Cervantes
67c62319f2 metrics: Add iperf udp benchmark
This PR adds the iperf udp benchmark for bandwdith measurement
for network metrics.

Fixes #8246

Signed-off-by: Gabriela Cervantes <gabriela.cervantes.tellez@intel.com>
(cherry picked from commit a58afe70b8)
2023-10-31 10:21:12 +01:00
Greg Kurz
dcc221228e
Merge pull request #8312 from UiPath/backport-fix-dragon-build-3.2
Backport 3.2 | dragonball: fix for non-deterministic builds
2023-10-27 08:46:03 +02:00
Archana Shinde
cf4c439328
Merge pull request #8316 from likebreath/1025/backport_clh_v35
Stable-3.2 | Upgrade to Cloud Hypervisor v35.0
2023-10-26 14:59:58 -07:00
Bo Chen
af3703bc38 runtime: clh: Re-generate the client code
This patch re-generates the client code for Cloud Hypervisor v35.0.
Note: The client code of cloud-hypervisor's OpenAPI is automatically
generated by openapi-generator.

Fixes: #8057

Signed-off-by: Bo Chen <chen.bo@intel.com>
(cherry picked from commit dfd0c9fa9a)
2023-10-25 11:37:02 -07:00
Bo Chen
4b46c74640 versions: Upgrade to Cloud Hypervisor v35.0
Details of this release can be found in ourroadmap project as iteration
v35.0: https://github.com/orgs/cloud-hypervisor/projects/6.

Fixes: #8057

Signed-off-by: Bo Chen <chen.bo@intel.com>
(cherry picked from commit 8f9f087e35)
2023-10-25 11:36:56 -07:00
Alexandru Matei
6dbad01312 dragonball: fix for non-deterministic builds
Fixes: #7888

Signed-off-by: Alexandru Matei <alexandru.matei@uipath.com>
(cherry picked from commit b03e497)
2023-10-25 13:00:19 +03:00
Fabiano Fidêncio
45687e3251
Merge pull request #8267 from gkurz/3.2.0-branch-bump
# Kata Containers 3.2.0
2023-10-23 19:48:26 +02:00
Fabiano Fidêncio
84343fd2bd
Merge pull request #8295 from gkurz/fix-3.2-release
Fix 3.2 release
2023-10-23 19:47:47 +02:00
Fabiano Fidêncio
305e603008 actions: Move all the checkout actions to v4
It's been released for a while now, and we need to keep consistency
between what we used.

Signed-off-by: Fabiano Fidêncio <fabiano.fidencio@intel.com>
(cherry picked from commit c5cfad7023)
Signed-off-by: Greg Kurz <groug@kaod.org>
2023-10-23 15:18:06 +02:00
Fabiano Fidêncio
52a985e1f7 release: Always use actions/checkout to ensure we're in a git repo
Otherwise we'll face issues like:
```
Run tag=$(echo $GITHUB_REF | cut -d/ -f3-)
  tag=$(echo $GITHUB_REF | cut -d/ -f3-)
  tarball="kata-static-$tag-amd64.tar.xz"
  mv kata-static.tar.xz "$GITHUB_WORKSPACE/${tarball}"
  pushd $GITHUB_WORKSPACE
  echo "uploading asset '${tarball}' for tag: ${tag}"
  GITHUB_TOKEN=*** gh release upload "${tag}" "${tarball}"
  popd
  shell: /usr/bin/bash -e {0}
~/work/kata-containers/kata-containers ~/work/kata-containers/kata-containers
uploading asset 'kata-static-3.3.0-alpha0-amd64.tar.xz' for tag: 3.3.0-alpha0
failed to run git: fatal: not a git repository (or any of the parent directories): .git
```

Fixes: #8286 (or better, just a follow up of that)

Signed-off-by: Fabiano Fidêncio <fabiano.fidencio@intel.com>
(cherry picked from commit b32c6bf805)
Signed-off-by: Greg Kurz <groug@kaod.org>
2023-10-23 15:17:57 +02:00
Fabiano Fidêncio
dc0fe5d7a2 actions: release: Use GH cli instead of hub
hub is now deprecated, which has been causing issues with our release
process.

Let's move to the GH cli (https://cli.github.com/manual), and unblock
this release.

**NOTE**: This commit is purposefully not touching anywhere else hub is
used, as that would require more time and investigation to do the
switch, and right now we just want to unblock the release.

Fixes: #8286

Signed-off-by: Fabiano Fidêncio <fabiano.fidencio@intel.com>
(cherry picked from commit 710eb8ab9d)
Signed-off-by: Greg Kurz <groug@kaod.org>
2023-10-23 15:11:59 +02:00
Greg Kurz
224ae841ac release: Kata Containers 3.2.0
- 3.2 backport bunch
- stable-3.2: Backport everything related to the tests
- 3.2 backport | kata-deploy: Use host's systemctl
- 3.2 backport | dragonball: use version 0.10.4 of `fuse-backend-rs`

2cda69b284 release: Adapt kata-deploy for 3.2.0
93c7d165dc ci: k8s: Fix bogus firecracker check in k8s-credentials-secrets.bat
12b8cbb4f6 tests: Adjust timeout for agent stability test
37c99a46b1 tests: Enable agent stability test
92f283f062 runtime: Validate hypervisor section name in config file
8cf5506700 metrics: fixes common.sh function to always return true
544f261433 metrics: skips docker restart when it is not installed or is masked.
26c6ca93d3 metrics: removing trailing comma characters from json file.
0e0aabfd87 metrics: removal of reference in the documentation to the dax test.
5d911db5e2 tests: Remove unused function from scability test
a380437380 tests: Fix path for versions yaml for soak parallel test
4495a79721 tests: Enable scability test for stability CI
961daee983 scripts: Use install_yq from the `kata-containers`  repo
9b48525af1 release: tag_repos: Stop tagging / updating the `tests` repo
668c8979f0 runtime: fix reading cgroup stats of sandboxes
11e2f2a458 versions: Bump virtiofsd to v1.8.0
9eb8723a5b clh: arm: Use static_sandbox_resource_mgmt=true
e7579d20f7 runtime/qemu: Rework QMP/HMP support
f0278f41d7 runtime/virtiofsd: Drop all references to "--cache=none"
4679aa7712 runtime/qemu: Pass "--xattr" to virtiofsd instead of "-o xattr"
03d712ab25 runtime: Allow virtio_fs_extra_args annotation
e0513094a0 runtime/vc: runPrestartHooks should ignore GetHypervisorPid failure
c17cbd30f0 runtime: fail early when starting docker container with FC
7e6f8010bd runtime: run prestart hooks before starting VM for FC
fa824af234 qemu: tdx: Workaround SMP issue with TDX 1.5
07471cd7a6 qemu: tdx: Adapt to the TDX 1.5 stack
2f28866f26 versions: tdx: Update Kernel to 6.2 + TDX
a36064c729 versions: tdx: Update TDVF to the "edk2-stable202302"
65e0b99eb4 versions: tdx: Update QEMU to v7.2 + TDX v1.10
9ce8ee6c0c runtime/fc: fix image/initrd annotation handling
f86bfe0da3 runtime/clh: fix image/initrd annotation handling
59fae423b5 runtime/qemu: fix image/initrd annotation handling
ef65c5767f kata-agent: use default filemode for block device when it is set to 0
93609aa0cd deps: Bump dependent crate versions
7ff98daecf gha: Add install dependencies for stability tests
ef49db59f7 gha: Add general dependencies to stability tests
a818f628d7 tests: Add soak parallel stability test
602c56c0d7 tests: Enable soak parallel test
a195539307 ci: k8s: set KUBERNETES default value
c4456c21d9 tests: run k8s-volume on a given node
58ad833300 tests: run k8s-file-volume on a given node
a54bdd00d5 tests: exec_host() now gets the node name
0eaf81c1a2 tests: add get_one_kata_node() to tests_common.sh
5f2c7c78ff ci: k8s: set KATA_HYPERVISOR default value
7fceb21362 ci: k8s: configurable deploy kata timeout
c4b0f1f31b ci: k8s: shellcheck fixes to gha-run.sh
6fb40ad47d kata-deploy: re-format kata-[deploy|cleanup].yaml
5cd2e947dc ci: k8s: run_tests() for kcli
56cebfb485 ci: k8s: add deploy-kata-kcli() to gh-run.sh
6b76d21568 ci: k8s: add cleanup-kcli() to gha-run.sh
308ce26438 ci: k8s: set default image for deploy_kata()
c3b91ed394 ci: k8s: create k8s clusters with kcli
33791f0944 metrics: stops kata components and k8s deployment when test finishes
621e6e6d8c gha: combine coco jobs into a single yaml
fe52c0900c gha: combine basic amd64 jobs into a single yaml
301a7d94e3 gha: ci: Revert tracing test PR to unbreak CI
c1da29b9b1 ci: Port runk tests to this repo
63be808730 ci: Add placeholder for runk tests
6541969a83 ci: Move tracing tests here
5d232c8143 ci: Add placeholder for tracing tests
619ef169fb ci: Create a function to install docker
16e31dd409 metrics: Use jq tool to pretty-print json metrics output
1f9a4e908f metrics: Enables FIO test for kata containers
fe4f72e0a1 gha: Add containerd stability tests to ci yaml
7963298ba2 gha: Add stability gha run script
a4e0929054 gha: Add stability tests workflow for gha
be3a3c221b gha: arm64: Ensure the builder is arm64-builder
f20164dc75 packaging: tools: Remove `set -x` leftover
1941d87b84 packaging: release: Mention newly added images
95da1c71ec packaging: tools: Fix container image env var name
508016fca1 packaging: Allow passing the TOOLS_CONTAINER_BUILDER
bb1efe0d46 packaging: stable-3.2: Remove everything related to agent policy
892c9f2f03 gha: Build the kata-agent as part of our workflows
a586b8c581 packaging: Build the kata-agent
766a5fa118 agent: Allow specifying DESTDIR and AGENT_POLICY via env vars
050a4260b9 packaging: Add get_agent_image_name()
3770b200a8 gha: Fix k0s deployment
cf254bc4ee tests: Add general stability fixes
1edf2d9bc1 tests: Add agent stability test
a8eec39559 tests: Add cassandra stress in stability tests
240c584ae2 tests: Add stressng dockerfile for stability tests
e95d3b1be5 tests: Add stressor CPU test for stability tests
4393f553e9 metrics: Add stability test for kata CI
362adea8cd metrics: Fix general check static warnings
16c349e76c docs: Update url in kata vra document
5800be5029 ci: Build src/tools components as part of our tests / releases
41b509e0a6 kata-deploy: Build components from src/tools
a5d7ba6662 static-build: Add scripts to build content from src/tools
d503daf75e packaging: Add get_tools_image_name()
b2e432c024 packaging: Use git abbreviated hash
c22fdb46e3 metrics: Increase qemu jitter value
8a1af8689b metrics: Increase jitter value for clh
f3fcf6cbf9 metrics: Add checkmetrics for latency test
ce03e9f97a metrics: Add qemu latency value limit
cd82a351bd metrics: Add latency value limits for kata CI
1709f99975 ci: kata-monitor: Move tests over
a50c7f1972 ci: Add placeholder for kata-monitor tests
c42d19619d ci: Make install_kata aware of container engines
5017435734 ci: Create a generic install_crio function
98e9434be4 ci: Add install_cni_plugins helper
c61b488b66 ci: Modify containerd default config
7c4617cfac metrics: Add init_env function to latency test
e106ecd1e4 metrics: Fix latency yamls path
665805c81c metrics: Fix spelling warnings
b0c9b4254b metrics: Fix metrics README
c28a0a03f0 metrics: Fix C-Ray documentation
48a9b4ab13 ci: crio: Trail '\r' from exec_host() output
2de1c8bac2 ci: crio: Enable default capabilities
d1d3c7cbda kata-deploy: Fix CRI-O detection
0de3216b08 kata-deploy: Add k0s support
468a3218f5 ci: crio: Pass `-y` to apt
3f2780fca6 metrics: Add latency benchmark for gha
73a084a7d4 metrics: Enable latency test in gha run script
cf3abd308f local-build: Fix .docker ownership before build-payload
8b607ff79a gha: Add pandoc as a dependency for static checks
6a9384ed40 gha: Install hunspell for static checks
a11e8867af ci: Trigger payload-after-push on workflow_dispatch
390bde3182 ci: Actually enable the CRI-O tests
f2953e6448 ci: k8s: rke2: Use sudo to call systemd
08bdb6b5da ci: k8s: Add a CRI-O test
b41fa6d946 ci: k8s: Add a method to install CRI-O
67fef9d5c6 ci: k8s: k0s: Allow passing parameters to the k0s installer
2c3f130c85 ci: kata-deploy: Fix runner name
7a8d848a92 ci: Enable kata-deploy tests for all the supported k8s flavours
7fc2f7d003 ci: kata-deploy: Add the ability to deploy rke2
59a4b00d29 ci: kata-deploy: Add the ability to deploy k0s
1a605c33ad ci: kata-deploy: Add deploy-k8s argument to gha-run.sh
19ee6c9fd7 ci: kata-deploy: Expland tests to run on k0s / rke2
03a8bed32b ci: kata-deploy: Add placeholder for tests on GARM
f09c255766 ci: kata-deploy: Export KUBERNETES env var
abe9dc9904 ci: Move deploy_k8s() to gha-run-k8s-common.sh
ea6489653e ci: Properly set K8S_TEST_UNION
7892e04dd1 ci: Add first letter of the K8S_TEST_HOST_TYPE to resource group name
882d7d7d89 ci: Create clusters in individual resource groups
b09a3f8f8e metrics: Add parallel bandwidth limit for qemu
63e8c38a7a metrics: Enable parallel bandwidth iperf limit
f3c42ff5fe nydus: Temporarily skip tests on dragonball
49c1a37330 nydus: Use `kata-${KATA_HYPERVISOR}` instead of `kata`
ae55c0b510 static-build: Fix arch error on nydus build
65e5bfe9eb tests: nydus: Update nydus tests
079ab1e0ac versions: Bump nydus and nydus-snapshotter to its latest release
d9e910702b gha: nydus: Populate run()
33a4427845 gha: nydus: Populate install_dependencies()
70c1c7d868 gha: nydus: Actually install kata when `install-kata` is called
30efa3e563 gha: nydus: Get rid of nydus{,-snapshotter} install from nydus_test.sh
9ad6000676 tests: nydus: Add timeout to the crictl calls
6d9b8e2437 tests: nydus: Add uid / namespace to the nydus container / sandbox
fd5935da9d tests: nydus: Decorate some calls with `sudo`
4b58777eec tests: nydus: Adapt "source ..." to GHA
82c531978f tests: nydus: Adapt check to "clh" instead "cloud-hypervisor"
4915605b20 tests: common: Add install_nydus_snapshotter()
8e4180f697 tests: common: Add install_nydus()
625a05aa2a ci: static-checks: Clean up static-checks job
9784ded336 ci: static-checks: Run tests depending on KVM
668b7effb4 ci: static-checks: Move "sudo make test" to the new test matrix
4b660a4991 ci: static-checks: Move "make test" to the new test matrix
9e614ce466 runtime-rs: Ensure static-checks-build is a dep of `make test`
d5d21f4cb4 kata-ctl: Use `loop` instead of `kvm` module in tests
93577381a5 kata-ctl: Ensure GENERATED_CODE is a dep of `make test`
93440dc141 agent: Ensure GENERATED_CODE is a dep of `make test`
d269f09a66 ci: install_libseccomp: Do not depend on the tests repo
bb920178ad ci: static-checks: Move "make check" to the new test matrix
d6996d01c0 kata-ctl: Add `kata-types` to the Cargo.lock file
a62e18b27f kata-ctl: Ensure GENERATED_CODE is a dep of `make check`
cd6ab3cf07 tests: install_rust: Also install clippy
d288e1ab87 ci: static-checks: Move vendor check to its own job
755057c9ed tests: Move install_rust.sh from the tests repo
d3a04b7b8f tests: install_go: Remove tests repo dependency
c18c412db7 tests: Move functions from kata_arch script here
bb8d1be300 ci: static-checks: Move kernel config check to its own job
7c4a0f7fac ci: Use variable size of VMs depending on the tests running
7019a25f25 ci: cache: Fix ovmf-sev cache
dc9f2c24f1 ci: cache: Check the sha256sum of the component
a55c082fa1 ci: cache: Remove the script used to cache artefacts on Jenkins
e464bbfc93 ci: cache: Also store the ${component} sha256sum
b5da4ce0d8 ci: cache: Use the cached artefacts from ORAS
2f280659b1 ci: k8s: Temporarily disable tests that require a bigger VM instance
f160effaee ci: cache: Push cached artefacts to ghcr.io
6f8ded36b6 kata-deploy: Generate latest_{artefact,image_builder} files
0210db6e34 ci: cache: Install ORAS in the kata-deploy binaries builder container
27dd77469d ci: k8s: devmapper: Use a smaller / cheaper VM instance
3b64c8d687 ci: nydus: Use a smaller / cheaper VM instance
03857041e4 ci: nerdctl: Use a smaller / cheaper VM instance
301edcb92e ci: docker: Use a smaller / cheaper VM instance
594fcdce56 ci: cri-containerd: Use a smaller / cheaper VM instance
fa9dd46041 ci: k8s: Don't set cpu limit request for k8s-inotofy test
767ccb117f ci: Reduce the size of the AKS VMs
054895fcdd ci: cache: For consistency, read all used env vars
5e22a3085b ci: cache: Pass the exposed env vars to the kata-deploy binaries in docker
bda0354491 ci: cache: Export env vars needed to use ORAS
c78f740854 metrics: Add iperf cpu utilization limit for qemu
73e989c4b1 metrics: Add iperf value for cpu utilization
1c32b31589 tests: Apply timeout to 'ctr t kill'
1d78871713 tests/vfio: Bump VM image to Fedora 38
b40a42699d tests/vfio: Accept single device in vfio group for CLH
82a0225159 tests/vfio: Get rid of sync's
a1aed0c78e gha: vfio: Set test timeout to 15m
32be55aa8a packaging: kernel: Enable VIRTIO_IOMMU on x86_64
3b5c5bcfa4 runtime: clh: Support enabling iommu
a0f59829b2 tests/vfio: Give commands 30s to execute
65943d5b77 tests/vfio: Configure a value for 'hot_plug_vfio' for both vmms
18a8b8df03 runtime: Remove redundant check in checkPCIeConfig
d86af5923f runtime: Add test cases for checkPCIeConfig
0a918d0d20 runtime: Check config for supported CLH (cold|hot)_plug_vfio values
86201ace5a runtime: clh: Add hot_plug_vfio entry to config
01265fb217 tests/vfio: Gather debug info and disable tdp_mmu
44f37f689a tests/vfio: Capture journal from vm
a69d0d1772 tests/vfio: Change to get the test working in GHA
e90027f38c tests/vfio: Move dependency installation to gha-run.sh
62804d637c gha: vfio: Import jobs scripts from tests repo
97283b18b4 metrics: Increase jitter value for qemu
3c5bd8c44d metrics: Increase value limit for jitter in clh
6abf513f06 ci: docker: nerdtl: Use io.containerd.kata-${KATA_HYPERVISOR}.io
9a664ea8bb ci: nerdctl: Create the containerd config
5734c4cbca ci: nerdctl: Switch to tcp port 80 ping
55c8a47a40 ci: docker: Switch to tcp port 80 ping
31c3d9bd80 metrics: Add iperf bandwidth value for qemu
40ae855f0e metrics: Add iperf bandwidth value for kata metrics
deadacd58f metrics: Ensure docker is running in init_env
31c33f9c1c metrics: Add Cassandra Metrics documentation
0968bf1eb9 metrics: this PR skips the FIO test temprarily to fix issues
e5e3951398 ci: docker: Also run the smoke test with runc
c7147dabce ci: docker: Run the tests after the kata-static is created
33430ad60c ci: Add a very basic nerdctl sanity test
69dd11f459 ci: Add a very basic docker sanity test
fcfa6c6e1a ci: use github.ref_name instead of $GITHUB_REF_NAME
19d9fd9eb1 ci: Add more target-branch related fixes
fe4247a90c ci: Fix target-branch usage
9f510d059b metrics: Remove warning from metrics documentation
400418bce0 kata-deploy: Remove curl after it's used
1df997c38c kata-deploy: Fix aarch64 image build
61b1a99fca gha: Manually rebase PR atop of the target branch before testing
db563709e3 kata-deploy: Switch to an alpine image
bb5dbfbbce k8s: ci: Skip "Pod quota" test with firecracker
263ed4afd1 ci: k8s: Remove useless skip statement from tests
7e135294a7 ci: k8s: Also check for "fc" (for firecracker)
8892d9a7b2 ci: k8s: Add clean-up-garm argument for gha-run.sh
c723a7d9c8 ci: k8s: devmapper tests should be using ubuntu 20.04
aee6f36c86 ci: k8s: Add a kata-deploy-garm target
5bb77b628d ci: k8s: Export KUBERNETES env var
7ce5c8b3fa ci: k8s: Install bats on GARM runners
9fb291d88a ci: k8s: Wait some time after restarting k3s
053308eefc metrics: fix FIO test initialization
89345b6731 ci: k8s: Append, instead of overwrite, the devmapper config
bb675f8101 ci: k8s: Decrease k3s sleep from 4 to 2 minutes
695c7162ef ci: k8s: Use vanilla kubectl with k3s
7f865be398 ci: k8s: Ensure k3s is deploy with --write-kubeconfig-mode=644
7a96d0a589 ci: k8s: Use the proper command for sleep
92fdaf9719 metrics: Use TensorFlow optimized image
1b7ffeac53 ci: k8s: Fix typo in run-k8s-tests-on-garm.yaml
79de72592f ci: k8s: Add k8s devmapper tests (part 0)
a41a56e326 ci: k8s: Add a function to configure devmapper for containerd
315288a000 ci: k8s: Add a function to deploy k3s
899c823c0b packaging: do not install docker-compose-plugin for s390x|ppc64le
374e77d330 metrics: Add write 95 percentile for FIO for qemu
22ce1671a6 metrics: Add write 95 percentile FIO value
5e90c8e176 metrics: Add checkmetrics to gha run script
651b89ba41 metrics: Add checkmetrics value for qemu for iperf
907baa3464 metrics: Add jitter value for clh
d9408a7283 metrics: Add test selector to iperf metrics
3583f373f5 metrics: Enable iperf benchmark on gha for kata metrics
7fd7186780 CI: switch static-checks-dragonball CI machines to Azure
9b6c5eaff1 kata-deploy: Create kata-static.tar with correct ownership
4403af74ec metrics: re-enable memory-usage initialization step
d2d7c041f3 metrics: fix parsing issue on memory-usage test
8c7a4fd121 gha: Rebase atop of the target branch
75dcca5a53 metrics: Add grabdata script for metrics report
59e7c3a347 gha: Update to checkout@v3 action
8f1cc278ca metrics: Add report generator link to general documentation
05180b61a0 metrics: Add README for kata metrics report
17c88a1a7f metrics: Add limit for 90 percentile for qemu value
dbb4761c4b metrics: Add limit for write 90 percentile value for clh
aebf392e45 metrics: Enable FIO limits for kata metrics
41d05b8857 metrics: Fix memory footprint qemu limit
3491407581 metrics: Fix memory inside limits for kata metrics
08027f2282 metrics: Add test setup details to metrics report
99103db1fb metrics: Add boot lifecycle times to metrics report
75c92ba474 metrics: Add memory inside container to metrics report
1c1eb98107 metrics: Add scaling system footprint in metrics report
01f6e6a1a3 metrics: Add metrics reportgen
428eb6908d metrics: Add report file titles
a8fa3d99da metrics: Generate PNGs alongside the PDF report
80625ed573 metrics: Add metrics report R files
9f8e194e6f metrics: Add report dockerfile
03c206f87f metrics: Add metrics report script
2684b267f7 tests: Expand confidential test to support TDX
4976629aee tests: Expand confidential test to support SNP
019849071e tests: Add confidential test for SEV
1b7c7901d9 local-build: Remove $HOME/.docker/buildx/activity/default
6a34bae03d gha: Avoid "fail-fast" in tests that are known to be flaky
17d22cae34 tests: use unique test name
e8c24fa0b9 tests: delete k8s deployment at the test's end
3e07c89d39 metrics: Remove unused variable in tensorflow nhwc script
5b9a69433d kata-deploy: Don't try to remove /opt/kata
e99a13d26c gha: vfio: Run on Ubuntu 23.04 runner
394d146b89 local-build: Remove GID before creating group
7421737229 metrics: Add TensorFlow ResNet50 fp32 Dockerfile
9acbf2faf7 metrics: Add TensorFlow ResNet50 FP32 benchmark
4f2c9372c3 kata-deploy: Avoid failing on content removal
6ea1d3bffd metrics: Add disk link to README
ad2036927f metrics: Fix FIO path
abcb225ce3 metrics: Use function from metrics common in pytorch script
508f1bba15 gha: capture additional kata-deploy output
d46c300608 metrics: Enable kata runtime in K8s for FIO test.
3d3882a06a metrics: Update tensorflow name in gha run script
7d0a3dbf24 metrics: Fix check results for tensorflow benchmark
3e2a383b7d gha: kata-deploy: Do the runtime class cleanup as part of the cleanup
2c5db14a1a gha: kata-deploy: Add the first kata-deploy test
0b4fb826de metrics: Remove unused variable in tensorflow mobilenet script
b38624e2b3 tests: common: Ensure test_type is used as part of the cluster's name
cdfcd9aba8 tests: commob: Don't fail if yq is not part of the cache
74edbaac96 gha: kata-deploy: Add run-kata-deploy-tests.sh
d7130f48b0 gha: k8s: Stop running kata-deploy tests as part of the k8s suite
810507e8a3 tests: k8s: Call ensure_yq() in setup.sh
915bace795 kata-deploy: Properly create default runtime class
870d8004a0 metrics: Fix MobileNet help me description
145450544d gha: ci: Start running kata-deploy tests
bd29413721 docs: Fix TensorFlow word across the document
a845e94139 docs: Add Tensorflow Resnet50 documentation
6e5a5b8249 metrics: Add Dockerfile for ResNet50 int8
5d85cac1d6 metrics: Add Tensorflow ResNet50 int8 benchmark
7474e50ae2 gha: cri-containerd: Enable tests
20be3d93d5 gha: cri-containerd: Add timeout to the crictl calls on testContainerStop
10058f718a gha: cri-containerd: Show pod before deleting it
585d5fba03 gha: cri-containerd: Print kata logs in case of error
2fea5a5f8b gha: cri-containerd: Group containerd logs
3c7597f4ba gha: cri-containerd: Ensure RUNTIME takes KATA_HYPERVISOR into account
738d808cac metrics: Rename tensorflow scripts
4bb8fcc0c0 tests: kata-deploy: Add placeholder for kata-deploy-tests-on-tdx
f5e14ef283 tests: kata-deploy: Add placeholder for kata-deploy-tests-on-aks
e812c437fe tests: kata-deploy: Add functional/kata-deploy/gha-run.sh placeholder
c19cebfa80 tests: Add gha-run-k8s-common.sh
4e8c512346 metrics: fix the loop used to stop kata components #7629
47f32c4983 metrics: Add cassandra statefulset yaml
d5a14449fc metrics: Add cassandra service yaml
1292b51092 metrics: Add block loop pvc yaml for cassandra
105a556a30 metrics: Add block loop pv yaml for cassandra test
1b126eb4ce metrics: Add block loop pvc for cassandra test
671ad98451 metrics: Add Cassandra Kubernetes benchmark for kata metrics
058b304455 gha: static-checks: Move to the Azure instances
b600659df2 metrics: Add check containers are running in tensorflow mobilenet
1b30aa818e metrics: Add check containers are up in tensorflow script
3502bb4b20 metrics: Remove unused variable in tensorflow script
b07c19eb5f metrics: Add check containers are running function
fc89392745 metrics: Add check containers are up in tensorflow mobilenet script
73843b786d metrics: Use check containers are up in tensorflow script
7fffa7f9ce metrics: Add check containers are up in common script
1b68145b6a metrics: Use collect_results function in tensorflow mobilenet test
f29f811470 metrics: Remove collect results function definition
6b6a6ee724 metrics: Add common functions to the common script
a341c2f324 metrics: compute tensorflow statistics
b8b4ca10e9 ci: unencrypted-image: Fix build context
dcc35781f7 ci: unencrypted-image: Don't fail to build on s390x
babbd4186c ci: create-confidential-image: Add dependent actions
cecb30dbb2 metrics: Add nginx documentation to network README
1971fe4986 metrics: Add nginx kubernetes yaml
6c921ce3db metrics: Add network nginx benchmark
a5a3e4124f ci: k8s: tees: Ensure PR_NUMBER is exported
3a21c485bf ci: {{ pr-number }} should be {{ inputs.pr-number }}
218d83bd3f tests: k8s: Ensure the runtime classes are properly created
0625d8dfc1 ci: Add build-and-publish-tee-confidential-unencrypted-image
6ae591c618 ci: k8s: Add the image used for unencrypted confidential tests
8d4f9ef256 tests: upgrade bats version
a484666890 metrics: install kata once and run multiple checks
759b0fa385 metrics: General improvements to mobilenet tensorflow test
d6398ccf9e metrics: Add iperf to gha run script
a75db20167 gha: Add iperf network metrics
b33d4de013 metrics: Add latency test to network README
db23b95b53 metrics: Add latency server yaml
2b60fe0fe0 metrics: Add latency client yaml
aa71d6f931 metrics: Add network latency test
b2c627aac9 metrics: Improve naming testing containers in launch times test
ea1fdd2cb9 metrics: Clean kata components before start a metric test.
7d5f65be7c kata-deploy: Use host's systemctl
2881bad407 dragonball: use version 0.10.4 of `fuse-backend-rs`

Signed-off-by: Greg Kurz <groug@kaod.org>
2023-10-20 18:12:29 +02:00
Greg Kurz
2cda69b284 release: Adapt kata-deploy for 3.2.0
kata-deploy files must be adapted to a new release.  The cases where it
happens are when the release goes from -> to:
* main -> stable:
  * kata-deploy-stable / kata-cleanup-stable: are removed

* stable -> stable:
  * kata-deploy / kata-cleanup: bump the release to the new one.

There are no changes when doing an alpha release, as the files on the
"main" branch always point to the "latest" and "stable" tags.

Signed-off-by: Greg Kurz <groug@kaod.org>
2023-10-20 18:12:29 +02:00
Fabiano Fidêncio
c8f84ca9fd
Merge pull request #7914 from gkurz/backport-3.2
3.2 backport bunch
2023-10-20 14:22:41 +02:00
Greg Kurz
93c7d165dc ci: k8s: Fix bogus firecracker check in k8s-credentials-secrets.bat
Fixes #8259

Signed-off-by: Greg Kurz <groug@kaod.org>
(cherry picked from commit 36109da93f)
Signed-off-by: Greg Kurz <groug@kaod.org>
2023-10-20 00:44:12 +02:00
Gabriela Cervantes
12b8cbb4f6 tests: Adjust timeout for agent stability test
This PR adjusts the timeout for the agent stability test
to run on the gha.

Signed-off-by: Gabriela Cervantes <gabriela.cervantes.tellez@intel.com>
(cherry picked from commit d01daf749b)
Signed-off-by: Greg Kurz <groug@kaod.org>
2023-10-20 00:44:11 +02:00
Gabriela Cervantes
37c99a46b1 tests: Enable agent stability test
This PR enables the agent stability test for stability gha CI.

Fixes #8240

Signed-off-by: Gabriela Cervantes <gabriela.cervantes.tellez@intel.com>
(cherry picked from commit 82a0814fc2)
Signed-off-by: Greg Kurz <groug@kaod.org>
2023-10-20 00:44:11 +02:00
James O. D. Hunt
92f283f062 runtime: Validate hypervisor section name in config file
Previously, if you accidentally modified the name of the hypervisor
section in the config file, the default golang runtime gives a cryptic
error message ("`VM memory cannot be zero`"). This can be demonstrated
using the `kata-runtime` utility program which uses the same golang
config package as the actual runtime (`containerd-shim-kata-v2`):

```bash
$ kata-runtime env >/dev/null; echo $?
0
$ sudo sed -i 's!^\[hypervisor\.qemu\]!\[hypervisor\.foo\]!g' /etc/kata-containers/configuration.toml
$ kata-runtime env >/dev/null; echo $?
VM memory cannot be zero
1
```

The hypervisor name is now validated so that the behaviour becomes:

```bash
$ kata-runtime env >/dev/null; echo $?
0
$ sudo sed -i 's!^\[hypervisor\.qemu\]!\[hypervisor\.foo\]!g' /etc/kata-containers/configuration.toml
$ ./kata-runtime env >/dev/null; echo $?
/etc/kata-containers/configuration.toml: configuration file contains invalid hypervisor section: "foo"
1
```

Fixes: #8212.

Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
(cherry picked from commit 3e8cf6959c)
Signed-off-by: Greg Kurz <groug@kaod.org>
2023-10-20 00:44:10 +02:00
David Esparza
8cf5506700 metrics: fixes common.sh function to always return true
This PR corrects the init env() helper function, to make that
systemctl always returns true when enumerating masked services,
and preventing the test from failing

Fixes: #8242

Signed-off-by: David Esparza <david.esparza.borquez@intel.com>
(cherry picked from commit 4f9681b411)
Signed-off-by: Greg Kurz <groug@kaod.org>
2023-10-20 00:44:10 +02:00
David Esparza
544f261433 metrics: skips docker restart when it is not installed or is masked.
To avoid errors when initializing the test environment, the
kill_processes_before_start() helper function needs to verify that
docker is installed before attempting to stop it.

Fixes: #8218

Signed-off-by: David Esparza <david.esparza.borquez@intel.com>
(cherry picked from commit 908519db9d)
Signed-off-by: Greg Kurz <groug@kaod.org>
2023-10-20 00:44:09 +02:00
David Esparza
26c6ca93d3 metrics: removing trailing comma characters from json file.
This PR removes trailing commas so that the json results
file is valid.

This PR also changes the way data results are collected by
terating through the array of memory values to calculate
their average.

Fixes: #8204

Signed-off-by: David Esparza <david.esparza.borquez@intel.com>
(cherry picked from commit c2763120aa)
Signed-off-by: Greg Kurz <groug@kaod.org>
2023-10-20 00:44:09 +02:00
David Esparza
0e0aabfd87 metrics: removal of reference in the documentation to the dax test.
This PR removes the reference in the documentation to the DAX
subtest of the FIO benchmark, because this metric is currently
WIP.

Fixes: #8159

Signed-off-by: David Esparza <david.esparza.borquez@intel.com>
(cherry picked from commit 89c9454fca)
Signed-off-by: Greg Kurz <groug@kaod.org>
2023-10-20 00:44:08 +02:00
Gabriela Cervantes
5d911db5e2 tests: Remove unused function from scability test
This PR removes an unused function from scability test.

Signed-off-by: Gabriela Cervantes <gabriela.cervantes.tellez@intel.com>
(cherry picked from commit ef6388e815)
Signed-off-by: Greg Kurz <groug@kaod.org>
2023-10-20 00:44:08 +02:00
Gabriela Cervantes
a380437380 tests: Fix path for versions yaml for soak parallel test
This PR fixes the path for versions yaml for soak parallel test.

Signed-off-by: Gabriela Cervantes <gabriela.cervantes.tellez@intel.com>
(cherry picked from commit c6463cb5ae)
Signed-off-by: Greg Kurz <groug@kaod.org>
2023-10-20 00:44:07 +02:00
Gabriela Cervantes
4495a79721 tests: Enable scability test for stability CI
This PR enables the scability test for stability CI gha.

Fixes #8196

Signed-off-by: Gabriela Cervantes <gabriela.cervantes.tellez@intel.com>
(cherry picked from commit 30ff58904e)
Signed-off-by: Greg Kurz <groug@kaod.org>
2023-10-20 00:44:07 +02:00
Fabiano Fidêncio
961daee983 scripts: Use install_yq from the kata-containers repo
As the file is already part of the kata-containers repo, and the tests
repo is about to become read-only, we're good to drop the tests
references from here and use everything coming from the
`kata-containers` repo instead.

Signed-off-by: Fabiano Fidêncio <fabiano.fidencio@intel.com>
(cherry picked from commit fbc8f8f466)
Signed-off-by: Greg Kurz <groug@kaod.org>
2023-10-18 18:16:09 +02:00
Fabiano Fidêncio
9b48525af1 release: tag_repos: Stop tagging / updating the tests repo
As we've moved all the tests to the `kata-containers` repo, the `tests`
repo will become a read-only repo.

Fixes: #8200

Signed-off-by: Fabiano Fidêncio <fabiano.fidencio@intel.com>
(cherry picked from commit 65b1a2d277)
Signed-off-by: Greg Kurz <groug@kaod.org>
2023-10-18 18:16:04 +02:00
Peteris Rudzusiks
668c8979f0 runtime: fix reading cgroup stats of sandboxes
The cgroup stats come from resourcecontrol package in the form of pointers
to structs. The sandbox Stat() method incorrectly was expecting structs.
This caused the cpu and memory stats to always be 0, which in turn caused
incorrect pod overhead metrics.

Fixes #8035

Signed-off-by: Peteris Rudzusiks <rye@stripe.com>
(cherry picked from commit 94e2ccc2d5)
Signed-off-by: Greg Kurz <groug@kaod.org>
2023-10-18 17:45:49 +02:00
Simon Kaegi
11e2f2a458 versions: Bump virtiofsd to v1.8.0
https://gitlab.com/virtio-fs/virtiofsd/-/releases/v1.8.0 was released two weeks ago. We have fully tested and are using this version.

Also bumps toolchain version to match what virtiofsd used.

Fixes: #7960

Signed-off-by: Simon Kaegi <simon.kaegi@gmail.com>
(cherry picked from commit 44c7c082d9)
Signed-off-by: Greg Kurz <groug@kaod.org>
2023-10-18 17:43:47 +02:00