Some refactoring

master
Andrei Kvapil 2020-10-15 22:16:05 +02:00
parent b63870b53b
commit 2d15685b7d
3 changed files with 28 additions and 28 deletions

View File

@ -1,4 +1,4 @@
FROM alpine FROM alpine:3.12
RUN apk add --no-cache curl iproute2 iputils jq RUN apk add --no-cache curl iproute2 iputils jq
ADD bridget.sh /bin/bridget.sh ADD bridget.sh /bin/bridget.sh
CMD . /bin/bridget.sh CMD /bin/bridget.sh

18
bridget.sh Normal file → Executable file
View File

@ -48,16 +48,16 @@ debug() {
} }
next_ip() { next_ip() {
local IP_HEX=$(printf '%.2X%.2X%.2X%.2X\n' `echo $1 | sed -e 's/\./ /g'`) local IP_HEX=$(printf '%.2X%.2X%.2X%.2X\n' $(echo $1 | sed -e 's/\./ /g'))
local NEXT_IP_HEX=$(printf %.8X `echo $(( 0x$IP_HEX + 1 ))`) local NEXT_IP_HEX=$(printf %.8X $(echo $((0x$IP_HEX + 1))))
local NEXT_IP=$(printf '%d.%d.%d.%d\n' `echo $NEXT_IP_HEX | sed -r 's/(..)/0x\1 /g'`) local NEXT_IP=$(printf '%d.%d.%d.%d\n' $(echo $NEXT_IP_HEX | sed -r 's/(..)/0x\1 /g'))
echo $NEXT_IP echo $NEXT_IP
} }
prev_ip() { prev_ip() {
local IP_HEX=$(printf '%.2X%.2X%.2X%.2X\n' `echo $1 | sed -e 's/\./ /g'`) local IP_HEX=$(printf '%.2X%.2X%.2X%.2X\n' $(echo $1 | sed -e 's/\./ /g'))
local PREV_IP_HEX=$(printf %.8X `echo $(( 0x$IP_HEX - 1 ))`) local PREV_IP_HEX=$(printf %.8X $(echo $((0x$IP_HEX - 1))))
local PREV_IP=$(printf '%d.%d.%d.%d\n' `echo $PREV_IP_HEX | sed -r 's/(..)/0x\1 /g'`) local PREV_IP=$(printf '%d.%d.%d.%d\n' $(echo $PREV_IP_HEX | sed -r 's/(..)/0x\1 /g'))
echo $PREV_IP echo $PREV_IP
} }
@ -92,8 +92,6 @@ fi
log "Setting bridge $BRIDGE up" log "Setting bridge $BRIDGE up"
ip link set "$BRIDGE" up ip link set "$BRIDGE" up
# ------------------------------------------------------------------------------------ # ------------------------------------------------------------------------------------
# Configure vlan # Configure vlan
# ------------------------------------------------------------------------------------ # ------------------------------------------------------------------------------------
@ -159,6 +157,7 @@ fi
set -e set -e
export "POD_$(ipcalc -b "$POD_NETWORK")" # POD_BROADCAST
export "POD_$(ipcalc -p "$POD_NETWORK")" # POD_PREFIX export "POD_$(ipcalc -p "$POD_NETWORK")" # POD_PREFIX
export "POD_$(ipcalc -n "$POD_NETWORK")" # POD_NETWORK export "POD_$(ipcalc -n "$POD_NETWORK")" # POD_NETWORK
export "NODE_$(ipcalc -p "$NODE_NETWORK")" # NODE_PREFIX export "NODE_$(ipcalc -p "$NODE_NETWORK")" # NODE_PREFIX
@ -168,6 +167,7 @@ export "NODE_IP=$(next_ip "$NODE_NETWORK")" # NODE_IP
set +e set +e
debug "POD_BROADCAST=$POD_BROADCAST"
debug "POD_PREFIX=$POD_PREFIX" debug "POD_PREFIX=$POD_PREFIX"
debug "POD_NETWORK=$POD_NETWORK" debug "POD_NETWORK=$POD_NETWORK"
debug "NODE_PREFIX=$NODE_PREFIX" debug "NODE_PREFIX=$NODE_PREFIX"
@ -182,7 +182,7 @@ debug "NODE_IP=$NODE_IP"
log "Configuring $NODE_IP/$POD_PREFIX on $BRIDGE" log "Configuring $NODE_IP/$POD_PREFIX on $BRIDGE"
ip -o addr show "$BRIDGE" | grep -o 'inet [^ ]\+' | while read _ IP; do ip -o addr show "$BRIDGE" | grep -o 'inet [^ ]\+' | while read _ IP; do
# Remove bridge addresses from the same subnet, don't touch other addresses # Remove bridge addresses from the same subnet, don't touch other addresses
if [ $(ipcalc -b "$IP") = $(ipcalc -b "$POD_NETWORK/$POD_PREFIX") -a "$IP" != "$NODE_IP/$POD_PREFIX" ]; then if [ $(ipcalc -b "$IP") = "$POD_BROADCAST" ] && [ "$IP" != "$NODE_IP/$POD_PREFIX" ]; then
ip addr del "$IP" dev "$BRIDGE" ip addr del "$IP" dev "$BRIDGE"
fi fi
done done

View File

@ -65,7 +65,7 @@ spec:
hostPID: true hostPID: true
containers: containers:
- name: bridget - name: bridget
image: kvaps/bridget:v1.0.1 image: docker.io/kvaps/bridget:v1.1.0
env: env:
- name: BRIDGE - name: BRIDGE
value: "cbr0" value: "cbr0"