)]}'
{"specs/zun-package-manager.rst":[{"author":{"_account_id":22076,"name":"Kevin Zhao","email":"kevin.zhao@linaro.org","username":"KevinZhao"},"change_message_id":"a522733bf7e4c8eec3d2b72ea5d5400a45a619ae","unresolved":false,"context_lines":[{"line_number":17,"context_line":"Zun is the OpenStack Container service. It aims to facilitate the provisioning"},{"line_number":18,"context_line":"and management of containerized applications on OpenStack. Currently, Zun"},{"line_number":19,"context_line":"implemented the ``container`` API resource, which allows users to provision"},{"line_number":20,"context_line":"a container and perform various operations on it. The ``contaner`` abstraction"},{"line_number":21,"context_line":"provides a useful building block for constructing a containerized application"},{"line_number":22,"context_line":"but it couldn\u0027t deliver end-to-end service for application deployer by itself."},{"line_number":23,"context_line":"Complementary functionalities are required to streamline the packaging,"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff82abbf_3164014a","line":20,"range":{"start_line":20,"start_character":56,"end_line":20,"end_character":64},"updated":"2017-11-27 05:55:45.000000000","message":"container","commit_id":"9beeeee6771e271070e52e8cb516782141dc97aa"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"21e9c674204d82445feb270c22ecbcabf2cd0bd1","unresolved":false,"context_lines":[{"line_number":24,"context_line":"installation and management of containerized applications."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"An enterprise-grade application is typically composed of multiple containers"},{"line_number":27,"context_line":"as well as other infrastructure such as network, storage, load balaners, etc.."},{"line_number":28,"context_line":"The installation and configuration of such appplications are complex and"},{"line_number":29,"context_line":"requires advanced orchestration to connect all the pieces together. Eventually,"},{"line_number":30,"context_line":"the application needs to be shipped to production and requires operators"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff82abbf_cf26f0ce","line":27,"range":{"start_line":27,"start_character":63,"end_line":27,"end_character":71},"updated":"2017-11-30 06:12:09.000000000","message":"s/balaners/balancer/","commit_id":"9beeeee6771e271070e52e8cb516782141dc97aa"},{"author":{"_account_id":8264,"name":"Shunli Zhou","username":"ShunliZhou"},"change_message_id":"d790d4bf7a9610897921713cd8cd0bce6fcaa36e","unresolved":false,"context_lines":[{"line_number":41,"context_line":"This spec proposes the following:"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"#. An application package format for Zun"},{"line_number":44,"context_line":"#. A new API for installing application package and managing its life-cycle."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"This spec proposes to define an application package format based on Heat and"},{"line_number":47,"context_line":"Jinja. An application package can contain Jinja templates that are combined"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff82abbf_aec2eb32","line":44,"range":{"start_line":44,"start_character":2,"end_line":44,"end_character":69},"updated":"2017-11-27 07:48:59.000000000","message":"I prefer that this new API just CRUD of the package definition, the create work leave to heat to create the stack of zun containers. Like k8s, helm only manage charts, k8s create pods...by yml.","commit_id":"9beeeee6771e271070e52e8cb516782141dc97aa"},{"author":{"_account_id":8264,"name":"Shunli Zhou","username":"ShunliZhou"},"change_message_id":"d790d4bf7a9610897921713cd8cd0bce6fcaa36e","unresolved":false,"context_lines":[{"line_number":41,"context_line":"This spec proposes the following:"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"#. An application package format for Zun"},{"line_number":44,"context_line":"#. A new API for installing application package and managing its life-cycle."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"This spec proposes to define an application package format based on Heat and"},{"line_number":47,"context_line":"Jinja. An application package can contain Jinja templates that are combined"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff82abbf_2e0b3b7d","line":44,"range":{"start_line":44,"start_character":30,"end_line":44,"end_character":76},"updated":"2017-11-27 07:48:59.000000000","message":"Will zun api serve these apis? Do we need a separate service to serve these apis as these apis mainly serves static files?","commit_id":"9beeeee6771e271070e52e8cb516782141dc97aa"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"37a37e86bcaa48edb691e502392aa08d695d582d","unresolved":false,"context_lines":[{"line_number":41,"context_line":"This spec proposes the following:"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"#. An application package format for Zun"},{"line_number":44,"context_line":"#. A new API for installing application package and managing its life-cycle."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"This spec proposes to define an application package format based on Heat and"},{"line_number":47,"context_line":"Jinja. An application package can contain Jinja templates that are combined"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff82abbf_5800be01","line":44,"range":{"start_line":44,"start_character":30,"end_line":44,"end_character":76},"in_reply_to":"ff82abbf_2e0b3b7d","updated":"2017-11-27 15:24:23.000000000","message":"I think we need a separated service to serve these APIs. Will add more details about that in a revision.\n\nIdeally, the new API service can be containerized and run as a Zun container (with its API endpoint registered in Keystone service catalog).","commit_id":"9beeeee6771e271070e52e8cb516782141dc97aa"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"37a37e86bcaa48edb691e502392aa08d695d582d","unresolved":false,"context_lines":[{"line_number":41,"context_line":"This spec proposes the following:"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"#. An application package format for Zun"},{"line_number":44,"context_line":"#. A new API for installing application package and managing its life-cycle."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"This spec proposes to define an application package format based on Heat and"},{"line_number":47,"context_line":"Jinja. An application package can contain Jinja templates that are combined"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff82abbf_d8136e5b","line":44,"range":{"start_line":44,"start_character":2,"end_line":44,"end_character":69},"in_reply_to":"ff82abbf_aec2eb32","updated":"2017-11-27 15:24:23.000000000","message":"ACK","commit_id":"9beeeee6771e271070e52e8cb516782141dc97aa"},{"author":{"_account_id":8264,"name":"Shunli Zhou","username":"ShunliZhou"},"change_message_id":"d790d4bf7a9610897921713cd8cd0bce6fcaa36e","unresolved":false,"context_lines":[{"line_number":55,"context_line":"simple, like a nginx container, or something complex, like a web application"},{"line_number":56,"context_line":"with HTTP servers, databases, caches, and so on."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"Zun application package are created as files laid out in a particular directory"},{"line_number":59,"context_line":"tree. The structure of the directory is specified as below::"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    \u003capplication_name\u003e/"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff82abbf_6e638343","line":58,"range":{"start_line":58,"start_character":0,"end_line":58,"end_character":45},"updated":"2017-11-27 07:48:59.000000000","message":"I guess we also need store the packages info into database(mysql, etcd...).","commit_id":"9beeeee6771e271070e52e8cb516782141dc97aa"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"37a37e86bcaa48edb691e502392aa08d695d582d","unresolved":false,"context_lines":[{"line_number":55,"context_line":"simple, like a nginx container, or something complex, like a web application"},{"line_number":56,"context_line":"with HTTP servers, databases, caches, and so on."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"Zun application package are created as files laid out in a particular directory"},{"line_number":59,"context_line":"tree. The structure of the directory is specified as below::"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    \u003capplication_name\u003e/"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff82abbf_b816aa48","line":58,"range":{"start_line":58,"start_character":0,"end_line":58,"end_character":45},"in_reply_to":"ff82abbf_6e638343","updated":"2017-11-27 15:24:23.000000000","message":"Agree.","commit_id":"9beeeee6771e271070e52e8cb516782141dc97aa"},{"author":{"_account_id":22076,"name":"Kevin Zhao","email":"kevin.zhao@linaro.org","username":"KevinZhao"},"change_message_id":"a522733bf7e4c8eec3d2b72ea5d5400a45a619ae","unresolved":false,"context_lines":[{"line_number":71,"context_line":"* The templates directory contains a set of Heat templates that will be"},{"line_number":72,"context_line":"  used to deploy the application."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"Templates and Values"},{"line_number":75,"context_line":"--------------------"},{"line_number":76,"context_line":"Templates are written in the Python template language - Jinja [1]. All template"},{"line_number":77,"context_line":"files are stored in the templates/ folder. When Zun install the package, it"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff82abbf_d10cb542","line":74,"updated":"2017-11-27 05:55:45.000000000","message":"Reuse Heat template, do we consider to incompatible with Helm Chart? Since helm chart is more favorite(I\u0027m not sure, just IMO:-) )?","commit_id":"9beeeee6771e271070e52e8cb516782141dc97aa"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"37a37e86bcaa48edb691e502392aa08d695d582d","unresolved":false,"context_lines":[{"line_number":71,"context_line":"* The templates directory contains a set of Heat templates that will be"},{"line_number":72,"context_line":"  used to deploy the application."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"Templates and Values"},{"line_number":75,"context_line":"--------------------"},{"line_number":76,"context_line":"Templates are written in the Python template language - Jinja [1]. All template"},{"line_number":77,"context_line":"files are stored in the templates/ folder. When Zun install the package, it"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff82abbf_d8984ec1","line":74,"in_reply_to":"ff82abbf_d10cb542","updated":"2017-11-27 15:24:23.000000000","message":"Good suggestion. I am not sure if it is possible to be 100% compatible, but we can make it as similar as we can.","commit_id":"9beeeee6771e271070e52e8cb516782141dc97aa"},{"author":{"_account_id":22076,"name":"Kevin Zhao","email":"kevin.zhao@linaro.org","username":"KevinZhao"},"change_message_id":"a522733bf7e4c8eec3d2b72ea5d5400a45a619ae","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"An example template file might look something like this::"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    heat_template_version: 2017-09-01"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    resources:"},{"line_number":94,"context_line":"      db:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff82abbf_7157e927","line":91,"range":{"start_line":91,"start_character":4,"end_line":91,"end_character":25},"updated":"2017-11-27 05:55:45.000000000","message":"Something I want to make clear,\nSupport Volume?\nMuch app are implemented like Pod, so the container reousrces here is based on Pod(Capsule) or Container.","commit_id":"9beeeee6771e271070e52e8cb516782141dc97aa"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"37a37e86bcaa48edb691e502392aa08d695d582d","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"An example template file might look something like this::"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    heat_template_version: 2017-09-01"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    resources:"},{"line_number":94,"context_line":"      db:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff82abbf_780b42d5","line":91,"range":{"start_line":91,"start_character":4,"end_line":91,"end_character":25},"in_reply_to":"ff82abbf_7157e927","updated":"2017-11-27 15:24:23.000000000","message":"In order to support volume, we need to submit a patch to Heat to add the \u0027--mount\u0027 option to the OS::Zun::Container resource. After this is done, volume will be supported. The container resource here is based on Container. If we want to support Capsule, we need to submit another patch to Heat as well.\n\nIt looks there are lots of work to do, but don\u0027t worry. We could resolve it one-by-one.","commit_id":"9beeeee6771e271070e52e8cb516782141dc97aa"},{"author":{"_account_id":22076,"name":"Kevin Zhao","email":"kevin.zhao@linaro.org","username":"KevinZhao"},"change_message_id":"c0b3b7e41e812f118fa3f6eb33e776dff5c99ec8","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"An example template file might look something like this::"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    heat_template_version: 2017-09-01"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    resources:"},{"line_number":94,"context_line":"      db:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff82abbf_f7150de6","line":91,"range":{"start_line":91,"start_character":4,"end_line":91,"end_character":25},"in_reply_to":"ff82abbf_780b42d5","updated":"2017-11-28 05:33:49.000000000","message":"Hi hongbin, per we discuss in the meeting, I don\u0027t really prefer to use HEAT to realize the deployment tools, since the template is not friendly to end user. Is is possible to change another tools to implementation this?","commit_id":"9beeeee6771e271070e52e8cb516782141dc97aa"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"9d2a80ea763eb5fe8b8bfec84f4ca0d3f76549a1","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"An example template file might look something like this::"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    heat_template_version: 2017-09-01"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    resources:"},{"line_number":94,"context_line":"      db:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff82abbf_8767a1b7","line":91,"range":{"start_line":91,"start_character":4,"end_line":91,"end_character":25},"in_reply_to":"ff82abbf_f7150de6","updated":"2017-11-28 16:13:56.000000000","message":"Kevin,\n\nGood suggestion. Agree with you that Heat\u0027s DSL might not be a user-friendly language. Right now, I couldn\u0027t find an existing alternative DSL to replace Heat. If there is an alternative DSL, I think it needs to satisfy the following:\n\n* Is able to orchestration Zun containers with other OpenStack resources (i.e. Neutron load balancer, floating IP)\n* Is a declarative language\n* Better to be a well-known language that can serve as a standard and easy to pick up.\n\nIf you or anyone else could brainstorm an alternative that satisfies above requirements, please feel free to suggest. Perhaps we should investigate on the configuration management tools (i.e. Chef, Puppet) and their embedded DSL? Not sure.\n\nI think we can do is to make this feature to be deployment tools agnostic. In particular, we could try to detect the type of the template file (check if it is a Heat template or something else) and invoke the corresponding tools based on the detected types?","commit_id":"9beeeee6771e271070e52e8cb516782141dc97aa"},{"author":{"_account_id":22076,"name":"Kevin Zhao","email":"kevin.zhao@linaro.org","username":"KevinZhao"},"change_message_id":"a522733bf7e4c8eec3d2b72ea5d5400a45a619ae","unresolved":false,"context_lines":[{"line_number":106,"context_line":"            WORDPRESS_DB_HOST: {get_attr: [db, addresses, private, 0, addr]}"},{"line_number":107,"context_line":"            WORDPRESS_DB_USER: root"},{"line_number":108,"context_line":"            WORDPRESS_DB_PASSWORD: {{ mysql_root_password }}"},{"line_number":109,"context_line":"      {% if associate_floating_ip %}"},{"line_number":110,"context_line":"      floating_ip:"},{"line_number":111,"context_line":"        type: OS::Neutron::FloatingIP"},{"line_number":112,"context_line":"        properties:"},{"line_number":113,"context_line":"          floating_network: public"},{"line_number":114,"context_line":"      association:"},{"line_number":115,"context_line":"        type: OS::Neutron::FloatingIPAssociation"},{"line_number":116,"context_line":"        properties:"},{"line_number":117,"context_line":"          floatingip_id: {get_resource: floating_ip}"},{"line_number":118,"context_line":"          port_id: {get_attr: [wordpress, addresses, private, 0, port]}"},{"line_number":119,"context_line":"      {% endif %}"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"A values.yaml file that supplies the necessary values would look like this::"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff82abbf_4c06ca1f","line":119,"range":{"start_line":109,"start_character":6,"end_line":119,"end_character":17},"updated":"2017-11-27 05:55:45.000000000","message":"Here we have a more complicated floating ip setting, or something others. \nCould we consider to mask them from user?\nSince more settings will make user dizzy","commit_id":"9beeeee6771e271070e52e8cb516782141dc97aa"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"37a37e86bcaa48edb691e502392aa08d695d582d","unresolved":false,"context_lines":[{"line_number":106,"context_line":"            WORDPRESS_DB_HOST: {get_attr: [db, addresses, private, 0, addr]}"},{"line_number":107,"context_line":"            WORDPRESS_DB_USER: root"},{"line_number":108,"context_line":"            WORDPRESS_DB_PASSWORD: {{ mysql_root_password }}"},{"line_number":109,"context_line":"      {% if associate_floating_ip %}"},{"line_number":110,"context_line":"      floating_ip:"},{"line_number":111,"context_line":"        type: OS::Neutron::FloatingIP"},{"line_number":112,"context_line":"        properties:"},{"line_number":113,"context_line":"          floating_network: public"},{"line_number":114,"context_line":"      association:"},{"line_number":115,"context_line":"        type: OS::Neutron::FloatingIPAssociation"},{"line_number":116,"context_line":"        properties:"},{"line_number":117,"context_line":"          floatingip_id: {get_resource: floating_ip}"},{"line_number":118,"context_line":"          port_id: {get_attr: [wordpress, addresses, private, 0, port]}"},{"line_number":119,"context_line":"      {% endif %}"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"A values.yaml file that supplies the necessary values would look like this::"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff82abbf_1881d6fb","line":119,"range":{"start_line":109,"start_character":6,"end_line":119,"end_character":17},"in_reply_to":"ff82abbf_4c06ca1f","updated":"2017-11-27 15:24:23.000000000","message":"Agree with you, but it is up to the package developer to decide which settings will be made available to their users. We just provide tool for them to do it. What we can do later is to write a best-practice guide for package developers to explain the trade-off between options and complexity.","commit_id":"9beeeee6771e271070e52e8cb516782141dc97aa"}]}
