[hop_node] Validate listener_port is defined for peers (#14056)

add peer listener_port validation and update install bundle if listener_port is defined or not defined.
This commit is contained in:
Jake Jackson
2023-06-12 15:52:10 -04:00
committed by Seth Foster
parent 148111a072
commit 40fca6db57
5 changed files with 26 additions and 10 deletions

View File

@@ -5486,6 +5486,7 @@ class InstanceSerializer(BaseSerializer):
raise serializers.ValidationError("Can only create instances on Kubernetes or OpenShift.")
node_type = get_field_from_model_or_attrs("node_type")
peers_from_control_nodes = get_field_from_model_or_attrs("peers_from_control_nodes")
listener_port = get_field_from_model_or_attrs("listener_port")
if peers_from_control_nodes and node_type not in (Instance.Types.EXECUTION, Instance.Types.HOP):
raise serializers.ValidationError("peers_from_control_nodes can only be enabled for execution or hop nodes.")
@@ -5496,6 +5497,12 @@ class InstanceSerializer(BaseSerializer):
"Setting peers manually for control nodes is not allowed. Enable peers_from_control_nodes on the hop and execution nodes instead."
)
if peers_from_control_nodes and listener_port is None:
raise serializers.ValidationError(_("Field listener_port must be a valid integer when peers_from_control_nodes is enabled."))
for peer in attrs.get('peers', []):
if peer.listener_port is None:
raise serializers.ValidationError(_("Field listener_port must be set on peer ") + peer.hostname + ".")
return super().validate(attrs)
def validate_node_type(self, value):

View File

@@ -15,8 +15,12 @@ custom_tls_certfile: receptor/tls/receptor.crt
custom_tls_keyfile: receptor/tls/receptor.key
custom_ca_certfile: receptor/tls/ca/mesh-CA.crt
receptor_protocol: 'tcp'
{% if instance.listener_port %}
receptor_listener: true
receptor_port: {{ instance.listener_port }}
{% else %}
receptor_listener: false
{% endif %}
{% if peers %}
receptor_peers:
{% for peer in peers %}