kubewarden/kubewarden-end-to-end-tests
GitHub: kubewarden/kubewarden-end-to-end-tests
Kubewarden 的端到端测试框架,用于验证 Kubernetes 策略引擎在多种部署场景下的功能与稳定性。
Stars: 2 | Forks: 7
[](https://github.com/kubewarden/community/blob/main/REPOSITORIES.md#infra-scope)
[](https://github.com/kubewarden/community/blob/main/REPOSITORIES.md#stable)
## [Charts 测试矩阵](https://github.com/kubewarden/helm-charts/blob/main/.github/workflows/e2e-tests.yml)
| Trigger | Charts | K3S | Notes | Status |
|-------------------- |----------------- |----- |---------------------- | :--------: |
| nightly (schedule) | latest tag | k3d | | [](https://github.com/kubewarden/helm-charts/actions/workflows/e2e-tests.yml?query=event%3Aschedule) |
| | source (main) | k3d | :latest images | |
| airgap (every Friday)| latest tag | k3s | | [](https://github.com/kubewarden/helm-charts/actions/workflows/e2e-airgap.yml?query=event%3Aschedule) |
| release (tag) | release tag | k3d | | [](https://github.com/kubewarden/helm-charts/actions/workflows/e2e-tests.yml?query=event%3Aworkflow_run) |
| | previous stable | k3d | upgrade to released | |
| | release tag | old | oldest supported k8s | |
| pull request | source (pr) | k3d | | |
| manual | any | any | any | |
# kubewarden-end-to-end-tests
本仓库包含运行 Kubewarden 端到端测试所需的所有文件。
`tests` 目录中存储了使用 bats 测试框架编写的测试。
`reposources` 目录包含测试执行过程中使用的所有文件,例如用于部署 Kubernetes 资源的 yaml 文件。
## 需求
测试是使用 [bats](https://github.com/bats-core/bats-core) 编写的。
最低要求版本为 v1.7.0。因此,需要在您的环境中安装它。
为此,您可以检查操作系统的软件包仓库,或遵循 [官方文档](https://bats-core.readthedocs.io/en/stable/installation.html#installation)。
其他必需的依赖项:
```
# k3d
curl -s https://raw.githubusercontent.com/k3d-io/k3d/main/install.sh | bash
# yq - python yq 语法不同于 mikefarah binary
Use mikefarah binary, github-runners and zypper default to it
# 此外还需要 kubectl、helm、docker……您可以运行:
make check
```
## 设置集群和 kubewarden
Makefile 包含许多目标,旨在简化测试环境的设置和任务运行:
```
# 安装 :latest 镜像及自定义参数
make
cluster K3S=1.30 \
install LATEST=1 DEFAULTS_ARGS="--set recommendedPolicies.enabled=True" CONTROLLER_ARGS="-f custom.yaml"
# 从本地目录安装
ln -s ../helm-charts/charts
make cluster install CHARTS_LOCATION=./charts
# 安装上一个稳定版本并升级到本地 chart
make cluster install VERSION=prev
make upgrade CHARTS_LOCATION=./charts
# 删除集群
make clean
```
## 运行测试
一旦您拥有一个安装了 Kubewarden 的集群,就可以运行测试。
```
# 所有测试文件的 target 均由文件名自动生成
make monitor-mode-tests.bats reconfiguration-tests.bats
# 运行所有测试
make tests
```
所有测试都在指定的 `kubectl` context 上运行。因此,如果您想在现有的集群上运行测试,需要定义 context:
```
CLUSTER_CONTEXT=k3d-mycluster make basic-end-to-end-test.bats
```
也可以查看 helm-charts 仓库,了解如何在 [Github workflow](https://github.com/kubewarden/helm-charts/blob/main/.github/workflows/e2e-tests.yml) 中运行此测试。
## 更新策略
```
~ cd kwctl/e2e-tests/test-data/sigstore
~ COSIGN_PASSWORD=kubewarden cosign sign --key cosign1.key -a env=prod -a stable=true ghcr.io/kubewarden/tests/pod-privileged:v0.2.1
~ COSIGN_PASSWORD=kubewarden cosign sign --key cosign2.key -a env=prod ghcr.io/kubewarden/tests/pod-privileged:v0.2.1
```
标签:Chrome Headless, DevSecOps, E2E测试, Github Actions, Helm Charts, K3d, K3s, Kubernetes安全, Kubewarden, Pandas, Rancher, WebAssembly, Web截图, 上游代理, 基础架构测试, 容器安全, 应用安全, 开源框架, 持续集成, 测试矩阵, 空气隔断环境, 端到端测试, 策略引擎, 系统升级, 网络安全挑战, 请求拦截