)]}'
{"specs/ansiblize_dockerfile.rst":[{"author":{"_account_id":22421,"name":"Mohammed Salih Puthenpurayil","email":"linusali@gmail.com","username":"linusali"},"change_message_id":"ea58135cb9761ef3982b7bc87ab8dbdf60bb40e2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"1aa78d24_23ba1e24","updated":"2016-07-04 08:35:39.000000000","message":"I have re-written this file to make it more sensible. But I would like original author - Jeffrey - to have a look at the updates and do the changes as necessary.","commit_id":"777eea2ea9c9db1e83e02ee889437866cb849389"},{"author":{"_account_id":16233,"name":"Mauricio Lima","email":"mauriciolimab@gmail.com","username":"limamauricio"},"change_message_id":"63aa7acddb2ece43fed3ca2a8c3fa740bc16ae73","unresolved":false,"context_lines":[{"line_number":18,"context_line":"Kolla uses Dockerfiles to build the images. But there are many disadvantage to"},{"line_number":19,"context_line":"using Dockerfile."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"1. Dockerfille is almost like a bunch of shell scripts and shell scripts are "},{"line_number":22,"context_line":"   bad, that is why Ansible is being used to deploy Kolla. "},{"line_number":23,"context_line":"2. It is hard to handle the complex environments put forward by different Linux "},{"line_number":24,"context_line":"   distros and their releases.  For example, when we need to detect the docker "}],"source_content_type":"text/x-rst","patch_set":2,"id":"1aa78d24_1a1a4e7d","line":21,"range":{"start_line":21,"start_character":76,"end_line":21,"end_character":77},"updated":"2016-07-06 19:15:10.000000000","message":"remove whitespace","commit_id":"777eea2ea9c9db1e83e02ee889437866cb849389"},{"author":{"_account_id":16233,"name":"Mauricio Lima","email":"mauriciolimab@gmail.com","username":"limamauricio"},"change_message_id":"63aa7acddb2ece43fed3ca2a8c3fa740bc16ae73","unresolved":false,"context_lines":[{"line_number":19,"context_line":"using Dockerfile."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"1. Dockerfille is almost like a bunch of shell scripts and shell scripts are "},{"line_number":22,"context_line":"   bad, that is why Ansible is being used to deploy Kolla. "},{"line_number":23,"context_line":"2. It is hard to handle the complex environments put forward by different Linux "},{"line_number":24,"context_line":"   distros and their releases.  For example, when we need to detect the docker "},{"line_number":25,"context_line":"   image distro, we are using following trick now."}],"source_content_type":"text/x-rst","patch_set":2,"id":"1aa78d24_fa1e626e","line":22,"range":{"start_line":22,"start_character":58,"end_line":22,"end_character":59},"updated":"2016-07-06 19:15:10.000000000","message":"remove whitespace","commit_id":"777eea2ea9c9db1e83e02ee889437866cb849389"},{"author":{"_account_id":16233,"name":"Mauricio Lima","email":"mauriciolimab@gmail.com","username":"limamauricio"},"change_message_id":"63aa7acddb2ece43fed3ca2a8c3fa740bc16ae73","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"1. Dockerfille is almost like a bunch of shell scripts and shell scripts are "},{"line_number":22,"context_line":"   bad, that is why Ansible is being used to deploy Kolla. "},{"line_number":23,"context_line":"2. It is hard to handle the complex environments put forward by different Linux "},{"line_number":24,"context_line":"   distros and their releases.  For example, when we need to detect the docker "},{"line_number":25,"context_line":"   image distro, we are using following trick now."},{"line_number":26,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1aa78d24_5a105659","line":23,"range":{"start_line":23,"start_character":79,"end_line":23,"end_character":80},"updated":"2016-07-06 19:15:10.000000000","message":"remove whitespace","commit_id":"777eea2ea9c9db1e83e02ee889437866cb849389"},{"author":{"_account_id":16233,"name":"Mauricio Lima","email":"mauriciolimab@gmail.com","username":"limamauricio"},"change_message_id":"63aa7acddb2ece43fed3ca2a8c3fa740bc16ae73","unresolved":false,"context_lines":[{"line_number":21,"context_line":"1. Dockerfille is almost like a bunch of shell scripts and shell scripts are "},{"line_number":22,"context_line":"   bad, that is why Ansible is being used to deploy Kolla. "},{"line_number":23,"context_line":"2. It is hard to handle the complex environments put forward by different Linux "},{"line_number":24,"context_line":"   distros and their releases.  For example, when we need to detect the docker "},{"line_number":25,"context_line":"   image distro, we are using following trick now."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"::"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1aa78d24_3a158a48","line":24,"range":{"start_line":24,"start_character":78,"end_line":24,"end_character":79},"updated":"2016-07-06 19:15:10.000000000","message":"remove whitespace","commit_id":"777eea2ea9c9db1e83e02ee889437866cb849389"},{"author":{"_account_id":16233,"name":"Mauricio Lima","email":"mauriciolimab@gmail.com","username":"limamauricio"},"change_message_id":"63aa7acddb2ece43fed3ca2a8c3fa740bc16ae73","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        echo \"Only supported {{ supported_distro_release }} release on {{ base_distro }}\"; false; \\"},{"line_number":30,"context_line":"    fi \\"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"The above script is not idempotent. Another example, when creating a user, you "},{"line_number":33,"context_line":"must test whether that particular user exist."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"::"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1aa78d24_7a0b922a","line":32,"range":{"start_line":32,"start_character":78,"end_line":32,"end_character":79},"updated":"2016-07-06 19:15:10.000000000","message":"remove whitespace","commit_id":"777eea2ea9c9db1e83e02ee889437866cb849389"},{"author":{"_account_id":16233,"name":"Mauricio Lima","email":"mauriciolimab@gmail.com","username":"limamauricio"},"change_message_id":"63aa7acddb2ece43fed3ca2a8c3fa740bc16ae73","unresolved":false,"context_lines":[{"line_number":35,"context_line":"::"},{"line_number":36,"context_line":"    RUN id -u ceph \u0026\u003e /dev/null || useradd --user-group ceph"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"These scripts are ugly and cannot be reused. Moreover, the logic of shell "},{"line_number":39,"context_line":"scripts are hard to understand and difficult to maintain."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Dockerfiles are also hard to extend and modify. As of now we have no mechanism "}],"source_content_type":"text/x-rst","patch_set":2,"id":"1aa78d24_ba017a08","line":38,"range":{"start_line":38,"start_character":73,"end_line":38,"end_character":74},"updated":"2016-07-06 19:15:10.000000000","message":"remove whitespace","commit_id":"777eea2ea9c9db1e83e02ee889437866cb849389"},{"author":{"_account_id":16233,"name":"Mauricio Lima","email":"mauriciolimab@gmail.com","username":"limamauricio"},"change_message_id":"63aa7acddb2ece43fed3ca2a8c3fa740bc16ae73","unresolved":false,"context_lines":[{"line_number":38,"context_line":"These scripts are ugly and cannot be reused. Moreover, the logic of shell "},{"line_number":39,"context_line":"scripts are hard to understand and difficult to maintain."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Dockerfiles are also hard to extend and modify. As of now we have no mechanism "},{"line_number":42,"context_line":"to extend a certain Dockerfile easily. And it is also hard to change the "},{"line_number":43,"context_line":"repository location too."},{"line_number":44,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1aa78d24_5d07b017","line":41,"range":{"start_line":41,"start_character":78,"end_line":41,"end_character":79},"updated":"2016-07-06 19:15:10.000000000","message":"remove whitespace","commit_id":"777eea2ea9c9db1e83e02ee889437866cb849389"},{"author":{"_account_id":16233,"name":"Mauricio Lima","email":"mauriciolimab@gmail.com","username":"limamauricio"},"change_message_id":"63aa7acddb2ece43fed3ca2a8c3fa740bc16ae73","unresolved":false,"context_lines":[{"line_number":39,"context_line":"scripts are hard to understand and difficult to maintain."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Dockerfiles are also hard to extend and modify. As of now we have no mechanism "},{"line_number":42,"context_line":"to extend a certain Dockerfile easily. And it is also hard to change the "},{"line_number":43,"context_line":"repository location too."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Current Dockerfile also has many useless and meaningless layers, which are"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1aa78d24_3d0c643a","line":42,"range":{"start_line":42,"start_character":72,"end_line":42,"end_character":73},"updated":"2016-07-06 19:15:10.000000000","message":"remove whitespace","commit_id":"777eea2ea9c9db1e83e02ee889437866cb849389"},{"author":{"_account_id":16233,"name":"Mauricio Lima","email":"mauriciolimab@gmail.com","username":"limamauricio"},"change_message_id":"63aa7acddb2ece43fed3ca2a8c3fa740bc16ae73","unresolved":false,"context_lines":[{"line_number":45,"context_line":"Current Dockerfile also has many useless and meaningless layers, which are"},{"line_number":46,"context_line":"never shared with others images. Merging these layers into one has a lot of"},{"line_number":47,"context_line":"benefits. For example, it is not required to run some cleanup script at each"},{"line_number":48,"context_line":"``RUN`` directive. This can be done towards the end of the playbooks and can "},{"line_number":49,"context_line":"speed up the build process."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Use cases"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1aa78d24_7d126c58","line":48,"range":{"start_line":48,"start_character":76,"end_line":48,"end_character":77},"updated":"2016-07-06 19:15:10.000000000","message":"remove whitespace","commit_id":"777eea2ea9c9db1e83e02ee889437866cb849389"},{"author":{"_account_id":22421,"name":"Mohammed Salih Puthenpurayil","email":"linusali@gmail.com","username":"linusali"},"change_message_id":"ea58135cb9761ef3982b7bc87ab8dbdf60bb40e2","unresolved":false,"context_lines":[{"line_number":54,"context_line":"There is no much change in the usage. But we will implement customization in the"},{"line_number":55,"context_line":"following ways."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"1. Customize the images. This can be done by adding a custom role to the image."},{"line_number":58,"context_line":"2. Some variable used in the Dockerfile should be able to be changed easily. For"},{"line_number":59,"context_line":"   example  the repository location."},{"line_number":60,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1aa78d24_f8ef21ae","line":57,"range":{"start_line":57,"start_character":0,"end_line":57,"end_character":79},"updated":"2016-07-04 08:35:39.000000000","message":"I think this needs a bit more elaboration. It is vague.","commit_id":"777eea2ea9c9db1e83e02ee889437866cb849389"},{"author":{"_account_id":16233,"name":"Mauricio Lima","email":"mauriciolimab@gmail.com","username":"limamauricio"},"change_message_id":"63aa7acddb2ece43fed3ca2a8c3fa740bc16ae73","unresolved":false,"context_lines":[{"line_number":71,"context_line":"2. Copy all the custom role and variable files to the Playbooks in the Dokerfile"},{"line_number":72,"context_line":"   folder."},{"line_number":73,"context_line":"3. The Playbooks will load roles dynamically."},{"line_number":74,"context_line":"3. In the Dockerfile, use ``COPY`` directive to COPY all the playbooks to the "},{"line_number":75,"context_line":"   container."},{"line_number":76,"context_line":"4. ``RUN`` the Playbooks in container by using Ansible docker plugins"},{"line_number":77,"context_line":"5. Continue to use the ``include_header`` and ``include_footer`` parameters to "}],"source_content_type":"text/x-rst","patch_set":2,"id":"1aa78d24_dd1ba071","line":74,"range":{"start_line":74,"start_character":77,"end_line":74,"end_character":78},"updated":"2016-07-06 19:15:10.000000000","message":"remove whitespace","commit_id":"777eea2ea9c9db1e83e02ee889437866cb849389"},{"author":{"_account_id":16233,"name":"Mauricio Lima","email":"mauriciolimab@gmail.com","username":"limamauricio"},"change_message_id":"63aa7acddb2ece43fed3ca2a8c3fa740bc16ae73","unresolved":false,"context_lines":[{"line_number":74,"context_line":"3. In the Dockerfile, use ``COPY`` directive to COPY all the playbooks to the "},{"line_number":75,"context_line":"   container."},{"line_number":76,"context_line":"4. ``RUN`` the Playbooks in container by using Ansible docker plugins"},{"line_number":77,"context_line":"5. Continue to use the ``include_header`` and ``include_footer`` parameters to "},{"line_number":78,"context_line":"   give the user a chance to change the Dockerfile directives, like ``ENV``, "},{"line_number":79,"context_line":"   ``LABEL`` and ``CMD`` etc."},{"line_number":80,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1aa78d24_bd185476","line":77,"range":{"start_line":77,"start_character":78,"end_line":77,"end_character":79},"updated":"2016-07-06 19:15:10.000000000","message":"remove whitespace","commit_id":"777eea2ea9c9db1e83e02ee889437866cb849389"},{"author":{"_account_id":16233,"name":"Mauricio Lima","email":"mauriciolimab@gmail.com","username":"limamauricio"},"change_message_id":"63aa7acddb2ece43fed3ca2a8c3fa740bc16ae73","unresolved":false,"context_lines":[{"line_number":75,"context_line":"   container."},{"line_number":76,"context_line":"4. ``RUN`` the Playbooks in container by using Ansible docker plugins"},{"line_number":77,"context_line":"5. Continue to use the ``include_header`` and ``include_footer`` parameters to "},{"line_number":78,"context_line":"   give the user a chance to change the Dockerfile directives, like ``ENV``, "},{"line_number":79,"context_line":"   ``LABEL`` and ``CMD`` etc."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1aa78d24_fd2c9c9a","line":78,"range":{"start_line":78,"start_character":76,"end_line":78,"end_character":77},"updated":"2016-07-06 19:15:10.000000000","message":"remove whitespace","commit_id":"777eea2ea9c9db1e83e02ee889437866cb849389"},{"author":{"_account_id":16233,"name":"Mauricio Lima","email":"mauriciolimab@gmail.com","username":"limamauricio"},"change_message_id":"63aa7acddb2ece43fed3ca2a8c3fa740bc16ae73","unresolved":false,"context_lines":[{"line_number":94,"context_line":"Alternatives"},{"line_number":95,"context_line":"------------"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"1. Use the current scripts and Dockerfile, but this will be hard to maintain, "},{"line_number":98,"context_line":"   change and customize."},{"line_number":99,"context_line":"2. There is a implementation about the customization[1]. But it is impossible"},{"line_number":100,"context_line":"   to make some custom changes without touching the kolla code."}],"source_content_type":"text/x-rst","patch_set":2,"id":"1aa78d24_9d3c78c9","line":97,"range":{"start_line":97,"start_character":77,"end_line":97,"end_character":78},"updated":"2016-07-06 19:15:10.000000000","message":"remove whitespace","commit_id":"777eea2ea9c9db1e83e02ee889437866cb849389"},{"author":{"_account_id":167,"name":"Christian Berendt","email":"berendt@osism.tech","username":"berendt"},"change_message_id":"bc3594ffdf6b2bcf280374da82131b44834d147a","unresolved":false,"context_lines":[{"line_number":112,"context_line":"----------"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"Target Milestone for completion:"},{"line_number":115,"context_line":"    newton-2"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"Work Items"},{"line_number":118,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9ad45d7e_dd6dbe99","line":115,"range":{"start_line":115,"start_character":4,"end_line":115,"end_character":12},"updated":"2016-08-09 14:04:04.000000000","message":"We already missed this milestone (http://releases.openstack.org/newton/schedule.html).","commit_id":"2b4d47dc9ce4f761b98de58dceb99ce7ebe29750"}]}
