<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 12 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:SimSun;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:SimSun;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:"\@SimSun";
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";
        color:black;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";
        color:black;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:Consolas;
        color:black;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body bgcolor="white" lang="EN-CA" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Hi Ryan,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">I think pushing python k8sclient out of magnum tree (option 3) is the decision, which was made in Vancouver Summit (if I remembered correctly). It definitely
 helps for solving the k8s versioning problems.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Best regards,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Hongbin<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span lang="EN-US" style="font-size:10.0pt;font-family:"Tahoma","sans-serif";color:windowtext">From:</span></b><span lang="EN-US" style="font-size:10.0pt;font-family:"Tahoma","sans-serif";color:windowtext"> Ryan Rossiter [mailto:rlrossit@linux.vnet.ibm.com]
<br>
<b>Sent:</b> September-14-15 6:49 PM<br>
<b>To:</b> openstack-dev@lists.openstack.org<br>
<b>Subject:</b> [openstack-dev] [magnum] Maintaining cluster API in upgrades<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="font-size:10.0pt">I have some food for thought with regards to upgrades that was provoked by some incorrect usage of Magnum which led me to finding [1].<br>
<br>
Let's say we're running a cloud with Liberty Magnum, which works with Kubernetes API v1. During the Mitaka release, Kubernetes released v2, so now Magnum conductor in Mitaka works with Kubernetes v2 API. What would happen if I upgrade from L to M with Magnum?
 My existing Magnum/k8s stuff will be on v1, so having Mitaka conductor attempt to interact with that stuff will cause it to blow up right? The k8s API calls will fail because the communicating components are using differing versions of the API (assuming there
 are backwards incompatibilities).<br>
<br>
I'm running through some suggestions in my head in order to handle this:<br>
<br>
1. Have conductor maintain all supported older versions of k8s, and do API discovery to figure out which version of the API to use<br>
  - This one sounds like a total headache from a code management standpoint<br>
<br>
2. Do some sort of heat stack update to upgrade all existing clusters to use the current version of the API<br>
  - In my head, this would work kind of like a database migration, but it seems like it would be a lot harder<br>
<br>
3. Maintain cluster clients outside of the Magnum tree<br>
  - This would make maintaining the client compatibilities a lot easier<br>
  - Would help eliminate the cruft of merging 48k lines for a swagger generated client [2]<br>
  - Having the client outside of tree would allow for a simple pip install<br>
  - Not sure if this *actually* solves the problem above<br>
<br>
This isn't meant to be a "we need to change this" topic, it's just meant to be more of a "what if" discussion. I am also up for suggestions other than the 3 above.<br>
<br>
[1] <a href="http://lists.openstack.org/pipermail/openstack-dev/2015-September/074448.html">
http://lists.openstack.org/pipermail/openstack-dev/2015-September/074448.html</a><br>
[2] <a href="https://review.openstack.org/#/c/217427/">https://review.openstack.org/#/c/217427/</a><br>
<br>
</span><o:p></o:p></p>
<pre>-- <o:p></o:p></pre>
<pre>Thanks,<o:p></o:p></pre>
<pre><o:p> </o:p></pre>
<pre>Ryan Rossiter (rlrossit)<o:p></o:p></pre>
</div>
</body>
</html>