#!/bin/bash

KUBECONFIG_FILE="/home/ubuntu/.kube/config"

create_bridge() {
    local BRIDGE_NAME="$1"
    local NODE_NAME
    local PODCIDR

    if ip link show "$BRIDGE_NAME" > /dev/null 2>&1; then
        echo "Bridge $BRIDGE_NAME already exists. Skipping."
        return 0
    fi

    NODE_NAME=$(hostname)
    PODCIDR=$(kubectl --kubeconfig "$KUBECONFIG_FILE" get node "$NODE_NAME" -o jsonpath='{.spec.podCIDR}')

    if [ $? -ne 0 ]; then
        echo "Failed to get PodCIDR for node $NODE_NAME."
        exit 1
    fi

    if [ -z "$PODCIDR" ]; then
        echo "PodCIDR is not set for node $NODE_NAME."
        exit 1
    fi

    echo "PodCIDR for node $NODE_NAME is $PODCIDR"

    PODCIDR_GW=$(echo $PODCIDR | sed "s:0/24:1:g")

    sudo ip link add name "$BRIDGE_NAME" type bridge
    sudo ip link set "$BRIDGE_NAME" up
    sudo ip addr add "$PODCIDR_GW/24" dev "$BRIDGE_NAME"

    echo "Bridge $BRIDGE_NAME created."

    return 0
}
