5. Assign **Application@argoproj.io/v1alpha1@kubernetes@https://10.10.10.144:6443/** as a related Resource Specification
</code></pre>
<blockquote>
<p>Please note that the <em>https://10.10.10.144:6443/</em> part of the Resource Specification's name will vary in different Kubernetes installations. </p>
<p>Please note that the <em>https://10.10.10.144:6443/</em> part of the Resource Specification's name will vary in different Kubernetes environments. </p>
</blockquote>
<p><imgalt="img02.png"src="../img02.png"/></p>
<p>Now, we shall focus on the Characteristics' configuration of the created Service Specification. This can be achieved from the the "Service Specification Characteristics" tab.</p>
<p>Specifically, we need to map the lifecycle of ArgoCD Application (e.g. Progressing, Healthy, etc.) to TMF Resource State (e.g. reserved, active, etc.).</p>
<p>In ArgoCD, the field <strong>status.health.status</strong> has the value that we need to check (Healty, Progressing, etc) for the lifecycle of the application. This is captured by the <strong>_CR_CHECK_FIELD</strong> characteristic.</p>
<p>Also, the different ArgoCD lifycycle states must be captured by the respective <strong>_CR_CHECKVAL_xxx</strong> characteristics, as show in the figure below.</p>
<p>Also, the different ArgoCD lifycycle states must be captured by the respective <strong>_CR_CHECKVAL_xxx</strong> characteristics, as show in the figure below:</p>
<p><imgalt="img05.png"src="../img05.png"/></p>
<p>After the state mapping, we must provide the template that ArgoCD will use to deploy the Jenkins HELM Chart as an ArgoCD application. For this, we must populate the <strong>_CR_SPEC</strong> characteristic. The _CR_SPEC can be designed first in a YAML or json editor for better parsing. </p>
<p>Let's see a YAML definition:</p>
...
...
@@ -2847,12 +2847,12 @@ spec:
<blockquote>
<p><strong>NOTE 1</strong>: The above template assumes that the Jenkins Server will acquire a <strong>ClusterIP</strong>. The user should handle the external exposure and access of the Jenkins Server, depending on its cluster configuration. Also, <strong>persistency of the data is disabled</strong> to facilitate the deployment without the need to define storage classes and volumes, as this serves as an example. </p>
</blockquote>
<pre><codeclass="language-yaml">helm:
values: |
controller:
serviceType: ClusterIP
persistence:
enabled: false
<pre><codeclass="language-yaml">helm:
values: |
controller:
serviceType: ClusterIP
persistence:
enabled: false
</code></pre>
<blockquote>
<p><strong>NOTE 2</strong>: On each installation, OSOM will change the name of the resource in order to be unique (will have a UUID), instead of "openslice-jenkins".</p>
...
...
@@ -2862,13 +2862,14 @@ spec:
<blockquote>
<p><strong>NOTE 3</strong>: The namespace that ArgoCD will use to deploy the Jenkins HELM Chart is the "opencrdtest".</p>
</blockquote>
<p><code>yaml
destination:
namespace: opencrdtest</code></p>
<pre><codeclass="language-yaml">destination:
namespace: opencrdtest
</code></pre>
<p><strong>The latter implies that ArgoCD will always install Jenkins in the same namespace.</strong></p>
<p><strong>To avoid this we will create a simple LCM rule (pre-provision) to change the namespace accordingly with a unique ID, generated with every new Service Order.</strong></p>
<p>The LCM rule can be created from the "Life Cycle Rules" tab, pressing the "Create new rule" button. The following image contains the LCM rule that needs to be created for this purpose:</p>
<p><imgalt="img06.png"src="../img06.png"/></p>
<p>Let's create it step-by-step:</p>
<ol>
<li>Drag-Drop the _CR_SPEC block (Set characteristic value) of jenkinsrfs from the Service > Text blocks</li>
<li>Drag-Drop the Text > Formatted text block and attach it after the block from the previous step</li>
...
...
@@ -2890,11 +2891,11 @@ spec:
</ol>
<p><imgalt="img03.png"src="../img03.png"/></p>
<p><imgalt="img04.png"src="../img04.png"/></p>
<p>Next, expose it through an already created Service Catalog and Service Category so as to make it visible to the users, thus available for ordering.</p>
<p>Next, the designer must expose it through an already created Service Catalog and Service Category so as to make it visible to the users, thus available for ordering.</p>
<p><imgalt="img061.png"src="../img061.png"/></p>
<h2id="order-the-service">Order the service</h2>
<p>Order the service from the assigned Service Catalog > Service Category. </p>
<p>As soon as the Service Order is in <strong>ACKNOWLEDGED</strong> state, it will be processed and eventually completed rendering the services active, as seen in the figure below:</p>
<h2id="order-the-jenkins-service">Order the Jenkins Service</h2>
<p>Order the service from the previously assigned Service Catalog > Service Category. </p>
<p>As soon as the Service Order is in <strong>ACKNOWLEDGED</strong> state (may require user intervention as the initial Service Order state is "INITIAL"), it will be processed and eventually completed rendering the services active, as seen in the figure below:</p>
<p><imgalt="img07.png"src="../img07.png"/></p>
<h2id="access-the-jenkins-installation">Access the Jenkins installation</h2>
<p>Starting from the Service Order overview and specifically the Order Item #1 tab > Supporting Services, select the ResourceFacingService (jenkinsrfs).</p>