Debugging repository connection issues in Deployment manager
While moving the applications across the environments, deployment manager stores artifacts in repositories. Deployment manager requires two different repositories for storing production ready artifacts which had passed all the required tests and other one for storing artifacts which got generated when a pipeline is just kicked off with new deployment.
Deployment manager requires "Read" and "Write" permissions on the "Development" and "Production" repositories configured in the pipeline.
If there are no required permissions as stated above, you could run into issues while running the pipeline. These issues can be caught well before by diagnosing the pipeline. Let us go through two major categories:
Orchestrator to repository connectivity
Open the repository configuration by clicking on the rule opener beside repository name as shown below:
2. Click on the "Test Connectivity" , make sure it is successful. If this is not successful, check below points:
i) Make sure the authentication profile configured on the repository is appropriate and have valid credentials. In below picture, make sure "DevRepoAuthProfile" have valid credentials.
ii) The artifacts generated will be stored in the path entered in "Repository key" of repository configuration. Make sure the path is valid and exists in repository configured.
3. "Test connectivity" just pings the repository with configured authentication profile.If the "Test connectivity" is successful and still the error persists, it means that the authentication profile configured doesn't have "Read" and "Write" privileges on the repository.
Below one would help to debug above issue:
i) Login with the credentials configured in authentication profile, here it is "DevRepoAuthProfile" and try to create a file in the path mentioned in repository key
If above create works, there shouldn't be any problem for deployment manager to create a archive.
Next category is for candidate to repository connectivity issues. Above steps would work, only difference would be the first step. Instead of opening through rule opener, you should log on to the candidate environment and open the repository configuration.
From Deployment manager version 4.5 more granular checks were done for the points discussed above and following error messages were displayed:
1. Development repository authentication failed on the <Development or Quality assurance or Staging > environment.
Above error suggests the credentials provided in authentication profile (DevRepoAuthProfile or ProdRepoAuthProfile) are not appropriate.
2. The production repository connection failed on the <Development or Quality assurance or Staging > environment.
Above error message suggests that the repository used is not accessible from that particular environment.
i) Repository configured (jfrog,nexus,etc) is down / not accepting connections.
ii) Make sure if you can access the repository URL from browser or using command line tools like curl.
3. The artifact cannot be read from the <Development or Production> repository.
Above error suggests that connection is established, but there are no sufficient privileges to read a file from repository
i) To know the error details, try logging into repository using configured authentication profile and read artifact information using CURL or directly logging from browser.
4. The artifact cannot be published to the <Development or Production> repository.
Above error suggests that the connection is established but there are no sufficient privileges to create a file in the repository.
i) To know the error details, try logging into repository using configured authentication profile and create artifact/file using CURL or directly logging from browser.
Using defaultstore repository:
Using defaultstore repository is not recommended because of below ones:
This location cannot be shared between different Pega environments, so this would only work in case of only one environment in a pipeline.
If deployment fails and want to rollback, whole system may be effected.
This would be a common shared location and could raise security concerns.
Pega repository type is not recommended and fully support with deployment Manager.
Using File system repository:
File system repository is one of the supported repositories, but make sure of below ones for succesfull deployments:
Location specified in "Resource path" should be shared across the pega environments used in pipeline.
There should be "Read" and "Write" privileges on this location for all the environments configured on the pipeline.
For Pega cloud environments, by default S3 repository is configured. In case of any connectivity issues, you can create a support ticket on portal.
For more info on creating repositories, click on this.