Unpin matter-server, otbr, music-assistant from k8s-edge (shrink edge to USB-only) #82
@@ -16,26 +16,26 @@ spec:
|
||||
labels:
|
||||
app.kubernetes.io/name: matter-server
|
||||
annotations:
|
||||
# Multus attaches a second NIC (net1) on k8s-edge's v30iot VLAN
|
||||
# via macvlan (see network-attachment.yaml). Matter device
|
||||
# Multus attaches a second NIC (net1) on the v30iot VLAN via
|
||||
# macvlan (see network-attachment.yaml). Matter device
|
||||
# commissioning and discovery need real L2 presence on the IoT
|
||||
# subnet — multicast send/receive — which a Cilium-managed pod
|
||||
# IP or a LoadBalancer Service IP cannot provide. The NAD pins
|
||||
# 10.2.30.226 statically; the nodeSelector below keeps the pod
|
||||
# on k8s-edge, the only node with the v30iot bridge.
|
||||
# 10.2.30.226 statically and uses master: eth1, which is the
|
||||
# v30iot interface on every node (k8s-1/2/3 and k8s-edge alike),
|
||||
# so this pod is no longer tied to k8s-edge.
|
||||
k8s.v1.cni.cncf.io/networks: matter-server-iot
|
||||
spec:
|
||||
# Cluster pod network is the primary attachment (eth0, used by HA
|
||||
# → matter-server via the ClusterIP Service and matter-server →
|
||||
# OTBR via OTBR's ClusterIP Service). The macvlan attachment
|
||||
# above is additive, not a replacement.
|
||||
nodeSelector:
|
||||
topology.kubernetes.io/zone: edge
|
||||
tolerations:
|
||||
- key: workload-class
|
||||
operator: Equal
|
||||
value: pinned
|
||||
effect: NoSchedule
|
||||
#
|
||||
# No nodeSelector/toleration: this pod only needs v30iot (present
|
||||
# on all nodes), not the edge USB devices. Dropping the
|
||||
# workload-class=pinned toleration lets the edge taint keep it off
|
||||
# the (tiny) edge box, reserving that node for the USB-bound
|
||||
# home-assistant + zwave-js pods.
|
||||
containers:
|
||||
- name: matter-server
|
||||
# Use the HAOS-published image from `ghcr.io/matter-js/...`,
|
||||
|
||||
@@ -17,8 +17,8 @@ spec:
|
||||
labels:
|
||||
app.kubernetes.io/name: music-assistant
|
||||
spec:
|
||||
# Host networking attaches MA to the edge node's L2 VLANs
|
||||
# directly. The node's second NIC is on v30iot, so the pod sits
|
||||
# Host networking attaches MA to the node's L2 VLANs directly.
|
||||
# Every node's second NIC (eth1) is on v30iot, so the pod sits
|
||||
# on the IoT VLAN with the audio clients (Snapcast / SlimProto /
|
||||
# Chromecast). Those protocols sync audio across group members
|
||||
# and require all members to share an L2 broadcast domain;
|
||||
@@ -30,13 +30,12 @@ spec:
|
||||
hostNetwork: true
|
||||
dnsPolicy: ClusterFirstWithHostNet
|
||||
enableServiceLinks: false
|
||||
nodeSelector:
|
||||
topology.kubernetes.io/zone: edge
|
||||
tolerations:
|
||||
- key: workload-class
|
||||
operator: Equal
|
||||
value: pinned
|
||||
effect: NoSchedule
|
||||
# No nodeSelector/toleration: MA only needs a node on v30iot (all
|
||||
# of them) for audio-sync L2, not the edge USB devices. It's the
|
||||
# heaviest of the formerly edge-pinned pods (2Gi limit), so
|
||||
# dropping the workload-class=pinned toleration — which lets the
|
||||
# edge taint keep it off the tiny edge box — is the main capacity
|
||||
# win for this step.
|
||||
containers:
|
||||
- name: music-assistant
|
||||
image: ghcr.io/music-assistant/server:2.9.4 # {"$imagepolicy": "flux-system:music-assistant"}
|
||||
|
||||
@@ -21,13 +21,11 @@ spec:
|
||||
# the IoT VLAN for mDNS/SRP advertisements and RA listening.
|
||||
k8s.v1.cni.cncf.io/networks: otbr-iot
|
||||
spec:
|
||||
nodeSelector:
|
||||
topology.kubernetes.io/zone: edge
|
||||
tolerations:
|
||||
- key: workload-class
|
||||
operator: Equal
|
||||
value: pinned
|
||||
effect: NoSchedule
|
||||
# No nodeSelector/toleration: OTBR only needs v30iot L2 presence
|
||||
# (macvlan master: eth1, present on every node), not the edge USB
|
||||
# devices, and its Thread RCP is reached over the network
|
||||
# (slzb-thread.renner.uno). Dropping the workload-class=pinned
|
||||
# toleration lets the edge taint keep it off the tiny edge box.
|
||||
containers:
|
||||
# The Thread RCP lives on a SLZB-06 over Ethernet at
|
||||
# slzb-thread.renner.uno:6638 (Serial-over-IP). otbr-agent's
|
||||
|
||||
Reference in New Issue
Block a user