<!-- 
RSS generated by JIRA (1001.0.0-SNAPSHOT#100246-sha1:7a5c50119eb0633d306e14180817ddef5e80c75d) at Thu Feb 08 23:22:23 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 add field=key&field=summary to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>FOLIO Jira</title>
    <link>https://folio-org.atlassian.net</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>1001.0.0-SNAPSHOT</version>
        <build-number>100246</build-number>
        <build-date>07-02-2024</build-date>
    </build-info>

<item>
            <title>[FOLIO-2671] provide a workflow for building and deploying FOLIO platform-core/complete stack into dev env</title>
                <link>https://folio-org.atlassian.net/browse/FOLIO-2671</link>
                <project id="10290" key="FOLIO">FOLIO</project>
                    <description>&lt;p&gt;&lt;b&gt;Note:&lt;/b&gt; Below is a description of the automatic workflows. &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5f2840580d8b1a001bd02aae&quot; class=&quot;user-hover&quot; rel=&quot;5f2840580d8b1a001bd02aae&quot; data-account-id=&quot;5f2840580d8b1a001bd02aae&quot; accountid=&quot;5f2840580d8b1a001bd02aae&quot; rel=&quot;noreferrer&quot;&gt;Stanislav Miroshnichenko&lt;/a&gt; and &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5aa10ef7a1b38e2ee99fecb0&quot; class=&quot;user-hover&quot; rel=&quot;5aa10ef7a1b38e2ee99fecb0&quot; data-account-id=&quot;5aa10ef7a1b38e2ee99fecb0&quot; accountid=&quot;5aa10ef7a1b38e2ee99fecb0&quot; rel=&quot;noreferrer&quot;&gt;Sergiy Vysotskiy&lt;/a&gt; will propose a manual workflow for building and deploying a custom bundle into the dev environment. This may work as a temporary workaround while the automatic workflow is being implemented.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5f2840580d8b1a001bd02aae&quot; class=&quot;user-hover&quot; rel=&quot;5f2840580d8b1a001bd02aae&quot; data-account-id=&quot;5f2840580d8b1a001bd02aae&quot; accountid=&quot;5f2840580d8b1a001bd02aae&quot; rel=&quot;noreferrer&quot;&gt;Stanislav Miroshnichenko&lt;/a&gt; &lt;a href=&quot;https://github.com/folio-org/folio-org.github.io/blob/folio-rancher-onboarding/_faqs/how-to-get-started-with-rancher.md&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://github.com/folio-org/folio-org.github.io/blob/folio-rancher-onboarding/_faqs/how-to-get-started-with-rancher.md&lt;/a&gt;&lt;br/&gt;
-------------------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br/&gt;
&lt;b&gt;Deployment of baseline based on platform-core&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;1. a set of modules that comprise the &quot;core&quot; is tracked in a Teraform file (initially based on the contents of install.json from platform-core), this is similar to how folio-testing works&lt;br/&gt;
2. the baseline can be refreshed by running a bash script through Teraform or manually by upgrading modules through the Rancher UI&lt;br/&gt;
3. tracks master branches (snapshots)&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Deployment of the bundle based on platform-core&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;The pipeline in Rancher is too unstable and we need to build images in Jenkins and push them to Docker repository (docker.dev.folio.org) and make an API call to Rancher to deploy it.&lt;br/&gt;
Workflow for bundle deployment and bootstrapping backend modules:&lt;/p&gt;

&lt;p&gt;1. developer goes to the platform-core/platform-complete repo and creates a branch&lt;br/&gt;
2. then on the branch edits package.json to include the select feature branch of a UI module &lt;br/&gt;
3. in Jenkins a generic job for platform-core/complete is set up where developers can specify build parameters which include: the platform- branch, team env name (namespace), Okapi URL, Tenant Id, (if the Okapi API is authenticated, we also need user creds)&lt;br/&gt;
4. trigger the build which created a Docker image&lt;br/&gt;
5. Docker image gets pushed to Nexus local repo&lt;br/&gt;
6. Post all UI module descriptors to the local env Okapi &lt;br/&gt;
7. Deployment in Rancher: &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5f2840580d8b1a001bd02aae&quot; class=&quot;user-hover&quot; rel=&quot;5f2840580d8b1a001bd02aae&quot; data-account-id=&quot;5f2840580d8b1a001bd02aae&quot; accountid=&quot;5f2840580d8b1a001bd02aae&quot; rel=&quot;noreferrer&quot;&gt;Stanislav Miroshnichenko&lt;/a&gt; proposes to call Rancher API from the Jenkins pipeline to trigger deployment (which will use Helm under the hood) &amp;#8211; this requires tenantId, okapi URL and namespace along with Helm parameters to be specified for the Jenkins pipeline&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Deployment of individual backend modules&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;In order to deploy platform-complete we would need to individually deploy backend modules that are needed.&lt;br/&gt;
Workflow for build and deployment of individual backend modules:&lt;/p&gt;

&lt;p&gt;1. the developer triggers the backend branch build through the Rancher pipeline (in there you can specify the branch)&lt;br/&gt;
2. this builds a Docker image (not uploaded to Nexus)&lt;br/&gt;
3. generate a Module Descriptor (for the branch build) and register with local Okapi&lt;br/&gt;
4. deployment is done from within the pipeline (deployment.yaml)&lt;/p&gt;

&lt;p&gt;Since Helm, instead of Ansible, has been implemented as the method of deploying backend modules to dev environments,  there needs to be an adequate process that allows developers to deploy a FOLIO stack with the all latest versions of backend modules from master.  &lt;/p&gt;

&lt;p&gt;Note about the approach Terraform and Helm approach:&lt;/p&gt;

&lt;p&gt;1. i&lt;/p&gt;</description>
                <environment></environment>
        <key id="81711">FOLIO-2671</key>
            <summary>provide a workflow for building and deploying FOLIO platform-core/complete stack into dev env</summary>
                <type id="10003" iconUrl="https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium">Task</type>
                                            <priority id="10002" iconUrl="https://dev.folio.org/assets/jira-priority/jira-p3.svg">P3</priority>
                        <status id="6" iconUrl="https://folio-org.atlassian.net/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="green"/>
                                    <resolution id="10003">Done</resolution>
                                                        <assignee accountid="5f2840580d8b1a001bd02aae">Stanislav Miroshnichenko</assignee>
                                                                <reporter accountid="5f9abc1eb45b2e007453f423">John Malconian</reporter>
                                    <labels>
                            <label>dev-environment</label>
                    </labels>
                <created>Wed, 1 Jul 2020 13:15:37 +0000</created>
                <updated>Mon, 10 Aug 2020 13:15:30 +0000</updated>
                            <resolved>Mon, 10 Aug 2020 13:15:30 +0000</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>4</watches>
                                                                <comments>
                                                            <comment id="199300" author="5f2840580d8b1a001bd02aae" created="Mon, 6 Jul 2020 12:54:00 +0000"  >&lt;p&gt;Using a &apos;terrafom taint&apos; helps to redeploy backend modules.&lt;/p&gt;

&lt;p&gt;Please use this &lt;a href=&quot;https://github.com/folio-org-priv/folio-infrastructure/blob/FOLIO-2618/CI/terraform_rancher/recreate_modules.sh&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;shell script&lt;/a&gt;&lt;/p&gt;</comment>
                                                            <comment id="199301" author="557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d" created="Wed, 8 Jul 2020 13:51:10 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5f2840580d8b1a001bd02aae&quot; class=&quot;user-hover&quot; rel=&quot;5f2840580d8b1a001bd02aae&quot; data-account-id=&quot;5f2840580d8b1a001bd02aae&quot; accountid=&quot;5f2840580d8b1a001bd02aae&quot; rel=&quot;noreferrer&quot;&gt;Stanislav Miroshnichenko&lt;/a&gt;: the pipeline in Rancher is too unstable and we need to build images in Jenkins and push them to Docker repository (docker.dev.folio.org) and make an API call to Rancher to deploy it.&lt;br/&gt;
Workflow for bundle deployment and bootstrapping backend modules:&lt;/p&gt;

&lt;p&gt;1. developer goes to the platform-core/platform-complete repo and creates a branch&lt;br/&gt;
2. then on the branch edits package.json to include the select feature branch of a UI module &lt;br/&gt;
3. in Jenkins a generic job for platform-core/complete is set up where developers can specify build parameters which include: the platform- branch, team env name (namespace), Okapi URL, Tenant Id, (if the Okapi API is authenticated, we also need user creds)&lt;br/&gt;
4. trigger the build which created a Docker image&lt;br/&gt;
5. Docker image gets pushed to Nexus local repo&lt;br/&gt;
6. Post all UI module descriptors to the local env Okapi &lt;br/&gt;
7. Deployment in Rancher: &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5f2840580d8b1a001bd02aae&quot; class=&quot;user-hover&quot; rel=&quot;5f2840580d8b1a001bd02aae&quot; data-account-id=&quot;5f2840580d8b1a001bd02aae&quot; accountid=&quot;5f2840580d8b1a001bd02aae&quot; rel=&quot;noreferrer&quot;&gt;Stanislav Miroshnichenko&lt;/a&gt; proposes to call Rancher API from the Jenkins pipeline to trigger deployment (which will use Helm under the hood) &amp;#8211; this requires tenantId, okapi URL and namespace along with Helm parameters to be specified for the Jenkins pipeline&lt;/p&gt;

&lt;p&gt;Workflow for build and deployment of individual backend modules:&lt;/p&gt;

&lt;p&gt;1. the developer triggers the backend branch build through the Rancher pipeline (in there you can specify the branch)&lt;br/&gt;
2. this builds a Docker image (not uploaded to Nexus)&lt;br/&gt;
3. generate a Module Descriptor (for the branch build) and register with local Okapi&lt;br/&gt;
4. deployment is done from within the pipeline (deployment.yaml)&lt;/p&gt;

&lt;p&gt;Manual steps for developers;&lt;/p&gt;

&lt;p&gt;1. enable the module for selected tenant (e.g using curl with Okapi API) or create a new tenant&lt;/p&gt;

&lt;p&gt;Note: &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5f2840580d8b1a001bd02aae&quot; class=&quot;user-hover&quot; rel=&quot;5f2840580d8b1a001bd02aae&quot; data-account-id=&quot;5f2840580d8b1a001bd02aae&quot; accountid=&quot;5f2840580d8b1a001bd02aae&quot; rel=&quot;noreferrer&quot;&gt;Stanislav Miroshnichenko&lt;/a&gt; needs to research what it means add authentication for Okapi APIs.&lt;br/&gt;
&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=6291011f9c617b006a6f8d98&quot; class=&quot;user-hover&quot; rel=&quot;6291011f9c617b006a6f8d98&quot; data-account-id=&quot;6291011f9c617b006a6f8d98&quot; accountid=&quot;6291011f9c617b006a6f8d98&quot; rel=&quot;noreferrer&quot;&gt;jroot&lt;/a&gt; will file a ticket against Rancher to ask about the resource limitations&lt;/p&gt;</comment>
                                                            <comment id="199302" author="557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d" created="Fri, 17 Jul 2020 13:04:39 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5f2840580d8b1a001bd02aae&quot; class=&quot;user-hover&quot; rel=&quot;5f2840580d8b1a001bd02aae&quot; data-account-id=&quot;5f2840580d8b1a001bd02aae&quot; accountid=&quot;5f2840580d8b1a001bd02aae&quot; rel=&quot;noreferrer&quot;&gt;Stanislav Miroshnichenko&lt;/a&gt; is working on supporting teams with their individual environments so this is on hold for now.&lt;/p&gt;</comment>
                                                            <comment id="199303" author="557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d" created="Fri, 17 Jul 2020 13:08:38 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5f9abc1eb45b2e007453f423&quot; class=&quot;user-hover&quot; rel=&quot;5f9abc1eb45b2e007453f423&quot; data-account-id=&quot;5f9abc1eb45b2e007453f423&quot; accountid=&quot;5f9abc1eb45b2e007453f423&quot; rel=&quot;noreferrer&quot;&gt;John Malconian&lt;/a&gt; &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5f2840580d8b1a001bd02aae&quot; class=&quot;user-hover&quot; rel=&quot;5f2840580d8b1a001bd02aae&quot; data-account-id=&quot;5f2840580d8b1a001bd02aae&quot; accountid=&quot;5f2840580d8b1a001bd02aae&quot; rel=&quot;noreferrer&quot;&gt;Stanislav Miroshnichenko&lt;/a&gt; Guys, on Monday (20 July) please review and update the workflows captured in the description section to make sure they match exactly the steps that Stanislav will be implementing. Thanks.&lt;/p&gt;</comment>
                                                            <comment id="199304" author="5f2840580d8b1a001bd02aae" created="Wed, 22 Jul 2020 08:53:59 +0000"  >&lt;p&gt;Fixed issues and built UI Stripes bundle in Rancher pipeline.&lt;br/&gt;
1. In file &lt;a href=&quot;https://github.com/folio-org/platform-complete/blob/stripes-pipeline-unam/package.json&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;&apos;package.json&apos;&lt;/a&gt; increased memory limit to 8Gb &apos;--max-old-space-size=8192&apos;&lt;br/&gt;
2. Namespace memory limit for pipeline increased to 12Gb&lt;br/&gt;
3. To &lt;a href=&quot;https://github.com/folio-org/platform-complete/blob/stripes-pipeline-unam/.rancher-pipeline.yml&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;&apos;.rancher-pipeline.yml&apos;&lt;/a&gt; added parameters to build stage:&lt;br/&gt;
&apos;&apos;&apos;&lt;br/&gt;
    cpuLimit: 1500m&lt;br/&gt;
    memoryLimit: 8Gi&lt;br/&gt;
    cpuRequest: 100m&lt;br/&gt;
    memoryRequest: 100Mi&lt;br/&gt;
&apos;&apos;&apos;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10001">
                    <name>Cloners</name>
                                                                <inwardlinks description="is cloned by">
                                        <issuelink>
            <issuekey id="81753">FOLIO-2702</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10000" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummarycf">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10057" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Development Team</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10155"><![CDATA[FOLIO DevOps]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10019" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i01dlz:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10020" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="1947">DevOps: sprint 94</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10024" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>[CHART] Date of First Response</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Mon, 6 Jul 2020 12:54:00 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10025" key="com.atlassian.jira.ext.charting:timeinstatus">
                        <customfieldname>[CHART] Time in Status</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                    </customfields>
    </item>
</channel>
</rss>