mirror of
https://github.com/ansible/awx.git
synced 2026-03-24 04:15:02 -02:30
Add canonical receptor address
Creates a non-deletable address that acts as the "main" address for this instance. All other addresses for that instance must be non-canonical. When listener_port on an instance is set, automatically create a canonical receptor address where: - address is hostname of instance - port is listener_port - canonical is True Additionally, protocol field is added to instance to denote the receptor listener protocol to use (ws, tcp). The receptor config listener information is derived from the listener_port and protocol information. Having a canonical address that mirrors the listener_port ensures that an address exists that matches the receptor config information. Other changes: - Add managed field to receptor address. If managed is True, no fields on on this address can be edited via the API. If canonical is True, only the address cannot be edited. - Add managed field to instance. If managed is True, users cannot set node_state to deprovisioning (i.e. cannot delete node) This change to our mechanism to prevent users from deleting the mesh ingress hop node. - Field is_internal is now renamed to k8s_routable - Add reverse_peers on instance which is a list of instance IDs that peer to this instance (via an address) Signed-off-by: Seth Foster <fosterbseth@gmail.com>
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# Generated by Django 4.2.6 on 2023-11-16 05:50
|
||||
# Generated by Django 4.2.6 on 2023-12-14 19:14
|
||||
|
||||
import django.core.validators
|
||||
from django.db import migrations, models
|
||||
@@ -24,17 +24,10 @@ class Migration(migrations.Migration):
|
||||
validators=[django.core.validators.MinValueValidator(0), django.core.validators.MaxValueValidator(65535)],
|
||||
),
|
||||
),
|
||||
(
|
||||
'protocol',
|
||||
models.CharField(
|
||||
choices=[('tcp', 'TCP'), ('ws', 'WS'), ('wss', 'WSS')],
|
||||
default='tcp',
|
||||
help_text="Protocol to use when connecting, 'tcp', 'wss', or 'ws'.",
|
||||
max_length=10,
|
||||
),
|
||||
),
|
||||
('websocket_path', models.CharField(blank=True, default='', help_text='Websocket path.', max_length=255)),
|
||||
('is_internal', models.BooleanField(default=False, help_text='If True, only routable inside of the Kubernetes cluster.')),
|
||||
('k8s_routable', models.BooleanField(default=False, help_text='If True, only routable inside of the Kubernetes cluster.')),
|
||||
('canonical', models.BooleanField(default=False, help_text='If True, this address is the canonical address for the instance.')),
|
||||
('managed', models.BooleanField(default=False, editable=False, help_text='If True, this address is managed by the control plane.')),
|
||||
(
|
||||
'peers_from_control_nodes',
|
||||
models.BooleanField(default=False, help_text='If True, control plane cluster nodes should automatically peer to it.'),
|
||||
@@ -49,9 +42,31 @@ class Migration(migrations.Migration):
|
||||
name='instancelink',
|
||||
unique_together=set(),
|
||||
),
|
||||
migrations.RemoveField(
|
||||
migrations.AddField(
|
||||
model_name='instance',
|
||||
name='managed',
|
||||
field=models.BooleanField(default=False, editable=False, help_text='If True, this instance is managed by the control plane.'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='instance',
|
||||
name='protocol',
|
||||
field=models.CharField(
|
||||
choices=[('tcp', 'TCP'), ('ws', 'WS'), ('wss', 'WSS')],
|
||||
default='tcp',
|
||||
help_text="Protocol to use for the Receptor listener, 'tcp', 'wss', or 'ws'.",
|
||||
max_length=10,
|
||||
),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='instance',
|
||||
name='listener_port',
|
||||
field=models.PositiveIntegerField(
|
||||
blank=True,
|
||||
default=None,
|
||||
help_text='Port that Receptor will listen for incoming connections on.',
|
||||
null=True,
|
||||
validators=[django.core.validators.MinValueValidator(0), django.core.validators.MaxValueValidator(65535)],
|
||||
),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='instancelink',
|
||||
@@ -86,8 +101,6 @@ class Migration(migrations.Migration):
|
||||
),
|
||||
migrations.AddConstraint(
|
||||
model_name='receptoraddress',
|
||||
constraint=models.UniqueConstraint(
|
||||
fields=('address', 'protocol'), name='unique_receptor_address', violation_error_message='Receptor address + protocol must be unique.'
|
||||
),
|
||||
constraint=models.UniqueConstraint(fields=('address',), name='unique_receptor_address', violation_error_message='Receptor address must be unique.'),
|
||||
),
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user