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)
IngressSpec,
IscsiServiceSpec,
NFSServiceSpec,
+ NodeProxySpec,
OAuth2ProxySpec,
PlacementSpec,
PrometheusSpec,
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