<!-- 
RSS generated by JIRA (9.4.5#940005-sha1:e3094934eac4fd8653cf39da58f39364fb9cc7c1) at Sat Feb 10 06:02:14 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>Akraino JIRA</title>
    <link>https://jira.akraino.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.4.5</version>
        <build-number>940005</build-number>
        <build-date>11-04-2023</build-date>
    </build-info>


<item>
            <title>[IEC-24] [IEC][SEBA] Change SEBA deployment method to replicate upstream Opencord SIAB</title>
                <link>https://jira.akraino.org/browse/IEC-24</link>
                <project id="10201" key="IEC">Integrated Edge Cloud</project>
                    <description>&lt;p&gt;Currently we deploy SEBA on top of IEC by using the simpler approach, with three set of charts: cord-platform -&amp;gt; seba -&amp;gt; att-workflow.&lt;br/&gt;
Although this method is mentioned in the Opencord Guide and it should work fine, in practice it seems to fail due to unpredictable race conditions, on both x86 and aarch64 setups (verified mostly on virtual PODs but could affect baremetal as well).&lt;/p&gt;

&lt;p&gt;Looking at the upstream Opencord SEBA-in-a-Box Jenkins jobs, we see that the deployment of SEBA is done at a more granular level, component by component. This is described in the Opencord Guide:&lt;br/&gt;
&lt;a href=&quot;https://guide.opencord.org/cord-6.1/profiles/seba/install.html#alternatively-install-seba-as-separate-components&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://guide.opencord.org/cord-6.1/profiles/seba/install.html#alternatively-install-seba-as-separate-components&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For this purpose we will need to make use of the opencord automation-tools repo which can deploy SEBA-in-a-Box by running &quot;make siab&quot;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/opencord/automation-tools/blob/master/seba-in-a-box/Makefile&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/opencord/automation-tools/blob/master/seba-in-a-box/Makefile&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Similar work has been done for integrating PONSim support in IEC ci-management:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://gerrit.akraino.org/r/#/c/ci-management/+/1243/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://gerrit.akraino.org/r/#/c/ci-management/+/1243/&lt;/a&gt;&lt;/p&gt;</description>
                <environment></environment>
        <key id="10755">IEC-24</key>
            <summary>[IEC][SEBA] Change SEBA deployment method to replicate upstream Opencord SIAB</summary>
                <type id="10002" iconUrl="https://jira.akraino.org/secure/viewavatar?size=xsmall&amp;avatarId=10318&amp;avatarType=issuetype">Task</type>
                                            <priority id="3" iconUrl="https://jira.akraino.org/images/icons/priorities/medium.svg">Medium</priority>
                        <status id="10001" iconUrl="https://jira.akraino.org/" description="">Done</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="10000">Done</resolution>
                                        <assignee username="ciprian.barbu.enea">Ciprian Barbu</assignee>
                                    <reporter username="ciprian.barbu.enea">Ciprian Barbu</reporter>
                        <labels>
                            <label>Release_2</label>
                    </labels>
                <created>Fri, 20 Sep 2019 13:10:11 +0000</created>
                <updated>Mon, 6 Apr 2020 11:51:57 +0000</updated>
                            <resolved>Mon, 6 Apr 2020 11:51:57 +0000</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="11187" author="ciprian.barbu.enea" created="Mon, 6 Apr 2020 11:48:45 +0000"  >&lt;p&gt;I&apos;ve added charts-helm-charts-cord-7.0-arm64.xlsx spreadsheet, similar to the -amd64 version but pointing to the final image locations and versions for the current stable SEBA version that we have verified on aarch64.&lt;/p&gt;

&lt;p&gt;At the moment the scope of this Jira card is complete, although I would like to remove the old charts-seba_charts spreadsheets before closing.&lt;/p&gt;</comment>
                            <comment id="11166" author="ciprian.barbu.enea" created="Wed, 25 Mar 2020 09:44:27 +0000"  >&lt;p&gt;The work for switching the installation method to use automation-tools is now complete, after the following change has been merged:&lt;br/&gt;
&lt;a href=&quot;https://gerrit.akraino.org/r/c/iec/+/3305&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://gerrit.akraino.org/r/c/iec/+/3305&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At this very moment, the scripts use the helm charts that have been added as git submodules in iec, which in turn uses Docker images from personal Docker hub repositories. We are working to copy these to the iecedge space.&lt;/p&gt;

&lt;p&gt;When this is done, I will also post a spreadsheet indicating the current Docker images locations and versions, for clarity.&lt;/p&gt;</comment>
                            <comment id="11106" author="ciprian.barbu.enea" created="Mon, 17 Feb 2020 13:12:35 +0000"  >&lt;p&gt;I have added a new version of the charts-patchset-13027.xls spreadsheet and removed the old version, as it missed one set of K8S PODs (kafka-0,1,2).&lt;/p&gt;

&lt;p&gt;The new version also contains the additional column indicating the helm template that defines the specified POD, which is helpful for better understanding how the POD comes to exist in the deployment, and what containers it defines. Granted there could be additional information showing the set of containers defined in each template, but this information can be extracted from the &quot;Image&quot; column in the spreadsheet, no matter if the image defines an initContainer or a regular container.&lt;/p&gt;

&lt;p&gt;It should suffice for achieving our goal of understanding what is the set of charts and images needed for deploying a minimal SEBA application, and help us track the changes that happened in upstream.&lt;/p&gt;

&lt;p&gt;I have also added a new spreadsheet called charts-iecedge-seba-1.0.0.xlsx, which is basically the same as charts-seba_charts.xlslx, but with additions and corrections. We should probably delete the old spreadsheet.&lt;/p&gt;</comment>
                            <comment id="11043" author="valentin.radulescu" created="Tue, 28 Jan 2020 11:30:29 +0000"  >&lt;p&gt;Hi,&lt;/p&gt;

&lt;p&gt;Attached charts-seba_charts_v1 contains a new column added with the template for each pod.&lt;/p&gt;

&lt;p&gt;Valentin Radulescu&lt;/p&gt;</comment>
                            <comment id="11034" author="valentin.radulescu" created="Wed, 22 Jan 2020 15:13:26 +0000"  >&lt;p&gt;Hi,&lt;/p&gt;

&lt;p&gt;Attached charts-seba_charts contains the versions used in seba for arm.&lt;/p&gt;

&lt;p&gt;Valentin Radulescu&lt;/p&gt;</comment>
                            <comment id="10976" author="ciprian.barbu.enea" created="Fri, 13 Dec 2019 16:36:43 +0000"  >&lt;p&gt;I started doing some investigation work, with the goal of better understanding what changes we need to make to our own set of charts and Docker images.&lt;/p&gt;

&lt;p&gt;One of the things I discovered while investigating the failed SiaB robot tests (as per &lt;a href=&quot;https://jira.akraino.org/browse/IEC-25&quot; title=&quot;[IEC][SEBA][PONSim] Errors while running SIAB robot tests&quot; class=&quot;issue-link&quot; data-issue-key=&quot;IEC-25&quot;&gt;&lt;del&gt;IEC-25&lt;/del&gt;&lt;/a&gt;), is that even for SEBA and SiaB stable (6.1.0) Opencord does not keep a fixed baseline of charts and Docker images. I find this at least strange, but there are clearly good reason to do so, probably it was the only easy way to ensure that the stable branch still builds and runs correctly, while making maintenance easy on the log run.&lt;/p&gt;

&lt;p&gt;This is in contrast with the situation of SEBA in IEC, since the charts and images have been ported a while ago (beginning of 2019) and have stayed mostly the same ever since. This is, by the way, a strong reason to work together with upstream and make sure SEBA is properly maintained and verified on ARM ecosystem.&lt;/p&gt;

&lt;p&gt;To start with, I needed to find out what was the base revision of the charts when they were first forked to our IEC SEBA charts repo &lt;span class=&quot;error&quot;&gt;&amp;#91;1&amp;#93;&lt;/span&gt;. In truth, there was no actual fork done, instead the charts have been downloaded from &lt;a href=&quot;https://charts.opencord.org/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://charts.opencord.org&lt;/a&gt;, decompressed and added to a new repo. I don&apos;t know why this was done, but I believe it was a bad idea, since this is a live repo and is updated regularly.&lt;/p&gt;

&lt;p&gt;However, I tracked down the way the repo was populated and found out that the source of it is cord-charts-repo in opencord &lt;span class=&quot;error&quot;&gt;&amp;#91;2&amp;#93;&lt;/span&gt;. This stores all the released charts as archives, just as charts.opencord.org, thus being a set of snapshots of the charts repository. The actual source of the charts (at least those owned by opencord), is helm-charts &lt;span class=&quot;error&quot;&gt;&amp;#91;3&amp;#93;&lt;/span&gt;, but&#160;&lt;span class=&quot;error&quot;&gt;&amp;#91;2&amp;#93;&lt;/span&gt; is important because it holds the &quot;combined&quot; charts for cord-platform and seba, which specify everything needed to install SEBA, including charts from outside of Opencord.&lt;/p&gt;

&lt;p&gt;Having established these, the next step was to identify the set of charts corresponding with the charts in seba-charts as described by &lt;span class=&quot;error&quot;&gt;&amp;#91;1&amp;#93;&lt;/span&gt;. There is no exact, easy way to find it, so I just eyeballed it to be this commit &lt;span class=&quot;error&quot;&gt;&amp;#91;4&amp;#93;&lt;/span&gt;&#160;or something around it, based on the date. I also unpacked cord-platform-6.1.0.tgz,&#160;seba-1.0.0.tgz and&#160;att-workflow-1.0.2.tgz and diffed them to their counterparts in&#160;iecedge seba_charts &lt;span class=&quot;error&quot;&gt;&amp;#91;1&amp;#93;&lt;/span&gt;&#160;and they matched, so this was good enough for me.&lt;/p&gt;

&lt;p&gt;The next step was to determine all of the sub-charts that are actually used in our deployments and the images that are used, together with their location (Docker repository) and versions (Docker tags). This meant traversing all the charts and sub-charts and inspecting all the yaml files which define Helm Deployment, DaemonSet, Job and other similar Helm metadata type which actually create containers, being them ephemeral (e.g. tosca-loader jobs) or persistent.&lt;/p&gt;

&lt;p&gt;Also, some yaml templates are conditioned by boolean enabled-like values in the chart, which raises the question of what would happen if someone would try to enable them for aarch64 but there are no aarch64 version of those images. The short answer is that these kind of situation are not supported by default, and there will likely not be a plan to support them any time soon. So for now we will stick with supporting exactly the same images that are being tested regularly by Opencord.&lt;/p&gt;

&lt;p&gt;Finally, I tried to find a good way to represent all this information for the two situations we are interested in:&lt;br/&gt;
 A. SEBA deployed using the &quot;combined&quot; charts, on x86_64, using the base revision as identified by &lt;span class=&quot;error&quot;&gt;&amp;#91;2&amp;#93;&lt;/span&gt;. Note that for aarch64 the actual values of chart versions and Docker images are actually the ones stored in iecedge seba_charts&#160;master branch&#160;&lt;span class=&quot;error&quot;&gt;&amp;#91;5&amp;#93;&lt;/span&gt;, but it is easy enough to spot the differences.&lt;br/&gt;
 B. SEBA deployed using the individual charts, on x86_64, as performed by the Jenkins SiaB stable jobs &lt;span class=&quot;error&quot;&gt;&amp;#91;6&amp;#93;&lt;/span&gt;. It is after all SiaB that we are after, and this is the actual Job that tests SiaB in upstream.&lt;/p&gt;

&lt;p&gt;For now I have settled on representing the charts and subcharts, together with the Docker images used and their tags, in a spreadsheet. For now I only have the representation for scenario A above, showing the values extracted from cord-charts-repo (again, not from iecedge seba_charts). I have attached this as&#160;charts-patchset-13027.xlsx&lt;/p&gt;

&lt;p&gt;The pattern should be easy to understand, columns A, B and C show charts and subcharts. Each chart or subchart can have their own templates and/or further subcharts. I have used different shades of blue to depict the &quot;imbrication&quot; level. The images are colored as green, again using different shades depending on the imbrication level. Also, each chart is clearly marked with solid outside borders.&lt;/p&gt;

&lt;p&gt;I hope this makes sense for someone seeing it for the first time, it does make sense to me. The next step is to do the same for scenario B and then start comparing them. This, in my opinion, will make very easy to determine what images we need to update or port on aarch64, so that scenario B can be put in effect for aarch64.&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;1&amp;#93;&lt;/span&gt;&#160;&lt;a href=&quot;https://github.com/iecedge/seba_charts/commit/c65095b35c1aa82e270e0784db2dfb67f1ea09e0&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/iecedge/seba_charts/commit/c65095b35c1aa82e270e0784db2dfb67f1ea09e0&lt;/a&gt;&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;2&amp;#93;&lt;/span&gt;&#160;&lt;a href=&quot;https://gerrit.opencord.org/gitweb?p=cord-charts-repo.git;a=summary&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://gerrit.opencord.org/gitweb?p=cord-charts-repo.git;a=summary&lt;/a&gt;&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;3&amp;#93;&lt;/span&gt;&#160;&lt;a href=&quot;https://gerrit.opencord.org/gitweb?p=helm-charts.git;a=summary&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://gerrit.opencord.org/gitweb?p=helm-charts.git;a=summary&lt;/a&gt;&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;4&amp;#93;&lt;/span&gt;&#160;&lt;a href=&quot;https://gerrit.opencord.org/gitweb?p=cord-charts-repo.git;a=commit;h=b036eac6cb96094bc5792e7e0165581a07c6c65e&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://gerrit.opencord.org/gitweb?p=cord-charts-repo.git;a=commit;h=b036eac6cb96094bc5792e7e0165581a07c6c65e&lt;/a&gt;&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;5&amp;#93;&lt;/span&gt;&#160;&lt;a href=&quot;https://github.com/iecedge/seba_charts/tree/master&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/iecedge/seba_charts/tree/master&lt;/a&gt;&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;6&amp;#93;&lt;/span&gt;&#160;&lt;a href=&quot;https://jenkins.opencord.org/view/SIAB/job/seba-in-a-box-build-test-stable/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://jenkins.opencord.org/view/SIAB/job/seba-in-a-box-build-test-stable/&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10003">
                    <name>Relates</name>
                                            <outwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="11069">IEC-28</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                            <attachment id="10404" name="charts-helm-charts-cord-7.0-amd64.xlsx" size="17870" author="ciprian.barbu.enea" created="Mon, 9 Mar 2020 14:08:18 +0000"/>
                            <attachment id="10409" name="charts-helm-charts-cord-7.0-arm64.xlsx" size="16707" author="ciprian.barbu.enea" created="Mon, 6 Apr 2020 11:45:55 +0000"/>
                            <attachment id="10403" name="charts-iecedge-seba-1.0.0.xlsx" size="22100" author="ciprian.barbu.enea" created="Mon, 17 Feb 2020 13:06:33 +0000"/>
                            <attachment id="10402" name="charts-patchset-13027.xlsx" size="21724" author="ciprian.barbu.enea" created="Mon, 17 Feb 2020 13:06:24 +0000"/>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                        <customfield id="customfield_10000" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10105" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i00070:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    </customfields>
    </item>
</channel>
</rss>