diff --git a/chart/values.schema.json b/chart/values.schema.json index faaed86f8e704..c3fe1f510151c 100644 --- a/chart/values.schema.json +++ b/chart/values.schema.json @@ -3465,6 +3465,12 @@ "integer" ] }, + "nodePort": { + "type": [ + "string", + "integer" + ] + }, "protocol": { "type": "string" } diff --git a/tests/charts/test_webserver.py b/tests/charts/test_webserver.py index facaa97a30a22..d5f70d3d462a7 100644 --- a/tests/charts/test_webserver.py +++ b/tests/charts/test_webserver.py @@ -719,6 +719,35 @@ def test_should_add_component_specific_labels(self): assert "test_label" in jmespath.search("metadata.labels", docs[0]) assert jmespath.search("metadata.labels", docs[0])["test_label"] == "test_label_value" + @pytest.mark.parametrize( + "ports, expected_ports", + [ + ( + [{"nodePort": "31000", "port": "8080"}], + [{"nodePort": 31000, "port": 8080}], + ), + ( + [{"port": "8080"}], + [{"port": 8080}], + ), + ], + ) + def test_nodeport_service(self, ports, expected_ports): + docs = render_chart( + values={ + "webserver": { + "service": { + "type": "NodePort", + "ports": ports, + } + }, + }, + show_only=["templates/webserver/webserver-service.yaml"], + ) + + assert "NodePort" == jmespath.search("spec.type", docs[0]) + assert expected_ports == jmespath.search("spec.ports", docs[0]) + class TestWebserverConfigmap: def test_no_webserver_config_configmap_by_default(self):