1
- #! /bin/bash
1
+ #! /usr/ bin/env bash
2
2
set -euo pipefail
3
3
4
4
# Check if all required environment variables are set
@@ -7,7 +7,7 @@ REQUIRED_VARS=("MY_EXTERNAL_IP" "NETBOX_PORT" "DIODE_TO_NETBOX_API_KEY" "NETBOX_
7
7
for var in " ${REQUIRED_VARS[@]} " ; do
8
8
if [ -z " ${! var:- } " ]; then
9
9
echo " Error: Required environment variable '$var ' is not set."
10
- exit 0
10
+ exit 1
11
11
fi
12
12
done
13
13
@@ -32,7 +32,7 @@ cat <<EOF > Dockerfile-Plugins
32
32
FROM netboxcommunity/netbox:v4.1-3.0.2
33
33
34
34
COPY ./plugin_requirements.txt /opt/netbox/
35
- RUN /opt/netbox/venv/bin/pip install --no-warn-script-location -r /opt/netbox/plugin_requirements.txt
35
+ RUN /opt/netbox/venv/bin/pip install --no-warn-script-location -r /opt/netbox/plugin_requirements.txt
36
36
EOF
37
37
38
38
cat << EOF > docker-compose.override.yml
@@ -41,7 +41,7 @@ services:
41
41
image: netbox:v4.1-3.0.2-plugins
42
42
pull_policy: never
43
43
ports:
44
- - "${NETBOX_PORT} :8080"
44
+ - "\ $ {NETBOX_PORT}:8080"
45
45
build:
46
46
context: .
47
47
dockerfile: Dockerfile-Plugins
@@ -51,12 +51,12 @@ services:
51
51
SUPERUSER_EMAIL: ""
52
52
SUPERUSER_NAME: "admin"
53
53
SUPERUSER_PASSWORD: "admin"
54
- DIODE_TO_NETBOX_API_KEY: ${DIODE_TO_NETBOX_API_KEY}
55
- NETBOX_TO_DIODE_API_KEY: ${NETBOX_TO_DIODE_API_KEY}
56
- DIODE_API_KEY: ${DIODE_API_KEY}
57
- #INGESTER_TO_RECONCILER_API_KEY: ${INGESTER_TO_RECONCILER_API_KEY}
54
+ DIODE_TO_NETBOX_API_KEY: " \ $ {DIODE_TO_NETBOX_API_KEY}"
55
+ NETBOX_TO_DIODE_API_KEY: " \ $ {NETBOX_TO_DIODE_API_KEY}"
56
+ DIODE_API_KEY: " \ $ {DIODE_API_KEY}"
57
+ #INGESTER_TO_RECONCILER_API_KEY: " \ $ {INGESTER_TO_RECONCILER_API_KEY}"
58
58
healthcheck:
59
- test: curl -f http://${MY_EXTERNAL_IP} :${NETBOX_PORT} /login/ || exit 1
59
+ test: curl -f http://\ $ {MY_EXTERNAL_IP}:\ $ {NETBOX_PORT}/login/ || exit 1
60
60
start_period: 600s
61
61
timeout: 3s
62
62
interval: 15s
@@ -74,26 +74,24 @@ PLUGINS = ["netbox_diode_plugin"]
74
74
75
75
PLUGINS_CONFIG = {
76
76
"netbox_diode_plugin": {
77
- # Auto-provision users for Diode plugin
78
77
"auto_provision_users": False,
79
-
80
- # Diode gRPC target for communication with Diode server
81
78
"diode_target_override": "grpc://${MY_EXTERNAL_IP} :8080/diode",
82
-
83
- # User allowed for Diode to NetBox communication
84
79
"diode_to_netbox_username": "diode-to-netbox",
85
-
86
- # User allowed for NetBox to Diode communication
87
80
"netbox_to_diode_username": "netbox-to-diode",
88
-
89
- # User allowed for data ingestion
90
81
"diode_username": "diode-ingestion",
91
82
},
92
83
}
93
84
EOF
94
85
95
- # Update the healthcheck in docker-compose.yml
96
- sed -i ' s|http://localhost:8080/login/|http://${MY_EXTERNAL_IP}:${NETBOX_PORT}/login/|' docker-compose.yml
86
+ # Detect OS and apply sed command accordingly
87
+ OS_TYPE=$( uname)
88
+ if [[ " $OS_TYPE " == " Darwin" ]]; then
89
+ # macOS (requires '' for in-place edit)
90
+ sed -i ' ' " s|http://localhost:8080/login/|http://${MY_EXTERNAL_IP} :${NETBOX_PORT} /login/|" docker-compose.yml
91
+ else
92
+ # Linux
93
+ sed -i " s|http://localhost:8080/login/|http://${MY_EXTERNAL_IP} :${NETBOX_PORT} /login/|" docker-compose.yml
94
+ fi
97
95
98
96
echo
99
97
echo " --- Building NetBox ---"
0 commit comments