fix(shelly-manager): firmware endpoint name and bind to the pod addresses #1517

Merged
k.renner merged 2 commits from shelly-manager-net1-no-ra into main 2026-10-28 15:54:06 +00:00
2 changed files with 14 additions and 10 deletions
@@ -94,15 +94,18 @@ spec:
fieldPath: status.podIP
# 8082 and 9090 are separate pipelines in the app that answer only
# /fw/... and /metrics; the UI and API stay on 8080.
# 8082 binds [::] (dual-stack, all interfaces): POD_IP is IPv4 only
# and the firmware LoadBalancer also serves IPv6. That includes
# net1, which only offers the same firmware files the LoadBalancer
# already serves to the IoT VLAN.
- name: ASPNETCORE_URLS
value: "http://$(POD_IP):8080;http://[::]:8082;http://$(POD_IP):9090"
value: "http://$(POD_IP):8080;http://$(POD_IP):8082;http://$(POD_IP):9090"
# Both pod addresses (IPv4,IPv6). When set, the app binds all three
# ports to exactly these and ignores ASPNETCORE_URLS, so nothing
# listens on net1 and the firmware LoadBalancer gets an IPv6 listener.
- name: POD_IPS
valueFrom:
fieldRef:
fieldPath: status.podIPs
# The URL devices download firmware from: Service shelly-manager-firmware.
- name: Firmware__PublicBaseUrl
value: http://shelly-firmware.renner.uno
value: http://firmware.shelly-manager.renner.uno
- name: ShellyManager__DnsSuffix
value: iot.renner.uno
# BLE radios: ESP32 esphome bluetooth_proxy nodes (e.g. the M5 Atom
@@ -32,7 +32,8 @@ spec:
---
# Firmware downloads for the Shelly fleet. Devices on the IoT VLAN reach it over
# the UDM's BGP routes (like mosquitto-iot) by the name
# shelly-firmware.renner.uno, which shelly-manager hands them in the update URL.
# firmware.shelly-manager.renner.uno, which shelly-manager hands them in the
# update URL.
# The app serves only /fw/... on this port. Ingress: shelly-manager-firmware-
# world-ingress in network-policies/home-assistant-ns.yaml.
apiVersion: v1
@@ -45,10 +46,10 @@ metadata:
lb-pool: bgp
dns.renner.uno/internal: "true"
annotations:
# Pinned like the other bgp-pool Services: auto-assignment hands out the
# pool's first address, 10.2.99.0, which is not reachable.
# Pinned like the other bgp-pool Services, which auto-assignment would give
# the pool's base address 10.2.99.0 (see trmnl/device-service.yaml).
lbipam.cilium.io/ips: "10.2.99.90,fd99::8a"
external-dns.kubernetes.io/hostname: shelly-firmware.renner.uno
external-dns.kubernetes.io/hostname: firmware.shelly-manager.renner.uno
spec:
type: LoadBalancer
externalTrafficPolicy: Local