)]}'
{"specs/approved/container-based-display-drivers.rst":[{"author":{"_account_id":7882,"name":"Yuiko Takada Mori","email":"yuiko-mori@nec.com","username":"YuikoTakada"},"change_message_id":"c48da693435967772aef5398d5e5b34c2b8f8e9c","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://bugs.launchpad.net/ironic/+bug/1567629"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Introduce display drivers to allow vendor-specific KVM clients."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dab17558_b0e12401","line":13,"range":{"start_line":13,"start_character":51,"end_line":13,"end_character":54},"updated":"2016-05-13 02:38:48.000000000","message":"This means \"Keyboard-Video-Mouse\", right? I\u0027ve guessed from your another patch(https://review.openstack.org/#/c/306074). People will be confused with \"Kernel-based Virtual Machine\", so it would be better to fix \"Keyboard-Video-Mouse(KVM)\" same as #306074.","commit_id":"0cab9088e193b174ce171796832aa94c92ab6c22"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"267531467f695c559ce2dc9081210f60327a77c2","unresolved":false,"context_lines":[{"line_number":23,"context_line":"Proposed change"},{"line_number":24,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"The display drivers implementation in Ironic would make use of Docker to run"},{"line_number":27,"context_line":"display drivers inside of containers. A display driver is essentially the"},{"line_number":28,"context_line":"manufacturer provided tools running inside an X session, exposing a VNC server"},{"line_number":29,"context_line":"through the use of x11vnc."}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a122d0e_eb72b57b","line":26,"updated":"2016-04-16 00:14:41.000000000","message":"While I\u0027m a fan of containers (and you are too, it seems), I\u0027m not sure it\u0027s a good idea to push this dependency on our users. Is there something that would prevent these from being processes spawned for a console, which might default to a local program, but a deployer could configure it to point to a docker run command for a complex config like you\u0027re suggesting?\n\nI\u0027m not sure what the solution is, but I think this will be more accessible to folks if we can make it a little more technology agnostic.","commit_id":"0cab9088e193b174ce171796832aa94c92ab6c22"},{"author":{"_account_id":7080,"name":"Mathieu Mitchell","email":"mat128@gmail.com","username":"mat128"},"change_message_id":"fc06ce020b335d52638aed69fb0f01dc25d81972","unresolved":false,"context_lines":[{"line_number":23,"context_line":"Proposed change"},{"line_number":24,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"The display drivers implementation in Ironic would make use of Docker to run"},{"line_number":27,"context_line":"display drivers inside of containers. A display driver is essentially the"},{"line_number":28,"context_line":"manufacturer provided tools running inside an X session, exposing a VNC server"},{"line_number":29,"context_line":"through the use of x11vnc."}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa6399be_6c6d46cb","line":26,"in_reply_to":"1a122d0e_2a10544d","updated":"2016-10-15 14:58:26.000000000","message":"Will change this spec to cover \"Display drivers for VNC graphical consoles\" and will push using Docker as a scalable and battle tested alternative to running native processes on the conductor. Big fat warnings will be added to the docs to explain operators that running on the conductor is less scalable, but this is already the case with serial console anyway.","commit_id":"0cab9088e193b174ce171796832aa94c92ab6c22"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"f54139b3a3dfa413d554ff1c2cb45cc5552ea870","unresolved":false,"context_lines":[{"line_number":23,"context_line":"Proposed change"},{"line_number":24,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"The display drivers implementation in Ironic would make use of Docker to run"},{"line_number":27,"context_line":"display drivers inside of containers. A display driver is essentially the"},{"line_number":28,"context_line":"manufacturer provided tools running inside an X session, exposing a VNC server"},{"line_number":29,"context_line":"through the use of x11vnc."}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a122d0e_2a10544d","line":26,"in_reply_to":"1a122d0e_85039b41","updated":"2016-04-29 16:41:02.000000000","message":"So... this is an X server per console, so they need to be isolated. I also agree we should aim for it to be less specific, but we need some sort of container/VM/something here, and it needs to scale to hundreds per conductor.","commit_id":"0cab9088e193b174ce171796832aa94c92ab6c22"},{"author":{"_account_id":7933,"name":"Philippe Godin","email":"godp1301@gmail.com","username":"godp1301"},"change_message_id":"930b2e9b1285d65c7bf0ab0737940f002f23f323","unresolved":false,"context_lines":[{"line_number":23,"context_line":"Proposed change"},{"line_number":24,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"The display drivers implementation in Ironic would make use of Docker to run"},{"line_number":27,"context_line":"display drivers inside of containers. A display driver is essentially the"},{"line_number":28,"context_line":"manufacturer provided tools running inside an X session, exposing a VNC server"},{"line_number":29,"context_line":"through the use of x11vnc."}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a122d0e_85039b41","line":26,"in_reply_to":"1a122d0e_eb72b57b","updated":"2016-04-27 20:35:36.000000000","message":"The technology needs to be chosen wisely. Although making things simple for our users is a concern, security should be our main focus. Perhaps we should add a section discussing how clients will be isolated from each others and how clients would be restricted to their own BMC only.","commit_id":"0cab9088e193b174ce171796832aa94c92ab6c22"},{"author":{"_account_id":7882,"name":"Yuiko Takada Mori","email":"yuiko-mori@nec.com","username":"YuikoTakada"},"change_message_id":"c48da693435967772aef5398d5e5b34c2b8f8e9c","unresolved":false,"context_lines":[{"line_number":26,"context_line":"The display drivers implementation in Ironic would make use of Docker to run"},{"line_number":27,"context_line":"display drivers inside of containers. A display driver is essentially the"},{"line_number":28,"context_line":"manufacturer provided tools running inside an X session, exposing a VNC server"},{"line_number":29,"context_line":"through the use of x11vnc."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"When a start console call gets in, the console driver would launch a container"},{"line_number":32,"context_line":"and provide it with the necessary connection information (IPMI address,"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dab17558_10ce3083","line":29,"range":{"start_line":29,"start_character":19,"end_line":29,"end_character":25},"updated":"2016-05-13 02:38:48.000000000","message":"Who does install x11vnc to baremetal node? IPA? If users uninstall x11vnc, they will not be able to use graphic console?","commit_id":"0cab9088e193b174ce171796832aa94c92ab6c22"},{"author":{"_account_id":7080,"name":"Mathieu Mitchell","email":"mat128@gmail.com","username":"mat128"},"change_message_id":"fc06ce020b335d52638aed69fb0f01dc25d81972","unresolved":false,"context_lines":[{"line_number":26,"context_line":"The display drivers implementation in Ironic would make use of Docker to run"},{"line_number":27,"context_line":"display drivers inside of containers. A display driver is essentially the"},{"line_number":28,"context_line":"manufacturer provided tools running inside an X session, exposing a VNC server"},{"line_number":29,"context_line":"through the use of x11vnc."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"When a start console call gets in, the console driver would launch a container"},{"line_number":32,"context_line":"and provide it with the necessary connection information (IPMI address,"}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa6399be_ac6bdeb5","line":29,"range":{"start_line":29,"start_character":19,"end_line":29,"end_character":25},"in_reply_to":"dab17558_10ce3083","updated":"2016-10-15 14:58:26.000000000","message":"This spec introduces the concept of \"Display drivers\" which run externally from the node. These display drivers are in charge of handling the VNC \u003c\u003e proprietary protocol by leveraging the vendor-provided tools. No software needs to be installed in the node.","commit_id":"0cab9088e193b174ce171796832aa94c92ab6c22"},{"author":{"_account_id":12060,"name":"Jonathan Provost","email":"jprovost.sh@gmail.com","username":"jprovost"},"change_message_id":"1cb67ece7a0eb365f4964df87a601d4281a56f66","unresolved":false,"context_lines":[{"line_number":160,"context_line":"Operator to correctly segregate network segments."},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"Additionally, this setup allows for multiple ironic-conductors. When a"},{"line_number":163,"context_line":"``set_console_mode`` call comes in, any conductor takes the call and creates"},{"line_number":164,"context_line":"the appropriate container. Once created, the container\u0027s details are stored in"},{"line_number":165,"context_line":"``driver_internal_info``. If a later call comes in to get console details, or"},{"line_number":166,"context_line":"stop the console, any conductor can take the call and contact the Docker host"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a122d0e_22843d09","line":163,"range":{"start_line":163,"start_character":2,"end_line":163,"end_character":18},"updated":"2016-04-27 19:50:35.000000000","message":"s/set_console_mode/set_graphical_console_mode/","commit_id":"0cab9088e193b174ce171796832aa94c92ab6c22"}],"specs/approved/external-display-drivers.rst":[{"author":{"_account_id":7900,"name":"Tomasz Paszkowski","email":"ss7pro@gmail.com","username":"tpaszkowski"},"change_message_id":"64fa6ec3a2ed016e6e072a3e524008563ac4f7fd","unresolved":false,"context_lines":[{"line_number":37,"context_line":"  * Vendor-specific tool (e.g. Supermicro IPMIview or similar)"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Two different external display driver types will be implemented: ``native`` and"},{"line_number":40,"context_line":"``docker``."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"The ``native`` display drivers run directly on the ironic conductor and"},{"line_number":43,"context_line":"require all prerequisites to be installed. They are the simplest to run and"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba5da102_d316c357","line":40,"updated":"2016-11-04 12:39:06.000000000","message":"Adding Kubernetes really make sense here, even in favor of docker. Kubernetes is not limited to only one node, Kubernetes can reschedule containers when underlaying node will fail and kubernetes is not only limited to docker but can run containers using rkt or even run container inside a VM (rkt+qemu).","commit_id":"6cd81f81b6b7502deaa453657e9f4eaaed43d6f6"},{"author":{"_account_id":7900,"name":"Tomasz Paszkowski","email":"ss7pro@gmail.com","username":"tpaszkowski"},"change_message_id":"aabb9f8f270f5631340b3effaa375e00ca203cae","unresolved":false,"context_lines":[{"line_number":37,"context_line":"  * Vendor-specific tool (e.g. Supermicro IPMIview or similar)"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Two different external display driver types will be implemented: ``native`` and"},{"line_number":40,"context_line":"``docker``."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"The ``native`` display drivers run directly on the ironic conductor and"},{"line_number":43,"context_line":"require all prerequisites to be installed. They are the simplest to run and"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba5da102_494a0629","line":40,"in_reply_to":"ba5da102_6ecd105d","updated":"2016-11-04 13:11:40.000000000","message":"Docker driver would be much more complex than kubernetes driver, as ironic-conductor will need to implement a lot of the stuff that kubernetes is doing. Multiple nodes in a round-robin fashion is bad idea. Let\u0027s imagine that one of your nodes is added later, or it hw spec is different than others. You need a proper scheduler here. Not to mention HA and docker node maintenance.","commit_id":"6cd81f81b6b7502deaa453657e9f4eaaed43d6f6"},{"author":{"_account_id":18062,"name":"Maxime Belanger","email":"mbelanger@internap.com","username":"mbelanger"},"change_message_id":"f1e1efb1a64cf99d2ceccc5f2b1f5bd8b95dc780","unresolved":false,"context_lines":[{"line_number":37,"context_line":"  * Vendor-specific tool (e.g. Supermicro IPMIview or similar)"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Two different external display driver types will be implemented: ``native`` and"},{"line_number":40,"context_line":"``docker``."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"The ``native`` display drivers run directly on the ironic conductor and"},{"line_number":43,"context_line":"require all prerequisites to be installed. They are the simplest to run and"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba5da102_6ecd105d","line":40,"in_reply_to":"ba5da102_d316c357","updated":"2016-11-04 12:51:55.000000000","message":"Yes that\u0027s what I said during the meeting. We could create a driver for swarm, rancher, kubernetes, name it. The goal here was to expose a simple docker driver dans manage multiple nodes in round-robin mode.","commit_id":"6cd81f81b6b7502deaa453657e9f4eaaed43d6f6"},{"author":{"_account_id":7900,"name":"Tomasz Paszkowski","email":"ss7pro@gmail.com","username":"tpaszkowski"},"change_message_id":"64fa6ec3a2ed016e6e072a3e524008563ac4f7fd","unresolved":false,"context_lines":[{"line_number":43,"context_line":"require all prerequisites to be installed. They are the simplest to run and"},{"line_number":44,"context_line":"they do not depend on any external infrastructure."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"The recommended choice is the ``docker`` type. This type will use a collection"},{"line_number":47,"context_line":"of Docker hosts on which to run Docker images. The Docker images will contain"},{"line_number":48,"context_line":"all the necessary tools and will run in isolation from each other."},{"line_number":49,"context_line":"Additionally, using a collection of Docker hosts means that the external"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba5da102_0e1f345c","line":46,"updated":"2016-11-04 12:39:06.000000000","message":"As mentioned earlier, pure docker is a poor choice when considering reliability and HA. We would need a separate logic inside a conductor for ensuring that container is alive and respawn it when docker host will die.","commit_id":"6cd81f81b6b7502deaa453657e9f4eaaed43d6f6"},{"author":{"_account_id":18062,"name":"Maxime Belanger","email":"mbelanger@internap.com","username":"mbelanger"},"change_message_id":"f1e1efb1a64cf99d2ceccc5f2b1f5bd8b95dc780","unresolved":false,"context_lines":[{"line_number":43,"context_line":"require all prerequisites to be installed. They are the simplest to run and"},{"line_number":44,"context_line":"they do not depend on any external infrastructure."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"The recommended choice is the ``docker`` type. This type will use a collection"},{"line_number":47,"context_line":"of Docker hosts on which to run Docker images. The Docker images will contain"},{"line_number":48,"context_line":"all the necessary tools and will run in isolation from each other."},{"line_number":49,"context_line":"Additionally, using a collection of Docker hosts means that the external"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba5da102_ceec5c95","line":46,"in_reply_to":"ba5da102_0e1f345c","updated":"2016-11-04 12:51:55.000000000","message":"You could use the restart always option when starting the container if it dies but yes no HA. We propose a simple docker driver as a first step.","commit_id":"6cd81f81b6b7502deaa453657e9f4eaaed43d6f6"},{"author":{"_account_id":7900,"name":"Tomasz Paszkowski","email":"ss7pro@gmail.com","username":"tpaszkowski"},"change_message_id":"aabb9f8f270f5631340b3effaa375e00ca203cae","unresolved":false,"context_lines":[{"line_number":43,"context_line":"require all prerequisites to be installed. They are the simplest to run and"},{"line_number":44,"context_line":"they do not depend on any external infrastructure."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"The recommended choice is the ``docker`` type. This type will use a collection"},{"line_number":47,"context_line":"of Docker hosts on which to run Docker images. The Docker images will contain"},{"line_number":48,"context_line":"all the necessary tools and will run in isolation from each other."},{"line_number":49,"context_line":"Additionally, using a collection of Docker hosts means that the external"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba5da102_49712677","line":46,"in_reply_to":"ba5da102_ceec5c95","updated":"2016-11-04 13:11:40.000000000","message":"Docker driver if done properly would be much more complex as Kubernetes one. Assuming you want a reliable, production ready solution.","commit_id":"6cd81f81b6b7502deaa453657e9f4eaaed43d6f6"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"867e6f50be915872fe90c93b1c2be89b29a020ff","unresolved":false,"context_lines":[{"line_number":53,"context_line":"External display drivers are provided with the necessary connection information"},{"line_number":54,"context_line":"(e.g. IPMI address, username, and password) when starting."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"The ``docker`` type would filter Docker hosts by least-utilization and"},{"line_number":57,"context_line":"pick the first available host to run the container. This could be made"},{"line_number":58,"context_line":"extendable to allow for different sorting algorithms."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa31d9ce_afa3644e","line":58,"range":{"start_line":56,"start_character":0,"end_line":58,"end_character":53},"updated":"2017-02-17 13:07:08.000000000","message":"This looks like reinvent the wheel (see Tomasz comments about Kubernetes). I don\u0027t think that it\u0027s bad for any cases, but IMO should not be part of ironic and hidden in user\u0027s custom plugin with generic internal API.","commit_id":"6cd81f81b6b7502deaa453657e9f4eaaed43d6f6"},{"author":{"_account_id":7900,"name":"Tomasz Paszkowski","email":"ss7pro@gmail.com","username":"tpaszkowski"},"change_message_id":"64fa6ec3a2ed016e6e072a3e524008563ac4f7fd","unresolved":false,"context_lines":[{"line_number":217,"context_line":"The external display driver infrastructure can scale horizontally as the"},{"line_number":218,"context_line":"external console driver manager will know the list of hosts and create the"},{"line_number":219,"context_line":"container on the least-utilized host. This could be replaced by alternative"},{"line_number":220,"context_line":"technologies like Docker Swarm, that provide the same Docker Host contract"},{"line_number":221,"context_line":"but manage multiple hosts. Building a highly available Docker Swarm cluster is"},{"line_number":222,"context_line":"a separate task, but would allow Ironic to only know one Docker URL and remove"},{"line_number":223,"context_line":"the additional \"guest clustering\" code."}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba5da102_2e13180f","line":220,"updated":"2016-11-04 12:39:06.000000000","message":"Again Kubernetes instead of Swam. In Kubernetes we are not only limited to docker and can take advantage of highest process separation mode (rkt+qemu), rkt is compatibile with Docker images. Last but not least, there\u0027re multiple projects for running OpenStack on Kubernetes (fuel-ccp, kolla-kubernetes, stackanetes) so in many cases Kubernetes would be already there. Introducing another system (ie: swam) can freak out our operators.","commit_id":"6cd81f81b6b7502deaa453657e9f4eaaed43d6f6"},{"author":{"_account_id":7900,"name":"Tomasz Paszkowski","email":"ss7pro@gmail.com","username":"tpaszkowski"},"change_message_id":"fc3a86baa4779c6e268b618b33accdb45dce00d1","unresolved":false,"context_lines":[{"line_number":217,"context_line":"The external display driver infrastructure can scale horizontally as the"},{"line_number":218,"context_line":"external console driver manager will know the list of hosts and create the"},{"line_number":219,"context_line":"container on the least-utilized host. This could be replaced by alternative"},{"line_number":220,"context_line":"technologies like Docker Swarm, that provide the same Docker Host contract"},{"line_number":221,"context_line":"but manage multiple hosts. Building a highly available Docker Swarm cluster is"},{"line_number":222,"context_line":"a separate task, but would allow Ironic to only know one Docker URL and remove"},{"line_number":223,"context_line":"the additional \"guest clustering\" code."}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba5da102_44f74b8c","line":220,"in_reply_to":"ba5da102_293f92d7","updated":"2016-11-04 13:45:26.000000000","message":"I agree that non native is important one. But implementing docker would mean that we would need a lot of container orchestration logic in conductor (including scheduler, HA, networking) and I don\u0027t know if ironic is right place for that.","commit_id":"6cd81f81b6b7502deaa453657e9f4eaaed43d6f6"},{"author":{"_account_id":18062,"name":"Maxime Belanger","email":"mbelanger@internap.com","username":"mbelanger"},"change_message_id":"f1e1efb1a64cf99d2ceccc5f2b1f5bd8b95dc780","unresolved":false,"context_lines":[{"line_number":217,"context_line":"The external display driver infrastructure can scale horizontally as the"},{"line_number":218,"context_line":"external console driver manager will know the list of hosts and create the"},{"line_number":219,"context_line":"container on the least-utilized host. This could be replaced by alternative"},{"line_number":220,"context_line":"technologies like Docker Swarm, that provide the same Docker Host contract"},{"line_number":221,"context_line":"but manage multiple hosts. Building a highly available Docker Swarm cluster is"},{"line_number":222,"context_line":"a separate task, but would allow Ironic to only know one Docker URL and remove"},{"line_number":223,"context_line":"the additional \"guest clustering\" code."}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba5da102_8ea98427","line":220,"in_reply_to":"ba5da102_2e13180f","updated":"2016-11-04 12:51:55.000000000","message":"Not everybody is deploying Openstack on Kubernetes (we dont and  it is fine), that is a operator choice and we should not impose that. As far as I know, if someone do not want and docker driver, he could write a VM driver instead, or something else...","commit_id":"6cd81f81b6b7502deaa453657e9f4eaaed43d6f6"},{"author":{"_account_id":7900,"name":"Tomasz Paszkowski","email":"ss7pro@gmail.com","username":"tpaszkowski"},"change_message_id":"aabb9f8f270f5631340b3effaa375e00ca203cae","unresolved":false,"context_lines":[{"line_number":217,"context_line":"The external display driver infrastructure can scale horizontally as the"},{"line_number":218,"context_line":"external console driver manager will know the list of hosts and create the"},{"line_number":219,"context_line":"container on the least-utilized host. This could be replaced by alternative"},{"line_number":220,"context_line":"technologies like Docker Swarm, that provide the same Docker Host contract"},{"line_number":221,"context_line":"but manage multiple hosts. Building a highly available Docker Swarm cluster is"},{"line_number":222,"context_line":"a separate task, but would allow Ironic to only know one Docker URL and remove"},{"line_number":223,"context_line":"the additional \"guest clustering\" code."}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba5da102_c9b8d6eb","line":220,"in_reply_to":"ba5da102_8ea98427","updated":"2016-11-04 13:11:40.000000000","message":"But you already imposing docker. I\u0027m just saying that from production perspective kubernetes driver is much better choice than docker until we want to implement most of the kubernetes logic for managing containers in ironic-conductor.","commit_id":"6cd81f81b6b7502deaa453657e9f4eaaed43d6f6"},{"author":{"_account_id":18062,"name":"Maxime Belanger","email":"mbelanger@internap.com","username":"mbelanger"},"change_message_id":"2f7e24f7ee4dc6dcf77a3fced7ab96f6724bb03d","unresolved":false,"context_lines":[{"line_number":217,"context_line":"The external display driver infrastructure can scale horizontally as the"},{"line_number":218,"context_line":"external console driver manager will know the list of hosts and create the"},{"line_number":219,"context_line":"container on the least-utilized host. This could be replaced by alternative"},{"line_number":220,"context_line":"technologies like Docker Swarm, that provide the same Docker Host contract"},{"line_number":221,"context_line":"but manage multiple hosts. Building a highly available Docker Swarm cluster is"},{"line_number":222,"context_line":"a separate task, but would allow Ironic to only know one Docker URL and remove"},{"line_number":223,"context_line":"the additional \"guest clustering\" code."}],"source_content_type":"text/x-rst","patch_set":4,"id":"ba5da102_293f92d7","line":220,"in_reply_to":"ba5da102_c9b8d6eb","updated":"2016-11-04 13:25:18.000000000","message":"We do not wand to impose docker, we propose docker as one of many possible solution because this is the one we chose for our current implementation. I agree that there is a lot less logic to do if you just forward the call to a proper container orchestrator. That said instead of implementing Kubernetes specific driver we could simple make a container orchestration drive that would be configurable. The goal for us is to propose  solution that is not native because we think that it is not a good design to run that kind of process in the conductor and it doesn\u0027t scale well either.","commit_id":"6cd81f81b6b7502deaa453657e9f4eaaed43d6f6"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"764cbdaf31a9c6cf06cde22ebc59b4014aa10219","unresolved":false,"context_lines":[{"line_number":90,"context_line":"~~~~~~~~~~~"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"* Add a property called ``external_display_driver_name`` for operators to"},{"line_number":93,"context_line":"  configure which display driver to be use on a node."},{"line_number":94,"context_line":""},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"driver_internal_info"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3fa0c359_61b2cc96","line":93,"updated":"2018-02-20 23:01:34.000000000","message":"would the possible values be \u0027native\u0027 and \u0027kubernetes\u0027?","commit_id":"7a563ddfee674395b2236417026ee9258c3aa4f0"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"8ca12c88b49eee8e02cf7aacf10413ebd4779e6a","unresolved":false,"context_lines":[{"line_number":90,"context_line":"~~~~~~~~~~~"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"* Add a property called ``external_display_driver_name`` for operators to"},{"line_number":93,"context_line":"  configure which display driver to be use on a node."},{"line_number":94,"context_line":""},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"driver_internal_info"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3fa0c359_6118821d","line":93,"in_reply_to":"3fa0c359_61b2cc96","updated":"2018-02-21 08:59:15.000000000","message":"Yes. I will update the spec to include these values.","commit_id":"7a563ddfee674395b2236417026ee9258c3aa4f0"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"764cbdaf31a9c6cf06cde22ebc59b4014aa10219","unresolved":false,"context_lines":[{"line_number":99,"context_line":"With the ``kubernetes`` external display driver type"},{"line_number":100,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"* ``kube_console_url`` to use when generating the get_console response."},{"line_number":103,"context_line":"  This is the URL where the pod serving the console will be exposed. This will"},{"line_number":104,"context_line":"  be extracted from the Kubernetes Service that exposes the console pod."},{"line_number":105,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3fa0c359_61772cd6","line":102,"updated":"2018-02-20 23:01:34.000000000","message":"what \u0027get_console\u0027 response? Do you mean ironic\u0027s [1]? If so, then this is going to be used for serial console?\n\n[1] https://developer.openstack.org/api-ref/baremetal/#get-console","commit_id":"7a563ddfee674395b2236417026ee9258c3aa4f0"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"8ca12c88b49eee8e02cf7aacf10413ebd4779e6a","unresolved":false,"context_lines":[{"line_number":99,"context_line":"With the ``kubernetes`` external display driver type"},{"line_number":100,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"* ``kube_console_url`` to use when generating the get_console response."},{"line_number":103,"context_line":"  This is the URL where the pod serving the console will be exposed. This will"},{"line_number":104,"context_line":"  be extracted from the Kubernetes Service that exposes the console pod."},{"line_number":105,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3fa0c359_41c2265b","line":102,"in_reply_to":"3fa0c359_61772cd6","updated":"2018-02-21 08:59:15.000000000","message":"Yes. This method will be generalized to support both the serial and graphical console.","commit_id":"7a563ddfee674395b2236417026ee9258c3aa4f0"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"764cbdaf31a9c6cf06cde22ebc59b4014aa10219","unresolved":false,"context_lines":[{"line_number":125,"context_line":"RPC API impact"},{"line_number":126,"context_line":"--------------"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"None."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Driver API impact"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3fa0c359_0152e83b","line":128,"updated":"2018-02-20 23:01:34.000000000","message":"I suspect we\u0027ll need a version bump for this.","commit_id":"7a563ddfee674395b2236417026ee9258c3aa4f0"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"8ca12c88b49eee8e02cf7aacf10413ebd4779e6a","unresolved":false,"context_lines":[{"line_number":125,"context_line":"RPC API impact"},{"line_number":126,"context_line":"--------------"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"None."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Driver API impact"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3fa0c359_c76726e9","line":128,"in_reply_to":"3fa0c359_0152e83b","updated":"2018-02-21 08:59:15.000000000","message":"I will update this in upcoming patches when I have the code ready. Is that ok?","commit_id":"7a563ddfee674395b2236417026ee9258c3aa4f0"},{"author":{"_account_id":19593,"name":"Anup Navare","email":"anup.d.navare@intel.com","username":"anup"},"change_message_id":"18c826ed93739357bfd7e1adb8017fe0925da59f","unresolved":false,"context_lines":[{"line_number":169,"context_line":""},{"line_number":170,"context_line":"* Privilege escalation vulnerabilities in console processes is not to be"},{"line_number":171,"context_line":"  excluded. Since the console processes will run inside Docker containers, the"},{"line_number":172,"context_line":"  scope is limited. A combinaison attack involving a Docker vulnerability along"},{"line_number":173,"context_line":"  with a vulnerability in a console process is not to be excluded. Such attack"},{"line_number":174,"context_line":"  would provide the attacker with access to (potentially) other users\u0027 console"},{"line_number":175,"context_line":"  data. Proper firewalling and segregation of networks is required for a"}],"source_content_type":"text/x-rst","patch_set":6,"id":"bf8cb3f7_b1f07c92","line":172,"range":{"start_line":172,"start_character":22,"end_line":172,"end_character":33},"updated":"2017-12-22 10:17:59.000000000","message":"is it combination?","commit_id":"7a563ddfee674395b2236417026ee9258c3aa4f0"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"8ca12c88b49eee8e02cf7aacf10413ebd4779e6a","unresolved":false,"context_lines":[{"line_number":169,"context_line":""},{"line_number":170,"context_line":"* Privilege escalation vulnerabilities in console processes is not to be"},{"line_number":171,"context_line":"  excluded. Since the console processes will run inside Docker containers, the"},{"line_number":172,"context_line":"  scope is limited. A combinaison attack involving a Docker vulnerability along"},{"line_number":173,"context_line":"  with a vulnerability in a console process is not to be excluded. Such attack"},{"line_number":174,"context_line":"  would provide the attacker with access to (potentially) other users\u0027 console"},{"line_number":175,"context_line":"  data. Proper firewalling and segregation of networks is required for a"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3fa0c359_61c6426b","line":172,"range":{"start_line":172,"start_character":22,"end_line":172,"end_character":33},"in_reply_to":"bf8cb3f7_b1f07c92","updated":"2018-02-21 08:59:15.000000000","message":"Yes a typo. Will change in next PS.","commit_id":"7a563ddfee674395b2236417026ee9258c3aa4f0"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"764cbdaf31a9c6cf06cde22ebc59b4014aa10219","unresolved":false,"context_lines":[{"line_number":179,"context_line":"  use TLS secured connection. This provides authentication and authorization"},{"line_number":180,"context_line":"  between the client (ironic-conductor) and the server (the Kubernetes master"},{"line_number":181,"context_line":"  node)."},{"line_number":182,"context_line":""},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"Other end user impact"},{"line_number":185,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3fa0c359_13d8fb78","line":182,"updated":"2018-02-20 23:01:34.000000000","message":"I\u0027d like an idea of how you were thinking of implementing these new display drivers.  A high-level -- what files/classes are you going to add, to support this?","commit_id":"7a563ddfee674395b2236417026ee9258c3aa4f0"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"8ca12c88b49eee8e02cf7aacf10413ebd4779e6a","unresolved":false,"context_lines":[{"line_number":179,"context_line":"  use TLS secured connection. This provides authentication and authorization"},{"line_number":180,"context_line":"  between the client (ironic-conductor) and the server (the Kubernetes master"},{"line_number":181,"context_line":"  node)."},{"line_number":182,"context_line":""},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"Other end user impact"},{"line_number":185,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3fa0c359_e7a102f9","line":182,"in_reply_to":"3fa0c359_13d8fb78","updated":"2018-02-21 08:59:15.000000000","message":"Yes, will update this in upcoming patches when I have the code ready. I am currently working on the VNC console patch which is the parent spec of this one.","commit_id":"7a563ddfee674395b2236417026ee9258c3aa4f0"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"764cbdaf31a9c6cf06cde22ebc59b4014aa10219","unresolved":false,"context_lines":[{"line_number":204,"context_line":""},{"line_number":205,"context_line":"Additional care must be taken to correctly monitor and scale out the"},{"line_number":206,"context_line":"ironic-conductors as load increases. Isolating the console workload to specific"},{"line_number":207,"context_line":"machines is not possible with this type."},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"Conductor take-over of consoles is not supported with the ``native`` type. This"},{"line_number":210,"context_line":"is the same limitation that currently exists for other in-tree console drivers."}],"source_content_type":"text/x-rst","patch_set":6,"id":"3fa0c359_93ac0bee","line":207,"updated":"2018-02-20 23:01:34.000000000","message":"what do you mean by \u0027machines\u0027 -- conductor nodes, or non-ironic nodes, or ?","commit_id":"7a563ddfee674395b2236417026ee9258c3aa4f0"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"8ca12c88b49eee8e02cf7aacf10413ebd4779e6a","unresolved":false,"context_lines":[{"line_number":204,"context_line":""},{"line_number":205,"context_line":"Additional care must be taken to correctly monitor and scale out the"},{"line_number":206,"context_line":"ironic-conductors as load increases. Isolating the console workload to specific"},{"line_number":207,"context_line":"machines is not possible with this type."},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"Conductor take-over of consoles is not supported with the ``native`` type. This"},{"line_number":210,"context_line":"is the same limitation that currently exists for other in-tree console drivers."}],"source_content_type":"text/x-rst","patch_set":6,"id":"3fa0c359_e1a7b2bb","line":207,"in_reply_to":"3fa0c359_93ac0bee","updated":"2018-02-21 08:59:15.000000000","message":"The conductor nodes.","commit_id":"7a563ddfee674395b2236417026ee9258c3aa4f0"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"764cbdaf31a9c6cf06cde22ebc59b4014aa10219","unresolved":false,"context_lines":[{"line_number":232,"context_line":"details, or stop the console, any conductor can take the call and"},{"line_number":233,"context_line":"contact the Kubbernetes cluster to access the pod."},{"line_number":234,"context_line":""},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"Performance Impact"},{"line_number":237,"context_line":"------------------"},{"line_number":238,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3fa0c359_13ef9b1e","line":235,"updated":"2018-02-20 23:01:34.000000000","message":"i don\u0027t know if it is mentioned elsewhere. If a conductor goes down, what happens with the consoles using this approach?","commit_id":"7a563ddfee674395b2236417026ee9258c3aa4f0"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"8ca12c88b49eee8e02cf7aacf10413ebd4779e6a","unresolved":false,"context_lines":[{"line_number":232,"context_line":"details, or stop the console, any conductor can take the call and"},{"line_number":233,"context_line":"contact the Kubbernetes cluster to access the pod."},{"line_number":234,"context_line":""},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"Performance Impact"},{"line_number":237,"context_line":"------------------"},{"line_number":238,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3fa0c359_61d722f0","line":235,"in_reply_to":"3fa0c359_13ef9b1e","updated":"2018-02-21 08:59:15.000000000","message":"It should still be accessible as this approach is making the graphical console independent of the conductor service.","commit_id":"7a563ddfee674395b2236417026ee9258c3aa4f0"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"764cbdaf31a9c6cf06cde22ebc59b4014aa10219","unresolved":false,"context_lines":[{"line_number":236,"context_line":"Performance Impact"},{"line_number":237,"context_line":"------------------"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"With the ``native`` external display driver type"},{"line_number":240,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"Running display drivers directly on the conductor can overwhelm the machine and"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3fa0c359_336097cf","line":239,"updated":"2018-02-20 23:01:34.000000000","message":"i\u0027m confused as to why \u0027native\u0027 is external. What does \u0027external\u0027 mean here? I was guessing it meant external to ironic-conductor...","commit_id":"7a563ddfee674395b2236417026ee9258c3aa4f0"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"8ca12c88b49eee8e02cf7aacf10413ebd4779e6a","unresolved":false,"context_lines":[{"line_number":236,"context_line":"Performance Impact"},{"line_number":237,"context_line":"------------------"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"With the ``native`` external display driver type"},{"line_number":240,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"Running display drivers directly on the conductor can overwhelm the machine and"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3fa0c359_47055610","line":239,"in_reply_to":"3fa0c359_336097cf","updated":"2018-02-21 08:59:15.000000000","message":"you\u0027re right here. ``native`` is not external. I will update the spec.\n``native`` means running all the tools on the conductor node itself whereas external such as ``kubernetes`` means running these tools inside containers on ironic or non-ironic nodes depending on the setup.","commit_id":"7a563ddfee674395b2236417026ee9258c3aa4f0"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"764cbdaf31a9c6cf06cde22ebc59b4014aa10219","unresolved":false,"context_lines":[{"line_number":256,"context_line":"Other deployer impact"},{"line_number":257,"context_line":"---------------------"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"* New option to choose between the ``native`` or ``kubernetes`` type."},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"* New option to configure which display drivers are enabled for use."},{"line_number":262,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3fa0c359_3347374f","line":259,"updated":"2018-02-20 23:01:34.000000000","message":"what\u0027s the name of the option? what group is it in?","commit_id":"7a563ddfee674395b2236417026ee9258c3aa4f0"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"8ca12c88b49eee8e02cf7aacf10413ebd4779e6a","unresolved":false,"context_lines":[{"line_number":256,"context_line":"Other deployer impact"},{"line_number":257,"context_line":"---------------------"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"* New option to choose between the ``native`` or ``kubernetes`` type."},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"* New option to configure which display drivers are enabled for use."},{"line_number":262,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3fa0c359_c7108651","line":259,"in_reply_to":"3fa0c359_3347374f","updated":"2018-02-21 08:59:15.000000000","message":"``console/display_driver``, I will update the spec.","commit_id":"7a563ddfee674395b2236417026ee9258c3aa4f0"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"764cbdaf31a9c6cf06cde22ebc59b4014aa10219","unresolved":false,"context_lines":[{"line_number":258,"context_line":""},{"line_number":259,"context_line":"* New option to choose between the ``native`` or ``kubernetes`` type."},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"* New option to configure which display drivers are enabled for use."},{"line_number":262,"context_line":""},{"line_number":263,"context_line":""},{"line_number":264,"context_line":"Developer impact"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3fa0c359_137c7b81","line":261,"updated":"2018-02-20 23:01:34.000000000","message":"ditto","commit_id":"7a563ddfee674395b2236417026ee9258c3aa4f0"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"8ca12c88b49eee8e02cf7aacf10413ebd4779e6a","unresolved":false,"context_lines":[{"line_number":258,"context_line":""},{"line_number":259,"context_line":"* New option to choose between the ``native`` or ``kubernetes`` type."},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"* New option to configure which display drivers are enabled for use."},{"line_number":262,"context_line":""},{"line_number":263,"context_line":""},{"line_number":264,"context_line":"Developer impact"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3fa0c359_07242eae","line":261,"in_reply_to":"3fa0c359_137c7b81","updated":"2018-02-21 08:59:15.000000000","message":"``console/enabled_display_drivers``, will update the spec.","commit_id":"7a563ddfee674395b2236417026ee9258c3aa4f0"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"764cbdaf31a9c6cf06cde22ebc59b4014aa10219","unresolved":false,"context_lines":[{"line_number":282,"context_line":"Work Items"},{"line_number":283,"context_line":"----------"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"* Introduce ``ipmitool.ExternalGenericIPMIVNCConsole``, a new"},{"line_number":286,"context_line":"  ``ConsoleInterface`` and the ``native`` type."},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"* Introduce the ``kubernetes`` display driver."}],"source_content_type":"text/x-rst","patch_set":6,"id":"3fa0c359_3332d7f3","line":285,"updated":"2018-02-20 23:01:34.000000000","message":"is this what you mean by \u0027native\u0027? If so, why is it called \u0027External\u0027? Isn\u0027t it run on the conductor?","commit_id":"7a563ddfee674395b2236417026ee9258c3aa4f0"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"8ca12c88b49eee8e02cf7aacf10413ebd4779e6a","unresolved":false,"context_lines":[{"line_number":282,"context_line":"Work Items"},{"line_number":283,"context_line":"----------"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"* Introduce ``ipmitool.ExternalGenericIPMIVNCConsole``, a new"},{"line_number":286,"context_line":"  ``ConsoleInterface`` and the ``native`` type."},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"* Introduce the ``kubernetes`` display driver."}],"source_content_type":"text/x-rst","patch_set":6,"id":"3fa0c359_2777eaa2","line":285,"in_reply_to":"3fa0c359_3332d7f3","updated":"2018-02-21 08:59:15.000000000","message":"This will be the abstract class for all VNC consoles. I agree that external is wrong here because the native driver will not be external. It will be run on the conductor node.","commit_id":"7a563ddfee674395b2236417026ee9258c3aa4f0"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"764cbdaf31a9c6cf06cde22ebc59b4014aa10219","unresolved":false,"context_lines":[{"line_number":293,"context_line":"Dependencies"},{"line_number":294,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"* This spec requires the \u0027VNC Graphical console\u0027 spec."},{"line_number":297,"context_line":""},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"Testing"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3fa0c359_610e4c3c","line":296,"updated":"2018-02-20 23:01:34.000000000","message":"please provide a link. Also, maybe i missed it, but it isn\u0027t clear in the spec, how they are both connected.","commit_id":"7a563ddfee674395b2236417026ee9258c3aa4f0"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"8ca12c88b49eee8e02cf7aacf10413ebd4779e6a","unresolved":false,"context_lines":[{"line_number":293,"context_line":"Dependencies"},{"line_number":294,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"* This spec requires the \u0027VNC Graphical console\u0027 spec."},{"line_number":297,"context_line":""},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"Testing"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3fa0c359_e76ca2d1","line":296,"in_reply_to":"3fa0c359_610e4c3c","updated":"2018-02-21 08:59:15.000000000","message":"I will update the spec to include this detail.","commit_id":"7a563ddfee674395b2236417026ee9258c3aa4f0"}]}
