<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">Hi all,<div><br></div><div>Here is a summary of notes of the whiteboard discussions I took during the F2F workshop which may help future conversations.</div><div><br></div><div>HTH</div><div>—Krishna</div><div><br></div><div><br></div><div><br></div><div><br></div><div>1) Around Solum source/binary workflow:</div><div><br></div><div><img apple-inline="yes" id="3B14CDCB-1CE6-4131-BCD6-BC25A25E0677" height="254" width="507" apple-width="yes" apple-height="yes" src="cid:942C290F-2101-4D74-98B1-C3E622F70A9C"></div><div><br></div><div>We had discussed 3 workflows:</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>a) A simple workflow triggered by a POST to the Solum REST API. </div><div><span class="Apple-tab-span" style="white-space:pre">                </span>- Solum already knows the git repo URL to pull from.</div><div><span class="Apple-tab-span" style="white-space:pre">            </span>- Solum pulls a copy of the code and passes it onto the badger (lang-pack) build process</div><div><span class="Apple-tab-span" style="white-space:pre">             </span>** This is what will be available in milestone-1</div><div><span class="Apple-tab-span" style="white-space:pre">     </span>b) Solum managed git repository</div><div><span class="Apple-tab-span" style="white-space:pre">              </span>- Code is pushed to Solum git repo</div><div><span class="Apple-tab-span" style="white-space:pre">           </span>- A git hook will code to be archived or cloned to a temporary location and passed onto build flow.</div><div><span class="Apple-tab-span" style="white-space:pre">  </span>c) Externally managed git and CI flow</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>- Code is managed by external git & CI</div><div><span class="Apple-tab-span" style="white-space:pre">           </span>- Binaries are directly provided to badger (lang-pack) build workflow</div><div><br></div><div>2) About a typical Solum workflow:</div><div><span class="Apple-tab-span" style="white-space:pre">      </span>Example below talks about a python-2.7 hello-world application at /</div><div><span class="Apple-tab-span" style="white-space:pre">  </span>1) user creates a application/plan, get [PLAN_ID]</div><div><span class="Apple-tab-span" style="white-space:pre">            </span>A: <a href="git://….helloworld.git">git://….helloworld.git</a></div><div><span class="Apple-tab-span" style="white-space:pre">         </span>R: <a href="glance://….python-2.7-badger">glance://….python-2.7-badger</a> (has a build.sh)</div><div><span class="Apple-tab-span" style="white-space:pre">    </span>2) Solum spins up a builder container based on [R]</div><div><span class="Apple-tab-span" style="white-space:pre">   </span>3) Solum git archives [A] into builder</div><div><span class="Apple-tab-span" style="white-space:pre">       </span>4) Solum executes build.sh in builder</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>5) Build.sh does “pip install [3]”</div><div><span class="Apple-tab-span" style="white-space:pre">           </span>Badger defined runtime entry point</div><div><span class="Apple-tab-span" style="white-space:pre">   </span>6) Solum invokes “docker commit” if [5] completes succesfully, gets [DU_ID]</div><div><br></div><div>3) Solum build workflow (other possible cases):</div><div><span class="Apple-tab-span" style="white-space:pre">   </span><img apple-inline="yes" id="D49E2462-6285-44B9-827F-B9E5FCD018FF" height="264" width="362" apple-width="yes" apple-height="yes" src="cid:5F1EEF92-8B38-46A3-BC09-C68AAB95F0BB"></div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>- We discussed possibility of having a CI system that is triggered when source/binaries are available from git-workflow</div><div><span class="Apple-tab-span" style="white-space:pre">              </span>- CI would take over from Solum and trigger build/test within build container</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>- If tests pass, CI would trigger creation of DU</div><div><span class="Apple-tab-span" style="white-space:pre">     </span>- We also discussed possibility of skipping DU build process and have it build outside Solum.</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>- User can directly provide DU for Solum to run</div><div><br></div><div>4) Possible concepts that need to be in a Application and Badger/DU manifest:</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>Application manifest:</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>- port <—> DU mapping</div><div><span class="Apple-tab-span" style="white-space:pre">          </span>- Scaling limits</div><div><span class="Apple-tab-span" style="white-space:pre">             </span>- Environment variables</div><div><span class="Apple-tab-span" style="white-space:pre">              </span>- Services</div><div><span class="Apple-tab-span" style="white-space:pre">           </span>- Badgers (0..n)</div><div><span class="Apple-tab-span" style="white-space:pre">                     </span>- URL</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>- Scaling limits</div><div><span class="Apple-tab-span" style="white-space:pre">                     </span>- Flavor</div><div><span class="Apple-tab-span" style="white-space:pre">                     </span>- Security flavor</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">   </span>Badger (lang-pack) manifest (pre-build):</div><div><span class="Apple-tab-span" style="white-space:pre">             </span>- packaged software name/version (searchable)</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>- dependencies on other badgers</div><div><span class="Apple-tab-span" style="white-space:pre">              </span>- shell environment</div><div><span class="Apple-tab-span" style="white-space:pre">          </span>- build command</div><div><span class="Apple-tab-span" style="white-space:pre">      </span></div><div><span class="Apple-tab-span" style="white-space:pre">     </span>DU manifest (post-build)</div><div><span class="Apple-tab-span" style="white-space:pre">             </span>- runtime command</div><div><span class="Apple-tab-span" style="white-space:pre">            </span>- Environment</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>- heat management snippet</div><div><span class="Apple-tab-span" style="white-space:pre">            </span>- scaling capabilities</div><div><span class="Apple-tab-span" style="white-space:pre">               </span>- ports and protocol endpoints</div></body></html>