)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":38070,"name":"James Bhattarai","display_name":"james","email":"Jamesbhattarai14@gmail.com","username":"jamesii-b"},"change_message_id":"c916665e3dd48d86026356d10506487fd3545f95","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"35cb7df5_49a77e58","updated":"2026-01-20 08:00:56.000000000","message":"https://pastebin.com/4A9hqeP2\n\nHere\u0027s the container build file for Swift","commit_id":"a49b586937af1c3d737c9ab528352cb0333b1571"},{"author":{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},"change_message_id":"f871ae5f7d34a93730145fcb42fc42c481dc8da1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"4c5c37bc_97dd5de9","updated":"2026-02-12 18:02:23.000000000","message":"recheck","commit_id":"74bd196bb884079025e42334814d0e8867bdf31f"},{"author":{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},"change_message_id":"18f83a789e78ad6f85cf0dbe331858ff33efa9c9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"6b2d3011_e888b5ec","updated":"2026-02-12 15:47:17.000000000","message":"recheck","commit_id":"74bd196bb884079025e42334814d0e8867bdf31f"}],"swift/templates/bin/_bootstrap.sh.tpl":[{"author":{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},"change_message_id":"3c55287d9810b010a91029060ef9fecde6ca8537","unresolved":true,"context_lines":[{"line_number":9,"context_line":"echo \"Swift bootstrap started\""},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"# Source credentials"},{"line_number":12,"context_line":"export OS_AUTH_URL\u003d{{ tuple \"identity\" \"internal\" \"api\" . | include \"helm-toolkit.endpoints.keystone_endpoint_uri_lookup\" }}"},{"line_number":13,"context_line":"export OS_IDENTITY_API_VERSION\u003d3"},{"line_number":14,"context_line":"export OS_USERNAME\u003d{{ .Values.endpoints.identity.auth.admin.username }}"},{"line_number":15,"context_line":"export OS_PASSWORD\u003d{{ .Values.endpoints.identity.auth.admin.password }}"}],"source_content_type":"text/x-smarty","patch_set":3,"id":"f04ac1fa_02d7e12e","line":12,"updated":"2026-02-03 16:49:18.000000000","message":"there is no need to export all these vars manually, we have helm-toolkit snippet for this. You can just use this snippet for the container that runs this script. Variables will be exported. See [1] and [2]\n\n[1] https://opendev.org/openstack/openstack-helm/src/branch/master/nova/templates/job-bootstrap.yaml#L78\n[2] https://opendev.org/openstack/openstack-helm/src/branch/master/helm-toolkit/templates/snippets/_keystone_openrc_env_vars.tpl","commit_id":"f014e83b9b784e8bbfed25e7b3bd6e1117de10cf"}],"swift/templates/bin/_ks-endpoints.sh.tpl":[{"author":{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},"change_message_id":"3c55287d9810b010a91029060ef9fecde6ca8537","unresolved":true,"context_lines":[{"line_number":1,"context_line":"#!/bin/bash"},{"line_number":2,"context_line":"set -ex"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"{{ include \"helm-toolkit.scripts.keystone_endpoints\" . }}"}],"source_content_type":"text/x-smarty","patch_set":3,"id":"2e969748_c73206bf","line":1,"updated":"2026-02-03 16:49:18.000000000","message":"There is no need to have this separate file. Instead use this helper snippet directly in the templates/configmap-bin.yaml. The same is for other similar files _ks_*.sh.tpl","commit_id":"f014e83b9b784e8bbfed25e7b3bd6e1117de10cf"}],"swift/templates/bin/_ring-builder.sh.tpl":[{"author":{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},"change_message_id":"3c55287d9810b010a91029060ef9fecde6ca8537","unresolved":true,"context_lines":[{"line_number":76,"context_line":"swift-ring-builder object.builder rebalance || true"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"# Copy ring files to shared location"},{"line_number":79,"context_line":"cp /etc/swift/*.ring.gz /etc/swift-rings/ 2\u003e/dev/null || true"},{"line_number":80,"context_line":"cp /etc/swift/*.builder /etc/swift-rings/ 2\u003e/dev/null || true"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"echo \"Ring files created successfully\""}],"source_content_type":"text/x-smarty","patch_set":3,"id":"53b236a2_bb2923a5","line":79,"updated":"2026-02-03 16:49:18.000000000","message":"There must be probably a nfs like volume attached to this directory. and then in storage daemonset it must be a init container that copies these ring files from this volume to /etc/swift.","commit_id":"f014e83b9b784e8bbfed25e7b3bd6e1117de10cf"}],"swift/templates/bin/_storage-init.sh.tpl":[{"author":{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},"change_message_id":"3c55287d9810b010a91029060ef9fecde6ca8537","unresolved":true,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"# Create swift user if it doesn\u0027t exist"},{"line_number":14,"context_line":"getent group swift \u003e/dev/null || groupadd -r swift"},{"line_number":15,"context_line":"getent passwd swift \u003e/dev/null || useradd -r -g swift -d /var/lib/swift -s /sbin/nologin swift"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"# Create required directories"},{"line_number":18,"context_line":"mkdir -p /var/cache/swift /var/run/swift /var/lock /var/log/swift"}],"source_content_type":"text/x-smarty","patch_set":3,"id":"b418fb5e_6aa8eb3d","line":15,"updated":"2026-02-03 16:49:18.000000000","message":"user/group are created during image build","commit_id":"f014e83b9b784e8bbfed25e7b3bd6e1117de10cf"},{"author":{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},"change_message_id":"3c55287d9810b010a91029060ef9fecde6ca8537","unresolved":true,"context_lines":[{"line_number":15,"context_line":"getent passwd swift \u003e/dev/null || useradd -r -g swift -d /var/lib/swift -s /sbin/nologin swift"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"# Create required directories"},{"line_number":18,"context_line":"mkdir -p /var/cache/swift /var/run/swift /var/lock /var/log/swift"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"# Validate storage devices from values.yaml"},{"line_number":21,"context_line":"ERRORS\u003d0"}],"source_content_type":"text/x-smarty","patch_set":3,"id":"612a6436_68794ffc","line":18,"updated":"2026-02-03 16:49:18.000000000","message":"Instead of creating these directories here, why wouldn\u0027t we mount empty dirs to the pod?\nAlso in the K8s world logs must be written to stdout/stderr, usually configured in .values.conf.logging, but swift uses python logger directly, so the configuration will be different from those used in e.g. nova","commit_id":"f014e83b9b784e8bbfed25e7b3bd6e1117de10cf"}]}
