How devtron-labs/devtron works
Devtron is a Kubernetes management and delivery platform. Users access a dashboard/API to manage clusters and Helm, ArgoCD, and Flux applications; platform workflows also configure and trigger CI/CD pipelines, then track deployment status. The graph includes those documented product areas and sampled internal services, repositories, and authorization components. Several dashboard capabilities are documented but their implementation was not sampled, so those subsystem links rely on the README rather than inferred source calls.
Main entry points: DeploymentPipelineRestHandler.go Pipeline configuration API · FullModeDeploymentService.go Full-mode deployment · PipelineRepository.go Pipeline repository · PipelineOverrideRepository.go Pipeline overrides
Components 29
API and access
- Kubernetes dashboard
- Pipeline configuration API
api/restHandler/app/pipeline/configure/DeploymentPipelineRestHandler.go - Pipeline history API
api/restHandler/app/pipeline/history/PipelineHistoryRestHandler.go - Pipeline trigger API
api/restHandler/app/pipeline/trigger/PipelineTriggerRestHandler.go - Helm app API
api/helm-app/HelmAppRestHandler.go - Cluster and resource API
api/cluster/ClusterRestHandler.go - User authentication API
api/auth/user/UserAuthHandler.go
Application delivery
- Pipeline stages
pkg/pipeline/bean/pipelineStage.go - Application pipeline model
pkg/bean/app.go - Global plugins
pkg/plugin/GlobalPluginService.go - Pipeline history service
pkg/pipeline/history/PipelineStrategyHistoryService.go - Deployment status timeline
pkg/app/status/PipelineStatusTimelineService.go
Helm app management
- Full-mode deployment
pkg/appStore/installedApp/service/FullMode/deployment/FullModeDeploymentService.go - Flux deployment
pkg/appStore/installedApp/service/FullMode/deployment/FullModeFluxDeploymentService.go - Installed app services
pkg/appStore/installedApp/service - ArgoCD integration
client/argocdServer/application/Application.go - FluxCD integration
client/fluxcd/fluxDeploymentService.go
Identity and authorization
- User auth service
pkg/auth/user/UserAuthService.go - User auth repository
pkg/auth/user/repository/UserAuthRepository.go - Casbin RBAC
pkg/auth/authorisation/casbin/rbac.go
Persistence and configuration
- Pipeline repository
internal/sql/repository/pipelineConfig/PipelineRepository.go - CI pipeline repository
internal/sql/repository/pipelineConfig/CiPipelineRepository.go - Pipeline overrides
internal/sql/repository/chartConfig/PipelineOverrideRepository.go - App listing queries
internal/sql/repository/helper/AppListingRepositoryQueryBuilder.go - Timeline repository
internal/sql/repository/pipelineConfig/PipelineStatusTimelineRepository.go - Scoped variables
pkg/variables/ScopedVariableCMCSManager.go - SQL database
Other components
- Platform user
- Kubernetes clusters
Connections 32
- Platform user → Kubernetes dashboard: uses
- Kubernetes dashboard → Helm app API: manages Helm apps
- Kubernetes dashboard → Cluster and resource API: browses resources
- Kubernetes dashboard → User authentication API: authenticates users
- Kubernetes dashboard → ArgoCD integration: views GitOps apps
- Kubernetes dashboard → FluxCD integration: views GitOps apps
- Pipeline configuration API → Application pipeline model: uses model
api/restHandler/app/pipeline/configure/DeploymentPipelineRestHandler.go - Pipeline configuration API → Pipeline repository: uses repository
api/restHandler/app/pipeline/configure/DeploymentPipelineRestHandler.go - Pipeline configuration API → Pipeline overrides: uses repository
api/restHandler/app/pipeline/configure/DeploymentPipelineRestHandler.go - Pipeline trigger API → Application pipeline model: uses model
api/restHandler/app/pipeline/trigger/PipelineTriggerRestHandler.go - Pipeline history API → Pipeline history service: reads history
api/restHandler/app/pipeline/history/PipelineHistoryRestHandler.go - Pipeline trigger API → Casbin RBAC: checks access
api/restHandler/app/pipeline/trigger/PipelineTriggerRestHandler.go - Pipeline configuration API → Casbin RBAC: checks access
api/restHandler/app/pipeline/configure/DeploymentPipelineRestHandler.go - Pipeline stages → Pipeline repository: uses repository
pkg/pipeline/bean/pipelineStage.go - Pipeline stages → Global plugins: uses plugins
pkg/pipeline/bean/pipelineStage.go - Pipeline history service → Pipeline repository: uses repository
pkg/pipeline/history/PipelineStrategyHistoryService.go - Deployment status timeline → Timeline repository: reads and writes
pkg/app/status/PipelineStatusTimelineService.go - Full-mode deployment → ArgoCD integration: registers apps
pkg/appStore/installedApp/service/FullMode/deployment/FullModeDeploymentService.go - Full-mode deployment → Deployment status timeline: updates status
pkg/appStore/installedApp/service/FullMode/deployment/FullModeDeploymentService.go - Full-mode deployment → Installed app services: uses services
pkg/appStore/installedApp/service/FullMode/deployment/FullModeDeploymentService.go - Flux deployment → FluxCD integration: deploys through
pkg/appStore/installedApp/service/FullMode/deployment/FullModeFluxDeploymentService.go - User authentication API → User auth service: delegates
api/auth/user/UserAuthHandler.go - User auth service → User auth repository: uses repository
pkg/auth/user/UserAuthService.go - User auth repository → SQL database: queries
pkg/auth/user/repository/UserAuthRepository.go - Pipeline repository → SQL database: reads and writes
internal/sql/repository/pipelineConfig/PipelineRepository.go - Pipeline overrides → SQL database: queries
internal/sql/repository/chartConfig/PipelineOverrideRepository.go - Timeline repository → SQL database: stores timelines
- CI pipeline repository → SQL database: stores pipeline data
- App listing queries → SQL database: builds SQL queries
- Scoped variables → Pipeline overrides: uses repository
pkg/variables/ScopedVariableCMCSManager.go - Helm app API → Full-mode deployment: delegates deployment
- Cluster and resource API → Kubernetes clusters: manages resources