mirror of
https://github.com/psviderski/uncloud.git
synced 2026-10-06 13:18:58 +00:00
BREAKING CHANGE: move Uncloud API socket to /run/uncloud/api/uncloud.sock, activate it by systemd socket unit
This commit is contained in:
1 parent
c65f352250
commit
f68c9859d9
24 files changed
+345
-112
No files matched your search
@@ -35,9 +35,9 @@ echo "Docker in Docker is ready."
|
||||
echo "Loading corrosion image from /images/corrosion.tar..."
|
||||
docker load < /images/corrosion.tar
|
||||
|
||||
# Make machine API accessible from the host via port publishing.
|
||||
echo "Proxying Uncloud API port 51000/tcp to Unix socket /run/uncloud/uncloud.sock..."
|
||||
socat TCP-LISTEN:51000,reuseaddr,fork,bind="$(hostname -i)" UNIX-CONNECT:/run/uncloud/uncloud.sock &
|
||||
# Make the Uncloud API accessible from the host via port publishing.
|
||||
echo "Proxying Uncloud API port 51000/tcp to Unix socket /run/uncloud/api/uncloud.sock..."
|
||||
socat TCP-LISTEN:51000,reuseaddr,fork,bind="$(hostname -i)" UNIX-CONNECT:/run/uncloud/api/uncloud.sock &
|
||||
|
||||
# Execute the passed command and wait for it while maintaining signal handling.
|
||||
"$@" &
|
||||
|
||||
+24
-3
@@ -277,11 +277,33 @@ install_uncloud_binaries() {
|
||||
}
|
||||
|
||||
install_uncloud_systemd() {
|
||||
local uncloud_socket_path="${INSTALL_SYSTEMD_DIR}/uncloud.socket"
|
||||
local uncloud_service_path="${INSTALL_SYSTEMD_DIR}/uncloud.service"
|
||||
|
||||
mkdir -p "${INSTALL_SYSTEMD_DIR}"
|
||||
|
||||
cat > "${uncloud_socket_path}" << EOF
|
||||
[Unit]
|
||||
Description=Uncloud API socket
|
||||
Before=docker.service
|
||||
|
||||
[Socket]
|
||||
ListenStream=/run/uncloud/api/uncloud.sock
|
||||
SocketUser=root
|
||||
SocketGroup=uncloud
|
||||
SocketMode=0660
|
||||
DirectoryMode=0750
|
||||
|
||||
[Install]
|
||||
WantedBy=sockets.target
|
||||
EOF
|
||||
log "✓ Systemd unit file created: ${uncloud_socket_path}"
|
||||
|
||||
cat > "${uncloud_service_path}" << EOF
|
||||
[Unit]
|
||||
Description=Uncloud machine daemon
|
||||
After=network-online.target docker.service
|
||||
Requires=uncloud.socket
|
||||
After=network-online.target uncloud.socket docker.service
|
||||
Wants=network-online.target
|
||||
|
||||
[Service]
|
||||
@@ -306,12 +328,11 @@ WantedBy=multi-user.target
|
||||
EOF
|
||||
log "✓ Systemd unit file created: ${uncloud_service_path}"
|
||||
|
||||
|
||||
if [[ "${INSTALL_ONLY}" != "true" ]]; then
|
||||
# Reload systemd to recognize the new or updated unit file.
|
||||
systemctl daemon-reload
|
||||
fi
|
||||
systemctl enable uncloud.service
|
||||
systemctl enable uncloud.socket uncloud.service
|
||||
}
|
||||
|
||||
start_uncloud() {
|
||||
|
||||
@@ -57,14 +57,17 @@ fi
|
||||
|
||||
log "⏳ Stopping systemd services..."
|
||||
systemctl stop uncloud.service || log "uncloud.service not running or doesn't exist."
|
||||
systemctl stop uncloud.socket || log "uncloud.socket not running or doesn't exist."
|
||||
# TODO: remove uncloud-corrosion.service handling in 0.22 once pre-0.20 systemd installs are gone.
|
||||
systemctl stop uncloud-corrosion.service || log "uncloud-corrosion.service not running or doesn't exist."
|
||||
systemctl disable uncloud.service || log "uncloud.service already disabled or doesn't exist."
|
||||
systemctl disable uncloud.socket || log "uncloud.socket already disabled or doesn't exist."
|
||||
systemctl disable uncloud-corrosion.service || log "uncloud-corrosion.service already disabled or doesn't exist."
|
||||
log "✓ Systemd services stopped."
|
||||
|
||||
log "⏳ Removing systemd service files..."
|
||||
rm -fv "${INSTALL_SYSTEMD_DIR}/uncloud.service"
|
||||
rm -fv "${INSTALL_SYSTEMD_DIR}/uncloud.socket"
|
||||
# TODO: remove uncloud-corrosion.service handling in 0.22 once pre-0.20 systemd installs are gone.
|
||||
rm -fv "${INSTALL_SYSTEMD_DIR}/uncloud-corrosion.service"
|
||||
systemctl daemon-reload
|
||||
|
||||
Reference in new issue
Block a user