Setting up Cloudera Data Engineering to Cloudera Workflow Orchestrator Git migration [Technical Preview]
CMA can migrate Airflow DAGs from Cloudera Data Engineering virtual clusters into version-controlled Cloudera Workflow Orchestrator Git repositories. The migration produces a Pull Request (GitHub), Merge Request (GitLab), or branch (plain Git), which you review and merge — the source Cloudera Data Engineering environment is never modified.
Before migration engineers can use this feature, you must configure the CMA Agent with credentials for both the Cloudera Control Plane (Cloudera Data Engineering source) and the target Cloudera Workflow Orchestrator Git repository. CMA then automatically registers the required clusters.
When the CMA Agent starts with the required configuration, it automatically registers the following additional managed clusters in CMA Master:
-
Cloudera Data Engineering cluster (
<clusterName>-cde) — Represents the Cloudera Data Engineering environment. The agent uses Cloudera Control Plane API credentials to discover Cloudera Data Engineering services, virtual clusters, and Airflow DAGs. -
Git cluster (
<clusterName>-git) — Represents the target Cloudera Workflow Orchestrator Git repository. The agent uses the repository URL and access token to scan the repository and create Pull Requests or Merge Requests.
Both clusters are displayed in the CMA Master UI and can be used as source and target in a migration plan.
Known limitations
-
No SSH support – Plain Git connections support only HTTPS repository URLs.
-
No incremental migration – Each migration execution creates a full Pull Request or Merge Request containing all mapped DAGs.
-
No automated rollback – Once a Pull Request or Merge Request is created, it must be manually closed or reverted in the Git provider.
-
Single branch per plan – All DAGs in a migration plan target one source branch (
cma/<planName>).
-
You must deploy CMA in parcel deployment mode. For more information, see Deployment.
-
You must install and run the CMA Agent service on the cluster (Public Cloud or Cloudera platform Private Cloud Base).
-
The CMA Agent must have network access to the Cloudera Control Plane API endpoint.
-
The CMA Agent must have network access to Cloudera Data Engineering.
-
The CMA Agent must have outbound HTTPS access to the Git provider (GitHub, GitLab, or self-hosted).
-
You must have Cloudera Control Plane access key credentials (access key ID and private key) for the Control Plane.
-
You must have a personal access token (PAT) for the target Cloudera Workflow Orchestrator Git repository with permissions to read the repository and create Pull Requests or Merge Requests.
-
The target Cloudera Workflow Orchestrator Git repository must exist and the base branch, for example,
main, must be present. -
If a firewall is in place between CMA components and external services, the following ports must be open:
Table 1. Network requirements Source Destination Port Protocol Purpose CMA Agent (Cloudera Data Engineering) Cloudera Control Plane API 443 HTTPS Discover Cloudera Data Engineering services and virtual clusters CMA Agent (Cloudera Data Engineering) Cloudera Data Engineering Knox gateway 443 HTTPS Fetch DAG metadata and download DAG files CMA Agent (Git) GitHub or GitLab or self-hosted Git 443 HTTPS Scan repository, create Pull Requests or Merge Requests CMA Agent (Cloudera Data Engineering and Git) CMA Master gRPC port 8091 gRPC Agent-to-Master communication
CMA automatically selects the correct Git provider based on the repository URL. You do not need to configure the provider type manually in most cases.
| Detection rule | Provider | Change type |
|---|---|---|
URL contains github.com |
GitHub | Pull Request |
URL contains gitlab.com |
GitLab | Merge Request |
HTTP probe responds to /api/v4/version |
GitLab (self-hosted) | Merge Request |
HTTP probe responds to /api/v3/meta |
GitHub Enterprise | Pull Request |
| None of the above | Plain Git | Branch push |
To override auto-detection, set the git.providerType cluster configuration
property to one of GITHUB, GITLAB, or
JGIT.
| Symptom | Possible cause | Resolution |
|---|---|---|
| Cloudera Data Engineering or Git clusters are not displayed in the CMA UI | CMA Agent did not restart, or advanced configuration snippet variables are missing or misspelled. | Restart the CMA Agent service and check
the Agent log for Cluster registration failed entries. |
| Cloudera Data Engineering scan fails with authentication error | CMA_AGENT_CLUSTER_CLOUD_CONTROL_USERNAME or
CMA_AGENT_CLUSTER_CLOUD_CONTROL_PASSWORD are incorrect, or the
Cloudera Data Engineering Knox gateway is unreachable. |
Verify that the Cloudera Manager credentials are correct and that the Agent can reach the Cloudera Data Engineering Knox gateway on port 443. |
| Cloudera Data Engineering scan fails and no Cloudera Data Engineering are services found | CMA_AGENT_CLUSTER_CLOUD_CONTROL_DATACENTER points to the wrong
region, or the access key credentials are invalid. |
Verify the Control Plane URL and confirm that the access key is valid in the Cloudera Management Console. |
| Git scan fails with authentication error | CMA_AGENT_CLUSTER_GIT_TOKEN is missing, expired, or lacks the
required permissions. |
Regenerate the PAT in the Git provider and update
CMA_AGENT_CLUSTER_GIT_TOKEN in the advanced configuration
snippet. |
| Git scan fails, the branch is not found | CMA_AGENT_CLUSTER_GIT_BRANCH refers to a branch that does not
exist. |
Create the branch in the Git repository, or update the variable to point to an existing branch. |
| Cloudera Data Engineering cluster registered but no virtual clusters are displayed after the scan | A specific virtual cluster could not be reached (Knox auth failure or empty
vcApiUrl). |
Check the Cloudera Data Engineering scan command log in the CMA UI for SKIPPED entries with
the affected virtual cluster name. |
