)]}'
{".zuul.d/base.yaml":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"f1483ffb264a365258c0a0c6bf54ebab60ef87c7","unresolved":true,"context_lines":[{"line_number":81,"context_line":"        g-reg: true"},{"line_number":82,"context_line":"        etcd3: true"},{"line_number":83,"context_line":"        kubernetes-master: true"},{"line_number":84,"context_line":"        kubernetes-worker: false"},{"line_number":85,"context_line":"        kuryr-kubernetes: true"},{"line_number":86,"context_line":"        coredns: false"},{"line_number":87,"context_line":"        neutron-tag-ports-during-bulk-creation: true"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"01801e03_93575e74","line":84,"range":{"start_line":84,"start_character":0,"end_line":84,"end_character":32},"updated":"2021-03-26 15:14:34.000000000","message":"On this level you don\u0027t need to set false to worker as it\u0027s not defined on parent level (i.e. devstack-tempest)","commit_id":"6b895cb0aeed6048c412444f352c4b94e6ae81c6"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"f1483ffb264a365258c0a0c6bf54ebab60ef87c7","unresolved":true,"context_lines":[{"line_number":150,"context_line":"        g-reg: true"},{"line_number":151,"context_line":"        etcd3: true"},{"line_number":152,"context_line":"        kubernetes-master: true"},{"line_number":153,"context_line":"        kubernetes-worker: false"},{"line_number":154,"context_line":"        kuryr-kubernetes: true"},{"line_number":155,"context_line":"        coredns: false"},{"line_number":156,"context_line":"        neutron-tag-ports-during-bulk-creation: true"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"f9e2cd76_f8f83ef1","line":153,"range":{"start_line":153,"start_character":0,"end_line":153,"end_character":32},"updated":"2021-03-26 15:14:34.000000000","message":"Same here.","commit_id":"6b895cb0aeed6048c412444f352c4b94e6ae81c6"}],".zuul.d/multinode.yaml":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"0231a406f990ef04b35530a00930b03aac6a1709","unresolved":true,"context_lines":[{"line_number":49,"context_line":"          KURYR_K8S_MULTI_WORKER_TESTS: True"},{"line_number":50,"context_line":"      devstack_services:"},{"line_number":51,"context_line":"        tls-proxy: false"},{"line_number":52,"context_line":"        kubernetes-worker: true"},{"line_number":53,"context_line":"    voting: false"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"- job:"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"9fa8c585_e6e1e6f3","line":52,"range":{"start_line":52,"start_character":0,"end_line":52,"end_character":31},"updated":"2021-04-21 15:22:59.000000000","message":"I wonder what we specified here really. To me it seems that this is master\u0027s local.conf.","commit_id":"b6ffc7af4d9d1ca31bc361b70bfdda51853b749d"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"cc80a9147beddb60ed7dd2deae3da4266d015c1d","unresolved":true,"context_lines":[{"line_number":69,"context_line":"          devstack-plugin-container: https://opendev.org/openstack/devstack-plugin-container"},{"line_number":70,"context_line":"          kuryr-kubernetes: https://opendev.org/openstack/kuryr-kubernetes"},{"line_number":71,"context_line":"        devstack_services:"},{"line_number":72,"context_line":"          kuryr-worker: true"}],"source_content_type":"text/x-yaml","patch_set":15,"id":"d2ca7e16_eeec124a","line":72,"range":{"start_line":72,"start_character":0,"end_line":72,"end_character":28},"updated":"2021-04-30 08:50:13.000000000","message":"You\u0027re sure this shouldn\u0027t be kubernetes-worker?","commit_id":"816d0c3e65b8be66e483a19a096d30498d20da8a"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"621df4244f15c4efb61c490a339c3acac75f31bc","unresolved":true,"context_lines":[{"line_number":69,"context_line":"          devstack-plugin-container: https://opendev.org/openstack/devstack-plugin-container"},{"line_number":70,"context_line":"          kuryr-kubernetes: https://opendev.org/openstack/kuryr-kubernetes"},{"line_number":71,"context_line":"        devstack_services:"},{"line_number":72,"context_line":"          kuryr-worker: true"}],"source_content_type":"text/x-yaml","patch_set":15,"id":"c1b82c27_f159e0dc","line":72,"range":{"start_line":72,"start_character":0,"end_line":72,"end_character":28},"in_reply_to":"d2ca7e16_eeec124a","updated":"2021-04-30 11:33:25.000000000","message":"You\u0027re absolutely right, but I\u0027m not there yet :)","commit_id":"816d0c3e65b8be66e483a19a096d30498d20da8a"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"24d9ec3aa380c802c49a47936c20f9ccac2ac192","unresolved":true,"context_lines":[{"line_number":13,"context_line":"# limitations under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"- job:"},{"line_number":16,"context_line":"    name: kuryr-kubernetes-tempest-multinode-containerized"},{"line_number":17,"context_line":"    parent: kuryr-kubernetes-tempest"},{"line_number":18,"context_line":"    description: |"},{"line_number":19,"context_line":"        Kuryr-Kubernetes tempest multinode job"}],"source_content_type":"text/x-yaml","patch_set":18,"id":"3c54e52b_37eb24ef","line":16,"range":{"start_line":16,"start_character":1,"end_line":16,"end_character":2},"updated":"2021-05-12 15:08:10.000000000","message":"Seems it failed to connect to the apiserver[1] and consequently to create the containerized resources?\n\n[1] https://c31ee20e4cddd305f7f4-cc994f454b3da94a07b55a097da7db60.ssl.cf2.rackcdn.com/779250/18/check/kuryr-kubernetes-tempest-multinode-containerized/0ab3c32/controller/logs/kubernetes/pod_logs/kube-system-kube-controller-manager-ubuntu-focal-rax-dfw-0024554562-kube-controller-manager.txt","commit_id":"b223ffb129b11b132b331ca4bc992a548f7e3cf4"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"106f423327a4f95db5ead37a0da987e20da63a07","unresolved":true,"context_lines":[{"line_number":13,"context_line":"# limitations under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"- job:"},{"line_number":16,"context_line":"    name: kuryr-kubernetes-tempest-multinode-containerized"},{"line_number":17,"context_line":"    parent: kuryr-kubernetes-tempest"},{"line_number":18,"context_line":"    description: |"},{"line_number":19,"context_line":"        Kuryr-Kubernetes tempest multinode job"}],"source_content_type":"text/x-yaml","patch_set":18,"id":"eae6062b_4af11e0e","line":16,"range":{"start_line":16,"start_character":1,"end_line":16,"end_character":2},"in_reply_to":"3c54e52b_37eb24ef","updated":"2021-05-13 08:31:27.000000000","message":"Multinode gate is out of scope for this patch. It will be handled in the next one - perhaps you can spot missing \"join\" function which would call \"kubeadm join --token xxxx\" command :)","commit_id":"b223ffb129b11b132b331ca4bc992a548f7e3cf4"}],"devstack/lib/kubernetes":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"f1483ffb264a365258c0a0c6bf54ebab60ef87c7","unresolved":true,"context_lines":[{"line_number":112,"context_line":"    args+\u003d\" --skip-phases\u003daddon/kube-proxy\""},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    if ! is_service_enabled coredns; then"},{"line_number":115,"context_line":"        # FIXME(gryf): Do we need specific configuration for coredns?"},{"line_number":116,"context_line":"        args+\u003d\" --skip-phases\u003daddon/coredns\""},{"line_number":117,"context_line":"    fi"},{"line_number":118,"context_line":"    sudo kubeadm init $args"}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"16a03f9e_673e2a6f","line":115,"range":{"start_line":115,"start_character":0,"end_line":115,"end_character":69},"updated":"2021-03-26 15:14:34.000000000","message":"In the gate - probably. But at the moment we can live without it.","commit_id":"6b895cb0aeed6048c412444f352c4b94e6ae81c6"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"bee009e4182067456d6beb339b0a9cb66490d368","unresolved":true,"context_lines":[{"line_number":90,"context_line":"  ttl: 0s"},{"line_number":91,"context_line":"kind: InitConfiguration"},{"line_number":92,"context_line":"localAPIEndpoint:"},{"line_number":93,"context_line":"  advertiseAddress: \"${K8S_API_SERVER_IP}\""},{"line_number":94,"context_line":"  bindPort: ${K8S_API_SERVER_PORT}"},{"line_number":95,"context_line":"nodeRegistration:"},{"line_number":96,"context_line":"  kubeletExtraArgs:"}],"source_content_type":"application/x-shellscript","patch_set":8,"id":"ee60a9c8_a80277f2","line":93,"range":{"start_line":93,"start_character":23,"end_line":93,"end_character":40},"updated":"2021-04-16 01:37:29.000000000","message":"where is K8S_API_SERVER_IP being defined?","commit_id":"b6ffc7af4d9d1ca31bc361b70bfdda51853b749d"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"cc80a9147beddb60ed7dd2deae3da4266d015c1d","unresolved":true,"context_lines":[{"line_number":127,"context_line":"function get_k8s_apiserver {"},{"line_number":128,"context_line":"    # assumption is, there is no other cluster, so there is only one API"},{"line_number":129,"context_line":"    # server."},{"line_number":130,"context_line":"    echo \"$(kubectl config view --minify | grep server | \\"},{"line_number":131,"context_line":"        cut -f 2- -d \u0027:\u0027 | tr -d \u0027 \u0027)\""},{"line_number":132,"context_line":"}"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"function get_k8s_token {"}],"source_content_type":"application/x-shellscript","patch_set":15,"id":"12ab61dc_35172341","line":131,"range":{"start_line":130,"start_character":0,"end_line":131,"end_character":38},"updated":"2021-04-30 08:50:13.000000000","message":"Maybe a bit of codegolf, but seems prettier:\n\n stack@mdulko-devstack-ovnvm-0:~$ a\u003d`kubectl config view -o jsonpath\u003d\u0027{.clusters[].cluster.server}\u0027`\n stack@mdulko-devstack-ovnvm-0:~$ echo $a\n http://10.11.0.75:8080","commit_id":"816d0c3e65b8be66e483a19a096d30498d20da8a"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"621df4244f15c4efb61c490a339c3acac75f31bc","unresolved":true,"context_lines":[{"line_number":127,"context_line":"function get_k8s_apiserver {"},{"line_number":128,"context_line":"    # assumption is, there is no other cluster, so there is only one API"},{"line_number":129,"context_line":"    # server."},{"line_number":130,"context_line":"    echo \"$(kubectl config view --minify | grep server | \\"},{"line_number":131,"context_line":"        cut -f 2- -d \u0027:\u0027 | tr -d \u0027 \u0027)\""},{"line_number":132,"context_line":"}"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"function get_k8s_token {"}],"source_content_type":"application/x-shellscript","patch_set":15,"id":"a015d013_2b79e254","line":131,"range":{"start_line":130,"start_character":0,"end_line":131,"end_character":38},"in_reply_to":"12ab61dc_35172341","updated":"2021-04-30 11:33:25.000000000","message":"oh, nice, I totally forgot about jsonpath :)","commit_id":"816d0c3e65b8be66e483a19a096d30498d20da8a"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"cc80a9147beddb60ed7dd2deae3da4266d015c1d","unresolved":true,"context_lines":[{"line_number":134,"context_line":"function get_k8s_token {"},{"line_number":135,"context_line":"    local secret"},{"line_number":136,"context_line":"    secret\u003d$(kubectl get secrets | grep ^default | cut -f1 -d \u0027 \u0027)"},{"line_number":137,"context_line":"    echo \"$(kubectl describe secret $secret | grep -E \u0027^token\u0027 | \\"},{"line_number":138,"context_line":"        cut -f2 -d\u0027:\u0027 | tr -d \u0027 \u0027)\""},{"line_number":139,"context_line":"}"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"function kubeadm_reset {"}],"source_content_type":"application/x-shellscript","patch_set":15,"id":"9fb4f4ca_33e8f31e","line":138,"range":{"start_line":137,"start_character":0,"end_line":138,"end_character":35},"updated":"2021-04-30 08:50:13.000000000","message":"kubectl get secret $secret -o jsonpath\u003d\u0027{.data.token}\u0027","commit_id":"816d0c3e65b8be66e483a19a096d30498d20da8a"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"621df4244f15c4efb61c490a339c3acac75f31bc","unresolved":true,"context_lines":[{"line_number":134,"context_line":"function get_k8s_token {"},{"line_number":135,"context_line":"    local secret"},{"line_number":136,"context_line":"    secret\u003d$(kubectl get secrets | grep ^default | cut -f1 -d \u0027 \u0027)"},{"line_number":137,"context_line":"    echo \"$(kubectl describe secret $secret | grep -E \u0027^token\u0027 | \\"},{"line_number":138,"context_line":"        cut -f2 -d\u0027:\u0027 | tr -d \u0027 \u0027)\""},{"line_number":139,"context_line":"}"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"function kubeadm_reset {"}],"source_content_type":"application/x-shellscript","patch_set":15,"id":"648b50cd_b6701bd8","line":138,"range":{"start_line":137,"start_character":0,"end_line":138,"end_character":35},"in_reply_to":"9fb4f4ca_33e8f31e","updated":"2021-04-30 11:33:25.000000000","message":"the shorter - the better \\o/","commit_id":"816d0c3e65b8be66e483a19a096d30498d20da8a"}],"devstack/lib/kuryr_kubernetes":[{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"218568151c2e03069016bf52d3b6e1fd6a25552f","unresolved":true,"context_lines":[{"line_number":889,"context_line":"    # TODO(gryf): adopt this, after we switch over to go modules."},{"line_number":890,"context_line":"    go get github.com/containernetworking/cni || true"},{"line_number":891,"context_line":"    pushd ~/go/src/github.com/containernetworking/cni"},{"line_number":892,"context_line":"    git checkout v0.8.1"},{"line_number":893,"context_line":"    popd"},{"line_number":894,"context_line":""},{"line_number":895,"context_line":"    pushd \"${DEST}/kuryr-kubernetes/kuryr_cni\""}],"source_content_type":"application/x-shellscript","patch_set":14,"id":"7201e673_a050ab12","line":892,"range":{"start_line":892,"start_character":17,"end_line":892,"end_character":23},"updated":"2021-04-30 07:31:53.000000000","message":"perhaps this should be make configurable so that we can easily upgrade it","commit_id":"9284cb4f9d08f69908cc59dbe172f8f3c8e74e19"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"a02b98f2ba1ef21cfbbd66a6599ba8f50ecadaa6","unresolved":true,"context_lines":[{"line_number":889,"context_line":"    # TODO(gryf): adopt this, after we switch over to go modules."},{"line_number":890,"context_line":"    go get github.com/containernetworking/cni || true"},{"line_number":891,"context_line":"    pushd ~/go/src/github.com/containernetworking/cni"},{"line_number":892,"context_line":"    git checkout v0.8.1"},{"line_number":893,"context_line":"    popd"},{"line_number":894,"context_line":""},{"line_number":895,"context_line":"    pushd \"${DEST}/kuryr-kubernetes/kuryr_cni\""}],"source_content_type":"application/x-shellscript","patch_set":14,"id":"430d4b38_68bacb91","line":892,"range":{"start_line":892,"start_character":17,"end_line":892,"end_character":23},"in_reply_to":"7201e673_a050ab12","updated":"2021-04-30 08:01:35.000000000","message":"Ah, we merged switch to go modules already, so perhaps we can just use modules to configure this already?","commit_id":"9284cb4f9d08f69908cc59dbe172f8f3c8e74e19"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"cc80a9147beddb60ed7dd2deae3da4266d015c1d","unresolved":true,"context_lines":[{"line_number":306,"context_line":"    echo $subnet_id"},{"line_number":307,"context_line":"}"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"# create_k8s_fake_service"},{"line_number":310,"context_line":"#   Description: Creates an endpoint-less kubernetes service to keep Kubernetes"},{"line_number":311,"context_line":"#                API server from allocating this IP for another service"},{"line_number":312,"context_line":"function create_k8s_fake_service {"}],"source_content_type":"application/x-shellscript","patch_set":15,"id":"4fe565b4_83dacff9","side":"PARENT","line":309,"range":{"start_line":309,"start_character":2,"end_line":309,"end_character":25},"updated":"2021-04-30 08:50:13.000000000","message":"Oh, interesting, this was a dead function! IIRC we used this to make sure K8s won\u0027t reserve gateway IP on the services subnet. Maybe it\u0027s now handled by allocation ranges.","commit_id":"88d3baff363a7589520294373e8db98152a19e2d"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"621df4244f15c4efb61c490a339c3acac75f31bc","unresolved":true,"context_lines":[{"line_number":306,"context_line":"    echo $subnet_id"},{"line_number":307,"context_line":"}"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"# create_k8s_fake_service"},{"line_number":310,"context_line":"#   Description: Creates an endpoint-less kubernetes service to keep Kubernetes"},{"line_number":311,"context_line":"#                API server from allocating this IP for another service"},{"line_number":312,"context_line":"function create_k8s_fake_service {"}],"source_content_type":"application/x-shellscript","patch_set":15,"id":"25820969_deeff7ca","side":"PARENT","line":309,"range":{"start_line":309,"start_character":2,"end_line":309,"end_character":25},"in_reply_to":"4fe565b4_83dacff9","updated":"2021-04-30 11:33:25.000000000","message":"Well, It wasn\u0027t used anywhere, that\u0027s why I removed it :) seems like it works fine without it.","commit_id":"88d3baff363a7589520294373e8db98152a19e2d"}],"devstack/plugin.sh":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"f1483ffb264a365258c0a0c6bf54ebab60ef87c7","unresolved":true,"context_lines":[{"line_number":15,"context_line":"XTRACE\u003d$(set +o | grep xtrace)"},{"line_number":16,"context_line":"set -o xtrace"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"KURYR_CONT\u003d$(trueorfalse False KURYR_K8S_CONTAINERIZED_DEPLOYMENT)"},{"line_number":19,"context_line":"KURYR_OVS_BM\u003d$(trueorfalse True KURYR_CONFIGURE_BAREMETAL_KUBELET_IFACE)"},{"line_number":20,"context_line":"KURYR_CONF_NEUTRON\u003d$(trueorfalse True KURYR_CONFIGURE_NEUTRON_DEFAULTS)"},{"line_number":21,"context_line":"KURYR_IPV6\u003d$(trueorfalse False KURYR_IPV6)"},{"line_number":22,"context_line":"KURYR_DUAL_STACK\u003d$(trueorfalse False KURYR_DUAL_STACK)"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"function create_kuryr_account {"},{"line_number":26,"context_line":"    create_service_user \"kuryr\" \"admin\""}],"source_content_type":"text/x-sh","patch_set":6,"id":"c56bf998_a2246602","line":23,"range":{"start_line":18,"start_character":0,"end_line":23,"end_character":0},"updated":"2021-03-26 15:14:34.000000000","message":"Hm, nice.","commit_id":"6b895cb0aeed6048c412444f352c4b94e6ae81c6"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"f1483ffb264a365258c0a0c6bf54ebab60ef87c7","unresolved":true,"context_lines":[{"line_number":512,"context_line":"                             # -c cidr -f value)"},{"line_number":513,"context_line":"    # k8s_api_clusterip\u003d$(_cidr_range \"$service_cidr\" | cut -f1)"},{"line_number":514,"context_line":""},{"line_number":515,"context_line":"    # # It\u0027s not prettiest, but the file haven\u0027t changed since 1.6, so it\u0027s safe to download it like that."},{"line_number":516,"context_line":"    # curl -o /tmp/make-ca-cert.sh https://raw.githubusercontent.com/kubernetes/kubernetes/release-1.8/cluster/saltbase/salt/generate-cert/make-ca-cert.sh"},{"line_number":517,"context_line":"    # chmod +x /tmp/make-ca-cert.sh"},{"line_number":518,"context_line":""},{"line_number":519,"context_line":"    # # Create HTTPS certificates"}],"source_content_type":"text/x-sh","patch_set":6,"id":"2ed89783_e6508844","line":516,"range":{"start_line":515,"start_character":0,"end_line":516,"end_character":154},"updated":"2021-03-26 15:14:34.000000000","message":"I\u0027m so glad this is removed.","commit_id":"6b895cb0aeed6048c412444f352c4b94e6ae81c6"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"f1483ffb264a365258c0a0c6bf54ebab60ef87c7","unresolved":true,"context_lines":[{"line_number":860,"context_line":"        fi"},{"line_number":861,"context_line":"    fi"},{"line_number":862,"context_line":""},{"line_number":863,"context_line":"    if [[ \"$1\" \u003d\u003d \"unstack\" ]]; then"},{"line_number":864,"context_line":"        # Shut down template services"},{"line_number":865,"context_line":"        # no-op"},{"line_number":866,"context_line":"        :"},{"line_number":867,"context_line":"    fi"},{"line_number":868,"context_line":""},{"line_number":869,"context_line":"    if [[ \"$1\" \u003d\u003d \"clean\" ]]; then"},{"line_number":870,"context_line":"        # Remove state and transient data"}],"source_content_type":"text/x-sh","patch_set":6,"id":"4c068e32_09245f19","line":867,"range":{"start_line":863,"start_character":0,"end_line":867,"end_character":6},"updated":"2021-03-26 15:14:34.000000000","message":"Ah, that I noticed, we at least need this cleanup_kuryr_devstack_iptables here. Also I\u0027m not sure how it was done but I\u0027d be nice to delete the kubelet interface and the routes that got created (https://github.com/openstack/kuryr-kubernetes/blob/444096ea9650ab519a3f672f1f0edebec1c065fc/devstack/lib/kuryr_kubernetes#L15). I\u0027m not sure how it was deleted previously.","commit_id":"6b895cb0aeed6048c412444f352c4b94e6ae81c6"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"cfed85ed625db5f52d5d6401ad4c80497b9b0658","unresolved":true,"context_lines":[{"line_number":860,"context_line":"        fi"},{"line_number":861,"context_line":"    fi"},{"line_number":862,"context_line":""},{"line_number":863,"context_line":"    if [[ \"$1\" \u003d\u003d \"unstack\" ]]; then"},{"line_number":864,"context_line":"        # Shut down template services"},{"line_number":865,"context_line":"        # no-op"},{"line_number":866,"context_line":"        :"},{"line_number":867,"context_line":"    fi"},{"line_number":868,"context_line":""},{"line_number":869,"context_line":"    if [[ \"$1\" \u003d\u003d \"clean\" ]]; then"},{"line_number":870,"context_line":"        # Remove state and transient data"}],"source_content_type":"text/x-sh","patch_set":6,"id":"2617262d_5b51f512","line":867,"range":{"start_line":863,"start_character":0,"end_line":867,"end_character":6},"in_reply_to":"4c068e32_09245f19","updated":"2021-04-12 08:13:59.000000000","message":"I didn\u0027t touched cleanup part yet, that\u0027s why it\u0027s empty, but sure, eventually it will be needed.","commit_id":"6b895cb0aeed6048c412444f352c4b94e6ae81c6"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"bee009e4182067456d6beb339b0a9cb66490d368","unresolved":true,"context_lines":[{"line_number":502,"context_line":"#  echo $(cat /dev/urandom | base64 | tr -d \"\u003d+/\" | dd bs\u003d32 count\u003d1 2\u003e /dev/null)"},{"line_number":503,"context_line":"#}"},{"line_number":504,"context_line":""},{"line_number":505,"context_line":"function prepare_kubernetes_files {"},{"line_number":506,"context_line":"    # Sets up the base configuration for the Kubernetes API Server and the"},{"line_number":507,"context_line":"    # Controller Manager."},{"line_number":508,"context_line":"    # local service_cidr"}],"source_content_type":"text/x-sh","patch_set":8,"id":"dcbfb7e9_d3b064f6","line":505,"updated":"2021-04-16 01:37:29.000000000","message":"maybe \"kubeadm create token\" can be used to generate a token?\n\nhttps://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm-token/#synopsis","commit_id":"b6ffc7af4d9d1ca31bc361b70bfdda51853b749d"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"29af189c23cbbeda17a8f386f66f39c756331cf5","unresolved":true,"context_lines":[{"line_number":52,"context_line":"        fi"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    elif [[ \"$1\" \u003d\u003d \"stack\" \u0026\u0026 \"$2\" \u003d\u003d \"install\" ]]; then"},{"line_number":55,"context_line":"        echo_summary \"Installing kuryr CNI and Controller\""},{"line_number":56,"context_line":"        setup_develop \"$KURYR_HOME\""},{"line_number":57,"context_line":"        build_install_kuryr_cni"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-sh","patch_set":18,"id":"a7e72dee_8d405286","line":55,"updated":"2021-05-05 11:23:34.000000000","message":"Probably just \"Installing kuryr CNI\"?","commit_id":"b223ffb129b11b132b331ca4bc992a548f7e3cf4"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"50fd61b084a3bbdcebfd90d0f2761bb2a76384b2","unresolved":true,"context_lines":[{"line_number":52,"context_line":"        fi"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    elif [[ \"$1\" \u003d\u003d \"stack\" \u0026\u0026 \"$2\" \u003d\u003d \"install\" ]]; then"},{"line_number":55,"context_line":"        echo_summary \"Installing kuryr CNI and Controller\""},{"line_number":56,"context_line":"        setup_develop \"$KURYR_HOME\""},{"line_number":57,"context_line":"        build_install_kuryr_cni"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-sh","patch_set":18,"id":"94da135b_27acb90d","line":55,"in_reply_to":"a7e72dee_8d405286","updated":"2021-05-07 10:53:08.000000000","message":"setup_develop function will do the:\n\n  python setup develop\n\nor\n\n  pip install -e\n\ninside kuryr-kubernetes directory, so it will implicitly install also controller binary, hence the summary :)","commit_id":"b223ffb129b11b132b331ca4bc992a548f7e3cf4"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"29af189c23cbbeda17a8f386f66f39c756331cf5","unresolved":true,"context_lines":[{"line_number":142,"context_line":"        # Shut down kuryr and kubernetes services"},{"line_number":143,"context_line":"        if is_service_enabled kuryr-kubernetes; then"},{"line_number":144,"context_line":"            if [ \"${KURYR_CONT}\" \u003d\u003d \"True\" ]; then"},{"line_number":145,"context_line":"                kubectl delete deployment kuryr-controller"},{"line_number":146,"context_line":"            else"},{"line_number":147,"context_line":"                stop_process kuryr-kubernetes"},{"line_number":148,"context_line":"                stop_process kuryr-daemon"}],"source_content_type":"text/x-sh","patch_set":18,"id":"7195044a_0e72a4b9","line":145,"updated":"2021-05-05 11:23:34.000000000","message":"Should cni ds also be deleted with\"kubectl delete ds/kuryr-cni-ds\"?","commit_id":"b223ffb129b11b132b331ca4bc992a548f7e3cf4"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"dcf2e2efeb24a5b8c99755e0a5dd938c774d4162","unresolved":true,"context_lines":[{"line_number":142,"context_line":"        # Shut down kuryr and kubernetes services"},{"line_number":143,"context_line":"        if is_service_enabled kuryr-kubernetes; then"},{"line_number":144,"context_line":"            if [ \"${KURYR_CONT}\" \u003d\u003d \"True\" ]; then"},{"line_number":145,"context_line":"                kubectl delete deployment kuryr-controller"},{"line_number":146,"context_line":"            else"},{"line_number":147,"context_line":"                stop_process kuryr-kubernetes"},{"line_number":148,"context_line":"                stop_process kuryr-daemon"}],"source_content_type":"text/x-sh","patch_set":18,"id":"5c442a01_6de4307c","line":145,"in_reply_to":"1f36a336_f9d11bb7","updated":"2021-05-12 14:56:45.000000000","message":"+1","commit_id":"b223ffb129b11b132b331ca4bc992a548f7e3cf4"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"50fd61b084a3bbdcebfd90d0f2761bb2a76384b2","unresolved":true,"context_lines":[{"line_number":142,"context_line":"        # Shut down kuryr and kubernetes services"},{"line_number":143,"context_line":"        if is_service_enabled kuryr-kubernetes; then"},{"line_number":144,"context_line":"            if [ \"${KURYR_CONT}\" \u003d\u003d \"True\" ]; then"},{"line_number":145,"context_line":"                kubectl delete deployment kuryr-controller"},{"line_number":146,"context_line":"            else"},{"line_number":147,"context_line":"                stop_process kuryr-kubernetes"},{"line_number":148,"context_line":"                stop_process kuryr-daemon"}],"source_content_type":"text/x-sh","patch_set":18,"id":"1f36a336_f9d11bb7","line":145,"in_reply_to":"7195044a_0e72a4b9","updated":"2021-05-07 10:53:08.000000000","message":"Hm. that\u0027s a valid point, although with kubeadm_reset the whole cluster with kubernetes (potentially including kuryr ctrl + cni) is destroyed, so perhaps we cold skip that line instead.","commit_id":"b223ffb129b11b132b331ca4bc992a548f7e3cf4"}],"devstack/settings":[{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"29af189c23cbbeda17a8f386f66f39c756331cf5","unresolved":true,"context_lines":[{"line_number":39,"context_line":"KURYR_SUBNET_DRIVER\u003d${KURYR_SUBNET_DRIVER:-default}"},{"line_number":40,"context_line":"KURYR_SG_DRIVER\u003d${KURYR_SG_DRIVER:-default}"},{"line_number":41,"context_line":"KURYR_ENABLED_HANDLERS\u003d${KURYR_ENABLED_HANDLERS:-vif,endpoints,service,kuryrloadbalancer,kuryrport}"},{"line_number":42,"context_line":"KURYR_K8S_TOKEN\u003d${KURYR_K8S_TOKEN:-5c54f8.34eb2d4f30bccf81}"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"# Octavia"},{"line_number":45,"context_line":"KURYR_K8S_OCTAVIA_MEMBER_MODE\u003d${KURYR_K8S_OCTAVIA_MEMBER_MODE:-L3}"}],"source_content_type":"application/octet-stream","patch_set":18,"id":"48c81b40_ce8e771f","line":42,"range":{"start_line":42,"start_character":18,"end_line":42,"end_character":33},"updated":"2021-05-05 11:23:34.000000000","message":"is this token available forever?","commit_id":"b223ffb129b11b132b331ca4bc992a548f7e3cf4"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"50fd61b084a3bbdcebfd90d0f2761bb2a76384b2","unresolved":true,"context_lines":[{"line_number":39,"context_line":"KURYR_SUBNET_DRIVER\u003d${KURYR_SUBNET_DRIVER:-default}"},{"line_number":40,"context_line":"KURYR_SG_DRIVER\u003d${KURYR_SG_DRIVER:-default}"},{"line_number":41,"context_line":"KURYR_ENABLED_HANDLERS\u003d${KURYR_ENABLED_HANDLERS:-vif,endpoints,service,kuryrloadbalancer,kuryrport}"},{"line_number":42,"context_line":"KURYR_K8S_TOKEN\u003d${KURYR_K8S_TOKEN:-5c54f8.34eb2d4f30bccf81}"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"# Octavia"},{"line_number":45,"context_line":"KURYR_K8S_OCTAVIA_MEMBER_MODE\u003d${KURYR_K8S_OCTAVIA_MEMBER_MODE:-L3}"}],"source_content_type":"application/octet-stream","patch_set":18,"id":"1a89cb73_b3c18924","line":42,"range":{"start_line":42,"start_character":18,"end_line":42,"end_character":33},"in_reply_to":"48c81b40_ce8e771f","updated":"2021-05-07 10:53:08.000000000","message":"So the token is (will be) used for multinode installation (token is needed for the join command of kubeadm). I didn\u0027t figured out a way for randomize it per run, perhaps some zuul magic could be used for it - than we could remove the default.","commit_id":"b223ffb129b11b132b331ca4bc992a548f7e3cf4"}],"kuryr_kubernetes/config.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"b8e0ed9748d755e7e65da3ee5d299958830221b5","unresolved":true,"context_lines":[{"line_number":76,"context_line":"]"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"k8s_opts \u003d ["},{"line_number":79,"context_line":"    cfg.StrOpt(\u0027api_root\u0027,"},{"line_number":80,"context_line":"               help\u003d_(\"The root URL of the Kubernetes API\"),"},{"line_number":81,"context_line":"               default\u003dos.environ.get(\u0027K8S_API\u0027, \u0027https://localhost:6443\u0027)),"},{"line_number":82,"context_line":"    cfg.StrOpt(\u0027ssl_client_crt_file\u0027,"},{"line_number":83,"context_line":"               help\u003d_(\"Absolute path to client cert to \""},{"line_number":84,"context_line":"                      \"connect to HTTPS K8S_API\")),"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff608868_4cbf43fe","line":81,"range":{"start_line":79,"start_character":0,"end_line":81,"end_character":76},"updated":"2021-03-08 13:50:34.000000000","message":"I think I\u0027d rather not change a default value of an option but set it in DevStack.","commit_id":"01f405254b34e6e82b0053d7e92aa4769846f404"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"41a3312676e5ee974200abe823708320486fced5","unresolved":true,"context_lines":[{"line_number":76,"context_line":"]"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"k8s_opts \u003d ["},{"line_number":79,"context_line":"    cfg.StrOpt(\u0027api_root\u0027,"},{"line_number":80,"context_line":"               help\u003d_(\"The root URL of the Kubernetes API\"),"},{"line_number":81,"context_line":"               default\u003dos.environ.get(\u0027K8S_API\u0027, \u0027https://localhost:6443\u0027)),"},{"line_number":82,"context_line":"    cfg.StrOpt(\u0027ssl_client_crt_file\u0027,"},{"line_number":83,"context_line":"               help\u003d_(\"Absolute path to client cert to \""},{"line_number":84,"context_line":"                      \"connect to HTTPS K8S_API\")),"}],"source_content_type":"text/x-python","patch_set":1,"id":"3d19d67a_8872791b","line":81,"range":{"start_line":79,"start_character":0,"end_line":81,"end_character":76},"in_reply_to":"244b79f5_d19d63e3","updated":"2021-03-10 10:18:51.000000000","message":"Personally I\u0027d just keep it in order not to break anyone relying on the default value.\n\nIf you still want to change it we need at least the release note about it.","commit_id":"01f405254b34e6e82b0053d7e92aa4769846f404"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"d1f824ff4cc16ff4a0ec9fed9186f33786fd9e68","unresolved":false,"context_lines":[{"line_number":76,"context_line":"]"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"k8s_opts \u003d ["},{"line_number":79,"context_line":"    cfg.StrOpt(\u0027api_root\u0027,"},{"line_number":80,"context_line":"               help\u003d_(\"The root URL of the Kubernetes API\"),"},{"line_number":81,"context_line":"               default\u003dos.environ.get(\u0027K8S_API\u0027, \u0027https://localhost:6443\u0027)),"},{"line_number":82,"context_line":"    cfg.StrOpt(\u0027ssl_client_crt_file\u0027,"},{"line_number":83,"context_line":"               help\u003d_(\"Absolute path to client cert to \""},{"line_number":84,"context_line":"                      \"connect to HTTPS K8S_API\")),"}],"source_content_type":"text/x-python","patch_set":1,"id":"71a093d9_a27509b2","line":81,"range":{"start_line":79,"start_character":0,"end_line":81,"end_character":76},"in_reply_to":"3d19d67a_8872791b","updated":"2021-03-15 14:04:55.000000000","message":"Ack","commit_id":"01f405254b34e6e82b0053d7e92aa4769846f404"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"e672a7a9ce54a828241a664dc015981428ac8ebd","unresolved":true,"context_lines":[{"line_number":76,"context_line":"]"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"k8s_opts \u003d ["},{"line_number":79,"context_line":"    cfg.StrOpt(\u0027api_root\u0027,"},{"line_number":80,"context_line":"               help\u003d_(\"The root URL of the Kubernetes API\"),"},{"line_number":81,"context_line":"               default\u003dos.environ.get(\u0027K8S_API\u0027, \u0027https://localhost:6443\u0027)),"},{"line_number":82,"context_line":"    cfg.StrOpt(\u0027ssl_client_crt_file\u0027,"},{"line_number":83,"context_line":"               help\u003d_(\"Absolute path to client cert to \""},{"line_number":84,"context_line":"                      \"connect to HTTPS K8S_API\")),"}],"source_content_type":"text/x-python","patch_set":1,"id":"244b79f5_d19d63e3","line":81,"range":{"start_line":79,"start_character":0,"end_line":81,"end_character":76},"in_reply_to":"ff608868_4cbf43fe","updated":"2021-03-10 10:11:20.000000000","message":"The default is misleading for 1.20 and up. I\u0027ll change it sooner than later, as we want to support features which are included in this revision, and make an option for changing it for older versions of k8s. WDYT?","commit_id":"01f405254b34e6e82b0053d7e92aa4769846f404"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"bee009e4182067456d6beb339b0a9cb66490d368","unresolved":true,"context_lines":[{"line_number":78,"context_line":"k8s_opts \u003d ["},{"line_number":79,"context_line":"    cfg.StrOpt(\u0027api_root\u0027,"},{"line_number":80,"context_line":"               help\u003d_(\"The root URL of the Kubernetes API\"),"},{"line_number":81,"context_line":"               default\u003dos.environ.get(\u0027K8S_API\u0027, \u0027https://localhost:6443\u0027)),"},{"line_number":82,"context_line":"    cfg.StrOpt(\u0027ssl_client_crt_file\u0027,"},{"line_number":83,"context_line":"               help\u003d_(\"Absolute path to client cert to \""},{"line_number":84,"context_line":"                      \"connect to HTTPS K8S_API\")),"}],"source_content_type":"text/x-python","patch_set":8,"id":"8d0196cf_0509504e","line":81,"range":{"start_line":81,"start_character":50,"end_line":81,"end_character":73},"updated":"2021-04-16 01:37:29.000000000","message":"this exactly what I tested with on my env :)","commit_id":"b6ffc7af4d9d1ca31bc361b70bfdda51853b749d"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"cc80a9147beddb60ed7dd2deae3da4266d015c1d","unresolved":true,"context_lines":[{"line_number":76,"context_line":"]"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"k8s_opts \u003d ["},{"line_number":79,"context_line":"    cfg.StrOpt(\u0027api_root\u0027,"},{"line_number":80,"context_line":"               help\u003d_(\"The root URL of the Kubernetes API\"),"},{"line_number":81,"context_line":"               default\u003dos.environ.get(\u0027K8S_API\u0027, \u0027https://localhost:6443\u0027)),"},{"line_number":82,"context_line":"    cfg.StrOpt(\u0027ssl_client_crt_file\u0027,"},{"line_number":83,"context_line":"               help\u003d_(\"Absolute path to client cert to \""},{"line_number":84,"context_line":"                      \"connect to HTTPS K8S_API\")),"}],"source_content_type":"text/x-python","patch_set":15,"id":"34b01977_d16b15bc","line":81,"range":{"start_line":79,"start_character":0,"end_line":81,"end_character":76},"updated":"2021-04-30 08:50:13.000000000","message":"I doubt anybody depends on this default but it\u0027s probably worth to add a release note that it\u0027s changed.","commit_id":"816d0c3e65b8be66e483a19a096d30498d20da8a"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"621df4244f15c4efb61c490a339c3acac75f31bc","unresolved":false,"context_lines":[{"line_number":76,"context_line":"]"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"k8s_opts \u003d ["},{"line_number":79,"context_line":"    cfg.StrOpt(\u0027api_root\u0027,"},{"line_number":80,"context_line":"               help\u003d_(\"The root URL of the Kubernetes API\"),"},{"line_number":81,"context_line":"               default\u003dos.environ.get(\u0027K8S_API\u0027, \u0027https://localhost:6443\u0027)),"},{"line_number":82,"context_line":"    cfg.StrOpt(\u0027ssl_client_crt_file\u0027,"},{"line_number":83,"context_line":"               help\u003d_(\"Absolute path to client cert to \""},{"line_number":84,"context_line":"                      \"connect to HTTPS K8S_API\")),"}],"source_content_type":"text/x-python","patch_set":15,"id":"168e7ba4_9f373cd4","line":81,"range":{"start_line":79,"start_character":0,"end_line":81,"end_character":76},"in_reply_to":"34b01977_d16b15bc","updated":"2021-04-30 11:33:25.000000000","message":"Ack","commit_id":"816d0c3e65b8be66e483a19a096d30498d20da8a"}],"playbooks/run_k8s_e2e_tests.yaml":[{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"218568151c2e03069016bf52d3b6e1fd6a25552f","unresolved":true,"context_lines":[{"line_number":89,"context_line":"    - name: Run Network Policy tests"},{"line_number":90,"context_line":"      block:"},{"line_number":91,"context_line":"      - name: Run Network Policy tests without SCTPConnectivity"},{"line_number":92,"context_line":"        shell: kubetest --provider\u003dlocal --check-version-skew\u003dfalse --test --ginkgo-parallel\u003d{{ np_parallel_number }} --test_args\u003d\"--ginkgo.focus\u003d\\[Feature:NetworkPolicy --ginkgo.skip\u003d\\[Feature:SCTPConnectivity|should.enforce.policies.to.check.ingress.and.egress.policies.can.be.controlled.independently.based.on.PodSelector --host\u003dhttp://127.0.0.1:6443\" --dump\u003d/tmp \u003e ~/np_kubetest.log"},{"line_number":93,"context_line":"        args:"},{"line_number":94,"context_line":"          chdir: ~/kubernetes"},{"line_number":95,"context_line":"        environment:"}],"source_content_type":"text/x-yaml","patch_set":14,"id":"b4329806_950d4d1e","line":92,"range":{"start_line":92,"start_character":327,"end_line":92,"end_character":353},"updated":"2021-04-30 07:31:53.000000000","message":"does this need to be https too?","commit_id":"9284cb4f9d08f69908cc59dbe172f8f3c8e74e19"}]}
