#!/bin/sh set -eu NS=le-app-codex HOST_IF=lecodex-host NS_IF=lecodex-ns down() { /usr/bin/nft delete table inet le_app_codex 2>/dev/null || true /usr/bin/nft delete table ip le_app_codex_nat 2>/dev/null || true /usr/bin/ip link delete "$HOST_IF" 2>/dev/null || true /usr/bin/ip netns delete "$NS" 2>/dev/null || true } case "${1:-}" in up) test "$(id -u)" -eq 0 test -r /etc/le-app-codex-runtime/OPERATOR-INPUTS-APPROVED /usr/bin/grep -q 'elements = { 9\.9\.9\.9, 149\.112\.112\.112 }' /etc/nftables.d/50-le-app-codex.nft /usr/bin/grep -q 'elements = { 74\.67\.173\.56 }' /etc/nftables.d/50-le-app-codex.nft test ! -e /run/netns/$NS ! /usr/bin/nft list table inet le_app_codex >/dev/null 2>&1 ! /usr/bin/nft list table ip le_app_codex_nat >/dev/null 2>&1 trap down EXIT HUP INT TERM /usr/bin/ip netns add "$NS" /usr/bin/ip link add "$HOST_IF" type veth peer name "$NS_IF" /usr/bin/ip link set "$NS_IF" netns "$NS" /usr/bin/ip address add 10.200.120.1/30 dev "$HOST_IF" /usr/bin/ip link set "$HOST_IF" up /usr/bin/ip -n "$NS" link set lo up /usr/bin/ip -n "$NS" address add 10.200.120.2/30 dev "$NS_IF" /usr/bin/ip -n "$NS" link set "$NS_IF" up /usr/bin/ip -n "$NS" route add default via 10.200.120.1 dev "$NS_IF" /usr/bin/ip netns exec "$NS" /usr/bin/sysctl -q -w net.ipv6.conf.all.disable_ipv6=1 net.ipv6.conf.default.disable_ipv6=1 /usr/bin/nft -f /etc/nftables.d/50-le-app-codex.nft trap - EXIT HUP INT TERM ;; down) down ;; *) echo 'usage: le-app-codex-netns up|down' >&2; exit 64 ;; esac