Loading src/openop_tfsdk/contract/adapters/charts/container/templates/deployment.yaml +4 −0 Changes for src/openop_tfsdk/contract/adapters/charts/container/templates/deployment.yaml: 4 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -25,3 +25,7 @@ spec: protocol: {{ .protocol }} {{- end }} {{- end }} {{- with .Values.resources }} resources: {{- toYaml . | nindent 12 }} {{- end }} src/openop_tfsdk/contract/adapters/charts/container/values.yaml +2 −0 Changes for src/openop_tfsdk/contract/adapters/charts/container/values.yaml: 2 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -3,3 +3,5 @@ image: "" # Each port: {name, port, protocol}. ports: [] serviceType: ClusterIP # Kubernetes container resources (requests/limits). Empty when no compute intent. resources: {} src/openop_tfsdk/contract/adapters/kubernetes.py +12 −0 Changes for src/openop_tfsdk/contract/adapters/kubernetes.py: 12 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -99,10 +99,22 @@ def _chart_args(unit) -> list: raise ValidationError( "kubernetes container does not support mixed internal and external ports" ) compute = unit.resource_requirements.compute if unit.resource_requirements else None resources = {} if compute: cpu = f"{compute.cpu_millicores}m" memory = f"{compute.memory_mb}Mi" resources = { "requests": { "cpu": cpu, "memory": memory, } } values = { "image": unit.artifact_ref, "ports": list(ports.values()), "serviceType": "NodePort" if external else "ClusterIP", "resources": resources, } return [CONTAINER_CHART] + [ arg for key, value in values.items() for arg in ("--set-json", f"{key}={json.dumps(value)}") Loading tests/contract/test_kubernetes_container.py +2 −0 Changes for tests/contract/test_kubernetes_container.py: 2 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -81,6 +81,7 @@ def test_container_runs_the_image_from_the_bundled_chart( {"name": "p9000-udp", "port": 9000, "protocol": "UDP"}, ], "serviceType": service_type, "resources": {}, } Loading @@ -90,6 +91,7 @@ def test_container_without_ports_gets_no_external_service(kubernetes_settings, h "image": "nginx:1.25", "ports": [], "serviceType": "ClusterIP", "resources": {}, } Loading Loading
src/openop_tfsdk/contract/adapters/charts/container/templates/deployment.yaml +4 −0 Changes for src/openop_tfsdk/contract/adapters/charts/container/templates/deployment.yaml: 4 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -25,3 +25,7 @@ spec: protocol: {{ .protocol }} {{- end }} {{- end }} {{- with .Values.resources }} resources: {{- toYaml . | nindent 12 }} {{- end }}
src/openop_tfsdk/contract/adapters/charts/container/values.yaml +2 −0 Changes for src/openop_tfsdk/contract/adapters/charts/container/values.yaml: 2 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -3,3 +3,5 @@ image: "" # Each port: {name, port, protocol}. ports: [] serviceType: ClusterIP # Kubernetes container resources (requests/limits). Empty when no compute intent. resources: {}
src/openop_tfsdk/contract/adapters/kubernetes.py +12 −0 Changes for src/openop_tfsdk/contract/adapters/kubernetes.py: 12 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -99,10 +99,22 @@ def _chart_args(unit) -> list: raise ValidationError( "kubernetes container does not support mixed internal and external ports" ) compute = unit.resource_requirements.compute if unit.resource_requirements else None resources = {} if compute: cpu = f"{compute.cpu_millicores}m" memory = f"{compute.memory_mb}Mi" resources = { "requests": { "cpu": cpu, "memory": memory, } } values = { "image": unit.artifact_ref, "ports": list(ports.values()), "serviceType": "NodePort" if external else "ClusterIP", "resources": resources, } return [CONTAINER_CHART] + [ arg for key, value in values.items() for arg in ("--set-json", f"{key}={json.dumps(value)}") Loading
tests/contract/test_kubernetes_container.py +2 −0 Changes for tests/contract/test_kubernetes_container.py: 2 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -81,6 +81,7 @@ def test_container_runs_the_image_from_the_bundled_chart( {"name": "p9000-udp", "port": 9000, "protocol": "UDP"}, ], "serviceType": service_type, "resources": {}, } Loading @@ -90,6 +91,7 @@ def test_container_without_ports_gets_no_external_service(kubernetes_settings, h "image": "nginx:1.25", "ports": [], "serviceType": "ClusterIP", "resources": {}, } Loading