Skip to content

use docker compose

use docker compose #21

name: ci-test-docker
on:
push:
branches: [main, non-k8s-hsp-test]
paths:
- "KubeArmor/**"
- ".github/workflows/ci-test-docker.yaml"
- "!STABLE-RELEASE"
- "tests/nonk8s_env/**"
jobs:
build-and-run:
name: Build KubeArmor artifacts and run tests / ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
timeout-minutes: 60
steps:
- uses: actions/checkout@v3
with:
submodules: true
- uses: actions/setup-go@v5
with:
go-version-file: 'KubeArmor/go.mod'
- name: Install the latest LLVM toolchain
run: ./.github/workflows/install-llvm.sh
- name: Compile libbpf
run: ./.github/workflows/install-libbpf.sh
- name: Generate KubeArmor artifacts
run: |
GITHUB_SHA=$GITHUB_SHA ./KubeArmor/build/build_kubearmor.sh
# - name: Run KubeArmor init container
# run: |
# docker run --name kubearmor-init -v /tmp/:/opt/kubearmor/BPF kubearmor/kubearmor-init
# - name: Run KubeArmor container
# run: |
# docker run -d --name kubearmor --privileged --pid host -p 32767:32767 \
# -v /tmp/:/opt/kubearmor/BPF \
# -v /sys/fs/bpf:/sys/fs/bpf \
# -v /sys/kernel/security:/sys/kernel/security \
# -v /sys/kernel/debug:/sys/kernel/debug \
# -v /var/run/docker.sock:/var/run/docker.sock \
# -v /var/lib/docker:/var/lib/docker \
# -v /etc/apparmor.d:/etc/apparmor.d \
# kubearmor/kubearmor -k8s=false -enableKubeArmorHostPolicy
- name: Run KubeArmor with docker-compose
run: |
docker-compose -f docker-compose.yaml up -d
- name: Test KubeArmor using Ginkgo
run: |
go install -mod=mod github.com/onsi/ginkgo/v2/ginkgo
make
working-directory: ./tests/nonk8s_env
timeout-minutes: 30
- name: Archive log artifacts
if: ${{ failure() }}
uses: actions/upload-artifact@v3
with:
name: kubearmor.logs
path: |
/tmp/kubearmor/
/tmp/kubearmor.*