diff --git a/.github/workflows/nerdctl.yaml b/.github/workflows/nerdctl.yaml new file mode 100644 index 0000000000..15545e9058 --- /dev/null +++ b/.github/workflows/nerdctl.yaml @@ -0,0 +1,120 @@ +name: Nerdctl + +on: + workflow_dispatch: + pull_request: + branches: + - main + paths-ignore: + - 'site/**' + +permissions: + contents: read + +jobs: + nerdctl: + name: Nerdctl + runs-on: ubuntu-22.04 + timeout-minutes: 30 + strategy: + fail-fast: false + matrix: + ipFamily: [ipv4, ipv6] + deployment: [singleNode, multiNode] + exclude: + - ipFamily: ipv6 + env: + JOB_NAME: "nerdctl-${{ matrix.deployment }}-${{ matrix.ipFamily }}" + IP_FAMILY: ${{ matrix.ipFamily }} + NERDCTL_VERSION: "1.7.0" + CONTAINERD_VERSION: "1.7.9" + CNI_PLUGINS_VERSION: "1.3.0" + steps: + - name: Check out code into the Go module directory + uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 + with: + fetch-depth: 0 + + - name: Install kind + run: sudo make install INSTALL_DIR=/usr/local/bin + + - name: Install kubectl + run: | + curl -LO https://dl.k8s.io/release/$(curl -sL https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl + chmod +x ./kubectl + sudo mv ./kubectl /usr/local/bin/kubectl + + - name: Enable ipv4 and ipv6 forwarding + run: | + sudo sysctl -w net.ipv6.conf.all.forwarding=1 + sudo sysctl -w net.ipv4.ip_forward=1 + + - name: Install nerdctl + run: | + sudo systemctl is-active --quiet docker.service || systemctl stop docker.service + sudo apt-get remove -y docker-ce docker-ce-cli docker-buildx-plugin podman + # Install Containerd + sudo curl -sSL https://github.com/containerd/containerd/releases/download/v${CONTAINERD_VERSION}/containerd-${CONTAINERD_VERSION}-linux-amd64.tar.gz|sudo tar -xvz -C /usr + sudo systemctl restart containerd.service + sudo ctr version + # Install CNI + sudo mkdir -p /opt/cni/bin + sudo curl -sSL https://github.com/containernetworking/plugins/releases/download/v${CNI_PLUGINS_VERSION}/cni-plugins-linux-amd64-v${CNI_PLUGINS_VERSION}.tgz |sudo tar -xvz -C /opt/cni/bin + # Install nerdctl + sudo curl -sSL https://github.com/containerd/nerdctl/releases/download/v${NERDCTL_VERSION}/nerdctl-${NERDCTL_VERSION}-linux-amd64.tar.gz|sudo tar -xvz -C /usr/local/bin + sudo ln -s /usr/local/bin/nerdctl /usr/local/bin/docker + sudo docker version + sudo cat /etc/cni/net.d/* + + - name: Create single node cluster + if: ${{ matrix.deployment == 'singleNode' }} + run: | + cat <