<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>New knowledge base articles in For Developers</title>
    <link>https://community.cisco.com/t5/for-developers/ct-p/4409j-developer-home</link>
    <description>New knowledge base articles in For Developers</description>
    <pubDate>Fri, 04 Jun 2021 11:29:27 GMT</pubDate>
    <dc:creator>4409j-developer-home</dc:creator>
    <dc:date>2021-06-04T11:29:27Z</dc:date>
    <item>
      <title>Data Center Knowledge Base</title>
      <link>https://community.cisco.com/t5/data-center-documents/data-center-knowledge-base/ta-p/4407714</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;H1&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-left" image-alt="data-center-icon2.png" style="width: 200px;"&gt;&lt;img src="https://community.cisco.com/t5/image/serverpage/image-id/121125i514549E4EC574B92/image-size/small?v=v2&amp;amp;px=200" role="button" title="data-center-icon2.png" alt="data-center-icon2.png" /&gt;&lt;/span&gt;&lt;STRONG&gt;Data Center Knowledge Base&lt;/STRONG&gt;&lt;/H1&gt;
&lt;P&gt;For one-on-one help with these products, you can open a ticket at&amp;nbsp;&lt;A href="https://developer.cisco.com/site/support/" target="_blank" rel="noopener"&gt;https://developer.cisco.com/site/support/&lt;/A&gt;. For other products, please contact Cisco TAC at &lt;A href="https://www.cisco.com/c/en/us/support/index.html" target="_blank" rel="noopener"&gt;https://www.cisco.com/c/en/us/support/index.html&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;&lt;U&gt;&lt;STRONG&gt;Data Center&lt;/STRONG&gt;&lt;/U&gt;&lt;/H2&gt;
&lt;H3&gt;&amp;nbsp;&lt;/H3&gt;
&lt;H3&gt;&lt;STRONG&gt;&lt;U&gt;Start&lt;/U&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/site/data-center/" target="_blank" rel="noopener"&gt;Data Center Dev Center&lt;/A&gt; - on Cisco DevNet&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/ecosystem/datacenter/" target="_blank" rel="noopener"&gt;Cisco Data Center&lt;/A&gt; - Cisco Ecosystem Exchange&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/nexusapi/" target="_blank" rel="noopener"&gt;Data Center Automation -&amp;nbsp;&lt;/A&gt;&lt;SPAN&gt;&lt;A href="https://developer.cisco.com/nexusapi/" target="_blank" rel="noopener"&gt;Infrastructure as Code in the Modern Data Center&lt;/A&gt; - on DevNet&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/codeexchange/explore/#tech=Data%20Center" target="_blank" rel="noopener"&gt;Data Center&lt;/A&gt; - DevNet Code Exchange&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/network-automation/listing/#domain=Data%20Center&amp;amp;page=1" target="_blank" rel="noopener"&gt;Data Center&lt;/A&gt; - DevNet Automation Exchange&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;&amp;nbsp;&lt;/H3&gt;
&lt;H3&gt;&lt;STRONG&gt;&lt;U&gt;Learn&lt;/U&gt;&lt;/STRONG&gt;&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://blogs.cisco.com/developer/devnet-day-datacenter-networking" target="_blank" rel="noopener"&gt;Data Center Networking&lt;/A&gt; - Cisco Blogs&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/certification/devnet-dc-auto/" target="_blank" rel="noopener"&gt;Cisco Certified DevNet Specialist - Data Center Automation and Programmability&lt;/A&gt; - Certification&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/certification/exam-topic-dc-auto/" target="_blank" rel="noopener"&gt;Automating and Programming Cisco Data Center Solutions&lt;/A&gt; - Exam Overview and Topics&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://community.cisco.com/t5/developer-data-center/ct-p/j-developer-data-center" target="_blank" rel="noopener"&gt;Developer Data Center&lt;/A&gt; - Cisco Community forums&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://community.cisco.com/t5/data-center/ct-p/4436-data-center" target="_blank" rel="noopener"&gt;Data Center&lt;/A&gt; - Cisco Community forums&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.cisco.com/c/en/us/support/cloud-systems-management/prime-data-center-network-manager/series.html" target="_blank" rel="noopener"&gt;Cisco Data Center Network Manager&lt;/A&gt; - Releases / Documentation&lt;/LI&gt;
&lt;/UL&gt;
&lt;/DIV&gt;
&lt;DIV class="lia-message-template-content-zone"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="lia-message-template-content-zone"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Tue, 01 Jun 2021 18:06:50 GMT</pubDate>
      <guid>https://community.cisco.com/t5/data-center-documents/data-center-knowledge-base/ta-p/4407714</guid>
      <dc:creator>alexstev</dc:creator>
      <dc:date>2021-06-01T18:06:50Z</dc:date>
    </item>
    <item>
      <title>Collaboration Management Knowledge Base</title>
      <link>https://community.cisco.com/t5/collaboration-documents/collaboration-management-knowledge-base/ta-p/4304426</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;H1&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-left" image-alt="Collaboration_fc_512.png" style="width: 103px;"&gt;&lt;img src="https://community.cisco.com/t5/image/serverpage/image-id/105950iD13C430C17EADB28/image-dimensions/103x103?v=v2" width="103" height="103" role="button" title="Collaboration_fc_512.png" alt="Collaboration_fc_512.png" /&gt;&lt;/span&gt;&lt;STRONG&gt;Collaboration Management Knowledge Base&lt;/STRONG&gt;&lt;/H1&gt;
&lt;P&gt;For one-on-one help with these products, you can open a ticket at&amp;nbsp;&lt;A href="https://developer.cisco.com/site/support/" target="_blank" rel="noopener"&gt;https://developer.cisco.com/site/support/&lt;/A&gt;. For other products, please contact Cisco TAC at &lt;A href="https://www.cisco.com/c/en/us/support/index.html" target="_blank" rel="noopener"&gt;https://www.cisco.com/c/en/us/support/index.html&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;&lt;U&gt;&lt;STRONG&gt;Administrative XML (AXL)&lt;/STRONG&gt;&lt;/U&gt;&lt;/H2&gt;
&lt;H3&gt;&amp;nbsp;&lt;/H3&gt;
&lt;H3&gt;&lt;STRONG&gt;&lt;U&gt;Start&lt;/U&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/site/axl/" target="_blank" rel="noopener"&gt;AXL on DevNet&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/docs/axl/" target="_blank" rel="noopener"&gt;AXL Docs&lt;/A&gt; - DevNet&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;&amp;nbsp;&lt;/H3&gt;
&lt;H3&gt;&lt;STRONG&gt;&lt;U&gt;Learn&lt;/U&gt;&lt;/STRONG&gt;&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://d1nmyq4gcgsfi5.cloudfront.net/media/axl-cookbook/overview.html" target="_blank" rel="noopener"&gt;Administrative XML (AXL) Developer Cookbook&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://community.cisco.com/t5/custom/page/page-id/customFilteredByMultiLabel?board=j-disc-dev-collab-mgmt&amp;amp;labels=axl" target="_blank" rel="noopener"&gt;AXL Forum&lt;/A&gt; - Cisco Community forums&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://devnetsupport.cisco.com/hc/en-us/sections/115002853368-Administrative-XML-AXL-?page=1" target="_blank" rel="noopener"&gt;Administrative XML (AXL)&lt;/A&gt; - DevNet Developer Support&lt;/LI&gt;
&lt;/UL&gt;
&lt;/DIV&gt;
&lt;DIV class="lia-message-template-content-zone"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="lia-message-template-content-zone"&gt;&lt;BR /&gt;
&lt;H2&gt;&lt;U&gt;&lt;STRONG&gt;Cisco Emergency Responder (CER)&lt;/STRONG&gt;&lt;/U&gt;&lt;/H2&gt;
&lt;H3&gt;&amp;nbsp;&lt;/H3&gt;
&lt;H3&gt;&lt;STRONG&gt;&lt;U&gt;Start&lt;/U&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/site/cer/" target="_blank" rel="noopener"&gt;CER Get Started&lt;/A&gt; - Cisco DevNet&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.cisco.com/c/en/us/products/unified-communications/emergency-responder/index.html" target="_blank" rel="noopener"&gt;CER Overview&lt;/A&gt; - DevNet&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;&amp;nbsp;&lt;/H3&gt;
&lt;H3&gt;&lt;STRONG&gt;&lt;U&gt;Learn&lt;/U&gt;&lt;/STRONG&gt;&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/site/cer/documents/api-reference/" target="_blank" rel="noopener"&gt;Cisco Emergency Responder (CER) API Documentation&lt;/A&gt; - Cisco DevNet&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.cisco.com/c/en/us/products/unified-communications/emergency-responder/datasheet-listing.html" target="_blank" rel="noopener"&gt;CER Datasheets&lt;/A&gt; - DevNet&lt;/LI&gt;
&lt;/UL&gt;
&lt;/DIV&gt;
&lt;DIV class="lia-message-template-content-zone"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="lia-message-template-content-zone"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="lia-message-template-content-zone"&gt;&lt;BR /&gt;
&lt;H2&gt;&lt;U&gt;&lt;STRONG&gt;IOS XE VoIP&lt;/STRONG&gt;&lt;/U&gt;&lt;/H2&gt;
&lt;H3&gt;&amp;nbsp;&lt;/H3&gt;
&lt;H3&gt;&lt;STRONG&gt;&lt;U&gt;Start&lt;/U&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/site/ios-xe/" target="_blank" rel="noopener"&gt;IOS XE&lt;/A&gt; - Cisco DevNet&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/docs/ios-xe-voip/#!sandbox" target="_blank" rel="noopener"&gt;Cisco IOS XE Sandboxes&lt;/A&gt; - DevNet&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;&amp;nbsp;&lt;/H3&gt;
&lt;H3&gt;&lt;STRONG&gt;&lt;U&gt;Learn&lt;/U&gt;&lt;/STRONG&gt;&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/docs/ios-xe-voip/" target="_blank" rel="noopener"&gt;Programmability Guide for Cisco IOS XE Unified Communications VoIP Products&lt;/A&gt; - Cisco DevNet&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/learning/tracks/iosxe-programmability" target="_blank" rel="noopener"&gt;IOS XE Programmability&lt;/A&gt; - DevNet Learning Labs&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;&amp;nbsp;&lt;/H2&gt;
&lt;H2&gt;&amp;nbsp;&lt;/H2&gt;
&lt;H2&gt;&lt;BR /&gt;&lt;U&gt;&lt;STRONG&gt;Platform Administrative Web Services (PAWS)&lt;/STRONG&gt;&lt;/U&gt;&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;&lt;STRONG&gt;&lt;U&gt;Start&lt;/U&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/site/paws/discover/get-started/" target="_blank" rel="noopener"&gt;PAWS - Get Started&lt;/A&gt; - Cisco DevNet&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/site/paws/" target="_blank" rel="noopener"&gt;PAWS Home&lt;/A&gt; - DevNet&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/site/paws/overview/" target="_blank" rel="noopener"&gt;PAWS Overview&lt;/A&gt; - DevNet&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;&amp;nbsp;&lt;/H3&gt;
&lt;H3&gt;&lt;STRONG&gt;&lt;U&gt;Learn&lt;/U&gt;&lt;/STRONG&gt;&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/site/paws/develop-and-test/api-reference/" target="_blank" rel="noopener"&gt;PAWS API Reference&lt;/A&gt; - Cisco DevNet&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/site/paws/learn/build-a-development-lab/" target="_blank" rel="noopener"&gt;Build a Development Lab for PAWS&lt;/A&gt; - DevNet&lt;/LI&gt;
&lt;/UL&gt;
&lt;/DIV&gt;
&lt;DIV class="lia-message-template-content-zone"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="lia-message-template-content-zone"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="lia-message-template-content-zone"&gt;&lt;BR /&gt;
&lt;H2&gt;&lt;U&gt;&lt;STRONG&gt;UC Manager Serviceability (SXML)&lt;/STRONG&gt;&lt;/U&gt;&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;&lt;STRONG&gt;&lt;U&gt;Start&lt;/U&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/site/sxml/discover/overview/" target="_blank" rel="noopener"&gt;What is Unified CM Serviceability?&lt;/A&gt; - Cisco DevNet&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/site/sxml/" target="_blank" rel="noopener"&gt;SXML&lt;/A&gt; - DevNet&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;&amp;nbsp;&lt;/H3&gt;
&lt;H3&gt;&lt;STRONG&gt;&lt;U&gt;Learn&lt;/U&gt;&lt;/STRONG&gt;&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/site/sxml/learn/getting-started/" target="_blank" rel="noopener"&gt;SXML - Getting Started&lt;/A&gt; - Cisco DevNet&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://community.cisco.com/t5/management/bd-p/j-disc-dev-collab-mgmt" target="_blank" rel="noopener"&gt;Developer Collaboration&lt;/A&gt; (including SXML) - Cisco Community forums&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://UC%20Manager Serviceability (SXML)" target="_blank" rel="noopener"&gt;UC Manager Serviceability (SXML) discussions&lt;/A&gt; - DevNet Developer Support&lt;/LI&gt;
&lt;/UL&gt;
&lt;/DIV&gt;
&lt;DIV class="lia-message-template-content-zone"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="lia-message-template-content-zone"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="lia-message-template-content-zone"&gt;&lt;BR /&gt;
&lt;H2&gt;&lt;U&gt;&lt;STRONG&gt;User Data Services (UDS)&lt;/STRONG&gt;&lt;/U&gt;&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;&lt;STRONG&gt;&lt;U&gt;Start&lt;/U&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/site/user-data-services/discover/getting-started/" target="_blank" rel="noopener"&gt;UDS - Get Started&lt;/A&gt; - Cisco DevNet&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/site/user-data-services/discover/what-is-uds/" target="_blank" rel="noopener"&gt;What is UDS?&lt;/A&gt; - DevNet&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/site/user-data-services/discover/why-use-uds/" target="_blank" rel="noopener"&gt;Why Use UDS?&lt;/A&gt; - DevNet&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/site/user-data-services/discover/how-does-uds-work/" target="_blank" rel="noopener"&gt;How Does UDS Work?&lt;/A&gt; - DevNet&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;&amp;nbsp;&lt;/H3&gt;
&lt;H3&gt;&lt;STRONG&gt;&lt;U&gt;Learn&lt;/U&gt;&lt;/STRONG&gt;&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/site/user-data-services/learn/how-to/" target="_blank" rel="noopener"&gt;UDS - How To&lt;/A&gt; - Cisco DevNet&lt;/LI&gt;
&lt;LI&gt;Download the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://developer.cisco.com/site/user-data-services/downloads/schemas/" target="_blank" rel="noopener"&gt;XML Schemas&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Run the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://developer.cisco.com/site/user-data-services/learn/sample-app/" target="_self"&gt;Sample App&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Review the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://developer.cisco.com/site/user-data-services/learn/how-to/" target="_self"&gt;How to Articles&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;- tips and tricks for working with UDS&lt;/LI&gt;
&lt;LI&gt;Learn&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://developer.cisco.com/site/user-data-services/discover/build-a-development-lab/" target="_self"&gt;How to Build a Development Lab&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;for UDS&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://community.cisco.com/t5/call-control/bd-p/j-disc-dev-collab-call-control" target="_blank" rel="noopener"&gt;UDS Developer Forums&lt;/A&gt; - Cisco&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/site/user-data-services/learn/how-to/explore-uds-apis/" target="_self"&gt;Explore the UDS APIs&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;with a browser plug-in&lt;/LI&gt;
&lt;LI&gt;Review the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://developer.cisco.com/site/user-data-services/develop-and-test/api-reference/" target="_self"&gt;API Reference Guide&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;- information about UDS including authentication, detailed descriptions, and example requests and responses.&lt;/LI&gt;
&lt;LI&gt;Browse the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://developer.cisco.com/site/user-data-services/documents/developer-guide/" target="_self"&gt;Developer Guide&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;- Comprehensive documentation including troubleshooting information&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://solutionpartner.cisco.com/web/uds-developer/blogroll" target="_blank" rel="noopener"&gt;Subscribe&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;to the UDS blog for updates&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Mon, 24 May 2021 14:34:26 GMT</pubDate>
      <guid>https://community.cisco.com/t5/collaboration-documents/collaboration-management-knowledge-base/ta-p/4304426</guid>
      <dc:creator>Paul Zimmerman</dc:creator>
      <dc:date>2021-05-24T14:34:26Z</dc:date>
    </item>
    <item>
      <title>Networking Automation and Analytics Knowledge Base</title>
      <link>https://community.cisco.com/t5/networking-documents/networking-automation-and-analytics-knowledge-base/ta-p/4393538</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;H2 class="lia-message-template-content-zone"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-left" image-alt="net-auto-analytic.png" style="width: 200px;"&gt;&lt;img src="https://community.cisco.com/t5/image/serverpage/image-id/118954i6381CBFC19C63F3E/image-size/small?v=v2&amp;amp;px=200" role="button" title="net-auto-analytic.png" alt="net-auto-analytic.png" /&gt;&lt;/span&gt;&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2 class="lia-message-template-content-zone"&gt;&lt;STRONG&gt;&lt;FONT size="6"&gt;Networking Automation and Analytics Knowledge Base&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/H2&gt;
&lt;P&gt;For one-on-one help with these products, you can open a ticket at&amp;nbsp;&lt;A href="https://developer.cisco.com/site/support/" target="_blank" rel="noopener"&gt;https://developer.cisco.com/site/support/&lt;/A&gt;. For other products, please contact Cisco TAC at&amp;nbsp;&lt;A href="https://www.cisco.com/c/en/us/support/index.html" target="_blank" rel="noopener"&gt;https://www.cisco.com/c/en/us/support/index.html&lt;/A&gt;&lt;/P&gt;
&lt;H4&gt;&amp;nbsp;&lt;/H4&gt;
&lt;BR /&gt;
&lt;H4&gt;&lt;FONT size="6"&gt;&lt;STRONG&gt;Networking Automation and Analytics&amp;nbsp;&lt;/STRONG&gt;-&amp;nbsp;&lt;FONT size="4"&gt;Make Network Automation simple with the community.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/H4&gt;
&lt;H2 style="font-family: CiscoSans, 'Helvetica Neue', Helvetica, Arial, sans-serif; color: #58585b;"&gt;&amp;nbsp;&lt;/H2&gt;
&lt;H2 style="font-family: CiscoSans, 'Helvetica Neue', Helvetica, Arial, sans-serif; color: #58585b;"&gt;&lt;U&gt;&lt;STRONG&gt;&lt;SPAN&gt;Start&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/U&gt;&amp;nbsp;&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/learning/modules/automating-webex-teams-appdev" target="_blank" rel="noopener"&gt;Automating Webex Teams (Python)&lt;/A&gt; -&amp;nbsp;Leverage your favorite automation tools to incorporate Webex Teams REST APIs.&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/learning/modules/nso-basics" target="_blank" rel="noopener"&gt;NSO Basics for Network Automation&lt;/A&gt; -&amp;nbsp;Learn network programmability and Next Generation Orchestration using Cisco’s Network Service Orchestrator through theory and practice. Easily automate any networking vendor’s infrastructure at scale and see how NSO provides an incomparable API into both legacy CLI devices and RESTCONF/YANG model devices.&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/learning/modules/iosxr-cli-automation" target="_blank" rel="noopener"&gt;IOS-XR CLI Automation&lt;/A&gt; -&amp;nbsp;Cisco IOS-XR offers a comprehensive portfolio of APIs at every layer of the network stack, allowing users to leverage automated techniques to provision and manage the lifecycle of a network device.&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/learning/modules/cisco_sd-wan_with_ansible" target="_blank" rel="noopener"&gt;Cisco SD-WAN with Ansible&lt;/A&gt; - Learn the basics of&amp;nbsp;SD-WAN automation with Ansible.&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/learning/modules/napalm_automation" target="_blank" rel="noopener"&gt;Using NAPALM for Network Automation&lt;/A&gt; -&amp;nbsp;Accomplish network automation and device management with NAPALM.&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/startnow/#networking-101-v0" target="_blank" rel="noopener"&gt;Networking 101&lt;/A&gt; - Learn coding basics for Networking.&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/startnow/#en-networking-v0" target="_blank" rel="noopener"&gt;EN Networking&lt;/A&gt; - Build Apps with Cisco DNA Center Platform Solutions.&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/startnow/#dc-networking-v0" target="_blank" rel="noopener"&gt;DC Networking&lt;/A&gt; -&amp;nbsp;Explore Application Centric Infrastructure (ACI) programmability options and explore data center APIs.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2 style="font-family: CiscoSans, 'Helvetica Neue', Helvetica, Arial, sans-serif; color: #58585b;"&gt;&amp;nbsp;&lt;/H2&gt;
&lt;H2 style="font-family: CiscoSans, 'Helvetica Neue', Helvetica, Arial, sans-serif; color: #58585b;"&gt;&lt;U&gt;&lt;STRONG&gt;&lt;SPAN&gt;Learn&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/U&gt;&amp;nbsp;&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/learning/labs/tags/Automation/page/1" target="_blank" rel="noopener"&gt;Cisco DevNet Learning Labs (Automation)&lt;/A&gt; - All DevNet Learning Labs tagged with the keyword 'Automation'&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/learning/labs/tags/Analytics/page/1" target="_blank" rel="noopener"&gt;Cisco DevNet Learning Labs (Analytics)&lt;/A&gt; - All DevNet Learning Labs tagged with the keyword 'Analytics'&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/network-automation/" target="_blank" rel="noopener"&gt;DevNet Automation Exchange&lt;/A&gt; -&amp;nbsp;DevNet Automation Exchange provides shared code repositories for network automation and guides teams through their journey with a walk-run-fly methodology.&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/automation-bootcamp/" target="_blank" rel="noopener"&gt;DevNet Automation Bootcamp&lt;/A&gt; -&amp;nbsp;an intensive, 9-day course delivered over 6 weeks for a team of up to 12 learners. This schedule gives your team time to absorb the new material they’re learning as they apply it to your infrastructure and business needs.&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/site/networking/" target="_blank" rel="noopener"&gt;Networking Dev Center&lt;/A&gt; - Learn how you can integrate with the network through full system management solutions in the cloud, utilize automation platforms and controllers, or directly interact with devices with APIs and Interfaces.&lt;/LI&gt;
&lt;/UL&gt;
&lt;BR /&gt;
&lt;H2 style="font-family: CiscoSans, 'Helvetica Neue', Helvetica, Arial, sans-serif; color: #58585b;"&gt;&lt;U&gt;&lt;STRONG&gt;IDEs&lt;/STRONG&gt;&lt;/U&gt;&amp;nbsp;&lt;FONT size="4"&gt;- an Integrated Development Environment (IDE) is a software package available for download and use that can help simplify the development process. IDEs integrate many of the common tasks in software development to enable rapid application development.&lt;/FONT&gt;&lt;/H2&gt;
&lt;UL&gt;
&lt;LI style="font-family: CiscoSans, 'Helvetica Neue', Helvetica, Arial, sans-serif; color: #58585b;"&gt;&lt;A href="https://www.jetbrains.com/pycharm/" target="_blank" rel="noopener"&gt;PyCharm&lt;/A&gt; - an IDE with full support for Python, as well as for HTML, CSS, JavaScript, Node.js and more.&lt;/LI&gt;
&lt;LI style="font-family: CiscoSans, 'Helvetica Neue', Helvetica, Arial, sans-serif; color: #58585b;"&gt;&lt;A href="http://komodoide.com/" target="_blank" rel="noopener"&gt;Komodo&lt;/A&gt; - another IDE with full support for Python, as well as Go, Perl, Ruby and more.&lt;/LI&gt;
&lt;LI style="font-family: CiscoSans, 'Helvetica Neue', Helvetica, Arial, sans-serif; color: #58585b;"&gt;&lt;A href="https://code.visualstudio.com/" target="_blank" rel="noopener"&gt;VS Code&lt;/A&gt; - Visual Studio Code is technically not an IDE. It's a lightweight but powerful source code editor which runs on your desktop and is available for Windows, macOS and Linux. It comes with built-in support for several programming languages and has a rich ecosystem of extensions for other languages and runtimes.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;&amp;nbsp;&lt;/H2&gt;
&lt;H2&gt;&lt;U&gt;&lt;STRONG&gt;SDKs&lt;/STRONG&gt;&lt;/U&gt; -&amp;nbsp;&lt;FONT size="4"&gt;a&amp;nbsp;software development kit (SDK) differs fundamentally from an IDE. An SDK is a set of functions, packages, documentation and programs required for development on a specific platform or technology, whereas an IDE can be thought of as providing tools for application development using a specific language or technology.&lt;/FONT&gt;&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://blogs.cisco.com/developer/network-automation-dna-center-sdk-1" target="_blank" rel="noopener"&gt;Network Automation with Cisco DNA Center SDK – Part 1&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://blogs.cisco.com/developer/network-automation-cisco-dna-center-sdk-2" target="_blank" rel="noopener"&gt;Network Automation with Cisco DNA Center SDK – Part 2&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/site/python/" target="_blank" rel="noopener"&gt;Python Network Automation&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://pubhub.devnetcloud.com/media/netdevops-live/site/files/s01t01.pdf" target="_blank" rel="noopener"&gt;Useful Python Libraries for Network Engineers&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;BR /&gt;
&lt;H2&gt;&lt;U&gt;&lt;STRONG&gt;Sandboxes&lt;/STRONG&gt;&lt;/U&gt;&amp;nbsp;- &lt;FONT size="4"&gt;Cisco and Networking are practically synonymous! The Sandbox offers many networking labs with SDN controllers or API driven network gear!&lt;/FONT&gt;&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/docs/sandbox/#!networking/networking-overview" target="_blank" rel="noopener"&gt;Networking Sandbox Highlights&lt;/A&gt; - on Cisco DevNet&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://devnetsandbox.cisco.com/RM/Topology?c=14ec7ccf-2988-474e-a135-1e90b9bc6caf" target="_blank" rel="noopener"&gt;Explore ALL Networking Sandboxes&lt;/A&gt; - on DevNet&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;&lt;U&gt;&lt;STRONG&gt;Learning Labs&lt;/STRONG&gt;&lt;/U&gt;&amp;nbsp;- &lt;FONT size="4"&gt;just like our Sandboxes, the Learning Labs on Cisco DevNet are FREE to use!&lt;/FONT&gt;&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/learning/labs/tags/Networking" target="_blank" rel="noopener"&gt;Networking Labs&lt;/A&gt; - all of the Networking Learning Labs on Cisco DevNet&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/learning/tracks/netprog-eng" target="_blank" rel="noopener"&gt;Network Programmability for Network Engineers&lt;/A&gt; - Learning Track on DevNet&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;&amp;nbsp;&lt;/H2&gt;
&lt;H2&gt;&lt;U&gt;&lt;STRONG&gt;Cisco Modeling Labs&lt;/STRONG&gt;&lt;/U&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;- &lt;FONT size="4"&gt;Cisco Modeling Labs (CML) is our premier platform for network simulation. With an easy-to-use HTML5 UI and a comprehensive API, Cisco Modeling Labs makes it fun to design, test, troubleshoot, and learn.&lt;/FONT&gt;&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/modeling-labs/" target="_blank" rel="noopener"&gt;Cisco Modeling Labs&lt;/A&gt; - on Cisco DevNet&lt;/LI&gt;
&lt;/UL&gt;
&lt;/DIV&gt;
&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;H2&gt;&amp;nbsp;&lt;/H2&gt;
&lt;H2&gt;&lt;U&gt;&lt;STRONG&gt;Postman&lt;/STRONG&gt;&lt;/U&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;- &lt;FONT size="4"&gt;Postman can be utilized to build and test APIs. In the context of network programmability where an API is already constructed and ready to be followed, administrators and developers can utilize Postman to debug code and test REST calls that need to be made. Postman also offers a browser extension for Google Chrome, available within the Chrome Web Store.&amp;nbsp;There are similar easy-to-use tools like Insomnia and Paw that are popular as well.&lt;/FONT&gt;&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://www.getpostman.com/" target="_blank" rel="noopener"&gt;Postman&lt;/A&gt; - collaboration platform for API development&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.postman.com/ciscodevnet" target="_blank" rel="noopener"&gt;Cisco DevNet Postman Collection&lt;/A&gt; - DevNet's Postman collection, which is hosted on Postman site&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;&amp;nbsp;&lt;/H2&gt;
&lt;H2&gt;&lt;U&gt;&lt;STRONG&gt;VIRL&lt;/STRONG&gt;&lt;/U&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;- &lt;FONT size="4"&gt;Cisco Virtual Internet Routing Lab (VIRL) is an extensible network virtualization platform that enables the development of high-fidelity models of real or planned networks.  VIRL includes current virtualized versions of Cisco network operating systems and allows integration with 'real' physical / external networks, network elements, and servers.&lt;/FONT&gt;&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://get.virl.info/tutorials.php" target="_blank" rel="noopener"&gt;VIRL&lt;/A&gt; - get VIRL, deploy VIRL, as well as tutorials and resources.&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/DIV&gt;
&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;H2&gt;&amp;nbsp;&lt;/H2&gt;
&lt;H2&gt;&lt;U&gt;&lt;STRONG&gt;Cisco Active Advisor&lt;/STRONG&gt;&lt;/U&gt; - &lt;FONT size="4"&gt;Cisco Active Advisor simplifies network discovery and finds security alerts that apply to your devices. It also analyzes contract coverage and end-of-life status, and can compare your network against Cisco Validated Designs. Best of all, it's free.&lt;/FONT&gt;&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://www.cisco.com/c/en/us/products/cloud-systems-management/active-advisor/index.html?keycode=000418636" target="_blank" rel="noopener"&gt;Cisco Active Advisor&lt;/A&gt; - Reduce network risk and boost security for free&lt;/LI&gt;
&lt;/UL&gt;
&lt;/DIV&gt;
&lt;DIV class="lia-message-template-content-zone"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;H2&gt;&lt;U&gt;&lt;STRONG&gt;Cisco Network Assistant&lt;/STRONG&gt;&lt;/U&gt; - &lt;FONT size="4"&gt;Cisco Network Assistant is a PC-based network management application optimized for wired and wireless networks for growing Small-Medium sized businesses. Cisco Network Assistant provides a centralized network view with a user-friendly GUI that simplifies configuration, management, and troubleshooting.&lt;/FONT&gt;&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://www.cisco.com/c/en/us/support/cloud-systems-management/network-assistant-version-6-0/model.html" target="_blank" rel="noopener"&gt;Cisco Network Assistant&lt;/A&gt; - Using Cisco Network Assistant, network administrators can easily apply common services, generate inventory reports and synchronize passwords across Cisco switches, routers, wireless LAN controllers, and access points.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/DIV&gt;
&lt;DIV class="lia-message-template-content-zone"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;H2&gt;&lt;U&gt;&lt;STRONG&gt;Cisco Bug Search Tool&lt;/STRONG&gt;&lt;/U&gt;&amp;nbsp;- &lt;FONT size="4"&gt;The Cisco bug tracking system maintains a comprehensive list of defects and vulnerabilities in Cisco products and software.&amp;nbsp;&lt;/FONT&gt;&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://bst.cloudapps.cisco.com/bugsearch/" target="_blank" rel="noopener"&gt;Cisco Bug Search Tool&lt;/A&gt; - Bug Search is a web-based tool that acts as a gateway to the bug tracking system and provides you with detailed defect information about your products and software.&lt;/LI&gt;
&lt;/UL&gt;
&lt;BR /&gt;&lt;HR /&gt;&lt;BR /&gt;
&lt;H2&gt;&lt;U&gt;&lt;STRONG&gt;Cisco Internetworking Troubleshooting Tools&lt;/STRONG&gt;&lt;/U&gt;&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://www.cisco.com/en/US/docs/internetworking/troubleshooting/guide/tr1902.html#wp1020544" target="_blank" rel="noopener"&gt;Troubleshooting Tools&lt;/A&gt; -&amp;nbsp;information about the wide variety of tools available to assist you in troubleshooting your internetwork. This includes information on using router diagnostic commands, Cisco network management tools, and third-party troubleshooting tools.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/DIV&gt;
&lt;DIV class="lia-message-template-content-zone"&gt;&lt;BR /&gt;
&lt;H2&gt;&lt;U&gt;&lt;STRONG&gt;Docs&lt;/STRONG&gt;&lt;/U&gt;&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://www.cisco.com/c/en/us/support/docs/availability/high-availability/15114-NMS-bestpractice.html" target="_blank" rel="noopener"&gt;Network Management System: Best Practices&lt;/A&gt; White Paper (2018)&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.cisco.com/c/en/us/support/docs/ip/access-lists/13608-21.html" target="_blank" rel="noopener"&gt;Cisco Guide to Harden Cisco IOS Devices&lt;/A&gt; (2020)&lt;/LI&gt;
&lt;/UL&gt;
&lt;BR /&gt;
&lt;H2&gt;&lt;U&gt;&lt;STRONG&gt;External Resources&lt;/STRONG&gt;&lt;/U&gt;&lt;/H2&gt;
&lt;DIV&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://www.dnsstuff.com/cisco-network-monitoring-tools" target="_blank" rel="noopener"&gt;Best Cisco Monitoring Tools for Network Performance and Routers&lt;/A&gt; - Tools for monitoring Cisco networks&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;</description>
      <pubDate>Wed, 05 May 2021 16:38:10 GMT</pubDate>
      <guid>https://community.cisco.com/t5/networking-documents/networking-automation-and-analytics-knowledge-base/ta-p/4393538</guid>
      <dc:creator>alexstev</dc:creator>
      <dc:date>2021-05-05T16:38:10Z</dc:date>
    </item>
    <item>
      <title>Networking Tools Knowledge Base</title>
      <link>https://community.cisco.com/t5/networking-documents/networking-tools-knowledge-base/ta-p/4392305</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;H2 class="lia-message-template-content-zone"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-left" image-alt="net-tools.png" style="width: 125px;"&gt;&lt;img src="https://community.cisco.com/t5/image/serverpage/image-id/118770iAE4E3B632E6DCEC9/image-dimensions/125x125?v=v2" width="125" height="125" role="button" title="net-tools.png" alt="net-tools.png" /&gt;&lt;/span&gt;&lt;STRONG&gt;&lt;FONT size="6"&gt;Networking Tools Knowledge Base&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/H2&gt;
&lt;P&gt;For one-on-one help with these products, you can open a ticket at&amp;nbsp;&lt;A href="https://developer.cisco.com/site/support/" target="_blank" rel="noopener"&gt;https://developer.cisco.com/site/support/&lt;/A&gt;. For other products, please contact Cisco TAC at&amp;nbsp;&lt;A href="https://www.cisco.com/c/en/us/support/index.html" target="_blank" rel="noopener"&gt;https://www.cisco.com/c/en/us/support/index.html&lt;/A&gt;&lt;/P&gt;
&lt;H4&gt;&amp;nbsp;&lt;/H4&gt;
&lt;BR /&gt;
&lt;H4&gt;&lt;FONT size="6"&gt;&lt;STRONG&gt;Networking Tools&amp;nbsp;&lt;/STRONG&gt;-&amp;nbsp;&lt;FONT size="4"&gt;Making a Network Engineer's life easier. Work smarter.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/H4&gt;
&lt;H2 style="font-family: CiscoSans, 'Helvetica Neue', Helvetica, Arial, sans-serif; color: #58585b;"&gt;&amp;nbsp;&lt;/H2&gt;
&lt;H2 style="font-family: CiscoSans, 'Helvetica Neue', Helvetica, Arial, sans-serif; color: #58585b;"&gt;&lt;U&gt;&lt;STRONG&gt;&lt;SPAN&gt;Start&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/U&gt;&amp;nbsp;&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/startnow/#networking-101-v0" target="_blank" rel="noopener"&gt;Networking 101&lt;/A&gt; - Learn coding basics for Networking.&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/startnow/#en-networking-v0" target="_blank" rel="noopener"&gt;EN Networking&lt;/A&gt; - Build Apps with Cisco DNA Center Platform Solutions.&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/startnow/#dc-networking-v0" target="_blank" rel="noopener"&gt;DC Networking&lt;/A&gt; -&amp;nbsp;Explore Application Centric Infrastructure (ACI) programmability options and explore data center APIs.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2 style="font-family: CiscoSans, 'Helvetica Neue', Helvetica, Arial, sans-serif; color: #58585b;"&gt;&amp;nbsp;&lt;/H2&gt;
&lt;H2 style="font-family: CiscoSans, 'Helvetica Neue', Helvetica, Arial, sans-serif; color: #58585b;"&gt;&lt;U&gt;&lt;STRONG&gt;&lt;SPAN&gt;Learn&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/U&gt;&amp;nbsp;&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/site/networking/" target="_blank" rel="noopener"&gt;Networking Dev Center&lt;/A&gt; - Learn how you can integrate with the network through full system management solutions in the cloud, utilize automation platforms and controllers, or directly interact with devices with APIs and Interfaces.&lt;/LI&gt;
&lt;/UL&gt;
&lt;BR /&gt;
&lt;H2 style="font-family: CiscoSans, 'Helvetica Neue', Helvetica, Arial, sans-serif; color: #58585b;"&gt;&lt;U&gt;&lt;STRONG&gt;IDEs&lt;/STRONG&gt;&lt;/U&gt;&amp;nbsp;&lt;FONT size="4"&gt;- an Integrated Development Environment (IDE) is a software package available for download and use that can help simplify the development process. IDEs integrate many of the common tasks in software development to enable rapid application development.&lt;/FONT&gt;&lt;/H2&gt;
&lt;UL&gt;
&lt;LI style="font-family: CiscoSans, 'Helvetica Neue', Helvetica, Arial, sans-serif; color: #58585b;"&gt;&lt;A href="https://www.jetbrains.com/pycharm/" target="_blank" rel="noopener"&gt;PyCharm&lt;/A&gt; - an IDE with full support for Python, as well as for HTML, CSS, JavaScript, Node.js and more.&lt;/LI&gt;
&lt;LI style="font-family: CiscoSans, 'Helvetica Neue', Helvetica, Arial, sans-serif; color: #58585b;"&gt;&lt;A href="http://komodoide.com/" target="_blank" rel="noopener"&gt;Komodo&lt;/A&gt; - another IDE with full support for Python, as well as Go, Perl, Ruby and more.&lt;/LI&gt;
&lt;/UL&gt;
&lt;BR /&gt;
&lt;H2&gt;&lt;U&gt;&lt;STRONG&gt;SDKs&lt;/STRONG&gt;&lt;/U&gt; -&amp;nbsp;&lt;FONT size="4"&gt;a&amp;nbsp;software development kit (SDK) differs fundamentally from an IDE. An SDK is a set of functions, packages, documentation and programs required for development on a specific platform or technology, whereas an IDE can be thought of as providing tools for application development using a specific language or technology.&lt;/FONT&gt;&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://blogs.cisco.com/developer/network-automation-dna-center-sdk-1" target="_blank" rel="noopener"&gt;Network Automation with Cisco DNA Center SDK – Part 1&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://blogs.cisco.com/developer/network-automation-cisco-dna-center-sdk-2" target="_blank" rel="noopener"&gt;Network Automation with Cisco DNA Center SDK – Part 2&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/site/python/" target="_blank" rel="noopener"&gt;Python Network Automation&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://pubhub.devnetcloud.com/media/netdevops-live/site/files/s01t01.pdf" target="_blank" rel="noopener"&gt;Useful Python Libraries for Network Engineers&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;BR /&gt;
&lt;H2&gt;&lt;U&gt;&lt;STRONG&gt;Sandboxes&lt;/STRONG&gt;&lt;/U&gt;&amp;nbsp;- &lt;FONT size="4"&gt;Cisco and Networking are practically synonymous! The Sandbox offers many networking labs with SDN controllers or API driven network gear!&lt;/FONT&gt;&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/docs/sandbox/#!networking/networking-overview" target="_blank" rel="noopener"&gt;Networking Sandbox Highlights&lt;/A&gt; - on Cisco DevNet&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://devnetsandbox.cisco.com/RM/Topology?c=14ec7ccf-2988-474e-a135-1e90b9bc6caf" target="_blank" rel="noopener"&gt;Explore ALL Networking Sandboxes&lt;/A&gt; - on DevNet&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;&lt;U&gt;&lt;STRONG&gt;Learning Labs&lt;/STRONG&gt;&lt;/U&gt;&amp;nbsp;- &lt;FONT size="4"&gt;just like our Sandboxes, the Learning Labs on Cisco DevNet are FREE to use!&lt;/FONT&gt;&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/learning/labs/tags/Networking" target="_blank" rel="noopener"&gt;Networking Labs&lt;/A&gt; - all of the Networking Learning Labs on Cisco DevNet&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/learning/tracks/netprog-eng" target="_blank" rel="noopener"&gt;Network Programmability for Network Engineers&lt;/A&gt; - Learning Track on DevNet&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;&amp;nbsp;&lt;/H2&gt;
&lt;H2&gt;&lt;U&gt;&lt;STRONG&gt;Cisco Modeling Labs&lt;/STRONG&gt;&lt;/U&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;- &lt;FONT size="4"&gt;Cisco Modeling Labs (CML) is our premier platform for network simulation. With an easy-to-use HTML5 UI and a comprehensive API, Cisco Modeling Labs makes it fun to design, test, troubleshoot, and learn.&lt;/FONT&gt;&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/modeling-labs/" target="_blank" rel="noopener"&gt;Cisco Modeling Labs&lt;/A&gt; - on Cisco DevNet&lt;/LI&gt;
&lt;/UL&gt;
&lt;/DIV&gt;
&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;H2&gt;&amp;nbsp;&lt;/H2&gt;
&lt;H2&gt;&lt;U&gt;&lt;STRONG&gt;Postman&lt;/STRONG&gt;&lt;/U&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;- &lt;FONT size="4"&gt;Postman can be utilized to build and test APIs. In the context of network programmability where an API is already constructed and ready to be followed, administrators and developers can utilize Postman to debug code and test REST calls that need to be made. Postman also offers a browser extension for Google Chrome, available within the Chrome Web Store.&amp;nbsp;There are similar easy-to-use tools like Insomnia and Paw that are popular as well.&lt;/FONT&gt;&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://www.getpostman.com/" target="_blank" rel="noopener"&gt;Postman&lt;/A&gt; - collaboration platform for API development&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.postman.com/ciscodevnet" target="_blank" rel="noopener"&gt;Cisco DevNet Postman Collection&lt;/A&gt; - DevNet's Postman collection, which is hosted on Postman site&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;H2&gt;&lt;U&gt;&lt;STRONG&gt;Cisco Active Advisor&lt;/STRONG&gt;&lt;/U&gt; - &lt;FONT size="4"&gt;Cisco Active Advisor simplifies network discovery and finds security alerts that apply to your devices. It also analyzes contract coverage and end-of-life status, and can compare your network against Cisco Validated Designs. Best of all, it's free.&lt;/FONT&gt;&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://www.cisco.com/c/en/us/products/cloud-systems-management/active-advisor/index.html?keycode=000418636" target="_blank" rel="noopener"&gt;Cisco Active Advisor&lt;/A&gt; - Reduce network risk and boost security for free&lt;/LI&gt;
&lt;/UL&gt;
&lt;/DIV&gt;
&lt;DIV class="lia-message-template-content-zone"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;H2&gt;&lt;U&gt;&lt;STRONG&gt;Cisco Network Assistant&lt;/STRONG&gt;&lt;/U&gt; - &lt;FONT size="4"&gt;Cisco Network Assistant is a PC-based network management application optimized for wired and wireless networks for growing Small-Medium sized businesses. Cisco Network Assistant provides a centralized network view with a user-friendly GUI that simplifies configuration, management, and troubleshooting.&lt;/FONT&gt;&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://www.cisco.com/c/en/us/support/cloud-systems-management/network-assistant-version-6-0/model.html" target="_blank" rel="noopener"&gt;Cisco Network Assistant&lt;/A&gt; - Using Cisco Network Assistant, network administrators can easily apply common services, generate inventory reports and synchronize passwords across Cisco switches, routers, wireless LAN controllers, and access points.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/DIV&gt;
&lt;DIV class="lia-message-template-content-zone"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;H2&gt;&lt;U&gt;&lt;STRONG&gt;Cisco Bug Search Tool&lt;/STRONG&gt;&lt;/U&gt;&amp;nbsp;- &lt;FONT size="4"&gt;The Cisco bug tracking system maintains a comprehensive list of defects and vulnerabilities in Cisco products and software.&amp;nbsp;&lt;/FONT&gt;&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://bst.cloudapps.cisco.com/bugsearch/" target="_blank" rel="noopener"&gt;Cisco Bug Search Tool&lt;/A&gt; - Bug Search is a web-based tool that acts as a gateway to the bug tracking system and provides you with detailed defect information about your products and software.&lt;/LI&gt;
&lt;/UL&gt;
&lt;BR /&gt;&lt;HR /&gt;&lt;BR /&gt;
&lt;H2&gt;&lt;U&gt;&lt;STRONG&gt;Cisco Internetworking Troubleshooting Tools&lt;/STRONG&gt;&lt;/U&gt;&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://www.cisco.com/en/US/docs/internetworking/troubleshooting/guide/tr1902.html#wp1020544" target="_blank" rel="noopener"&gt;Troubleshooting Tools&lt;/A&gt; -&amp;nbsp;information about the wide variety of tools available to assist you in troubleshooting your internetwork. This includes information on using router diagnostic commands, Cisco network management tools, and third-party troubleshooting tools.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/DIV&gt;
&lt;DIV class="lia-message-template-content-zone"&gt;&lt;BR /&gt;
&lt;H2&gt;&lt;U&gt;&lt;STRONG&gt;Docs&lt;/STRONG&gt;&lt;/U&gt;&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://www.cisco.com/c/en/us/support/docs/availability/high-availability/15114-NMS-bestpractice.html" target="_blank" rel="noopener"&gt;Network Management System: Best Practices&lt;/A&gt; White Paper (2018)&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.cisco.com/c/en/us/support/docs/ip/access-lists/13608-21.html" target="_blank" rel="noopener"&gt;Cisco Guide to Harden Cisco IOS Devices&lt;/A&gt; (2020)&lt;/LI&gt;
&lt;/UL&gt;
&lt;BR /&gt;
&lt;H2&gt;&lt;U&gt;&lt;STRONG&gt;External Resources&lt;/STRONG&gt;&lt;/U&gt;&lt;/H2&gt;
&lt;DIV&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://www.dnsstuff.com/cisco-network-monitoring-tools" target="_blank" rel="noopener"&gt;Best Cisco Monitoring Tools for Network Performance and Routers&lt;/A&gt; - Tools for monitoring Cisco networks&lt;/LI&gt;
&lt;/UL&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;</description>
      <pubDate>Wed, 05 May 2021 16:36:56 GMT</pubDate>
      <guid>https://community.cisco.com/t5/networking-documents/networking-tools-knowledge-base/ta-p/4392305</guid>
      <dc:creator>alexstev</dc:creator>
      <dc:date>2021-05-05T16:36:56Z</dc:date>
    </item>
    <item>
      <title>IoT Knowledge Base</title>
      <link>https://community.cisco.com/t5/internet-of-things-iot-documents/iot-knowledge-base/ta-p/4310754</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;H2 class="lia-message-template-content-zone"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-left" image-alt="IoT_fc_512.png" style="width: 105px;"&gt;&lt;img src="https://community.cisco.com/t5/image/serverpage/image-id/106876i4C50443714FBA849/image-dimensions/105x105?v=v2" width="105" height="105" role="button" title="IoT_fc_512.png" alt="IoT_fc_512.png" /&gt;&lt;/span&gt;&lt;STRONG&gt;&lt;FONT size="6"&gt;IoT Knowledge Base&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/H2&gt;
&lt;P&gt;For one-on-one help with these products, you can open a ticket at&amp;nbsp;&lt;A href="https://developer.cisco.com/site/support/" target="_blank" rel="noopener"&gt;https://developer.cisco.com/site/support/&lt;/A&gt;. For other products, please contact Cisco TAC (&lt;A href="https://tac.cisco.com" target="_blank" rel="noopener"&gt;tac.cisco.com&lt;/A&gt;).&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;&lt;FONT size="6"&gt;&lt;STRONG&gt;Internet of Things (IoT)&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H4&gt;
&lt;H2 style="font-family: CiscoSans, 'Helvetica Neue', Helvetica, Arial, sans-serif; color: #58585b;"&gt;&amp;nbsp;&lt;/H2&gt;
&lt;H2 style="font-family: CiscoSans, 'Helvetica Neue', Helvetica, Arial, sans-serif; color: #58585b;"&gt;&lt;U&gt;&lt;STRONG&gt;Start&lt;/STRONG&gt;&lt;/U&gt;&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://www.cisco.com/c/en/us/solutions/internet-of-things/overview.html" target="_blank" rel="noopener"&gt;Cisco IoT - Overview&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.cisco.com/c/en/us/solutions/internet-of-things/iot-network-connectivity.html" target="_blank" rel="noopener"&gt;IoT Networking&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.cisco.com/c/en/us/solutions/internet-of-things/resources/case-studies.html" target="_blank" rel="noopener"&gt;IoT Customer Stories&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/startnow/#iot-edge-v0" target="_blank" rel="noopener"&gt;Learning Path - IOT &amp;amp; Edge Computing Basics&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2 style="font-family: CiscoSans, 'Helvetica Neue', Helvetica, Arial, sans-serif; color: #58585b;"&gt;&amp;nbsp;&lt;/H2&gt;
&lt;H2 style="font-family: CiscoSans, 'Helvetica Neue', Helvetica, Arial, sans-serif; color: #58585b;"&gt;&lt;U&gt;&lt;STRONG&gt;Learn&lt;/STRONG&gt;&lt;/U&gt;&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/learning/tracks/iot" target="_blank" rel="noopener"&gt;Learning Labs - Learning Track - Cisco IoT&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/iot/" target="_blank" rel="noopener"&gt;IoT Dev Center&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://devnetsandbox.cisco.com/RM/Topology?c=171f6448-a74a-4831-a8c5-ad6f681bfc0d" target="_blank" rel="noopener"&gt;Sandbox Remote Labs - IoT&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/codeexchange/platforms/iox" target="_blank" rel="noopener"&gt;Cisco Code Exchange - Cisco IoT&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/network-automation/listing/#domain=IoT" target="_blank" rel="noopener"&gt;DevNet Automation Exchange - IoT&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Edge Compute and Software
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/edge-intelligence/" target="_blank" rel="noopener"&gt;Cisco Edge Intelligence&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/site/iox/" target="_blank" rel="noopener"&gt;IOx&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI&gt;Networking
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/docs/ipv6-mesh/" target="_blank" rel="noopener"&gt;Cisco IPv6 Mesh&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/industrial-netdevops/" target="_blank" rel="noopener"&gt;Industrial NetDevOps&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;Security
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/site/mud/" target="_blank" rel="noopener"&gt;Manufacturer Usage Descriptions (MUD)&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;BR /&gt;
&lt;H2 style="font-family: CiscoSans, 'Helvetica Neue', Helvetica, Arial, sans-serif; color: #58585b;"&gt;&lt;U&gt;&lt;STRONG&gt;Certifications&lt;/STRONG&gt;&lt;/U&gt;&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/certification/devnet-iot/" target="_blank" rel="noopener"&gt;Cisco Certified DevNet Specialist - IoT&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.cisco.com/c/en/us/training-events/training-certifications/certifications/devnet/cisco-certified-devnet-professional.html?wcmmode=disabled#~exams" target="_blank" rel="noopener"&gt;Cisco Certified DevNet Professional&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;BR /&gt;
&lt;H2 style="font-family: CiscoSans, 'Helvetica Neue', Helvetica, Arial, sans-serif; color: #58585b;"&gt;&lt;U&gt;&lt;STRONG&gt;Exam&lt;/STRONG&gt;&lt;/U&gt;&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://www.cisco.com/c/en/us/training-events/training-certifications/exams/current-list/deviot-300-915.html" target="_blank" rel="noopener"&gt;Developing Solutions Using Cisco IoT and Edge Platforms (300-915 DEVIOT)&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;BR /&gt;
&lt;H2&gt;&lt;U&gt;&lt;STRONG&gt;Courses and Exam Prep&lt;/STRONG&gt;&lt;/U&gt;&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://www.cisco.com/c/en/us/training-events/training-certifications/training/training-services/courses/developing-applications-using-cisco-core-platforms-and-apis-devcor.html" target="_blank" rel="noopener"&gt;Course -&amp;nbsp;Developing Applications Using Cisco Core Platforms and APIs (DEVCOR) v1.0&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/certification/exam-topic-iot/" target="_blank" rel="noopener"&gt;300-915 DEVIOT - Exam Overview&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;BR /&gt;
&lt;H2&gt;&lt;U&gt;&lt;STRONG&gt;IoT APIs&lt;/STRONG&gt;&lt;/U&gt;&lt;/H2&gt;
&lt;DIV&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/docs/iox/" target="_blank" rel="noopener"&gt;IOx&amp;nbsp;&lt;/A&gt;- Host applications on Cisco hardware, including container-based deployments.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/DIV&gt;
&lt;DIV&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/docs/ipv6-mesh/" target="_blank" rel="noopener"&gt;Cisco IPv6 Mesh&amp;nbsp;&lt;/A&gt;- Create a communication network overlay for the electric distribution grid to enable street lighting, connectivity to solar or wind power, on-demand metering, and other smart city use cases.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/DIV&gt;
&lt;DIV&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/docs/jasper/" target="_blank" rel="noopener"&gt;Control Center&amp;nbsp;&lt;/A&gt;- Automate connectivity management, deployment, and track activity for all your connected devices.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/DIV&gt;
&lt;DIV&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/docs/kinetic/" target="_blank" rel="noopener"&gt;Cisco Kinetic&amp;nbsp;&lt;/A&gt;- Integrate data routes with fog application data, extract data from data pipes with connectors, and move or keep categorized data with policies.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/DIV&gt;
&lt;DIV&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/docs/cisco-kinetic-for-cities/" target="_blank" rel="noopener"&gt;Cisco Kinetic for Cities&amp;nbsp;&lt;/A&gt;- Aggregate and organize data from city infrastructure sensors and other data sources in a consistent format.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/DIV&gt;
&lt;DIV&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/docs/mud/" target="_blank" rel="noopener"&gt;Manufacturer Usage Description&amp;nbsp;&lt;/A&gt;- Facilitate device visibility and segmentation of IoT devices by defining the corresponding behaviors for that device.&lt;/LI&gt;
&lt;/UL&gt;
&lt;BR /&gt;
&lt;H2&gt;&lt;U&gt;&lt;STRONG&gt;Cisco Community Forums&lt;/STRONG&gt;&lt;/U&gt;&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://community.cisco.com/t5/developer-internet-of-things/ct-p/4698j-developer-iot" target="_blank" rel="noopener"&gt;&lt;EM&gt;Developer&lt;/EM&gt; Internet of Things&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://community.cisco.com/t5/internet-of-things-iot/bd-p/4698j-disc-dev-iot" target="_blank" rel="noopener"&gt;Internet of Things &lt;EM&gt;Discussions&lt;/EM&gt;&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://community.cisco.com/t5/internet-of-things-iot-documents/tkb-p/4698j-docs-dev-iot" target="_blank" rel="noopener"&gt;Internet of Things &lt;EM&gt;Documents&lt;/EM&gt;&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;BR /&gt;
&lt;H2&gt;&lt;U&gt;&lt;STRONG&gt;Docs&lt;/STRONG&gt;&lt;/U&gt;&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/docs/iotod/" target="_blank" rel="noopener"&gt;Cisco IoT Operations Dashboard&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.cisco.com/c/en/us/td/docs/routers/connectedgrid/iot_dm/guide/guide_5_0/b_iot-device-manager-5/b_iot-device-manager-5_chapter_00.html" target="_blank" rel="noopener"&gt;Cisco IoT Device Manager Installation and User Guide, Release 5.x (Updated: February 18, 2021)&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;</description>
      <pubDate>Thu, 22 Apr 2021 20:54:11 GMT</pubDate>
      <guid>https://community.cisco.com/t5/internet-of-things-iot-documents/iot-knowledge-base/ta-p/4310754</guid>
      <dc:creator>Paul Zimmerman</dc:creator>
      <dc:date>2021-04-22T20:54:11Z</dc:date>
    </item>
    <item>
      <title>YANG Tools Knowledge Base</title>
      <link>https://community.cisco.com/t5/networking-documents/yang-tools-knowledge-base/ta-p/4391750</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;H2 class="lia-message-template-content-zone"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-left" image-alt="yang.png" style="width: 127px;"&gt;&lt;img src="https://community.cisco.com/t5/image/serverpage/image-id/118711i4DF72772EA09EA2E/image-dimensions/127x127?v=v2" width="127" height="127" role="button" title="yang.png" alt="yang.png" /&gt;&lt;/span&gt;&lt;STRONG&gt;&lt;FONT size="6"&gt;YANG Tools Knowledge Base&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/H2&gt;
&lt;P&gt;For one-on-one help with developer products, you can open a ticket at&amp;nbsp;&lt;A href="https://developer.cisco.com/site/support/" target="_blank" rel="noopener"&gt;https://developer.cisco.com/site/support/&lt;/A&gt;. For other products, please contact Cisco TAC (&lt;A href="https://www.cisco.com/c/en/us/support/index.html" target="_blank" rel="noopener"&gt;https://www.cisco.com/c/en/us/support/index.html&lt;/A&gt;).&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;&amp;nbsp;&lt;/H4&gt;
&lt;BR /&gt;
&lt;H4&gt;&lt;FONT size="6"&gt;&lt;STRONG&gt;YANG Tools&amp;nbsp;&lt;/STRONG&gt;-&amp;nbsp;&lt;FONT size="4"&gt;You can use these YANG tools to deploy, configure, monitor, and troubleshoot.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/H4&gt;
&lt;H2 style="font-family: CiscoSans, 'Helvetica Neue', Helvetica, Arial, sans-serif; color: #58585b;"&gt;&amp;nbsp;&lt;/H2&gt;
&lt;H2 style="font-family: CiscoSans, 'Helvetica Neue', Helvetica, Arial, sans-serif; color: #58585b;"&gt;&lt;U&gt;&lt;STRONG&gt;1. YANG Suite&lt;/STRONG&gt;&lt;/U&gt; -&lt;FONT size="4"&gt;&amp;nbsp;a set of tools related to YANG models and related technologies such as NETCONF&lt;/FONT&gt;&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://github.com/CiscoDevNet/yangsuite" target="_blank" rel="noopener"&gt;Cisco YANG Suite GitHub Repo&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://blogs.cisco.com/developer/363-yangsuite-01" target="_blank" rel="noopener"&gt;The Wait Is Over: Cisco YANG Suite Is Here! - Cisco Blogs&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/docs/yangsuite/" target="_blank" rel="noopener"&gt;YANG Suite&lt;/A&gt; - Documentation on Cisco DevNet&lt;/LI&gt;
&lt;LI&gt;&lt;A href="mailto:yangsuite-support-ext@cisco.com" target="_blank" rel="noopener"&gt;yangsuite-support-ext@cisco.com&lt;/A&gt;&amp;nbsp;- YANG Suite external mailer&lt;/LI&gt;
&lt;/UL&gt;
&lt;BR /&gt;
&lt;H2 style="font-family: CiscoSans, 'Helvetica Neue', Helvetica, Arial, sans-serif; color: #58585b;"&gt;&lt;U&gt;&lt;STRONG&gt;2. YANG Development Kit&lt;/STRONG&gt;&lt;/U&gt;&amp;nbsp;&lt;FONT size="4"&gt;- a Python SDK generated from YANG data models.&lt;/FONT&gt;&lt;/H2&gt;
&lt;UL&gt;
&lt;LI style="font-family: CiscoSans, 'Helvetica Neue', Helvetica, Arial, sans-serif; color: #58585b;"&gt;&lt;A href="https://developer.cisco.com/site/ydk/" target="_blank" rel="noopener"&gt;YANG Development Kit&lt;/A&gt; - on Cisco DevNet&lt;/LI&gt;
&lt;LI style="font-family: CiscoSans, 'Helvetica Neue', Helvetica, Arial, sans-serif; color: #58585b;"&gt;&lt;A href="https://github.com/CiscoDevNet/ydk-py" target="_blank" rel="noopener"&gt;YANG Development Kit&lt;/A&gt; - Cisco DevNet's GitHub Repository (Python)&lt;/LI&gt;
&lt;/UL&gt;
&lt;BR /&gt;
&lt;H2&gt;&lt;U&gt;&lt;STRONG&gt;3. ncclient&lt;/STRONG&gt;&lt;/U&gt; -&amp;nbsp;&lt;FONT size="4"&gt;a Python library that facilitates client-side scripting and application development around the NETCONF protocol.&lt;/FONT&gt;&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://github.com/ncclient/ncclient" target="_blank" rel="noopener"&gt;ncclient&lt;/A&gt; - official GitHub Repository&lt;/LI&gt;
&lt;/UL&gt;
&lt;BR /&gt;
&lt;H2&gt;&lt;U&gt;&lt;STRONG&gt;4. pyang&lt;/STRONG&gt;&lt;/U&gt;&amp;nbsp;- &lt;FONT size="4"&gt;a YANG validator, and code generator, written in python.&lt;/FONT&gt;&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://github.com/mbj4668/pyang" target="_blank" rel="noopener"&gt;pyang&lt;/A&gt; - official GitHub Repository&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;&lt;U&gt;&lt;STRONG&gt;5. yang.connector&lt;/STRONG&gt;&lt;/U&gt;&amp;nbsp;- &lt;FONT size="4"&gt;a package containing collections of tools to test YANG models via NETCONF and RESTCONF protocols.&lt;/FONT&gt;&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/docs/yang-connector/" target="_blank" rel="noopener"&gt;yang.connector&lt;/A&gt; - Documentation on Cisco DevNet&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;&amp;nbsp;&lt;/H2&gt;
&lt;H2&gt;&lt;U&gt;&lt;STRONG&gt;6. yang-explorer&lt;/STRONG&gt;&lt;/U&gt;- &lt;FONT size="4"&gt;an&amp;nbsp;open-source Yang Browser and RPC Builder Application to experiment with Yang Data Models&lt;/FONT&gt;&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/codeexchange/github/repo/CiscoDevNet/yang-explorer/" target="_blank" rel="noopener"&gt;yang-explorer&lt;/A&gt; - on Cisco Code Exchange&lt;/LI&gt;
&lt;/UL&gt;
&lt;BR /&gt;&lt;HR /&gt;&lt;BR /&gt;
&lt;H2&gt;&lt;U&gt;&lt;STRONG&gt;Cisco Community Forums&lt;/STRONG&gt;&lt;/U&gt;&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://community.cisco.com/t5/yang-tools/bd-p/5475j-disc-dev-net-ydk" target="_blank" rel="noopener"&gt;YANG Tools&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/DIV&gt;
&lt;DIV class="lia-message-template-content-zone"&gt;&lt;BR /&gt;
&lt;H2&gt;&lt;U&gt;&lt;STRONG&gt;Docs&lt;/STRONG&gt;&lt;/U&gt;&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/docs/ios-xe-voip/#!yang-tools" target="_self"&gt;YANG Tools&lt;/A&gt; - on Cisco DevNet&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/CiscoDevNet?q=YANG&amp;amp;type=&amp;amp;language=&amp;amp;sort=" target="_blank" rel="noopener"&gt;GitHub Repos&lt;/A&gt; - List of YANG-related repositories on the official Cisco DevNet GitHub page.&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/docs/nx-os/#!model-driven-programmability-with-yang/the-rise-of-network-automation" target="_blank" rel="noopener"&gt;APIs - Model Driven Programmability with YANG&lt;/A&gt; (for NX-OS)&lt;/LI&gt;
&lt;/UL&gt;
&lt;BR /&gt;
&lt;H2&gt;&lt;U&gt;&lt;STRONG&gt;External Resources&lt;/STRONG&gt;&lt;/U&gt;&lt;/H2&gt;
&lt;DIV&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://wiki.opendaylight.org/display/ODL/YANG+Tools" target="_blank" rel="noopener"&gt;YANG Tools&lt;/A&gt; - Repository of YANG Tools on the OpenDaylight Wiki&lt;/LI&gt;
&lt;/UL&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;</description>
      <pubDate>Wed, 05 May 2021 16:40:05 GMT</pubDate>
      <guid>https://community.cisco.com/t5/networking-documents/yang-tools-knowledge-base/ta-p/4391750</guid>
      <dc:creator>alexstev</dc:creator>
      <dc:date>2021-05-05T16:40:05Z</dc:date>
    </item>
    <item>
      <title>Difference between USGMII and USXGMII and why USGMII is better than SGMII/QSGMII</title>
      <link>https://community.cisco.com/t5/networking-documents/difference-between-usgmii-and-usxgmii-and-why-usgmii-is-better/ta-p/4304438</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;Difference between USGMII and USXGMII:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;USGMII is used for 8x10M/100M/1GE network ports, with each port maximum speed of 1GE. USXGMII-Single&amp;nbsp; Port version can be used to support &lt;U&gt;ONE&lt;/U&gt; network port with 10M/100M/1G/2.5G/5G/10G data rates&lt;/LI&gt;
&lt;LI&gt;USGMII is used for 10M/100M/1G network port speeds, while USXGMII support 10M/100M/1G/2.5G/5G/10G.&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;There are two types of USXGMII: USXGMII-Single Port and USXGMII-Multiple Ports.&lt;/LI&gt;
&lt;LI&gt;USGMII and USXGMII provide the same capabilities using the packet control header.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Why USGMII is better than SGMII/QSGMII:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;SGMII supports a single 10M/100M/1G network port over 1,25Gbps SERDES between MAC and PHY, while QSGMII supports four 10M/100M/1G network ports over 5Gbps SERDES between MAC and PHY.&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;USGMII supports eight 10M/100M/1G network ports over 10Gbps SERDES between MAC and PHY. This is most critical for high density switches and PHY. USGMII also provides packet control header to pass control/status between PHY and MAC. One of the application is Time-Stamp for PTP and 802.1AS.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/DIV&gt;</description>
      <pubDate>Wed, 10 Mar 2021 03:18:34 GMT</pubDate>
      <guid>https://community.cisco.com/t5/networking-documents/difference-between-usgmii-and-usxgmii-and-why-usgmii-is-better/ta-p/4304438</guid>
      <dc:creator>Paul Zimmerman</dc:creator>
      <dc:date>2021-03-10T03:18:34Z</dc:date>
    </item>
    <item>
      <title>Contact Center Knowledge Base</title>
      <link>https://community.cisco.com/t5/collaboration-documents/contact-center-knowledge-base/ta-p/4301132</link>
      <description>&lt;H1&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-left" image-alt="Customer Journey Platform_1024.png" style="width: 81px;"&gt;&lt;img src="https://community.cisco.com/t5/image/serverpage/image-id/104073i114261525F36E44A/image-dimensions/81x81?v=v2" width="81" height="81" role="button" title="Customer Journey Platform_1024.png" alt="Customer Journey Platform_1024.png" /&gt;&lt;/span&gt;Contact Center Knowledge Base&lt;/H1&gt;
&lt;P&gt;The Contact Center knowledge base contains information about developer topics for Finesse and Task Routing. For one-on-one help with these products, you can open a ticket at&amp;nbsp;&lt;A href="https://developer.cisco.com/site/support/" target="_blank" rel="noopener"&gt;https://developer.cisco.com/site/support/&lt;/A&gt;. For other products, please contact Cisco TAC (&lt;A href="https://support.cisco.com" target="_blank" rel="noopener"&gt;support.cisco.com&lt;/A&gt;).&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Finesse&lt;/H2&gt;
&lt;H3&gt;&amp;nbsp;&lt;/H3&gt;
&lt;H3&gt;Start&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/docs/finesse/#!getting-started/get-a-finesse-system" target="_self"&gt;Get a Finesse environment: DevNet Sandbox&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/docs/finesse/#faq/developer" target="_blank" rel="noopener"&gt;What can a developer do with the Finesse APIs&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/docs/finesse/#faq/difference" target="_self"&gt;Difference between the Finesse REST API and the Finesse JavaScript API&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/docs/finesse/#faq/apps" target="_self"&gt;Finesse differences between a UCCX and UCCE deployment&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.cisco.com/c/en/us/support/customer-collaboration/finesse/products-maintenance-guides-list.html" target="_self"&gt;Finesse Administration Guide&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.cisco.com/c/en/us/support/customer-collaboration/finesse/products-user-guide-list.html" target="_self"&gt;Finesse Agent and Supervisor Desktop User Guide&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/docs/finesse/#faq" target="_self"&gt;Finesse FAQ&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;&amp;nbsp;&lt;/H3&gt;
&lt;H3&gt;Finesse REST API&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/docs/finesse/#!environment-and-tools" target="_self"&gt;Tools: Postman &amp;amp; Pidgin/Adium&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/docs/finesse/#!rest-api-dev-guide" target="_self"&gt;Finesse developer guide documentation&lt;/A&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/docs/finesse/#faq/documentation-101" target="_self"&gt;Documentation 101: How to read the table&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/docs/finesse/#faq/notification" target="_self"&gt;Finesse notification service / XMPP&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/docs/finesse/#faq/port" target="_self"&gt;REST API ports&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/docs/finesse/#faq/port-notification" target="_self"&gt;Notification ports&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/docs/finesse/#faq/authentication" target="_self"&gt;REST API authentication&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/docs/finesse/#!self-paced-tutorials" target="_self"&gt;Finesse REST API self-paced tutorials&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/docs/finesse/#!rest-api-with-sso-guide-client-integration/client-integration" target="_self"&gt;Finesse SSO client integration&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;&amp;nbsp;&lt;/H3&gt;
&lt;H3&gt;Finesse JavaScript API&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/docs/finesse/#!javascript-library" target="_self"&gt;Finesse JavaScript Library documentation&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/docs/finesse/#!visual-design-guide" target="_self"&gt;Visual design guide&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/docs/finesse/#!sample-gadgets" target="_self"&gt;Finesse sample gadgets&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/docs/finesse/#faq/xmpp-bosh-libraries" target="_self"&gt;XMPP/BOSH/Websocket libraries&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/docs/finesse/#faq/uploadGadget" target="_self"&gt;Where to upload custom gadgets&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/docs/finesse/#faq/callback" target="_self"&gt;Understanding callbacks&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/docs/finesse/#faq/cache" target="_self"&gt;Gadget changes not reflected&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;&amp;nbsp;&lt;/H3&gt;
&lt;H3&gt;Learn&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/docs/finesse/#!self-paced-tutorials" target="_blank" rel="noopener"&gt;Finesse Learning labs&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://devnetsandbox.cisco.com/RM/Diagram/Index/73b40411-f40a-48b2-8908-b95f104950c6?diagramType=Topology" target="_blank" rel="noopener"&gt;DevNet Sandbox&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;&amp;nbsp;&lt;/H2&gt;
&lt;H2&gt;Task Routing&lt;/H2&gt;
&lt;H3&gt;&amp;nbsp;&lt;/H3&gt;
&lt;H3&gt;Start&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/docs/task-routing/#!task-routing-overview/as-a-developer-what-can-i-build-using-the-task-routing-apis" target="_self"&gt;What a developer can do with the Task Routing APIs&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://Task Routing Developer Guide" target="_self"&gt;Task Routing Developer Guide&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/docs/task-routing/#!task-routing-overview/what-is-task-routing" target="_self"&gt;Task Routing FAQ&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;&amp;nbsp;&lt;/H3&gt;
&lt;H3&gt;Learn&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://developer.cisco.com/docs/task-routing/#!sandbox/task-routing-sandbox" target="_self"&gt;DevNet Sandbox&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 26 Apr 2021 19:33:33 GMT</pubDate>
      <guid>https://community.cisco.com/t5/collaboration-documents/contact-center-knowledge-base/ta-p/4301132</guid>
      <dc:creator>Paul Zimmerman</dc:creator>
      <dc:date>2021-04-26T19:33:33Z</dc:date>
    </item>
    <item>
      <title>Webex Developer resources</title>
      <link>https://community.cisco.com/t5/collaboration-documents/webex-developer-resources/ta-p/3886824</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;TABLE style="border: 0px !important;" border="0" width="100%"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="33.333333333333336%" height="100px"&gt;
&lt;P&gt;&lt;SPAN style="font-family: helvetica;"&gt;&lt;STRONG&gt;&lt;FONT face="arial,helvetica,sans-serif" size="5"&gt;Welcome&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="arial,helvetica,sans-serif" size="5"&gt;!&lt;/FONT&gt;&lt;BR /&gt;To my &lt;/SPAN&gt;&lt;SPAN style="font-family: helvetica;"&gt;Webex Developer&amp;nbsp;resource overview&lt;/SPAN&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="100px"&gt;&lt;STRONG&gt;&lt;FONT size="5"&gt;Like it&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT size="5"&gt;?&lt;/FONT&gt;&lt;BR /&gt;Please scroll to the end and click the 'Helpful' button!&lt;/TD&gt;
&lt;TD width="33.333333333333336%" height="100px"&gt;
&lt;P&gt;&lt;FONT size="5"&gt;&lt;STRONG&gt;Contribute&lt;/STRONG&gt;?&lt;/FONT&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-right" image-alt="logo_spark_64.jpeg" style="width: 65px;"&gt;&lt;img src="https://community.cisco.com/t5/image/serverpage/image-id/40356iE602E9A90C370FF3/image-dimensions/65x65?v=v2" width="65" height="65" role="button" title="logo_spark_64.jpeg" alt="logo_spark_64.jpeg" /&gt;&lt;/span&gt;&lt;BR /&gt;Something I should add? Let me know in the comments!&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;/DIV&gt;
&lt;P class="lia-indent-padding-left-270px"&gt;&lt;SPAN style="font-family: helvetica;"&gt;&lt;SPAN style="font-family: helvetica; text-align: right;"&gt;&lt;EM&gt;&lt;FONT color="#008000"&gt;QUICK ACCESS TO &lt;U&gt;THIS&lt;/U&gt; PAGE:&amp;nbsp;&lt;/FONT&gt;&lt;/EM&gt;&lt;A href="http://cs.co/webexdevinfo" target="_blank" rel="noopener"&gt;cs.co/webexdevinfo&lt;/A&gt;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;TABLE border="1" width="100%"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="100%" class="lia-indent-padding-left-240px" style="background-color: yellow; width: 100%;"&gt;&lt;SPAN style="font-family: helvetica;"&gt;&lt;FONT color="#FF0000"&gt;&lt;STRONG&gt;NEW&lt;/STRONG&gt;&lt;/FONT&gt;: LinkedIn Webex Developer group &lt;A href="http://cs.co/webexdevlink" target="_blank" rel="noopener"&gt;cs.co/webexdevlink&lt;/A&gt;&amp;nbsp;news/tips/announcements/&amp;amp;more&lt;/SPAN&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;TABLE style="height: 626px; width: 99.9999%; border-collapse: collapse; border-style: none; border-color: #ffffff;" border="0" width="99.9999%"&gt;
&lt;TBODY&gt;
&lt;TR style="height: 30px;"&gt;
&lt;TD width="47.2164%" height="30px" style="width: 47.2164%; background-color: #54b9e6; height: 30px;"&gt;&lt;FONT size="5" color="#FFFFFF"&gt;&amp;nbsp;GENERIC&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width="4.41881%" height="30px" style="width: 4.41881%; height: 30px; border-color: #ffffff;"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="48.3647%" height="30px" style="width: 48.3647%; background-color: #54b9e6; height: 30px;"&gt;&lt;FONT size="5" color="#FFFFFF"&gt;DOCS &amp;amp; TRAINING&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 30px;"&gt;
&lt;TD width="47.2164%" height="116px" style="width: 47.2164%; background-color: #eaeaea; height: 116px; vertical-align: top;"&gt;
&lt;P&gt;&lt;SPAN style="font-family: helvetica;"&gt;Webex &lt;A class="jive-link-external-small" href="https://developer.webex.com/" target="_blank" rel="nofollow noopener"&gt;Developer Portal&lt;/A&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: helvetica;"&gt;Developer &lt;A href="https://developer.webex.com/blog" target="_blank" rel="noopener"&gt;blog&lt;/A&gt;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;What's &lt;A href="https://developer.webex.com/docs/api/changelog" target="_blank" rel="noopener"&gt;New&lt;/A&gt;&amp;nbsp;&lt;BR /&gt;Admin &lt;A href="https://developer.webex.com/docs/api/guides/admin-api#administration-sandbox" target="_blank" rel="noopener"&gt;API&lt;/A&gt;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: helvetica;"&gt;&lt;STRONG&gt;Developer&lt;/STRONG&gt; &lt;STRONG&gt;&lt;A href="https://developer.webex.com/support" target="_blank" rel="noopener"&gt;support&lt;/A&gt;&lt;/STRONG&gt;&amp;nbsp;&lt;FONT size="1 2 3 4 5 6 7" color="#FF0000"&gt;GREAT!&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: helvetica;"&gt;Developer &lt;A href="https://developer.webex.com/support" target="_blank" rel="noopener"&gt;Support&lt;/A&gt;&amp;nbsp; / &lt;A href="https://devsupport.webex.com/hc/en-us" target="_blank" rel="noopener"&gt;portal&lt;/A&gt;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;STRONG&gt;Awesome &lt;A href="https://github.com/CiscoDevNet/awesome-webex/" target="_blank" rel="noopener"&gt;Webex&lt;/A&gt;&lt;/STRONG&gt; &lt;FONT size="1 2 3 4 5 6 7" color="#FF0000"&gt;GREAT!&lt;/FONT&gt;&amp;nbsp;&lt;BR /&gt;Youtube &lt;A href="https://www.youtube.com/playlist?list=PLnmZBuUq5ehA5BjvWQn44tZgtR060Lpzz" target="_blank" rel="noopener"&gt;integration videos&lt;/A&gt;&lt;BR /&gt;&lt;STRONG&gt;Communities&lt;BR /&gt;&lt;/STRONG&gt;&lt;SPAN&gt;&lt;A title="https://ambassador.webex.com" href="https://ambassador.webex.com/" target="_blank" rel="noopener" data-cke-saved-href="https://ambassador.webex.com" data-interception="off"&gt;Webex Ambassador&lt;/A&gt;&amp;nbsp;group&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;DevNet&amp;nbsp;&lt;/SPAN&gt;&lt;A title="https://developer.cisco.com/webex-teams/" href="https://developer.cisco.com/webex-teams/" target="_blank" rel="noopener" data-cke-saved-href="https://developer.cisco.com/webex-teams/" data-interception="off"&gt;Webex Teams&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN style="font-family: helvetica;"&gt;Community &lt;A href="https://community.cisco.com/t5/cloud-collaboration/bd-p/j-disc-dev-cloud-collab" target="_blank" rel="noopener"&gt;Developer&lt;/A&gt; / &lt;A href="https://community.cisco.com/t5/team-collaboration-discussions/bd-p/2636j-disc-partner-collab-services" target="_blank" rel="noopener"&gt;Partner&lt;/A&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="4.41881%" height="116px" style="width: 4.41881%; height: 116px; border-color: #ffffff; border-style: hidden;"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="48.3647%" height="116px" style="width: 48.3647%; background-color: #eaeaea; height: 116px; vertical-align: top;"&gt;
&lt;TABLE style="width: 80%; border-collapse: collapse;" border="1"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD style="width: 50%; vertical-align: top;"&gt;
&lt;P&gt;&lt;SPAN style="font-family: helvetica;"&gt;&lt;A class="jive-link-external-small" href="https://developer.webex.com/" target="_blank" rel="nofollow noopener"&gt;Developer Portal &lt;/A&gt; &lt;BR /&gt;&lt;/SPAN&gt;&lt;A href="https://developer.webex.com/docs/bots" target="_blank" rel="noopener"&gt;Bots&lt;/A&gt;&amp;nbsp; &lt;BR /&gt;&lt;A href="https://developer.webex.com/docs/integrations" target="_blank" rel="noopener"&gt;Integrations&lt;/A&gt;&amp;nbsp; &lt;BR /&gt;&lt;A href="https://developer.webex.com/docs/widgets" target="_blank" rel="noopener"&gt;Widgets&lt;/A&gt;&lt;BR /&gt;Guest &lt;A href="https://developer.webex.com/docs/guest-issuer" target="_blank" rel="noopener"&gt;Issuer&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD style="width: 50%; vertical-align: top;"&gt;
&lt;P&gt;Getting &lt;A href="https://developer.webex.com/docs/api/getting-started" target="_blank" rel="noopener"&gt;Started&lt;/A&gt;&lt;BR /&gt;guide - &lt;A href="https://developer.webex.com/docs/api/guides/admin-api" target="_blank" rel="noopener"&gt;Admin&lt;/A&gt;&lt;BR /&gt;guide - &lt;A href="https://developer.webex.com/docs/api/guides/compliance" target="_blank" rel="noopener"&gt;Compliance&lt;/A&gt;&lt;BR /&gt;guide - &lt;A href="https://developer.webex.com/docs/api/guides/webhooks" target="_blank" rel="noopener"&gt;Webhooks&lt;/A&gt;&lt;BR /&gt;guide - &lt;A href="https://developer.webex.com/docs/api/guides/managing-hybrid-services-licenses" target="_blank" rel="noopener"&gt;Hybrid&lt;/A&gt;&lt;BR /&gt;API &lt;A href="https://developer.webex.com/docs/api/changelog" target="_blank" rel="noopener"&gt;change-log&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Change &lt;A href="https://status.webex.com/maintenance?lang=en_US" target="_blank" rel="noopener"&gt;calendar&lt;/A&gt;&amp;nbsp;&lt;FONT size="2"&gt;LIKE&lt;/FONT&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P class="jive-link-external-small"&gt;&lt;A href="https://learninglabs.cisco.com" target="_blank" rel="noopener"&gt;Learning Labs&lt;/A&gt;&amp;nbsp;&lt;FONT size="1 2 3 4 5 6 7" color="#FF0000"&gt;GREAT!&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;DevNet &lt;A href="https://developer.cisco.com/learning/tracks/collab-cloud" target="_blank" rel="noopener"&gt;Webex API tracks&lt;/A&gt;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;DevNet Collaboration &lt;A href="https://developer.cisco.com/site/collaboration/" target="_blank" rel="noopener"&gt;Dev Center&lt;/A&gt;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;Training: &lt;A href="https://www.py4e.com/lessons" target="_blank" rel="noopener"&gt;Python for Everyone&lt;/A&gt;&amp;nbsp;&amp;nbsp;&lt;FONT size="1 2 3 4 5 6 7" color="#FF0000"&gt;GREAT!&lt;/FONT&gt;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&lt;A title="https://www.cisco.com/c/dam/en/us/td/docs/voice_ip_comm/cloudCollaboration/spark/whitepapers/cisco-wbxt-firewall-traversal-whitepaper.pdf" href="https://www.cisco.com/c/dam/en/us/td/docs/voice_ip_comm/cloudCollaboration/spark/whitepapers/cisco-wbxt-firewall-traversal-whitepaper.pdf" target="_blank" rel="noopener" data-cke-saved-href="https://www.cisco.com/c/dam/en/us/td/docs/voice_ip_comm/cloudCollaboration/spark/whitepapers/cisco-wbxt-firewall-traversal-whitepaper.pdf" data-interception="off"&gt;Firewall traversal&lt;/A&gt;&amp;nbsp;&lt;BR /&gt;Teams&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A title="https://github.com/WebexSamples/webex-card-school" href="https://github.com/WebexSamples/webex-card-school" target="_blank" rel="noopener" data-cke-saved-href="https://github.com/WebexSamples/webex-card-school" data-interception="off"&gt;Buttons &amp;amp; Cards school&lt;/A&gt;&amp;nbsp;&lt;FONT size="1 2 3 4 5 6 7" color="#FF0000"&gt;LIKE!&lt;/FONT&gt;&amp;nbsp; &amp;nbsp;&lt;/P&gt;
&lt;P class="jive-link-external-small"&gt;Cisco Live Collab &lt;A href="https://www.linkedin.com/pulse/cisco-collaboration-dev-content-live-2020-dirk-jan-uittenbogaard/" target="_blank" rel="noopener"&gt;Dev session list&lt;/A&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P class="jive-link-external-small"&gt;&amp;nbsp;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 30px;"&gt;
&lt;TD width="47.2164%" height="30px" style="width: 47.2164%; height: 30px; border-color: #ffffff; border-style: hidden; vertical-align: top;"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="4.41881%" height="30px" style="width: 4.41881%; height: 30px; vertical-align: top; border-color: #ffffff; border-style: none;"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="48.3647%" height="30px" style="width: 48.3647%; height: 30px; border-color: #ffffff; border-style: hidden; vertical-align: top;"&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 30px;"&gt;
&lt;TD width="47.2164%" height="30px" style="width: 47.2164%; background-color: #81bc5a; height: 30px;"&gt;&lt;FONT size="5" color="#FFFFFF"&gt;&amp;nbsp;EXAMPLE CODE&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width="4.41881%" height="30px" style="width: 4.41881%; height: 30px; border-style: none; border-color: #ffffff;"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="48.3647%" height="30px" style="width: 48.3647%; background-color: #81bc5a; height: 30px;"&gt;&lt;FONT size="5" color="#FFFFFF"&gt;&amp;nbsp;USE CASES &amp;amp; EXAMPLES&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 30px;"&gt;
&lt;TD width="47.2164%" height="30px" style="width: 47.2164%; height: 30px; background-color: #eaeaea; vertical-align: top;"&gt;
&lt;P&gt;&lt;SPAN&gt;Teams&amp;nbsp;&lt;/SPAN&gt;&lt;A title="https://github.com/DJF3/Webex-Teams-Space-Archive-v2" href="https://github.com/DJF3/Webex-Teams-Space-Archive-v2" target="_blank" rel="noopener" data-cke-saved-href="https://github.com/DJF3/Webex-Teams-Space-Archive-v2" data-interception="off"&gt;Space archiver v2&lt;/A&gt;&amp;nbsp; (&lt;A href="https://www.youtube.com/watch?v=gula_Hxh2ms" target="_blank" rel="noopener"&gt;video&lt;/A&gt;)&lt;BR /&gt;Python &lt;A href="https://github.com/DJF3/Webex-Teams-Flask-oAuth" target="_blank" rel="noopener"&gt;oAuth&lt;/A&gt; basic example&lt;BR /&gt;Python&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A title="https://github.com/DJF3/webex-teams-translate-bot-session" href="https://github.com/DJF3/webex-teams-translate-bot-session" target="_blank" rel="noopener" data-cke-saved-href="https://github.com/DJF3/webex-teams-translate-bot-session" data-interception="off"&gt;Translate bot&lt;/A&gt;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&lt;SPAN&gt;EURL.io&amp;nbsp;Space Member&amp;nbsp;&lt;A title="https://github.com/birdietiger/publicspaces-webexteams" href="https://github.com/birdietiger/publicspaces-webexteams" target="_blank" rel="noopener" data-cke-saved-href="https://github.com/birdietiger/publicspaces-webexteams" data-interception="off"&gt;&lt;SPAN class="fontColorBlue"&gt;code&amp;nbsp;on&amp;nbsp;Github&lt;/SPAN&gt;&lt;/A&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN class="fontColorBlue"&gt;[PHP]&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;A title="http://pastebin.com/xZ4ZzSaL" href="http://pastebin.com/xZ4ZzSaL" target="_blank" rel="noopener" data-cke-saved-href="http://pastebin.com/xZ4ZzSaL" data-interception="off"&gt;&lt;SPAN class="fontColorBlue"&gt;Webex Teams API&lt;/SPAN&gt;&amp;nbsp;&lt;/A&gt;&lt;SPAN class="fontColorBlueLight"&gt;&lt;SUP&gt;&amp;nbsp;&lt;/SUP&gt;&lt;/SPAN&gt;&lt;SPAN class="fontColorGreen"&gt;&lt;SUP&gt;&amp;nbsp;&lt;/SUP&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;Browser SDK&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A title="https://developer.webex.com/sdk-for-browsers.html#samples" href="https://developer.webex.com/sdk-for-browsers.html#samples" target="_blank" rel="noopener" data-cke-saved-href="https://developer.webex.com/sdk-for-browsers.html#samples" data-interception="off"&gt;examples&lt;/A&gt;&amp;nbsp;&lt;BR /&gt;Widget&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A title="https://github.com/CiscoDevNet/webex-widget-samples" href="https://github.com/CiscoDevNet/webex-widget-samples" target="_blank" rel="noopener" data-cke-saved-href="https://github.com/CiscoDevNet/webex-widget-samples" data-interception="off"&gt;examples&lt;/A&gt;&lt;BR /&gt;&lt;SPAN&gt;IoT &amp;amp; Raspberry&amp;nbsp;to Wx Teams&amp;nbsp;&lt;A title="https://cisco.sharepoint.com/Sites/PeterFincher[pfincher]/SitePages/Connecting%20the%20IoT%20to%20SparkSquared,%20with%20a%20Raspberry%20Pi.aspx" href="https://cisco.sharepoint.com/Sites/PeterFincher[pfincher]/SitePages/Connecting%20the%20IoT%20to%20SparkSquared,%20with%20a%20Raspberry%20Pi.aspx" target="_blank" rel="noopener" data-cke-saved-href="https://cisco.sharepoint.com/Sites/PeterFincher[pfincher]/SitePages/Connecting%20the%20IoT%20to%20SparkSquared,%20with%20a%20Raspberry%20Pi.aspx" data-interception="on"&gt;part 1&lt;/A&gt;&amp;nbsp;/&amp;nbsp;&lt;A title="https://cisco.sharepoint.com/Sites/PeterFincher[pfincher]/SitePages/2_Connecting%20the%20IoT%20to%20Spark,%20with%20a%20Raspberry%20Pi%20%20Part%202.aspx" href="https://cisco.sharepoint.com/Sites/PeterFincher[pfincher]/SitePages/2_Connecting%20the%20IoT%20to%20Spark,%20with%20a%20Raspberry%20Pi%20%20Part%202.aspx" target="_blank" rel="noopener" data-cke-saved-href="https://cisco.sharepoint.com/Sites/PeterFincher[pfincher]/SitePages/2_Connecting%20the%20IoT%20to%20Spark,%20with%20a%20Raspberry%20Pi%20%20Part%202.aspx" data-interception="off"&gt;part 2&lt;/A&gt;&amp;nbsp;&lt;SPAN class="fontColorBlueLight"&gt;&lt;SUP&gt;&amp;nbsp;&lt;/SUP&gt;&lt;/SPAN&gt;&lt;SPAN class="fontColorGreen"&gt;&lt;SUP&gt;&amp;nbsp;&lt;BR /&gt;&lt;/SUP&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;NodeJS&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A title="https://github.com/CiscoDevNet/webex-integration-sample" href="https://github.com/CiscoDevNet/webex-integration-sample" target="_blank" rel="noopener" data-cke-saved-href="https://github.com/CiscoDevNet/webex-integration-sample" data-interception="off"&gt;oAuth example&lt;/A&gt;&amp;nbsp;&lt;BR /&gt;Webex&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A title="https://github.com/WebexSamples/webex-card-school" href="https://github.com/WebexSamples/webex-card-school" target="_blank" rel="noopener" data-cke-saved-href="https://github.com/WebexSamples/webex-card-school" data-interception="off"&gt;Buttons and Cards School&lt;/A&gt;&lt;BR /&gt;&lt;STRONG&gt;OVERVIEWS&lt;BR /&gt;&lt;/STRONG&gt;&lt;A href="https://ciscowebexteamsambassadors.github.io/StarterKits/" target="_blank" rel="noopener"&gt;Starter&lt;/A&gt; Kits (open source)&lt;BR /&gt;DevNet &lt;A href="https://creations.devnetcloud.com/" target="_blank" rel="noopener"&gt;Creations&lt;/A&gt; &lt;BR /&gt;Cisco &lt;A href="https://developer.cisco.com/codeexchange/platforms/webex" target="_blank" rel="noopener"&gt;Code Exchange&lt;/A&gt;&amp;nbsp;&lt;BR /&gt;DevNet &lt;A href="https://github.com/CiscoDevNet?utf8=%E2%9C%93&amp;amp;query=teams" target="_blank" rel="noopener"&gt;Github&lt;/A&gt;&amp;nbsp;&lt;BR /&gt;Search Github '&lt;A href="https://github.com/search?q=webex+teams&amp;amp;type=Repositories" target="_blank" rel="noopener"&gt;webex teams&lt;/A&gt;'&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="4.41881%" height="30px" style="width: 4.41881%; height: 30px; border-color: #ffffff; border-style: hidden;"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="48.3647%" height="30px" style="width: 48.3647%; height: 30px; background-color: #eaeaea; vertical-align: top;"&gt;
&lt;P&gt;&lt;FONT size="3"&gt;DevNet&lt;/FONT&gt; &lt;A href="https://creations.devnetcloud.com/" target="_blank" rel="noopener"&gt;Creations&lt;/A&gt;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;Cisco &lt;A href="https://developer.cisco.com/codeexchange/platforms/webex" target="_blank" rel="noopener"&gt;Code Exchange&lt;/A&gt;&amp;nbsp;&lt;BR /&gt;Youtube Channel: Webex &lt;A href="https://www.youtube.com/playlist?list=PLnmZBuUq5ehA5BjvWQn44tZgtR060Lpzz" target="_blank" rel="noopener"&gt;Teams Integrations&lt;/A&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;BR /&gt;&lt;SPAN&gt;&lt;BR /&gt;Video&amp;nbsp;&lt;A href="https://www.youtube.com/watch?v=r_9ZVk4UPKk" target="_blank" rel="noopener" data-cke-saved-href="https://www.youtube.com/watch?v=r_9ZVk4UPKk"&gt;&lt;SPAN class="fontColorBlue"&gt;problem reporting&lt;/SPAN&gt;&lt;/A&gt;&amp;nbsp;to Wx Teams&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;A href="https://communities.cisco.com/community/developer/spark/blog/2016/01/06/developers-hack-away-hospital-wait-times" target="_blank" rel="noopener" data-cke-saved-href="https://communities.cisco.com/community/developer/spark/blog/2016/01/06/developers-hack-away-hospital-wait-times"&gt;&lt;SPAN class="fontColorBlue"&gt;Hospital wait times&lt;/SPAN&gt;&lt;/A&gt;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;Webex Teams&amp;nbsp;&lt;A title="https://www.wwt.com/search?searchTerm=webex%20teams&amp;amp;page=1&amp;amp;pageSize=24" href="https://www.wwt.com/search?searchTerm=webex%20teams&amp;amp;page=1&amp;amp;pageSize=24" target="_blank" rel="noopener" data-cke-saved-href="https://www.wwt.com/search?searchTerm=webex%20teams&amp;amp;page=1&amp;amp;pageSize=24" data-interception="off"&gt;&lt;SPAN class="fontColorBlue"&gt;articles by&amp;nbsp;WWT&lt;/SPAN&gt;&lt;/A&gt;&amp;nbsp;(partner)&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;Webex&amp;nbsp;&lt;A title="https://apphub.webex.com" href="https://apphub.webex.com/" target="_blank" rel="noopener" data-cke-saved-href="https://apphub.webex.com" data-interception="off"&gt;App Hub&lt;/A&gt;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;UCS Director&amp;nbsp;&lt;A title="https://communities.cisco.com/docs/DOC-64423" href="https://communities.cisco.com/docs/DOC-64423" target="_blank" rel="noopener" data-interception="off" data-cke-saved-href="https://communities.cisco.com/docs/DOC-64423"&gt;integration&lt;/A&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;App:&amp;nbsp;&lt;A title="https://talk2spark.com/" href="https://talk2spark.com/" target="_blank" rel="noopener" data-interception="off" data-cke-saved-href="https://talk2spark.com/"&gt;Talk 2 Webex Teams&lt;/A&gt;&amp;nbsp;mobile app for audio/video/TTS&lt;/SPAN&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 30px;"&gt;
&lt;TD width="47.2164%" height="30px" style="width: 47.2164%; height: 30px; border-color: #ffffff; border-style: hidden; vertical-align: top;"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="4.41881%" height="30px" style="width: 4.41881%; height: 30px; vertical-align: top;"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="48.3647%" height="30px" style="width: 48.3647%; height: 30px; border-color: #ffffff; border-style: hidden; vertical-align: top;"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 30px;"&gt;
&lt;TD width="47.2164%" height="30px" style="width: 47.2164%; background-color: #e0a43e; height: 30px;"&gt;&lt;FONT size="5" color="#FFFFFF"&gt;&amp;nbsp;WIDGETS &amp;amp; SDK&lt;BR /&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width="4.41881%" height="30px" style="width: 4.41881%; height: 30px; border-color: #ffffff; border-style: hidden;"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="48.3647%" height="30px" style="width: 48.3647%; background-color: #e0a43e; height: 30px;"&gt;&lt;FONT size="5" color="#FFFFFF"&gt;&amp;nbsp;LIBRARIES &amp;amp; FRAMEWORKS&lt;BR /&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 30px;"&gt;
&lt;TD width="47.2164%" height="30px" style="width: 47.2164%; height: 30px; background-color: #eaeaea; vertical-align: top;"&gt;
&lt;P&gt;Widget &lt;A href="https://developer.webex.com/docs/widgets" target="_blank" rel="noopener"&gt;Documentation&lt;/A&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;Widget Learning &lt;A href="https://developer.cisco.com/learning/labs?keywords=widget" target="_blank" rel="noopener"&gt;Labs&lt;/A&gt;&amp;nbsp; &lt;BR /&gt;&lt;BR /&gt;SDK&amp;nbsp; &lt;A href="https://developer.webex.com/docs/sdks/ios" target="_blank" rel="noopener"&gt;iOS&lt;/A&gt;&amp;nbsp; /&amp;nbsp;&amp;nbsp; &lt;A href="https://developer.webex.com/docs/sdks/android" target="_blank" rel="noopener"&gt;Android&lt;/A&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;SDK&amp;nbsp; &lt;A href="https://developer.webex.com/docs/sdks/browser" target="_blank" rel="noopener"&gt;Browser&lt;/A&gt;&amp;nbsp;&amp;nbsp; /&amp;nbsp;&amp;nbsp; &lt;A href="https://developer.webex.com/docs/sdks/node" target="_blank" rel="noopener"&gt;NodeJS&lt;/A&gt;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;SDK&amp;nbsp; &lt;A href="https://developer.webex.com/docs/sdks/java" target="_blank" rel="noopener"&gt;JAVA&lt;/A&gt; &amp;nbsp; / &amp;nbsp; &lt;A href="https://developer.webex.com/docs/sdks/community" target="_blank" rel="noopener"&gt;Community&lt;/A&gt;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;SDK Learning &lt;A href="https://developer.cisco.com/learning/labs?keywords=sdk" target="_blank" rel="noopener"&gt;Labs&lt;/A&gt;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;SDK&amp;nbsp;&lt;/SPAN&gt;&lt;A title="https://github.com/webex/webex-ios-sdk-example" href="https://github.com/webex/webex-ios-sdk-example" target="_blank" rel="noopener" data-interception="off" data-cke-saved-href="https://github.com/webex/webex-ios-sdk-example"&gt;&lt;SPAN class="fontColorBlue"&gt;example&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;(TestFlight)&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN class="fontColorGreen"&gt;&lt;SUP&gt;LIKE&lt;/SUP&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Python&amp;nbsp;&lt;A title="https://github.com/CiscoDevNet/webexteamssdk/" href="https://github.com/CiscoDevNet/webexteamssdk/" target="_blank" rel="noopener" data-cke-saved-href="https://github.com/CiscoDevNet/webexteamssdk/" data-interception="off"&gt;webexteamssdk&lt;/A&gt;&amp;nbsp;-&amp;nbsp;&lt;A title="https://eurl.io/#HkMxO-_9-" href="https://eurl.io/#HkMxO-_9-" target="_blank" rel="noopener" data-cke-saved-href="https://eurl.io/#HkMxO-_9-" data-interception="off"&gt;support&lt;/A&gt;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="4.41881%" height="30px" style="width: 4.41881%; height: 30px; border-color: #ffffff; border-style: hidden;"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="48.3647%" height="30px" style="width: 48.3647%; height: 30px; background-color: #eaeaea; vertical-align: top;"&gt;
&lt;P&gt;&lt;STRONG&gt;FRAMEWORK&lt;BR /&gt;&lt;/STRONG&gt;Webex&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A title="https://github.com/WebexSamples/webex-node-bot-framework" href="https://github.com/WebexSamples/webex-node-bot-framework" target="_blank" rel="noopener" data-cke-saved-href="https://github.com/WebexSamples/webex-node-bot-framework" data-interception="off"&gt;Node Bot framework&lt;/A&gt;&amp;nbsp;&lt;SPAN class="fontSizeSmall"&gt;&lt;SPAN class="fontColorRed"&gt;&lt;SUP&gt;LIKE&lt;/SUP&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&amp;nbsp;&lt;BR /&gt;Node.JS &lt;A href="https://github.com/CiscoDevNet/node-sparkbot" target="_blank" rel="noopener"&gt;bot framework&lt;/A&gt; (ObjectIsAdvantag)&lt;BR /&gt;Flint &amp;amp; Node.JS &lt;A href="https://github.com/nmarus/flint" target="_blank" rel="noopener"&gt;framework&lt;/A&gt; (nmarus)&amp;nbsp; |&lt;BR /&gt;Botkit&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A title="https://botkit.ai/docs/v0/readme-webex.html" href="https://botkit.ai/docs/v0/readme-webex.html" target="_blank" rel="noopener" data-cke-saved-href="https://botkit.ai/docs/v0/readme-webex.html" data-interception="off"&gt;framework&lt;/A&gt;&amp;nbsp; &amp;nbsp;(&lt;A title="https://github.com/CiscoDevNet/botkit-template" href="https://github.com/CiscoDevNet/botkit-template" target="_blank" rel="noopener" data-cke-saved-href="https://github.com/CiscoDevNet/botkit-template" data-interception="off"&gt;template&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;/&amp;nbsp;&lt;A title="https://github.com/CiscoDevNet/botkit-webex-samples" href="https://github.com/CiscoDevNet/botkit-webex-samples" target="_blank" rel="noopener" data-cke-saved-href="https://github.com/CiscoDevNet/botkit-webex-samples" data-interception="off"&gt;examples&lt;/A&gt;)&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;lab:&amp;nbsp;&lt;A title="https://developer.cisco.com/learning/lab/spark-botkit-lab/step/1" href="https://developer.cisco.com/learning/lab/spark-botkit-lab/step/1" target="_blank" rel="noopener" data-cke-saved-href="https://developer.cisco.com/learning/lab/spark-botkit-lab/step/1" data-interception="off"&gt;create teams bot&lt;/A&gt;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;lab:&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A title="https://developer.cisco.com/learning/lab/collab-spark-botkit/step/1" href="https://developer.cisco.com/learning/lab/collab-spark-botkit/step/1" target="_blank" rel="noopener" data-cke-saved-href="https://developer.cisco.com/learning/lab/collab-spark-botkit/step/1" data-interception="off"&gt;create conversational bot&lt;/A&gt;&amp;nbsp;&lt;BR /&gt;​​​​​​Python&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A title="https://github.com/hpreston/webexteamsbot" href="https://github.com/hpreston/webexteamsbot" target="_blank" rel="noopener" data-cke-saved-href="https://github.com/hpreston/webexteamsbot" data-interception="off"&gt;Webex Teams bot&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;framework&lt;BR /&gt;&lt;STRONG&gt;LIBRARY&lt;BR /&gt;&lt;/STRONG&gt;Python Teams &lt;A href="https://github.com/brbester/pyCiscoSpark" target="_blank" rel="noopener"&gt;library&lt;/A&gt; (brbester)&lt;BR /&gt;...more in '&lt;A href="https://github.com/CiscoDevNet/awesome-webex" target="_blank" rel="noopener"&gt;awesome webex&lt;/A&gt;'&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 30px;"&gt;
&lt;TD width="47.2164%" height="30px" style="width: 47.2164%; height: 30px; border-color: #ffffff; border-style: hidden; vertical-align: top;"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="4.41881%" height="30px" style="width: 4.41881%; height: 30px; border-color: #ffffff; vertical-align: top;"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="48.3647%" height="30px" style="width: 48.3647%; height: 30px; border-color: #ffffff; vertical-align: top;"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 30px;"&gt;
&lt;TD width="47.2164%" height="30px" style="width: 47.2164%; background-color: #204f6f; height: 30px;"&gt;&lt;FONT color="#FFFFFF"&gt;&lt;FONT size="5"&gt;&amp;nbsp;TOOLS&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="5" color="#FFFFFF"&gt;&lt;BR /&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width="4.41881%" height="30px" style="width: 4.41881%; height: 30px;"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="48.3647%" height="30px" style="width: 48.3647%; background-color: #204f6f; height: 30px;"&gt;&lt;FONT size="5" color="#FFFFFF"&gt;&amp;nbsp;DEVELOPMENT TOOLS&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 30px;"&gt;
&lt;TD width="47.2164%" height="30px" style="width: 47.2164%; height: 30px; background-color: #eaeaea; vertical-align: top;"&gt;
&lt;P&gt;Teams &lt;A href="https://power-pack.io/" target="_blank" rel="noopener"&gt;Power Pack&lt;/A&gt; &amp;nbsp;&amp;nbsp;&lt;BR /&gt;Space &lt;A href="https://tools.sparkintegration.club/sparkarchive/" target="_blank" rel="noopener"&gt;Archiving&lt;/A&gt; tool &lt;A href="https://github.com/DJF3/Webex-Teams-Space-Archive-v2" target="_blank" rel="noopener"&gt;GITHUB&lt;/A&gt; &amp;nbsp;&lt;BR /&gt;Teams &lt;A href="https://tools.sparkintegration.club/forms/about/" target="_blank" rel="noopener"&gt;Forms&lt;/A&gt;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;Video System &lt;A href="https://github.com/DJF3/Cisco-Video-System-Status-Monitor" target="_blank" rel="noopener"&gt;Status&lt;/A&gt; browser&amp;nbsp;&lt;BR /&gt;WebSocket Events&amp;nbsp; &lt;A href="https://github.com/marchfederico/ciscospark-websocket-events" target="_blank" rel="noopener"&gt;&lt;FONT size="2"&gt;link&lt;/FONT&gt;&lt;/A&gt; &amp;nbsp;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="4.41881%" height="30px" style="width: 4.41881%; height: 30px; border-style: hidden; border-color: #FFFFFF;"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="48.3647%" height="30px" style="width: 48.3647%; height: 30px; background-color: #eaeaea; vertical-align: top;"&gt;
&lt;P&gt;Postman &lt;A href="https://explore.postman.com/ciscodevnet" target="_blank" rel="noopener"&gt;Collections&lt;/A&gt;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;DevNet Collaboration &lt;A href="https://developer.cisco.com/docs/sandbox/#collaboration" target="_blank" rel="noopener"&gt;Sandboxes&lt;/A&gt;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;Webex Teams &lt;A href="https://github.com/ObjectIsAdvantag/webex-api-emulator" target="_blank" rel="noopener"&gt;API Emulator&lt;/A&gt;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&lt;A href="https://idbroker.webex.com/idb/profile#/tokens" target="_blank" rel="noopener" data-cke-saved-href="https://idbroker.webex.com/idb/profile#/tokens"&gt;&lt;SPAN class="fontColorBlue"&gt;Deactivate&lt;/SPAN&gt;&lt;/A&gt;&amp;nbsp;Bot &amp;amp; Integration tokens&amp;nbsp;&lt;BR /&gt;&lt;A title="https://github.com/cumberlandgroup/node-red-contrib-spark" href="https://github.com/cumberlandgroup/node-red-contrib-spark" target="_blank" rel="noopener" data-cke-saved-href="https://github.com/cumberlandgroup/node-red-contrib-spark" data-interception="off"&gt;Node-red&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;integration&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&lt;A title="https://github.com/sgrimee/whproxy" href="https://github.com/sgrimee/whproxy" target="_blank" rel="noopener" data-cke-saved-href="https://github.com/sgrimee/whproxy" data-interception="off"&gt;Webhook Proxy&lt;/A&gt;&amp;nbsp; &amp;nbsp;(github)&lt;BR /&gt;&lt;BR /&gt;Tool: &lt;A href="https://www.getpostman.com/" target="_blank" rel="noopener"&gt;Postman&lt;/A&gt;&amp;nbsp;&lt;BR /&gt;Editor: &lt;A href="https://atom.io/" target="_blank" rel="noopener"&gt;Atom&lt;/A&gt;&lt;BR /&gt;Editor: &lt;A href="https://notepad-plus-plus.org/" target="_blank" rel="noopener"&gt;Notepad++&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 30px;"&gt;
&lt;TD width="47.2164%" height="30px" style="width: 47.2164%; height: 30px; border-color: #ffffff; border-style: hidden; vertical-align: top;"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="4.41881%" height="30px" style="width: 4.41881%; height: 30px; border-color: #ffffff; vertical-align: top;"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="48.3647%" height="30px" style="width: 48.3647%; height: 30px; border-color: #ffffff; vertical-align: top;"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 30px;"&gt;
&lt;TD width="47.2164%" height="30px" style="width: 47.2164%; background-color: grey; height: 30px;"&gt;&lt;FONT color="#FFFFFF"&gt;&lt;FONT size="5"&gt;&amp;nbsp;INTEGRATION PLATFORMS&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="5" color="#FFFFFF"&gt;&lt;BR /&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width="4.41881%" height="30px" style="width: 4.41881%; height: 30px;"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="48.3647%" height="30px" style="width: 48.3647%; background-color: #54b9e6; height: 30px;"&gt;&lt;FONT size="5" color="#FFFFFF"&gt;&amp;nbsp;WEBEX MEETINGS&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 30px;"&gt;
&lt;TD width="47.2164%" height="30px" style="width: 47.2164%; height: 30px; background-color: #eaeaea; vertical-align: top;"&gt;
&lt;P&gt;Built.io&amp;nbsp;&lt;A href="https://www.built.io/" target="_blank" rel="noopener"&gt;&lt;FONT size="2"&gt;link&lt;/FONT&gt;&lt;/A&gt; &amp;nbsp;&lt;BR /&gt;Zapier&amp;nbsp;&lt;A href="https://zapier.com" target="_blank" rel="noopener"&gt;&lt;FONT size="2"&gt;link&lt;/FONT&gt;&lt;/A&gt; &amp;nbsp;&lt;BR /&gt;Gupshup&amp;nbsp;&amp;nbsp;&lt;A href="https://www.gupshup.io/developer/home" target="_blank" rel="noopener"&gt;&lt;FONT size="2"&gt;link&lt;/FONT&gt;&lt;/A&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;IFTTT&amp;nbsp;&lt;A href="https://ifttt.com" target="_blank" rel="noopener"&gt;&lt;FONT size="2"&gt;link&lt;/FONT&gt;&lt;/A&gt; &amp;nbsp;&lt;BR /&gt;Botkit.ai&amp;nbsp;&amp;nbsp;&lt;A href="https://botkit.ai" target="_blank" rel="noopener"&gt;&lt;FONT size="2"&gt;link&lt;/FONT&gt;&lt;/A&gt; &amp;nbsp;&lt;BR /&gt;&amp;nbsp; + &lt;A href="https://sameroom.io/" target="_blank" rel="noopener"&gt;Sameroom.io&lt;/A&gt;, &lt;A href="https://www.workato.com/" target="_blank" rel="noopener"&gt;Workato&lt;/A&gt;, &lt;A href="https://www.zenbot.org" target="_blank" rel="noopener"&gt;Zenbot.io&lt;/A&gt;, &lt;BR /&gt;&lt;FONT size="2"&gt;No native Teams integration, but usable with API's:&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;A href="https://flowxo.com/" target="_blank" rel="noopener"&gt;Flow XO&lt;/A&gt;, &lt;A href="https://elastic.io/" target="_blank" rel="noopener"&gt;Elastic.io&lt;/A&gt;, &lt;A href="https://apiant.com/" target="_blank" rel="noopener"&gt;APIANT&lt;/A&gt;, &lt;A href="https://www.integromat.com/en" target="_blank" rel="noopener"&gt;Integromat&lt;/A&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="4.41881%" height="30px" style="width: 4.41881%; height: 30px; border-style: hidden; border-color: #FFFFFF;"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="48.3647%" height="30px" style="width: 48.3647%; height: 30px; background-color: #eaeaea; vertical-align: top;"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-right" image-alt="webexmeetingslogo.png" style="width: 76px;"&gt;&lt;img src="https://community.cisco.com/t5/image/serverpage/image-id/40378i634601A256BBD5B8/image-dimensions/76x76?v=v2" width="76" height="76" role="button" title="webexmeetingslogo.png" alt="webexmeetingslogo.png" /&gt;&lt;/span&gt;
&lt;P&gt;Meeting API - &lt;A href="https://developer.cisco.com/docs/webex-meetings/#!webex-meetings" target="_blank" rel="noopener"&gt;get started&lt;/A&gt;&amp;nbsp;&lt;BR /&gt;Meetings DevNet &lt;A href="https://developer.cisco.com/webex-meetings/" target="_blank" rel="noopener"&gt;site&lt;/A&gt;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;Meetings API &lt;A href="https://developer.cisco.com/docs/webex-meetings/#!community-and-support" target="_blank" rel="noopener"&gt;Support&lt;/A&gt;&amp;nbsp;&lt;BR /&gt;Meetings &lt;A href="https://community.cisco.com/t5/custom/page/page-id/CustomFilteredByMultiLabel/page/1?board=j-disc-dev-cloud-collab&amp;amp;labels=Webex%20Developer" target="_blank" rel="noopener"&gt;Community&lt;/A&gt;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 30px;"&gt;
&lt;TD width="47.2164%" height="30px" style="width: 47.2164%; vertical-align: top; border-color: #ffffff; height: 30px;"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="4.41881%" height="30px" style="width: 4.41881%; vertical-align: top; border-color: #ffffff; height: 30px;"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="48.3647%" height="30px" style="width: 48.3647%; border-color: #ffffff; vertical-align: top; height: 30px;"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE style="height: 626px; width: 99.9999%; border-collapse: collapse; border-style: none; border-color: #ffffff;" border="0"&gt;
&lt;TBODY&gt;
&lt;TR style="height: 30px;"&gt;
&lt;TD width="47.2164%" style="width: 47.2164%; background-color: #e0a43e; height: 30px;"&gt;&lt;FONT color="#FFFFFF"&gt;&lt;FONT size="5"&gt;&amp;nbsp;xAPI&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="5" color="#FFFFFF"&gt;&lt;BR /&gt;&lt;/FONT&gt;&lt;/TD&gt;
&lt;TD width="4.41881%" style="width: 4.41881%; height: 30px;"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="48.3647%" style="width: 48.3647%; background-color: #e0a43e; height: 30px;"&gt;&lt;FONT size="5" color="#FFFFFF"&gt;&amp;nbsp;xAPI&lt;/FONT&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 30px;"&gt;
&lt;TD width="47.2164%" style="width: 47.2164%; height: 30px; background-color: #eaeaea; vertical-align: top;"&gt;
&lt;P&gt;&lt;SPAN class="fontSizeXLarge"&gt;&lt;STRONG&gt;DOCUMENTATION&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;xAPI &lt;A title="https://www.cisco.com/c/en/us/support/collaboration-endpoints/spark-room-kit-series/series.html#Reference" href="https://www.cisco.com/c/en/us/support/collaboration-endpoints/spark-room-kit-series/series.html#Reference" target="_blank" rel="noopener" data-cke-saved-href="https://www.cisco.com/c/en/us/support/collaboration-endpoints/spark-room-kit-series/series.html#Reference" data-interception="off"&gt;&lt;SPAN class="fontColorBlue"&gt;command reference&lt;/SPAN&gt;&lt;/A&gt; (all releases)&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;xAPI&amp;nbsp;REST &lt;A title="https://developer.webex.com/docs/api/v1/xapi" href="https://developer.webex.com/docs/api/v1/xapi" target="_blank" rel="noopener" data-cke-saved-href="https://developer.webex.com/docs/api/v1/xapi" data-interception="off"&gt;&lt;SPAN class="fontColorBlue"&gt;documentation&lt;/SPAN&gt;&lt;/A&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;EM&gt;roomos&lt;/EM&gt;.cisco.com: xAPI &lt;A title="https://roomos.cisco.com/docs/Introduction.md" href="https://roomos.cisco.com/docs/Introduction.md" target="_blank" rel="noopener" data-cke-saved-href="https://custom-collab.cisco.com/xapi/#/article/Introduction" data-interception="off"&gt;&lt;SPAN class="fontColorBlue"&gt;guides&lt;/SPAN&gt;&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;roomos&lt;/EM&gt;.cisco.com: xAPI &lt;A title="https://roomos.cisco.com/xapi" href="https://roomos.cisco.com/xapi" target="_blank" rel="noopener" data-cke-saved-href="https://custom-collab.cisco.com/xapi/#/path" data-interception="off"&gt;&lt;SPAN class="fontColorBlue"&gt;reference&lt;/SPAN&gt;&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;roomos&lt;/EM&gt;.cisco.com: xAPI &lt;A title="https://roomos.cisco.com/macros" href="https://roomos.cisco.com/macros" target="_blank" rel="noopener" data-cke-saved-href="https://custom-collab.cisco.com/xapi/#/macros" data-interception="off"&gt;&lt;SPAN class="fontColorBlue"&gt;examples&lt;/SPAN&gt;&lt;/A&gt;&lt;BR /&gt;Customization &lt;A title="https://www.cisco.com/c/en/us/support/collaboration-endpoints/spark-room-kit-series/products-installation-and-configuration-guides-list.html" href="https://www.cisco.com/c/en/us/support/collaboration-endpoints/spark-room-kit-series/products-installation-and-configuration-guides-list.html" target="_blank" rel="noopener" data-cke-saved-href="https://www.cisco.com/c/en/us/support/collaboration-endpoints/spark-room-kit-series/products-installation-and-configuration-guides-list.html" data-interception="off"&gt;&lt;SPAN class="fontColorBlue"&gt;Guides&lt;/SPAN&gt;&lt;/A&gt;&amp;nbsp;&lt;BR /&gt;CE software &lt;A title="https://www.cisco.com/c/dam/en/us/td/docs/telepresence/endpoint/software/ce9/release-notes/ce-software-release-notes-ce9.pdf" href="https://www.cisco.com/c/dam/en/us/td/docs/telepresence/endpoint/software/ce9/release-notes/ce-software-release-notes-ce9.pdf" target="_blank" rel="noopener" data-cke-saved-href="https://www.cisco.com/c/dam/en/us/td/docs/telepresence/endpoint/software/ce9/release-notes/ce-software-release-notes-ce9.pdf" data-interception="off"&gt;&lt;SPAN class="fontColorBlue"&gt;release notes&lt;/SPAN&gt;&lt;/A&gt;&amp;nbsp; &lt;EM&gt;&lt;SPAN class="fontSizeSmall"&gt;PDF&lt;/SPAN&gt;&lt;/EM&gt;&amp;nbsp;&lt;BR /&gt;RoomOS &lt;A title="https://help.webex.com/en-us/6ger7db/What-s-New-in-RoomOS" href="https://help.webex.com/en-us/6ger7db/What-s-New-in-RoomOS" target="_blank" rel="noopener" data-cke-saved-href="https://help.webex.com/en-us/6ger7db/What-s-New-in-RoomOS" data-interception="off"&gt;&lt;SPAN class="fontColorBlue"&gt;what's new&lt;/SPAN&gt;&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;A href="https://github.com/CiscoDevNet/awesome-xapi" target="_blank" rel="noopener"&gt;Awesome xAPI&lt;/A&gt; &lt;SPAN style="font-family: helvetica;"&gt;&amp;nbsp;&lt;STRONG&gt;&lt;FONT size="1 2 3 4 5 6 7" color="#FF0000"&gt;GREAT!&lt;/FONT&gt;&lt;/STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;BR /&gt;&lt;SPAN&gt;Room Devices on&amp;nbsp;&lt;A href="https://developer.cisco.com/site/roomdevices/" target="_blank" rel="noopener" data-cke-saved-href="https://developer.cisco.com/site/roomdevices/"&gt;DevNet&lt;/A&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;Room Device&amp;nbsp;&lt;A href="https://github.com/CiscoDevNet/roomdevices-macros-samples" target="_blank" rel="noopener" data-cke-saved-href="https://github.com/CiscoDevNet/roomdevices-macros-samples"&gt;Macro&amp;nbsp;examples&lt;/A&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Video Unit&amp;nbsp;&lt;A href="https://devnetsandbox.cisco.com/RM/Diagram/Index/aada7ed1-18ed-491d-97ad-17ae3a11faba?diagramType=Topology" target="_blank" rel="noopener"&gt;sandbox&lt;/A&gt; &amp;nbsp;&amp;nbsp; &lt;BR /&gt;xAPI &lt;A href="https://eurl.io/#rkp76XDrG" target="_blank" rel="noopener"&gt;Support&lt;/A&gt;&amp;nbsp; &lt;FONT size="2"&gt;(Webex Space)&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;STRONG&gt;GITHUB&lt;BR /&gt;&lt;/STRONG&gt;- Video System &lt;A href="https://github.com/DJF3/Cisco-Video-System-Status-Monitor" target="_blank" rel="noopener"&gt;Status Monitor&lt;/A&gt; &amp;nbsp;&amp;nbsp; &lt;BR /&gt;- Meeting &lt;A href="https://github.com/tloyau/feedback-meeting" target="_blank" rel="noopener"&gt;Feedback&lt;/A&gt; &amp;nbsp;&amp;nbsp;&lt;BR /&gt;- Javascript &lt;A href="https://github.com/cisco-ce/jsxapi" target="_blank" rel="noopener"&gt;xAPI library&lt;/A&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;- Virtual &lt;A href="https://community.cisco.com/t5/collaboration-blogs/add-logos-text-to-your-virtual-background/ba-p/4319814" target="_blank" rel="noopener"&gt;Background Logos&lt;/A&gt;&amp;nbsp;&lt;FONT size="2" color="#FF0000"&gt;new&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="4.41881%" style="width: 4.41881%; height: 30px; border-style: hidden; border-color: #FFFFFF;"&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD width="48.3647%" style="width: 48.3647%; height: 30px; background-color: #eaeaea; vertical-align: top;"&gt;
&lt;P&gt;&lt;STRONG&gt;Getting Started&lt;/STRONG&gt;&lt;BR /&gt;&amp;nbsp; xAPI &lt;A href="https://developer.cisco.com/learning/lab/collab-xapi-intro/step/1" target="_blank" rel="noopener"&gt;introduction&lt;/A&gt; &lt;FONT size="2"&gt;LAB&lt;/FONT&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; xAPI In &lt;A href="https://learninglabs.cisco.com/lab/collab-xapi-controls/step/1" target="_blank" rel="noopener"&gt;Room controls&lt;/A&gt;&amp;nbsp;&amp;nbsp;&lt;FONT size="2"&gt;LAB&lt;/FONT&gt;&amp;nbsp;&amp;nbsp; (try &lt;A href="https://controls-editor.herokuapp.com/index.html" target="_blank" rel="noopener"&gt;editor&lt;/A&gt;) &lt;BR /&gt;&amp;nbsp; xAPI Macro &lt;A href="https://github.com/ObjectIsAdvantag/xapi-samples/blob/master/macros/pdf/macro-tutorial.pdf" target="_blank" rel="noopener"&gt;tutorial&lt;/A&gt; &lt;FONT size="2"&gt;PDF&lt;/FONT&gt; &amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; xAPI &lt;A href="https://github.com/ObjectIsAdvantag/xapi-samples" target="_blank" rel="noopener"&gt;examples&lt;/A&gt;&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;TOOLS&lt;/STRONG&gt;&lt;BR /&gt;&amp;nbsp; Postman &lt;A href="https://github.com/CiscoDevNet/postman-xapi" target="_blank" rel="noopener"&gt;collection&lt;/A&gt;&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;LEARN&lt;BR /&gt;&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp; CE customization&amp;nbsp;&lt;A href="https://learninglabs.cisco.com/lab/collab-xapi-intro/step/1" target="_blank" rel="noopener" data-cke-saved-href="https://learninglabs.cisco.com/lab/collab-xapi-intro/step/1"&gt;lab&lt;/A&gt;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; Create custom in-room controls&amp;nbsp;&lt;A href="https://developer.cisco.com/learning/lab/collab-xapi-controls/step/1" target="_blank" rel="noopener" data-cke-saved-href="https://developer.cisco.com/learning/lab/collab-xapi-controls/step/1"&gt;lab&lt;/A&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; Customizing devices from code&amp;nbsp;&lt;A href="https://developer.cisco.com/learning/lab/collab-xapi-branding/step/1" target="_blank" rel="noopener" data-cke-saved-href="https://developer.cisco.com/learning/lab/collab-xapi-branding/step/1"&gt;lab&lt;/A&gt;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; Introduction to XAPI&amp;nbsp; &amp;nbsp;&lt;A href="https://developer.cisco.com/learning/lab/collab-xapi-intro/step/1" target="_blank" rel="noopener" data-cke-saved-href="https://developer.cisco.com/learning/lab/collab-xapi-intro/step/1"&gt;lab&lt;/A&gt;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; Exploring XAPI Macros&amp;nbsp;&lt;A href="https://developer.cisco.com/learning/lab/collab-xapi-macros/step/1" target="_blank" rel="noopener" data-cke-saved-href="https://developer.cisco.com/learning/lab/collab-xapi-macros/step/1"&gt;lab&lt;/A&gt;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;CISCO LIVE SESSIONS&amp;nbsp; &lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&amp;nbsp; &lt;/STRONG&gt;&lt;SPAN&gt;&lt;A href="https://cisco.sharepoint.com/Sites/CloudCollaborationEMEAR-migrated/SitePages/From%20zero%20to%20hero%20%20Course%20on%20Video%20Endpoint%20Programmability%20(PIW%20CY2019).aspx" target="_blank" rel="noopener" data-cke-saved-href="/Sites/CloudCollaborationEMEAR-migrated/SitePages/From%20zero%20to%20hero%20%20Course%20on%20Video%20Endpoint%20Programmability%20(PIW%20CY2019).aspx"&gt;Zero&amp;nbsp;to&amp;nbsp;Hero&lt;/A&gt;&amp;nbsp;- programmability course&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="fontColorRed"&gt;&lt;SUP&gt;NEW&lt;/SUP&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;&lt;A href="https://www.ciscolive.com/global/on-demand-library.html?search=&amp;amp;search.event=ciscoliveemea2020&amp;amp;search.technology=scpsTechnology_collaboration#/session/1564677156032001JE2U" target="_blank" rel="noopener" data-cke-saved-href="https://www.ciscolive.com/global/on-demand-library.html?search=&amp;amp;search.event=ciscoliveemea2020&amp;amp;search.technology=scpsTechnology_collaboration#/session/1564677156032001JE2U"&gt;BRKCOL-3008&lt;/A&gt;&amp;nbsp;-&amp;nbsp;Custom.&amp;amp;Integrations Room Devices&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;&lt;A href="https://www.ciscolive.com/global/on-demand-library.html?search.event=ciscoliveemea2020&amp;amp;search=xapi#/session/15613554759150011Dt6" target="_blank" rel="noopener" data-cke-saved-href="https://www.ciscolive.com/global/on-demand-library.html?search.event=ciscoliveemea2020&amp;amp;search=xapi#/session/15613554759150011Dt6"&gt;BRKDEV-3244&lt;/A&gt;&amp;nbsp;- Advanced coding for Video devices&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;A href="https://www.ciscolive.com/global/on-demand-library.html?search.event=ciscoliveemea2020&amp;amp;search=xapi#/session/15613554759150011Dt6" target="_blank" rel="noopener" data-cke-saved-href="https://www.ciscolive.com/global/on-demand-library.html?search.event=ciscoliveemea2020&amp;amp;search=xapi#/session/15613554759150011Dt6"&gt;DEVNET-2071&lt;/A&gt;&amp;nbsp;- Customizing Collaboration Devices&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;A href="https://www.ciscolive.com/global/on-demand-library.html?search=macro&amp;amp;search.event=ciscoliveemea2020&amp;amp;search.technology=scpsTechnology_collaboration#/session/1564527385468001c0Jc" target="_blank" rel="noopener" data-cke-saved-href="https://www.ciscolive.com/global/on-demand-library.html?search=macro&amp;amp;search.event=ciscoliveemea2020&amp;amp;search.technology=scpsTechnology_collaboration#/session/1564527385468001c0Jc"&gt;DEVNET-1462&lt;/A&gt;&amp;nbsp;- Webex Room APIs: "the power of..."&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;/DIV&gt;
&lt;P&gt;&lt;SPAN style="font-family: helvetica;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;TABLE border="1" width="100%"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="100%" class="lia-indent-padding-left-270px" style="background-color: yellow; width: 100%;"&gt;&lt;SPAN style="font-family: helvetica;"&gt;&lt;FONT color="#FF0000"&gt;&lt;STRONG&gt;NEW&lt;/STRONG&gt;&lt;/FONT&gt;: LinkedIn Webex Developer group &lt;A href="http://cs.co/webexdevlink" target="_blank" rel="noopener"&gt;cs.co/webexdevlink&lt;/A&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV style="; color: #808080; font-size: 8pt;"&gt;
&lt;P&gt;&lt;SPAN style="font-family: helvetica;"&gt;&lt;STRONG&gt;CHANGELOG&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: helvetica;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN style="font-family: helvetica;"&gt;April 2021 - added LinkedIn group URL, added virtual-background link&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN style="font-family: helvetica;"&gt;November 2020 - major overhaul of page&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN style="font-family: helvetica;"&gt;July 2020 - adding xAPI resources&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN style="font-family: helvetica;"&gt;Dec 2019 - updated links&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN style="font-family: helvetica;"&gt;July 2019 - Added some xAPI links&lt;BR /&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN style="font-family: helvetica;"&gt;July 2019 - Complete re-write of this page&amp;nbsp; (was needed &lt;LI-EMOJI id="lia_slightly-smiling-face" title=":slightly_smiling_face:"&gt;&lt;/LI-EMOJI&gt; &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN style="font-family: helvetica;"&gt;xpost in Collaboration / Collaboration documents &lt;A href="https://community.cisco.com/t5/collaboration-documents/webex-teams-developer-resources/ta-p/3638907" target="_blank" rel="noopener"&gt;here &lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Thu, 06 May 2021 07:45:53 GMT</pubDate>
      <guid>https://community.cisco.com/t5/collaboration-documents/webex-developer-resources/ta-p/3886824</guid>
      <dc:creator>Dirk-Jan Uittenbogaard</dc:creator>
      <dc:date>2021-05-06T07:45:53Z</dc:date>
    </item>
    <item>
      <title>How to enable ztp on IOS-XE sandbox</title>
      <link>https://community.cisco.com/t5/devnet-sandbox-documents/how-to-enable-ztp-on-ios-xe-sandbox/ta-p/4174351</link>
      <description>&lt;DIV class="lia-message-template-symptoms-zone"&gt;&lt;H2&gt;Symptoms&lt;/H2&gt;&lt;P&gt;I'm using the devnet IOS-XE sandbox to try and test the ZTP feature, however I can see that when I ssh into the fresh box it already has a startup config and hence I dont think it will attempt to ztp on reboot. How do you get the lab IOS-XE device into a state to be able to test ZTP?&lt;/P&gt;&lt;/DIV&gt;&lt;DIV class="lia-message-template-diagnosis-zone"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="lia-message-template-solution-zone"&gt;&lt;H2&gt;&amp;nbsp;&lt;/H2&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;</description>
      <pubDate>Tue, 27 Oct 2020 13:38:00 GMT</pubDate>
      <guid>https://community.cisco.com/t5/devnet-sandbox-documents/how-to-enable-ztp-on-ios-xe-sandbox/ta-p/4174351</guid>
      <dc:creator>Chris Dixon</dc:creator>
      <dc:date>2020-10-27T13:38:00Z</dc:date>
    </item>
    <item>
      <title>How to debug NSO service/action with Pycharm pro</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/how-to-debug-nso-service-action-with-pycharm-pro/ta-p/3832876</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;H4&gt;Step 1 : configure debug server in Pycharm&lt;/H4&gt;
&lt;P&gt;Go to Run =&amp;gt; Edit Configurations, click on "+" =&amp;gt; Python Remote Debug&lt;/P&gt;
&lt;P&gt;In "Local Host name " enter ip or host name of your local machine. Enter a available port in "Port :"&lt;/P&gt;
&lt;P&gt;Give a name, here it's "NSO debug".&lt;/P&gt;
&lt;P&gt;Click ok.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="nso-debug-server.png" style="width: 999px;"&gt;&lt;img src="https://community.cisco.com/t5/image/serverpage/image-id/33643iB7EE10F111AC8901/image-size/large?v=v2&amp;amp;px=999" role="button" title="nso-debug-server.png" alt="nso-debug-server.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H4&gt;Step 2 : install pydevd_pycharm&lt;/H4&gt;
&lt;P&gt;The debug tool uses pydevd-pycharm library to attach to the local debug server we just created.&lt;/P&gt;
&lt;P&gt;Run&lt;/P&gt;
&lt;PRE&gt;python -m pip install pydevd-pycharm&lt;/PRE&gt;
with the python interpreter used by NSO.
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;Step 3 : run debug server&lt;/H4&gt;
&lt;P&gt;Select NSO Debug and click on the green bug (or Shift + F9).&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="run-debug-server.PNG" style="width: 316px;"&gt;&lt;img src="https://community.cisco.com/t5/image/serverpage/image-id/33644iA5086614B6858C3C/image-size/large?v=v2&amp;amp;px=999" role="button" title="run-debug-server.PNG" alt="run-debug-server.PNG" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;The debug server is now listening on port 8885&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="running-debug-server.png" style="width: 999px;"&gt;&lt;img src="https://community.cisco.com/t5/image/serverpage/image-id/33646i3D28F23020C95344/image-size/large?v=v2&amp;amp;px=999" role="button" title="running-debug-server.png" alt="running-debug-server.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;H2&gt;Step 4 : call the server from the service/action thread.&lt;/H2&gt;
&lt;P&gt;Insert the following code in the callback function of the service/action (change host and port) :&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;import pydevd_pycharm
pydevd_pycharm.settrace('host', port=port, stdoutToServer=True, stderrToServer=True)&lt;/PRE&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="code-callback.png" style="width: 999px;"&gt;&lt;img src="https://community.cisco.com/t5/image/serverpage/image-id/33647i70F6B958BD84C831/image-size/large?v=v2&amp;amp;px=999" role="button" title="code-callback.png" alt="code-callback.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;That's all , now the service/action callback will try to reach the debug server (don't forget to do a packages reload)&lt;/P&gt;
&lt;P&gt;You can now debug with pycharm :&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="running-debug-1.PNG" style="width: 999px;"&gt;&lt;img src="https://community.cisco.com/t5/image/serverpage/image-id/33648i0BA9F46293780E39/image-size/large?v=v2&amp;amp;px=999" role="button" title="running-debug-1.PNG" alt="running-debug-1.PNG" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;And have full information about the variables :&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="running-debug-variables.PNG" style="width: 895px;"&gt;&lt;img src="https://community.cisco.com/t5/image/serverpage/image-id/33649i6CC1E7881B220B9D/image-size/large?v=v2&amp;amp;px=999" role="button" title="running-debug-variables.PNG" alt="running-debug-variables.PNG" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Fri, 18 Sep 2020 18:19:59 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/how-to-debug-nso-service-action-with-pycharm-pro/ta-p/3832876</guid>
      <dc:creator>Rodolphe Trujillo</dc:creator>
      <dc:date>2020-09-18T18:19:59Z</dc:date>
    </item>
    <item>
      <title>NSO Developer Days 2019: Nano Services – Another approach for Reactive Fastmap (RFM) services</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-nano-services-another-approach-for/ta-p/3879094</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;&lt;IFRAME src="https://www.youtube.com/embed/NJhOBf8J-J8" width="1120" height="630" frameborder="0" allowfullscreen="allowfullscreen" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"&gt;&lt;/IFRAME&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Abstract:&amp;nbsp;&lt;SPAN&gt;RFM services can be hard to implement. Especially the lifecycle management of the delete case of the service can be a challenge. Nano Services uses an executable plan and kickers to supports the full lifecycle of a RFM service.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Speaker:&amp;nbsp;&lt;SPAN&gt;Try Ryeng&lt;/SPAN&gt;&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Fri, 18 Sep 2020 18:19:58 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-nano-services-another-approach-for/ta-p/3879094</guid>
      <dc:creator>Jan Lindblad</dc:creator>
      <dc:date>2020-09-18T18:19:58Z</dc:date>
    </item>
    <item>
      <title>deleted</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/deleted/ta-p/3652184</link>
      <description />
      <pubDate>Mon, 17 Aug 2020 08:24:10 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/deleted/ta-p/3652184</guid>
      <dc:creator>peter8498</dc:creator>
      <dc:date>2020-08-17T08:24:10Z</dc:date>
    </item>
    <item>
      <title>Trying sandbox for WLC 9800 but timing out</title>
      <link>https://community.cisco.com/t5/devnet-sandbox-documents/trying-sandbox-for-wlc-9800-but-timing-out/ta-p/4073686</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;Hi team,&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Starting to work with some of the sandboxes on this site, as a Wireless engineer I wanted to start with the WLC 9800 sandbox that is always on. Basically wanted to try APIs to read telemetry, however after reading the instructions I have tried several times to access a link to accept a "certificate" from a link wlc9800.cisco.com and always timing out. I have tried being out of the VPN or in but no result on any case. Since this is one of my first attempts I am wondering if I am missing something or doing something wrong, since the instructions for SandBoxes always on according to documentation don't require VPN access. Let me know your comments please&lt;BR /&gt;&lt;BR /&gt;Regards&lt;BR /&gt;Carlos Contreras&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Fri, 24 Apr 2020 19:57:12 GMT</pubDate>
      <guid>https://community.cisco.com/t5/devnet-sandbox-documents/trying-sandbox-for-wlc-9800-but-timing-out/ta-p/4073686</guid>
      <dc:creator>carlocon</dc:creator>
      <dc:date>2020-04-24T19:57:12Z</dc:date>
    </item>
    <item>
      <title>Determining if a endUser password/pin is locked</title>
      <link>https://community.cisco.com/t5/collaboration-documents/determining-if-a-enduser-password-pin-is-locked/ta-p/4056033</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;&lt;P&gt;I'm tasked with providing a credential unlock for CUCM endusers. Looking at the AXL schema and doing some trial &amp;amp; error I found that pinCredentials.pinResetHackCount / passwordCredentials.pwdResetHackCount is what I'm looking for.. setting this to true in a user update resets the history. But, extracting the user, it seems I'm missing some properties that are visible in ccmadmin. So, given that locking yourself out by trying the wrong credential for too many times does not set any property gettable by AXL, the question is: how can I know if a user's pin or password credential has been locked?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The same seems to be possible via CUPI. There's the "Hacked" property that if true means the user has been locked out for trying an incorrect credential too many times.&lt;/P&gt;&lt;/DIV&gt;</description>
      <pubDate>Tue, 31 Mar 2020 15:37:39 GMT</pubDate>
      <guid>https://community.cisco.com/t5/collaboration-documents/determining-if-a-enduser-password-pin-is-locked/ta-p/4056033</guid>
      <dc:creator>stephan.steiner</dc:creator>
      <dc:date>2020-03-31T15:37:39Z</dc:date>
    </item>
    <item>
      <title>'Devices on rent' kind of services</title>
      <link>https://community.cisco.com/t5/services-documents/devices-on-rent-kind-of-services/ta-p/4037270</link>
      <description>&lt;DIV class="lia-message-template-question-zone"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="lia-message-template-answer-zone"&gt;&lt;P&gt;Hello,&lt;BR /&gt;&lt;BR /&gt;We are developing a network monitoring piece of software. To create monitoring presets, we would need to actually access a number of Cisco devices (via HTTPS/SNMP), within a sandbox environment.&lt;BR /&gt;&lt;BR /&gt;I noticed there are several 'Cisco devices on rent' kind of services on the Net, but still waiting for response from them. Are there any well-known 'devices on rent' kind of services, with Cisco devices available?&lt;BR /&gt;&lt;BR /&gt;Thanks.&lt;/P&gt;&lt;/DIV&gt;</description>
      <pubDate>Fri, 28 Feb 2020 03:28:20 GMT</pubDate>
      <guid>https://community.cisco.com/t5/services-documents/devices-on-rent-kind-of-services/ta-p/4037270</guid>
      <dc:creator>Temmokan</dc:creator>
      <dc:date>2020-02-28T03:28:20Z</dc:date>
    </item>
    <item>
      <title>CUCM  Sandbox Version 12.5 - automatic deletion after 5 days</title>
      <link>https://community.cisco.com/t5/devnet-sandbox-documents/cucm-sandbox-version-12-5-automatic-deletion-after-5-days/ta-p/4021757</link>
      <description>&lt;P&gt;Dear all,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;our development Team is facing a Problem with the CUCM sandbox.&lt;/P&gt;&lt;P&gt;Everything in the sandbox is getting completely deleted after 5 days.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This is a big Problem for us, because we'd like to use the test Environment für a longer period of time.&amp;nbsp;&lt;/P&gt;&lt;P&gt;What do we have to do so that the data is not being deleted?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you very much in Advance for your support!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;Thomas&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 31 Jan 2020 16:40:16 GMT</pubDate>
      <guid>https://community.cisco.com/t5/devnet-sandbox-documents/cucm-sandbox-version-12-5-automatic-deletion-after-5-days/ta-p/4021757</guid>
      <dc:creator>Thomas Biesterfeldt</dc:creator>
      <dc:date>2020-01-31T16:40:16Z</dc:date>
    </item>
    <item>
      <title>NX-OS versions via APIC API</title>
      <link>https://community.cisco.com/t5/networking-documents/nx-os-versions-via-apic-api/ta-p/4017329</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;&lt;P&gt;I'm able to pull the topology using the API GET&lt;/P&gt;&lt;P&gt;&lt;A href="https://10.8.110.40/api/node/mo/topology/pod-1.json?query-target=children&amp;amp;target-subtree-class=fabricNode"&gt;https://n.n.n.n/api/node/mo/topology/pod-1.json?query-target=children&amp;amp;target-subtree-class=fabricNode&lt;/A&gt;&lt;/P&gt;&lt;P&gt;(after authenticating and getting a cookie, of course)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;But the version field is empty. I don't see a way to get the version of our NX-OS switches via APIC REST API. Is this something that can be done via API?&lt;/P&gt;&lt;/DIV&gt;</description>
      <pubDate>Thu, 23 Jan 2020 20:08:20 GMT</pubDate>
      <guid>https://community.cisco.com/t5/networking-documents/nx-os-versions-via-apic-api/ta-p/4017329</guid>
      <dc:creator>bdbauer</dc:creator>
      <dc:date>2020-01-23T20:08:20Z</dc:date>
    </item>
    <item>
      <title>NSO and Network Management Datastore Architecture (NMDA)</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/nso-and-network-management-datastore-architecture-nmda/ta-p/4014556</link>
      <description>&lt;P&gt;&lt;LI-TOC indent="15" liststyle="disc" maxheadinglevel="2"&gt;&lt;/LI-TOC&gt;&lt;/P&gt;
&lt;DIV class="lia-message-body-wrapper lia-component-message-view-widget-body"&gt;
&lt;DIV id="bodyDisplay" class="lia-message-body"&gt;
&lt;DIV class="lia-message-body-content"&gt;
&lt;H1 class="lia-message-template-content-zone"&gt;&lt;STRONG style="color: inherit; font-family: inherit; font-size: 24px;"&gt;NSO as the sample implementation of new technology&lt;/STRONG&gt;&lt;/H1&gt;
&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;Cisco NSO is a product implimenting RFC 6020 (yang) faithfully, and we could use it for testing new in the automation technology before even going on implementing ourselves. The author of the RFC is also developing the product, and it is one of the software leading the industory.&lt;/P&gt;
&lt;P&gt;From NSO 5.3, RFC 8342&amp;nbsp;&lt;SPAN&gt;Network Management Datastore Architecture (NMDA)&amp;nbsp;has been implemented, and this article shows the rough introduction using NSO.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;The all won't be explained, but the below are related RFCs.&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;P&gt;Yang&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;RFC 6020 YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)&lt;/LI&gt;
&lt;LI&gt;RFC 7950 The YANG 1.1 Data Modeling Language&lt;/LI&gt;
&lt;LI&gt;RFC 8342 Network Management Datastore Architecture (NMDA)&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Netconf&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;RFC 6241 Network Configuration Protocol (NETCONF)&lt;/LI&gt;
&lt;LI&gt;RFC 8526 NETCONF Extensions to Support the Network Management Datastore Architecture&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;Restconf&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;RFC 8040 RESTCONF Protocol&lt;/LI&gt;
&lt;LI&gt;RFC 8527 RESTCONF Extensions to Support the Network Management Datastore Architecture&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;IETF Yang has been also updated refrecting NMDA. Here's the RFCs for it.&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;IETF Yang implementation&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;RFC 8343 A YANG Data Model for Interface Management&lt;/LI&gt;
&lt;LI&gt;RFC 8344 A YANG Data Model for IP Management&lt;/LI&gt;
&lt;LI&gt;RFC 8345 A YANG Data Model for Network Topologies&lt;/LI&gt;
&lt;LI&gt;RFC 8346 A YANG Data Model for Layer 3 Topologies&lt;/LI&gt;
&lt;LI&gt;RFC 8347 A YANG Data Model for the Virtual Router Redundancy Protocol (VRRP)&lt;/LI&gt;
&lt;LI&gt;RFC 8348 A YANG Data Model for Hardware Management&lt;/LI&gt;
&lt;LI&gt;RFC 8349 A YANG Data Model for Routing Management (NMDA Version)&lt;/LI&gt;
&lt;/UL&gt;
&lt;/DIV&gt;
&lt;H1 id="toc-hId-388361837"&gt;&lt;STRONG&gt;About Network Management Datastore Architecture&lt;/STRONG&gt;&lt;/H1&gt;
&lt;P&gt;Network Management Datastore Architecture (NMDA) has been introduced since NSO 5.3, and it is described in RFC 8342. This gives new ideas of datastores we have been using, and it is meaningful to know about it. New datastores are added, and the usage of existing datastore is changed. NMDA is based on RFC 7950 (Yang 1.1), and reading RFC 8342 needs the knowledge from it as well.&lt;/P&gt;
&lt;P&gt;RFC 8342 Section 5 gives the relations between datastores in a diagram. Previous model is in Section 4.&lt;/P&gt;
&lt;PRE&gt;     +-------------+                 +-----------+
     | &amp;lt;candidate&amp;gt; |                 | &amp;lt;startup&amp;gt; |
     |  (ct, rw)   |&amp;lt;---+       +---&amp;gt;| (ct, rw)  |
     +-------------+    |       |    +-----------+
            |           |       |           |
            |         +-----------+         |
            +--------&amp;gt;| &amp;lt;running&amp;gt; |&amp;lt;--------+
                      | (ct, rw)  |
                      +-----------+
                            |
                            |        // configuration transformations,
                            |        // e.g., removal of nodes marked as
                            |        // "inactive", expansion of
                            |        // templates
                            v
                      +------------+
                      | &amp;lt;intended&amp;gt; | // subject to validation
                      | (ct, ro)   |
                      +------------+
                            |        // changes applied, subject to
                            |        // local factors, e.g., missing
                            |        // resources, delays
                            |
       dynamic              |   +-------- learned configuration
       configuration        |   +-------- system configuration
       datastores -----+    |   +-------- default configuration
                       |    |   |
                       v    v   v
                    +---------------+
                    | &amp;lt;operational&amp;gt; | &amp;lt;-- system state
                    | (ct + cf, ro) |
                    +---------------+

     ct = config true; cf = config false
     rw = read-write; ro = read-only
     boxes denote named datastores
&lt;/PRE&gt;
&lt;H2 id="toc-hId--1419092626"&gt;&lt;STRONG&gt;Datastores defined in RFC 6020 / 6241&lt;/STRONG&gt;&lt;/H2&gt;
&lt;P&gt;RFC 6020/6241 has defined the datastores are referred from the datastores used in network devices at the time. Today, the below datastores are still been actively used in many routers and switches.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;startup&lt;/LI&gt;
&lt;LI&gt;candidate&lt;/LI&gt;
&lt;LI&gt;running&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Startup datastore has configurations that is loaded when the device is booted up. Running datastore includes configurations that is currently running used on the device. Each session can have own candidate datastore on memory, and when commiting it, finally it's copied to running.&lt;/P&gt;
&lt;P&gt;Data can be in two categories, configuration data and operational data.&amp;nbsp;System becomes to the specific state with specific configuration data, and systems become always to the same state when the same configuration data is used. Operational data is something generated at runtime including like interface stats or VRRP state that users are not meant to configure.&lt;/P&gt;
&lt;P&gt;On Yang model, "config" flag tells if the node is configuration or operational.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Configuration data
&lt;UL&gt;
&lt;LI&gt;config true&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;Operational data
&lt;UL&gt;
&lt;LI&gt;config false&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2 id="toc-hId--1419092626"&gt;&lt;STRONG&gt;Additions by RFC 8342 (NMDA)&lt;/STRONG&gt;&lt;/H2&gt;
&lt;P&gt;Datastores are added as like the below. Operational may make misunderstanding, but this is not for "config false" data.&amp;nbsp;&lt;/P&gt;
&lt;TABLE style="border-collapse: collapse; width: 100%; height: 180px;" border="1"&gt;
&lt;TBODY&gt;
&lt;TR style="height: 30px;"&gt;
&lt;TD style="width: 33.3333%; height: 30px;"&gt;&lt;STRONG&gt;Datastore&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD style="width: 33.3333%; height: 30px;"&gt;&lt;STRONG&gt;Read/Write&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD style="width: 33.3333%; height: 30px;"&gt;&lt;STRONG&gt;Tag&lt;/STRONG&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 30px;"&gt;
&lt;TD style="width: 33.3333%; height: 30px;"&gt;startup&lt;/TD&gt;
&lt;TD style="width: 33.3333%; height: 30px;"&gt;R/W&lt;/TD&gt;
&lt;TD style="width: 33.3333%; height: 30px;"&gt;&amp;lt;startup&amp;gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 30px;"&gt;
&lt;TD style="width: 33.3333%; height: 30px;"&gt;candidate&lt;/TD&gt;
&lt;TD style="width: 33.3333%; height: 30px;"&gt;R/W&lt;/TD&gt;
&lt;TD style="width: 33.3333%; height: 30px;"&gt;&amp;lt;candidate&amp;gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 30px;"&gt;
&lt;TD style="width: 33.3333%; height: 30px;"&gt;running&lt;/TD&gt;
&lt;TD style="width: 33.3333%; height: 30px;"&gt;R/W&lt;/TD&gt;
&lt;TD style="width: 33.3333%; height: 30px;"&gt;&amp;lt;running&amp;gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 30px;"&gt;
&lt;TD style="width: 33.3333%; height: 30px;"&gt;intended&lt;/TD&gt;
&lt;TD style="width: 33.3333%; height: 30px;"&gt;R&lt;/TD&gt;
&lt;TD style="width: 33.3333%; height: 30px;"&gt;&amp;lt;intended&amp;gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR style="height: 30px;"&gt;
&lt;TD style="width: 33.3333%; height: 30px;"&gt;operational state&lt;/TD&gt;
&lt;TD style="width: 33.3333%; height: 30px;"&gt;R&lt;/TD&gt;
&lt;TD style="width: 33.3333%; height: 30px;"&gt;&amp;lt;operational&amp;gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;H2 id="toc-hId-1068420207"&gt;&lt;STRONG&gt;startup/candidate/running&lt;/STRONG&gt;&lt;/H2&gt;
&lt;P&gt;There's no much differences when using startup, candidate and running datastores, however running datastore may not have some configurations that previously existed. For example, default configuration is not included.&lt;/P&gt;
&lt;TABLE style="border-collapse: collapse; width: 100%;" border="1"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD style="width: 50%;"&gt;&lt;STRONG&gt;Configuration example&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD style="width: 50%;"&gt;&lt;STRONG&gt;description&lt;/STRONG&gt;&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style="width: 50%;"&gt;inactive&lt;/TD&gt;
&lt;TD style="width: 50%;"&gt;inactive attribute can be added to configurations, and that config is not copied to intended datastore.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style="width: 50%;"&gt;&lt;SPAN&gt;template-mechanism-oriented&lt;/SPAN&gt;&lt;/TD&gt;
&lt;TD style="width: 50%;"&gt;The config is like a macro configuration, and the actual content will be expanded (configuration transformation) and set to operational datastore.&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;inactive would be used when operators want to disable it temporary, for example. They don't want to delete it and just mark the configuration is inactive.&lt;/P&gt;
&lt;P&gt;In the example of template-mechanism-oriented, the macro configuration should be enough in running, and the actual content is redundant information. For instance, when config "A" is a template of config "B,C,D", having "A,B,C,D" in running doesn't make sense as the system should know "A" is "B,C,D" and it can calculate itself, so operators should not need to give "A,B,C,D"&lt;/P&gt;
&lt;P&gt;In addition, with &amp;lt;intended&amp;gt; datastore explained next, these datastores are called conventional datastore.&lt;/P&gt;
&lt;H2 id="toc-hId--739034256"&gt;&lt;STRONG&gt;intended datastore&lt;/STRONG&gt;&lt;/H2&gt;
&lt;P&gt;Configurations derived from configurations in start/candidate/running datastore, and users can't modify contents on intended datastore. Depending on the configurations, the content of intended datastore is may be same with running datastore. When device is rebooted, the content in intended datastore is re-calculated from running datastore everytime.&lt;/P&gt;
&lt;P&gt;It also can be validated at this time. In an example, when running datastore has a configuration with inactive, it's not affected in intended, so validation would work. Operators removes the inactive attributes, however the validation can fail and it cannot be injected into intended datastore.&lt;/P&gt;
&lt;H2 id="toc-hId--739034256"&gt;&lt;STRONG&gt;operational state datastore&lt;/STRONG&gt;&lt;/H2&gt;
&lt;P&gt;This datastore has the all required data to make the device in exactly same state. Because the oper-data (config false) is also included, when this datastore has the same data with another device, those two are behaving same.&lt;/P&gt;
&lt;P&gt;This datastore includes other types of configurations like default configuration, learned configuration such as BGP RIB content and system configurations like chassis serial numbers.&lt;/P&gt;
&lt;H3&gt;Config examples&lt;/H3&gt;
&lt;H4&gt;RFC 8342 Appendix C.2 (bgp configuration)&lt;/H4&gt;
&lt;P&gt;&amp;lt;running&amp;gt; datastore has the below configurations. BGP is being configured, and local-as, peer-as and peers (neighbors) are listed.&lt;/P&gt;
&lt;PRE&gt;&amp;lt;bgp&amp;gt;
  &amp;lt;local-as&amp;gt;64501&amp;lt;/local-as&amp;gt;
  &amp;lt;peer-as&amp;gt;64502&amp;lt;/peer-as&amp;gt;
  &amp;lt;peer&amp;gt;
    &amp;lt;name&amp;gt;2001:db8::2:3&amp;lt;/name&amp;gt;
  &amp;lt;/peer&amp;gt;
&amp;lt;/bgp&amp;gt;&lt;/PRE&gt;
&lt;P&gt;We can confirm the all system state in &amp;lt;operational&amp;gt; datastore. If specific config is not found in &amp;lt;running&amp;gt;, origin attributes are set so that we can check where the config is from.&lt;/P&gt;
&lt;P&gt;/bgp/peer/local-port is the data that operating system gives when BGP TCP session is created, so origin is &lt;STRONG&gt;system&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;/bgp/peer/state is "config false" data, and it's not coming from anywhere, so there's no attributes attached.&lt;/P&gt;
&lt;PRE&gt;&amp;lt;bgp xmlns:or="urn:ietf:params:xml:ns:yang:ietf-origin"
      or:origin="or:intended"&amp;gt;
  &amp;lt;local-as&amp;gt;64501&amp;lt;/local-as&amp;gt;
  &amp;lt;peer-as&amp;gt;64502&amp;lt;/peer-as&amp;gt;
  &amp;lt;peer&amp;gt;
      &amp;lt;name&amp;gt;2001:db8::2:3&amp;lt;/name&amp;gt;
      &amp;lt;local-as or:origin="or:default"&amp;gt;64501&amp;lt;/local-as&amp;gt;
      &amp;lt;peer-as or:origin="or:default"&amp;gt;64502&amp;lt;/peer-as&amp;gt;
      &amp;lt;local-port or:origin="or:system"&amp;gt;60794&amp;lt;/local-port&amp;gt;
      &amp;lt;remote-port or:origin="or:default"&amp;gt;179&amp;lt;/remote-port&amp;gt;
      &amp;lt;state&amp;gt;established&amp;lt;/state&amp;gt;
    &amp;lt;/peer&amp;gt;
&amp;lt;/bgp&amp;gt;&lt;/PRE&gt;
&lt;P&gt;Configurations in &amp;lt;operational&amp;gt; are not modified immediately after users configure on &amp;lt;running&amp;gt;. When BGP peer is removed in &amp;lt;running&amp;gt;, it's removed also from &amp;lt;intended&amp;gt;, however it's not removed in &amp;lt;operational&amp;gt;. bgp needs to shutdown the peer, and tcp needs to close the session, and it takes while. In this case, the modification on &amp;lt;opoerational&amp;gt; happens delayed.&lt;/P&gt;
&lt;H3&gt;Config examples&lt;/H3&gt;
&lt;H4&gt;RFC 8342 Appendix C.3 (preconfig)&lt;/H4&gt;
&lt;P&gt;Physical interfaces on routers are added/removed by inserting/removing line cards. Even when &amp;lt;running&amp;gt; has configurations of non-existing interfaces, that cannot be used in the system. However by preparing those in &amp;lt;running&amp;gt; in advance of card insertion, that config is appeared in &amp;lt;operational&amp;gt; when the card is available automatically. This will increase the maintenancebility in enterprises.&lt;/P&gt;
&lt;P&gt;&amp;lt;running&amp;gt; / &amp;lt;intended&amp;gt;&lt;/P&gt;
&lt;PRE&gt;&amp;lt;interfaces&amp;gt;
  &amp;lt;interface&amp;gt;
    &amp;lt;name&amp;gt;et-0/0/0&amp;lt;/name&amp;gt;
    &amp;lt;description&amp;gt;Test interface&amp;lt;/description&amp;gt;
  &amp;lt;/interface&amp;gt;
&amp;lt;/interfaces&amp;gt;&lt;/PRE&gt;
&lt;P&gt;&amp;lt;operational&amp;gt;&lt;/P&gt;
&lt;PRE&gt;&amp;lt;interfaces xmlns:or="urn:ietf:params:xml:ns:yang:ietf-origin"
                 or:origin="or:intended"&amp;gt;
  &amp;lt;interface&amp;gt;
    &amp;lt;name&amp;gt;et-0/0/0&amp;lt;/name&amp;gt;
    &amp;lt;description&amp;gt;Test interface&amp;lt;/description&amp;gt;
    &amp;lt;mtu or:origin="or:system"&amp;gt;1500&amp;lt;/mtu&amp;gt;
  &amp;lt;/interface&amp;gt;
&amp;lt;/interfaces&amp;gt;&lt;/PRE&gt;
&lt;H3&gt;New NETCONF operation&lt;/H3&gt;
&lt;P&gt;NMDA capable netconf servers can process new operations.&lt;/P&gt;
&lt;H4&gt;&amp;lt;get-data&amp;gt;&lt;/H4&gt;
&lt;P&gt;Previously &amp;lt;get-config&amp;gt; for getting configuration data (config true) and &amp;lt;get&amp;gt; for both configuration data (config true) and operational data (config false).&lt;/P&gt;
&lt;H4&gt;&amp;lt;edit-data&amp;gt;&lt;/H4&gt;
&lt;P&gt;It used as like the &amp;lt;edit-config&amp;gt; operation. &amp;lt;config&amp;gt; node was previously defined as anyxml when using &amp;lt;edit-config&amp;gt;. As &amp;lt;config&amp;gt; node is anydata for &amp;lt;edit-data&amp;gt; operation, the data can be in JSON, for example.&lt;/P&gt;
&lt;H3&gt;Usage of RESTCONF for NMDA&lt;/H3&gt;
&lt;P&gt;"ds" resource has been added to RESTCONF URI, and datastores can be specified as like the below.&lt;/P&gt;
&lt;P&gt;For running datastore, GET/POST/PUT/PATCH is available while intended datastore can accept only GET. operational datastore is also readonly, however it can accept also POST for action invocation.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;http://..../restconf/ds/ietf-datastores:running/&lt;/LI&gt;
&lt;LI&gt;http://..../restconf/ds/ietf-datastores:intended/&lt;/LI&gt;
&lt;LI&gt;http://..../restconf/ds/ietf-datastores:operational/&lt;/LI&gt;
&lt;/UL&gt;
&lt;H1&gt;NMDA with NSO&lt;/H1&gt;
&lt;P&gt;NMDA is supported from NSO 5.3, but origin attribute is not supported currently. Let's try the feature.&lt;/P&gt;
&lt;H2&gt;NETCONF hello&lt;/H2&gt;
&lt;P&gt;NSO NETCONF Northbound interface responds as the below to &amp;lt;hello&amp;gt; operation. yang-library 1.1 capability is included.&lt;/P&gt;
&lt;PRE&gt;$ netconf-console --hello
&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;
&amp;lt;hello xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"&amp;gt;

//snip//

    &amp;lt;capability&amp;gt;urn:ietf:params:netconf:capability:yang-library:1.0?revision=2019-01-04&amp;amp;amp;module-set-id=3f1f4f98aba52a2290a6a29a1a8d9c0b&amp;lt;/capability&amp;gt;
    &amp;lt;capability&amp;gt;urn:ietf:params:netconf:capability:yang-library:1.1?revision=2019-01-04&amp;amp;amp;content-id=3f1f4f98aba52a2290a6a29a1a8d9c0b&amp;lt;/capability&amp;gt;&lt;/PRE&gt;
&lt;H2&gt;&lt;STRONG&gt;Sample NSO package for NMDA testing&lt;/STRONG&gt;&lt;/H2&gt;
&lt;P&gt;The below simple yang model is created for testing. test1 module has a conatiner "server", and apps are running on it. Each application has a leaf with config false node to have a version information.&lt;/P&gt;
&lt;PRE&gt;module test1 {
  namespace "http://com/example/test1";
  prefix test1;

  container server {
    list app {
      key name;
      leaf name {
        type string;
      }
      leaf version {
        config false;
        type string;
      }
    }
  }
}&lt;/PRE&gt;
&lt;P&gt;app1, app2, app3 and app4 will be created on this example, but let's set app2, app3 and app4 with inactive attribute. On NSO, we can add inactive annotation by deactivate/activate command from CLI, and NETCONF/RESTCONF can accept in normal attribute in nodes.&lt;/P&gt;
&lt;H3&gt;Creating app1 and app2 from CLI&lt;/H3&gt;
&lt;PRE&gt;admin@ncs# conf
Entering configuration mode terminal
admin@ncs(config)# server app app1
admin@ncs(config-app-app1)# server app app2
admin@ncs(config-app-app3)# exit
admin@ncs(config)# deactivate server app app2
admin@ncs(config)# commit dry-run outformat xml
result-xml {
    local-node {
        data &amp;lt;server xmlns="http://com/example/test1"&amp;gt;
               &amp;lt;app&amp;gt;
                 &amp;lt;name&amp;gt;app1&amp;lt;/name&amp;gt;
               &amp;lt;/app&amp;gt;
               &amp;lt;app inactive="inactive"&amp;gt;
                 &amp;lt;name&amp;gt;app2&amp;lt;/name&amp;gt;
               &amp;lt;/app&amp;gt;
             &amp;lt;/server&amp;gt;
    }
}
admin@ncs(config)#
admin@ncs(config)# commit
Commit complete.
admin@ncs(config)#&lt;/PRE&gt;
&lt;H3&gt;Creating app3 from NETCONF&lt;/H3&gt;
&lt;P&gt;First, here's the payload for the NETCONF &amp;lt;edit-data&amp;gt; operation. Please note that inactive attribute is added.&lt;/P&gt;
&lt;PRE&gt;$ cat server-app3.xml
&amp;lt;server xmlns="http://com/example/test1"&amp;gt;
  &amp;lt;app inactive="inactive"&amp;gt;
    &amp;lt;name&amp;gt;app3&amp;lt;/name&amp;gt;
  &amp;lt;/app&amp;gt;
&amp;lt;/server&amp;gt;&lt;/PRE&gt;
&lt;P&gt;Then, netconf-console is used with the xml payload to create app3.&lt;/P&gt;
&lt;PRE&gt;$ netconf-console --edit-data=server-app3.xml
&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;
&amp;lt;rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="1"&amp;gt;
  &amp;lt;ok/&amp;gt;
&amp;lt;/rpc-reply&amp;gt;&lt;/PRE&gt;
&lt;H3&gt;Creating app4 from RESTCONF&lt;/H3&gt;
&lt;P&gt;In the same way, app4 is created with inactive attribute using RESTCONF.&lt;/P&gt;
&lt;PRE&gt;$ cat server-app4.xml
&amp;lt;app inactive="inactive"&amp;gt;
  &amp;lt;name&amp;gt;app4&amp;lt;/name&amp;gt;
&amp;lt;/app&amp;gt;
$ curl -X POST -u admin:admin -H 'Content-Type: application/yang-data+xml' \
http://localhost:8080/restconf/ds/ietf-datastores:running/test1:server \
-d @server-app4.xml
$&lt;/PRE&gt;
&lt;H2 class="lia-message-template-content-zone"&gt;Set any data on /server/app/version&lt;/H2&gt;
&lt;DIV class="lia-message-template-content-zone"&gt;/server/app/version is a leaf of config false node. This is supposed to be entered by any app, but in this example, let's set data manually.&lt;/DIV&gt;
&lt;PRE&gt;$ ncs_cmd -o -c 'set /server/app{app1}/version 1.0'
$ ncs_cmd -o -c 'set /server/app{app2}/version 1.0'
$ ncs_cmd -o -c 'set /server/app{app3}/version 1.0'
$ ncs_cmd -o -c 'set /server/app{app4}/version 1.0'&lt;/PRE&gt;
&lt;H2 class="lia-message-template-content-zone"&gt;Status confirmation&lt;/H2&gt;
&lt;P&gt;So far, we have configured 4 apps in running, however app2, app3 and app4 are at inactive status.&lt;/P&gt;
&lt;PRE&gt;$ netconf-console --get-data --db running -x /server
&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;
&amp;lt;rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="1"&amp;gt;
  &amp;lt;data&amp;gt;
    &amp;lt;server xmlns="http://com/example/test1"&amp;gt;
      &amp;lt;app&amp;gt;
        &amp;lt;name&amp;gt;app1&amp;lt;/name&amp;gt;
      &amp;lt;/app&amp;gt;
      &amp;lt;app inactive="inactive"&amp;gt;
        &amp;lt;name&amp;gt;app2&amp;lt;/name&amp;gt;
      &amp;lt;/app&amp;gt;
      &amp;lt;app inactive="inactive"&amp;gt;
        &amp;lt;name&amp;gt;app3&amp;lt;/name&amp;gt;
      &amp;lt;/app&amp;gt;
      &amp;lt;app inactive="inactive"&amp;gt;
        &amp;lt;name&amp;gt;app4&amp;lt;/name&amp;gt;
      &amp;lt;/app&amp;gt;
    &amp;lt;/server&amp;gt;
  &amp;lt;/data&amp;gt;
&amp;lt;/rpc-reply&amp;gt;&lt;/PRE&gt;
&lt;P&gt;Next, let's check the intended datastore. As you can see, app2, app3 and app4 are not listed.&lt;/P&gt;
&lt;PRE&gt;$ netconf-console --get-data --db intended -x /server
&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;
&amp;lt;rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="1"&amp;gt;
  &amp;lt;data&amp;gt;
    &amp;lt;server xmlns="http://com/example/test1"&amp;gt;
      &amp;lt;app&amp;gt;
        &amp;lt;name&amp;gt;app1&amp;lt;/name&amp;gt;
      &amp;lt;/app&amp;gt;
    &amp;lt;/server&amp;gt;
  &amp;lt;/data&amp;gt;
&amp;lt;/rpc-reply&amp;gt;&lt;/PRE&gt;
&lt;P&gt;Then, let's check operational datastore. Please notice that config false data is shown.&lt;/P&gt;
&lt;PRE&gt;$ netconf-console --get-data --db operational -x /server
&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;
&amp;lt;rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="1"&amp;gt;
  &amp;lt;data&amp;gt;
    &amp;lt;server xmlns="http://com/example/test1"&amp;gt;
      &amp;lt;app&amp;gt;
        &amp;lt;name&amp;gt;app1&amp;lt;/name&amp;gt;
        &amp;lt;version&amp;gt;1.0&amp;lt;/version&amp;gt;
      &amp;lt;/app&amp;gt;
    &amp;lt;/server&amp;gt;
  &amp;lt;/data&amp;gt;
&amp;lt;/rpc-reply&amp;gt;&lt;/PRE&gt;
&lt;P&gt;From NCS CLI, we can see running and operational datastore as the below.&lt;/P&gt;
&lt;PRE&gt;admin@ncs# show running-config server
server app app1
!
! Inactive
server app app2
!
! Inactive
server app app3
!
! Inactive
server app app4
!
admin@ncs#&lt;/PRE&gt;
&lt;P&gt;To see the operational datastore, we will look at the operation-state container information. It is populated only when it's configured to do so in ncs.conf as like the below.&lt;/P&gt;
&lt;PRE&gt;&amp;lt;ncs-config xmlns="http://tail-f.com/yang/tailf-ncs-config"&amp;gt;&lt;BR /&gt;  &amp;lt;cli&amp;gt;&lt;BR /&gt;    &amp;lt;nmda&amp;gt;&lt;BR /&gt;      &amp;lt;show-operational-state&amp;gt;true&amp;lt;/show-operational-state&amp;gt;&lt;BR /&gt;    &amp;lt;/nmda&amp;gt;&lt;BR /&gt;  &amp;lt;/cli&amp;gt;&lt;BR /&gt;&amp;lt;/ncs-config&amp;gt;&lt;/PRE&gt;
&lt;P&gt;Now we can show it in CLI.&lt;/P&gt;
&lt;PRE&gt;admin@ncs# show operational-state server
server app app1
 version 1.0
!
admin@ncs#&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;</description>
      <pubDate>Wed, 19 Aug 2020 01:59:32 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/nso-and-network-management-datastore-architecture-nmda/ta-p/4014556</guid>
      <dc:creator>Akira Iwamoto</dc:creator>
      <dc:date>2020-08-19T01:59:32Z</dc:date>
    </item>
    <item>
      <title>Create a 'commserver' for USB Serial console ports with a Raspberry Pi</title>
      <link>https://community.cisco.com/t5/data-in-motion-documents/create-a-commserver-for-usb-serial-console-ports-with-a/ta-p/4004090</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;H1 class="p1"&gt;Introduction&lt;/H1&gt;
&lt;P class="p1"&gt;As a person working with Cisco's portfolio of IoT products you have probably realized that some new platforms are ditching away the old RJ45-based RS232 serial communication console in favour of the newer USB-based serial communication port. If this a good news for technicians as they are now able to connect a computer straight to the router console using just a mini-USB cable, this is not such a great news for those who need to operate serial connections remotely.&lt;/P&gt;
&lt;P class="p1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="p1"&gt;The purpose of a commserver is to map a serial console port to TCP port, so that using Telnet to the commserver one can actually talk directly to the equipment console port. This is very handy to have out-of-band management this way, as it works even when the main network is down, an access-list has been misconfigured, a router is stuck in ROMMON mode and plenty other hair pulling scenario.&lt;/P&gt;
&lt;P class="p1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="p1"&gt;With the classic RJ45 serial it was a simple task to use a router with a number of serial lines and connect them to console ports for out of band access. But you can't do that with USB... unless you want to use an active USB-to-RJ45 converter, which is messy and they are not that easy to find.&amp;nbsp;&lt;/P&gt;
&lt;P class="p1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;H1 class="p1"&gt;Proposed Solution&amp;nbsp;&lt;span class="lia-inline-image-display-wrapper lia-image-align-right" image-alt="ETY_6448.jpg" style="width: 400px;"&gt;&lt;img src="https://community.cisco.com/t5/image/serverpage/image-id/64142i57A28320D22AFA02/image-size/medium?v=v2&amp;amp;px=400" role="button" title="ETY_6448.jpg" alt="ETY_6448.jpg" /&gt;&lt;/span&gt;&lt;/H1&gt;
&lt;P class="p1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="p1"&gt;I had an old Raspberry Pi 2B+ lying around that I wanted to leverage, but it only has USB ports. You have four USB ports as standard, but I wanted more therefore added an additional board called UUGear BIG7 USB HUB but I'm sure other alternatives will work equally well. The purpose is really to extend the number of USB ports available from 4 up to 11.&lt;/P&gt;
&lt;P class="p1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2 class="p1"&gt;Making serial USB ports predictable and persistent&lt;/H2&gt;
&lt;P class="p1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="p1"&gt;I have used Raspbian as a base operating system, and on my setup and by default the first USB-to-serial connection will be device /dev/ttyACM0. This is not desirable! What we want is to be able to predict which Cisco device console is connected to which USB port, to map a predictable serial device name and ultimately map it to a specific TCP port. For example, if we connect a gateway console to the first USB, we want to map it to /dev/csco1, and to TCP/2001. We will do this my modifying the udev rules, but first we need to uniquely identify the USB ports.&lt;/P&gt;
&lt;P class="p1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="p1"&gt;To identify how your ports are mapped: plug in a Serial USB console and watch using "&lt;FONT face="andale mono,times"&gt;dmesg&lt;/FONT&gt;" on which port this new serial connection has been mapped. For example in my case it shows &lt;FONT face="andale mono,times"&gt;&lt;STRONG&gt;ttyACM0&lt;/STRONG&gt;&lt;/FONT&gt;:&lt;/P&gt;
&lt;P class="p1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE class="p1"&gt;[16201.694459] usb 1-1.3.1: new full-speed USB device number 17 using dwc_otg&lt;BR /&gt;[16201.851950] usb 1-1.3.1: New USB device found, idVendor=05a6, idProduct=0009, bcdDevice= 0.00&lt;BR /&gt;[16201.851975] usb 1-1.3.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0&lt;BR /&gt;[16201.851987] usb 1-1.3.1: Product: Cisco USB Console&lt;BR /&gt;[16201.851997] usb 1-1.3.1: Manufacturer: Cisco&lt;BR /&gt;[16201.883380] cdc_acm 1-1.3.1:1.0: &lt;STRONG&gt;ttyACM0&lt;/STRONG&gt;: USB ACM device&lt;/PRE&gt;
&lt;P class="p1"&gt;Now that I know the device name is ttyACM0, let's check for some unique identifier using:&lt;/P&gt;
&lt;P class="p1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE class="p1"&gt;udevadm info --name=/dev/ttyACM0 --attribute-walk&lt;/PRE&gt;
&lt;P class="p1"&gt;You should see a long list of attributes but the beginning is what is interesting for us. It could be something like:&lt;/P&gt;
&lt;P class="p1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE class="p1"&gt;looking at device '/devices/platform/soc/20980000.usb/usb1/1-1/1-1.3/1-1.3.1/1-1.3.1:1.0/tty/ttyACM0':&lt;BR /&gt;  KERNEL=="ttyACM0"&lt;BR /&gt;  SUBSYSTEM=="tty"&lt;BR /&gt;  DRIVER=="" &lt;BR /&gt;[...]&lt;BR /&gt;looking at parent device '/devices/platform/soc/20980000.usb/usb1/1-1/1-1.3/1-1.3.1':&lt;BR /&gt;  KERNELS=="&lt;STRONG&gt;1-1.3.1&lt;/STRONG&gt;"&lt;BR /&gt;  SUBSYSTEMS=="usb"&lt;BR /&gt;  DRIVERS=="&lt;STRONG&gt;usb&lt;/STRONG&gt;"&lt;BR /&gt;  ATTRS{manufacturer}=="Cisco" &lt;/PRE&gt;
&lt;P class="p1"&gt;Since there can only be one USB driver in 1-1.3.1 this is enough for us to write the rules. Try other ports and see how the numbers are changing, for me this was the first USB port and then it goes&amp;nbsp;&lt;STRONG&gt;1-1.3.2,&amp;nbsp;1-1.3.3, ...&amp;nbsp;1-1.3.7.&amp;nbsp;&lt;/STRONG&gt;The udev mapping can be done by editing (or creating) the file in&amp;nbsp;&lt;FONT face="andale mono,times"&gt;/etc/udev/rules.d/99-usb-serial.rules&lt;/FONT&gt; with the following content:&lt;/P&gt;
&lt;P class="p1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE class="p1"&gt;SUBSYSTEM=="tty",DRIVERS=="usb",KERNELS=="1-1.3.1",SYMLINK+="csco1"&lt;BR /&gt;SUBSYSTEM=="tty",DRIVERS=="usb",KERNELS=="1-1.3.2",SYMLINK+="csco2"&lt;BR /&gt;SUBSYSTEM=="tty",DRIVERS=="usb",KERNELS=="1-1.3.3",SYMLINK+="csco3"&lt;BR /&gt;SUBSYSTEM=="tty",DRIVERS=="usb",KERNELS=="1-1.3.4",SYMLINK+="csco4"&lt;BR /&gt;SUBSYSTEM=="tty",DRIVERS=="usb",KERNELS=="1-1.3.5",SYMLINK+="csco5"&lt;BR /&gt;SUBSYSTEM=="tty",DRIVERS=="usb",KERNELS=="1-1.3.6",SYMLINK+="csco6"&lt;BR /&gt;SUBSYSTEM=="tty",DRIVERS=="usb",KERNELS=="1-1.3.7",SYMLINK+="csco7"&lt;/PRE&gt;
&lt;P class="p1"&gt;&amp;nbsp;Make sure that you restart udev with:&lt;/P&gt;
&lt;P class="p1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE class="p1"&gt;sudo /etc/init.d/udev restart&lt;/PRE&gt;
&lt;P class="p1"&gt;From this point on, when a serial-to-usb device is connected to USB port 1, it will be mapped to a serial device /dev/csco1, the USB port 2 will be mapped to /dev/csco2, and so on. This will make it very predictable for the next step.&amp;nbsp;&lt;/P&gt;
&lt;P class="p1"&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;H2 class="p1"&gt;Using ser2net to map serial ports to Telnet TCP ports&lt;/H2&gt;
&lt;P class="p1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="p1"&gt;Now in order to map specific USB / Serial ports to TCP / Telnet connections there is a very handy software called ser2net. We are very lucky as this is in the Raspbian repository and it can therefore be installed with:&lt;/P&gt;
&lt;P class="p1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE class="p1"&gt;sudo apt install ser2net&lt;/PRE&gt;
&lt;P class="p1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="p1"&gt;Ater the previous where we made the serial ports predictable this will be very simple. One can configure ser2net by editing the file&amp;nbsp;/etc/ser2net.conf with the following:&lt;/P&gt;
&lt;P class="p1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE class="p1"&gt;2001:telnet:600:/dev/csco1:9600 8DATABITS NONE 1STOPBIT -XONXOFF -RTSCTS banner kickolduser&lt;BR /&gt;2002:telnet:600:/dev/csco2:9600 8DATABITS NONE 1STOPBIT -XONXOFF -RTSCTS banner kickolduser&lt;BR /&gt;2003:telnet:600:/dev/csco3:9600 8DATABITS NONE 1STOPBIT -XONXOFF -RTSCTS banner kickolduser&lt;BR /&gt;2004:telnet:600:/dev/csco4:9600 8DATABITS NONE 1STOPBIT -XONXOFF -RTSCTS banner kickolduser&lt;BR /&gt;2005:telnet:600:/dev/csco5:9600 8DATABITS NONE 1STOPBIT -XONXOFF -RTSCTS banner kickolduser&lt;BR /&gt;2006:telnet:600:/dev/csco6:9600 8DATABITS NONE 1STOPBIT -XONXOFF -RTSCTS banner kickolduser&lt;BR /&gt;2007:telnet:600:/dev/csco7:9600 8DATABITS NONE 1STOPBIT -XONXOFF -RTSCTS banner kickolduser&lt;/PRE&gt;
&lt;P class="p1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="p1"&gt;The "kickolduser" is optional but can be very handy: it will disconnect any existing session still active on that serial port and give precedence to the last arrived.&lt;/P&gt;
&lt;P class="p1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="p1"&gt;Make sure to restart ser2net for the configuration to take effect (&lt;FONT face="andale mono,times"&gt;sudo systemctl restart ser2net&lt;/FONT&gt;).&lt;/P&gt;
&lt;P class="p1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2 class="p1"&gt;Testing&amp;nbsp;&lt;/H2&gt;
&lt;P class="p1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="p1"&gt;You can then telnet straight to a given console by using the corresponding TCP port number, for example for the console connected to my first USB port:&lt;/P&gt;
&lt;P class="p1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;etychon@ETYCHON-M-D2ZR~ telnet 192.168.2.7 &lt;STRONG&gt;2001&lt;/STRONG&gt;&lt;BR /&gt;Trying 192.168.2.7...&lt;BR /&gt;Connected to 192.168.2.7.&lt;BR /&gt;Escape character is '^]'.&lt;BR /&gt;ser2net port 2001 device /dev/csco1 [9600 N81] (Debian GNU/Linux)&lt;BR /&gt;ic3k&amp;gt;&lt;/PRE&gt;
&lt;P class="p1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="p1"&gt;That's it - now I'm on the IC3000 serial-USB console using Telnet on a Raspberry Pi!&lt;/P&gt;
&lt;P class="p1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="p1"&gt;Thank you for reading, and let us know in the comments should you have any other ways you are willing to share?&lt;/P&gt;
&lt;P class="p1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Wed, 10 Feb 2021 16:49:46 GMT</pubDate>
      <guid>https://community.cisco.com/t5/data-in-motion-documents/create-a-commserver-for-usb-serial-console-ports-with-a/ta-p/4004090</guid>
      <dc:creator>Emmanuel Tychon</dc:creator>
      <dc:date>2021-02-10T16:49:46Z</dc:date>
    </item>
    <item>
      <title>NSO Developer Days US 2019: NSO 5.x Migration</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-us-2019-nso-5-x-migration/ta-p/3999330</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;&lt;SPAN&gt;Martin Akerstrom, NSO Solutions Architect&lt;/SPAN&gt;&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Mon, 16 Dec 2019 11:19:06 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-us-2019-nso-5-x-migration/ta-p/3999330</guid>
      <dc:creator>Nicklas Wagerth</dc:creator>
      <dc:date>2019-12-16T11:19:06Z</dc:date>
    </item>
    <item>
      <title>NSO Developer Days US 2019:NSO in Docker</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-us-2019-nso-in-docker/ta-p/3998449</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;&lt;SPAN&gt;Kristian Larsson, Architect&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="background: white;"&gt;See how placing NSO in a Docker container can help you streamline your development, testing and deployment flow. Kristian goes through why you might want to use Docker for your NSO development and shows the official NSO Dockerfile as well as how to apply it to your NSO projects.&lt;/SPAN&gt;&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Fri, 13 Dec 2019 12:27:51 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-us-2019-nso-in-docker/ta-p/3998449</guid>
      <dc:creator>Nicklas Wagerth</dc:creator>
      <dc:date>2019-12-13T12:27:51Z</dc:date>
    </item>
    <item>
      <title>NSO Developer Days US 2019: What's Up NSO? Optimize and Troubleshoot</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-us-2019-what-s-up-nso-optimize-and/ta-p/3996440</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;&lt;SPAN&gt;Speaker Sebastian Strollo, Principal Engineer&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Learn more about your NSO system fundamentals and how to optimize and troubleshoot in case performance is slower than you expect.&lt;/SPAN&gt;&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Tue, 10 Dec 2019 13:05:02 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-us-2019-what-s-up-nso-optimize-and/ta-p/3996440</guid>
      <dc:creator>Nicklas Wagerth</dc:creator>
      <dc:date>2019-12-10T13:05:02Z</dc:date>
    </item>
    <item>
      <title>NSO Developer Days US 2019: A Low Code Approach to Brownfield Service Discovery</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-us-2019-a-low-code-approach-to-brownfield/ta-p/3994435</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;&lt;SPAN&gt;Dan Sullivan,&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-family: inherit;"&gt;Principal Solutions Architect&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;A low code approach to brownfield service discovery in NSO&lt;/SPAN&gt;&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Thu, 05 Dec 2019 21:07:56 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-us-2019-a-low-code-approach-to-brownfield/ta-p/3994435</guid>
      <dc:creator>Nicklas Wagerth</dc:creator>
      <dc:date>2019-12-05T21:07:56Z</dc:date>
    </item>
    <item>
      <title>NSO Developer Days US 2019: NSO In and On Kubernetes - Lab instructions</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-us-2019-nso-in-and-on-kubernetes-lab/ta-p/3994180</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;&lt;A href="https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-us-2019-nso-in-and-on-kubernetes/ta-p/3994178" target="_self"&gt;See the slides here&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Thu, 05 Dec 2019 15:43:28 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-us-2019-nso-in-and-on-kubernetes-lab/ta-p/3994180</guid>
      <dc:creator>Nicklas Wagerth</dc:creator>
      <dc:date>2019-12-05T15:43:28Z</dc:date>
    </item>
    <item>
      <title>NSO Developer Days US 2019: NSO In and On Kubernetes</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-us-2019-nso-in-and-on-kubernetes/ta-p/3994178</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;&lt;SPAN&gt;Fredrik Jansson, Principal Engineer &amp;amp;&amp;nbsp;John Mullooly, Distinguished Architect, Sales&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="background: white;"&gt;In the first half of this lab, we build a k8s deployment of NSO from the ground up. We will start packaging NSO in a docker container, from there we will gradually build up to having Helm charts that can deploy NSO in a k8s cluster. In the second half, we will turn things upside down. We will use NSO to orchestrate deployment and "day-n" configuration of an example cloud-native application running in k8s via NSO integration with Helm. This is an intermediate lab; You need to be comfortable with container concepts. You need to be comfortable with container concepts, hands-on container experience will help but is not mandatory.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-us-2019-nso-in-and-on-kubernetes-lab/ta-p/3994180" target="_self"&gt;&lt;SPAN style="background: white;"&gt;Find lab instructions here.&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Thu, 05 Dec 2019 15:44:40 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-us-2019-nso-in-and-on-kubernetes/ta-p/3994178</guid>
      <dc:creator>Nicklas Wagerth</dc:creator>
      <dc:date>2019-12-05T15:44:40Z</dc:date>
    </item>
    <item>
      <title>NSO Developer Days US 2019: Key Note by Fredrik Lundberg</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-us-2019-key-note-by-fredrik-lundberg/ta-p/3994148</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;&lt;SPAN&gt;Fredrik Lundberg, Dir. Strategy &amp;amp; Planning, NSO&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;NSO State of the Union&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Thu, 05 Dec 2019 14:52:04 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-us-2019-key-note-by-fredrik-lundberg/ta-p/3994148</guid>
      <dc:creator>Nicklas Wagerth</dc:creator>
      <dc:date>2019-12-05T14:52:04Z</dc:date>
    </item>
    <item>
      <title>NSO Developer Days US 2019: Fastmap Templates in Cisco NSO</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-us-2019-fastmap-templates-in-cisco-nso/ta-p/3994141</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;Michael Maddern, Technical Marketing Engineer&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;This session will demonstrate the use of template-based fastmap in Cisco NSO. It’s easy to underestimate how quickly and simply a new service can be configured based on a synced configuration and templates. Rapid service velocity can be a major competitive differentiator. The presentation will include an introduction to the templating functionality and a demo focused on creating a service from scratch using template-based fastmap in Cisco NSO.&lt;/SPAN&gt;&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Thu, 05 Dec 2019 14:45:00 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-us-2019-fastmap-templates-in-cisco-nso/ta-p/3994141</guid>
      <dc:creator>Nicklas Wagerth</dc:creator>
      <dc:date>2019-12-05T14:45:00Z</dc:date>
    </item>
    <item>
      <title>NSO Developer Days US 2019: Network Automation Delivery Model</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-us-2019-network-automation-delivery-model/ta-p/3994133</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;&lt;SPAN&gt;Fredrik Swahn, Product Marketing Manager&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Network automation is high on the agenda, but remains a daunting challenge, with results often failing to live up to expectations. Many are struggling with both the technical and organizational changes it requires. With years of experience of implementing network automation using the Cisco Network Services Orchestrator (NSO), we have developed a Network Automation Delivery Model (NADM) that aims to guide customers in their journey towards a fully automated network. A powerful, standardized, model that covers the essential parts of a network automation transformation will be presented and discussed. The model covers all four perspectives of People, Process, Technology, and Organization and therefore targets all the stakeholders from C-level decision makers to the network engineers that execute the operations of the network as of today. During the session, both challenges and success factors for implementing network automation will be presented and put into context.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Thu, 05 Dec 2019 14:31:04 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-us-2019-network-automation-delivery-model/ta-p/3994133</guid>
      <dc:creator>Nicklas Wagerth</dc:creator>
      <dc:date>2019-12-05T14:31:04Z</dc:date>
    </item>
    <item>
      <title>NSO Developer Days US 2019: Workflow vs NSO Service vs Nano Service</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-us-2019-workflow-vs-nso-service-vs-nano/ta-p/3994118</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;&lt;SPAN&gt;Viktor Leijon, Technical Leader, NSO&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;In this presentation, Viktor gives an overview of the design choices that goes into designing an orchestration solution, explaining the motivation for key NSO features and explain how that position NSO within the larger automation landscape. We will take a look at the principles behind orchestration in general and NSO in particular and discuss how they combine to form the system we have today as well as how to integrate that into a larger solution.&lt;/SPAN&gt;&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Thu, 05 Dec 2019 14:16:22 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-us-2019-workflow-vs-nso-service-vs-nano/ta-p/3994118</guid>
      <dc:creator>Nicklas Wagerth</dc:creator>
      <dc:date>2019-12-05T14:16:22Z</dc:date>
    </item>
    <item>
      <title>NSO Developer Days US 2019: A Breakneck Journey into Network Service Based Automation in DevNet Sandbox</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-us-2019-a-breakneck-journey-into-network/ta-p/3994110</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;&lt;SPAN&gt;Hank Preston, Principal Engineer, Cisco DevNet&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="background: white;"&gt;Sandbox is a public Software as a Service offering from Cisco DevNet that provides developers access to Cisco hardware and software (as well as relevant third-party and open source solutions) for building applications and automation using the APIs and platforms provided in them. Under the hood, this means we operate data center networks that aren’t that different from most enterprises, but with some unique design and scale needs. We recently decided to go all-in with network automation and chose Cisco NSO to be our tool for defining and managing the network services that power Sandbox. As stars aligned, we also were building a new data center with a very short timeline… hence our breakneck journey into network service automation.&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Thu, 05 Dec 2019 13:55:49 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-us-2019-a-breakneck-journey-into-network/ta-p/3994110</guid>
      <dc:creator>Nicklas Wagerth</dc:creator>
      <dc:date>2019-12-05T13:55:49Z</dc:date>
    </item>
    <item>
      <title>NSO Developer Days US 2019: Nano services presentation</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-us-2019-nano-services-presentation/ta-p/3993770</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;Presentation performed at NSO Developer days in New York 2019&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Thu, 05 Dec 2019 11:09:57 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-us-2019-nano-services-presentation/ta-p/3993770</guid>
      <dc:creator>tryeng</dc:creator>
      <dc:date>2019-12-05T11:09:57Z</dc:date>
    </item>
    <item>
      <title>Getting a gateway serial number from Cisco IOx</title>
      <link>https://community.cisco.com/t5/cisco-iox-documents/getting-a-gateway-serial-number-from-cisco-iox/ta-p/3928832</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;If you are required to retrieve the gateway serial number from an IOx application, environment variables set by the Cisco Application Framework (CAF) are automatically set in the execution environment in the&amp;nbsp;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;/data/.env&lt;/FONT&gt;&lt;/STRONG&gt; file.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You can access this file from your IOx application directly, or invoke it to set all the variables as environment variables, such as:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;/ # source /data/.env
/ # echo $CAF_SYSTEM_SERIAL_ID
FGL23362022&lt;/PRE&gt;
&lt;P&gt;To see all the variables available in an IOx container, this can be done by accessing the console with the ioxclient utility. The following command (to get console to the application called iox-serial) and then list all the variables:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt; etychon@squeeze:~/iox/iox-serial$ ioxclient app con iox_serial
Currently active profile :  default
Command Name:  application-console
Console setup is complete..
Running command : [ssh -p 2222 -i iox_serial.pem appconsole@192.168.2.231]
/ # cat /data/.env
#!/bin/sh
export CAF_APP_PERSISTENT_DISK_SIZE_KB=102400
export CAF_APP_MEMORY_SIZE_KB=51200
export CAF_SYSTEM_PRODUCT_ID=IR829M-2LTE-EA-EK9
export CAF_SYSTEM_NAME=IR800
export CAF_SS_PORT=9443
export CAF_APP_APPDATA_DIR=/data/appdata
export CAF_APP_CONFIG_DIR=/data
export CAF_SS_IP_ADDR=192.168.1.6
export CAF_APP_CORE_DIR=/tmp/cores
export CAF_APP_LOG_DIR=/data/logs
export CAF_SYSTEM_SERIAL_ID=FGL23362022
export CAF_APP_PERSISTENT_DIR=/data
export CAF_APP_CPU_SHARES=342
export CAF_APP_ID=iox_serial
export CAF_APP_USERNAME=root
export HOST_DEV1=/dev/ttyACM0
export CAF_SYSTEM_UUID=7581eb7b-8c04-4412-b2bb-503598f06a72/                                                         &lt;/PRE&gt;
&lt;P&gt;To learn more about these variables check the "Environment Variables" section of Cisco IOx DevNet Documentation: &lt;A href="https://developer.cisco.com/docs/iox/#!application-development-concepts/application-development-concepts" target="_self"&gt;https://developer.cisco.com/docs/iox/#!application-development-concepts/application-development-concepts&lt;/A&gt;&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Tue, 24 Sep 2019 12:37:53 GMT</pubDate>
      <guid>https://community.cisco.com/t5/cisco-iox-documents/getting-a-gateway-serial-number-from-cisco-iox/ta-p/3928832</guid>
      <dc:creator>Emmanuel Tychon</dc:creator>
      <dc:date>2019-09-24T12:37:53Z</dc:date>
    </item>
    <item>
      <title>Getting a gateway Cellular RSSI from Cisco IOx</title>
      <link>https://community.cisco.com/t5/cisco-iox-documents/getting-a-gateway-cellular-rssi-from-cisco-iox/ta-p/3928547</link>
      <description>&lt;DIV class="lia-message-template-symptoms-zone"&gt;
&lt;H2&gt;How to I get the gateway Cellular RSSI from Cisco IOx ?&lt;/H2&gt;
&lt;P&gt;If you have an IOx application that requires tp capture the cellular modem signal strength (for example to include in telemetry data along with GPS position and map signal with location), you will find that there is no direct way to get it from IOx. The reason is that the application hosting environment is virtualized and therefore Cisco IOS metrics are not directly accessible.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Simple Network Management Protocol (SNMP) which is an IOS feature can be leverage to exposed this variable or any other SNMP variable. SNMP can be easily configured on the gateway with just a few lines:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;On a Cisco IR829 with guest-os running in the 192.168.1.0/24 range, where 192.168.1.1 is being assigned to the virtual Gigabit Ethernet 5 interface, then this is what it takes to give SNMP access to all the virtual instances running on the gateway:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;IR829(config)# access-list 10 permit 192.168.1.0 0.0.0.255
IR829(config)# snmp-server community public RO 10&lt;/PRE&gt;
&lt;P&gt;The IOx application can then poll the right SNMP OIDs straight from the gateway, and this OID may change depending on the particular model. Always refer the device's MIB.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For example in Python to poll both cellular interface's RSSI on a Cisco IR829M:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;from pysnmp.entity.rfc3413.oneliner import cmdgen
import time

SNMP_HOST = '192.168.1.1'
SNMP_PORT = 161
SNMP_COMMUNITY = 'public'


cmdGen = cmdgen.CommandGenerator()

errorIndication, errorStatus, errorIndex, varBinds = cmdGen.getCmd(
    cmdgen.CommunityData(SNMP_COMMUNITY),
    cmdgen.UdpTransportTarget((SNMP_HOST, SNMP_PORT)),
    '1.3.6.1.4.1.9.9.661.1.3.4.1.1.1.20',&lt;BR /&gt;    '1.3.6.1.4.1.9.9.661.1.3.4.1.1.1.21'
)

for name, val in varBinds:
    print('%s = %s' % (name.prettyPrint(), val.prettyPrint()))&lt;/PRE&gt;
&lt;P&gt;You should see the RSSI signal (in dBm) returned like so:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;SNMPv2-SMI::enterprises.9.9.661.1.3.4.1.1.1.20 = -128&lt;BR /&gt;SNMPv2-SMI::enterprises.9.9.661.1.3.4.1.1.1.21 = -128&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Mon, 23 Sep 2019 18:10:06 GMT</pubDate>
      <guid>https://community.cisco.com/t5/cisco-iox-documents/getting-a-gateway-cellular-rssi-from-cisco-iox/ta-p/3928547</guid>
      <dc:creator>Emmanuel Tychon</dc:creator>
      <dc:date>2019-09-23T18:10:06Z</dc:date>
    </item>
    <item>
      <title>Help me Caculator PortIndext Cisco ASR 9010+7600</title>
      <link>https://community.cisco.com/t5/services-documents/help-me-caculator-portindext-cisco-asr-9010-7600/ta-p/3885564</link>
      <description>&lt;DIV class="lia-message-template-question-zone"&gt;&lt;H2&gt;example:&lt;/H2&gt;&lt;H2&gt;Name/OID: ifDescr.447; Value (OctetString): TenGigE0/7/1/2&lt;/H2&gt;&lt;P&gt;please help me , how to caculator ifDescr of interface.&lt;/P&gt;&lt;P&gt;gi0/1/1/1--&amp;gt;ifDescr=?.....&lt;/P&gt;&lt;P&gt;thank!&lt;/P&gt;&lt;H2&gt;&amp;nbsp;&lt;/H2&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;&lt;DIV class="lia-message-template-answer-zone"&gt;&lt;H2&gt;&amp;nbsp;&lt;/H2&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;</description>
      <pubDate>Sat, 06 Jul 2019 10:18:44 GMT</pubDate>
      <guid>https://community.cisco.com/t5/services-documents/help-me-caculator-portindext-cisco-asr-9010-7600/ta-p/3885564</guid>
      <dc:creator>minhanh01081</dc:creator>
      <dc:date>2019-07-06T10:18:44Z</dc:date>
    </item>
    <item>
      <title>NSO Developer Days 2019: EXPERIENCE THE THRILL OF FOILING Two Flying Dutchman stories demystified</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-experience-the-thrill-of-foiling-two/ta-p/3882355</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;Abstract:&amp;nbsp;&lt;SPAN&gt;Telindus, SURFnet and T-Mobile share their outcomes of different automation strategies. How to go above and beyond the traditional way of networking to experience the thrill of foiling. The thrill to master core and B2B connectivity services in full flight with automation is changing the networking landscape for good. The future of networking is like foiling is for sailing: agility and speed with less effort and reduced risks. Telindus enabled this foiling state with Cisco NSO for T-Mobile and SURFnet with different approaches.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Speakers:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Wouter Huisman, SurfNet&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Albert Lentink, Telindus&lt;/SPAN&gt;&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Mon, 01 Jul 2019 08:16:30 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-experience-the-thrill-of-foiling-two/ta-p/3882355</guid>
      <dc:creator>Nicklas Wagerth</dc:creator>
      <dc:date>2019-07-01T08:16:30Z</dc:date>
    </item>
    <item>
      <title>NSO Developer Days 2019: Telefonica - A Glance At Our Automation Journey</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-telefonica-a-glance-at-our-automation/ta-p/3880650</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;Abstract:&amp;nbsp;&lt;SPAN&gt;From Telefonica International we are proud to share with the community our experience using Cisco NSO. The evolution from NetOps towards NetDevOps perspective&amp;nbsp;to carry out our daily network operations and the use of Cisco NSO as core SDN controller of proprietary&amp;nbsp;integrated solutions are the base of our automation journey to perform current and arising network challenges.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Speakers:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Carlos Cabrera, Telefonica, Network Developer&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Javier Marquez,&amp;nbsp;Telefonica, Network Developer&lt;/SPAN&gt;&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Thu, 27 Jun 2019 10:34:21 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-telefonica-a-glance-at-our-automation/ta-p/3880650</guid>
      <dc:creator>Nicklas Wagerth</dc:creator>
      <dc:date>2019-06-27T10:34:21Z</dc:date>
    </item>
    <item>
      <title>NSO Developer Days 2019: AUTLAN – The Automation Journey of an Integrated Telecommunications Company</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-autlan-the-automation-journey-of-an/ta-p/3880644</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;&lt;SPAN&gt;Abstract: With a strategy to lead in customer experience, technology and business productivity, Deutsche Telekom has some great aspirations. We are more than an infrastructure company; in this complex digital world we make life easier for people enriching it at every opportunity - at home and at work, anytime, anyplace.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Speakers:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Johannes Peternek, DT,&amp;nbsp;Referent Technikbereitstellung IP&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Annand Sanghani, Itential,&amp;nbsp;Sales Engineer&lt;/SPAN&gt;&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Thu, 27 Jun 2019 10:25:54 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-autlan-the-automation-journey-of-an/ta-p/3880644</guid>
      <dc:creator>Nicklas Wagerth</dc:creator>
      <dc:date>2019-06-27T10:25:54Z</dc:date>
    </item>
    <item>
      <title>NSO Developer Days 2019: Intelsat – Automation Journey</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-intelsat-automation-journey/ta-p/3880634</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;Abstract:&amp;nbsp;&lt;SPAN&gt;Shortly after adopting automation and Cisco NSO, Intelsat is automating its network provisioning routines, for both infrastructure and customer networks. This session will be jointly delivered by an Intelsat Principal Architect and Cisco CX Software Architect and will provide a look into Intelsat’s Automation journey – joining hands with Cisco CX in establishing an automation team, learning and implementing software development concepts and processes for setting the foundation of future automation expansion.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Speakers:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Darren Bono, Intelsat,&amp;nbsp;Senior Principal Design Engineer&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Ohad Harel, Cisco CX,&amp;nbsp;Software Architect&lt;/SPAN&gt;&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Thu, 27 Jun 2019 10:09:17 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-intelsat-automation-journey/ta-p/3880634</guid>
      <dc:creator>Nicklas Wagerth</dc:creator>
      <dc:date>2019-06-27T10:09:17Z</dc:date>
    </item>
    <item>
      <title>NSO Developer Days 2019: Audience Feedback on Roadmap through Mentimeter</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-audience-feedback-on-roadmap-through/ta-p/3880611</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;During NSO Developer Days, the Mentimeter tool is often used to poll and interact with the audience. Here are the results from the questions on the NSO Roadmap content.&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Thu, 27 Jun 2019 09:33:11 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-audience-feedback-on-roadmap-through/ta-p/3880611</guid>
      <dc:creator>Jan Lindblad</dc:creator>
      <dc:date>2019-06-27T09:33:11Z</dc:date>
    </item>
    <item>
      <title>NSO Developer Days 2019: Roadmap and Future outlook</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-roadmap-and-future-outlook/ta-p/3880608</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;Abstract: Future outlook and industry trend. Also a deeper look into how Merkle trees could be used to optimize future versions of NSO.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Speaker: Carl Moberg,&amp;nbsp;Charlotta Spik&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Thu, 27 Jun 2019 11:21:19 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-roadmap-and-future-outlook/ta-p/3880608</guid>
      <dc:creator>Jan Lindblad</dc:creator>
      <dc:date>2019-06-27T11:21:19Z</dc:date>
    </item>
    <item>
      <title>NSO Developer Days 2019: Network Programmability with YANG -- The YANG Book</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-network-programmability-with-yang-the/ta-p/3880588</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;Abstract:&amp;nbsp;&lt;SPAN&gt;For about a decade or so, many of us have often talked about the need for a book that describes the Model-Driven Network Automation Architecture that we all work with. Going all the way from an automation business case down to the actual protocol operations. Especially covering the reasons why things are the way they are in NETCONF/YANG, which isn't something you can read about in the RFCs. Finally, a trio of Cisco IETF participants got around and did it. This presentation gives some peeks into the result.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Speaker: Jan Lindblad&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Thu, 27 Jun 2019 09:00:44 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-network-programmability-with-yang-the/ta-p/3880588</guid>
      <dc:creator>Jan Lindblad</dc:creator>
      <dc:date>2019-06-27T09:00:44Z</dc:date>
    </item>
    <item>
      <title>NSO Developer Days 2019: NETCONF Call Home</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-netconf-call-home/ta-p/3880587</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;Abstract:&amp;nbsp;Introduction to NETCONF call home capabilities in NSO and ConfD. Why it's needed in certain environments and how you set it up in NSO and ConfD, with a demo at the end.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Speaker: Fredrik Jansson&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Thu, 27 Jun 2019 08:58:22 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-netconf-call-home/ta-p/3880587</guid>
      <dc:creator>Jan Lindblad</dc:creator>
      <dc:date>2019-06-27T08:58:22Z</dc:date>
    </item>
    <item>
      <title>NSO Developer Days 2019: NSO Interop, EANTC and YANG</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-nso-interop-eantc-and-yang/ta-p/3880585</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;Abstract:&amp;nbsp;&lt;SPAN&gt;The IETF NETMOD working group is constantly at work adding features to the YANG language family, such as RFC 8528 YANG Schema Mount leveraged by NSO 5.x. Over 30 other IETF working groups have released YANG modules for their respective areas during the last year. YANG related interoperability is advancing, both at the yearly EANTC interop event, and through the NSO Interop Lab.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Speaker: Jan Lindblad&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Thu, 27 Jun 2019 08:54:28 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-nso-interop-eantc-and-yang/ta-p/3880585</guid>
      <dc:creator>Jan Lindblad</dc:creator>
      <dc:date>2019-06-27T08:54:28Z</dc:date>
    </item>
    <item>
      <title>NSO Developer Days 2019: Service Provider as an API</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-service-provider-as-an-api/ta-p/3880581</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;Abstract:&amp;nbsp;&lt;SPAN&gt;As most industries are evolving into API based consumption models for its resources, this presentation gives an overview of the opportunities, challenges and how to overcome some challenges to transform all aspects of a service provider into API consumable entities&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Speaker:&amp;nbsp;&lt;SPAN&gt;Hari Sudhakar&lt;/SPAN&gt;&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Thu, 27 Jun 2019 08:51:22 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-service-provider-as-an-api/ta-p/3880581</guid>
      <dc:creator>Jan Lindblad</dc:creator>
      <dc:date>2019-06-27T08:51:22Z</dc:date>
    </item>
    <item>
      <title>NSO Developer Days 2019: The business case of network automation</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-the-business-case-of-network-automation/ta-p/3880577</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;Abstract:&amp;nbsp;&lt;SPAN&gt;How can I sell the NSO automation inside my organization? And how should I plan it? How can I evaluate the return on investment of each use case, and how should I design the use cases, so it is maximized? How should I measure success? How can I make clear my stakeholders the benefit of investing in NSO and automation? This presentation will guide you through these questions and help you to build an answer. When you leave you will know how to prepare for a senior conversation about the importance of automation investment, and how it should be planned.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Speaker:&amp;nbsp;&lt;SPAN&gt;Joao Serrano&lt;/SPAN&gt;&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Thu, 27 Jun 2019 08:48:51 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-the-business-case-of-network-automation/ta-p/3880577</guid>
      <dc:creator>Jan Lindblad</dc:creator>
      <dc:date>2019-06-27T08:48:51Z</dc:date>
    </item>
    <item>
      <title>NSO Developer Days 2019: Automated NED Validation</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-automated-ned-validation/ta-p/3880571</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;Abstract:&amp;nbsp;&lt;SPAN&gt;This session will help you understand automation of the NED validation process which is usually done manually and takes from days to weeks. We’ll help you understand the impact of automation, and how to save time and resources on your projects.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Speaker:&amp;nbsp;&lt;SPAN&gt;Eswaramoorthy Ramasamy&lt;/SPAN&gt;&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Thu, 27 Jun 2019 08:40:52 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-automated-ned-validation/ta-p/3880571</guid>
      <dc:creator>Jan Lindblad</dc:creator>
      <dc:date>2019-06-27T08:40:52Z</dc:date>
    </item>
    <item>
      <title>NSO Developer Days 2019: Intent Based Network Analysis with Interoperability between NSO &amp; Forward Networks</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-intent-based-network-analysis-with/ta-p/3880569</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;Abstract:&amp;nbsp;&lt;SPAN&gt;NSO offers the best configuration management capabilities for multi-vendor networks. Forward Networks offers the best intent-based network path analysis, Network Assurance &amp;amp; topology generation with extremely valuable meta data capabilities if it is able to consume live network configuration. Interoperability between NSO &amp;amp; Forward Networks using OpenConfig standards would be symbiotic and would unleash enormous value to customers with automated network verification &amp;amp; network remediation.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Speaker:&amp;nbsp;&lt;SPAN&gt;Krishna Venkatraman&lt;/SPAN&gt;&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Thu, 27 Jun 2019 08:39:02 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-intent-based-network-analysis-with/ta-p/3880569</guid>
      <dc:creator>Jan Lindblad</dc:creator>
      <dc:date>2019-06-27T08:39:02Z</dc:date>
    </item>
    <item>
      <title>NSO Developer Days 2019: Automate NSO PackageTesting and Delivery Process with CI/CD pipeline</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-automate-nso-packagetesting-and-delivery/ta-p/3880566</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;Abstract:&amp;nbsp;&lt;SPAN&gt;The goal of this presentation is to share best practices implementing a CI/CD (Continuous Integration/Continuous Delivery) methodology for NSO, being able to implement a complete build process that could be applied to code delivery and test automation. We now have the possibility to continuously retest our deliverables providing better quality NSO services with less effort. This is positively impacting Time to Market and OPEX for our customers.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Speaker:&amp;nbsp;&lt;SPAN&gt;Artur Cieszkowski&lt;/SPAN&gt;&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Thu, 27 Jun 2019 08:35:16 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-automate-nso-packagetesting-and-delivery/ta-p/3880566</guid>
      <dc:creator>Jan Lindblad</dc:creator>
      <dc:date>2019-06-27T08:35:16Z</dc:date>
    </item>
    <item>
      <title>NSO Developer Days 2019: Leaving breadcrumbs, an agile journey towards requirement storytelling</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-leaving-breadcrumbs-an-agile-journey/ta-p/3880564</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;IFRAME width="560" height="315" src="https://www.youtube.com/embed/r1cSAptnF9k" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""&gt;&lt;/IFRAME&gt;
&lt;P&gt;Abstract:&amp;nbsp;&lt;SPAN&gt;Learn how Data Ductus increased their quality of delivery when they used the unknown to their advantage and tried different paths to find their way. It will explain how these new paths led them to use storytelling as a means to communicate requirements with their customers and inspired them to break new ground within innovation and automation.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Speaker: Mia Johansson&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Fri, 05 Jul 2019 20:03:48 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-leaving-breadcrumbs-an-agile-journey/ta-p/3880564</guid>
      <dc:creator>Jan Lindblad</dc:creator>
      <dc:date>2019-07-05T20:03:48Z</dc:date>
    </item>
    <item>
      <title>NSO Developer Days 2019: Improving efficiency and quality using Data Ductus NSO Toolkit</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-improving-efficiency-and-quality-using/ta-p/3880562</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;&lt;SPAN&gt;Abstract: A demonstration of the development tools and frameworks that were developed by Data Ductus to speed up deliveries, shorten team ramp up time while focusing on high quality deliveries.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Speakers:&amp;nbsp;&lt;SPAN&gt;Kristoffer Hansson, Jesper Sigården, Data Ductus&lt;/SPAN&gt;&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Thu, 27 Jun 2019 08:24:21 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-improving-efficiency-and-quality-using/ta-p/3880562</guid>
      <dc:creator>Jan Lindblad</dc:creator>
      <dc:date>2019-06-27T08:24:21Z</dc:date>
    </item>
    <item>
      <title>NSO Developer Days 2019: Automated Validation of Data Plane Functions in Multi-Cloud Environments</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-automated-validation-of-data-plane/ta-p/3879220</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;Abstract:&lt;/P&gt;
&lt;DIV&gt;A key challenge when adopting a multi-cloud strategy is to achieve a solution that is fully automated, highly secure and quality assured. A core component in the multi-cloud is the cloud exchange that interconnects end-users securely to applications in various cloud locations, across virtual networks and virtual functions. This is where Cisco's Secure Agile Exchange (SAE)&amp;nbsp;provides a unique offering.&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;This session explains how Cisco SAE works together with Netrounds to achieve automated active assurance of newly created network services and virtual service chains. The live demo will show an innovative assurance solution with Cisco NSO deploying Netrounds Active Test Agents as part of service chains running on Cisco SAE.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;Netrounds on SAE enables advanced and automated sectionalisation&amp;nbsp;of the virtualised&amp;nbsp;data plane and ensures that new services are delivered right the first time, and that they remain right all the time during their life cycle.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;Speakers: &lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&lt;SPAN&gt;-&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: inherit;"&gt;Sujay Murthy – Cisco NSO Application Team/SAE&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;- Jonas Krogell,&amp;nbsp;Technical Product Manager Netrounds&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;</description>
      <pubDate>Tue, 25 Jun 2019 12:55:52 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-automated-validation-of-data-plane/ta-p/3879220</guid>
      <dc:creator>Nicklas Wagerth</dc:creator>
      <dc:date>2019-06-25T12:55:52Z</dc:date>
    </item>
    <item>
      <title>NSO Developer Days 2019: Fun@DevDays -- A couple of mid-event photos</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-fun-devdays-a-couple-of-mid-event-photos/ta-p/3879100</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;Speaker: Nicklas Wägerth&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Tue, 25 Jun 2019 08:51:55 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-fun-devdays-a-couple-of-mid-event-photos/ta-p/3879100</guid>
      <dc:creator>Jan Lindblad</dc:creator>
      <dc:date>2019-06-25T08:51:55Z</dc:date>
    </item>
    <item>
      <title>NSO Developer Days 2019: NSO 5.1 Migration</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-nso-5-1-migration/ta-p/3879099</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;Abstract:&amp;nbsp;&lt;SPAN&gt;Migrating to the Common Data Model&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Speaker:&amp;nbsp;&lt;SPAN&gt;Martin Åkerström&lt;/SPAN&gt;&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Tue, 25 Jun 2019 08:50:30 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-nso-5-1-migration/ta-p/3879099</guid>
      <dc:creator>Jan Lindblad</dc:creator>
      <dc:date>2019-06-25T08:50:30Z</dc:date>
    </item>
    <item>
      <title>NSO Developer Days 2019: The life and death of NEDs</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-the-life-and-death-of-neds/ta-p/3879097</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;&lt;IFRAME src="https://www.youtube.com/embed/B0YFQoddqIo" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"&gt;&lt;/IFRAME&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Abstract:&amp;nbsp;&lt;SPAN&gt;As the legs of NSO, NEDs are crucial for NSO getting anywhere. NEDs have a different life cycle and release rhythm than NSO itself, so how then can new NEDs be added, verified, upgraded, upgraded again, tested and finally retired? NSO 5.x changes the NED landscape quite a bit. We will also touch on what other features NSO 5.2 brings.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Speaker: Denys Knertser &amp;amp; Jan Lindblad&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Fri, 05 Jul 2019 15:59:15 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-the-life-and-death-of-neds/ta-p/3879097</guid>
      <dc:creator>Jan Lindblad</dc:creator>
      <dc:date>2019-07-05T15:59:15Z</dc:date>
    </item>
    <item>
      <title>NSO Developer Days 2019: Lifecycle NSO -- A presentation focused on the IT persona</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-lifecycle-nso-a-presentation-focused-on/ta-p/3879096</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;Abstract:&amp;nbsp;&lt;SPAN&gt;If you are an IT administrator managing NSO, you want to attend this session. We will look at the different aspect of NSO IT app lifecycle: plan, install, secure, manage and upgrade. We plan to make it an iterative session with lots of time for questions and experience sharing.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Speaker:&amp;nbsp;&lt;SPAN&gt;Roque Gagliano&lt;/SPAN&gt;&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Tue, 25 Jun 2019 08:47:13 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-lifecycle-nso-a-presentation-focused-on/ta-p/3879096</guid>
      <dc:creator>Jan Lindblad</dc:creator>
      <dc:date>2019-06-25T08:47:13Z</dc:date>
    </item>
    <item>
      <title>NSO Developer Days 2019: Brownfield Service Reconcile Operations</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-brownfield-service-reconcile-operations/ta-p/3879095</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;IFRAME width="560" height="315" src="https://www.youtube.com/embed/KudcsCAE-Sw" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""&gt;&lt;/IFRAME&gt;
&lt;P&gt;Abstract:&amp;nbsp;&lt;SPAN&gt;A low code approach to brownfield service discovery in NSO&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Speaker: Dan Sullivan&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Fri, 05 Jul 2019 17:05:32 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-brownfield-service-reconcile-operations/ta-p/3879095</guid>
      <dc:creator>Jan Lindblad</dc:creator>
      <dc:date>2019-07-05T17:05:32Z</dc:date>
    </item>
    <item>
      <title>NSO Developer Days 2019: Opening Welcome</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-opening-welcome/ta-p/3879085</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;Opening Welcome by NSO Business Unit Engineering leader Fredrik Lundberg. Warning: ends up a bit in the weeds ;-)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Speaker:&amp;nbsp;&lt;SPAN&gt;Fredrik Lundberg, Cisco&lt;/SPAN&gt;&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Thu, 27 Jun 2019 08:12:25 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-opening-welcome/ta-p/3879085</guid>
      <dc:creator>Jan Lindblad</dc:creator>
      <dc:date>2019-06-27T08:12:25Z</dc:date>
    </item>
    <item>
      <title>NSO Developer Days 2019: NSO History and Design Principles</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-nso-history-and-design-principles/ta-p/3879082</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;Abstract:&amp;nbsp;&lt;SPAN&gt;Today NSO is the established market-leader in network service orchestration, but when NSO (tail-f NCS) took form in 2010, the market was crowded with competition and NSO had to be unique to win against established automation tools. We will give an overview of the reasoning and motivation for key NSO features and technical decisions and explain how that positions NSO within the larger automation landscape. We will take a look at the principles behind orchestration in general and NSO in particular and discuss how they combine to form the system we have today.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Speakers:&amp;nbsp;&lt;SPAN&gt;Viktor Leijon and Stefan Wallin (Netrounds)&lt;/SPAN&gt;&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Tue, 25 Jun 2019 08:19:45 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-nso-history-and-design-principles/ta-p/3879082</guid>
      <dc:creator>Jan Lindblad</dc:creator>
      <dc:date>2019-06-25T08:19:45Z</dc:date>
    </item>
    <item>
      <title>NSO Developer Days 2019: Performance Improvements</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-performance-improvements/ta-p/3879080</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;Abstract:&amp;nbsp;&lt;SPAN&gt;We have made some significant performance enhancements in the area of memory management, when-expression evaluation, and filtering of dynamic instances when reading data from external data providers. This talk will describe the internals of those enhancements and how it impacts NSO users.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Speaker: Johan Bevemyr&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Tue, 25 Jun 2019 08:18:10 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-performance-improvements/ta-p/3879080</guid>
      <dc:creator>Jan Lindblad</dc:creator>
      <dc:date>2019-06-25T08:18:10Z</dc:date>
    </item>
    <item>
      <title>NSO Developer Days 2019: Network Automation Delivery Model</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-network-automation-delivery-model/ta-p/3879078</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;Abstract:&amp;nbsp;&lt;SPAN&gt;Network Automation is high on the agenda, but remains a daunting challenge, with results often failing to live up to expectations. Many are struggling with both the technical and organizational changes it requires. With years of experience of implementing network automation using the Cisco Network Services Orchestrator (NSO), we have developed a Network Automation Delivery Model (NADM) that aims to guide customers in their journey towards a fully automated network.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Speaker:&amp;nbsp;&lt;SPAN&gt;Fredrik Swahn&lt;/SPAN&gt;&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Tue, 25 Jun 2019 08:16:41 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-network-automation-delivery-model/ta-p/3879078</guid>
      <dc:creator>Jan Lindblad</dc:creator>
      <dc:date>2019-06-25T08:16:41Z</dc:date>
    </item>
    <item>
      <title>NSO Developer Days 2019: Softbank NSO Use Case and NFV initiative</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-softbank-nso-use-case-and-nfv-initiative/ta-p/3878585</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;Abstract:&amp;nbsp;&lt;SPAN&gt;Softbank has deployed SDN gateway service with NSO from 2016 and has completed a major NSO version upgrade in 2018. In this presentation Softbank share their NSO use case and their experience of SDN service development as well as their SDN NFV Initiative.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Speakers: Hironori Nakano,&amp;nbsp;Director, Solution Service Department &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Kentaro Momeya, Softbank,&amp;nbsp;Network Engineer&lt;/SPAN&gt;&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Mon, 24 Jun 2019 14:51:11 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-softbank-nso-use-case-and-nfv-initiative/ta-p/3878585</guid>
      <dc:creator>Nicklas Wagerth</dc:creator>
      <dc:date>2019-06-24T14:51:11Z</dc:date>
    </item>
    <item>
      <title>NSO Developer Days 2019: NSO and the Orange International Wholesale transformation</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-nso-and-the-orange-international/ta-p/3878539</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;&lt;SPAN&gt;Abstract: How the introduction of Cisco NSO as a network tool finally drove the whole transformation of Orange International Wholesale transformation to the final benefit of the customer.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Speaker:Cédric Bonnet,&amp;nbsp;Head of Wholesale IP Services Engineering department&lt;/SPAN&gt;&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Mon, 24 Jun 2019 14:45:54 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/nso-developer-days-2019-nso-and-the-orange-international/ta-p/3878539</guid>
      <dc:creator>Nicklas Wagerth</dc:creator>
      <dc:date>2019-06-24T14:45:54Z</dc:date>
    </item>
    <item>
      <title>NSO DevDays 2019: Marcus Hacke's keynote: SD-WAN as a Service @ ngena</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/nso-devdays-2019-marcus-hacke-s-keynote-sd-wan-as-a-service/ta-p/3875913</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;The presentation material for Marcus Hacke's keynote speech at NSO Developer Days 2019.&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Mon, 24 Jun 2019 13:48:15 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/nso-devdays-2019-marcus-hacke-s-keynote-sd-wan-as-a-service/ta-p/3875913</guid>
      <dc:creator>Jan Lindblad</dc:creator>
      <dc:date>2019-06-24T13:48:15Z</dc:date>
    </item>
    <item>
      <title>CiscoSimple_SimplifyIoTForYourCommunity_Webinar_Presentation_5.8.19</title>
      <link>https://community.cisco.com/t5/internet-of-things-iot-documents/ciscosimple-simplifyiotforyourcommunity-webinar-presentation-5-8/ta-p/3852407</link>
      <description>&lt;P&gt;Presentation from the Public Sector 5.8.19 Simple IT webinar, "Simplify IoT For Your Community" on IoT.&lt;/P&gt;</description>
      <pubDate>Wed, 08 May 2019 14:01:28 GMT</pubDate>
      <guid>https://community.cisco.com/t5/internet-of-things-iot-documents/ciscosimple-simplifyiotforyourcommunity-webinar-presentation-5-8/ta-p/3852407</guid>
      <dc:creator>cadodd</dc:creator>
      <dc:date>2019-05-08T14:01:28Z</dc:date>
    </item>
    <item>
      <title>Using the PSIRT API with python</title>
      <link>https://community.cisco.com/t5/services-documents/using-the-psirt-api-with-python/ta-p/3834849</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;At some point you may be asked to complete a vulnerability audit of your network estate. In the past this would have required searching a near endless list of Cisco vulnerabilities and then cross referencing these against an even longer list of BugIds. Thankfully Cisco released the PSIRT API which can ease the pain of this process.&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;My previous post on this topic required an &lt;A href="https://configif.wordpress.com/2017/07/14/apic-em-collectinventory/" target="_self"&gt;APIC-EM&lt;/A&gt; instance to act as the source of information for the network inventory. This time round I will use something a little more static, a CSV:&lt;/P&gt;
&lt;PRE&gt;platform,ios_version
3560,12.2(50)SE3
3560C,12.2(55)EX3&lt;/PRE&gt;
&lt;P&gt;The first step is to obtain the OAuth token which will allow us to use the API:&lt;/P&gt;
&lt;PRE&gt;API_TOKEN_URL = "https://cloudsso2.cisco.com/as/token.oauth2"
PROXIES = {}


def get_api_token(url):
    response = requests.post(url, verify=False, proxies=PROXIES, data={"grant_type": "client_credentials"},
                             headers={"Content-Type": "application/x-www-form-urlencoded"},
                             params={"client_id": CLIENT_ID, "client_secret": CLIENT_PASS})

    if response is not None:
        return json.loads(response.text)["access_token"]

    return None&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You will need to sign up to &lt;A href="https://apiconsole.cisco.com" target="_blank" rel="noopener noreferrer"&gt;apiconsole.cisco.com&lt;/A&gt; to obtain your own unique client ID and password.&lt;/P&gt;
&lt;P&gt;With the token and the IOS version number a PSIRT REST GET query is created and the from the returned JSON response we pluck the key/value pairs we are interested in and return it as a dictionary:&lt;/P&gt;
&lt;PRE&gt;def get_advisories_by_release(token, platform, ver):
    platform_dict = {"platform": platform, "release": ver, "advisories": []}
    requests.packages.urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
    response = requests.get(API_GET_ADVISORIES.format(ver), verify=False, proxies=PROXIES,
    headers={"Authorization": "Bearer {0}".format(token), "Accept": "application/json"})

    if response.status_code == 200:
        platform_dict["advisories"] = build_dictionary_relevant_advisories(json.loads(response.text)["advisories"])
        return platform_dict

    return {"platform": platform, "release": ver, "advisories": [], "state": "ERROR", "detail": response.status_code}


def build_dictionary_relevant_advisories(advisories):
    adv_list = []
    for adv in advisories:
        adv_dict = dict()
        adv_dict["advisory_id"] = adv["advisoryId"] if "advisoryId" in adv else "Unknown"
        adv_dict["advisory_title"] = adv["advisoryTitle"] if "advisoryTitle" in adv else "Unknown"
        adv_dict["bug_ids"] = adv["bugIDs"] if "bugIDs" in adv else "Unknown"
        adv_dict["first_fixed"] = adv["firstFixed"] if "firstFixed" in adv else "Unknown"
        adv_list.append(adv_dict)

    return adv_list&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Iterate through the CSV file one line at a time the returned dictionaries are stored in a list:&lt;/P&gt;
&lt;PRE&gt;def load_csv(input_csv, token):
    big_list = []
    with open(input_csv, "r") as file:
        for device_row in csv.DictReader(file):
            big_list.append(get_advisories_by_release(token, device_row["platform"], device_row["ios_version"]))

    return big_list&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The next step is to iterate through the list and print the output in a most readable format. We could use json.dumps(, indent=2) but since the dictionary has the key/value pair 'advisories' which itself is a list of dictionaries the resulting output is not that readable. The following method takes information from both the CSV and the PSIRT API to provide information for each platform/ release pair:&lt;/P&gt;
&lt;PRE&gt;def print_advisories(source_dict, detail=True):
    for item in source_dict:
        print("Platform: {0}, Current release: {1}".format(item["platform"], item["release"]))
        print(" {0} advisories".format(len(item["advisories"])))
        if len(item["advisories"]) == 0:
            message = "ERROR encountered during lookup: {0}".format(item["detail"]) if item["state"] == "ERROR" \
                else "None found"

            print(" {0}".format(message))
        else:
            detail_t = ""
            fixed_releases = []
            for adv in item["advisories"]:
                if adv is not None:
                    detail_t = detail_t + DETAIL_TEXT.format(adv["advisory_id"], adv["advisory_title"],
                               ", ".join(adv["first_fixed"]), ", ".join(adv["bug_ids"]))
                    fixed_releases = fixed_releases + adv["first_fixed"]

            print(" Minimum suggested release: {0}".format(sorted(fixed_releases)[len(fixed_releases)-1]))
            if detail:
                print(detail_t)&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In the event that an error was encountered during the PSIRT API lookup process, the error message is displayed under the platform/ release pair, to notify the use that it occurred, otherwise the advisories list would be empty giving the impression that no vulnerabilities were present.&lt;BR /&gt;For each platform/ release the first-fixed values are add to a list, then sorted and the highest value picked to give the Recommended Release value. The output looks like:&lt;/P&gt;
&lt;PRE&gt;Platform: 3560, Current release: 12.2(50)SE3
  32 advisories
  Minimum suggested release: 15.0(2a)SE9
  ID cisco-sa-20180926-cmp -- Cisco IOS and IOS XE Software Cluster Management Protocol Denial of Service Vulnerability
    First fixed: 12.2(55)SE13
    Bug IDs: CSCvg48576
  ID cisco-sa-20180926-tacplus -- Cisco IOS and IOS XE Software TACACS+ Client Denial of Service Vulnerability
    First fixed: 12.2(55)SE13
    Bug IDs: CSCux66796
  ID cisco-sa-20180926-vtp -- Cisco IOS and IOS XE Software VLAN Trunking Protocol Denial of Service Vulnerability
    First fixed: 12.2(55)SE13
    Bug IDs: CSCvd37163&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;As much as I like text files, the data is much more useful if you can tabulate it. Lets first turn it into a dictionary, where each key/value pair can represent a line.&lt;BR /&gt;This next method will first take our PSIRT generated list and for each dictionary contained within it, will take the "platform" value and use it as a key for value and create a boolean dictionary, "platforms". The data structure will look like:&lt;/P&gt;
&lt;PRE&gt;{
"3560": False,
"3750-X": False
}&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Now we take the PSIRT list, and for each element, we extract the advisories and add it to csv_dict, but only if we haven't done so already. This way we end up with a list of unique advisories. Against each advisory we store a copy of the "platforms" dictionary from earlier, and every time a platform is recorded as having this advisory we change the boolean for True. The data structure (the section we are interested in will look like:&lt;/P&gt;
&lt;PRE&gt;{
  "advisory_id": "cisco-sa-20180926-cmp"
  "affected_platforms": {
                         "3560": True,
                         "3750-X": False
                        }
}&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;What you will end up with is a list of dictionaries, where each dictionary is a unique advisory ID with a dictionary of affected platforms:&lt;/P&gt;
&lt;PRE&gt;def build_csv_dict(source_list):
    csv_dict = dict()
    platforms = dict()

    for p in source_list:
        platforms[p["platform"]] = False

    for item in source_list:
        for adv in item["advisories"]:
            if adv is not None:
                if adv["advisory_id"] not in csv_dict:
                    csv_dict[adv["advisory_id"]] = adv
                    csv_dict[adv["advisory_id"]]["affected_platforms"] = platforms.copy()

                csv_dict[adv["advisory_id"]]["affected_platforms"][item["platform"]] = True

    print(json.dumps(csv_dict, indent=2))
    return csv_dict, list(platforms.keys())&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Next we start the process of writing each dictionary in the list as a line in a CSV file:&lt;/P&gt;
&lt;PRE&gt;def write_to_csv(source_dict, platform_list):
    headernames = ["advisory_id", "advisory_title", "first_fixed", "bug_ids"] + platform_list

    with open("vuln_checker_output" + ".csv", "w", newline="") as csvfile:
        csvwriter = csv.writer(csvfile, delimiter=",")
        csvwriter.writerow(headernames)

        for adv in source_dict:
            print(adv)
            row = [source_dict[adv]["advisory_id"], source_dict[adv]["advisory_title"],
                  "/ ".join(source_dict[adv]["first_fixed"]), "/ ".join(source_dict[adv]["bug_ids"])]
            for p in platform_list:
                row.append(source_dict[adv]["affected_platforms"][p])

            csvwriter.writerow(row)&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Take the CSV sling it into your favourite spreadsheet app, add some formatting and the task is nearly complete:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="vuln_checker_output.png" style="width: 999px;"&gt;&lt;img src="https://community.cisco.com/t5/image/serverpage/image-id/33924iADBC05ECC5732B22/image-size/large?v=v2&amp;amp;px=999" role="button" title="vuln_checker_output.png" alt="vuln_checker_output.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="font-family: inherit;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;It is worth pointing out that although a device is marked as True for being affected by a vulnerability you will have to take the manual step of cross-referencing the BugID against your running configs to determine if it really is vulnerable.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Full source can be found here:&lt;BR /&gt;&lt;A href="https://github.com/sebrupik/vuln_checker/blob/master/vuln_checker.py" target="_blank" rel="noopener"&gt;https://github.com/sebrupik/vuln_checker/blob/master/vuln_checker.py&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://configif.wordpress.com/2019/03/29/vuln_checker/" target="_blank" rel="noopener"&gt;https://configif.wordpress.com/2019/03/29/vuln_checker/&lt;/A&gt;&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Mon, 15 Apr 2019 12:42:43 GMT</pubDate>
      <guid>https://community.cisco.com/t5/services-documents/using-the-psirt-api-with-python/ta-p/3834849</guid>
      <dc:creator>Seb Rupik</dc:creator>
      <dc:date>2019-04-15T12:42:43Z</dc:date>
    </item>
    <item>
      <title>Getting Started with APIC-EM</title>
      <link>https://community.cisco.com/t5/networking-documents/getting-started-with-apic-em/ta-p/3805265</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="APIC-EM Video.JPG" style="width: 400px;"&gt;&lt;img src="https://community.cisco.com/t5/image/serverpage/image-id/30455i2587BF65A707484B/image-size/medium?v=v2&amp;amp;px=400" role="button" title="APIC-EM Video.JPG" alt="APIC-EM Video.JPG" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Today there are about six billion things connected to the internet. This number will triple by the year 2020, putting an even greater demand on the network. Thus, companies will need solutions that come from its very foundation – the network.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;So what’s the next step in helping companies towards their journey of digitization? Software Defined Networking (SDN) which simplifies and automates operations. With this overview &lt;A href="http://cisco.lookbookhq.com/c/overview-APIC-EM?utm_campaign=APIC-EM&amp;amp;utm_content=Video&amp;amp;utm_source=Cisco.com&amp;amp;utm_medium=Community-Automation-and-Analytics" target="_blank"&gt;video&lt;/A&gt;, learn how Cisco is delivering SDN to enterprise networks with the Application Policy Infrastructure Controller Enterprise Module (APIC-EM). Along with SDN, APIC-EM is also helping to provide companies with the business outcomes they want through simplicity, automation and open programmability.&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Fri, 01 Mar 2019 12:45:46 GMT</pubDate>
      <guid>https://community.cisco.com/t5/networking-documents/getting-started-with-apic-em/ta-p/3805265</guid>
      <dc:creator>ashherri</dc:creator>
      <dc:date>2019-03-01T12:45:46Z</dc:date>
    </item>
    <item>
      <title>Health Monitoring NSO in Kubernetes</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/health-monitoring-nso-in-kubernetes/ta-p/3773302</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;DIV style="-en-clipboard: true;"&gt;&lt;STRONG&gt;Introduction&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV style="-en-clipboard: true;"&gt;In k8s we have two probes that are used to monitor the health and availability of a container, readiness and liveness probes. This post shows some examples on how to use them. The post will hopefully interest you in trying to take advantage of those probes when running NSO in k8s.&lt;/DIV&gt;
&lt;DIV style="-en-clipboard: true;"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="-en-clipboard: true;"&gt;The more you can check in your liveness probe, the more certain you can be that NSO is actually up and running and does what it should.&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;All code for this can be found here on the NSO-developer GitHub (&lt;A href="https://github.com/NSO-developer/container-examples" target="_blank"&gt;https://github.com/NSO-developer/container-examples&lt;/A&gt;).&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;NOTE&lt;/STRONG&gt;, the actions in the example are toy examples, but hopefully they'll set you off with some ideas on how you can create readiness and most importantly a good liveness probe for your system. The liveness probe could in theory do a number of things, including touching devices.&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Readiness&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;The readiness probe determines when a container is ready for service. NSO can sometimes take some time before it's ready for service.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;See the&amp;nbsp;k8s-liveness-readiness/is-ready.sh script. It first checks if NSO is started at all, if that succeeds, the script calls a simple action (/k8s/ready).&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Please see&amp;nbsp;k8s-liveness-readiness/lr-test/python/lr_test/main.py&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Liveness&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;After the container has been running for a while, we need to make sure it's still alive. This is also done using an action (/k8s/alive). The example action simply creates a config transaction and writes a leaf (/k8s/last-live-check), this is to test that we can successfully commit a configuration transaction.&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;To run the examples, please see instructions below.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Base Image&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;You'll need to build the NSO system install base image. This is a somewhat minimized image that installs NSO.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Please note that you need to supply your own NSO installer binary and modify the Makefile for a correct container name. See the CONTAINER and VER variables in&amp;nbsp;nso-system-install-base/Makefile.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;cd nso-system-install-base&lt;/DIV&gt;
&lt;DIV&gt;make image push&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Once you have managed to build the base image, you can move on to the example.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Example Deployment&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Please note&lt;/STRONG&gt; that you'll need to modify the Dockerfile here (FROM &lt;A href="http://containers.cisco.com/frjansso/nso-system-base" target="_blank"&gt;containers.cisco.com/frjansso/nso-system-base&lt;/A&gt;) to match your image name from above.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;cd&amp;nbsp;k8s-liveness-readiness&lt;/DIV&gt;
&lt;DIV&gt;make&amp;nbsp;image push deploy&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;This will launch a deployment in k8s. If you look at the pods, you'll see that the NSO container is not yet ready:&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;kubectl get pods&lt;/DIV&gt;
&lt;DIV&gt;NAME&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;READY&amp;nbsp;&amp;nbsp;&amp;nbsp;STATUS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RESTARTS&amp;nbsp;&amp;nbsp;&amp;nbsp;AGE&lt;/DIV&gt;
&lt;DIV&gt;nso-deployment-7d6bb7c698-zb77f&amp;nbsp;&amp;nbsp;&amp;nbsp;0/1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Running&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;8s&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;It will be stuck in this state until we tell NSO that it's ready. &lt;STRONG&gt;Please note&lt;/STRONG&gt;, this is just for a demo purposes.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;kubectl exec -it $(kubectl get pod | grep nso-deployment | awk '{print $1}') bash&lt;/DIV&gt;
&lt;DIV&gt;root@nso-deployment-7d6bb7c698-zb77f:/# ncs_cli -u admin&lt;/DIV&gt;
&lt;DIV&gt;admin@ncs&amp;gt; request k8s set-ready&lt;/DIV&gt;
&lt;DIV&gt;admin@ncs&amp;gt; exit&lt;/DIV&gt;
&lt;DIV&gt;root@nso-deployment-7d6bb7c698-zb77f:/# exit&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Now if we look again at our pods, you'll see that the pod is ready&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;kubectl get pods&lt;/DIV&gt;
&lt;DIV&gt;NAME&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;READY&amp;nbsp;&amp;nbsp;&amp;nbsp;STATUS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RESTARTS&amp;nbsp;&amp;nbsp;&amp;nbsp;AGE&lt;/DIV&gt;
&lt;DIV&gt;nso-deployment-7d6bb7c698-mlqn4&amp;nbsp;&amp;nbsp;&amp;nbsp;1/1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Running&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;59s&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Please note that the number of restarts is zero. To simulate a failure, we'll go back into the NSO CLI.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;kubectl exec -it $(kubectl get pod | grep nso-deployment | awk '{print $1}') bash&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;root@nso-deployment-7d6bb7c698-mlqn4:/# ncs_cli -u admin&lt;/DIV&gt;
&lt;DIV&gt;admin@ncs&amp;gt; request k8s set-dead&lt;/DIV&gt;
&lt;DIV&gt;admin@ncs&amp;gt; exit&lt;/DIV&gt;
&lt;DIV&gt;root@nso-deployment-7d6bb7c698-mlqn4:/# exit&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Again, look at our pods&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;kubectl get pods&lt;/DIV&gt;
&lt;DIV&gt;NAME&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;READY&amp;nbsp;&amp;nbsp;&amp;nbsp;STATUS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RESTARTS&amp;nbsp;&amp;nbsp;&amp;nbsp;AGE&lt;/DIV&gt;
&lt;DIV&gt;nso-deployment-7d6bb7c698-mlqn4&amp;nbsp;&amp;nbsp;&amp;nbsp;0/1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Running&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3m3s&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;You'll see that the pod has been restarted. This means that k8s health check worked as expected.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;The code is hopefully self explanatory:&lt;/DIV&gt;
&lt;DIV&gt;k8s-liveness-readiness/deployment.yml&lt;BR /&gt;k8s-liveness-readiness/is-alive.sh&lt;BR /&gt;k8s-liveness-readiness/is-ready.sh&lt;/DIV&gt;
&lt;DIV&gt;k8s-liveness-readiness/lr-test/python/lr_test/main.py&lt;/DIV&gt;
&lt;/DIV&gt;</description>
      <pubDate>Fri, 04 Jan 2019 22:46:01 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/health-monitoring-nso-in-kubernetes/ta-p/3773302</guid>
      <dc:creator>frjansso</dc:creator>
      <dc:date>2019-01-04T22:46:01Z</dc:date>
    </item>
    <item>
      <title>Cisco Kinetic v2 APIs documentation</title>
      <link>https://community.cisco.com/t5/cisco-kinetic-documents/cisco-kinetic-v2-apis-documentation/ta-p/3754808</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;Kinecit API Docs (US): &lt;A href="https://developer.cisco.com/docs/kinetic-api/?version=US" target="_self"&gt;https://developer.cisco.com/docs/kinetic-api/?version=US&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Kinecit API Docs (EU): &lt;A href="https://developer.cisco.com/docs/kinetic-api/?version=EU" target="_self"&gt;https://developer.cisco.com/docs/kinetic-api/?version=EU&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;Steps to try out the APIs directly from the current documentation:&lt;/H4&gt;
&lt;OL&gt;
&lt;LI&gt;Use the v2 API “POST /v2/users/access_token” under the Users section to generate a token using your Cisco Kinetic email/password as input or you can use a valid API key that is generated from Cisco Kinetic.&lt;/LI&gt;
&lt;LI&gt;Copy the token that is generated in the response (or if using API key, copy the API key).&lt;/LI&gt;
&lt;LI&gt;For any API that you want to try, expand the API and click on the “Red” button on the right side of the API section.&lt;/LI&gt;
&lt;LI&gt;In the popup, in the value field, type “Token” followed by a space and paste the access token copied in step 2.&lt;/LI&gt;
&lt;LI&gt;You can now try out any of the listed APIs. You will need to provide the required input parameters/values for the APIs, as necessary.&lt;/LI&gt;
&lt;LI&gt;Please note that if you reload your browser, the above 5 steps will need to be repeated again.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Thu, 29 Nov 2018 01:59:13 GMT</pubDate>
      <guid>https://community.cisco.com/t5/cisco-kinetic-documents/cisco-kinetic-v2-apis-documentation/ta-p/3754808</guid>
      <dc:creator>Steve Zhang</dc:creator>
      <dc:date>2018-11-29T01:59:13Z</dc:date>
    </item>
    <item>
      <title>NSO Deep Dive Tech Talk - NSO Developer Connect NYC, 2018</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/nso-deep-dive-tech-talk-nso-developer-connect-nyc-2018/ta-p/3753358</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;Sebastian Strollo delivered this "Deep Dive Tech Tack" at NSO Developer Connect in NYC&lt;/P&gt;
&lt;P&gt;Main subjects: Transactions, the new feature Progress Trace and Understanding Sync.&amp;nbsp;&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Tue, 27 Nov 2018 09:51:27 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/nso-deep-dive-tech-talk-nso-developer-connect-nyc-2018/ta-p/3753358</guid>
      <dc:creator>Nicklas Wagerth</dc:creator>
      <dc:date>2018-11-27T09:51:27Z</dc:date>
    </item>
    <item>
      <title>Automation Advisory Services - NSO Developer Connect NYC, 2018</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/automation-advisory-services-nso-developer-connect-nyc-2018/ta-p/3752795</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;Shafi uses&amp;nbsp;the Red Whale metaphor to show the importance to do things right from start and build a sustainable solution that can be maintained and supported over time throughout the organization. It’s important to work together selecting the use cases and include all stakeholders. Cisco comes ready with CX Advisory Services to help connect the top-down approach with the bottom-up, drive change management when necessary and help teams secure the right business outcome.&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Tue, 27 Nov 2018 09:50:28 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/automation-advisory-services-nso-developer-connect-nyc-2018/ta-p/3752795</guid>
      <dc:creator>Nicklas Wagerth</dc:creator>
      <dc:date>2018-11-27T09:50:28Z</dc:date>
    </item>
    <item>
      <title>NFV0 - NSO Developer Connect NYC, 2018</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/nfv0-nso-developer-connect-nyc-2018/ta-p/3752787</link>
      <description>&lt;P&gt;NFVO update from by Fredrik Jansson and John Mullooly at NSO Developer Connect in NYC.&lt;/P&gt;</description>
      <pubDate>Tue, 27 Nov 2018 09:49:31 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/nfv0-nso-developer-connect-nyc-2018/ta-p/3752787</guid>
      <dc:creator>Nicklas Wagerth</dc:creator>
      <dc:date>2018-11-27T09:49:31Z</dc:date>
    </item>
    <item>
      <title>The Art of Network Engineering - NSO Developer Connect NYC, 2018</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/the-art-of-network-engineering-nso-developer-connect-nyc-2018/ta-p/3752637</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;Kevin Corbin talks about how Network Engineering is changing from an art of “figuring out what command to run on which device and when” to a structured process using Consistent Version Controlled Infrastructure deployed with Parallel &amp;amp; Automated Provisioning. He&amp;nbsp;provides examples of what NSO means for the networking guy and the big savings that can be made in the day-to-day work by using a single favorite CLI to all network devices, in contrast to learning many CLIs. The NSO CLI is, in fact, an API, just like NETCONF!&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Fri, 01 Mar 2019 12:22:46 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/the-art-of-network-engineering-nso-developer-connect-nyc-2018/ta-p/3752637</guid>
      <dc:creator>Nicklas Wagerth</dc:creator>
      <dc:date>2019-03-01T12:22:46Z</dc:date>
    </item>
    <item>
      <title>NSO Onboarding Best Practice - NSO Developer Connect NYC, 2018</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/nso-onboarding-best-practice-nso-developer-connect-nyc-2018/ta-p/3752628</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;Learn how basic software practice can be used in Network Automation. Simple things like using version control, taking small incremental steps instead of giant leaps and automating your tests make a huge difference. Viktor Leijon has long experience from working side by side with Network Engineers and his interest in how we work has helped him understand how software practice is best used in networking. A very nice side effect of a model-based framework like NSO is that you can minimize the coding and automate the manual, boring work and focus on what makes your company unique.&amp;nbsp;&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Fri, 01 Mar 2019 12:22:45 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/nso-onboarding-best-practice-nso-developer-connect-nyc-2018/ta-p/3752628</guid>
      <dc:creator>Nicklas Wagerth</dc:creator>
      <dc:date>2019-03-01T12:22:45Z</dc:date>
    </item>
    <item>
      <title>Cisco Kinetic EFM License Explanation and Issues</title>
      <link>https://community.cisco.com/t5/cisco-kinetic-documents/cisco-kinetic-efm-license-explanation-and-issues/ta-p/3751356</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;The purpose of this article is to sort out and clarify how licenses are effectively working in Cisco Kinetic Edge &amp;amp; Fog Processing Module (EFM). It does not address ordering licenses, prices, or anything related to the Cisco Kinetic Cloud (GMM and DCM).&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H1&gt;Type of License&lt;/H1&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;There&amp;nbsp;is fundamentally&amp;nbsp;only one license in Cisco EFM, but it can activate two separate features: &lt;BR /&gt;the EFM broker (the logic engine that runs the data flow amongst other things), and&lt;/LI&gt;
&lt;LI&gt;&amp;nbsp;&lt;SPAN&gt;the visualizations (DGLux5).&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;U&gt;Initial license&lt;/U&gt;: during the EFM installation process, the installer package will automatically create a license for the EFM broker. This means that a new license will never need to be generated again unless the graphical data flow editor is being used.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Since there is only one license, if you ever want to start using the data visualisation, you'll be offered an option to request a trial version. If your instance has internet access it is&amp;nbsp;granted immediately using an on-line activation process. &lt;STRONG&gt;However now the entire license will now be 180-days. After 180-days your license will expire and you won't have a broker, you won't have a data flow editor, and you won't have visualizations.&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Workaround 1: Use separate users for EFM broker and visualization&lt;/H2&gt;
&lt;P&gt;During the installation, install only the broker as one user, and the visualization as another user. This way you have separate licenses per user, and expiration of one will not affect others. This is described in:&lt;/P&gt;
&lt;P&gt;&lt;A href="https://www.cisco.com/c/dam/en/us/td/docs/cloud-systems-management/cisco-edge-fog-fabric/1_2_0/Kinetic-EFM-1-2-0_Install_EFM_DGLux5.pdf" target="_self"&gt;https://www.cisco.com/c/dam/en/us/td/docs/cloud-systems-management/cisco-edge-fog-fabric/1_2_0/Kinetic-EFM-1-2-0_Install_EFM_DGLux5.pdf&lt;/A&gt;&lt;/P&gt;
&lt;H2&gt;Workaround 2: Reinstall EFM.&lt;/H2&gt;
&lt;P&gt;This very effective approach will wipe all of your installation, including tokens, data flow, etc... unless you backup them manually. Since the WebUI is not working this is quite a&amp;nbsp;long process that is not recommended if all you want is a new working license. However if you do re-install make sure you separate EFM broker and visualization components on two users&amp;nbsp;as see before.&lt;/P&gt;
&lt;H2&gt;Workaround 3:&amp;nbsp;Regenerate License&lt;/H2&gt;
&lt;P&gt;Remove the user's ~/.dglogik directory, and perform an in-place upgrade of EFM. You will essentially reinstall the same version of EFM, but the installer will generate a new EFM broker license. You'll get access to the data flow editor, and none of your data will be lost.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Thu, 22 Nov 2018 11:19:14 GMT</pubDate>
      <guid>https://community.cisco.com/t5/cisco-kinetic-documents/cisco-kinetic-efm-license-explanation-and-issues/ta-p/3751356</guid>
      <dc:creator>Emmanuel Tychon</dc:creator>
      <dc:date>2018-11-22T11:19:14Z</dc:date>
    </item>
    <item>
      <title>Generic REST NED Reference</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/generic-rest-ned-reference/ta-p/3749223</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;Reference&lt;BR /&gt;&lt;BR /&gt;1. Introduction&lt;BR /&gt;2. Device commands and NSO CLI commands&lt;BR /&gt;3. Adapting an existing NED - Step One&lt;BR /&gt;4. Adapting an existing NED - Step Two&lt;BR /&gt;5. Commands and Java correlation&lt;BR /&gt;6. Setting up a NED-instance&lt;BR /&gt;7. Debugging and trouble-shooting&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Please see the attached file for all the detailsnso&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Mon, 19 Nov 2018 12:55:41 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/generic-rest-ned-reference/ta-p/3749223</guid>
      <dc:creator>hoatruo</dc:creator>
      <dc:date>2018-11-19T12:55:41Z</dc:date>
    </item>
    <item>
      <title>Creating a GENERIC NED v 1.0</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/creating-a-generic-ned-v-1-0/ta-p/3749211</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;&lt;STRONG&gt;Creating a GENERIC NED v 1.0&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;&lt;STRONG&gt;Content list&lt;/STRONG&gt;&lt;BR /&gt;1. Introduction&lt;BR /&gt;2. NED demo video overview:&lt;BR /&gt;3. Device commands&lt;BR /&gt;4. Adapting the demo-ned to your device&lt;BR /&gt;5. Setting up a NED instance to communicate with the device&lt;BR /&gt;6. Debugging and trouble-shooting&lt;BR /&gt;7. Contents:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;1&amp;nbsp;Introduction:&lt;/STRONG&gt;&lt;BR /&gt;The idea of this article, the reference file, video, demo-ned and more is to provide a guide which&lt;BR /&gt;explains how to conveniently develop a bare minimum Generic NED with what is available after&lt;BR /&gt;installing NSO.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In the past&amp;nbsp;ncs-make-package was used for generating new NEDs. Nowadays a NED generator is used and demo-ned is the result of a NED generator when requiring a Generic REST NED.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;2. NED demo video overview:&lt;/STRONG&gt;&lt;BR /&gt;This demo video will:&lt;BR /&gt;go through how the device work&lt;BR /&gt;show the commands to list and modify config which the NED supports&lt;BR /&gt;explain the YANG model&lt;BR /&gt;explain the Java Code&lt;BR /&gt;show how to set up a NED instance&lt;BR /&gt;demonstrate how to fetch config - sync-from&lt;BR /&gt;demonstrate how to output config changes - commit dry run&lt;BR /&gt;demonstrate how to create/delete config – commit&lt;BR /&gt;demonstrate the logging functionality&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The&amp;nbsp;name of the demo video is "Generic REST NED Development"&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;3. Device commands&lt;/STRONG&gt;&lt;BR /&gt;What the NEDs sends to the device is determined by what commands the device require. This means that different&lt;BR /&gt;NEDs for different devices will send different commands.&lt;BR /&gt;This is also the part to adapt when adapting the demo-ned to another device.&lt;BR /&gt;For details refer to section "Device commands and NSO CLI commands" in the Reference file.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;4. Adapting the demo-ned to your device&lt;/STRONG&gt;&lt;BR /&gt;There are two steps when adapting the demo-ned to the any device. The first step is mandatory and covers device&lt;BR /&gt;communication. The second step is optional and covers namespace, ids and other NED internal details.&lt;BR /&gt;If you just need to quickly create a NED that communicates to any device, doing the first step is enough.&lt;BR /&gt;However, if the NED is to be used with other NEDs or if further development is expected then it is a good idea to do the&lt;BR /&gt;second step as well.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;First step&lt;/STRONG&gt;&lt;BR /&gt;In this first step only the java file JVXNedGeneric needs to be modified.&lt;BR /&gt;The methods to be modified are:&lt;BR /&gt;public void show(NedWorker worker, int th) throws NedException, IOException {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;private void edit(NedWorker worker, NedEditOp[] ops, StringBuilder dryRun, int th) throws Exception {When fetching config from a device the NED command sync-from needs to be issued. Sync-from will call show.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;When sending commands to the device the NED command commit needs to be issued. Commit will call prepare, which&lt;BR /&gt;in turn will call edit to fetch the command to be sent.&lt;BR /&gt;If just printing the commands to be sent is enough then the NED command commit dry-run needs to be issued. Commit&lt;BR /&gt;dry-run will call prepareDry, which in turn will call edit to fetch the command to be sent.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The key here is to:&lt;BR /&gt;adapt show so that it issues the device commands which lists config.&lt;BR /&gt;adapt edit so that it issues the correct command to either create, modify or delete config.&lt;BR /&gt;The idea with the NED is to emulate the procedure and use the same commands used when communicating to the&lt;BR /&gt;device from the CLI or REST API.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This part will be covered in the video.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For more details refer to the section "Commands and Java correlation" in the Reference file.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Second step - editing the NED details&lt;/STRONG&gt;&lt;BR /&gt;The second step requires more file editing. Demo-ned and test-device-ned has the same functionality.&lt;BR /&gt;Test-device-ned is demo-ned after applying the second step where this replacement has been used.&lt;BR /&gt;GRX - devname&lt;BR /&gt;JVX - dn&lt;BR /&gt;DVX - Cisco&lt;BR /&gt;The details and where to replace values can be found in the section "Adapting an existing NED – Step Two" in the&lt;BR /&gt;Reference file.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;5. Setting up a NED instance to communicate with the device&lt;/STRONG&gt;&lt;BR /&gt;Once the demo-ned has been adapted to a device a NED instance has to be created so that the NED can communicate&lt;BR /&gt;with a device.&lt;BR /&gt;How to do this is described in section "Setting up a NED-instance" in the Reference file.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;6. Debugging and trouble-shooting&lt;/STRONG&gt;&lt;BR /&gt;One can also insert logging into the NED so that data can be printed out into log files.&lt;BR /&gt;How to do this is described in section "Debugging and trouble-shooting" in the Reference file.&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Mon, 19 Nov 2018 16:23:11 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/creating-a-generic-ned-v-1-0/ta-p/3749211</guid>
      <dc:creator>hoatruo</dc:creator>
      <dc:date>2018-11-19T16:23:11Z</dc:date>
    </item>
    <item>
      <title>NSO Kubernetes Lab</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/nso-kubernetes-lab/ta-p/3741469</link>
      <description>&lt;DIV style="-en-clipboard: true;"&gt;&lt;STRONG&gt;NOTE&lt;/STRONG&gt;: This is WIP, and I'm aiming to have this hosted on dCloud as a hands on lab. Stay tuned!&lt;/DIV&gt;
&lt;DIV style="-en-clipboard: true;"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="-en-clipboard: true;"&gt;The aim with this lab is to build a Kubernetes (k8s) cluster with three nodes. In this cluster we will install NSO, one master and two slaves. Using these we going to experiment with leader election and fail over.&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;The master node (kube-1) is hosting the bulk part of the k8s machinery, i.e. API, controller and scheduler. In a production environment, you will typically not schedule any pods on the master node. For this lab we'll remove that restriction and use the master node as well.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;The first test will not have persistent storage for NSO, so if all pods die, all data is lost. We will therefore move on to install a persistent storage provider (GlusterFS) on all three nodes. With this in place, we will setup NSO again, but now on persistent storage. Leader election and failover will still work as before. But now we can take an outage of all three NSO pods.&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-size: 24px; font-weight: bold;"&gt;Credentials&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;The nodes are called kube-1, kube-2 and kube-3.&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-style: italic; font-weight: bold;"&gt;Kube-1 will serve as as the k8s master.&lt;/SPAN&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-weight: bold;"&gt;Credentials&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;The credentials on the nodes are:&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-weight: bold;"&gt;username&lt;/SPAN&gt;: test&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-weight: bold;"&gt;password&lt;/SPAN&gt;: cisco123&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-size: 24px; font-weight: bold;"&gt;Install Kubernetes on Three Nodes&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;This lab is based on this document:&amp;nbsp;&lt;A href="https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/" target="_blank"&gt;https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-weight: bold;"&gt;SSH to the Master Node (kube-1)&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;ssh test@X.X.X.X&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-weight: bold;"&gt;Initialize k8s on the master node&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;Make sure docker is working and can pull images&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;test@kube-1:~$ &lt;STRONG&gt;docker run --rm -it alpine:latest /bin/sh&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;Unable to find image 'alpine:latest' locally&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;latest: Pulling from library/alpine&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;8e3ba11ec2a2: Pull complete&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;Digest: sha256:7043076348bf5040220df6ad703798fd8593a0918d06d3ce30c6c93be117e430&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;Status: Downloaded newer image for alpine:latest&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;/ # exit&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Next we're going to use &lt;SPAN style="font-style: italic;"&gt;kubeadm&lt;/SPAN&gt; to setup the master node, later followed by the slave nodes.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Sometimes kubeadm times out when downloading the images, therefore it's a good idea to pull the images first. Please run the following until all images are pulled.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;test@kube-1:~$ &lt;STRONG&gt;kubeadm config images pull&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[config/images] Pulled k8s.gcr.io/kube-apiserver-amd64:v1.11.2&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[config/images] Pulled k8s.gcr.io/kube-controller-manager-amd64:v1.11.2&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[config/images] Pulled k8s.gcr.io/kube-scheduler-amd64:v1.11.2&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[config/images] Pulled k8s.gcr.io/kube-proxy-amd64:v1.11.2&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[config/images] Pulled k8s.gcr.io/pause:3.1&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[config/images] Pulled k8s.gcr.io/etcd-amd64:3.2.18&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&lt;STRONG&gt;failed to pull image "k8s.gcr.io/coredns:1.1.3": exit status 1&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-style: italic;"&gt;If you get an error as above, please run again.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;test@kube-1:~$ &lt;STRONG&gt;kubeadm config images pull&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[config/images] Pulled k8s.gcr.io/kube-apiserver-amd64:v1.11.2&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[config/images] Pulled k8s.gcr.io/kube-controller-manager-amd64:v1.11.2&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[config/images] Pulled k8s.gcr.io/kube-scheduler-amd64:v1.11.2&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[config/images] Pulled k8s.gcr.io/kube-proxy-amd64:v1.11.2&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[config/images] Pulled k8s.gcr.io/pause:3.1&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[config/images] Pulled k8s.gcr.io/etcd-amd64:3.2.18&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[config/images] Pulled k8s.gcr.io/coredns:1.1.3&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-weight: bold;"&gt;Pod Networking&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;When installing k8s, you have a wide variety of pod networking to choose from. For the lab, we've decided to use Flannel (&lt;A href="https://github.com/coreos/flannel" target="_blank"&gt;https://github.com/coreos/flannel&lt;/A&gt;). "Flannel is responsible for providing a layer 3 IPv4 network between multiple nodes in a cluster. Flannel does not control how containers are networked to the host, only how the traffic is transported between hosts."&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;To install k8s, we'll use the kubeadm init command, and since we're going to use Flannel as our pod network, we will pass the 10.244.0.0/16 CIDR to kubeadm. This means that our containers will end up with 10.244.x.y addresses.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;test@kube-1:~$ &lt;STRONG&gt;sudo kubeadm init&amp;nbsp;--pod-network-cidr=10.244.0.0/16&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[init] using Kubernetes version: v1.11.2&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[preflight] running pre-flight checks&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco;"&gt;I0820 14:49:38.345563&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5854 kernel_validator.go:81] Validating kernel version&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;I0820 14:49:38.345804&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5854 kernel_validator.go:96] Validating kernel config&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[preflight/images] Pulling images required for setting up a Kubernetes cluster&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[preflight/images] This might take a minute or two, depending on the speed of your internet connection&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[preflight/images] You can also perform this action in beforehand using 'kubeadm config images pull'&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[kubelet] Writing kubelet environment file with flags to file "/var/lib/kubelet/kubeadm-flags.env"&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[kubelet] Writing kubelet configuration to file "/var/lib/kubelet/config.yaml"&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[preflight] Activating the kubelet service&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[certificates] Generated ca certificate and key.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[certificates] Generated apiserver certificate and key.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[certificates] apiserver serving cert is signed for DNS names [kube-1 kubernetes kubernetes.default kubernetes.default.svc kubernetes.default.svc.cluster.local] and IPs [10.96.0.1 10.0.0.4]&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[certificates] Generated apiserver-kubelet-client certificate and key.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[certificates] Generated sa key and public key.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[certificates] Generated front-proxy-ca certificate and key.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[certificates] Generated front-proxy-client certificate and key.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[certificates] Generated etcd/ca certificate and key.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[certificates] Generated etcd/server certificate and key.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[certificates] etcd/server serving cert is signed for DNS names [kube-1 localhost] and IPs [127.0.0.1 ::1]&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[certificates] Generated etcd/peer certificate and key.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[certificates] etcd/peer serving cert is signed for DNS names [kube-1 localhost] and IPs [10.0.0.4 127.0.0.1 ::1]&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[certificates] Generated etcd/healthcheck-client certificate and key.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[certificates] Generated apiserver-etcd-client certificate and key.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[certificates] valid certificates and keys now exist in "/etc/kubernetes/pki"&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/admin.conf"&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/kubelet.conf"&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/controller-manager.conf"&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/scheduler.conf"&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[controlplane] wrote Static Pod manifest for component kube-apiserver to "/etc/kubernetes/manifests/kube-apiserver.yaml"&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[controlplane] wrote Static Pod manifest for component kube-controller-manager to "/etc/kubernetes/manifests/kube-controller-manager.yaml"&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[controlplane] wrote Static Pod manifest for component kube-scheduler to "/etc/kubernetes/manifests/kube-scheduler.yaml"&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[etcd] Wrote Static Pod manifest for a local etcd instance to "/etc/kubernetes/manifests/etcd.yaml"&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[init] waiting for the kubelet to boot up the control plane as Static Pods from directory "/etc/kubernetes/manifests"&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[init] this might take a minute or longer if the control plane images have to be pulled&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[apiclient] All control plane components are healthy after 40.001870 seconds&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[uploadconfig] storing the configuration used in ConfigMap "kubeadm-config" in the "kube-system" Namespace&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[kubelet] Creating a ConfigMap "kubelet-config-1.11" in namespace kube-system with the configuration for the kubelets in the cluster&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[markmaster] Marking the node kube-1 as master by adding the label "node-role.kubernetes.io/master=''"&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[markmaster] Marking the node kube-1 as master by adding the taints [node-role.kubernetes.io/master:NoSchedule]&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[patchnode] Uploading the CRI Socket information "/var/run/dockershim.sock" to the Node API object "kube-1" as an annotation&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[bootstraptoken] using token: pahwji.frci87slyux729v0&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[bootstraptoken] configured RBAC rules to allow Node Bootstrap tokens to post CSRs in order for nodes to get long term certificate credentials&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[bootstraptoken] configured RBAC rules to allow the csrapprover controller automatically approve CSRs from a Node Bootstrap Token&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[bootstraptoken] configured RBAC rules to allow certificate rotation for all node client certificates in the cluster&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[bootstraptoken] creating the "cluster-info" ConfigMap in the "kube-public" namespace&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[addons] Applied essential addon: CoreDNS&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[addons] Applied essential addon: kube-proxy&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;Your Kubernetes master has initialized successfully!&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;To start using your cluster, you need to run the following as a regular user:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;mkdir -p $HOME/.kube&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;sudo chown $(id -u):$(id -g) $HOME/.kube/config&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;You should now deploy a pod network to the cluster.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;A style="font-family: Monaco; font-size: 12px; color: #333333;" href="https://kubernetes.io/docs/concepts/cluster-administration/addons/" target="_blank"&gt;https://kubernetes.io/docs/concepts/cluster-administration/addons/&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;You can now join any number of machines by running the following on each node&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;as root:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;kubeadm join 10.0.0.4:6443 --token pahwji.frci87slyux729v0 --discovery-token-ca-cert-hash sha256:8fdd45a2a0004788cde9c6b89fcdec56931fcda1c74322ac7bccfa6f88a14ee2&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Now get kubectl into the user's home directory&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;test@kube-1:~$ &lt;STRONG&gt;mkdir -p $HOME/.kube&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;test@kube-1:~$ &lt;STRONG&gt;sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;test@kube-1:~$ &lt;STRONG&gt;sudo chown $(id -u):$(id -g) $HOME/.kube/config&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;If we check the nodes, we'll see our master node, but it's not ready. To fix that, we need to install a pod network..&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;test@kube-1:~$ &lt;STRONG&gt;kubectl get nodes&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;NAME&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;STATUS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ROLES&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AGE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;VERSION&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;kube-1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;STRONG&gt;NotReady&lt;/STRONG&gt;&amp;nbsp; master&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;33s&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;v1.11.2&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-weight: bold;"&gt;Install Flannel&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;To install Flannel we simply apply the YAML provided by the Flannel project:&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;test@kube-1:~$ &lt;STRONG&gt;kubectl apply -f&amp;nbsp;&lt;A href="https://raw.githubusercontent.com/coreos/flannel/v0.10.0/Documentation/kube-flannel.yml" target="_blank"&gt;https://raw.githubusercontent.com/coreos/flannel/v0.10.0/Documentation/kube-flannel.yml&lt;/A&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;clusterrole.rbac.authorization.k8s.io/flannel created&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;clusterrolebinding.rbac.authorization.k8s.io/flannel created&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;serviceaccount/flannel created&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;configmap/kube-flannel-cfg created&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;daemonset.extensions/kube-flannel-ds-amd64 created&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;daemonset.extensions/kube-flannel-ds-arm64 created&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;daemonset.extensions/kube-flannel-ds-arm created&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;daemonset.extensions/kube-flannel-ds-ppc64le created&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;daemonset.extensions/kube-flannel-ds-s390x created&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;After Flannel is installed, you should shortly see the master node coming up&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;test@kube-1:~$ &lt;STRONG&gt;kubectl get nodes&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;NAME&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;STATUS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ROLES&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AGE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;VERSION&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;kube-1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;STRONG&gt;Ready&lt;/STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;master&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;21m&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;v1.11.2&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-weight: bold;"&gt;Allow scheduling on the master node&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;To allow scheduling of workloads on the master node, we need to untaint it.&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;test@kube-1:~$ &lt;STRONG&gt;kubectl taint nodes --all node-role.kubernetes.io/master-&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;node/kube-1 untainted&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;If we don't do this, no pods will be scheduled on the master node. In a production system this makes sense, but for this lab we want to use all three nodes.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-weight: bold;"&gt;Add Slave Nodes&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Next thing is to add our two slave nodes, kube-2 and kube-3, to the k8s cluster.&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;The kubeadm init command for kubeadm will print a join command that can be used by the slaves, but you can also generate a new one:&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;test@kube-1:~$ &lt;STRONG&gt;kubeadm token create --print-join-command&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;kubeadm join 10.0.0.4:6443 --token w23h6m.ze6f4j7c0xanskd2 --discovery-token-ca-cert-hash sha256:bbb0d19cdc33a13db449121676326dcf5b140925bc0ab973365d5a17b7158008&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-weight: bold;"&gt;NOTE:&lt;/SPAN&gt; You &lt;SPAN style="font-weight: bold;"&gt;cannot&lt;/SPAN&gt; copy the join commands from here, you have to generate your own as explained above or copy the one outputted by the kubeadm init command.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-weight: bold;"&gt;NOTE:&lt;/SPAN&gt; You have to do the following on both kube-2 and kube-3.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;SSH to kube-2 and kube-3&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;test@kube-1:~$ &lt;STRONG&gt;ssh kube-2&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;test@kube-2:~$ &lt;STRONG&gt;sudo kubeadm join 10.0.0.4:6443 --token qohtw7.ufsn3xma6imzj80n --discovery-token-ca-cert-hash sha256:4629539b&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;39ea7f7663e80fc2ea902a7b39e467df396d848c4242c13088ad61a2&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[preflight] running pre-flight checks&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;I0821 09:28:45.475918&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;673 kernel_validator.go:81] Validating kernel version&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;I0821 09:28:45.476369&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;673 kernel_validator.go:96] Validating kernel config&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[discovery] Trying to connect to API Server "10.0.0.4:6443"&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[discovery] Created cluster-info discovery client, requesting info from "&lt;/SPAN&gt;&lt;A style="font-family: Monaco; font-size: 12px; color: #333333;" href="https://10.0.0.4:6443" target="_blank"&gt;https://10.0.0.4:6443&lt;/A&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;"&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[discovery] Requesting info from "&lt;/SPAN&gt;&lt;A style="font-family: Monaco; font-size: 12px; color: #333333;" href="https://10.0.0.4:6443" target="_blank"&gt;https://10.0.0.4:6443&lt;/A&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;" again to validate TLS against the pinned public key&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[discovery] Cluster info signature and contents are valid and TLS certificate validates against pinned roots, will use API Server "10.0.0.4:6443"&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[discovery] Successfully established connection with API Server "10.0.0.4:6443"&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[kubelet] Downloading configuration for the kubelet from the "kubelet-config-1.11" ConfigMap in the kube-system namespace&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[kubelet] Writing kubelet configuration to file "/var/lib/kubelet/config.yaml"&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[kubelet] Writing kubelet environment file with flags to file "/var/lib/kubelet/kubeadm-flags.env"&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[preflight] Activating the kubelet service&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[tlsbootstrap] Waiting for the kubelet to perform the TLS Bootstrap...&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;[patchnode] Uploading the CRI Socket information "/var/run/dockershim.sock" to the Node API object "kube-2" as an annotation&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;This node has joined the cluster:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;* Certificate signing request was sent to master and a response&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;was received.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;* The Kubelet was informed of the new secure connection details.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;Run 'kubectl get nodes' on the master to see this node join the cluster.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco;"&gt;test@kube-2:~$ &lt;STRONG&gt;exit&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Please redo the same for kube-3.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;After a while the new nodes should come up&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;test@kube-1:~$ &lt;STRONG&gt;kubectl get nodes&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;NAME&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;STATUS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ROLES&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AGE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;VERSION&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;kube-1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Ready&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;master&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;59m&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;v1.11.2&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;kube-2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Ready&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;none&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;35m&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;v1.11.2&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;kube-3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Ready&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;none&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;36s&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;v1.11.2&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;We now have a working k8s cluster.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-size: 24px; font-weight: bold;"&gt;Create a local Docker registry&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;We're going to push our containers to a local registry, this will speed up and simplify things when we build our own NSO containers.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;To start the registry, on kube-1:&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;test@kube-1:~$ &lt;STRONG&gt;docker run -d -p 5000:5000 --restart=always --name registry registry:2&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;To test the&amp;nbsp;docker registry, first pull an image from Docker Hub&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;test@kube-1:~$ &lt;STRONG&gt;docker pull alpine:latest&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;latest: Pulling from library/alpine&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;Digest: sha256:7043076348bf5040220df6ad703798fd8593a0918d06d3ce30c6c93be117e430&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;Status: Image is up to date for alpine:latest&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Next, let's tag it for our local registry&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;test@kube-1:~$ &lt;STRONG&gt;docker tag alpine:latest kube-1:5000/alpine:latest&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Now push it into the registry&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;test@kube-1:~$ &lt;STRONG&gt;docker push kube-1:5000/alpine:latest&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;The push refers to a repository [10.0.0.4:5000/alpine]&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;73046094a9b8: Pushed&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;latest: digest: sha256:7e8e16517347ec0b19fac1700682cc0b905b4c10d91a5f409452d2327fe49b8d size: 528&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;To make sure we can pull from our registry, we'll remove the local image&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;test@kube-1:~$ &lt;STRONG&gt;docker rmi kube-1:5000/alpine&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;Untagged: kube-1:5000/alpine:latest&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;Untagged: kube-1:5000/alpine@sha256:7e8e16517347ec0b19fac1700682cc0b905b4c10d91a5f409452d2327fe49b8d&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;Deleted: sha256:11cd0b38bc3ceb958ffb2f9bd70be3fb317ce7d255c8a4c3f4af30e298aa1aab&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;Deleted: sha256:73046094a9b835e443af1a9d736fcfc11a994107500e474d0abf399499ed280c&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Then we pull it back&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;test@kube-1:~$ &lt;STRONG&gt;docker pull kube-1:5000/alpine:latest&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;latest: Pulling from alpine&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;f031366bd5fe: Pull complete&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;Digest: sha256:7e8e16517347ec0b19fac1700682cc0b905b4c10d91a5f409452d2327fe49b8d&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;Status: Downloaded newer image for kube-1:5000/alpine:latest&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;All good!&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-size: 24px; font-weight: bold;"&gt;Create NSO base image&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;We're going to create an NSO base image that we'll base the project image on. This is not necessary, but I've found that it saves time during development to have a base image onto which I install the NSO project.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Go the the k8s-lab/base-container directory, where you'll find a number of files, the most interesting files is the Dockerfile.&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;It will install a couple of packages needed by NSO. It also installs curl which will be helpful later on.&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;FROM ubuntu:16.04&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;COPY nso-4.6.1.3.linux.x86_64.installer.bin /tmp/nso&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;RUN apt-get update; \&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;apt-get install -y openssh-client default-jre-headless python curl; \&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/tmp/nso /app/nso; \&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo '. /app/nso/ncsrc' &amp;gt;&amp;gt; /root/.bashrc; \&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;apt-get -y clean autoclean; \&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;apt-get -y autoremove; \&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rm -rf /tmp/* /var/tmp/* /var/lib/{apt,dpkg,cache,log}/&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;EXPOSE 8080 830 2022 2023 4569&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;It installs NSO in /app/nso and cleans up after apt. Last it exposes a number of ports that NSO uses.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;To build and push the image to the local registry please run (&lt;SPAN style="font-weight: bold;"&gt;NOTE&lt;/SPAN&gt;, this can take a couple of minutes).&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;test@kube-1:~$ &lt;STRONG&gt;./build.sh&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;Sending build context to Docker daemon 188.5 MB&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;Step 1/4 : FROM ubuntu:16.04&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;---&amp;gt; 7aa3602ab41e&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;Step 2/4 : COPY nso-4.6.1.3.linux.x86_64.installer.bin /tmp/nso&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;---&amp;gt; Using cache&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;---&amp;gt; 5a3f5d3eb822&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;Step 3/4 : RUN apt-get update;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;apt-get install -y openssh-client default-jre-headless python git curl;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/tmp/nso /app/nso;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo '. /app/nso/ncsrc' &amp;gt;&amp;gt; /root/.bashrc;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;apt-get -y clean autoclean;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;apt-get -y autoremove;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rm -rf /tmp/*&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;/var/tmp/* /var/lib/{apt,dpkg,cache,log}/&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;...&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;Successfully built a35fb1e9e6d3&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;The push refers to a repository [kube-1:5000/nso-base]&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;6b7ec8654278: Pushed&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;869384c52942: Pushed&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;bcff331e13e3: Pushed&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;2166dba7c95b: Pushed&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;5e95929b2798: Pushed&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;c2af38e6b250: Pushed&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;0a42ee6ceccb: Pushed&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;latest: digest: sha256:bbd34574f8af11322ce726d160f48bb9766367d9ebcdd8aece8629bfd1f6f0d6 size: 1783&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-size: 24px; font-weight: bold;"&gt;NSO Container&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;Next we will build our NSO container that contains the packages we use for this test. Please navigate to k8s-lab/nso-container&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;This Dockerfile is quite simple, just adding the NSO project to the base container.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;from kube-1:5000/nso-base&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;COPY nso-app /app/nso_project&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;COPY run-nso.sh /.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;EXPOSE 4570&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;ENTRYPOINT ["/run-nso.sh"]&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;To build, simply run&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;test@kube-1:~$ &lt;STRONG&gt;./build.sh&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;Sending build context to Docker daemon&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;64kB&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;Step 1/5 : from kube-1:5000/nso-base&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;---&amp;gt; 7c3dc8b25152&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;Step 2/5 : COPY nso-app /app/nso_project&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;---&amp;gt; cec6b567551b&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;Step 3/5 : COPY run-nso.sh /.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;---&amp;gt; c671eee6e239&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;Step 4/5 : EXPOSE 4570&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;---&amp;gt; Running in f8c5440dd665&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;Removing intermediate container f8c5440dd665&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;---&amp;gt; 53814cc9fce8&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;Step 5/5 : ENTRYPOINT ["/run-nso.sh"]&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;---&amp;gt; Running in 51cc1c16771a&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;Removing intermediate container 51cc1c16771a&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;---&amp;gt; f1dd50c21e62&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;Successfully built f1dd50c21e62&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;Successfully tagged kube-1:5000/nso-k8s-lab:latest&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;The push refers to repository [kube-1:5000/nso-k8s-lab]&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;c8c8f4c5557e: Pushed&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;7f37e62a2dda: Pushed&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;e291435ad52b: Mounted from nso-base&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;4458e05c75c6: Mounted from nso-base&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;d7232280c8c4: Mounted from nso-base&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;07663827a77f: Mounted from nso-base&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;87a2d0000622: Mounted from nso-base&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;4a7a5ec0f29e: Mounted from nso-base&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;8823818c4748: Mounted from nso-base&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;latest: digest: sha256:3a80da141f03dc3205c91d9afec2c7606edaa5d19acaa951c434ef7a6bcf2ab9 size: 2199&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Now we have the NSO container we'll use for the rest of the lab.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-size: 24px; font-weight: bold;"&gt;NSO Service and RBAC&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;To access NSO we'll create a couple of k8s services, we'll also install a k8s role for leader election.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Please go to the k8s-lab/nso-service directory&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;We will register two services for NSO, please see nso-service.yml&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;kind: Service&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;apiVersion: v1&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;metadata:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;name: nso-svc&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;spec:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;clusterIP: None&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;ports:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;- protocol: TCP&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;port: 8080&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;name: webui&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;selector:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;app: nso-app&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;---&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;kind: Service&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;apiVersion: v1&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;metadata:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;name: nso-svc-master&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;spec:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;ports:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;- protocol: TCP&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;port: 2024&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;name: ssh&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;- protocol: TCP&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;port: 8080&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;name: webui&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-weight: bold;"&gt;nso-svc&lt;/SPAN&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;The service will service &lt;SPAN style="font-weight: bold;"&gt;all&lt;/SPAN&gt; NSO instances and could be used for RO access, port 8080 is exposed.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-weight: bold;"&gt;nso-svc-master&lt;/SPAN&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;This service will service &lt;SPAN style="font-weight: bold;"&gt;only the NSO HA master&lt;/SPAN&gt; and will expose ports 8080 and 2024.&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;To get leader election to work, we also need to give the &lt;SPAN style="font-style: italic;"&gt;default&lt;/SPAN&gt; user access to k8s endpoints, please see rbac.yml&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;# Create role to allow user to read endpoints&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;kind: Role&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;apiVersion: rbac.authorization.k8s.io/v1&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;metadata:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;namespace: default&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;name: endpoint-reader&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;rules:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;- apiGroups: [""] # "" indicates the core API group&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;resources: ["endpoints"]&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;verbs: ["get", "watch", "list", "update"]&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;---&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;# This role binding allows "default" to read endpoints in the "default" namespace.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;kind: RoleBinding&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;apiVersion: rbac.authorization.k8s.io/v1&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;metadata:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;name: read-endpoints&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;namespace: default&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;subjects:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;- kind: User&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;name: system:serviceaccount:default:default&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;apiGroup: rbac.authorization.k8s.io&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;roleRef:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;kind: Role&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;name: endpoint-reader&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;apiGroup: rbac.authorization.k8s.io&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Make sure you apply both these files&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;test@kube-1:~$ &lt;STRONG&gt;kubectl create -f nso-service.yml&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;service/nso-svc created&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;service/nso-svc-master created&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;test@kube-1:~$ &lt;STRONG&gt;kubectl create -f rbac.yml&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;role.rbac.authorization.k8s.io/endpoint-reader created&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;rolebinding.rbac.authorization.k8s.io/read-endpoints created&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Make sure the services are registered&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;test@kube-1:~/nfs/kube-ha/k8s-lab/nso-service$ &lt;STRONG&gt;kubectl get svc&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;NAME&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TYPE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CLUSTER-IP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;EXTERNAL-IP&amp;nbsp;&amp;nbsp;&amp;nbsp;PORT(S)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AGE&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;kubernetes&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ClusterIP&amp;nbsp;&amp;nbsp;&amp;nbsp;10.96.0.1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;none&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;443/TCP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;6h&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;nso-svc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ClusterIP&amp;nbsp;&amp;nbsp;&amp;nbsp;None&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;none&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;8080/TCP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;14s&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;nso-svc-master&amp;nbsp;&amp;nbsp;&amp;nbsp;ClusterIP&amp;nbsp;&amp;nbsp;&amp;nbsp;10.108.126.92&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;none&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2024/TCP,8080/TCP&amp;nbsp;&amp;nbsp;&amp;nbsp;14s&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;It will also simplify if we export the IP address to NSO master&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;test@kube-1:~$ &lt;STRONG&gt;export NSO_IP=$(kubectl get service nso-svc-master | tail -n +2 | awk '{print $3}')&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;test@kube-1:~$ &lt;STRONG&gt;echo $NSO_IP&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;10.102.2.60&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-size: 24px; font-weight: bold;"&gt;Test deployment of NSO&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;In our first test, we will deploy NSO with one master and two slaves, distributed on the three nodes.&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;To select a master between themselves, we're launching a leader elector container as a sidecar to NSO. The leader-elector exposes a HTTP API, where each pod can query for the master. This is done by a HTTP GET on URL http://localhost:4040. The call returns the hostname of the master.&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Please go to the&amp;nbsp;k8s-lab/test-deployment directory and look at nso.yml&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;apiVersion: apps/v1&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;kind: StatefulSet&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;metadata:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;name: nso&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;spec:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;selector:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;matchLabels:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;app: nso-app&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;serviceName: nso-svc&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;# Deploy three instances of NSO&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;replicas: 3&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;template:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;metadata:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;labels:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;app: nso-app&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;spec:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;# Specify anti-affinity to make sure NSO nodes are not&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;# scheduled on the same k8s node&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;affinity:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;podAntiAffinity:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;requiredDuringSchedulingIgnoredDuringExecution:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- labelSelector:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;matchExpressions:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- key: app&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;operator: In&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- nso-app&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;topologyKey: "kubernetes.io/hostname"&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;containers:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- name: nso-master&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;image: kube-1:5000/nso-k8s-lab&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;# Probes for liveness and readiness&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;livenessProbe:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;httpGet:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;path: /restconf/data/ncs-state&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;port: 8080&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;httpHeaders:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- name: Authorization&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;# echo -n "admin:admin" | base64&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;value: Basic YWRtaW46YWRtaW4=&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;readinessProbe:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;httpGet:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;path: /restconf/data/ncs-state&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;port: 8080&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;httpHeaders:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- name: Authorization&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;# echo -n "admin:admin" | base64&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;value: Basic YWRtaW46YWRtaW4=&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ports:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- containerPort: 2024&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;name: ssh&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- containerPort: 8080&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;name: webui&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;# The leader elector side car. HTTP GET on&lt;/SPAN&gt; &lt;A style="font-family: Monaco; font-size: 12px; color: #333333;" href="http://localhost:4040" target="_blank"&gt;http://localhost:4040&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;# will return the leader&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- name: elector&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;image: fredrikjanssonse/leader-elector:0.6&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;args:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- --election=nso-svc&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- --http=localhost:4040&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ports:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- containerPort: 4040&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;protocol: TCP&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;And to deploy the test&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;test@kube-1:~$ &lt;STRONG&gt;kubectl create -f nso.yml&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;statefulset.apps/nso created&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-weight: bold;"&gt;NOTE:&amp;nbsp;&lt;/SPAN&gt;This might take a while since the NSO image have to be pulled from the&amp;nbsp;registry to each of the k8s nodes.&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;To continuously check status you can watch the pods.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-weight: bold;"&gt;NOTE:&lt;/SPAN&gt;&amp;nbsp;the nodes on which each NSO pod is scheduled on may vary on your system.&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;test@kube-1:~$ &lt;STRONG&gt;watch kubectl get pod -o=wide&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;NAME&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;READY&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;STATUS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RESTARTS&amp;nbsp;&amp;nbsp;&amp;nbsp;AGE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NODE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NOMINATED NODE&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;nso-0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2/2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Running&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2m&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;10.244.2.2&amp;nbsp;&amp;nbsp;&amp;nbsp;kube-3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;none&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;nso-1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2/2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Running&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1m&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;10.244.1.2&amp;nbsp;&amp;nbsp;&amp;nbsp;kube-2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;none&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;nso-2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2/2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Running&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1m&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;10.244.0.4&amp;nbsp;&amp;nbsp;&amp;nbsp;kube-1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;none&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;After a while you should see the pods deployed, one on each node.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;To see which was elected as leader, you have a couple of options&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;test@kube-1:~$ &lt;STRONG&gt;kubectl describe endpoints nso-svc&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;Name:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;nso-svc&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;Namespace:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;default&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;Labels:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;none&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;Annotations:&amp;nbsp;&amp;nbsp;control-plane.alpha.kubernetes.io/leader={"holderIdentity":"&lt;STRONG&gt;nso-0&lt;/STRONG&gt;","leaseDurationSeconds":10,"acquireTime":"2018-08-21T22:17:15Z","renewTime":"2018-08-21T22:19:44Z","leaderTransitions":0}&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;Subsets:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;Addresses:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;10.244.0.4,10.244.1.2,10.244.2.2&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;NotReadyAddresses:&amp;nbsp;&amp;nbsp;&amp;lt;none&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;Ports:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Name&amp;nbsp;&amp;nbsp;&amp;nbsp;Port&amp;nbsp;&amp;nbsp;Protocol&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;----&amp;nbsp;&amp;nbsp;&amp;nbsp;----&amp;nbsp;&amp;nbsp;--------&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;webui&amp;nbsp;&amp;nbsp;8080&amp;nbsp;&amp;nbsp;TCP&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;Events:&amp;nbsp;&amp;nbsp;&amp;lt;none&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Or you can log into one of the pods&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;test@kube-1:~$ &lt;STRONG&gt;kubectl exec -it nso-0 bash&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;Defaulting container name to nso-master.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;Use 'kubectl describe pod/nso-0 -n default' to see all of the containers in this pod.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;root@nso-0:/# &lt;STRONG&gt;curl&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;A style="font-family: Monaco; font-size: 12px; color: #333333;" href="http://localhost:4040" target="_blank"&gt;&lt;STRONG&gt;http://localhost:4040&lt;/STRONG&gt;&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;{"name":"&lt;/SPAN&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333; font-weight: bold;"&gt;nso-0&lt;/SPAN&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;"}&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;root@nso-0:/# &lt;STRONG&gt;exit&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;We can also query the NSO HA status&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;test@kube-1:~$ &lt;STRONG&gt;kubectl exec -it nso-0 bash&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;Defaulting container name to nso-master.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;Use 'kubectl describe pod/nso-0 -n default' to see all of the containers in this pod.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco;"&gt;root@nso-0:/# &lt;STRONG&gt;ncs_load -F o -o -p /ncs-state/ha&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;{&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;"data": {&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"tailf-ncs-monitoring:ncs-state": {&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"ha": {&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"mode": "master",&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"node-id": "nso-0",&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"connected-slave": ["nso-1", "nso-2"]&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;}&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;root@nso-0:/#&lt;/SPAN&gt; &lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333; font-weight: bold;"&gt;exit&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;So we can see that NSO have connected two slaves&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-weight: bold;"&gt;Test HA&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;To test HA we can modify some data in NSO. For this there is a simple action in NSO, the action will simply increase a counter (in config) and store which host (i.e. the master) last made a change.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;We can invoke the test action as follows&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;test@kube-1:~$&amp;nbsp;&lt;STRONG&gt;http_proxy="" curl -H "Content-Type: application/yang-data+json" -d "" -u admin:admin&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;STRONG&gt;http://&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;$NSO_IP&lt;/SPAN&gt;:8080/restconf/data/ha-test/ping&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;And to check the result&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;test@kube-1:~$ &lt;STRONG&gt;http_proxy="" curl -u admin:admin&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;STRONG&gt;http://&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;$NSO_IP&lt;/SPAN&gt;:8080/restconf/data/ha-test&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;lt;ha-test xmlns="&lt;/SPAN&gt;&lt;A style="font-family: Monaco; font-size: 12px; color: #333333;" href="http://example.com/ha-test" target="_blank"&gt;http://example.com/ha-test&lt;/A&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;"&amp;nbsp;&amp;nbsp;xmlns:ha-test="&lt;/SPAN&gt;&lt;A style="font-family: Monaco; font-size: 12px; color: #333333;" href="http://example.com/ha-test" target="_blank"&gt;http://example.com/ha-test&lt;/A&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;"&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;lt;count&amp;gt;2&amp;lt;/count&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;lt;last-host&amp;gt;nso-0&amp;lt;/last-host&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;lt;/ha-test&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;So in my run above, I can see the nso-0 is the master.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Let's kill the nso-0 pod and force a leadership change.&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Sometimes the restart of the master is so quick, that a new leader is not elected. If that happens, we can use a trick to force selection of a new leader. The pods are configured to not run on the same node (see nso.yml), so if we disable scheduling on one node, we can prevent one of the pods to come up.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;First let's see where each pod is running&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;test@kube-1:~$ &lt;STRONG&gt;kubectl get pods -o=wide&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;NAME&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;READY&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;STATUS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RESTARTS&amp;nbsp;&amp;nbsp;&amp;nbsp;AGE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NODE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NOMINATED NODE&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;nso-0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2/2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Running&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1m&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;10.244.2.10&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333; font-weight: bold;"&gt;kube-3&lt;/SPAN&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp; &amp;nbsp;&amp;lt;none&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;nso-1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2/2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Running&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;59s&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;10.244.1.11&amp;nbsp;&amp;nbsp;&amp;nbsp;kube-2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;none&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;nso-2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2/2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Running&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;42s&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;10.244.0.4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;kube-1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;none&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Here I see that nso-0, the leader, is running on kube-3. Let's disable scheduling on that node&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-weight: bold;"&gt;NOTE:&lt;/SPAN&gt; Make sure you select the correct node for your system.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;test@kube-1:~$ &lt;STRONG&gt;kubectl cordon kube-3&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;node/kube-3 cordoned&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;And now if we delete nso-0, it will not come up until we uncordon the node&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;test@kube-1:~$ &lt;STRONG&gt;kubectl delete pod nso-0&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;pod "nso-0" deleted&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Now we can redo the action test again&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;test@kube-1:~$&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;http_proxy="" curl -H "Content-Type: application/yang-data+json" -d "" -u admin:admin&lt;/SPAN&gt; http://&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;$NSO_IP&lt;/SPAN&gt;:8080/restconf/data/ha-test/ping&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;And to check the result&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;test@kube-1:~$ &lt;STRONG&gt;http_proxy="" curl -u admin:admin&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;STRONG&gt;http://&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;$NSO_IP&lt;/SPAN&gt;:8080/restconf/data/ha-test&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;lt;ha-test xmlns="&lt;/SPAN&gt;&lt;A style="font-family: Monaco; font-size: 12px; color: #333333;" href="http://example.com/ha-test" target="_blank"&gt;http://example.com/ha-test&lt;/A&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;"&amp;nbsp;&amp;nbsp;xmlns:ha-test="&lt;/SPAN&gt;&lt;A style="font-family: Monaco; font-size: 12px; color: #333333;" href="http://example.com/ha-test" target="_blank"&gt;http://example.com/ha-test&lt;/A&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;"&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;lt;count&amp;gt;4&amp;lt;/count&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;lt;last-host&amp;gt;&lt;STRONG&gt;nso-1&lt;/STRONG&gt;&amp;lt;/last-host&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;lt;/ha-test&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;And voila, the new master is nso-1 and more importantly, the data is not lost.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Let's uncordon our node again to let nso-0 be scheduled.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;test@kube-1:~$ &lt;STRONG&gt;kubectl uncordon kube-3&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;node/kube-3 uncordoned&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;test@kube-1:~/nfs/kube-ha/k8s-lab/test-deployment$ kubectl get pods&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;NAME&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;READY&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;STATUS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RESTARTS&amp;nbsp;&amp;nbsp;&amp;nbsp;AGE&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco;"&gt;nso-0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1/2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Running&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1m&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;nso-1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2/2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Running&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;14m&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;nso-2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2/2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Running&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;14m&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;All good... but what will happen if we kill all pods?&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;test@kube-1:~$ kubectl get pods | grep nso | awk '{print $1}' | xargs kubectl delete pod&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;pod "nso-0" deleted&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;pod "nso-1" deleted&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;pod "nso-2" deleted&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Wait for the pods to come back up&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;test@kube-1:~$&lt;/SPAN&gt; &lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333; font-weight: bold;"&gt;watch kubectl get pod -o=wide&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;NAME&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;READY&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;STATUS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RESTARTS&amp;nbsp;&amp;nbsp;&amp;nbsp;AGE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NODE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NOMINATED NODE&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;nso-0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2/2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Running&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2m&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;10.244.2.2&amp;nbsp;&amp;nbsp;&amp;nbsp;kube-3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;none&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;nso-1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2/2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Running&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1m&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;10.244.1.2&amp;nbsp;&amp;nbsp;&amp;nbsp;kube-2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;none&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;nso-2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2/2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Running&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1m&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;10.244.0.4&amp;nbsp;&amp;nbsp;&amp;nbsp;kube-1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;none&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Now let's check the config again&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;test@kube-1:~$ &lt;STRONG&gt;http_proxy="" curl -u admin:admin&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;STRONG&gt;http://&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;$NSO_IP&lt;/SPAN&gt;:8080/restconf/data/ha-test&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-size: 14px; color: #333333; font-family: 'Helvetica Neue';"&gt;Empty CDB, when all pods are gone and there is no persistent storage,&lt;/SPAN&gt; &lt;SPAN style="font-size: 14px; color: #333333; font-family: 'Helvetica Neue'; font-weight: bold;"&gt;all data is lost&lt;/SPAN&gt;&lt;SPAN style="font-size: 14px; color: #333333; font-family: 'Helvetica Neue';"&gt;.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Let's delete the current deployment&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;$ kubectl delete -f nso.yml&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;statefulset.apps "nso" deleted&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Shortly the pods should be removed&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;$ kubectl get pod&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;No resources found.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT style="font-size: 24px;" face="Helvetica Neue"&gt;&lt;SPAN style="font-size: 24px; font-family: 'Helvetica Neue'; color: #333333; font-weight: bold;"&gt;NSO with Persistent Storage&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-weight: bold;"&gt;Install GlusterFS&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;We'll install GlusterFS as our replicated storage.&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;On the master node, we've already checked out a git repo that will help setting up GlusterFS.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;First thing we need to do is load a couple of modules on the k8s nodes. Please go to k8s-lab/install-glusterfs.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;There you'll run an ansible playbook that will load the relevant modules on all the hosts.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;test@kube-1:~$ ansible-playbook -i hosts.yml glusterfs.yml&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;PLAY [Build Hosts] ***************************************************************************************************&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;TASK [Gathering Facts] ***********************************************************************************************&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;ok: [kube-2]&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;ok: [kube-3]&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;ok: [kube-1]&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;TASK [Modprobe] ******************************************************************************************************&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;ok: [kube-3] =&amp;gt; (item=dm_mirror)&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;ok: [kube-1] =&amp;gt; (item=dm_mirror)&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;ok: [kube-2] =&amp;gt; (item=dm_mirror)&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;ok: [kube-2] =&amp;gt; (item=dm_snapshot)&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;ok: [kube-3] =&amp;gt; (item=dm_snapshot)&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;ok: [kube-1] =&amp;gt; (item=dm_snapshot)&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;ok: [kube-2] =&amp;gt; (item=dm_thin_pool)&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;ok: [kube-1] =&amp;gt; (item=dm_thin_pool)&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;ok: [kube-3] =&amp;gt; (item=dm_thin_pool)&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;PLAY RECAP ***********************************************************************************************************&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;kube-1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;: ok=2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;changed=0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;unreachable=0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;failed=0&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;kube-2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;: ok=2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;changed=0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;unreachable=0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;failed=0&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;kube-3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;: ok=2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;changed=0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;unreachable=0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;failed=0&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Please go to ~/gluster-k8s/deploy.&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;There you'll find a file called topology.json&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;{&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;"clusters": [&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"nodes": [&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"node": {&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"hostnames": {&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"manage": [&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"kube-1"&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;],&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"storage": [&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"10.0.0.4"&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;]&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;},&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"zone": 1&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;},&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"devices": [&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"/dev/sdb"&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;]&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;},&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"node": {&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"hostnames": {&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"manage": [&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"kube-2"&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;],&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"storage": [&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"10.0.0.5"&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;]&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;},&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"zone": 1&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;},&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"devices": [&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"/dev/sdb",&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;]&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;},&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"node": {&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"hostnames": {&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"manage": [&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"kube-3"&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;],&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"storage": [&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"10.0.0.6"&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;]&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;},&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"zone": 1&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;},&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"devices": [&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"/dev/sdb",&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;]&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;]&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;]&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;It already have the correct names and IP address for your k8s nodes.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;To install GlusterFS we simply run the gk-deply script, with -g to provision gluster pods as well.&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;$ ./gk-deploy -v -g&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;...&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;Deployment complete!&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Now navigate back to k8s-lab/install-glusterfs, there you'll find a file called storage-class.yml.&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-weight: bold;"&gt;NOTE:&amp;nbsp;&lt;/SPAN&gt;This file will need to bo modified to point to the heketi/glusterfs service&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;$ &lt;STRONG&gt;kubectl get service heketi&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;NAME&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TYPE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CLUSTER-IP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;EXTERNAL-IP&amp;nbsp;&amp;nbsp;&amp;nbsp;PORT(S)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AGE&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&lt;STRONG&gt;heketi&lt;/STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ClusterIP&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;STRONG&gt;10.98.79.86&lt;/STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;none&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;8080/TCP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;15m&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Edit storage-class.yml to match the IP address above&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;$ vim storage-class.yml&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco;"&gt;apiVersion: storage.k8s.io/v1&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;kind: StorageClass&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;metadata:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;name: glusterfs-storage&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;provisioner: kubernetes.io/glusterfs&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;parameters:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;restur&lt;/SPAN&gt;l: "http://&lt;SPAN style="font-weight: bold;"&gt;10.98.79.86&lt;/SPAN&gt;:8080"&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-weight: bold;"&gt;NOTE&lt;/SPAN&gt;: If you're behind a proxy, you'll need to add the IP address above to the no_proxy for k8s. Please modify&amp;nbsp;/etc/kubernetes/manifests/kube-controller-manager.yaml&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;...&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp; &amp;nbsp; - name: no_proxy&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;value: .&lt;/SPAN&gt;cisco.com,localhost,127.0.0.1,10.0.0.0/8,kube-1,kube-2,192.168.0.0/16,&lt;STRONG&gt;10.98.79.86&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;...&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;Modifying this file will automatically reload k8s controller service.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Now let's create the storage class&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;$ &lt;STRONG&gt;kubectl create -f storage-class.yml&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;storageclass.storage.k8s.io/glusterfs-storage created&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;To test the storage, we will create a persistent volume claim, please see pvc.yml&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;kind: PersistentVolumeClaim&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;apiVersion: v1&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;metadata:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;name: test&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;spec:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;accessModes:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- ReadWriteOnce&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;resources:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;requests:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;storage: 1Gi&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;storageClassName: glusterfs-storage&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;$ &lt;STRONG&gt;kubectl create -f pvc.yml&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;persistentvolumeclaim/test created&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;After a while you should see&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;$ kubectl get pvc&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;NAME&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;STATUS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;VOLUME&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CAPACITY&amp;nbsp;&amp;nbsp;&amp;nbsp;ACCESS MODES&amp;nbsp;&amp;nbsp;&amp;nbsp;STORAGECLASS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AGE&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;test&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Bound&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pvc-be2c9bcd-a61e-11e8-9703-0050568923a4&amp;nbsp;&amp;nbsp;&amp;nbsp;1Gi&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RWO&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;glusterfs-storage&amp;nbsp;&amp;nbsp;&amp;nbsp;24s&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;We can also check the persistent volume created from this claim&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;$ &lt;STRONG&gt;kubectl get pv&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;NAME&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CAPACITY&amp;nbsp;&amp;nbsp;&amp;nbsp;ACCESS MODES&amp;nbsp;&amp;nbsp;&amp;nbsp;RECLAIM POLICY&amp;nbsp;&amp;nbsp;&amp;nbsp;STATUS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CLAIM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;STORAGECLASS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;REASON&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AGE&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;pvc-be2c9bcd-a61e-11e8-9703-0050568923a4&amp;nbsp;&amp;nbsp;&amp;nbsp;1Gi&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RWO&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Delete&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Bound&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;default/test&amp;nbsp;&amp;nbsp;&amp;nbsp;glusterfs-storage&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1m&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;When we know it works, we're can delete the volume claim&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;$ &lt;STRONG&gt;kubectl delete -f pvc.yml&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;persistentvolumeclaim "test" deleted&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;After about a minute, the claim and the volume should be gone&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;$ &lt;STRONG&gt;kubectl get pv,pvc&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;No resources found.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;With that we have a persistent, distributed storage installed.&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Let's move back to NSO to utilize this.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-size: 24px; font-weight: bold;"&gt;NSO on GlusterFS&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;The next step is to run our NSO containers on the persistent storage.&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;The directories that needs to be persisted in an NSO project are logs, ncs-cdb and the state directory.&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Please navigate to k8s-lab/persistent-nso and check out nso.yml. It has been modified from the previous version&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-weight: bold;"&gt;FIXME:&lt;/SPAN&gt; Export NC port&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-weight: bold;"&gt;FIXME:&lt;/SPAN&gt; Use HA state for readiness and liveliness&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;apiVersion: apps/v1&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;kind: StatefulSet&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;metadata:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;name: nso&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;spec:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;selector:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;matchLabels:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;app: nso-app&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;serviceName: nso-svc&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;replicas: 3&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;template:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;metadata:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;labels:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;app: nso-app&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;spec:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;affinity:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;podAntiAffinity:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;requiredDuringSchedulingIgnoredDuringExecution:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- labelSelector:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;matchExpressions:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- key: app&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;operator: In&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;values:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- nso-app&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;topologyKey: "kubernetes.io/hostname"&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;containers:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- name: nso-master&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;image: kube-1:5000/nso-k8s-lab&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;livenessProbe:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;httpGet:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;path: /restconf/data/ncs-state&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;port: 8080&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;httpHeaders:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- name: Authorization&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;# echo -n "admin:admin" | base64&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;value: Basic YWRtaW46YWRtaW4=&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;readinessProbe:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;httpGet:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;path: /restconf/data/ncs-state&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;port: 8080&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;httpHeaders:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- name: Authorization&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;# echo -n "admin:admin" | base64&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;value: Basic YWRtaW46YWRtaW4=&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ports:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- containerPort: 2024&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;name: ssh&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- containerPort: 8080&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;name: webui&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;volumeMounts:&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- name: logs&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mountPath: /app/nso_project/logs&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- name: state&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mountPath: /app/nso_project/state&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- name: cdb&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mountPath: /app/nso_project/ncs-cdb&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- name: elector&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;image: fredrikjanssonse/leader-elector:0.6&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;args:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- --election=nso-svc&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- --http=localhost:4040&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ports:&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- containerPort: 4040&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;protocol: TCP&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;volumeClaimTemplates:&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;- metadata:&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;name: cdb&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;spec:&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;accessModes: [ "ReadWriteOnce" ]&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;storageClassName: glusterfs-storage&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;resources:&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;requests:&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;storage: 1Gi&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;- metadata:&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;name: logs&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;spec:&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;accessModes: [ "ReadWriteOnce" ]&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;storageClassName: glusterfs-storage&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;resources:&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;requests:&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;storage: 1Gi&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;- metadata:&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;name: state&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;spec:&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;accessModes: [ "ReadWriteOnce" ]&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;storageClassName: glusterfs-storage&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;resources:&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;requests:&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;storage: 1Gi&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-weight: bold;"&gt;FIXME:&lt;/SPAN&gt;&amp;nbsp;Certificates for NSO SSL, from Bruce&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;So for each of cdb, logs and state, we will create a persistent volume claim for 1Gb of storage.&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Let's deploy this&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;$ &lt;STRONG&gt;kubectl create -f nso.yml&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;statefulset.apps/nso created&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;This will take some time and you can check the status&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;$ &lt;STRONG&gt;watch kubectl get pods,pvc,pv&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;Every 2.0s: kubectl get pods,pvc,pv&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;kube-1: Wed Aug 22 10:15:32 2018&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;NAME&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;READY&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;STATUS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RESTARTS&amp;nbsp;&amp;nbsp;&amp;nbsp;AGE&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;pod/glusterfs-4dgmv&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1/1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Running&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;17m&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;pod/glusterfs-b45nm&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1/1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Running&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2h&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;pod/glusterfs-gvqfq&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1/1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Running&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2h&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;pod/heketi-86f98754c-cmt6s&amp;nbsp;&amp;nbsp;&amp;nbsp;1/1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Running&amp;nbsp;&amp;nbsp;&amp;nbsp;4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2h&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;pod/nso-0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2/2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Running&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1m&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;pod/nso-1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2/2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Running&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;43s&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;pod/nso-2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0/2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Pending&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;8s&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;NAME&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;STATUS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;VOLUME&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CAPACITY&amp;nbsp;&amp;nbsp;&amp;nbsp;ACCESS MODES&amp;nbsp;&amp;nbsp;&amp;nbsp;STORAGECLASS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AGE&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;persistentvolumeclaim/cdb-nso-0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Bound&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pvc-cf316753-a62e-11e8-a520-0050568923a4&amp;nbsp;&amp;nbsp;&amp;nbsp;1Gi&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RWO&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;glusterfs-storage&amp;nbsp;&amp;nbsp;&amp;nbsp;1m&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;persistentvolumeclaim/cdb-nso-1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Bound&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pvc-e05c7112-a62e-11e8-a520-0050568923a4&amp;nbsp;&amp;nbsp;&amp;nbsp;1Gi&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RWO&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;glusterfs-storage&amp;nbsp;&amp;nbsp;&amp;nbsp;43s&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;persistentvolumeclaim/cdb-nso-2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Pending&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;glusterfs-storage&amp;nbsp;&amp;nbsp;&amp;nbsp;8s&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;persistentvolumeclaim/logs-nso-0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Bound&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pvc-cf31f0ac-a62e-11e8-a520-0050568923a4&amp;nbsp;&amp;nbsp;&amp;nbsp;1Gi&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RWO&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;glusterfs-storage&amp;nbsp;&amp;nbsp;&amp;nbsp;1m&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;persistentvolumeclaim/logs-nso-1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Bound&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pvc-e059086b-a62e-11e8-a520-0050568923a4&amp;nbsp;&amp;nbsp;&amp;nbsp;1Gi&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RWO&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;glusterfs-storage&amp;nbsp;&amp;nbsp;&amp;nbsp;43s&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;persistentvolumeclaim/logs-nso-2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Pending&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;glusterfs-storage&amp;nbsp;&amp;nbsp;&amp;nbsp;8s&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;persistentvolumeclaim/state-nso-0&amp;nbsp;&amp;nbsp;&amp;nbsp;Bound&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pvc-cf3289c0-a62e-11e8-a520-0050568923a4&amp;nbsp;&amp;nbsp;&amp;nbsp;1Gi&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RWO&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;glusterfs-storage&amp;nbsp;&amp;nbsp;&amp;nbsp;1m&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;persistentvolumeclaim/state-nso-1&amp;nbsp;&amp;nbsp;&amp;nbsp;Bound&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pvc-e05ba39d-a62e-11e8-a520-0050568923a4&amp;nbsp;&amp;nbsp;&amp;nbsp;1Gi&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RWO&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;glusterfs-storage&amp;nbsp;&amp;nbsp;&amp;nbsp;43s&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;persistentvolumeclaim/state-nso-2&amp;nbsp;&amp;nbsp;&amp;nbsp;Pending&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;glusterfs-storage&amp;nbsp;&amp;nbsp;&amp;nbsp;8s&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;NAME&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CAPACITY&amp;nbsp;&amp;nbsp;&amp;nbsp;ACCESS MODES&amp;nbsp;&amp;nbsp;&amp;nbsp;RECLAIM POLICY&amp;nbsp;&amp;nbsp;&amp;nbsp;STATUS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CLAIM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;STORAGECLASS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;REASON&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AGE&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;persistentvolume/pvc-cf316753-a62e-11e8-a520-0050568923a4&amp;nbsp;&amp;nbsp;&amp;nbsp;1Gi&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RWO&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Delete&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Bound&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;default/cdb-nso-0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;glusterfs-storage&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;55s&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;persistentvolume/pvc-cf31f0ac-a62e-11e8-a520-0050568923a4&amp;nbsp;&amp;nbsp;&amp;nbsp;1Gi&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RWO&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Delete&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Bound&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;default/logs-nso-0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;glusterfs-storage&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;59s&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;persistentvolume/pvc-cf3289c0-a62e-11e8-a520-0050568923a4&amp;nbsp;&amp;nbsp;&amp;nbsp;1Gi&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RWO&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Delete&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Bound&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;default/state-nso-0&amp;nbsp;&amp;nbsp;&amp;nbsp;glusterfs-storage&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;55s&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;persistentvolume/pvc-e059086b-a62e-11e8-a520-0050568923a4&amp;nbsp;&amp;nbsp;&amp;nbsp;1Gi&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RWO&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Delete&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Bound&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;default/logs-nso-1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;glusterfs-storage&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;25s&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;persistentvolume/pvc-e05ba39d-a62e-11e8-a520-0050568923a4&amp;nbsp;&amp;nbsp;&amp;nbsp;1Gi&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RWO&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Delete&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Bound&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;default/state-nso-1&amp;nbsp;&amp;nbsp;&amp;nbsp;glusterfs-storage&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;21s&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;persistentvolume/pvc-e05c7112-a62e-11e8-a520-0050568923a4&amp;nbsp;&amp;nbsp;&amp;nbsp;1Gi&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RWO&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Delete&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Bound&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;default/cdb-nso-1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;glusterfs-storage&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;29s&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;After a while you should see all pods get status running, at that point press ctrl-c to break the watch.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Let's create some configuration data in NSO&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;$&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;http_proxy="" curl -H "Content-Type: application/yang-data+json" -d "" -u admin:admin&lt;/SPAN&gt; http://&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;$NSO_IP&lt;/SPAN&gt;:8080/restconf/data/ha-test/ping&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;And to check the result&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;$ &lt;STRONG&gt;http_proxy="" curl -u admin:admin&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;STRONG&gt;http://&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;$NSO_IP&lt;/SPAN&gt;:8080/restconf/data/ha-test&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;lt;ha-test xmlns="&lt;/SPAN&gt;&lt;A style="font-family: Monaco; font-size: 12px; color: #333333;" href="http://example.com/ha-test" target="_blank"&gt;http://example.com/ha-test&lt;/A&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;"&amp;nbsp;&amp;nbsp;xmlns:ha-test="&lt;/SPAN&gt;&lt;A style="font-family: Monaco; font-size: 12px; color: #333333;" href="http://example.com/ha-test" target="_blank"&gt;http://example.com/ha-test&lt;/A&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;"&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;lt;count&amp;gt;1&amp;lt;/count&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;lt;last-host&amp;gt;nso-0&amp;lt;/last-host&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;lt;/ha-test&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Now let's get the HA status&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;$ &lt;STRONG&gt;http_proxy="" curl -u admin:admin&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;STRONG&gt;http://&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;$NSO_IP&lt;/SPAN&gt;:8080/restconf/data/ncs-state/ha&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;lt;ha xmlns="&lt;/SPAN&gt;&lt;A style="font-family: Monaco; font-size: 12px; color: #333333;" href="http://tail-f.com/yang/ncs-monitoring" target="_blank"&gt;http://tail-f.com/yang/ncs-monitoring&lt;/A&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;"&amp;nbsp;&amp;nbsp;xmlns:tfnm="&lt;/SPAN&gt;&lt;A style="font-family: Monaco; font-size: 12px; color: #333333;" href="http://tail-f.com/yang/ncs-monitoring" target="_blank"&gt;http://tail-f.com/yang/ncs-monitoring&lt;/A&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;"&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;lt;mode&amp;gt;master&amp;lt;/mode&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;lt;node-id&amp;gt;nso-0&amp;lt;/node-id&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;lt;connected-slave&amp;gt;nso-1&amp;lt;/connected-slave&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;lt;connected-slave&amp;gt;nso-2&amp;lt;/connected-slave&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;lt;/ha&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-size: 24px; font-weight: bold;"&gt;Test HA Failover&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;By running the command above, we can see that nso-0 is the master.&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;First test is simply to kill that pod and make sure everything comes up again.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-weight: bold;"&gt;NOTE&lt;/SPAN&gt;&amp;nbsp;Make sure you kill the pod that's the leader when you run.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;$ &lt;STRONG&gt;kubectl delete pod nso-0&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;pod "nso-0" deleted&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;After a short while, nso-0 will be back. Sometimes, depending on timing, nso-0 might still be the leader.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;$ &lt;STRONG&gt;http_proxy="" curl -u admin:admin&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;STRONG&gt;http://&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;$NSO_IP&lt;/SPAN&gt;:8080/restconf/data/ncs-state/ha&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;lt;ha xmlns="&lt;/SPAN&gt;&lt;A style="font-family: Monaco; font-size: 12px; color: #333333;" href="http://tail-f.com/yang/ncs-monitoring" target="_blank"&gt;http://tail-f.com/yang/ncs-monitoring&lt;/A&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;"&amp;nbsp;&amp;nbsp;xmlns:tfnm="&lt;/SPAN&gt;&lt;A style="font-family: Monaco; font-size: 12px; color: #333333;" href="http://tail-f.com/yang/ncs-monitoring" target="_blank"&gt;http://tail-f.com/yang/ncs-monitoring&lt;/A&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;"&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;lt;mode&amp;gt;master&amp;lt;/mode&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;lt;node-id&amp;gt;nso-0&amp;lt;/node-id&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;lt;connected-slave&amp;gt;nso-1&amp;lt;/connected-slave&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;lt;connected-slave&amp;gt;nso-2&amp;lt;/connected-slave&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;lt;/ha&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;If nso-0 is still the leader, we can use the cordon/uncordon trick to force selection of a new leader.&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;First let's see where each pod is running&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;$ &lt;STRONG&gt;kubectl get pods -o=wide&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;NAME&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;READY&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;STATUS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RESTARTS&amp;nbsp;&amp;nbsp;&amp;nbsp;AGE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NODE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NOMINATED NODE&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;glusterfs-4dgmv&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1/1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Running&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1h&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;10.0.0.4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;kube-1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;none&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;glusterfs-b45nm&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1/1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Running&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3h&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;10.0.0.6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;kube-3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;none&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;glusterfs-gvqfq&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1/1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Running&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3h&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;10.0.0.5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;kube-2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;none&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;heketi-86f98754c-cmt6s&amp;nbsp;&amp;nbsp;&amp;nbsp;1/1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Running&amp;nbsp;&amp;nbsp;&amp;nbsp;4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3h&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;10.244.1.7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;kube-2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;none&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;nso-0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2/2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Running&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1m&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;10.244.2.10&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;STRONG&gt;kube-3&lt;/STRONG&gt;&amp;nbsp; &amp;nbsp;&amp;lt;none&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;nso-1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2/2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Running&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;59s&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;10.244.1.11&amp;nbsp;&amp;nbsp;&amp;nbsp;kube-2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;none&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;nso-2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2/2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Running&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;42s&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;10.244.0.4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;kube-1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;none&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Here I see that nso-0, the leader, is running on kube-3. Let's disable scheduling on that node&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;$ &lt;STRONG&gt;kubectl cordon kube-3&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;node/kube-3 cordoned&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;And now if we delete nso-0, it will not come up until we uncordon the node&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;$ &lt;STRONG&gt;kubectl delete pod nso-0&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;pod "nso-0" deleted&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;And now if we check the pods&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;test@kube-1:~/nfs/kube-ha/k8s-lab/persistent-nso$ kubectl get pods&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;NAME&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;READY&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;STATUS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RESTARTS&amp;nbsp;&amp;nbsp;&amp;nbsp;AGE&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;glusterfs-4dgmv&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1/1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Running&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1h&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;glusterfs-b45nm&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1/1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Running&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3h&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;glusterfs-gvqfq&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1/1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Running&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3h&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;heketi-86f98754c-cmt6s&amp;nbsp;&amp;nbsp;&amp;nbsp;1/1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Running&amp;nbsp;&amp;nbsp;&amp;nbsp;4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3h&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;nso-0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0/2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;STRONG&gt;Pending&lt;/STRONG&gt;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;23s&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;nso-1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2/2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Running&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3m&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;nso-2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2/2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Running&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3m&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;We'll also see a new leader elected&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;$ &lt;STRONG&gt;http_proxy="" curl -u admin:admin&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;STRONG&gt;http://&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;$NSO_IP&lt;/SPAN&gt;:8080/restconf/data/ncs-state/ha&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;lt;ha xmlns="&lt;/SPAN&gt;&lt;A style="font-family: Monaco; font-size: 12px; color: #333333;" href="http://tail-f.com/yang/ncs-monitoring" target="_blank"&gt;http://tail-f.com/yang/ncs-monitoring&lt;/A&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;"&amp;nbsp;&amp;nbsp;xmlns:tfnm="&lt;/SPAN&gt;&lt;A style="font-family: Monaco; font-size: 12px; color: #333333;" href="http://tail-f.com/yang/ncs-monitoring" target="_blank"&gt;http://tail-f.com/yang/ncs-monitoring&lt;/A&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;"&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;lt;mode&amp;gt;master&amp;lt;/mode&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;lt;node-id&amp;gt;&lt;STRONG&gt;nso-1&lt;/STRONG&gt;&amp;lt;/node-id&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;lt;connected-slave&amp;gt;nso-2&amp;lt;/connected-slave&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;lt;/ha&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Last, we can uncordon the node to let nso-0 be scheduled.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;$ &lt;STRONG&gt;kubectl uncordon kube-3&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;node/kube-3 uncordoned&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;$ &lt;STRONG&gt;kubectl get pods&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;NAME&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;READY&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;STATUS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RESTARTS&amp;nbsp;&amp;nbsp;&amp;nbsp;AGE&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;glusterfs-4dgmv&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1/1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Running&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1h&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;glusterfs-b45nm&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1/1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Running&amp;nbsp;&amp;nbsp;&amp;nbsp;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3h&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;glusterfs-gvqfq&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1/1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Running&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3h&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;heketi-86f98754c-cmt6s&amp;nbsp;&amp;nbsp;&amp;nbsp;1/1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Running&amp;nbsp;&amp;nbsp;&amp;nbsp;4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3h&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;nso-0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;2/2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Running&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2m&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;nso-1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2/2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Running&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5m&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;nso-2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2/2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Running&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4m&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;$ &lt;STRONG&gt;http_proxy="" curl -u admin:admin&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;STRONG&gt;http://&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;$NSO_IP&lt;/SPAN&gt;:8080/restconf/data/ncs-state/ha&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;lt;ha xmlns="&lt;/SPAN&gt;&lt;A style="font-family: Monaco; font-size: 12px; color: #333333;" href="http://tail-f.com/yang/ncs-monitoring" target="_blank"&gt;http://tail-f.com/yang/ncs-monitoring&lt;/A&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;"&amp;nbsp;&amp;nbsp;xmlns:tfnm="&lt;/SPAN&gt;&lt;A style="font-family: Monaco; font-size: 12px; color: #333333;" href="http://tail-f.com/yang/ncs-monitoring" target="_blank"&gt;http://tail-f.com/yang/ncs-monitoring&lt;/A&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;"&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;lt;mode&amp;gt;master&amp;lt;/mode&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;lt;node-id&amp;gt;nso-1&amp;lt;/node-id&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;lt;connected-slave&amp;gt;nso-0&amp;lt;/connected-slave&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;lt;connected-slave&amp;gt;nso-2&amp;lt;/connected-slave&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;lt;/ha&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Let's do the HA test again&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;$&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;http_proxy="" curl -H "Content-Type: application/yang-data+json" -d "" -u admin:admin&lt;/SPAN&gt; http://&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;$NSO_IP&lt;/SPAN&gt;:8080/restconf/data/ha-test/ping&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;And to check the result&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;$ &lt;STRONG&gt;http_proxy="" curl -u admin:admin&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;STRONG&gt;http://&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;$NSO_IP&lt;/SPAN&gt;:8080/restconf/data/ha-test&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;lt;ha-test xmlns="&lt;/SPAN&gt;&lt;A style="font-family: Monaco; font-size: 12px; color: #333333;" href="http://example.com/ha-test" target="_blank"&gt;http://example.com/ha-test&lt;/A&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;"&amp;nbsp;&amp;nbsp;xmlns:ha-test="&lt;/SPAN&gt;&lt;A style="font-family: Monaco; font-size: 12px; color: #333333;" href="http://example.com/ha-test" target="_blank"&gt;http://example.com/ha-test&lt;/A&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;"&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;lt;count&amp;gt;3&amp;lt;/count&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;lt;last-host&amp;gt;nso-1&amp;lt;/last-host&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;lt;/ha-test&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;All good!&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Now if we redo the test where we kill all the NSO pods&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;$ &lt;STRONG&gt;kubectl get pods | grep nso | awk '{print $1}' | xargs kubectl delete pod&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;pod "nso-0" deleted&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;pod "nso-1" deleted&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;pod "nso-2" deleted&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Deleting and spinning up the pods may take a while, watch the status&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;$ &lt;STRONG&gt;watch kubectl get pod -o=wide&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;When the NSO pods are up, let's check the config again&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;$ &lt;STRONG&gt;http_proxy="" curl -u admin:admin&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;STRONG&gt;http://&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;$NSO_IP&lt;/SPAN&gt;:8080/restconf/data/ha-test&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;lt;ha-test xmlns="&lt;/SPAN&gt;&lt;A style="font-family: Monaco; font-size: 12px; color: #333333;" href="http://example.com/ha-test" target="_blank"&gt;http://example.com/ha-test&lt;/A&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;"&amp;nbsp;&amp;nbsp;xmlns:ha-test="&lt;/SPAN&gt;&lt;A style="font-family: Monaco; font-size: 12px; color: #333333;" href="http://example.com/ha-test" target="_blank"&gt;http://example.com/ha-test&lt;/A&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;"&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;lt;count&amp;gt;3&amp;lt;/count&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&amp;lt;last-host&amp;gt;nso-1&amp;lt;/last-host&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;&amp;lt;/ha-test&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;All came up with &lt;SPAN style="font-weight: bold;"&gt;no data lost&lt;/SPAN&gt;.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-weight: bold;"&gt;Clean up Persistent Volume Claims&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;By default, when the NSO stateful set is deleted, k8s will not delete the volume claims. To clean up we can do this (&lt;SPAN style="font-weight: bold;"&gt;NOTE:&lt;/SPAN&gt; this will remove all PVCs):&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="box-sizing: border-box; padding: 8px; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; font-size: 12px; color: #333333; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: #fbfaf8; border: 1px solid rgba(0, 0, 0, 0.14902); -en-codeblock: true;"&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;$ kubectl get pvc | tail -n +2 | awk '{print $1}'&amp;nbsp;&amp;nbsp;| xargs kubectl delete pvc&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;persistentvolumeclaim "cdb-nso-0" deleted&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;persistentvolumeclaim "cdb-nso-1" deleted&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;persistentvolumeclaim "cdb-nso-2" deleted&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;persistentvolumeclaim "logs-nso-0" deleted&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;persistentvolumeclaim "logs-nso-1" deleted&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;persistentvolumeclaim "logs-nso-2" deleted&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;persistentvolumeclaim "state-nso-0" deleted&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;persistentvolumeclaim "state-nso-1" deleted&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN style="font-family: Monaco; font-size: 12px; color: #333333;"&gt;persistentvolumeclaim "state-nso-2" deleted&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;</description>
      <pubDate>Wed, 07 Nov 2018 17:31:44 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/nso-kubernetes-lab/ta-p/3741469</guid>
      <dc:creator>frjansso</dc:creator>
      <dc:date>2018-11-07T17:31:44Z</dc:date>
    </item>
    <item>
      <title>YDK python API documentation page can't be reached</title>
      <link>https://community.cisco.com/t5/networking-documents/ydk-python-api-documentation-page-can-t-be-reached/ta-p/3728429</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;&amp;nbsp;YDK python API documentation page &lt;A href="http://ydk.cisco.com/py/docs" target="_self"&gt;http://ydk.cisco.com/py/docs&lt;/A&gt;&amp;nbsp;can't be reached................&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Fri, 19 Oct 2018 06:50:17 GMT</pubDate>
      <guid>https://community.cisco.com/t5/networking-documents/ydk-python-api-documentation-page-can-t-be-reached/ta-p/3728429</guid>
      <dc:creator>vipaoqun@hotmail.com</dc:creator>
      <dc:date>2018-10-19T06:50:17Z</dc:date>
    </item>
    <item>
      <title>Finesse – Display CUIC report in a new tab in Finesse Agent using a Permalink</title>
      <link>https://community.cisco.com/t5/collaboration-documents/finesse-display-cuic-report-in-a-new-tab-in-finesse-agent-using/ta-p/3692211</link>
      <description>&lt;DIV class="lia-message-template-symptoms-zone"&gt;
&lt;H2&gt;Symptoms&lt;/H2&gt;
&lt;P&gt;Reqested to display a CUIC report in Finesse Agent Desktop&lt;/P&gt;
&lt;/DIV&gt;
&lt;DIV class="lia-message-template-diagnosis-zone"&gt;
&lt;H2&gt;Diagnosis&lt;/H2&gt;
&lt;P&gt;User wanted stats from a report they had created in CUIC to be displayed as a new tab in Finesse Agent Desktop.&amp;nbsp;&lt;/P&gt;
&lt;/DIV&gt;
&lt;DIV class="lia-message-template-solution-zone"&gt;
&lt;H2&gt;Solution&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;Attached is a solution I got to work using UCCX 10.6.1&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Tue, 21 Aug 2018 14:16:37 GMT</pubDate>
      <guid>https://community.cisco.com/t5/collaboration-documents/finesse-display-cuic-report-in-a-new-tab-in-finesse-agent-using/ta-p/3692211</guid>
      <dc:creator>mark.baker@midlandsco-op.com</dc:creator>
      <dc:date>2018-08-21T14:16:37Z</dc:date>
    </item>
    <item>
      <title>Cisco 5921 Reference System Getting Started v2</title>
      <link>https://community.cisco.com/t5/networking-documents/cisco-5921-reference-system-getting-started-v2/ta-p/3692028</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;This presentation discusses how to create a reference PC for integrating the Cisco 5921 Embedded Services Router.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 21 Aug 2018 09:21:42 GMT</pubDate>
      <guid>https://community.cisco.com/t5/networking-documents/cisco-5921-reference-system-getting-started-v2/ta-p/3692028</guid>
      <dc:creator>fcolumbu</dc:creator>
      <dc:date>2018-08-21T09:21:42Z</dc:date>
    </item>
    <item>
      <title>5921 ESR with VM as Reference System.pdf</title>
      <link>https://community.cisco.com/t5/networking-documents/5921-esr-with-vm-as-reference-system-pdf/ta-p/3692026</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;5921 ESR Reference System Operations in a Virtual Machine&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 21 Aug 2018 09:18:42 GMT</pubDate>
      <guid>https://community.cisco.com/t5/networking-documents/5921-esr-with-vm-as-reference-system-pdf/ta-p/3692026</guid>
      <dc:creator>fcolumbu</dc:creator>
      <dc:date>2018-08-21T09:18:42Z</dc:date>
    </item>
    <item>
      <title>Cisco 5921 ESR Demo Guide for dCloud</title>
      <link>https://community.cisco.com/t5/networking-documents/cisco-5921-esr-demo-guide-for-dcloud/ta-p/3692023</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;STRONG&gt;Introduction to the Cisco 5921 Embedded Services Router v1&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;The demonstration section walks the user through the highlights and features of this solution, to improve the end user’s familiarity with the Cisco 5921 ESR. No previous Linux experience is required.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;The purpose of the lab sections of this document is to enhance your skills as an integrator by giving a concrete example of how to qualify a Linux embedded core build for use with the Cisco 5921 Embedded Services Router (ESR), as well as, taking you through the install and troubleshooting of the Cisco 5921 ESR installation on that system.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Finally, we have included reference materials to provide additional information about this product.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;This demo will launch in mid October 2015 and will be listed in Internet of Everything and under Training and Labs.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Please visit &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://dcloud.cisco.com/" rel="nofollow" target="_blank"&gt;https://dcloud.cisco.com&lt;/A&gt;&lt;SPAN&gt; to learn more.&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 21 Aug 2018 09:14:44 GMT</pubDate>
      <guid>https://community.cisco.com/t5/networking-documents/cisco-5921-esr-demo-guide-for-dcloud/ta-p/3692023</guid>
      <dc:creator>fcolumbu</dc:creator>
      <dc:date>2018-08-21T09:14:44Z</dc:date>
    </item>
    <item>
      <title>Cisco dCloud lab -  CONFIGURING SITE TO SITE IPSEC VPN TUNNEL BETWEEN CISCO ROUTERS - c5921_ubuntu32_1 - View</title>
      <link>https://community.cisco.com/t5/networking-documents/cisco-dcloud-lab-configuring-site-to-site-ipsec-vpn-tunnel/ta-p/3692016</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;This configuration is used with “Introduction to the Cisco 5921 Embedded Services Router v1” in dCloud.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Derived from:&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;A class="jive-link-external-small" href="http://www.firewall.cx/cisco-technical-knowledgebase/cisco-routers/867-cisco-router-site-to-site-ipsec-vpn.html" rel="nofollow" target="_blank"&gt;http://www.firewall.cx/cisco-technical-knowledgebase/cisco-routers/867-cisco-router-site-to-site-ipsec-vpn.html&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Lines in &lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;BOLD ORANGE&lt;/STRONG&gt;&lt;/SPAN&gt; are changes made to the existing configuration to do the lab exercise.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;=~=~=~=~=~=~=~=~=~=~=~= PuTTY log 2015.11.21 23:08:52 =~=~=~=~=~=~=~=~=~=~=~=&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;c5921_ubuntu32_1#wr t&lt;/P&gt;
&lt;P&gt;Building configuration...&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Current configuration : 5442 bytes&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;! Last configuration change at 23:06:09 PST Sat Nov 21 2015&lt;/P&gt;
&lt;P&gt;! NVRAM config last updated at 23:06:13 PST Sat Nov 21 2015&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;version 15.5&lt;/P&gt;
&lt;P&gt;service timestamps debug datetime msec&lt;/P&gt;
&lt;P&gt;service timestamps log datetime msec&lt;/P&gt;
&lt;P&gt;no service password-encryption&lt;/P&gt;
&lt;P&gt;service call-home&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;hostname c5921_ubuntu32_1&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;boot-start-marker&lt;/P&gt;
&lt;P&gt;boot-end-marker&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;enable secret 5 $1$x.6O$4UZX1B5lYLF1DeOul7GiV1&lt;/P&gt;
&lt;P&gt;enable password cisco&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;no aaa new-model&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;bsd-client server url &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://cloudsso.cisco.com/as/token.oauth2" rel="nofollow" target="_blank"&gt;https://cloudsso.cisco.com/as/token.oauth2&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;clock timezone PST -8 0&lt;/P&gt;
&lt;P&gt;mmi polling-interval 60&lt;/P&gt;
&lt;P&gt;no mmi auto-configure&lt;/P&gt;
&lt;P&gt;no mmi pvc&lt;/P&gt;
&lt;P&gt;mmi snmp-timeout 180&lt;/P&gt;
&lt;P&gt;call-home&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt; ! if contact email address in call-home is configured as &lt;/SPAN&gt;&lt;A class="jive-link-email-small" href="mailto:sch-smart-licensing@cisco.com" target="_blank"&gt;sch-smart-licensing@cisco.com&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;! The email address configured in Cisco Smart License Portal will be used as contact email address to send SCH notifications&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt; contact-email-addr &lt;/SPAN&gt;&lt;A class="jive-link-email-small" href="mailto:sch-smart-licensing@cisco.com" target="_blank"&gt;sch-smart-licensing@cisco.com&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;profile "CiscoTAC-1"&lt;/P&gt;
&lt;P&gt;  active&lt;/P&gt;
&lt;P&gt;  destination transport-method http&lt;/P&gt;
&lt;P&gt;  no destination transport-method email&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;ip name-server 8.8.8.8&lt;/P&gt;
&lt;P&gt;ip cef&lt;/P&gt;
&lt;P&gt;no ipv6 cef&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;multilink bundle-name authenticated&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;crypto pki trustpoint SLA-TrustPoint&lt;/P&gt;
&lt;P&gt;enrollment pkcs12&lt;/P&gt;
&lt;P&gt;revocation-check crl&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;crypto pki certificate chain SLA-TrustPoint&lt;/P&gt;
&lt;P&gt;certificate ca 01&lt;/P&gt;
&lt;P&gt;  30820321 30820209 A0030201 02020101 300D0609 2A864886 F70D0101 0B050030&lt;/P&gt;
&lt;P&gt;  32310E30 0C060355 040A1305 43697363 6F312030 1E060355 04031317 43697363&lt;/P&gt;
&lt;P&gt;  6F204C69 63656E73 696E6720 526F6F74 20434130 1E170D31 33303533 30313934&lt;/P&gt;
&lt;P&gt;  3834375A 170D3338 30353330 31393438 34375A30 32310E30 0C060355 040A1305&lt;/P&gt;
&lt;P&gt;  43697363 6F312030 1E060355 04031317 43697363 6F204C69 63656E73 696E6720&lt;/P&gt;
&lt;P&gt;  526F6F74 20434130 82012230 0D06092A 864886F7 0D010101 05000382 010F0030&lt;/P&gt;
&lt;P&gt;  82010A02 82010100 A6BCBD96 131E05F7 145EA72C 2CD686E6 17222EA1 F1EFF64D&lt;/P&gt;
&lt;P&gt;  CBB4C798 212AA147 C655D8D7 9471380D 8711441E 1AAF071A 9CAE6388 8A38E520&lt;/P&gt;
&lt;P&gt;  1C394D78 462EF239 C659F715 B98C0A59 5BBB5CBD 0CFEBEA3 700A8BF7 D8F256EE&lt;/P&gt;
&lt;P&gt;  4AA4E80D DB6FD1C9 60B1FD18 FFC69C96 6FA68957 A2617DE7 104FDC5F EA2956AC&lt;/P&gt;
&lt;P&gt;  7390A3EB 2B5436AD C847A2C5 DAB553EB 69A9A535 58E9F3E3 C0BD23CF 58BD7188&lt;/P&gt;
&lt;P&gt;  68E69491 20F320E7 948E71D7 AE3BCC84 F10684C7 4BC8E00F 539BA42B 42C68BB7&lt;/P&gt;
&lt;P&gt;  C7479096 B4CB2D62 EA2F505D C7B062A4 6811D95B E8250FC4 5D5D5FB8 8F27D191&lt;/P&gt;
&lt;P&gt;  C55F0D76 61F9A4CD 3D992327 A8BB03BD 4E6D7069 7CBADF8B DF5F4368 95135E44&lt;/P&gt;
&lt;P&gt;  DFC7C6CF 04DD7FD1 02030100 01A34230 40300E06 03551D0F 0101FF04 04030201&lt;/P&gt;
&lt;P&gt;  06300F06 03551D13 0101FF04 05300301 01FF301D 0603551D 0E041604 1449DC85&lt;/P&gt;
&lt;P&gt;  4B3D31E5 1B3E6A17 606AF333 3D3B4C73 E8300D06 092A8648 86F70D01 010B0500&lt;/P&gt;
&lt;P&gt;  03820101 00507F24 D3932A66 86025D9F E838AE5C 6D4DF6B0 49631C78 240DA905&lt;/P&gt;
&lt;P&gt;  604EDCDE FF4FED2B 77FC460E CD636FDB DD44681E 3A5673AB 9093D3B1 6C9E3D8B&lt;/P&gt;
&lt;P&gt;  D98987BF E40CBD9E 1AECA0C2 2189BB5C 8FA85686 CD98B646 5575B146 8DFC66A8&lt;/P&gt;
&lt;P&gt;  467A3DF4 4D565700 6ADF0F0D CF835015 3C04FF7C 21E878AC 11BA9CD2 55A9232C&lt;/P&gt;
&lt;P&gt;  7CA7B7E6 C1AF74F6 152E99B7 B1FCF9BB E973DE7F 5BDDEB86 C71E3B49 1765308B&lt;/P&gt;
&lt;P&gt;  5FB0DA06 B92AFE7F 494E8A9E 07B85737 F3A58BE1 1A48A229 C37C1E69 39F08678&lt;/P&gt;
&lt;P&gt;  80DDCD16 D6BACECA EEBC7CF9 8428787B 35202CDC 60E4616A B623CDBD 230E3AFB&lt;/P&gt;
&lt;P&gt;  418616A9 4093E049 4D10AB75 27E86F73 932E35B5 8862FDAE 0275156F 719BB2F0&lt;/P&gt;
&lt;P&gt;  D697DF7F 28&lt;/P&gt;
&lt;P&gt;      quit&lt;/P&gt;
&lt;P&gt;license udi pid CISCO5921-K9 sn 91J81443B9I&lt;/P&gt;
&lt;P&gt;license platform throughput level c5921-x86-level3&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;redundancy&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="; color: #ff9900;"&gt;&lt;STRONG&gt;crypto isakmp policy 1&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;encr 3des&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;hash md5&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;authentication pre-share&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;group 2&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;crypto isakmp key cisco123 address 172.23.1.121&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;!&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;!&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;crypto ipsec transform-set myset esp-3des esp-md5-hmac&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;mode tunnel&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;!&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;!&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;!&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;crypto map CMAP 10 ipsec-isakmp&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;set peer 172.23.1.121&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;set transform-set myset&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;match address VPN-TRAFFIC&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="; color: #ff9900;"&gt;&lt;STRONG&gt;!&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;interface Loopback0&lt;/P&gt;
&lt;P&gt;ip address 10.0.0.120 255.255.255.255&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;interface Loopback1&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;description Inside interface&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;ip address 10.1.1.1 255.255.255.0&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;ip nat inside&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;ip virtual-reassembly in&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;interface Ethernet0/0&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;description Outside interface&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;ip address 172.23.1.120 255.255.255.0&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;ip nat outside&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;ip virtual-reassembly in&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;duplex full&lt;/P&gt;
&lt;P&gt;speed 1000&lt;/P&gt;
&lt;P&gt;no mop enabled&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;crypto map CMAP&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;interface Ethernet0/1&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;ip address 172.23.2.1 255.255.255.0&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;shutdown&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;duplex full&lt;/P&gt;
&lt;P&gt;speed 1000&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;interface Ethernet0/2&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;ip address 172.23.3.1 255.255.255.0&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;shutdown&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;duplex full&lt;/P&gt;
&lt;P&gt;speed 1000&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;interface Ethernet0/3&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;ip address 172.23.4.1 255.255.255.0&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;shutdown&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;duplex full&lt;/P&gt;
&lt;P&gt;speed 1000&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;interface Ethernet1/0&lt;/P&gt;
&lt;P&gt;description TAP interface&lt;/P&gt;
&lt;P&gt;ip address 198.18.134.131 255.255.192.0&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;interface Ethernet1/1&lt;/P&gt;
&lt;P&gt;no ip address&lt;/P&gt;
&lt;P&gt;shutdown&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;interface Ethernet1/2&lt;/P&gt;
&lt;P&gt;no ip address&lt;/P&gt;
&lt;P&gt;shutdown&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;interface Ethernet1/3&lt;/P&gt;
&lt;P&gt;no ip address&lt;/P&gt;
&lt;P&gt;shutdown&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;router ospf 100&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;network 10.0.0.0 0.255.255.255 area 0&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;network 172.23.1.0 0.0.0.255 area 0&lt;/P&gt;
&lt;P&gt;network 172.23.2.0 0.0.0.255 area 0&lt;/P&gt;
&lt;P&gt;network 172.23.3.0 0.0.0.255 area 0&lt;/P&gt;
&lt;P&gt;network 172.23.4.0 0.0.0.255 area 0&lt;/P&gt;
&lt;P&gt;network 198.18.128.0 0.0.63.255 area 0&lt;/P&gt;
&lt;P&gt;default-information originate&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;ip forward-protocol nd&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;no ip http server&lt;/P&gt;
&lt;P&gt;no ip http secure-server&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;ip nat inside source list 100 interface Loopback1 overload&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;ip route 0.0.0.0 0.0.0.0 198.18.134.120&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;ip access-list extended VPN-TRAFFIC&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;permit ip 10.1.1.0 0.0.0.255 10.2.2.0 0.0.0.255&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;snmp-server community public RO&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;access-list 100 remark -=[Define NAT Service]=-&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;access-list 100 deny   ip 10.1.1.0 0.0.0.255 10.2.2.0 0.0.0.255&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;access-list 100 permit ip 10.2.2.0 0.0.0.255 any&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;!&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;control-plane&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;line con 0&lt;/P&gt;
&lt;P&gt;logging synchronous&lt;/P&gt;
&lt;P&gt;line aux 0&lt;/P&gt;
&lt;P&gt;line vty 0 4&lt;/P&gt;
&lt;P&gt;password cisco&lt;/P&gt;
&lt;P&gt;login&lt;/P&gt;
&lt;P&gt;transport input all&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;ntp server 198.18.134.132&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;end&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;c5921_ubuntu32_1#&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;show crypto session&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Crypto session current status&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Interface: Ethernet0/0&lt;/P&gt;
&lt;P&gt;Session status: UP-ACTIVE&lt;/P&gt;
&lt;P&gt;Peer: 172.23.1.121 port 500&lt;/P&gt;
&lt;P&gt;  Session ID: 0&lt;/P&gt;
&lt;P&gt;  IKEv1 SA: local 172.23.1.120/500 remote 172.23.1.121/500 Active&lt;/P&gt;
&lt;P&gt;  IPSEC FLOW: permit ip 10.1.1.0/255.255.255.0 10.2.2.0/255.255.255.0&lt;/P&gt;
&lt;P&gt;        Active SAs: 4, origin: crypto map&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;c5921_ubuntu32_1#&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;show crypto isakmp sa detail&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Codes: C - IKE configuration mode, D - Dead Peer Detection&lt;/P&gt;
&lt;P&gt;       K - Keepalives, N - NAT-traversal&lt;/P&gt;
&lt;P&gt;       T - cTCP encapsulation, X - IKE Extended Authentication&lt;/P&gt;
&lt;P&gt;       psk - Preshared key, rsig - RSA signature&lt;/P&gt;
&lt;P&gt;       renc - RSA encryption&lt;/P&gt;
&lt;P&gt;IPv4 Crypto ISAKMP SA&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;C-id  Local           Remote          I-VRF  Status Encr Hash   Auth DH Lifetime Cap.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;1001  172.23.1.120    172.23.1.121           ACTIVE aes  md5    psk  2  23:08:57&lt;/P&gt;
&lt;P&gt;       Engine-id:Conn-id =  SW:1&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;IPv6 Crypto ISAKMP SA&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;c5921_ubuntu32_1# &lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;show crypto ipsec sa&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;interface: Ethernet0/0&lt;/P&gt;
&lt;P&gt;    Crypto map tag: CMAP, local addr 172.23.1.120&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;   protected vrf: (none)&lt;/P&gt;
&lt;P&gt;   local  ident (addr/mask/prot/port): (10.1.1.0/255.255.255.0/0/0)&lt;/P&gt;
&lt;P&gt;   remote ident (addr/mask/prot/port): (10.2.2.0/255.255.255.0/0/0)&lt;/P&gt;
&lt;P&gt;   current_peer 172.23.1.121 port 500&lt;/P&gt;
&lt;P&gt;     PERMIT, flags={origin_is_acl,}&lt;/P&gt;
&lt;P&gt;    #pkts encaps: 0, #pkts encrypt: 0, #pkts digest: 0&lt;/P&gt;
&lt;P&gt;    #pkts decaps: 14, #pkts decrypt: 14, #pkts verify: 14&lt;/P&gt;
&lt;P&gt;    #pkts compressed: 0, #pkts decompressed: 0&lt;/P&gt;
&lt;P&gt;    #pkts not compressed: 0, #pkts compr. failed: 0&lt;/P&gt;
&lt;P&gt;    #pkts not decompressed: 0, #pkts decompress failed: 0&lt;/P&gt;
&lt;P&gt;    #send errors 0, #recv errors 0&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;     local crypto endpt.: 172.23.1.120, remote crypto endpt.: 172.23.1.121&lt;/P&gt;
&lt;P&gt;     plaintext mtu 1390, path mtu 1500, ip mtu 1500, ip mtu idb Ethernet0/0&lt;/P&gt;
&lt;P&gt;     current outbound spi: 0x9FF24064(2683453540)&lt;/P&gt;
&lt;P&gt;     PFS (Y/N): N, DH group: none&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;     inbound esp sas:&lt;/P&gt;
&lt;P&gt;      spi: 0x1C810439(478217273)&lt;/P&gt;
&lt;P&gt;        transform: esp-256-aes esp-sha512-hmac ,&lt;/P&gt;
&lt;P&gt;        in use settings ={Tunnel, }&lt;/P&gt;
&lt;P&gt;        conn id: 1, flow_id: SW:1, sibling_flags 80000070, crypto map: CMAP&lt;/P&gt;
&lt;P&gt;        sa timing: remaining key lifetime (k/sec): (4282818/527)&lt;/P&gt;
&lt;P&gt;        IV size: 16 bytes&lt;/P&gt;
&lt;P&gt;        replay detection support: Y&lt;/P&gt;
&lt;P&gt;        Status: ACTIVE(ACTIVE)&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;     inbound ah sas:&lt;/P&gt;
&lt;P&gt;      spi: 0x87BD5EC6(2277334726)&lt;/P&gt;
&lt;P&gt;        transform: ah-sha-hmac ,&lt;/P&gt;
&lt;P&gt;        in use settings ={Tunnel, }&lt;/P&gt;
&lt;P&gt;        conn id: 1, flow_id: SW:1, sibling_flags 80000070, crypto map: CMAP&lt;/P&gt;
&lt;P&gt;        sa timing: remaining key lifetime (k/sec): (4282818/527)&lt;/P&gt;
&lt;P&gt;        replay detection support: Y&lt;/P&gt;
&lt;P&gt;        Status: ACTIVE(ACTIVE)&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;     inbound pcp sas:&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;     outbound esp sas:&lt;/P&gt;
&lt;P&gt;      spi: 0x668F64B(107542091)&lt;/P&gt;
&lt;P&gt;        transform: esp-256-aes esp-sha512-hmac ,&lt;/P&gt;
&lt;P&gt;        in use settings ={Tunnel, }&lt;/P&gt;
&lt;P&gt;        conn id: 2, flow_id: SW:2, sibling_flags 80000070, crypto map: CMAP&lt;/P&gt;
&lt;P&gt;        sa timing: remaining key lifetime (k/sec): (4282821/527)&lt;/P&gt;
&lt;P&gt;        IV size: 16 bytes&lt;/P&gt;
&lt;P&gt;        replay detection support: Y&lt;/P&gt;
&lt;P&gt;        Status: ACTIVE(ACTIVE)&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;     outbound ah sas:&lt;/P&gt;
&lt;P&gt;      spi: 0x9FF24064(2683453540)&lt;/P&gt;
&lt;P&gt;        transform: ah-sha-hmac ,&lt;/P&gt;
&lt;P&gt;        in use settings ={Tunnel, }&lt;/P&gt;
&lt;P&gt;        conn id: 2, flow_id: SW:2, sibling_flags 80000070, crypto map: CMAP&lt;/P&gt;
&lt;P&gt;        sa timing: remaining key lifetime (k/sec): (4282821/527)&lt;/P&gt;
&lt;P&gt;        replay detection support: Y&lt;/P&gt;
&lt;P&gt;        Status: ACTIVE(ACTIVE)&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;     outbound pcp sas:&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;c5921_ubuntu32_1#&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;sh ver&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Cisco IOS Software, C5921 Software (C5921_I86-UNIVERSALK9-M), Version 15.5(2)T, RELEASE SOFTWARE (fc1)&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Technical Support: &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="http://www.cisco.com/techsupport" rel="nofollow" target="_blank"&gt;http://www.cisco.com/techsupport&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Copyright (c) 1986-2015 by Cisco Systems, Inc.&lt;/P&gt;
&lt;P&gt;Compiled Wed 25-Mar-15 15:49 by prod_rel_team&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;ROM: Bootstrap program is Linux&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;c5921_ubuntu32_1 uptime is 1 hour, 6 minutes&lt;/P&gt;
&lt;P&gt;System returned to ROM by reload at 0&lt;/P&gt;
&lt;P&gt;System restarted at 22:04:40 PST Sat Nov 21 2015&lt;/P&gt;
&lt;P&gt;System image file is "unix:./c5921i86-universalk9-ms.SPA"&lt;/P&gt;
&lt;P&gt;Last reload reason: Unknown reason&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;This product contains cryptographic features and is subject to United&lt;/P&gt;
&lt;P&gt;States and local country laws governing import, export, transfer and&lt;/P&gt;
&lt;P&gt;use. Delivery of Cisco cryptographic products does not imply&lt;/P&gt;
&lt;P&gt;third-party authority to import, export, distribute or use encryption.&lt;/P&gt;
&lt;P&gt;Importers, exporters, distributors and users are responsible for&lt;/P&gt;
&lt;P&gt;compliance with U.S. and local country laws. By using this product you&lt;/P&gt;
&lt;P&gt;agree to comply with applicable laws and regulations. If you are unable&lt;/P&gt;
&lt;P&gt;to comply with U.S. and local laws, return this product immediately.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;A summary of U.S. laws governing Cisco cryptographic products may be found at:&lt;/P&gt;
&lt;P&gt;&lt;A class="jive-link-external-small" href="http://www.cisco.com/wwl/export/crypto/tool/stqrg.html" rel="nofollow" target="_blank"&gt;http://www.cisco.com/wwl/export/crypto/tool/stqrg.html&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;If you require further assistance please contact us by sending email to&lt;/P&gt;
&lt;P&gt;&lt;A class="jive-link-email-small" href="mailto:export@cisco.com" target="_blank"&gt;export@cisco.com&lt;/A&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Cisco C5921 (Intel-x86) processor with 381079K bytes of memory.&lt;/P&gt;
&lt;P&gt;Processor board ID 100&lt;/P&gt;
&lt;P&gt;8 Ethernet interfaces&lt;/P&gt;
&lt;P&gt;512K bytes of NVRAM.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;License Info:&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;License UDI:&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;-------------------------------------------------&lt;/P&gt;
&lt;P&gt;Device#      PID            SN&lt;/P&gt;
&lt;P&gt;-------------------------------------------------&lt;/P&gt;
&lt;P&gt;*0        CISCO5921-K9          91J81443B9I&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Packet forwarding: Enabled&lt;/P&gt;
&lt;P&gt;Enforced traffic rate: 50 Mbps&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Configuration register is 0x0&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;c5921_ubuntu32_1#&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 21 Aug 2018 09:06:12 GMT</pubDate>
      <guid>https://community.cisco.com/t5/networking-documents/cisco-dcloud-lab-configuring-site-to-site-ipsec-vpn-tunnel/ta-p/3692016</guid>
      <dc:creator>fcolumbu</dc:creator>
      <dc:date>2018-08-21T09:06:12Z</dc:date>
    </item>
    <item>
      <title>Cisco dCloud lab -  CONFIGURING SITE TO SITE IPSEC VPN TUNNEL BETWEEN CISCO ROUTERS - c5921_ubuntu32_2 - View</title>
      <link>https://community.cisco.com/t5/networking-documents/cisco-dcloud-lab-configuring-site-to-site-ipsec-vpn-tunnel/ta-p/3692014</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;This configuration is used with “Introduction to the Cisco 5921 Embedded Services Router v1” in dCloud.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Derived from:&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;A class="jive-link-external-small" href="http://www.firewall.cx/cisco-technical-knowledgebase/cisco-routers/867-cisco-router-site-to-site-ipsec-vpn.html" rel="nofollow" target="_blank"&gt;http://www.firewall.cx/cisco-technical-knowledgebase/cisco-routers/867-cisco-router-site-to-site-ipsec-vpn.html&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: arial; font-size: 12px; background-color: #f0f9fe;"&gt;Lines in &lt;/SPAN&gt;&lt;SPAN style="font-size: 12px; font-family: arial; color: #ff9900; background-color: #f0f9fe;"&gt;&lt;STRONG&gt;BOLD ORANGE&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #3d3d3d; font-family: arial; font-size: 12px; background-color: #f0f9fe;"&gt; are changes made to the existing configuration to do the lab exercise.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;=~=~=~=~=~=~=~=~=~=~=~= PuTTY log 2015.11.21 23:16:28 =~=~=~=~=~=~=~=~=~=~=~=&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;c5921_ubuntu32_2#wr t&lt;/P&gt;
&lt;P&gt;Building configuration...&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Current configuration : 5052 bytes&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;! Last configuration change at 22:46:05 PST Sat Nov 21 2015&lt;/P&gt;
&lt;P&gt;! NVRAM config last updated at 22:49:44 PST Sat Nov 21 2015&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;version 15.5&lt;/P&gt;
&lt;P&gt;service timestamps debug datetime msec&lt;/P&gt;
&lt;P&gt;service timestamps log datetime msec&lt;/P&gt;
&lt;P&gt;no service password-encryption&lt;/P&gt;
&lt;P&gt;service call-home&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;hostname c5921_ubuntu32_2&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;boot-start-marker&lt;/P&gt;
&lt;P&gt;boot-end-marker&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;enable secret 5 $1$x.6O$4UZX1B5lYLF1DeOul7GiV1&lt;/P&gt;
&lt;P&gt;enable password cisco&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;no aaa new-model&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;bsd-client server url &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://cloudsso.cisco.com/as/token.oauth2" rel="nofollow" target="_blank"&gt;https://cloudsso.cisco.com/as/token.oauth2&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;clock timezone PST -8 0&lt;/P&gt;
&lt;P&gt;mmi polling-interval 60&lt;/P&gt;
&lt;P&gt;no mmi auto-configure&lt;/P&gt;
&lt;P&gt;no mmi pvc&lt;/P&gt;
&lt;P&gt;mmi snmp-timeout 180&lt;/P&gt;
&lt;P&gt;call-home&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt; ! if contact email address in call-home is configured as &lt;/SPAN&gt;&lt;A class="jive-link-email-small" href="mailto:sch-smart-licensing@cisco.com" target="_blank"&gt;sch-smart-licensing@cisco.com&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;! The email address configured in Cisco Smart License Portal will be used as contact email address to send SCH notifications&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt; contact-email-addr &lt;/SPAN&gt;&lt;A class="jive-link-email-small" href="mailto:sch-smart-licensing@cisco.com" target="_blank"&gt;sch-smart-licensing@cisco.com&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;profile "CiscoTAC-1"&lt;/P&gt;
&lt;P&gt;  active&lt;/P&gt;
&lt;P&gt;  destination transport-method http&lt;/P&gt;
&lt;P&gt;  no destination transport-method email&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;ip name-server 8.8.8.8&lt;/P&gt;
&lt;P&gt;ip cef&lt;/P&gt;
&lt;P&gt;no ipv6 cef&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;multilink bundle-name authenticated&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;crypto pki trustpoint SLA-TrustPoint&lt;/P&gt;
&lt;P&gt;enrollment pkcs12&lt;/P&gt;
&lt;P&gt;revocation-check crl&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;crypto pki certificate chain SLA-TrustPoint&lt;/P&gt;
&lt;P&gt;certificate ca 01&lt;/P&gt;
&lt;P&gt;  30820321 30820209 A0030201 02020101 300D0609 2A864886 F70D0101 0B050030&lt;/P&gt;
&lt;P&gt;  32310E30 0C060355 040A1305 43697363 6F312030 1E060355 04031317 43697363&lt;/P&gt;
&lt;P&gt;  6F204C69 63656E73 696E6720 526F6F74 20434130 1E170D31 33303533 30313934&lt;/P&gt;
&lt;P&gt;  3834375A 170D3338 30353330 31393438 34375A30 32310E30 0C060355 040A1305&lt;/P&gt;
&lt;P&gt;  43697363 6F312030 1E060355 04031317 43697363 6F204C69 63656E73 696E6720&lt;/P&gt;
&lt;P&gt;  526F6F74 20434130 82012230 0D06092A 864886F7 0D010101 05000382 010F0030&lt;/P&gt;
&lt;P&gt;  82010A02 82010100 A6BCBD96 131E05F7 145EA72C 2CD686E6 17222EA1 F1EFF64D&lt;/P&gt;
&lt;P&gt;  CBB4C798 212AA147 C655D8D7 9471380D 8711441E 1AAF071A 9CAE6388 8A38E520&lt;/P&gt;
&lt;P&gt;  1C394D78 462EF239 C659F715 B98C0A59 5BBB5CBD 0CFEBEA3 700A8BF7 D8F256EE&lt;/P&gt;
&lt;P&gt;  4AA4E80D DB6FD1C9 60B1FD18 FFC69C96 6FA68957 A2617DE7 104FDC5F EA2956AC&lt;/P&gt;
&lt;P&gt;  7390A3EB 2B5436AD C847A2C5 DAB553EB 69A9A535 58E9F3E3 C0BD23CF 58BD7188&lt;/P&gt;
&lt;P&gt;  68E69491 20F320E7 948E71D7 AE3BCC84 F10684C7 4BC8E00F 539BA42B 42C68BB7&lt;/P&gt;
&lt;P&gt;  C7479096 B4CB2D62 EA2F505D C7B062A4 6811D95B E8250FC4 5D5D5FB8 8F27D191&lt;/P&gt;
&lt;P&gt;  C55F0D76 61F9A4CD 3D992327 A8BB03BD 4E6D7069 7CBADF8B DF5F4368 95135E44&lt;/P&gt;
&lt;P&gt;  DFC7C6CF 04DD7FD1 02030100 01A34230 40300E06 03551D0F 0101FF04 04030201&lt;/P&gt;
&lt;P&gt;  06300F06 03551D13 0101FF04 05300301 01FF301D 0603551D 0E041604 1449DC85&lt;/P&gt;
&lt;P&gt;  4B3D31E5 1B3E6A17 606AF333 3D3B4C73 E8300D06 092A8648 86F70D01 010B0500&lt;/P&gt;
&lt;P&gt;  03820101 00507F24 D3932A66 86025D9F E838AE5C 6D4DF6B0 49631C78 240DA905&lt;/P&gt;
&lt;P&gt;  604EDCDE FF4FED2B 77FC460E CD636FDB DD44681E 3A5673AB 9093D3B1 6C9E3D8B&lt;/P&gt;
&lt;P&gt;  D98987BF E40CBD9E 1AECA0C2 2189BB5C 8FA85686 CD98B646 5575B146 8DFC66A8&lt;/P&gt;
&lt;P&gt;  467A3DF4 4D565700 6ADF0F0D CF835015 3C04FF7C 21E878AC 11BA9CD2 55A9232C&lt;/P&gt;
&lt;P&gt;  7CA7B7E6 C1AF74F6 152E99B7 B1FCF9BB E973DE7F 5BDDEB86 C71E3B49 1765308B&lt;/P&gt;
&lt;P&gt;  5FB0DA06 B92AFE7F 494E8A9E 07B85737 F3A58BE1 1A48A229 C37C1E69 39F08678&lt;/P&gt;
&lt;P&gt;  80DDCD16 D6BACECA EEBC7CF9 8428787B 35202CDC 60E4616A B623CDBD 230E3AFB&lt;/P&gt;
&lt;P&gt;  418616A9 4093E049 4D10AB75 27E86F73 932E35B5 8862FDAE 0275156F 719BB2F0&lt;/P&gt;
&lt;P&gt;  D697DF7F 28&lt;/P&gt;
&lt;P&gt;  quit&lt;/P&gt;
&lt;P&gt;license udi pid CISCO5921-K9 sn 95O9000IL4J&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;license platform throughput level c5921-x86-level3&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;redundancy&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;crypto isakmp policy 1&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;encr 3des&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;hash md5&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;authentication pre-share&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;group 2&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;crypto isakmp key cisco123 address 172.23.1.120&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;!&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;!&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;crypto ipsec transform-set myset esp-3des esp-md5-hmac&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;mode tunnel&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;!&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;!&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;!&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;crypto map CMAP 10 ipsec-isakmp&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;set peer 172.23.1.120&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;set transform-set myset&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;match address VPN-TRAFFIC&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;!&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;interface Loopback0&lt;/P&gt;
&lt;P&gt;ip address 10.0.0.121 255.255.255.255&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;interface Loopback1&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;description Inside interface&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;ip address 10.2.2.2 255.255.255.0&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;ip nat inside&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;ip virtual-reassembly in&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;i&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;n&lt;/STRONG&gt;&lt;/SPAN&gt;terface Ethernet0/0&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;description Outside interface&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;ip address 172.23.1.121 255.255.255.0&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;ip nat outside&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;ip virtual-reassembly in&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;duplex full&lt;/P&gt;
&lt;P&gt;speed 1000&lt;/P&gt;
&lt;P&gt;no mop enabled&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;crypto map CMAP&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;interface Ethernet0/1&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;ip address 172.23.2.2 255.255.255.0&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;shutdown&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;duplex full&lt;/P&gt;
&lt;P&gt;speed 1000&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;interface Ethernet0/2&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;ip address 172.23.3.2 255.255.255.0&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;shutdown&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;duplex full&lt;/P&gt;
&lt;P&gt;speed 1000&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;!&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;interface Ethernet0/3&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;ip address 172.23.4.2 255.255.255.0&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;shutdown&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;duplex full&lt;/P&gt;
&lt;P&gt;speed 1000&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;router ospf 100&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;network 10.0.0.0 0.255.255.255 area 0&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;network 172.23.1.0 0.0.0.255 area 0&lt;/P&gt;
&lt;P&gt;network 172.23.2.0 0.0.0.255 area 0&lt;/P&gt;
&lt;P&gt;network 172.23.3.0 0.0.0.255 area 0&lt;/P&gt;
&lt;P&gt;network 172.23.4.0 0.0.0.255 area 0&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;ip forward-protocol nd&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;no ip http server&lt;/P&gt;
&lt;P&gt;no ip http secure-server&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;ip nat inside source list 100 interface Loopback1 overload&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;ip access-list extended VPN-TRAFFIC&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;permit ip 10.2.2.0 0.0.0.255 10.1.1.0 0.0.0.255&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;snmp-server community public RO&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;access-list 100 remark -=[Define NAT Service]=-&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;access-list 100 deny   ip 10.2.2.0 0.0.0.255 10.1.1.0 0.0.0.255&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;access-list 100 permit ip 10.1.1.0 0.0.0.255 any&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;control-plane&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;line con 0&lt;/P&gt;
&lt;P&gt;logging synchronous&lt;/P&gt;
&lt;P&gt;line aux 0&lt;/P&gt;
&lt;P&gt;line vty 0 4&lt;/P&gt;
&lt;P&gt;password cisco&lt;/P&gt;
&lt;P&gt;login&lt;/P&gt;
&lt;P&gt;transport input all&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;ntp server 198.18.134.132&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;end&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;c5921_ubuntu32_2#&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;show crypto session&lt;/STRONG&gt;&lt;/SPAN&gt;  &lt;/P&gt;
&lt;P&gt;Crypto session current status&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Interface: Ethernet0/0&lt;/P&gt;
&lt;P&gt;Session status: UP-ACTIVE&lt;/P&gt;
&lt;P&gt;Peer: 172.23.1.120 port 500&lt;/P&gt;
&lt;P&gt;  Session ID: 0&lt;/P&gt;
&lt;P&gt;  IKEv1 SA: local 172.23.1.121/500 remote 172.23.1.120/500 Active&lt;/P&gt;
&lt;P&gt;  IPSEC FLOW: permit ip 10.2.2.0/255.255.255.0 10.1.1.0/255.255.255.0&lt;/P&gt;
&lt;P&gt;        Active SAs: 2, origin: crypto map&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;c5921_ubuntu32_2#&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;show crypto isakmp sa detail&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Codes: C - IKE configuration mode, D - Dead Peer Detection&lt;/P&gt;
&lt;P&gt;       K - Keepalives, N - NAT-traversal&lt;/P&gt;
&lt;P&gt;       T - cTCP encapsulation, X - IKE Extended Authentication&lt;/P&gt;
&lt;P&gt;       psk - Preshared key, rsig - RSA signature&lt;/P&gt;
&lt;P&gt;       renc - RSA encryption&lt;/P&gt;
&lt;P&gt;IPv4 Crypto ISAKMP SA&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;C-id  Local           Remote          I-VRF  Status Encr Hash   Auth DH Lifetime Cap.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;1001  172.23.1.121    172.23.1.120           ACTIVE aes  md5    psk  2  23:01:28&lt;/P&gt;
&lt;P&gt;       Engine-id:Conn-id =  SW:1&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;IPv6 Crypto ISAKMP SA&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;c5921_ubuntu32_2#&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;show crypto  ipsec sa&lt;/STRONG&gt;&lt;/SPAN&gt;                   &lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;interface: Ethernet0/0&lt;/P&gt;
&lt;P&gt;    Crypto map tag: CMAP, local addr 172.23.1.121&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;   protected vrf: (none)&lt;/P&gt;
&lt;P&gt;   local  ident (addr/mask/prot/port): (10.2.2.0/255.255.255.0/0/0)&lt;/P&gt;
&lt;P&gt;   remote ident (addr/mask/prot/port): (10.1.1.0/255.255.255.0/0/0)&lt;/P&gt;
&lt;P&gt;   current_peer 172.23.1.120 port 500&lt;/P&gt;
&lt;P&gt;     PERMIT, flags={origin_is_acl,}&lt;/P&gt;
&lt;P&gt;    #pkts encaps: 14, #pkts encrypt: 14, #pkts digest: 14&lt;/P&gt;
&lt;P&gt;    #pkts decaps: 0, #pkts decrypt: 0, #pkts verify: 0&lt;/P&gt;
&lt;P&gt;    #pkts compressed: 0, #pkts decompressed: 0&lt;/P&gt;
&lt;P&gt;    #pkts not compressed: 0, #pkts compr. failed: 0&lt;/P&gt;
&lt;P&gt;    #pkts not decompressed: 0, #pkts decompress failed: 0&lt;/P&gt;
&lt;P&gt;    #send errors 0, #recv errors 0&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;     local crypto endpt.: 172.23.1.121, remote crypto endpt.: 172.23.1.120&lt;/P&gt;
&lt;P&gt;     plaintext mtu 1446, path mtu 1500, ip mtu 1500, ip mtu idb Ethernet0/0&lt;/P&gt;
&lt;P&gt;     current outbound spi: 0x2AB1BE70(716291696)&lt;/P&gt;
&lt;P&gt;     PFS (Y/N): N, DH group: none&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;     inbound esp sas:&lt;/P&gt;
&lt;P&gt;      spi: 0xB0387DB6(2956492214)&lt;/P&gt;
&lt;P&gt;        transform: esp-3des esp-md5-hmac ,&lt;/P&gt;
&lt;P&gt;        in use settings ={Tunnel, }&lt;/P&gt;
&lt;P&gt;        conn id: 3, flow_id: SW:3, sibling_flags 80000040, crypto map: CMAP&lt;/P&gt;
&lt;P&gt;        sa timing: remaining key lifetime (k/sec): (4348059/3470)&lt;/P&gt;
&lt;P&gt;        IV size: 8 bytes&lt;/P&gt;
&lt;P&gt;        replay detection support: Y&lt;/P&gt;
&lt;P&gt;        Status: ACTIVE(ACTIVE)&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;     inbound ah sas:&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;     inbound pcp sas:&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;     outbound esp sas:&lt;/P&gt;
&lt;P&gt;      spi: 0x2AB1BE70(716291696)&lt;/P&gt;
&lt;P&gt;        transform: esp-3des esp-md5-hmac ,&lt;/P&gt;
&lt;P&gt;        in use settings ={Tunnel, }&lt;/P&gt;
&lt;P&gt;        conn id: 4, flow_id: SW:4, sibling_flags 80000040, crypto map: CMAP&lt;/P&gt;
&lt;P&gt;        sa timing: remaining key lifetime (k/sec): (4348059/3470)&lt;/P&gt;
&lt;P&gt;        IV size: 8 bytes&lt;/P&gt;
&lt;P&gt;        replay detection support: Y&lt;/P&gt;
&lt;P&gt;        Status: ACTIVE(ACTIVE)&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;     outbound ah sas:&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;     outbound pcp sas:&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;c5921_ubuntu32_2#&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;show ver&lt;/STRONG&gt;&lt;/SPAN&gt;      &lt;/P&gt;
&lt;P&gt;Cisco IOS Software, C5921 Software (C5921_I86-UNIVERSALK9-M), Version 15.5(2)T, RELEASE SOFTWARE (fc1)&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Technical Support: &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="http://www.cisco.com/techsupport" rel="nofollow" target="_blank"&gt;http://www.cisco.com/techsupport&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Copyright (c) 1986-2015 by Cisco Systems, Inc.&lt;/P&gt;
&lt;P&gt;Compiled Wed 25-Mar-15 15:49 by prod_rel_team&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;ROM: Bootstrap program is Linux&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;c5921_ubuntu32_2 uptime is 1 hour, 12 minutes&lt;/P&gt;
&lt;P&gt;System returned to ROM by reload at 0&lt;/P&gt;
&lt;P&gt;System restarted at 22:04:33 PST Sat Nov 21 2015&lt;/P&gt;
&lt;P&gt;System image file is "unix:./c5921i86-universalk9-ms.SPA"&lt;/P&gt;
&lt;P&gt;Last reload reason: Unknown reason&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;This product contains cryptographic features and is subject to United&lt;/P&gt;
&lt;P&gt;States and local country laws governing import, export, transfer and&lt;/P&gt;
&lt;P&gt;use. Delivery of Cisco cryptographic products does not imply&lt;/P&gt;
&lt;P&gt;third-party authority to import, export, distribute or use encryption.&lt;/P&gt;
&lt;P&gt;Importers, exporters, distributors and users are responsible for&lt;/P&gt;
&lt;P&gt;compliance with U.S. and local country laws. By using this product you&lt;/P&gt;
&lt;P&gt;agree to comply with applicable laws and regulations. If you are unable&lt;/P&gt;
&lt;P&gt;to comply with U.S. and local laws, return this product immediately.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;A summary of U.S. laws governing Cisco cryptographic products may be found at:&lt;/P&gt;
&lt;P&gt;&lt;A class="jive-link-external-small" href="http://www.cisco.com/wwl/export/crypto/tool/stqrg.html" rel="nofollow" target="_blank"&gt;http://www.cisco.com/wwl/export/crypto/tool/stqrg.html&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;If you require further assistance please contact us by sending email to&lt;/P&gt;
&lt;P&gt;&lt;A class="jive-link-email-small" href="mailto:export@cisco.com" target="_blank"&gt;export@cisco.com&lt;/A&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Cisco C5921 (Intel-x86) processor with 381075K bytes of memory.&lt;/P&gt;
&lt;P&gt;Processor board ID 100&lt;/P&gt;
&lt;P&gt;4 Ethernet interfaces&lt;/P&gt;
&lt;P&gt;512K bytes of NVRAM.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;License Info:&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;License UDI:&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;-------------------------------------------------&lt;/P&gt;
&lt;P&gt;Device#  PIDSN&lt;/P&gt;
&lt;P&gt;-------------------------------------------------&lt;/P&gt;
&lt;P&gt;*0    CISCO5921-K9          95O9000IL4J&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Packet forwarding: Enabled&lt;/P&gt;
&lt;P&gt;Enforced traffic rate: 50 Mbps&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Configuration register is 0x0&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;c5921_ubuntu32_2#&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 21 Aug 2018 09:04:19 GMT</pubDate>
      <guid>https://community.cisco.com/t5/networking-documents/cisco-dcloud-lab-configuring-site-to-site-ipsec-vpn-tunnel/ta-p/3692014</guid>
      <dc:creator>fcolumbu</dc:creator>
      <dc:date>2018-08-21T09:04:19Z</dc:date>
    </item>
    <item>
      <title>Cisco dCloud Lab - Integrated Routing and Bridging (IRB) on the 5921 ESR - c5921_ubuntu32_1 - View</title>
      <link>https://community.cisco.com/t5/networking-documents/cisco-dcloud-lab-integrated-routing-and-bridging-irb-on-the-5921/ta-p/3692012</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;This configuration is used with “Introduction to the Cisco 5921 Embedded Services Router v1” in dCloud.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: arial; font-size: 12px; background-color: #f0f9fe;"&gt;Lines in &lt;/SPAN&gt;&lt;SPAN style="font-size: 12px; font-family: arial; color: #ff9900; background-color: #f0f9fe;"&gt;&lt;STRONG&gt;BOLD ORANGE&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #3d3d3d; font-family: arial; font-size: 12px; background-color: #f0f9fe;"&gt; are changes made to the existing configuration to do the lab exercise.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;c5921_ubuntu32_1#&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;sh running-config brief&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Building configuration...&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Current configuration : 2644 bytes&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;! Last configuration change at 12:04:19 PST Wed Sep 9 2015&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;version 15.5&lt;/P&gt;
&lt;P&gt;service timestamps debug datetime msec&lt;/P&gt;
&lt;P&gt;service timestamps log datetime msec&lt;/P&gt;
&lt;P&gt;no service password-encryption&lt;/P&gt;
&lt;P&gt;service call-home&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;hostname c5921_ubuntu32_1&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;boot-start-marker&lt;/P&gt;
&lt;P&gt;boot-end-marker&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;enable secret 5 $1$x.6O$4UZX1B5lYLF1DeOul7GiV1&lt;/P&gt;
&lt;P&gt;enable password cisco&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;no aaa new-model&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;bsd-client server url &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://cloudsso.cisco.com/as/token.oauth2" rel="nofollow" target="_blank"&gt;https://cloudsso.cisco.com/as/token.oauth2&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;clock timezone PST -8 0&lt;/P&gt;
&lt;P&gt;mmi polling-interval 60&lt;/P&gt;
&lt;P&gt;no mmi auto-configure&lt;/P&gt;
&lt;P&gt;no mmi pvc&lt;/P&gt;
&lt;P&gt;mmi snmp-timeout 180&lt;/P&gt;
&lt;P&gt;call-home&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;! if contact email address in call-home is configured as &lt;/SPAN&gt;&lt;A class="jive-link-email-small" href="mailto:sch-smart-licensing@cisco.com" target="_blank"&gt;sch-smart-licensing@cisco.com&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;! The email address configured in Cisco Smart License Portal will be used as contact email address to send SCH notifications&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;contact-email-addr &lt;/SPAN&gt;&lt;A class="jive-link-email-small" href="mailto:sch-smart-licensing@cisco.com" target="_blank"&gt;sch-smart-licensing@cisco.com&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;profile "CiscoTAC-1"&lt;/P&gt;
&lt;P&gt;  active&lt;/P&gt;
&lt;P&gt;  destination transport-method http&lt;/P&gt;
&lt;P&gt;  no destination transport-method email&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;ip name-server 8.8.8.8&lt;/P&gt;
&lt;P&gt;ip cef&lt;/P&gt;
&lt;P&gt;no ipv6 cef&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;multilink bundle-name authenticated&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;crypto pki trustpoint SLA-TrustPoint&lt;/P&gt;
&lt;P&gt;enrollment pkcs12&lt;/P&gt;
&lt;P&gt;revocation-check crl&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;crypto pki certificate chain SLA-TrustPoint&lt;/P&gt;
&lt;P&gt;certificate ca 01&lt;/P&gt;
&lt;P&gt;license udi pid CISCO5921-K9 sn 91J81443B9I&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;redundancy&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;bridge irb&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;interface Loopback0&lt;/P&gt;
&lt;P&gt;ip address 10.0.0.120 255.255.255.255&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;interface Ethernet0/0&lt;/P&gt;
&lt;P&gt;ip address 172.23.1.120 255.255.255.0&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;shutdown&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;duplex full&lt;/P&gt;
&lt;P&gt;speed 1000&lt;/P&gt;
&lt;P&gt;no mop enabled&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;interface Ethernet0/1&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;no ip address&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;duplex full&lt;/P&gt;
&lt;P&gt;speed 1000&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;bridge-group 1&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;interface Ethernet0/2&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;no ip address&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;duplex full&lt;/P&gt;
&lt;P&gt;speed 1000&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;bridge-group 1&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;interface Ethernet0/3&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;no ip address&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;duplex full&lt;/P&gt;
&lt;P&gt;speed 1000&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;bridge-group 1&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;interface Ethernet1/0&lt;/P&gt;
&lt;P&gt;description TAP interface&lt;/P&gt;
&lt;P&gt;ip address 198.18.134.131 255.255.192.0&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;interface Ethernet1/1&lt;/P&gt;
&lt;P&gt;no ip address&lt;/P&gt;
&lt;P&gt;shutdown&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;interface Ethernet1/2&lt;/P&gt;
&lt;P&gt;no ip address&lt;/P&gt;
&lt;P&gt;shutdown&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;interface Ethernet1/3&lt;/P&gt;
&lt;P&gt;no ip address&lt;/P&gt;
&lt;P&gt;shutdown&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;interface BVI1&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;ip address 172.23.2.1 255.255.255.0&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;router ospf 100&lt;/P&gt;
&lt;P&gt;network 10.0.0.120 0.0.0.0 area 0&lt;/P&gt;
&lt;P&gt;network 172.23.1.0 0.0.0.255 area 0&lt;/P&gt;
&lt;P&gt;network 172.23.2.0 0.0.0.255 area 0&lt;/P&gt;
&lt;P&gt;network 172.23.3.0 0.0.0.255 area 0&lt;/P&gt;
&lt;P&gt;network 172.23.4.0 0.0.0.255 area 0&lt;/P&gt;
&lt;P&gt;network 198.18.128.0 0.0.63.255 area 0&lt;/P&gt;
&lt;P&gt;default-information originate&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;ip forward-protocol nd&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;no ip http server&lt;/P&gt;
&lt;P&gt;no ip http secure-server&lt;/P&gt;
&lt;P&gt;ip route 0.0.0.0 0.0.0.0 198.18.134.120&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;snmp-server community public RO&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;control-plane&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;bridge 1 priority 8196&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;bridge 1 protocol ieee&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;bridge 1 route ip&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;line con 0&lt;/P&gt;
&lt;P&gt;logging synchronous&lt;/P&gt;
&lt;P&gt;line aux 0&lt;/P&gt;
&lt;P&gt;line vty 0 4&lt;/P&gt;
&lt;P&gt;password cisco&lt;/P&gt;
&lt;P&gt;login&lt;/P&gt;
&lt;P&gt;transport input all&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;ntp server 198.18.134.132&lt;/P&gt;
&lt;P&gt;!&lt;/P&gt;
&lt;P&gt;end&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;c5921_ubuntu32_1#&lt;SPAN style="color: #ff9900;"&gt;&lt;STRONG&gt;sh ip rou&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP&lt;/P&gt;
&lt;P&gt;       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area&lt;/P&gt;
&lt;P&gt;       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2&lt;/P&gt;
&lt;P&gt;       E1 - OSPF external type 1, E2 - OSPF external type 2&lt;/P&gt;
&lt;P&gt;       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2&lt;/P&gt;
&lt;P&gt;       ia - IS-IS inter area, * - candidate default, U - per-user static route&lt;/P&gt;
&lt;P&gt;       o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP&lt;/P&gt;
&lt;P&gt;       a - application route&lt;/P&gt;
&lt;P&gt;       + - replicated route, % - next hop override&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Gateway of last resort is 198.18.134.120 to network 0.0.0.0&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;S*    0.0.0.0/0 [1/0] via 198.18.134.120&lt;/P&gt;
&lt;P&gt;      10.0.0.0/32 is subnetted, 2 subnets&lt;/P&gt;
&lt;P&gt;C        10.0.0.120 is directly connected, Loopback0&lt;/P&gt;
&lt;P&gt;O        10.0.0.121 [110/2] via 172.23.2.2, 00:40:16, &lt;SPAN style="; color: #0000ff;"&gt;&lt;STRONG&gt;BVI1&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;      172.23.0.0/16 is variably subnetted, 5 subnets, 2 masks&lt;/P&gt;
&lt;P&gt;O        172.23.1.0/24 [110/2] via 172.23.2.2, 00:40:16, &lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;BVI1&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;C        172.23.2.0/24 is directly connected, &lt;SPAN style="color: #3366ff;"&gt;&lt;STRONG&gt;BVI1&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;L        172.23.2.1/32 is directly connected, &lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;BVI1&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;O        172.23.3.0/24 [110/2] via 172.23.2.2, 00:38:19, &lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;BVI1&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;O        172.23.4.0/24 [110/2] via 172.23.2.2, 00:34:12,&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt; BVI1&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;C     198.18.128.0/18 is directly connected, Ethernet1/0&lt;/P&gt;
&lt;P&gt;      198.18.134.0/32 is subnetted, 1 subnets&lt;/P&gt;
&lt;P&gt;L        198.18.134.131 is directly connected, Ethernet1/0&lt;/P&gt;
&lt;P&gt;c5921_ubuntu32_1#&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 21 Aug 2018 09:02:31 GMT</pubDate>
      <guid>https://community.cisco.com/t5/networking-documents/cisco-dcloud-lab-integrated-routing-and-bridging-irb-on-the-5921/ta-p/3692012</guid>
      <dc:creator>fcolumbu</dc:creator>
      <dc:date>2018-08-21T09:02:31Z</dc:date>
    </item>
    <item>
      <title>Cisco dCloud lab -  CONFIGURING SITE TO SITE IPSEC VPN TUNNEL BETWEEN CISCO ROUTERS - c5921_ubuntu32_1 - Download</title>
      <link>https://community.cisco.com/t5/networking-documents/cisco-dcloud-lab-configuring-site-to-site-ipsec-vpn-tunnel/ta-p/3692010</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;This configuration is used with “Introduction to the Cisco 5921 Embedded Services Router v1” in dCloud.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Cisco dCloud lab -  CONFIGURING SITE TO SITE IPSEC VPN TUNNEL BETWEEN CISCO ROUTERS - c5921_ubuntu32_1&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Derived from:&lt;/P&gt;
&lt;P&gt;&lt;A class="jive-link-external-small" href="http://www.firewall.cx/cisco-technical-knowledgebase/cisco-routers/867-cisco-router-site-to-site-ipsec-vpn.html" rel="nofollow" target="_blank"&gt;http://www.firewall.cx/cisco-technical-knowledgebase/cisco-routers/867-cisco-router-site-to-site-ipsec-vpn.html&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 21 Aug 2018 08:55:22 GMT</pubDate>
      <guid>https://community.cisco.com/t5/networking-documents/cisco-dcloud-lab-configuring-site-to-site-ipsec-vpn-tunnel/ta-p/3692010</guid>
      <dc:creator>fcolumbu</dc:creator>
      <dc:date>2018-08-21T08:55:22Z</dc:date>
    </item>
    <item>
      <title>Cisco dCloud lab -  CONFIGURING SITE TO SITE IPSEC VPN TUNNEL BETWEEN CISCO ROUTERS - c5921_ubuntu32_2 - Download</title>
      <link>https://community.cisco.com/t5/networking-documents/cisco-dcloud-lab-configuring-site-to-site-ipsec-vpn-tunnel/ta-p/3692008</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;This configuration is used with “Introduction to the Cisco 5921 Embedded Services Router v1” in dCloud.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Cisco dCloud lab -  CONFIGURING SITE TO SITE IPSEC VPN TUNNEL BETWEEN CISCO ROUTERS - c5921_ubuntu32_2&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Derived from:&lt;/P&gt;
&lt;P&gt;&lt;A class="jive-link-external-small" href="http://www.firewall.cx/cisco-technical-knowledgebase/cisco-routers/867-cisco-router-site-to-site-ipsec-vpn.html" rel="nofollow" target="_blank"&gt;http://www.firewall.cx/cisco-technical-knowledgebase/cisco-routers/867-cisco-router-site-to-site-ipsec-vpn.html&lt;/A&gt;&lt;/P&gt;
&lt;P class="jive-wiki-body-download clearfix" data-body-id="113535"&gt;  &lt;SPAN class="jive-wiki-body-thumbnail"&gt;  &lt;/SPAN&gt;  &lt;SPAN class="jive-wiki-body-file"&gt; &lt;SPAN class="jive-wiki-body-file-info"&gt; &lt;BR /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 21 Aug 2018 08:53:15 GMT</pubDate>
      <guid>https://community.cisco.com/t5/networking-documents/cisco-dcloud-lab-configuring-site-to-site-ipsec-vpn-tunnel/ta-p/3692008</guid>
      <dc:creator>fcolumbu</dc:creator>
      <dc:date>2018-08-21T08:53:15Z</dc:date>
    </item>
    <item>
      <title>Cisco dCloud Lab - Site-to-Site VPN Lab using the Cisco 5921 Embedded Services Router - Step-by-step guide</title>
      <link>https://community.cisco.com/t5/networking-documents/cisco-dcloud-lab-site-to-site-vpn-lab-using-the-cisco-5921/ta-p/3692003</link>
      <description>&lt;P style="text-align: center;" align="center"&gt;&lt;SPAN style="font-size: 14.0pt; font-family: Calibri;"&gt;&lt;STRONG&gt;Site-to-Site VPN Lab using the&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN style="font-size: 14.0pt; font-family: Calibri;"&gt;&lt;STRONG&gt;Cisco 5921 Embedded Services Router&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="font-family: Arial;"&gt;This configuration is used with “Introduction to the Cisco 5921 Embedded Services Router v1” in dCloud.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="font-family: Arial;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="font-size: 14.0pt; font-family: Calibri;"&gt;&lt;STRONG&gt;1)&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 14.0pt; font-family: Calibri;"&gt; Log into dCloud. Under Internet of Everything or Training, find the lab / demo, "Introduction to the Cisco 5921 Embedded Services Router v1”&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="font-size: 14.0pt; font-family: Calibri;"&gt;&lt;STRONG&gt;2)&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 14.0pt; font-family: Calibri;"&gt; Launch a dCloud session using this lab and follow the instructions to connect using the AnyConnect client. Do the actual AnyConnect access after step 4 as this will allow time for the dCloud session to start. Please be sure to specify "NOW" as the launch time. This lab takes approximately 5 minutes to be ready for use.&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="font-size: 14.0pt; font-family: Calibri;"&gt;&lt;STRONG&gt;3)&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 14.0pt; font-family: Calibri;"&gt; Begin by looking at the configuration view links for the intended changes to the router configurations to implement the desired feature. The changes are differentiated from the rest of the configuration using &lt;SPAN style="color: #ff6600;"&gt;&lt;STRONG&gt;Boldface Orange&lt;/STRONG&gt;&lt;/SPAN&gt; text.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="font-size: 14.0pt; font-family: Calibri;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin-top: auto; margin-bottom: auto; margin-left: .5in;"&gt;&lt;SPAN style="font-family: Arial;"&gt;&lt;STRONG&gt;Cisco dCloud lab - CONFIGURING SITE TO SITE IPSEC VPN TUNNEL BETWEEN CISCO ROUTERS - c5921_ubuntu32_1 - &lt;SPAN style="background: yellow;"&gt;View&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: Arial;"&gt;&lt;A href="https://community.cisco.com/docs/DOC-63986" target="_blank"&gt;https://communities.cisco.com/docs/DOC-63986&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: Arial;"&gt;&lt;STRONG&gt;Cisco dCloud lab - CONFIGURING SITE TO SITE IPSEC VPN TUNNEL BETWEEN CISCO ROUTERS - c5921_ubuntu32_2 - &lt;SPAN style="background: yellow;"&gt;View&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="font-family: Arial;"&gt;&lt;A href="https://community.cisco.com/docs/DOC-63987" target="_blank"&gt;https://communities.cisco.com/docs/DOC-63987&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: Arial;"&gt;This lab was derived from a third party Internet based article, “&lt;EM&gt;Configuring Site to Site IPSec VPN Tunnel Between Cisco Routers,&lt;/EM&gt;&lt;STRONG&gt;”&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: Arial;"&gt;by Rahul Singh, a Cisco CCIE Security certified Engineer (#29110) and an active member of the Firewall.cx community. For an in depth technical discussion please visit the site below to read this article.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-size: 14.0pt; font-family: Calibri;"&gt;&lt;A href="http://www.firewall.cx/cisco-technical-knowledgebase/cisco-routers/867-cisco-router-site-to-site-ipsec-vpn.html" target="_blank"&gt;http://www.firewall.cx/cisco-technical-knowledgebase/cisco-routers/867-cisco-router-site-to-site-ipsec-vpn.html&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="font-size: 14.0pt; font-family: Calibri;"&gt;&lt;STRONG&gt;4)&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 14.0pt; font-family: Calibri;"&gt; Go to the following DevNet Community links and download the configurations to be used in this lab. Please use the download links for this.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: Arial;"&gt;&lt;STRONG&gt;Cisco dCloud lab - CONFIGURING SITE TO SITE IPSEC VPN TUNNEL BETWEEN CISCO ROUTERS - c5921_ubuntu32_1 - &lt;SPAN style="background: yellow;"&gt;Download&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-size: 16.0pt; font-family: 'Times New Roman';"&gt;&lt;A href="https://community.cisco.com/docs/DOC-63989" target="_blank"&gt;&lt;SPAN style="font-size: 14.0pt; font-family: Calibri; color: blue;"&gt;https://communities.cisco.com/docs/DOC-63989&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-family: Arial;"&gt;&lt;STRONG&gt;Cisco dCloud lab - CONFIGURING SITE TO SITE IPSEC VPN TUNNEL BETWEEN CISCO ROUTERS - c5921_ubuntu32_2 - &lt;SPAN style="background: yellow;"&gt;Download&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-size: 16.0pt; font-family: 'Times New Roman';"&gt;&lt;A href="https://community.cisco.com/docs/DOC-63990" target="_blank"&gt;&lt;SPAN style="font-size: 14.0pt; font-family: Calibri; color: blue;"&gt;https://communities.cisco.com/docs/DOC-63990&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="font-size: 14.0pt; font-family: Calibri;"&gt;&lt;STRONG&gt;5)&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 14.0pt; font-family: Calibri;"&gt; On both of the working routers, c5921_ubuntu32_1 and c5921_ubuntu32_2, shutdown the following ports: ethernet 0/1, 0/2, 0/3.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="font-size: 14.0pt; font-family: Calibri;"&gt;&lt;STRONG&gt;6)&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 14.0pt; font-family: Calibri;"&gt; For router c5921_ubuntu32_2, enable 50 Mbps throughput.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="font-size: 14.0pt; font-family: Calibri;"&gt;&lt;STRONG&gt;7)&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 14.0pt; font-family: Calibri;"&gt; Please enable the following debugs on router 1:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin-left: 15pt; text-indent: -24pt; padding-left: 30px;"&gt;&lt;SPAN style="font-size: 13.0pt; font-family: 'Times New Roman'; color: #414141;"&gt;·&lt;/SPAN&gt; &lt;SPAN style="color: #414141; font-size: 10.0pt; font-family: Arial;"&gt;&lt;STRONG&gt;debug crypto isakmp&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Arial; color: #414141;"&gt;—Displays messages about Internet Key Exchange (IKE) events.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin-left: 15pt; text-indent: -24pt; padding-left: 30px;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Arial; color: #414141;"&gt;· &lt;STRONG&gt;debug crypto ipsec&lt;/STRONG&gt;—Displays IPsec events.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin-left: 15pt; text-indent: -24pt; padding-left: 30px;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Arial; color: #414141;"&gt;· &lt;STRONG&gt;debug crypto engine&lt;/STRONG&gt;—Displays crypto engine events.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="font-size: 13.0pt; font-family: Calibri;"&gt;&lt;STRONG&gt;8)&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 13.0pt; font-family: Calibri;"&gt; Please add the highlighted commands in the configuration. Besides the crypto commands, we will be making a minor change to the routing to accommodate the addition of two other loopback interfaces. (We can highlight the differences. &lt;/SPAN&gt;&lt;SPAN style="font-size: 13.0pt; font-family: Arial; color: #414141;"&gt;I&lt;/SPAN&gt;&lt;SPAN style="font-size: 13.0pt; font-family: Calibri;"&gt; need to add highlighting to the View links.)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #414141; font-size: 13.0pt; font-family: Arial;"&gt;&lt;STRONG&gt;9)&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 13.0pt; font-family: Arial; color: #414141;"&gt; Execute the following ping command on router 2 to generate interesting packets to launch the encrypted session:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-size: 13.0pt; font-family: Arial; color: #414141;"&gt;ping 10.1.1.1 source loop 1&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="color: #414141; font-size: 13.0pt; font-family: Arial;"&gt;&lt;STRONG&gt;10) &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 14.0pt; font-family: Calibri;"&gt;To verify the VPN Tunnel, use the "show crypto session" command.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="font-size: 14.0pt; font-family: Calibri;"&gt;&lt;STRONG&gt;11)&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 14.0pt; font-family: Calibri;"&gt; To get additional session detail, you may use the following commands:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin-left: 15pt; text-indent: -24pt; padding-left: 30px;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Arial; color: #414141;"&gt;· &lt;STRONG&gt;show crypto isakmp sa detail&lt;/STRONG&gt;—Displays the IKE SAs, which have been set-up between the IPsec initiators. For example, the spoke router and the VPN Client, and the hub router.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin-left: 15pt; text-indent: -24pt; padding-left: 30px;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Arial; color: #414141;"&gt;· &lt;STRONG&gt;show crypto ipsec sa&lt;/STRONG&gt;—Displays the IPsec SAs, which have been set-up between the IPsec initiators. For example, the spoke router and the VPN Client, and the hub router.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="font-size: 14.0pt; font-family: Calibri;"&gt;&lt;STRONG&gt;12)&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 14.0pt; font-family: Calibri;"&gt; Compare your results to the output shown after the configuration in each DevNet document.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="; font-size: 14.0pt; font-family: Calibri; text-decoration: underline;"&gt;&lt;STRONG&gt;Conclusions:&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="font-size: 14.0pt; font-family: Calibri;"&gt;This lab allowed you to verify a Cisco IOS feature described in a third party Internet article. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="font-size: 14.0pt; font-family: Calibri;"&gt;It introduced you to the DevNet community for IoT Embedded and specifically showed that there is a space to share and to post useful 5921 configurations and other companion code.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="font-size: 14.0pt; font-family: Calibri;"&gt;dCloud allowed you to launch in a few minutes what would take hours to build in your own lab.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 21 Aug 2018 08:57:50 GMT</pubDate>
      <guid>https://community.cisco.com/t5/networking-documents/cisco-dcloud-lab-site-to-site-vpn-lab-using-the-cisco-5921/ta-p/3692003</guid>
      <dc:creator>fcolumbu</dc:creator>
      <dc:date>2018-08-21T08:57:50Z</dc:date>
    </item>
    <item>
      <title>Cisco dCloud Lab - Integrated Routing and Bridging (IRB)  Lab using the Cisco 5921 Embedded Services Router - Step-by-step guide</title>
      <link>https://community.cisco.com/t5/networking-documents/cisco-dcloud-lab-integrated-routing-and-bridging-irb-lab-using/ta-p/3692002</link>
      <description>&lt;P style="text-align: center;" align="center"&gt;&lt;SPAN style="font-size: 14.0pt; font-family: Calibri;"&gt;&lt;STRONG&gt;Integrated Routing and Bridging (IRB) Lab using the&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN style="font-size: 14.0pt; font-family: Calibri;"&gt;&lt;STRONG&gt;Cisco 5921 Embedded Services Router&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&lt;SPAN style="font-family: Arial;"&gt;This configuration is used with “Introduction to the Cisco 5921 Embedded Services Router v1” in dCloud.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&lt;SPAN style="font-family: Arial;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&lt;SPAN style="font-size: 14.0pt; font-family: Calibri;"&gt;&lt;STRONG&gt;1)&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 14.0pt; font-family: Calibri;"&gt; Log into dCloud. Under Internet of Everything or Training, find the lab / demo, "Introduction to the Cisco 5921 Embedded Services Router v1”&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&lt;SPAN style="font-size: 14.0pt; font-family: Calibri;"&gt;&lt;STRONG&gt;2)&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 14.0pt; font-family: Calibri;"&gt; Launch a dCloud session using this lab and follow the instructions to connect using the AnyConnect client. Do the actual AnyConnect access after step 4 as this will allow time for the dCloud session to start. Please be sure to specify "NOW" as the launch time. This lab takes approximately 5 minutes to be ready for use.&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&lt;SPAN style="font-size: 14.0pt; font-family: Calibri;"&gt;&lt;STRONG&gt;3)&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 14.0pt; font-family: Calibri;"&gt; Begin by looking at the configuration view links for the intended changes to the router configurations to implement the desired feature. The changes are differentiated from the rest of the configuration using &lt;SPAN style="color: #ff6600;"&gt;&lt;STRONG&gt;Boldface Orange&lt;/STRONG&gt;&lt;/SPAN&gt; text.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&lt;SPAN style="font-size: 14.0pt; font-family: Calibri;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin-top: auto; margin-bottom: auto; margin-left: .5in;"&gt;&lt;SPAN style="font-size: 12pt;"&gt;&lt;STRONG&gt;Cisco dCloud Lab - Integrated Routing and Bridging (IRB) on the 5921 ESR - c5921_ubuntu32_1 - &lt;SPAN style="color: #ff6600;"&gt;View&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin-top: auto; margin-bottom: auto; margin-left: .5in;"&gt;&lt;SPAN style="font-size: 12pt;"&gt;&lt;STRONG&gt;&lt;A title="https://communities.cisco.com/docs/DOC-63988" href="https://community.cisco.com/docs/DOC-63988" target="_blank"&gt;https://communities.cisco.com/docs/DOC-63988&lt;/A&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin-left: .5in;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&lt;SPAN style="font-size: 14.0pt; font-family: Calibri;"&gt;&lt;STRONG&gt;4)&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 14.0pt; font-family: Calibri;"&gt; Go to the following DevNet Community links and download the configurations to be used in this lab. Please use the download links for this.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-size: 12pt;"&gt;&lt;STRONG&gt;Cisco dCloud Lab - Integrated Routing and Bridging (IRB) on the 5921 ESR - &lt;SPAN style="color: #ff6600;"&gt;Download&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="color: #ff6600; font-size: 12pt;"&gt;&lt;STRONG&gt;&lt;A title="https://communities.cisco.com/docs/DOC-62561" href="https://community.cisco.com/docs/DOC-62561" target="_blank"&gt;https://communities.cisco.com/docs/DOC-62561&lt;/A&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&lt;SPAN style="font-size: 14.0pt; font-family: Calibri;"&gt;&lt;STRONG&gt;5)&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 14.0pt; font-family: Calibri;"&gt; On c5921_ubuntu32_1 shutdown the following port ethernet 0/0.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&lt;SPAN style="font-size: 14.0pt; font-family: Calibri;"&gt;&lt;STRONG&gt;6)&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 14.0pt; font-family: Calibri;"&gt; Remove the IP addresses from the following ports: &lt;SPAN style="font-family: Calibri; font-size: 18.6667px;"&gt;ethernet 0/1, 0/2, 0/3. (no ip addr)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&lt;SPAN style="font-size: 14.0pt; font-family: Calibri;"&gt;&lt;STRONG&gt;7)&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 14.0pt; font-family: Calibri;"&gt; &lt;SPAN style="font-family: Calibri; font-size: 17.3333px;"&gt;Please add all the highlighted (bold orange) commands in the configuration.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="font-size: 13pt; font-family: Calibri;"&gt;&lt;STRONG&gt;8)&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-family: Calibri;"&gt;&lt;SPAN style="font-size: 13pt;"&gt; After a waiting few seconds for OSPF to &lt;/SPAN&gt;&lt;SPAN style="font-size: 17.3333px;"&gt;re-converge&lt;/SPAN&gt;&lt;SPAN style="font-size: 13pt;"&gt;, you should see the following routing table on c5921_ubuntu32_1:&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;*Dec 1 05:07:08.310: %OSPF-5-ADJCHG: Process 100, Nbr 10.0.0.121 on BVI1 from LOADING to FULL, Loading Done&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;c5921_ubuntu32_1#sh ip rou&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;E1 - OSPF external type 1, E2 - OSPF external type 2&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;ia - IS-IS inter area, * - candidate default, U - per-user static route&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;a - application route&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;+ - replicated route, % - next hop override&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;Gateway of last resort is 198.18.134.120 to network 0.0.0.0&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;S* 0.0.0.0/0 [1/0] via 198.18.134.120&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;10.0.0.0/32 is subnetted, 2 subnets&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;C 10.0.0.120 is directly connected, Loopback0&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;O 10.0.0.121 [110/2] via &lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;172.23.2.2&lt;/STRONG&gt;&lt;/SPAN&gt;, 00:00:00, &lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;BVI1&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;172.23.0.0/16 is variably subnetted, 5 subnets, 2 masks&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;O 172.23.1.0/24 [110/2] via &lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;172.23.2.2&lt;/STRONG&gt;&lt;/SPAN&gt;, 00:00:00, &lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;BVI1&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;C 172.23.2.0/24 is directly connected, BVI1&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;L 172.23.2.1/32 is directly connected, BVI1&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;O 172.23.3.0/24 [110/2] via &lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;172.23.2.2&lt;/STRONG&gt;&lt;/SPAN&gt;, 00:00:00, &lt;SPAN style="color: #3366ff;"&gt;&lt;STRONG&gt;BVI1&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;O 172.23.4.0/24 [110/2] via &lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;172.23.2.2&lt;/STRONG&gt;&lt;/SPAN&gt;, 00:00:00, &lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;BVI1&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;C 198.18.128.0/18 is directly connected, Ethernet1/0&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;198.18.134.0/32 is subnetted, 1 subnets&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;L 198.18.134.131 is directly connected, Ethernet1/0&lt;/P&gt;
&lt;P style="font-size: 13.3333px; padding-left: 30px;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&lt;SPAN style="color: #000000; font-size: 14pt; font-family: Arial;"&gt;&lt;STRONG&gt;9)&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 13.0pt; font-family: Arial; color: #414141;"&gt;&lt;SPAN style="font-size: 14pt;"&gt; &lt;SPAN style="font-size: 12pt;"&gt;&lt;STRONG&gt;&lt;SPAN style="color: #000000;"&gt;Notice that since we set the ip address of BVI1&lt;/SPAN&gt;&lt;SPAN style="color: #414141;"&gt; &lt;SPAN style="color: #000000;"&gt;to&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; font-size: 13.3333px;"&gt;&lt;STRONG&gt;&lt;SPAN style="font-size: 12pt;"&gt;172.23.2.1 &lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;&lt;SPAN style="font-size: 12pt;"&gt;the neighbor relationship is established via the corresponding subnet on c5921_ubuntu32_2 in this case &lt;/SPAN&gt;&lt;SPAN style="; color: #0000ff; font-size: 12pt;"&gt;&lt;STRONG&gt;172.23.2.2. &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&lt;SPAN style="color: #000000; font-size: 13.3333px; font-family: Arial;"&gt;&lt;STRONG&gt;&lt;SPAN style="; color: #000000; font-size: 12pt;"&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&lt;SPAN style="color: #000000; font-size: 13.3333px; font-family: Arial;"&gt;&lt;STRONG&gt;&lt;SPAN style="; color: #0000ff; font-size: 12pt;"&gt;&lt;STRONG&gt;&lt;SPAN style="color: #000000;"&gt;If we have ethernet 0/1, 0/2, 0/3 for &lt;/SPAN&gt;&lt;SPAN style="; color: #000000; font-size: 12pt;"&gt;&lt;STRONG&gt;c5921_ubuntu32_1 bridging at layer 2 and then routing, effectively the same as using a switching HWIC in one of the ISR's, we should be able to set the ip address of BVI1 to subnet 3 or 4 and our Layer 3 should re-converge. &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&lt;SPAN style="color: #000000; font-size: 13.3333px; font-family: Arial;"&gt;&lt;STRONG&gt;&lt;SPAN style="; color: #0000ff; font-size: 12pt;"&gt;&lt;STRONG&gt;&lt;SPAN style="; color: #000000; font-size: 12pt;"&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&lt;SPAN style="color: #000000; font-size: 13.3333px; font-family: Arial;"&gt;&lt;STRONG&gt;&lt;SPAN style="; color: #0000ff; font-size: 12pt;"&gt;&lt;STRONG&gt;&lt;SPAN style="; color: #000000; font-size: 12pt;"&gt;&lt;STRONG&gt;Go ahead and try changing BVI1 to &lt;SPAN style="; color: #0000ff; font-size: 12pt;"&gt;&lt;STRONG&gt;172.23.3.1 &lt;SPAN style="color: #000000;"&gt;and observe the following:&lt;/SPAN&gt; &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&lt;SPAN style="color: #000000; font-size: 13.3333px; font-family: Arial;"&gt;&lt;STRONG&gt;&lt;SPAN style="; color: #0000ff; font-size: 12pt;"&gt;&lt;STRONG&gt;&lt;SPAN style="; color: #000000; font-size: 12pt;"&gt;&lt;STRONG&gt;&lt;SPAN style="; color: #0000ff; font-size: 12pt;"&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;c5921_ubuntu32_1(config)#&lt;STRONG&gt;interface BVI1&lt;/STRONG&gt;&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;c5921_ubuntu32_1(config-if)#&lt;STRONG&gt;ip address 172.23.3.1 255.255.255.0&lt;/STRONG&gt;&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;c5921_ubuntu32_1(config-if)#&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;*Dec 1 05:08:25.454: %OSPF-5-ADJCHG: Process 100, Nbr 10.0.0.121 on BVI1 from FULL to DOWN, Neighbor Down: Interface down or detached&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;c5921_ubuntu32_1(config-if)#&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;*Dec 1 05:08:30.251: %OSPF-5-ADJCHG: Process 100, Nbr 10.0.0.121 on BVI1 from LOADING to FULL, Loading Done&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;c5921_ubuntu32_1(config-if)#&lt;STRONG&gt;do sh ip rou&lt;/STRONG&gt;&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;E1 - OSPF external type 1, E2 - OSPF external type 2&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;ia - IS-IS inter area, * - candidate default, U - per-user static route&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;a - application route&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;+ - replicated route, % - next hop override&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;Gateway of last resort is 198.18.134.120 to network 0.0.0.0&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;S* 0.0.0.0/0 [1/0] via 198.18.134.120&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;10.0.0.0/32 is subnetted, 2 subnets&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;C 10.0.0.120 is directly connected, Loopback0&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;O 10.0.0.121 [110/2] via &lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;172.23.3.2&lt;/STRONG&gt;&lt;/SPAN&gt;, 00:00:30, &lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;BVI1&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;172.23.0.0/16 is variably subnetted, 5 subnets, 2 masks&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;O 172.23.1.0/24 [110/2] via &lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;172.23.3.2&lt;/STRONG&gt;&lt;/SPAN&gt;, 00:00:30, &lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;BVI1&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;O 172.23.2.0/24 [110/2] via &lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;172.23.3.2&lt;/STRONG&gt;&lt;/SPAN&gt;, 00:00:30, &lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;BVI1&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;C 172.23.3.0/24 is directly connected, BVI1&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;L 172.23.3.1/32 is directly connected, BVI1&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;O 172.23.4.0/24 [110/2] via &lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;172.23.3.2&lt;/STRONG&gt;&lt;/SPAN&gt;, 00:00:30, &lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;BVI1&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;C 198.18.128.0/18 is directly connected, Ethernet1/0&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;198.18.134.0/32 is subnetted, 1 subnets&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;L 198.18.134.131 is directly connected, Ethernet1/0&lt;/P&gt;
&lt;P style="margin-left: 0.5in; padding-left: 30px;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&lt;SPAN style="font-size: 12pt;"&gt;&lt;STRONG&gt;10) Lastly,&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;SPAN style="; color: #000000; font-size: 13.3333px;"&gt;&lt;STRONG&gt;&lt;SPAN style="; color: #0000ff; font-size: 12pt;"&gt;&lt;STRONG&gt;&lt;SPAN style="; color: #000000; font-size: 12pt;"&gt;&lt;STRONG&gt; try changing BVI1 to &lt;SPAN style="; color: #0000ff; font-size: 12pt;"&gt;&lt;STRONG&gt;172.23.4.1 &lt;SPAN style="color: #000000;"&gt;and observe the following:&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&lt;SPAN style="; color: #000000; font-size: 13.3333px;"&gt;&lt;STRONG&gt;&lt;SPAN style="; color: #0000ff; font-size: 12pt;"&gt;&lt;STRONG&gt;&lt;SPAN style="; color: #000000; font-size: 12pt;"&gt;&lt;STRONG&gt;&lt;SPAN style="; color: #000000; font-size: 12pt;"&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;c5921_ubuntu32_1(config-if)#&lt;STRONG&gt;ip address 172.23.4.1 255.255.255.0&lt;/STRONG&gt;&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;c5921_ubuntu32_1(config-if)#&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;*Dec 1 05:09:34.532: %OSPF-5-ADJCHG: Process 100, Nbr 10.0.0.121 on BVI1 from FULL to DOWN, Neighbor Down: Interface down or detached&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;c5921_ubuntu32_1(config-if)#&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;*Dec 1 05:09:39.374: %OSPF-5-ADJCHG: Process 100, Nbr 10.0.0.121 on BVI1 from LOADING to FULL, Loading Done&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;c5921_ubuntu32_1(config-if)#&lt;STRONG&gt;do sh ip rou&lt;/STRONG&gt;&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;E1 - OSPF external type 1, E2 - OSPF external type 2&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;ia - IS-IS inter area, * - candidate default, U - per-user static route&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;a - application route&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;+ - replicated route, % - next hop override&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;Gateway of last resort is 198.18.134.120 to network 0.0.0.0&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;S* 0.0.0.0/0 [1/0] via 198.18.134.120&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;10.0.0.0/32 is subnetted, 2 subnets&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;C 10.0.0.120 is directly connected, Loopback0&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;O 10.0.0.121 [110/2] via &lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;172.23.4.2&lt;/STRONG&gt;&lt;/SPAN&gt;, 00:00:10, &lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;BVI1&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;172.23.0.0/16 is variably subnetted, 5 subnets, 2 masks&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;O 172.23.1.0/24 [110/2] via &lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;172.23.4.2&lt;/STRONG&gt;&lt;/SPAN&gt;, 00:00:10, &lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;BVI1&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;O 172.23.2.0/24 [110/2] via &lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;172.23.4.2&lt;/STRONG&gt;&lt;/SPAN&gt;, 00:00:10, &lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;BVI1&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;O 172.23.3.0/24 [110/2] via &lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;172.23.4.2&lt;/STRONG&gt;&lt;/SPAN&gt;, 00:00:10, &lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;BVI1&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;C 172.23.4.0/24 is directly connected, BVI1&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;L 172.23.4.1/32 is directly connected, BVI1&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;C 198.18.128.0/18 is directly connected, Ethernet1/0&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;198.18.134.0/32 is subnetted, 1 subnets&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;L 198.18.134.131 is directly connected, Ethernet1/0&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;&lt;STRONG&gt;Note: Here is one more way to view it:&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;c5921_ubuntu32_1#sh ip ospf neighbor&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;Neighbor ID Pri State Dead Time Address Interface&lt;/P&gt;
&lt;P style="padding-left: 30px;"&gt;10.0.0.121 1 FULL/DR 00:00:36 &lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;172.23.4.2 BVI1&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&lt;SPAN style="; font-size: 14.0pt; font-family: Calibri; text-decoration: underline;"&gt;&lt;STRONG&gt;Conclusions:&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&lt;SPAN style="font-size: 14.0pt; font-family: Calibri;"&gt;This lab allowed you to verify that a particular Cisco IOS feature is supported on the 5921 ESR.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&lt;SPAN style="font-size: 14.0pt; font-family: Calibri;"&gt;It introduced you to the DevNet community for IoT Embedded and specifically showed that there is a space to share and to post useful 5921 configurations and other companion code.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="font-size: 13.3333px;"&gt;&lt;SPAN style="font-size: 14.0pt; font-family: Calibri;"&gt;dCloud allowed you to launch in a few minutes what would take hours to build in your own lab.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 21 Aug 2018 09:00:11 GMT</pubDate>
      <guid>https://community.cisco.com/t5/networking-documents/cisco-dcloud-lab-integrated-routing-and-bridging-irb-lab-using/ta-p/3692002</guid>
      <dc:creator>fcolumbu</dc:creator>
      <dc:date>2018-08-21T09:00:11Z</dc:date>
    </item>
    <item>
      <title>Rugged routers enable the network-centric battlefield</title>
      <link>https://community.cisco.com/t5/networking-documents/rugged-routers-enable-the-network-centric-battlefield/ta-p/3691967</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The feature article runs from Page 6 - 15, with quotes from Cisco’s Darrel Beach, CSE, and from our customers.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="text-decoration: underline;"&gt;Article Summary and Introduction:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;"The vetronics architectures of today’s military armored combat vehicles are&lt;/P&gt;
&lt;P&gt;becoming data centers, as well as battle centers, as rugged network routers&lt;/P&gt;
&lt;P&gt;form the backbone of sharing voice, data, imagery, and video on the move."&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 21 Aug 2018 08:01:28 GMT</pubDate>
      <guid>https://community.cisco.com/t5/networking-documents/rugged-routers-enable-the-network-centric-battlefield/ta-p/3691967</guid>
      <dc:creator>fcolumbu</dc:creator>
      <dc:date>2018-08-21T08:01:28Z</dc:date>
    </item>
    <item>
      <title>Available NOW!!! - Cisco 5921 ESR comes to dCloud</title>
      <link>https://community.cisco.com/t5/networking-documents/available-now-cisco-5921-esr-comes-to-dcloud/ta-p/3691957</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;STRONG&gt;Cisco  dCloud (dcloud.cisco.com) now has a demonstration / lab for the Cisco 5921 ESR  that will give you the opportunity to demonstrate, to train and practice installing the product, and to troubleshoot common installation errors.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;H3&gt;Look for: &lt;SPAN style="line-height: 1.5em; color: #2c2c2c; font-size: 14pt; font-family: 'arial black', 'avant garde'; font-weight: bold;"&gt;Introduction to the Cisco 5921 Embedded Services Router v1&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;This demo / lab is featured in&lt;/STRONG&gt; &lt;SPAN style="font-size: 12pt; text-decoration: underline;"&gt;&lt;STRONG&gt;Internet of Everything&lt;/STRONG&gt;&lt;/SPAN&gt; &lt;STRONG&gt;and in&lt;/STRONG&gt; &lt;SPAN style="font-size: 12pt;"&gt;&lt;STRONG&gt;&lt;SPAN style="text-decoration: underline;"&gt;Training and Labs&lt;/SPAN&gt; categories.&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;&lt;STRONG&gt;&lt;BR /&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;&lt;STRONG&gt;If you visit &lt;A class="jive_macro jive_macro_community" jivemacro="community" ___default_attr="5277" data-orig-content="The specified space was not found." target="_blank"&gt;The specified space was not found.&lt;/A&gt; you will find additional lab exercises that you can try in dCloud such as configuring IRB and Site-to-Site VPN right in your dCloud virtual session.&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;&lt;STRONG&gt;&lt;BR /&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;&lt;STRONG&gt;If you create an interesting configuration of your own, feel free to let us know and to post it in &lt;SPAN style="font-size: 16px;"&gt;&lt;STRONG&gt;&lt;A class="jive_macro jive_macro_community" jivemacro="community" ___default_attr="5277" data-orig-content="The specified space was not found." target="_blank"&gt;The specified space was not found.&lt;/A&gt; .&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;&lt;STRONG&gt;What is dCloud?&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Please view the video below:&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG class="jive_macro jive_macro_youtube" height="350" src="https://community.cisco.com/6.0.4.0/images/tiny_mce3/plugins/jiveemoticons/images/spacer.gif" width="425" jivemacro="youtube" ___default_attr="KOlwUZjeCVg" /&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 21 Aug 2018 07:49:45 GMT</pubDate>
      <guid>https://community.cisco.com/t5/networking-documents/available-now-cisco-5921-esr-comes-to-dcloud/ta-p/3691957</guid>
      <dc:creator>fcolumbu</dc:creator>
      <dc:date>2018-08-21T07:49:45Z</dc:date>
    </item>
    <item>
      <title>Why Cisco Embedded Networks?</title>
      <link>https://community.cisco.com/t5/networking-documents/why-cisco-embedded-networks/ta-p/3691952</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Cisco Embedded Networks products provide reliable, highly secure operation in the most harsh environments and extreme temperatures to meet the most demanding applications.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Designed for use in public safety, transportation, defense, oil and gas exploration, energy and mining, Cisco Embedded Services products can bring your business closer to the benefits of the IoT.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;H2&gt;Benefit from Embedded Services Products&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;Protect your investment with a platform that adapts to new features, capabilities, capacity, and applications.&lt;/LI&gt;
&lt;LI&gt;Optimize connectivity and enhance your users' experiences, even when bandwidth is limited.&lt;/LI&gt;
&lt;LI&gt;Increase flexibility; use our products in a wide range of networking equipment and systems.&lt;/LI&gt;
&lt;LI&gt;Deliver new capabilities and services by integrating network functions with third-party technologies.&lt;/LI&gt;
&lt;LI&gt;Protect your network from unauthorized access with user and device authentication, and identity and threat management.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;&lt;STRONG&gt;Please view our video to learn more:&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG class="jive_macro jive_macro_youtube" height="350" src="https://community.cisco.com/6.0.4.0/images/tiny_mce3/plugins/jiveemoticons/images/spacer.gif" width="425" jivemacro="youtube" ___default_attr="cTxuV5YlzSs" /&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 21 Aug 2018 07:45:52 GMT</pubDate>
      <guid>https://community.cisco.com/t5/networking-documents/why-cisco-embedded-networks/ta-p/3691952</guid>
      <dc:creator>dbonagir</dc:creator>
      <dc:date>2018-08-21T07:45:52Z</dc:date>
    </item>
    <item>
      <title>Devnet Learning Lab Errata</title>
      <link>https://community.cisco.com/t5/devnet-sandbox-documents/devnet-learning-lab-errata/ta-p/3691902</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;&amp;nbsp;Errata:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In the Cisco Cloud Platform Introduction Lab, step 6: AMPI Cluster Creation, the notes instruct the user to click on "Expand Endpoints".&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The Swagger UI has changed the option to "Expand Operations".&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Best wishes&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Chris&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Fri, 01 Mar 2019 11:27:14 GMT</pubDate>
      <guid>https://community.cisco.com/t5/devnet-sandbox-documents/devnet-learning-lab-errata/ta-p/3691902</guid>
      <dc:creator>cjaecker</dc:creator>
      <dc:date>2019-03-01T11:27:14Z</dc:date>
    </item>
    <item>
      <title>A simple webex teams webhook in Python</title>
      <link>https://community.cisco.com/t5/collaboration-documents/a-simple-webex-teams-webhook-in-python/ta-p/3691304</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;Hi folks,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I am working on a Webex Teams Bot. It was quite complicated to find all the necessary information to have a running webhook in python. Therefore, I am sharing a simple way to do it here.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It is necessary to have&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;-Flask: will be used to have your code acting as a small websever.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;-Ngrok: Allows you to redirect traffic from a public URL to your machine. Available on&amp;nbsp;&lt;A href="https://ngrok.com/&amp;nbsp;" target="_blank"&gt;https://ngrok.com/&amp;nbsp;&lt;/A&gt; , it's free.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Basically, if you open ngrok, you will have access to an URL on which your machine will be reachable. By using the command ngrok http 5000, I am now listening on localhost:5000. All traffic for&amp;nbsp;&lt;SPAN style="font-family: inherit;"&gt;&lt;A href="http://5a045288.ngrok.io" target="_blank"&gt;http://5a045288.ngrok.io&lt;/A&gt; will be redirected to it.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screen Shot 2018-08-20 at 10.55.31.png" style="width: 532px;"&gt;&lt;img src="https://community.cisco.com/t5/image/serverpage/image-id/17147i632EB4C767CC9395/image-size/large?v=v2&amp;amp;px=999" role="button" title="Screen Shot 2018-08-20 at 10.55.31.png" alt="Screen Shot 2018-08-20 at 10.55.31.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If we retrieve this address in our python code. It shouldn't be a problem to make a webook in a short script.&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;SPAN&gt;from &lt;/SPAN&gt;__future__ &lt;SPAN&gt;import &lt;/SPAN&gt;print_function &lt;SPAN&gt;# Needed if you want to have console output using Flask&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;requests&lt;BR /&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;sys&lt;BR /&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;json&lt;BR /&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;os&lt;BR /&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;time&lt;BR /&gt;&lt;SPAN&gt;from &lt;/SPAN&gt;flask &lt;SPAN&gt;import &lt;/SPAN&gt;Flask&lt;SPAN&gt;, &lt;/SPAN&gt;request&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;token = &lt;SPAN&gt;'Enter your bot access_token here !'  # You can get it on https://developer.webex.com/endpoint-messages-post.html&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;BR /&gt;app = Flask(__name__)&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;@app.route&lt;/SPAN&gt;(&lt;SPAN&gt;"/"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;methods&lt;/SPAN&gt;=[&lt;SPAN&gt;'POST'&lt;/SPAN&gt;])    &lt;SPAN&gt;# all request for localhost:5000/  will reach this method&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;def &lt;/SPAN&gt;&lt;SPAN&gt;webhook&lt;/SPAN&gt;():&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;# Get the json data&lt;BR /&gt;&lt;/SPAN&gt;    json = request.json&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;# Retrieving message ID, person ID, email and room ID from message received&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;    message_id = json[&lt;SPAN&gt;"data"&lt;/SPAN&gt;][&lt;SPAN&gt;"id"&lt;/SPAN&gt;]&lt;BR /&gt;    user_id = json[&lt;SPAN&gt;"data"&lt;/SPAN&gt;][&lt;SPAN&gt;"personId"&lt;/SPAN&gt;]&lt;BR /&gt;    email = json[&lt;SPAN&gt;"data"&lt;/SPAN&gt;][&lt;SPAN&gt;"personEmail"&lt;/SPAN&gt;]&lt;BR /&gt;    room_id = json[&lt;SPAN&gt;"data"&lt;/SPAN&gt;][&lt;SPAN&gt;"roomId"&lt;/SPAN&gt;]&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;print &lt;/SPAN&gt;(message_id&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;file &lt;/SPAN&gt;= sys.stdout)&lt;BR /&gt;    &lt;SPAN&gt;print&lt;/SPAN&gt;(user_id&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;file&lt;/SPAN&gt;=sys.stdout)&lt;BR /&gt;    &lt;SPAN&gt;print&lt;/SPAN&gt;(email&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;file&lt;/SPAN&gt;=sys.stdout)&lt;BR /&gt;    &lt;SPAN&gt;print&lt;/SPAN&gt;(room_id&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;file&lt;/SPAN&gt;=sys.stdout)&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;if &lt;/SPAN&gt;user_id != &lt;SPAN&gt;'Y2lzY29zcGFyazovL3VzL1BFT1BMRS85M2ViYTZlMi01ZDk2LTRhMmUtYjEyNy1hNzA5YWJjY2NlMDM'&lt;/SPAN&gt;:&lt;BR /&gt;&lt;BR /&gt;        &lt;SPAN&gt;#Loading the message with the message ID&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;global &lt;/SPAN&gt;token  &lt;SPAN&gt;#Retrieving token from Global variable&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        header = {&lt;SPAN&gt;"Authorization"&lt;/SPAN&gt;: &lt;SPAN&gt;"Bearer %s" &lt;/SPAN&gt;% token}&lt;BR /&gt;        get_rooms_url = &lt;SPAN&gt;"https://api.ciscospark.com/v1/messages/" &lt;/SPAN&gt;+ message_id&lt;BR /&gt;        api_response = requests.get(get_rooms_url&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;headers&lt;/SPAN&gt;=header&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;verify&lt;/SPAN&gt;=&lt;SPAN&gt;False&lt;/SPAN&gt;)&lt;BR /&gt;        response_json = api_response.json()&lt;BR /&gt;        message = response_json[&lt;SPAN&gt;"text"&lt;/SPAN&gt;]&lt;BR /&gt;        &lt;SPAN&gt;print&lt;/SPAN&gt;(message&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;file&lt;/SPAN&gt;= sys.stdout)&lt;BR /&gt;&lt;BR /&gt;        &lt;SPAN&gt;print&lt;/SPAN&gt;(&lt;SPAN&gt;'******************'&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;file&lt;/SPAN&gt;=sys.stdout)&lt;BR /&gt;&lt;BR /&gt;        # You can do whatever you want with the message,person_id,room_id over here !&lt;BR /&gt;&lt;BR /&gt;        &lt;SPAN&gt;return &lt;/SPAN&gt;&lt;SPAN&gt;"Success!"&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;else&lt;/SPAN&gt;:&lt;BR /&gt;&lt;BR /&gt;        &lt;SPAN&gt;return &lt;/SPAN&gt;&lt;SPAN&gt;"It's my own messages ... ignoring it"&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;os.popen(&lt;SPAN&gt;"pkill ngrok"&lt;/SPAN&gt;) &lt;SPAN&gt;# clearing previous sessions of ngrok (if any)&lt;BR /&gt;&lt;/SPAN&gt;os.popen(&lt;SPAN&gt;"ngrok http 5000 &amp;amp;"&lt;/SPAN&gt;)  &lt;SPAN&gt;# Opening Ngrok in background&lt;BR /&gt;&lt;/SPAN&gt;time.sleep(&lt;SPAN&gt;5&lt;/SPAN&gt;) &lt;SPAN&gt;#Leaving some time to Ngrok to open&lt;BR /&gt;&lt;/SPAN&gt;term_output_json = os.popen(&lt;SPAN&gt;'curl http://127.0.0.1:4040/api/tunnels'&lt;/SPAN&gt;).read()   &lt;SPAN&gt;# Getting public URL on which NGROK is listening to&lt;BR /&gt;&lt;/SPAN&gt;tunnel_info = json.loads(term_output_json)&lt;BR /&gt;public_url = tunnel_info[&lt;SPAN&gt;'tunnels'&lt;/SPAN&gt;][&lt;SPAN&gt;0&lt;/SPAN&gt;][&lt;SPAN&gt;'public_url'&lt;/SPAN&gt;] &lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;# Registering Webhook&lt;BR /&gt;&lt;/SPAN&gt;header = {&lt;SPAN&gt;"Authorization"&lt;/SPAN&gt;: &lt;SPAN&gt;"Bearer %s" &lt;/SPAN&gt;% token&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"content-type"&lt;/SPAN&gt;: &lt;SPAN&gt;"application/json"&lt;/SPAN&gt;}&lt;BR /&gt;requests.packages.urllib3.disable_warnings() #removing SSL warnings&lt;BR /&gt;post_message_url = &lt;SPAN&gt;"https://api.ciscospark.com/v1/webhooks"&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;# Preparing the payload to register. We are only interested in messages here, but feel free to change it&lt;BR /&gt;&lt;/SPAN&gt;payload = {&lt;BR /&gt;    &lt;SPAN&gt;"resource"&lt;/SPAN&gt;: &lt;SPAN&gt;"messages"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;"event"&lt;/SPAN&gt;: &lt;SPAN&gt;"all"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;"targetUrl"&lt;/SPAN&gt;: public_url&lt;SPAN&gt;,&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;"name"&lt;/SPAN&gt;: &lt;SPAN&gt;"MyWonderfulWebHook"&lt;BR /&gt;&lt;/SPAN&gt;}&lt;BR /&gt;&lt;BR /&gt;api_response = requests.post(post_message_url&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;json&lt;/SPAN&gt;=payload&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;headers&lt;/SPAN&gt;=header&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;verify&lt;/SPAN&gt;=&lt;SPAN&gt;False&lt;/SPAN&gt;) &lt;SPAN&gt;#Registering webhook&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;if &lt;/SPAN&gt;api_response.status_code != &lt;SPAN&gt;200&lt;/SPAN&gt;:&lt;BR /&gt;    &lt;SPAN&gt;print &lt;/SPAN&gt;(&lt;SPAN&gt;'Webhook registration Error !'&lt;/SPAN&gt;)&lt;BR /&gt;    &lt;SPAN&gt;exit&lt;/SPAN&gt;(&lt;SPAN&gt;0&lt;/SPAN&gt;)&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;if &lt;/SPAN&gt;__name__ == &lt;SPAN&gt;'__main__'&lt;/SPAN&gt;:&lt;BR /&gt;    app.run(&lt;SPAN&gt;host&lt;/SPAN&gt;=&lt;SPAN&gt;'localhost'&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;use_reloader&lt;/SPAN&gt;=&lt;SPAN&gt;True&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;debug&lt;/SPAN&gt;=&lt;SPAN&gt;True&lt;/SPAN&gt;)&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Once you have implemented a logic when receiving the message, you can start conversing with your bot&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screen Shot 2018-08-20 at 11.07.04.png" style="width: 274px;"&gt;&lt;img src="https://community.cisco.com/t5/image/serverpage/image-id/17149iC3EF464CF569A94B/image-size/large?v=v2&amp;amp;px=999" role="button" title="Screen Shot 2018-08-20 at 11.07.04.png" alt="Screen Shot 2018-08-20 at 11.07.04.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Here is what I can see from the pycharm console:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screen Shot 2018-08-20 at 11.07.10.png" style="width: 590px;"&gt;&lt;img src="https://community.cisco.com/t5/image/serverpage/image-id/17150i2323F9FA289851FF/image-size/large?v=v2&amp;amp;px=999" role="button" title="Screen Shot 2018-08-20 at 11.07.10.png" alt="Screen Shot 2018-08-20 at 11.07.10.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I hope it helps you making your own bot on webex teams!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Kind regards,&lt;/P&gt;
&lt;P&gt;Jonathan&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Fri, 01 Mar 2019 11:40:10 GMT</pubDate>
      <guid>https://community.cisco.com/t5/collaboration-documents/a-simple-webex-teams-webhook-in-python/ta-p/3691304</guid>
      <dc:creator>jolefebv</dc:creator>
      <dc:date>2019-03-01T11:40:10Z</dc:date>
    </item>
    <item>
      <title>Call Studio Custom Logging</title>
      <link>https://community.cisco.com/t5/collaboration-documents/call-studio-custom-logging/ta-p/3684558</link>
      <description>&lt;DIV class="lia-message-template-symptoms-zone"&gt;
&lt;H2&gt;Symptoms&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;I wanted to test the custom logging functionality.&lt;/P&gt;
&lt;/DIV&gt;
&lt;DIV class="lia-message-template-diagnosis-zone"&gt;
&lt;H2&gt;Diagnosis&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;There's an easy Library to use.&lt;/P&gt;
&lt;/DIV&gt;
&lt;DIV class="lia-message-template-solution-zone"&gt;
&lt;H2&gt;Solution&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;I made a sample class that matches the Activity Log for Element entry events.&lt;/P&gt;
&lt;PRE&gt;package logging;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import com.audium.server.global.LoggerApplicationAPI;
import com.audium.server.logger.ApplicationLoggerBase;
import com.audium.server.logger.LoggerPlugin;
import com.audium.server.logger.events.ApplicationEvent;
import com.audium.server.logger.events.ElementEnterEvent;
import com.audium.server.logger.events.EventException;
import com.audium.server.logger.events.IEventIDs;


/**
 * Programming guide:
 * https://www.cisco.com/c/en/us/td/docs/voice_ip_comm/cust_contact/contact_center/customer_voice_portal/cvp11_6/programming/guide/ccvp_b_programming-guide-for-cisco-unified-11-6/ccvp_b_programming-guide-for-cisco-unified_chapter_01100.html#CCVP_TP_A55E3990_00
 */
public class CustomAppLogger1 extends ApplicationLoggerBase implements LoggerPlugin {

  private static final String DELIMITER = ",";

  private BufferedWriter writer = null;


  /**
   * Called on app start.
   */
  @Override
  public void initialize(File configFile, LoggerApplicationAPI globalAndApplicationData) throws EventException {
    eventsToListenFor.add(ELEMENT_ENTER_EVENT_ID);
    eventsToListenFor.add(ELEMENT_DEFAULT_INTERACTION_EVENT_ID);

    Path logFilePath = Paths.get(getLogFileDirectory(), "customLogFile.log");

    try {
      writer = new BufferedWriter(new FileWriter(logFilePath.toString()));
    } catch (IOException e) {
      e.printStackTrace();
    }

  }

  /**
   * Called on app end, restart, redeploy
   */
  @Override
  public void destroy(LoggerApplicationAPI globalAndApplicationData) {
    if (writer != null)
      try {
        writer.close();
      } catch (IOException e) {
        e.printStackTrace();
      }

  }

  @Override
  public void log(ApplicationEvent eventAndEnvironmentInformation) throws EventException {
    String eventID = eventAndEnvironmentInformation.getID();

    if (eventID.equals(IEventIDs.ELEMENT_ENTER_EVENT_ID)) {
      logElementEnterEvent(eventAndEnvironmentInformation);
    }
  }

  private void logElementEnterEvent(ApplicationEvent event) {
    ElementEnterEvent enterEvent = (ElementEnterEvent) event;

    SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy kk:mm:ss.SSS");
    try {
      writer.append(enterEvent.getLoggerAPI().getSessionId()).append(DELIMITER);
      Calendar cal = enterEvent.getTimestamp();
      sdf.setTimeZone(cal.getTimeZone());
      writer.append(sdf.format(cal.getTime())).append(DELIMITER);
      writer.append(enterEvent.getElementName()).append(DELIMITER);
      writer.append("enter").append(DELIMITER);
      writer.append(""); // description of what happened, no delimiter after last item
      writer.append("\n");
    } catch (Exception e) {
      e.printStackTrace();
      try {
        writer.append("\nexception=" + e.toString());
      } catch (IOException ioe) {
        ioe.printStackTrace();
      }
    } finally {
      if (writer != null) {
        try {
          writer.append("\n");
          writer.flush();
        } catch (IOException ioe) {
          ioe.printStackTrace();
        }
      }
    }
  }
}
&lt;/PRE&gt;
&lt;/DIV&gt;</description>
      <pubDate>Thu, 09 Aug 2018 00:25:35 GMT</pubDate>
      <guid>https://community.cisco.com/t5/collaboration-documents/call-studio-custom-logging/ta-p/3684558</guid>
      <dc:creator>Quigath</dc:creator>
      <dc:date>2018-08-09T00:25:35Z</dc:date>
    </item>
    <item>
      <title>NSO Dev Days: Service Requirements Capture presentation</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/nso-dev-days-service-requirements-capture-presentation/ta-p/3681811</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;&lt;SPAN&gt;Maciej Malysz and Jorge Somavilla's presentation on how to capture requirements for NSO projects. Presented at NSO Developer Days 2018.&lt;/SPAN&gt;&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Mon, 06 Aug 2018 08:15:27 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/nso-dev-days-service-requirements-capture-presentation/ta-p/3681811</guid>
      <dc:creator>Jan Lindblad</dc:creator>
      <dc:date>2018-08-06T08:15:27Z</dc:date>
    </item>
    <item>
      <title>NSO Community Guidelines and Tagging - Updated!</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/nso-community-guidelines-and-tagging-updated/ta-p/3680811</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;&lt;SPAN&gt;Learn the key guidelines and tagging information for the NSO Developer Hub.&amp;nbsp; Please make yourself familiar with this document and use the tagging system.&amp;nbsp; This will help with usability.&lt;/SPAN&gt;&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Mon, 20 Aug 2018 07:57:01 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/nso-community-guidelines-and-tagging-updated/ta-p/3680811</guid>
      <dc:creator>Nicklas Wagerth</dc:creator>
      <dc:date>2018-08-20T07:57:01Z</dc:date>
    </item>
    <item>
      <title>Verification Tool</title>
      <link>https://community.cisco.com/t5/cisco-kinetic-documents/verification-tool/ta-p/3678711</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P&gt;&amp;nbsp;This is tool used for verifying the connectivity to Kinetic.&amp;nbsp;&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Tue, 31 Jul 2018 23:23:51 GMT</pubDate>
      <guid>https://community.cisco.com/t5/cisco-kinetic-documents/verification-tool/ta-p/3678711</guid>
      <dc:creator>junxu2</dc:creator>
      <dc:date>2018-07-31T23:23:51Z</dc:date>
    </item>
    <item>
      <title>Cisco Live Barcelona 2018: Cisco NSO Carrier Automation Deployment - Telefonica</title>
      <link>https://community.cisco.com/t5/nso-developer-hub-documents/cisco-live-barcelona-2018-cisco-nso-carrier-automation/ta-p/3644382</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;IFRAME frameborder="0" width="425" height="350" src="https://www.youtube.com/embed/8qVZfFy4lmw" allowfullscreen=""&gt;&lt;/IFRAME&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt;"&gt;Shared from the Cisco Live Europe YouTube channel.&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 01 Mar 2019 12:22:42 GMT</pubDate>
      <guid>https://community.cisco.com/t5/nso-developer-hub-documents/cisco-live-barcelona-2018-cisco-nso-carrier-automation/ta-p/3644382</guid>
      <dc:creator>sotoh</dc:creator>
      <dc:date>2019-03-01T12:22:42Z</dc:date>
    </item>
  </channel>
</rss>

