Importing Projects
KubeOrch can automatically convert existing projects into visual workflows, saving you from manually recreating infrastructure.
Supported Import Sources
Section titled “Supported Import Sources”| Source | How It Works |
|---|---|
| Docker Compose file | Upload a docker-compose.yml file directly |
| GitHub repository | Provide a GitHub URL — KubeOrch clones and detects compose files |
| GitLab repository | Provide a GitLab URL |
| Generic Git URL | Any .git URL |
What Gets Converted
Section titled “What Gets Converted”The import system analyzes your Docker Compose file and creates equivalent Kubernetes resources:
| Docker Compose | Kubernetes (KubeOrch Node) |
|---|---|
services: entry | Deployment node (with image, ports, replicas) |
ports: mapping | Service node (ClusterIP/NodePort) |
environment: vars | ConfigMap or env vars on the Deployment |
volumes: named | PersistentVolumeClaim node |
depends_on: | Edges connecting dependent services |
build: context | Flagged for Nixpacks build (source-to-image) |
Import Flow
Section titled “Import Flow”File Upload
Section titled “File Upload”- Click Import in the workflow canvas toolbar
- Select Upload File
- Choose your
docker-compose.ymlfile - Preview the detected services, suggested nodes, and edges
- Adjust if needed, then click Apply
Git Repository
Section titled “Git Repository”- Click Import in the workflow canvas toolbar
- Select From Git
- Paste the repository URL (e.g.,
https://github.com/org/project) - Optionally specify a branch (defaults to
main) - KubeOrch clones the repo (progress streamed via SSE), detects compose files, and analyzes
- Preview and apply
API Usage
Section titled “API Usage”Synchronous (file upload)
Section titled “Synchronous (file upload)”# Upload a docker-compose.ymlcurl -X POST http://localhost:3000/v1/api/import/upload \ -H "Authorization: Bearer <token>" \ -F "file=@docker-compose.yml"Asynchronous (Git repository)
Section titled “Asynchronous (Git repository)”# Start analysis (returns session ID for long-running clone operations)curl -X POST http://localhost:3000/v1/api/import/analyze \ -H "Authorization: Bearer <token>" \ -H "Content-Type: application/json" \ -d '{ "source": "github", "url": "https://github.com/org/project", "branch": "main" }'
# Poll session status or stream via SSEcurl http://localhost:3000/v1/api/import/:sessionIdcurl http://localhost:3000/v1/api/import/:sessionId/stream # SSEAuto-Layout
Section titled “Auto-Layout”Imported nodes are automatically positioned on the canvas using the layout engine. The engine:
- Groups services with their related resources (Service, ConfigMap, PVC)
- Arranges dependent services vertically based on
depends_onrelationships - Spaces nodes to avoid overlap
Source Builds
Section titled “Source Builds”If a Docker Compose service uses build: instead of image:, KubeOrch flags it for a source-to-image build. The build config includes:
- repoUrl — Git repository URL
- branch — Target branch
- buildContext — Docker build context path
- useNixpacks — Whether to use Nixpacks (auto-detected)
- dockerfile — Path to Dockerfile (if not using Nixpacks)
Users can trigger the build from the Build page, which clones the repo, builds the image with Nixpacks, and pushes to a configured container registry.