)]}'
{"swift/templates/bin/_build-rings.sh.tpl":[{"author":{"_account_id":7769,"name":"Pentheus","display_name":"Alan Meadows","email":"alan.meadows@gmail.com","username":"alanmeadows"},"change_message_id":"7ce59f2ca8795544efa221f8e601f8846ef2a265","unresolved":false,"context_lines":[{"line_number":29,"context_line":"cd /tmp/rings"},{"line_number":30,"context_line":"cp /etc/swift/*.builder /tmp/rings/"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"# Check if builder files are empty"},{"line_number":33,"context_line":"if [ ! -s account.builder ]"},{"line_number":34,"context_line":"then"},{"line_number":35,"context_line":"  rm account.builder"}],"source_content_type":"text/x-smarty","patch_set":1,"id":"dfbec78f_7ed75525","line":32,"updated":"2019-05-02 21:44:02.000000000","message":"I do not think this will work right if you want to support day two operations - and you would have to if anyone wanted to use this in production. \n\nYou need to be fetching the existing rings from Kubernetes and then adding *net new* disks.  This is the only way the ring will be able to rebalance data onto them.  Otherwise, you are creating rings from scratch each time with no reference to the old rings.  This works fine *until* the devices or nodes change.","commit_id":"0c2209b94cf142fbc063e20a16de21da0deddd7d"},{"author":{"_account_id":7769,"name":"Pentheus","display_name":"Alan Meadows","email":"alan.meadows@gmail.com","username":"alanmeadows"},"change_message_id":"7ce59f2ca8795544efa221f8e601f8846ef2a265","unresolved":false,"context_lines":[{"line_number":65,"context_line":"    sleep 2"},{"line_number":66,"context_line":"    done"},{"line_number":67,"context_line":"    echo \"Found ip ${SVC_IP} for node ${SVC_NAME}\""},{"line_number":68,"context_line":"    # We assume equal usage weight on all partitions and single region"},{"line_number":69,"context_line":"    /usr/bin/swift-ring-builder account.builder add --region 1 --zone \"$ZONE\" --ip \"$SVC_IP\" --port \"$ACCOUNT_PORT\" --device \"$DEVICE\" --weight 100"},{"line_number":70,"context_line":"    /usr/bin/swift-ring-builder container.builder add --region 1 --zone \"$ZONE\" --ip \"$SVC_IP\" --port \"$CONTAINER_PORT\" --device \"$DEVICE\" --weight 100"},{"line_number":71,"context_line":"    /usr/bin/swift-ring-builder object.builder add --region 1 --zone \"$ZONE\" --ip \"$SVC_IP\" --port \"$OBJECT_PORT\" --device \"$DEVICE\" --weight 100"}],"source_content_type":"text/x-smarty","patch_set":1,"id":"dfbec78f_3e455d18","line":68,"updated":"2019-05-02 21:44:02.000000000","message":"It is usually useful to have weight be relative to the size of the disk, so that you can go from 100G disks to adding new nodes with 1T disks and the weight will be appropriately adjusted.","commit_id":"0c2209b94cf142fbc063e20a16de21da0deddd7d"},{"author":{"_account_id":7769,"name":"Pentheus","display_name":"Alan Meadows","email":"alan.meadows@gmail.com","username":"alanmeadows"},"change_message_id":"7ce59f2ca8795544efa221f8e601f8846ef2a265","unresolved":false,"context_lines":[{"line_number":83,"context_line":"CONTAINER_BUILDER\u003d$(cat container.builder | base64)"},{"line_number":84,"context_line":"OBJECT_BUILDER\u003d$(cat object.builder | base64)"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"curl -k -X PUT -H \u0027Accept: application/json\u0027 -H \u0027Content-Type: application/json\u0027 -H \"Authorization: Bearer ${APITOKEN}\" --cacert /var/run/secrets/kubernetes.io/serviceaccount/ca.crt -d @- https://${KUBERNETES_PORT_443_TCP_ADDR}/api/v1/namespaces/${NAMESPACE}/secrets/swift-rings \u003c\u003cEOF"},{"line_number":87,"context_line":"{"},{"line_number":88,"context_line":"  \"apiVersion\":\"v1\","},{"line_number":89,"context_line":"  \"kind\":\"Secret\","}],"source_content_type":"text/x-smarty","patch_set":1,"id":"dfbec78f_fe46e521","line":86,"updated":"2019-05-02 21:44:02.000000000","message":"Is there value in any kind of historical representation of the ring so if you really needed to you could go back? In a production cluster, you would have the option (even if manually) to switch back to an older working ring as data loss is unacceptable.","commit_id":"0c2209b94cf142fbc063e20a16de21da0deddd7d"}],"swift/values.yaml":[{"author":{"_account_id":7769,"name":"Pentheus","display_name":"Alan Meadows","email":"alan.meadows@gmail.com","username":"alanmeadows"},"change_message_id":"7ce59f2ca8795544efa221f8e601f8846ef2a265","unresolved":false,"context_lines":[{"line_number":39,"context_line":"  - name: swift-node4"},{"line_number":40,"context_line":"    datastore: vdnetSharedStorage"},{"line_number":41,"context_line":"    zone: 2"},{"line_number":42,"context_line":"    disk_size: 1"},{"line_number":43,"context_line":"  # Number of replicas for each swift object"},{"line_number":44,"context_line":"  replica_count: 3"},{"line_number":45,"context_line":"  # Partition power"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"dfbec78f_3ed0fd50","line":42,"updated":"2019-05-02 21:44:02.000000000","message":"If hosts could discover this value and report it back centrally, that would help as most operators like to be able to add disks of varying size (as time passes in a cluster) without knowing exactly which device they will materialize as.","commit_id":"0c2209b94cf142fbc063e20a16de21da0deddd7d"},{"author":{"_account_id":7769,"name":"Pentheus","display_name":"Alan Meadows","email":"alan.meadows@gmail.com","username":"alanmeadows"},"change_message_id":"7ce59f2ca8795544efa221f8e601f8846ef2a265","unresolved":false,"context_lines":[{"line_number":47,"context_line":"  # minimum partition hours"},{"line_number":48,"context_line":"  min_part_hours: 1"},{"line_number":49,"context_line":"  # Swift storage device on each storage node"},{"line_number":50,"context_line":"  device: /srv/node"},{"line_number":51,"context_line":"  drive_name: sda1"},{"line_number":52,"context_line":"  fluent_enabled: false"},{"line_number":53,"context_line":"  log_level: \u0026log_level INFO"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"dfbec78f_1ea41908","line":50,"updated":"2019-05-02 21:44:02.000000000","message":"Presumes one disk per node, most production swift nodes have many","commit_id":"0c2209b94cf142fbc063e20a16de21da0deddd7d"}]}
