Last activity: 8 Apr 2020 18:00 EDT
[Procedure]: Application migration using DevOps Pipeline in Pega 8.3.2 with Deployment Manager 4.6
I recently implemented the Application migration using DevOps Pipeline with the help of 2 Pega 8.3.2 local instances using Deployment Manager 4.6. So sharing the steps that has been followed to achieve it along with the issues I had faced during this process in Community, so that it can help many.
- Deployment Manager 4.6
- Pega 8.3.2 two local instances.
- Instance1 – acts as DEV/ORCHESTRATION - http://ipaddress1:port/prweb/PRServlet gcsadminbkp (Application admin operator).
- Instance2 – acts as Candidate System(QA) - http://ipaddress2:port/prweb/PRServlet [email protected]
- JFrog artifactory.
- Reference documentation - https://community.pega.com/knowledgebase/articles/devops-release-pipeline-overview/installing-upgrading-and-configuring-deployment-manager-46x
Step 1: Installing or upgrading Deployment Manager:
- Download Deployment Manager 4.6 from Deployment Manager Market Place - https://community.pega.com/marketplace/components/deployment-manager
- Extract it and in the Rules folder you can find the below files,
- In Dev system, import both the zip files.
- In Candidate system, import the PegaDevOpsFoundation_8.1.zip file.
Step 2: Running post-upgrade steps:
As this is not an upgrade, we don’t need to perform this section. If you are upgrading from the previous Deployment Manager, then should follow the steps mentioned in the reference documentation.
Step 3: Configuring systems in the pipeline:
- Configuring authentication profiles on the Dev system(Instance1) and candidate system(Instance2):
- On the Dev system, the following rules are available:
- Open DMReleaseAdmin operator record, enable it and set its password as "install".
- Open DMReleaseAdmin authentication profile and set its password as "install".
- Open DMAppAdmin operator record, enabled it and set its password as “install”.
- Open DMAppAdmin authentication profile and set the DMAppAdmin operator password which will be configured in the candidate systems(Instance2).
- On Candidate systems, the following rules are available:
- Open DMAppAdmin operator record, enable it and set its password as “install”.
- Open DMReleaseAdmin authentication profile and set its password as “install”.
- On the Dev system, the following rules are available:
- Configuring the Dev/Orchestration system:
- Login to your application using gcsadminbkp.
- Open your application definition and add the PegaDevOpsFoundation application to your application stack.
- Optional: If your system is not configured for HTTPS, verify that TLS/SSL settings are not enabled on the api and cicd service packages from Records > Integration-Resources > Service Package.
- Create DSS to store the OrchestratorURL with the Dev system url as shown below,
- Configuring candidate systems:
- If your system is not configured for HTTPS, verify that TLS/SSL settings are not enabled on the api and cicd service packages from Records > Integration-Resources > Service Package.
- Creating repositories on the Dev and candidate systems:
- Dev system:
- Login with gcsadminbkp operator and add “PegaRULES:RepositoryAdministrator” role in the access group.
- Create a repository rule as follows,
- Create Authentication profile of Basic type,
- Create a Product rule with this repository, authentication profile and application administrators access group(this should be present in all candidate systems in pipeline configuration) instances,
DATA-ADMIN-SECURITY-AUTHENTICATIONPROFILE JFROGDEVAUTHDATA-ADMIN-OPERATOR-ACCESSGROUP MMAPP:ADMINISTRATORS
- Create the product zip file using “Create product file” button at the bottom.
- Candidate system:
- Login with DMAppAdmin operator and import the zip file into all the candidate systems.
- Open the DMRepository rule and perform the Test connectivity to check the status.
- Dev system:
Step4: Configuring an application pipeline:
- Login to Dev system with gcsadminbkp operator, then create a product rule for your application migration using Application > Distribution > Package wizard.
Now login with DMReleaseAdmin operator.
Create a new pipeline using New/Add pipeline from Pipelines view.
- You should see the list being populated as soon as you provide the Dev environment url. For cloud clients the Development environment url will be auto populated by reading the urls from S3 config file.
- Note: This access group should be present in all the candidate systems with SysAdmin4 role.
In the Environment details, provide all the candidate systems urls along with the repositories.
If you’re using the branches in your development, then you can choose yes and provide the other details.
In this case I'm not using the branches so will select "No".
- In Model pipeline view, only Quality Assurance stage is being selected as we have only QA instance as the candidate system and other 2 stages are unchecked. Also, you can un-check the “Production ready” checkbox as we don’t have production candidate system.
- On click of Finish, you should see the below screen to start the deployment on Development stage.
- Provide the deployment details and submit.
- The deployment failed because I dint allow the unlocked ruleset checkbox in my product rule.
- You can see more information in the Deployment History,
- I will go back to my product rule created earlier with gcsadminbk operator and enable the checkbox.
- Now click on 3 dots and choose Abort.
- After rerun the deployment, it failed with the below error in the log file which is accessed from Logs link in “Deployment History”.
- It is complaining about my CustomerData Data-Admin-DB-Name rule. As the CustomerData database information will be different for each instance, I will just remove the below instance in my product rule.
- Starting deployment again by aborting the current process in QA stage using 3 dots. This time it failed with the guardrails error as shown below,
- It is failing because I have the guardrails compliance score set to 97 by default in my pipeline. So, I need to fix the guardrails warning in my application or change the compliance score to lower value.
- In this case I will reduce the guardrails score to 60 from Actions > Pipeline model > Quality Assurance stage > Check guardrail compliance setting > change compliance score then save the pipeline.
- After this change rerun the deployment process and this time it failed at the test coverage step as I don’t have any test cases to perform.
- So, Abort the deployment task and go back to the pipeline mode to remove the test coverage and Validate test coverage steps for now.
- Rerun the deployment process, noticed the below message as it has aged updates in my application. I will choose to skip the aged updates.
- Finally, the application is deployed into the QA system and you can check the rules in the QA system by logging into it.
Hope this information might be helpful to you all.