Skip to content

Commit db0a80e

Browse files
authored
Merge pull request #35 from IBM/add-docs4merlin
Merlin User guide and Administrator guide
2 parents 24cde4b + 005e7ea commit db0a80e

File tree

278 files changed

+3535
-43
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

278 files changed

+3535
-43
lines changed

README.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# Merlin Docs
22

3-
Hands-On Documentation for IBM i Merlin repository.
3+
Documentation for IBM i Merlin repository.
44

55
## What is this for?
66

7-
* This hands-on documentation is not meant to replace the official [IBM Documentation for Merlin](https://www.ibm.com/docs/en/merlin/1.0?topic=overview).
8-
* These guides are for users getting started with Merlin step-by-step.
7+
* This documentation includes hands-on tutorials, user guide, and administrator guide.
8+
* Version 1.0 documentation is at [IBM Documentation for Merlin](https://www.ibm.com/docs/en/merlin/1.0?topic=overview).

docs/README.md

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,20 @@
11
![](./images/overview/main.png)
22

3-
Welcome to the hands-on documentation for IBM i Merlin. This hands-on documentation is not meant to replace the official [IBM Documentation for Merlin](https://www.ibm.com/docs/en/merlin/1.0?topic=overview).
3+
Welcome to the documentation for IBM i Merlin. This includes hands-on tutorials, user guide, and administrator guide.
44

55
IBM i Modernization Engine for Lifecycle Integration (Merlin) is a set of tools run in OpenShift containers which guide and assist software developers in the modernization of IBM i applications, allowing them to realize the value of a hybrid cloud, multi-platform DevOps implementation.
66

77
**News**: Version 2.0 has been [announced](https://www.ibm.com/docs/en/announcements/i-modernization-engine-lifecycle-integration-merlin-20) and will be available June 14, 2024!
88

9+
Version 1.0 documentation is available at [IBM Documentation for Merlin](https://www.ibm.com/docs/en/merlin/1.0?topic=overview).
10+
911
#### Getting started videos
1012

1113
* **for users**: [YouTube video playlist](https://www.youtube.com/playlist?list=PLPELYviDwCnY6L5r5ZnmCneqhakLcB7ko). Starts with set of videos for configuring the web browser, just watch the video corresponding to your system then continue with the rest.
1214
* **for administrators**: [YouTube video playlist](https://www.youtube.com/watch?v=6UlN1vhrCPo&list=PLPELYviDwCnajC310KB2K7zfu51FPuYJS).
1315

1416
#### Getting help
1517

16-
* See the [product documentation site](https://www.ibm.com/docs/en/merlin/1.0?topic=overview) for more information.
1718
* Submit product requests using the [IBM Power Systems Ideas Portal](https://ibm-power-systems.ideas.ibm.com/?category=7112512098562980476).
1819
* Discuss the product with other users on the [IBM Community](https://community.ibm.com/community/user/power/communities/community-home?communitykey=f0246bc4-08f3-43c5-a7f8-b6a64d387894).
1920
* For support, open a case on the [Support portal](https://www.ibm.com/mysupport/). Also, subscribe to [product notifications](https://www.ibm.com/systems/support/myview/subscription/css.wss).
@@ -22,7 +23,7 @@ IBM i Modernization Engine for Lifecycle Integration (Merlin) is a set of tools
2223
#### Additional resources
2324

2425
* Check out the official [Security considerations](https://www.ibm.com/docs/en/merlin/1.0?topic=overview-security-considerations) from IBM.
25-
* See the [announcement](https://www.ibm.com/common/ssi/ShowDoc.wss?docURL=/common/ssi/rep_ca/8/897/ENUS222-128/index.html) for ordering details.
26+
* See the [Version 1 announcement](https://www.ibm.com/common/ssi/ShowDoc.wss?docURL=/common/ssi/rep_ca/8/897/ENUS222-128/index.html).
2627
* See the [product page](https://www.ibm.com/products/ibm-i-merlin) for more information.
2728
* See [Frequently Asked Questions](https://www.ibm.com/support/pages/ibm-i-modernization-engine-lifecycle-integration-merlin-overview#faq).
2829
* Visit [YouTube](https://www.youtube.com/playlist?list=PLPELYviDwCnYe60cNHs_Hf-4Sr8h_0uVE) for a play list of videos to learn more about Merlin including the integration with ARCAD tools.

docs/guides/appinstall.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -68,4 +68,4 @@ Clicking Finish takes you back to the 'Deployed Tools' page where you can see th
6868

6969
![](../images/appinst/appinst-8.png)
7070

71-
When it is finished installing, you can right-click and select 'Launch Application'. This takes you into CodeReady Workspaces.
71+
When it is finished installing, you can right-click and select 'Launch Application'. This takes you into developer workspaces.
+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Configure log level
2+
IBM i CI/CD GUI supports configuring the log level. The default log level is INFO, but that sets it to a different level is supported.
3+
The log levels supported for GUI are **OFF**, **SEVERE**, **WARNING**, **INFO**, **FINEST**, **ALL**.
4+
5+
![CICD_Configure_Log_Level](../../images/guides/CICD_Configure_Log_Level.png)
6+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
# Deploy and Initialize IBM i CI/CD
2+
3+
## Deploy IBM i CI/CD from Merlin platform
4+
5+
* Install IBM i CI/CD in the **Catalog** from Merlin platform
6+
7+
* Follow the **Installation Application** wizard to complete the installation of IBM i CI/CD.
8+
![IBM i CI/CD Installation Wizard](../../images/guides/cicdCatalog.png)
9+
10+
* Launch IBM i CI/CD from Merlin platform
11+
12+
* Under **Overview > Quick Launch**, click to launch **IBM i CI/CD** directly.
13+
* Under **Tools > Deployed Tools**, right click and launch **IBM i CI/CD** in context menu.
14+
15+
## Initialize Jenkins in IBM i CI/CD GUI
16+
Jenkins is the automation server behind IBM i CI/CD which runs the actual build and deploy jobs. Both internal Jenkins and external Jenkins are supported in IBM i CI/CD, internal Jenkins comes with IBM i CI/CD and external Jenkins can be existing Jenkins.
17+
18+
Both internal and external Jenkins must be initialized before using in IBM i CI/CD. While the initialization of external Jenkins only saves the information (Jenkins URL, username, password, and API token) for authentication with Jenkins REST API into Merlin platform, the initialization of internal Jenkins will do the actual configuration of Jenkins.
19+
20+
Use **Jenkins Configuration > Jenkins Server > Initialize Jenkins** to open the **Initialize Jenkins** wizard.
21+
**Note**: **Initialize Jenkins** requires an admin user role.
22+
* Initialize internal Jenkins
23+
* Select **Use internal Jenkins server** in step **Select Jenkins server type**.
24+
![Use Internal Jenkins Server](../../images/guides/cicdSelectInternalJenkins.png)
25+
26+
* Input Jenkins username and password in step **Initialize default Jenkins server**.
27+
The user will be created in internal Jenkins and used for later authentication with Jenkins.
28+
![Initialize Jenkins Using Default Wizard](../../images/guides/cicdInitializeJenkinsUsingDefaultWizard.png)
29+
30+
* Wait for the initialization of internal Jenkins to finish. Jenkins server information will be refreshed and the **Connectivity** will be **Available** if the initialization is finished successfully.
31+
![Initialize Internal Jenkins Success](../../images/guides/cicdInitializeInternalJenkinsSuccess.png)
32+
33+
* Initialize external Jenkins
34+
* Select **Use external Jenkins server** in step **Select Jenkins server type**.
35+
![Use Internal Jenkins Server](../../images/guides/cicdSelectExternalJenkins.png)
36+
37+
* Input external Jenkins server information in step **Specify Jenkins server information**.
38+
![Specify Jenkins Server Information](../../images/guides/cicdSpecifyJenkinsServerInformation.png)
39+
* **Note:** Use the **Generate API token** button to get the **API token** after filling in the Jenkins server URL, username, and password. The API token is required when authentication with Jenkins server REST API.
40+
* **Note:** Use the **Test TLS** button to verify if the TLS is configured on the external Jenkins server and import the CA certificate into the trust store if it is not.
41+
* Wait for the initialization of external Jenkins to finish. Jenkins information will be refreshed and the **Connectivity** will be **Available** if the initialization process is finished successfully.
42+
* **Note**: Another option to set external Jenkins is using the **Edit selected Jenkins server** button. Add an available Jenkins template in Merlin platform first and select the added Jenkins template. Use the **Test TLS** button to verify if the TLS is configured on the selected Jenkins server and import the CA certificate into the trust store if it is not.
43+
![Edit selected Jenkins server](../../images/guides/cicdSetJenkinsServer.png)
44+
45+
46+
47+
## Integrate ARCAD in IBM i CI/CD GUI
48+
49+
Integrate ARCAD will enable the capability to communicate with ARCAD builder server by installing three ARCAD plugins in Jenkins, including ARCAD-Commons Plugin, ARCAD-Builder Plugin, and ARCAD-Macro Execution Plugin.
50+
51+
Use **Jenkins Configuration > ARCAD Integration > Enable ARCAD Integration** to open the **Enable ARCAD Integration** dialog.
52+
53+
**Note**: **Enable ARCAD Integration** requires an admin user and only supports internal Jenkins. The integration process will overwrite all the configuration of ARCAD-Builder Plugin and ARCAD-Macro Execution in internal Jenkins.
54+
55+
**Note:** Currently IBM i CI/CD only supports the configuration of ARCAD builder server. The configuration of ARCAD Servers for ARCAD-Macro Execution Plugin is not supported yet while the ARCAD-Skipper CLI will be put under default location ```/merlin/cicd/gui/skipperCLI```. If the user wants to utilize the functionality of ARCAD-Macro Execution Plugin, use it in Jenkins GUI directly.
56+
57+
* Enable ARCAD integration
58+
59+
* Input the ARCAD builder URL, and use **Test TLS** to verify if the TLS is configured on the ARCAD builder server and import the CA certificate into the trust store if it is not.
60+
61+
* Select ARCAD builder server credential in Jenkins credential list, add the credential first under **Jenkins Configuration > Manage Jenkins Credential**.
62+
63+
* Wait for the ARCAR integration process to finish. And the ARCAD builder URL and selected credential name will be listed on ARCAD Integration page.
64+
* Use **Test Connection** to test the connectivity of ARCAD builder server.
65+
![ARCAD Integration ](../../images/guides/cicdArcadIntegration.png)
66+

docs/guides/cicd/Manage_Logs.md

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
IBM i CI/CD supports configuring log levels and viewing GUI logs.
2+
* [Configure Log Level](Configure_Log_Level.md)
3+
* [View Logs](View_Logs.md)

docs/guides/cicd/View_Logs.md

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# View logs
2+
IBM i CI/CD GUI supports viewing and downloading GUI logs.
3+
* View or download GUI logs
4+
Double-click the log file or click the View button to open the log file.
5+
Click the **Download** button to download the log file to the local file system.
6+
7+
![CICDViewGUILog](../../images/guides/CICDViewGuiLogs.png)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
# Work with IBM i CI/CD tasks
2+
3+
4+
## Create IBM i CI/CD task
5+
IBM i CI/CD task defines the whole process of source code management, build and deploy actions. Currently IBM i CI/CD supports both private and public tasks. A private task is visible only to the user who created it while a public task is visible to all users.
6+
7+
Use **Task Management > Create New Task** to open the **Create New Task** wizard.
8+
9+
* Specify General Information
10+
* Specify the task name and the type of task, private or public.
11+
* Upload customized icon for the task if needed, only JPG and PNG supported.
12+
![Specify General Information](../../images/guides/cicdSpecifyGeneralInfo.png)
13+
* Source Code Management
14+
* Define Git repositories by specifying the Git Repository URL and branch information.
15+
![Source Code Management](../../images/guides/cicdSourceCodeMgmt.png)
16+
17+
* **Note:** If multiple Git repositories are added, fill in the **Check out to subdirectory** to create a subdirectory for different repositories.
18+
* **Note:** Specify credential from Jenkins credential list if current Git repository is not public.
19+
* Build
20+
* Add build servers
21+
* Specify build servers by **Add Build Server**, use customized build server name if needed. If **Specify build server (template)** is checked, select an existing server from the server list( IBM i templates defined in Merlin platform ).
22+
* If you want to upload the source code defined in step **Source Code Management**, check the checkbox **Upload source code to build server** and fill in the **Work directory** on the remote server. Source code will be uploaded automatically to the defined **Work directory** when the task runs.
23+
![Add build servers](../../images/guides/cicdAddBuildServer.png)
24+
25+
* Send files to server
26+
* Send files to a remote server. Use the relative path of files. Use enter to separate multiple files. File directory is not supported.
27+
![Send files to server](../../images/guides/cicdSendFilesToServer.png)
28+
29+
* Run CL command
30+
* Run CL command in a remote server. Use enter to separate multiple CL commands.
31+
![Run CL command](../../images/guides/cicdRunCLcmd.png)
32+
* Run an ARCAD-Builder build
33+
* Run an ARCAD-Builder build by the ARCAD Jenkins plugins. Enable ARCAD integration first and make sure the connectivity to ARCAD build server is available.
34+
![Run an ARCAD-Builder build](../../images/guides/cicdRunArcadBuilder.png)
35+
36+
* Deploy
37+
* Add Deploy Server
38+
* Specify deploy servers by **Add Deploy Server**, use customized deploy server name if needed.
39+
![Add Deploy Server](../../images/guides/cicdAddDeployServer.png)
40+
41+
* Send files to server
42+
* The same as in Build.
43+
* Run CL command
44+
* The same as in Build.
45+
* Distribution on IBM i
46+
* Distribution on IBM i support transferring objects from the source library on source IBM i to the destination library on destination IBM i.
47+
* **Note:** Use **Comma** to separate multiple objects.
48+
* Define multiple deployments for multiple library transfer actions. Make sure the source library and destination library exist.
49+
* Support package certain objects or package the whole library at once.
50+
![Distribution on IBM i](../../images/guides/cicdDistributionOnIBMi.png)
51+
52+
* Transfer files between IBM i
53+
* Transfer multiple single files between two IBM i. Use enter to separate multiple files. File directory is not supported.
54+
![Transfer files between IBM i](../../images/guides/cicdTransferFilesBetweenIBMi.png)
55+
56+
57+
* Summary
58+
* Summary of the defined Git repositories, build and deploy action in the task.
59+
![Summary](../../images/guides/cicdSummary.png)
60+
61+
62+
63+
## Run IBM i CI/CD task
64+
65+
Right-click on the selected task and click **Run Task** to open the **Run Task** wizard. Fill in the necessary information before running the task.
66+
67+
Every time a task runs, a new pipeline job will be created in the Jenkins server named as ```{task name}-{username}-{current time}```. While Jenkins supports building any job multiple times, IBM i CI/CD doesn't support that now.

docs/guides/cicd/Work_with_Jenkins.md

+56
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
# Work with Jenkins
2+
Jenkins is the automation server behind IBM i CI/CD which runs the actual build jobs.
3+
4+
## Jenkins Plugins
5+
During the initialization of the internal Jenkins server, a list of Jenkins plugins has been installed automatically in the internal Jenkins server. IBM i CI/CD GUI keeps a list of plugins with expected versions and supports the installation of missing plugins and the update of old plugins.
6+
7+
![Jenkins_Plugin](../../images/guides/Jenkins_Plugin.png)
8+
The **Missing plugins** table lists plugins that should be installed but are missing in the internal Jenkins server.
9+
10+
The **Plugins needs updates** table lists plugins that need updates in the internal Jenkins server.
11+
12+
Use the **Refresh** button to refresh the Jenkins plugin installation status in the internal Jenkins server.
13+
14+
Use the **Install / Update Jenkins Plugin** button to install the missing plugins or update the plugins which need updates.
15+
16+
**Note:** Jenkins plugins relative functions require an admin user role and only support the internal Jenkins server.
17+
**Note:** When using **Install / Update Jenkins Plugin** to install or update plugins, all the Jenkins plugins will be installed or updated to the expected version defined in IBM i CI/CD. The Jenkins server will be restarted automatically to activate the newly installed or updated plugins.
18+
19+
20+
21+
22+
## Manage Jenkins credential
23+
IBM i CI/CD supports the management of Jenkins credentials, including add, edit and delete actions.
24+
* **Note:** All IBM i CI/CD users are under the same Jenkins user, and Jenkins credentials are visible to all users.
25+
* Add Jenkins credential
26+
* Add Jenkins credential with type **Username with password**
27+
![Add Jenkins Credential Username with Password](../../images/guides/cicdJenkinsCredentialUsernamePassword.png)
28+
* Add Jenkins credential with type **SSH Username with private key**
29+
![Add Jenkins Credential SSh Username with Password](../../images/guides/cicdJenkinsCredentialSSH.png)
30+
* Edit Jenkins Credential
31+
* Edit Jenkins credential with type **Username with password**
32+
![Edit Jenkins Credential Username with Password](../../images/guides/cicdEditJenkinsCredentialUsernamePassword.png)
33+
* Edit Jenkins credential with type **SSH Username with private key**
34+
![Edit Jenkins Credential SSh Username with Password](../../images/guides/cicdEditJenkinsCredentialSSH.png)
35+
36+
## Manage Jenkins jobs
37+
IBM i CI/CD supports the management of Jenkins job, including refreshing job list regarding task name, stopping job build, viewing build results, and deleting Jenkins job.
38+
![Manage Jenkins Jobs](../../images/guides/cicdManageJenkinsJobs.png)
39+
* **Note:** Jenkins job supports build multiple times, but not supported for the task in IBM i CI/CD now. In case the user uses Jenkins directly, the latest build is used by IBM i CI/CD when stop build or view build results.
40+
41+
## Manage Permission
42+
43+
Currently, only admin users are allowed to initialize the Jenkins server for both internal and external Jenkins. If other users want to use the same Jenkins initialized by admin, the admin user can assign the permission to users by **Jenkins Configuration > Manage Permission**.
44+
* Manage Permission
45+
The Jenkins Permission table lists users able to use the current Jenkins server. The template is created when adding Jenkins permission with the Jenkins server URL, Jenkins username, password, and API token generated for every user.
46+
![Manage Jenkins Jobs](../../images/guides/cicdManageJenkinsAccessibility.png)
47+
48+
* Assign Permission to User
49+
Assign permission of current Jenkins to other users. This process will automatically create connection resources with the default name ```jenkins-{cicd namespace}-username``` :
50+
* Jenkins inventory with the Jenkins URL
51+
* Jenkins credential with the Jenkins username, password, and automatically generated API token for every user
52+
* Jenkins template with the above Jenkins inventory and credential.
53+
54+
![Manage Jenkins Jobs](../../images/guides/cicdAssignJenkinsAccess.png)
55+
56+
* **Note:** Permission table only lists users whose access to Jenkins is assigned through IBM i CI/CD, since extra data is added when using **Assign Permission to User**.

docs/guides/cicd/bob.md

-3
This file was deleted.

docs/guides/cicd/cicd.md

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# IBM i Modernization Engine for Lifecycle Integration - DevOps CI/CD
2+
IBM i CI/CD aims to simplify the experience of DevOps for IBM i application development. This provides browser-based tooling to set up and manage an automated build, test, and deployment pipeline for native IBM i applications leveraging Jenkins.
3+
Core capabilities provided:
4+
- Out-of-box Jenkins with ARCAD integration.
5+
- Users can create their own Jenkins environment with capability to build and deploy IBM i programs.
6+
- Graphic interface to simplify key operations of Jenkins. This GUI creates Jenkins pipelines specifically for IBM i programs development.
7+
8+
9+
![Merlin CICD](../../images/guides/merlincicd.png)
10+
11+
For information on using ARCAD tools, see [How to use ARCAD integration with IBM i Modernization Engine for Lifecycle Integration](https://supportcontent.ibm.com/support/pages/how-use-arcad-integration-ibm-i-modernization-engine-lifecycle-integration-merlin)

0 commit comments

Comments
 (0)