Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add podman poc pull request workflow #8

Open
wants to merge 8 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions .github/workflows/podman_poc_Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# This dockerfile installs qemu and podman with the goal of starting an arm64 podman machine to run arm64 containers
# docker build -f podman_poc_Dockerfile -t arm64-podman .
FROM ubuntu:jammy

RUN apt-get update && \
apt-get upgrade -y && \
apt-get install -y curl sudo xz-utils ssh-tools

# RUN sudo apt-get install -y qemu-user qemu-user-binfmt qemu-system-x86 qemu-system-arm podman
RUN sudo apt-get install -y qemu-user qemu-user-binfmt qemu-system-x86 podman

RUN curl -L -O https://builds.coreos.fedoraproject.org/prod/streams/stable/builds/38.20230709.3.0/aarch64/fedora-coreos-38.20230709.3.0-qemu.aarch64.qcow2.xz$arm64_coreos_archive_name && \
sudo curl -L -o /usr/libexec/podman/gvproxy https://github.com/containers/gvisor-tap-vsock/releases/download/v0.7.0/gvproxy-linux && \
chmod +x /usr/libexec/podman/gvproxy && \
podman machine ls

RUN podman machine init --image-path fedora-coreos-38.20230709.3.0-qemu.aarch64.qcow2.xz arm64 && \
podman system connection default arm64 && \
podman machine ls


# Entrypoint script
# podman machine ls
# # https://github.com/boot2docker/boot2docker/issues/1138
# mknod /dev/kvm c 10 232
# podman machine start arm64

# RUN bash -c $(cat <<ENTRYPOINT_EOF
# podman machine ls
# ENTRYPOINT_EOF
# )
46 changes: 46 additions & 0 deletions .github/workflows/podman_poc_pull_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: podman_poc
on: pull_request
jobs:
poc:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: docker/setup-qemu-action@v2
- id: install-podman
run: |
set -x
sudo apt update
sudo apt upgrade -y

ls -l /dev
# # https://github.com/orgs/community/discussions/8305
# echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
# sudo udevadm control --reload-rules
# sudo udevadm trigger --name-match=kvm
# sudo apt-get install -y libvirt-clients libvirt-daemon-system libvirt-daemon virtinst bridge-utils qemu qemu-system-x86
# sudo usermod -a -G kvm,libvirt $USER

# sudo apt install -y libvirt-daemon
# sudo systemctl enable libvirtd
# sudo systemctl start libvirtd

sudo apt-get install -y qemu-user qemu-user-binfmt qemu-system-x86 qemu-system-arm
sudo apt-get install -y podman

# gvproxy is required to start arm64 podman machine
sudo curl -L -o /usr/libexec/podman/gvproxy https://github.com/containers/gvisor-tap-vsock/releases/download/v0.7.0/gvproxy-linux
sudo chmod +x /usr/libexec/podman/gvproxy

podman machine ls
arm64_coreos_archive_filename=fedora-coreos-38.20230709.3.0-qemu.aarch64.qcow2.xz
curl -O https://builds.coreos.fedoraproject.org/prod/streams/stable/builds/38.20230709.3.0/aarch64/$arm64_coreos_archive_filename
podman machine init --image-path $arm64_coreos_archive_filename arm64
podman system connection default arm64
podman machine start arm64
podman machine ls

docker pull ubuntu:jammy
docker run --rm ubuntu:jammy arch

podman pull ubuntu:jammy
podman run --rm ubuntu:jammy arch
Loading