Merge pull request #69882 from guits/node-proxy-spec-fix

node-proxy: fix NodeProxySpec deserialization from JSON

Reviewed-by: Adam King <adking@redhat.com>
This commit is contained in:
Redouane Kachach 2026-07-09 15:38:47 +02:00 committed by GitHub
commit a46915de23
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 32 additions and 2 deletions

View File

@ -4357,11 +4357,28 @@ class NodeProxySpec(ServiceSpec):
def __init__(self,
service_type: str,
placement: Optional[PlacementSpec] = None,
ssl: Optional[bool] = True,
certificate_source: Optional[str] = None,
unmanaged: bool = False,
preview_only: bool = False,
extra_container_args: Optional[GeneralArgList] = None,
extra_entrypoint_args: Optional[GeneralArgList] = None,
custom_configs: Optional[List[CustomConfig]] = None,
) -> None:
assert service_type == 'node-proxy'
super(NodeProxySpec, self).__init__('node-proxy', placement=placement)
self.ssl: bool = True
super(NodeProxySpec, self).__init__(
'node-proxy',
placement=placement,
ssl=ssl,
certificate_source=certificate_source,
unmanaged=unmanaged,
preview_only=preview_only,
extra_container_args=extra_container_args,
extra_entrypoint_args=extra_entrypoint_args,
custom_configs=custom_configs,
)
self.validate()
yaml.add_representer(NodeProxySpec, ServiceSpec.yaml_representer)
yaml.add_representer(SMBSpec, ServiceSpec.yaml_representer)

View File

@ -15,6 +15,7 @@ from ceph.deployment.service_spec import (
IngressSpec,
IscsiServiceSpec,
NFSServiceSpec,
NodeProxySpec,
OAuth2ProxySpec,
PlacementSpec,
PrometheusSpec,
@ -337,6 +338,18 @@ def test_osd_unmanaged():
assert dg_spec.unmanaged == True
def test_node_proxy_unmanaged():
node_proxy_spec = {"placement": {"host_pattern": "*"},
"service_name": "node-proxy",
"service_type": "node-proxy",
"unmanaged": True}
spec = ServiceSpec.from_json(node_proxy_spec)
assert isinstance(spec, NodeProxySpec)
assert spec.unmanaged is True
ServiceSpec.from_json(spec.to_json())
@pytest.mark.parametrize("y",
"""service_type: crash
service_name: crash