Implement podman rootless and rootful #11
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
name: PR Kind Test | |
on: | |
push: | |
workflow_dispatch: | |
pull_request: | |
env: | |
MACOS_TOOLS: kind kubectl helm | |
jobs: | |
# check-if-kind-changed: | |
# name: Check if kind is changed. | |
# runs-on: ubuntu-latest | |
# outputs: | |
# kind_grep_result: ${{ steps.pr_contains_kind.outputs.grep_result }} | |
# output2: ${{ steps.step2.outputs.test }} | |
# steps: | |
# - name: Checkout code | |
# uses: actions/checkout@v4 | |
# - name: Get changed files | |
# id: changed-files | |
# uses: tj-actions/changed-files@v44 | |
# - name: List all changed files | |
# env: | |
# ALL_CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }} | |
# run: | | |
# for file in ${ALL_CHANGED_FILES}; do | |
# echo "$file was changed" | |
# done | |
# - name: Check if the changes contain and file from kind | |
# id: pr_contains_kind | |
# env: | |
# ALL_CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }} | |
# continue-on-error: true | |
# run: | | |
# set +e | |
# echo ${ALL_CHANGED_FILES} | grep -c '/kind/' | |
# echo "grep_result=$(echo ${ALL_CHANGED_FILES} | grep -c '/kind/')" >> $GITHUB_OUTPUT | |
kind-test-docker-linux: | |
name: Deploy Docker Linux | |
runs-on: ${{ matrix.os }} | |
# if: needs.scheck-if-kind-changed.outputs.kind_grep_result > 0 | |
# needs: check-if-kind-changed | |
env: | |
IngressHTTPPort: 80 | |
strategy: | |
matrix: | |
kind_version: [v0.22.0] | |
os: [ubuntu-latest] | |
steps: | |
- name: Checkout project | |
uses: actions/checkout@v3 | |
- name: Deploy kind | |
run: | | |
curl -Lo ./kind/kind https://kind.sigs.k8s.io/dl/${{ matrix.kind_version }}/kind-linux-amd64 | |
chmod 755 kind | |
./kind/registry.sh install --registry-name kind-registry.local -v 5 | |
./kind/kind.sh install --registry-name kind-registry.local -v 5 | |
- name: Wait before checking if ingress available | |
uses: GuillaumeFalourd/wait-sleep-action@v1 | |
with: | |
time: '30' | |
# - name: Wait for ingress to be available | |
# uses: iFaxity/wait-on-action@v1 | |
# with: | |
# resource: http://localhost:$IngressHTTPPort | |
# timeout: 300000 | |
- name: Check that ingress is available | |
run: | | |
set +e | |
CURL_EXIT_CODE=$(curl -o /dev/null -s -w "%{exitcode}\n" http://localhost:$IngressHTTPPort) | |
if [ ! "${CURL_EXIT_CODE}" == '0' ]; then | |
echo "Exit code should have been 0 but it was ${CURL_EXIT_CODE}." | |
curl -o /dev/null -s -w "%{http_code}\n" http://localhost:$IngressHTTPPort | |
curl -o /dev/null -s -w "%{exitcode}\n" http://localhost:$IngressHTTPPort | |
exit 1 | |
fi | |
kind-test-docker-macos: | |
name: Deploy Docker MacOS | |
runs-on: ${{ matrix.os }} | |
env: | |
IngressHTTPPort: 80 | |
strategy: | |
matrix: | |
kind_version: [v0.22.0] | |
os: [macos-13] | |
steps: | |
- name: Checkout project | |
uses: actions/checkout@v3 | |
# - name: Setup Docker | |
# run: | | |
# brew install docker-machine | |
# brew install --cask virtualbox | |
# # brew install --cask docker | |
# docker-machine create --driver virtualbox default | |
- name: Set up Docker | |
uses: crazy-max/ghaction-setup-docker@v3 | |
env: | |
LIMA_START_ARGS: --cpus 4 --memory 8 | |
- name: Setup tools | |
run: | | |
brew install $MACOS_TOOLS | |
# brew install kind | |
# brew install kubectl | |
# brew install helm | |
- name: Deploy kind | |
run: | | |
curl -Lo ./kind/kind https://kind.sigs.k8s.io/dl/${{ matrix.kind_version }}/kind-linux-amd64 | |
chmod 755 kind | |
./kind/registry.sh install --registry-name kind-registry.local | |
./kind/kind.sh install --registry-name kind-registry.local | |
- name: Wait before checking if ingress available | |
uses: GuillaumeFalourd/wait-sleep-action@v1 | |
with: | |
time: '60' | |
# - name: Wait for ingress to be available | |
# uses: iFaxity/wait-on-action@v1 | |
# with: | |
# resource: http://localhost:$IngressHTTPPort | |
# timeout: 60000 | |
- name: Check that ingress is available | |
run: | | |
set +e | |
CURL_EXIT_CODE=$(curl -o /dev/null -s -w "%{exitcode}\n" http://localhost:$IngressHTTPPort) | |
if [ ! "${CURL_EXIT_CODE}" == '0' ]; then | |
echo "Exit code should have been 0 but it was ${CURL_EXIT_CODE}." | |
curl -o /dev/null -s -w "%{http_code}\n" http://localhost:$IngressHTTPPort | |
curl -o /dev/null -s -w "%{exitcode}\n" http://localhost:$IngressHTTPPort | |
exit 1 | |
fi | |
kind-test-podman-rootless-linux: | |
name: Deploy Podman Rootless Linux | |
if: false | |
runs-on: ${{ matrix.os }} | |
env: | |
IngressHTTPPort: 30080 | |
IngressHTTPSPort: 30443 | |
strategy: | |
matrix: | |
kind_version: [v0.22.0] | |
os: [ubuntu-latest] | |
steps: | |
- name: Setup Podman | |
run: | | |
sudo apt update | |
sudo apt-get -y install podman | |
- name: Checkout project | |
uses: actions/checkout@v3 | |
- name: Deploy kind | |
run: | | |
curl -Lo ./kind/kind https://kind.sigs.k8s.io/dl/${{ matrix.kind_version }}/kind-linux-amd64 | |
chmod 755 kind | |
./kind/registry.sh install --registry-name kind-registry.local --provider podman --rootless | |
./kind/kind.sh install --registry-name kind-registry.local --provider podman --rootless --kubeconfig-tgt ./kube_config --kubeconfig-gen | |
- name: Wait before checking if ingress available | |
uses: GuillaumeFalourd/wait-sleep-action@v1 | |
with: | |
time: '60' | |
- name: Check that ingress is available | |
run: | | |
set +e | |
CURL_EXIT_CODE=$(curl -o /dev/null -s -w "%{exitcode}\n" http://localhost:$IngressHTTPPort/) | |
if [ ! "${CURL_EXIT_CODE}" == '0' ]; then | |
echo "Exit code should have been 0 but it was ${CURL_EXIT_CODE}." | |
curl -o /dev/null -s -w "%{http_code}\n" http://localhost:$IngressHTTPPort | |
curl -o /dev/null -s -w "%{exitcode}\n" http://localhost:$IngressHTTPPort | |
curl -o /dev/null -s -w "%{http_code}\n" https://localhost:$IngressHTTPSPort --insecure | |
curl -o /dev/null -s -w "%{exitcode}\n" https://localhost:$IngressHTTPSPort --insecure | |
echo "Not going to fail as rootless containers still don't work with podman." | |
exit 0 | |
else | |
echo "If rootless containers now work must review this workflow." | |
exit 1 | |
fi | |
kind-test-podman-rootless-macos: | |
name: Deploy Podman Rootless MacOS | |
runs-on: ${{ matrix.os }} | |
env: | |
IngressHTTPPort: 30080 | |
IngressHTTPSPort: 30443 | |
strategy: | |
matrix: | |
kind_version: [v0.22.0] | |
os: [macos-13] | |
steps: | |
- name: Checkout project | |
uses: actions/checkout@v3 | |
- name: Setup podman | |
run: | | |
brew install podman | |
podman machine init | |
podman machine set --rootful=false | |
podman machine start | |
podman info | |
- name: Setup tools | |
run: | | |
brew install $MACOS_TOOLS | |
- name: Deploy kind | |
run: | | |
curl -Lo ./kind/kind https://kind.sigs.k8s.io/dl/${{ matrix.kind_version }}/kind-linux-amd64 | |
chmod 755 kind | |
./kind/registry.sh install --registry-name kind-registry.local --provider podman --rootless | |
./kind/kind.sh install --registry-name kind-registry.local --provider podman --rootless --kubeconfig-tgt ./kube_config --kubeconfig-gen | |
- name: Wait before checking if ingress available | |
uses: GuillaumeFalourd/wait-sleep-action@v1 | |
with: | |
time: '30' | |
- name: Check that ingress is available | |
run: | | |
set +e | |
CURL_EXIT_CODE=$(curl -o /dev/null -s -w "%{exitcode}\n" http://localhost:$IngressHTTPPort/) | |
if [ ! "${CURL_EXIT_CODE}" == '0' ]; then | |
echo "Exit code should have been 0 but it was ${CURL_EXIT_CODE}." | |
curl -o /dev/null -s -w "%{http_code}\n" http://localhost:$IngressHTTPPort | |
curl -o /dev/null -s -w "%{exitcode}\n" http://localhost:$IngressHTTPPort | |
curl -o /dev/null -s -w "%{http_code}\n" https://localhost:$IngressHTTPSPort --insecure | |
curl -o /dev/null -s -w "%{exitcode}\n" https://localhost:$IngressHTTPSPort --insecure | |
echo "Not going to fail as rootless containers still don't work with podman." | |
exit 0 | |
else | |
echo "If rootless containers now work must review this workflow." | |
exit 1 | |
fi | |
kind-test-podman-rootful-linux: | |
name: Deploy Podman Rootful Linux | |
runs-on: ${{ matrix.os }} | |
env: | |
IngressHTTPPort: 80 | |
strategy: | |
matrix: | |
kind_version: [v0.22.0] | |
os: [ubuntu-latest] | |
steps: | |
- name: Setup Podman | |
run: | | |
sudo apt update | |
sudo apt-get -y install podman | |
- name: Checkout project | |
uses: actions/checkout@v3 | |
- name: Deploy kind | |
run: | | |
curl -Lo ./kind/kind https://kind.sigs.k8s.io/dl/${{ matrix.kind_version }}/kind-linux-amd64 | |
chmod 755 kind | |
./kind/registry.sh install --registry-name kind-registry.local --provider podman | |
./kind/kind.sh install --registry-name kind-registry.local --provider podman --kubeconfig-tgt ./kube_config --kubeconfig-gen | |
- name: Wait before checking if ingress available | |
uses: GuillaumeFalourd/wait-sleep-action@v1 | |
with: | |
time: '30' | |
- name: Check that ingress is available | |
run: | | |
set +e | |
CURL_EXIT_CODE=$(curl -o /dev/null -s -w "%{exitcode}\n" http://localhost:$IngressHTTPPort) | |
if [ ! "${CURL_EXIT_CODE}" == '0' ]; then | |
echo "Exit code should have been 0 but it was ${CURL_EXIT_CODE}." | |
curl -o /dev/null -s -w "%{http_code}\n" http://localhost:$IngressHTTPPort | |
curl -o /dev/null -s -w "%{exitcode}\n" http://localhost:$IngressHTTPPort | |
exit 1 | |
fi | |
kind-test-podman-rootful-macos: | |
name: Deploy Podman Rootful MacOS | |
runs-on: ${{ matrix.os }} | |
env: | |
IngressHTTPPort: 80 | |
strategy: | |
matrix: | |
kind_version: [v0.22.0] | |
os: [macos-13] | |
steps: | |
- name: Checkout project | |
uses: actions/checkout@v3 | |
- name: Setup podman | |
run: | | |
brew install podman | |
podman machine init | |
podman machine set --rootful=true | |
podman machine start | |
podman info | |
- name: Setup tools | |
run: | | |
brew install $MACOS_TOOLS | |
- name: Deploy kind | |
run: | | |
curl -Lo ./kind/kind https://kind.sigs.k8s.io/dl/${{ matrix.kind_version }}/kind-linux-amd64 | |
chmod 755 kind | |
./kind/registry.sh install --registry-name kind-registry.local --provider podman | |
./kind/kind.sh install --registry-name kind-registry.local --provider podman --kubeconfig-tgt ./kube_config --kubeconfig-gen | |
- name: Wait before checking if ingress available | |
uses: GuillaumeFalourd/wait-sleep-action@v1 | |
with: | |
time: '30' | |
- name: Check that ingress is available | |
run: | | |
set +e | |
CURL_EXIT_CODE=$(curl -o /dev/null -s -w "%{exitcode}\n" http://localhost:$IngressHTTPPort) | |
if [ ! "${CURL_EXIT_CODE}" == '0' ]; then | |
echo "Exit code should have been 0 but it was ${CURL_EXIT_CODE}." | |
curl -o /dev/null -s -w "%{http_code}\n" http://localhost:$IngressHTTPPort | |
curl -o /dev/null -s -w "%{exitcode}\n" http://localhost:$IngressHTTPPort | |
exit 1 | |
fi | |
... |