mirror of
https://github.com/containerd/containerd.git
synced 2026-08-09 17:39:22 +00:00
Bumps [actions/checkout](https://github.com/actions/checkout) from 5.0.1 to 6.0.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](93cb6efe18...1af3b93b68)
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: 6.0.0
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
117 lines
4.7 KiB
YAML
117 lines
4.7 KiB
YAML
name: E2E
|
|
on:
|
|
workflow_call:
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
node-e2e-k8s:
|
|
name: Kubernetes Node
|
|
runs-on: ubuntu-24.04
|
|
timeout-minutes: 90
|
|
steps:
|
|
- name: Checkout containerd
|
|
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
|
with:
|
|
path: src/github.com/containerd/containerd
|
|
|
|
- name: Checkout Kubernetes
|
|
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
|
with:
|
|
repository: kubernetes/kubernetes
|
|
path: src/k8s.io/kubernetes
|
|
|
|
- name: Install Go
|
|
uses: ./src/github.com/containerd/containerd/.github/actions/install-go
|
|
|
|
- name: Set Up Environment
|
|
run: |
|
|
set -e -x
|
|
# Disable swap to allow kubelet to start.
|
|
sudo swapoff -a
|
|
sudo apt-get update
|
|
sudo apt-get install -y gperf build-essential pkg-config
|
|
echo "GOPATH=${{ github.workspace }}" >> $GITHUB_ENV
|
|
echo "${{ github.workspace }}/bin" >> $GITHUB_PATH
|
|
|
|
- name: Build and Install containerd
|
|
working-directory: ./src/github.com/containerd/containerd
|
|
run: |
|
|
set -e -x
|
|
script/setup/install-seccomp
|
|
script/setup/install-runc
|
|
script/setup/install-cni $(grep containernetworking/plugins go.mod | awk '{print $2}')
|
|
make binaries GO_BUILD_FLAGS="-mod=vendor"
|
|
sudo make install
|
|
|
|
- name: Configure and Start containerd
|
|
run: |
|
|
set -e -x
|
|
# Stop and disable pre-existing containerd service to ensure a clean state.
|
|
if sudo systemctl is-active --quiet containerd; then
|
|
sudo systemctl stop containerd
|
|
fi
|
|
if sudo systemctl is-enabled --quiet containerd; then
|
|
sudo systemctl disable containerd
|
|
fi
|
|
|
|
sudo mkdir -p /etc/containerd
|
|
sudo tee /etc/containerd/config.toml > /dev/null <<EOF
|
|
version = 2
|
|
required_plugins = ["io.containerd.grpc.v1.cri"]
|
|
[plugins."io.containerd.grpc.v1.cri".containerd]
|
|
default_runtime_name = "runc"
|
|
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc]
|
|
runtime_type = "io.containerd.runc.v2"
|
|
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
|
|
# Ensure containerd uses the runc binary installed from source.
|
|
BinaryName = "/usr/local/sbin/runc"
|
|
SystemdCgroup = true
|
|
# Required for certain node e2e tests.
|
|
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.test-handler]
|
|
runtime_type = "io.containerd.runc.v2"
|
|
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.test-handler.options]
|
|
# Ensure containerd uses the runc binary installed from source.
|
|
BinaryName = "/usr/local/sbin/runc"
|
|
SystemdCgroup = true
|
|
EOF
|
|
|
|
sudo cp ./src/github.com/containerd/containerd/containerd.service /etc/systemd/system/
|
|
sudo systemctl daemon-reload
|
|
sudo systemctl start containerd
|
|
|
|
# Wait and verify the daemon is ready.
|
|
sleep 5
|
|
sudo ctr version
|
|
|
|
- name: Run Node E2E Tests
|
|
working-directory: ./src/k8s.io/kubernetes
|
|
run: |
|
|
# TODO: Remove "ResourceMetrics" feature skip once containerd supports ListMetricDescriptors:
|
|
# https://github.com/kubernetes/kubernetes/blob/v1.33.2/test/e2e_node/resource_metrics_test.go#L67-L71
|
|
sudo make test-e2e-node \
|
|
FOCUS='\[NodeConformance\]|\[Feature:.+\]|\[Feature\]' \
|
|
SKIP='\[Flaky\]|\[Slow\]|\[Serial\]|\[Feature:UserNamespacesSupport\]|\[Feature:PodLifecycleSleepActionAllowZero\]|\[Feature:UserNamespacesPodSecurityStandards\]|\[Feature:KubeletCredentialProviders\]|\[Feature:LockContention\]|\[Feature:SCTPConnectivity\]|\[Feature:ResourceMetrics\]|\[Alpha\]' \
|
|
TEST_ARGS='--kubelet-flags="--cgroup-driver=systemd --cgroups-per-qos=true --cgroup-root=/ --runtime-cgroups=/system.slice/containerd.service"'
|
|
|
|
- name: Collect Logs on Failure
|
|
if: failure()
|
|
run: |
|
|
ARTIFACT_DIR=./_artifacts
|
|
mkdir -p ${ARTIFACT_DIR}
|
|
KUBELET_LOG_SRC=$(sudo find /tmp/_artifacts -name "kubelet.log" | head -n 1)
|
|
if [ -f "$KUBELET_LOG_SRC" ]; then
|
|
sudo cp "$KUBELET_LOG_SRC" "${ARTIFACT_DIR}/kubelet.log"
|
|
else
|
|
echo "Kubelet log file not found." > "${ARTIFACT_DIR}/kubelet.log"
|
|
fi
|
|
sudo journalctl -u containerd --no-pager > "${ARTIFACT_DIR}/containerd.log"
|
|
|
|
- name: Upload Log Artifacts
|
|
if: failure()
|
|
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
|
|
with:
|
|
name: e2e-logs
|
|
path: ./_artifacts/
|