feat: switch to binary runc and containerd install (#333)
* feat: switch to binary runc and containerd install
* fix: always download directly to dst node
* feat: add crictl role
* ci: add tests for binary downloads
* ci: rename scenario and add matrix
* ci: move to using prepare
* ci: stop using anchors
* chore: refactor to download_artifact
* chore: add jammy to containerd+runc
* chore: bump ansible-lint
* chore: add more platforms for cri
* fix: ensure tar command exists
* chore: drop amznlinux2
---------
Co-authored-by: Mohammed Naser <mnaser@vexxhost.com>
diff --git a/.github/workflows/containerd.yml b/.github/workflows/containerd.yml
new file mode 100644
index 0000000..69a0ec8
--- /dev/null
+++ b/.github/workflows/containerd.yml
@@ -0,0 +1,69 @@
+# Copyright (c) 2023 VEXXHOST, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+name: containerd
+
+on:
+ pull_request:
+ paths:
+ - molecule/containerd/**
+ - roles/defaults/**
+ - roles/runc/**
+ - roles/binary_download/**
+ - roles/containerd/**
+ - roles/crictl/**
+ push:
+ branches:
+ - main
+ paths:
+ - molecule/containerd/**
+ - roles/defaults/**
+ - roles/runc/**
+ - roles/binary_download/**
+ - roles/containerd/**
+ - roles/crictl/**
+
+jobs:
+ test:
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ distro:
+ - debian10
+ - debian11
+ - fedora36
+ - fedora37
+ - rockylinux8
+ - rockylinux9
+ - ubuntu2004
+ - ubuntu2204
+ steps:
+ - name: Checkout project
+ uses: actions/checkout@v3
+
+ - name: Install Poetry
+ run: pipx install poetry
+
+ - name: Setup Python
+ uses: actions/setup-python@v4
+ with:
+ cache: poetry
+
+ - name: Install dependencies
+ run: poetry install --no-interaction --with dev
+
+ - name: Run Molecule
+ run: poetry run molecule test -s containerd
+ env:
+ MOLECULE_DISTRO: ${{ matrix.distro }}