)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":37622,"name":"saeed padari","display_name":"Saeed Padari","email":"sam137115@gmail.com","username":"saeedpadari"},"change_message_id":"ce13448e439c8bd4f28caec9302b5a9049019e07","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"e17b6b4b_833fc219","updated":"2025-09-15 07:54:23.000000000","message":"Hi , Do you have any comment for new changes ?","commit_id":"925d1b9cf3e7bbbcac8198253022d90fee862e2b"}],"octavia/templates/deployment-api.yaml":[{"author":{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},"change_message_id":"2c713168f5aca861d8c7912e02eece5d8b6874a0","unresolved":true,"context_lines":[{"line_number":19,"context_line":"httpGet:"},{"line_number":20,"context_line":"  scheme: {{ tuple \"load_balancer\" \"service\" \"api\" . | include \"helm-toolkit.endpoints.keystone_endpoint_scheme_lookup\" | upper }}"},{"line_number":21,"context_line":"  path: {{ tuple \"load_balancer\" \"healthcheck\" \"internal\" . | include \"helm-toolkit.endpoints.keystone_endpoint_path_lookup\" }}"},{"line_number":22,"context_line":"  port: {{ tuple \"load_balancer\" \"service\" \"api\" . | include \"helm-toolkit.endpoints.endpoint_port_lookup\" }}"},{"line_number":23,"context_line":"{{- end }}"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"{{- define \"octaviaApiReadinessProbeTemplate\" }}"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"7272700b_ad668096","side":"PARENT","line":22,"updated":"2025-09-01 19:25:41.000000000","message":"Why do you think there is a bug here? The port should be looked up from endpoints and it is set correctly. \"service\" port is not given in the values, so the default is used which is 9876.","commit_id":"e1bd0b20d34c00fdd5d04b6ecf8e83f137a29a9f"},{"author":{"_account_id":37622,"name":"saeed padari","display_name":"Saeed Padari","email":"sam137115@gmail.com","username":"saeedpadari"},"change_message_id":"8c626fbc4a2f0127e99b896ed4c04e13baf6c350","unresolved":false,"context_lines":[{"line_number":19,"context_line":"httpGet:"},{"line_number":20,"context_line":"  scheme: {{ tuple \"load_balancer\" \"service\" \"api\" . | include \"helm-toolkit.endpoints.keystone_endpoint_scheme_lookup\" | upper }}"},{"line_number":21,"context_line":"  path: {{ tuple \"load_balancer\" \"healthcheck\" \"internal\" . | include \"helm-toolkit.endpoints.keystone_endpoint_path_lookup\" }}"},{"line_number":22,"context_line":"  port: {{ tuple \"load_balancer\" \"service\" \"api\" . | include \"helm-toolkit.endpoints.endpoint_port_lookup\" }}"},{"line_number":23,"context_line":"{{- end }}"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"{{- define \"octaviaApiReadinessProbeTemplate\" }}"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"cd765dae_74b3325a","side":"PARENT","line":22,"in_reply_to":"0f2ae8f4_999c0845","updated":"2025-09-03 09:52:27.000000000","message":"In `configmap-etc.yaml` use :\n```\n{{- if empty (index .Values.conf.octavia_api_uwsgi.uwsgi \"http-socket\") -}}\n{{- $http_socket_port :\u003d tuple \"load_balancer\" \"service\" \"api\" . | include \"helm-toolkit.endpoints.endpoint_port_lookup\" | toString }}\n{{- $http_socket :\u003d printf \"0.0.0.0:%s\" $http_socket_port }}\n{{- $_ :\u003d set .Values.conf.octavia_api_uwsgi.uwsgi \"http-socket\" $http_socket -}}\n{{- end -}}\n```\nso I add http-socket with default value in uwsgi and use it for containerPort.","commit_id":"e1bd0b20d34c00fdd5d04b6ecf8e83f137a29a9f"},{"author":{"_account_id":37622,"name":"saeed padari","display_name":"Saeed Padari","email":"sam137115@gmail.com","username":"saeedpadari"},"change_message_id":"6d8e62a1ad400542cd1e5cf4c0fa21b5449cfd83","unresolved":false,"context_lines":[{"line_number":19,"context_line":"httpGet:"},{"line_number":20,"context_line":"  scheme: {{ tuple \"load_balancer\" \"service\" \"api\" . | include \"helm-toolkit.endpoints.keystone_endpoint_scheme_lookup\" | upper }}"},{"line_number":21,"context_line":"  path: {{ tuple \"load_balancer\" \"healthcheck\" \"internal\" . | include \"helm-toolkit.endpoints.keystone_endpoint_path_lookup\" }}"},{"line_number":22,"context_line":"  port: {{ tuple \"load_balancer\" \"service\" \"api\" . | include \"helm-toolkit.endpoints.endpoint_port_lookup\" }}"},{"line_number":23,"context_line":"{{- end }}"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"{{- define \"octaviaApiReadinessProbeTemplate\" }}"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"ffb948ad_18408c51","side":"PARENT","line":22,"in_reply_to":"7272700b_ad668096","updated":"2025-09-01 20:33:14.000000000","message":"the issue is about how the chart is currently using the values to render the container port.\nWith the values I provided:\n```\nload_balancer:\n  name: octavia\n  hosts:\n    default: octavia-api\n    public: octavia\n  host_fqdn_override:\n    default: null\n    internal: octavia.openstack.svc.cluster.local\n  scheme:\n    default: http\n  port:\n    api:\n      internal: 80\n      default: 9876\n      public: 80\n```\nthe rendered template results in:\n```\nports:\n  - name: o-api\n    containerPort: 80   # \u003c-- taken from \"internal\"\n```\nThere, the containerPort remains fixed (API always listens on 9876), and only the Service/Ingress ports are mapped based on overrides.\n\nSo my change ensures that we don’t override the actual container listening port when setting custom service/ingress ports.\n\nYou can see the sample pattern in nova’s chart, e.g.:\nhttps://opendev.org/openstack/openstack-helm/src/branch/master/nova/templates/deployment-api-metadata.yaml","commit_id":"e1bd0b20d34c00fdd5d04b6ecf8e83f137a29a9f"},{"author":{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},"change_message_id":"9c2907b9f76b998828697d30c2dcd30cfae4cd87","unresolved":false,"context_lines":[{"line_number":19,"context_line":"httpGet:"},{"line_number":20,"context_line":"  scheme: {{ tuple \"load_balancer\" \"service\" \"api\" . | include \"helm-toolkit.endpoints.keystone_endpoint_scheme_lookup\" | upper }}"},{"line_number":21,"context_line":"  path: {{ tuple \"load_balancer\" \"healthcheck\" \"internal\" . | include \"helm-toolkit.endpoints.keystone_endpoint_path_lookup\" }}"},{"line_number":22,"context_line":"  port: {{ tuple \"load_balancer\" \"service\" \"api\" . | include \"helm-toolkit.endpoints.endpoint_port_lookup\" }}"},{"line_number":23,"context_line":"{{- end }}"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"{{- define \"octaviaApiReadinessProbeTemplate\" }}"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"0f2ae8f4_999c0845","side":"PARENT","line":22,"in_reply_to":"ffb948ad_18408c51","updated":"2025-09-01 23:12:56.000000000","message":"You are right, this container port is defined by the octavia config option bind_port which is set by default to 9876. And that is why the default port in endpoints is also set to 9876. These endpoints values are not always set carefully, but the common pattern is to take this kind of values from endpoints using the endpoint_port_lookup snippet or at least from the conf.\u003cproject_name\u003e.bind_port.  \n\nI don\u0027t have any strong arguments for not using network section for this particular case, but it looks like .Values.network is more for the ingress configuration and for other situations when the config is not suitable for endpoints. But I really think it would be better keep using the same patterns in all charts until during PTG we decide to change the pattern and use it again for all charts. This is not always possible but still. \n\nIndeed in the Nova chart there is a couple of places where the metadata (and ssh) port is set in the network section. But this is more an exception than the rule. This is probably the only place where the port is defined this way.\n\nFor this particular case there is indeed a problem that the container port is set from \"internal\" branch while the health check uses the \"service\" branch. Wouldn\u0027t it be better to set them both from endpoints.load_balancer.port.api.internal?","commit_id":"e1bd0b20d34c00fdd5d04b6ecf8e83f137a29a9f"}],"octavia/templates/service-api.yaml":[{"author":{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},"change_message_id":"ddd94126fea87996acb2c4f2923e3d18ec7f267f","unresolved":true,"context_lines":[{"line_number":24,"context_line":"spec:"},{"line_number":25,"context_line":"  ports:"},{"line_number":26,"context_line":"    - name: o-api"},{"line_number":27,"context_line":"      port: {{ (splitList \":\" (index (index .Values.conf.octavia_api_uwsgi \"uwsgi\") \"http-socket\") | last) }}"},{"line_number":28,"context_line":"    {{ if .Values.network.api.node_port.enabled }}"},{"line_number":29,"context_line":"      nodePort: {{ .Values.network.api.node_port.port }}"},{"line_number":30,"context_line":"    {{ end }}"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"bd026293_8ec5052b","line":27,"updated":"2025-09-04 14:21:30.000000000","message":"Please consider using port and targetPort here.\n\nConfiguring healthcheck and container port from the config is indeed more reliable but the service port is exactly the place that is supposed to be configured from endpoints.","commit_id":"3946bdd2ab26cad7e586413d83df4483738d2203"},{"author":{"_account_id":37622,"name":"saeed padari","display_name":"Saeed Padari","email":"sam137115@gmail.com","username":"saeedpadari"},"change_message_id":"9c27d77944485d2c1bb996a340361c7391ecc88f","unresolved":false,"context_lines":[{"line_number":24,"context_line":"spec:"},{"line_number":25,"context_line":"  ports:"},{"line_number":26,"context_line":"    - name: o-api"},{"line_number":27,"context_line":"      port: {{ (splitList \":\" (index (index .Values.conf.octavia_api_uwsgi \"uwsgi\") \"http-socket\") | last) }}"},{"line_number":28,"context_line":"    {{ if .Values.network.api.node_port.enabled }}"},{"line_number":29,"context_line":"      nodePort: {{ .Values.network.api.node_port.port }}"},{"line_number":30,"context_line":"    {{ end }}"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"ac585c0a_08ba7ecd","line":27,"in_reply_to":"bd026293_8ec5052b","updated":"2025-09-04 19:10:08.000000000","message":"Do you mean something like this?\n```\nspec:\n  ports:\n    - name: o-api\n      port: {{ tuple \"load_balancer\" \"service\" \"api\" . | include \"helm-toolkit.endpoints.endpoint_port_lookup\" }}\n      targetPort: {{ (splitList \":\" (index (index .Values.conf.octavia_api_uwsgi \"uwsgi\") \"http-socket\") | last) }}\n    {{ if .Values.network.api.node_port.enabled }}\n      nodePort: {{ .Values.network.api.node_port.port }}\n    {{ end }}\n```\nBecause this service is used to forward requests to the API pod \n(not an ingress pod), I think the targetPort should be taken from\nthe configuration, not from the endpoint.","commit_id":"3946bdd2ab26cad7e586413d83df4483738d2203"}]}
