Fix temperature monitoring for standalone Proxmox nodes and add multi-arch sensor proxy builds
Related to #571 This addresses multiple temperature monitoring issues: 1. Fix single-node Proxmox installation failure: Add '|| true' to pvecm status calls to prevent script exit on standalone (non-clustered) nodes with 'set -euo pipefail'. The script now properly falls through to standalone node configuration when cluster detection fails. 2. Build pulse-sensor-proxy for all Linux architectures (amd64, arm64, armv7) in Dockerfile to ensure binaries are available for download on all supported platforms. This resolves the missing binary issue from v4.23.0. Note: AMD Tctl sensor support was already implemented in a previous commit.
This commit is contained in:
parent
9670afe0cb
commit
8a052baa2a
3 changed files with 20 additions and 8 deletions
20
Dockerfile
20
Dockerfile
|
|
@ -105,13 +105,22 @@ RUN --mount=type=cache,id=pulse-go-mod,target=/go/pkg/mod \
|
|||
-trimpath \
|
||||
-o pulse-host-agent-windows-amd64.exe ./cmd/pulse-host-agent
|
||||
|
||||
# Build pulse-sensor-proxy
|
||||
# Build pulse-sensor-proxy for all Linux architectures (for download endpoint)
|
||||
RUN --mount=type=cache,id=pulse-go-mod,target=/go/pkg/mod \
|
||||
--mount=type=cache,id=pulse-go-build,target=/root/.cache/go-build \
|
||||
CGO_ENABLED=0 GOOS=linux go build \
|
||||
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build \
|
||||
-ldflags="-s -w" \
|
||||
-trimpath \
|
||||
-o pulse-sensor-proxy ./cmd/pulse-sensor-proxy
|
||||
-o pulse-sensor-proxy-linux-amd64 ./cmd/pulse-sensor-proxy && \
|
||||
CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build \
|
||||
-ldflags="-s -w" \
|
||||
-trimpath \
|
||||
-o pulse-sensor-proxy-linux-arm64 ./cmd/pulse-sensor-proxy && \
|
||||
CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=7 go build \
|
||||
-ldflags="-s -w" \
|
||||
-trimpath \
|
||||
-o pulse-sensor-proxy-linux-armv7 ./cmd/pulse-sensor-proxy && \
|
||||
cp pulse-sensor-proxy-linux-amd64 pulse-sensor-proxy
|
||||
|
||||
# Runtime image for the Docker agent (offered via --target agent_runtime)
|
||||
FROM alpine:3.20 AS agent_runtime
|
||||
|
|
@ -188,7 +197,10 @@ COPY --from=backend-builder /app/pulse-host-agent-windows-amd64.exe /opt/pulse/b
|
|||
# Create symlink for Windows without .exe extension
|
||||
RUN ln -s pulse-host-agent-windows-amd64.exe /opt/pulse/bin/pulse-host-agent-windows-amd64
|
||||
|
||||
# Copy pulse-sensor-proxy binary for download endpoint
|
||||
# Copy multi-arch pulse-sensor-proxy binaries for download endpoint
|
||||
COPY --from=backend-builder /app/pulse-sensor-proxy-linux-amd64 /opt/pulse/bin/
|
||||
COPY --from=backend-builder /app/pulse-sensor-proxy-linux-arm64 /opt/pulse/bin/
|
||||
COPY --from=backend-builder /app/pulse-sensor-proxy-linux-armv7 /opt/pulse/bin/
|
||||
COPY --from=backend-builder /app/pulse-sensor-proxy /opt/pulse/bin/pulse-sensor-proxy
|
||||
|
||||
# Create config directory
|
||||
|
|
|
|||
|
|
@ -101,7 +101,7 @@ cleanup_cluster_authorized_keys_manual() {
|
|||
if command -v pvecm >/dev/null 2>&1; then
|
||||
while IFS= read -r node_ip; do
|
||||
[[ -n "$node_ip" ]] && nodes+=("$node_ip")
|
||||
done < <(pvecm status 2>/dev/null | awk '/0x[0-9a-f]+.*[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/ {print $3}')
|
||||
done < <(pvecm status 2>/dev/null | awk '/0x[0-9a-f]+.*[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/ {print $3}' || true)
|
||||
fi
|
||||
|
||||
if [[ ${#nodes[@]} -eq 0 ]]; then
|
||||
|
|
@ -841,7 +841,7 @@ if [[ -z "$HOST" ]]; then
|
|||
|
||||
# Discover cluster nodes
|
||||
if command -v pvecm >/dev/null 2>&1; then
|
||||
CLUSTER_NODES=$(pvecm status 2>/dev/null | awk '/0x[0-9a-f]+.*[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/ {print $3}')
|
||||
CLUSTER_NODES=$(pvecm status 2>/dev/null | awk '/0x[0-9a-f]+.*[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/ {print $3}' || true)
|
||||
|
||||
if [[ -n "$CLUSTER_NODES" ]]; then
|
||||
for node_ip in $CLUSTER_NODES; do
|
||||
|
|
@ -1016,7 +1016,7 @@ print_info "Proxy public key: ${PROXY_PUBLIC_KEY:0:50}..."
|
|||
# Discover cluster nodes
|
||||
if command -v pvecm >/dev/null 2>&1; then
|
||||
# Extract node IPs from pvecm status
|
||||
CLUSTER_NODES=$(pvecm status 2>/dev/null | awk '/0x[0-9a-f]+.*[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/ {print $3}')
|
||||
CLUSTER_NODES=$(pvecm status 2>/dev/null | awk '/0x[0-9a-f]+.*[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/ {print $3}' || true)
|
||||
|
||||
if [[ -n "$CLUSTER_NODES" ]]; then
|
||||
print_info "Discovered cluster nodes: $(echo $CLUSTER_NODES | tr '\n' ' ')"
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ if [[ -z "$HOST" ]]; then
|
|||
|
||||
# Discover cluster nodes
|
||||
if command -v pvecm >/dev/null 2>&1; then
|
||||
CLUSTER_NODES=$(pvecm status 2>/dev/null | awk '/0x[0-9a-f]+.*[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/ {print $3}')
|
||||
CLUSTER_NODES=$(pvecm status 2>/dev/null | awk '/0x[0-9a-f]+.*[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/ {print $3}' || true)
|
||||
|
||||
if [[ -n "$CLUSTER_NODES" ]]; then
|
||||
for node_ip in $CLUSTER_NODES; do
|
||||
|
|
|
|||
Loading…
Reference in a new issue