code-cargo/CargoWall eBPF Firewall

Secure GitHub Actions runners with eBPF-based network egress filtering

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Stale
License
None
namedescriptionrequireddefault
modeEnforcement mode: "enforce" (block connections) or "audit" (log only, no blocking)noenforce
allowed-hostsAllowed hostnames, one per line (auto matches subdomains example.com would also match api.example.com)no
allowed-cidrsAllowed CIDR blocks, one per lineno
search-domainsDNS search-domain suffixes to strip before hostname-rule matching and bypass for unmatched DNS queries (e.g. .compute.internal), one per line. Each suffix needs at least two labels and cannot be a public suffix.no
github-service-hostsGitHub service hostnames to auto-allow on port 443 (one per line)nogithub.com api.github.com githubapp.com actions.githubusercontent.com release-assets.githubusercontent.com avatars.githubusercontent.com github.githubassets.com
azure-infra-hostsAzure infrastructure hostnames to auto-allow on port 443 (one per line)notrafficmanager.net blob.core.windows.net
config-filePath to YAML/JSON config file for advanced rulesno
fail-on-unsupportedFail the workflow if eBPF is not supported (vs warn and continue)false
sudo-lockdownEnable sudo lockdown to prevent firewall bypassfalse
sudo-allow-commandsCommand paths to allow via sudo when lockdown is enabled, one per line (e.g. /usr/bin/apt-get)""
dns-upstreamUpstream DNS server for forwarding queries (auto-detected from /etc/resolv.conf if not set)""
allow-existing-connectionsAllow pre-existing TCP connections at startup (prevents blocking connections established before cargowall)true
binary-pathPath to a pre-built cargowall binary (skips download, useful for CI testing)no
debugEnable debug loggingfalse
audit-summaryGenerate audit summary in workflow summary (requires mode: audit or enforce)true
skip-actions-apiSkip the GitHub Actions API call used to enrich audit-summary step names and job status. Falls back to local _diag data. Set to true on installations near the per-repo rate limit (1,000 req/hr).false
github-tokenGitHub token for fetching step timing in audit summary${{ github.token }}
api-urlCodeCargo API URL for audit upload and policy fetch (policy requires CodeCargo GitHub App installation). Requires permissions: id-token: writenohttps://app.codecargo.com
offlineSkip all CodeCargo API communication (audit upload and policy fetch)false
job-idThe check run ID of the current job (populated from the workflow context by default; override if needed)${{ job.check_run_id }}
namedescription
supportedWhether eBPF firewall was successfully activated
pidProcess ID of the running cargowall instance