outposts: fix service reconciler re-creating services

closes #2095

Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org>
This commit is contained in:
Jens Langhammer 2022-02-08 17:22:54 +01:00
parent 67d68629da
commit 91227b1e96
1 changed files with 13 additions and 4 deletions

View File

@ -16,13 +16,22 @@ def get_namespace() -> str:
return "default" return "default"
def compare_port(current: V1ServicePort, reference: V1ServicePort) -> bool:
"""Compare a single port"""
if current.name != reference.name:
return False
# We only care about the target port
if current.target_port != reference.target_port:
return False
if current.protocol != reference.protocol:
return False
return True
def compare_ports(current: list[V1ServicePort], reference: list[V1ServicePort]): def compare_ports(current: list[V1ServicePort], reference: list[V1ServicePort]):
"""Compare ports of a list""" """Compare ports of a list"""
if len(current) != len(reference): if len(current) != len(reference):
raise NeedsRecreate() raise NeedsRecreate()
for port in reference: for port in reference:
# We don't need to compare node_ports if not any(compare_port(port, current_port) for current_port in current):
# https://github.com/goauthentik/authentik/issues/2095#issuecomment-1020674326
port.node_port = None
if port not in current:
raise NeedsRecreate() raise NeedsRecreate()