argoproj/argo-cd
Data models
A quick map from each user-facing concept to where the Go type is defined.
CRDs
| Concept | Type | File |
|---|---|---|
| Application | Application, ApplicationSpec, ApplicationStatus |
pkg/apis/application/v1alpha1/types.go |
| Application source | ApplicationSource, ApplicationSourceHelm, ApplicationSourceKustomize, ApplicationSourceDirectory, ApplicationSourcePlugin |
pkg/apis/application/v1alpha1/types.go |
| Application destination | ApplicationDestination |
pkg/apis/application/v1alpha1/types.go |
| Sync policy / operation | SyncPolicy, SyncOperation, OperationState, RetryStrategy, Backoff |
pkg/apis/application/v1alpha1/types.go |
| Health & sync status | SyncStatus, HealthStatus, ResourceStatus |
pkg/apis/application/v1alpha1/types.go |
| AppProject | AppProject, AppProjectSpec, ProjectRole, JWTToken, SyncWindow |
pkg/apis/application/v1alpha1/app_project_types.go |
| ApplicationSet | ApplicationSet, ApplicationSetSpec, ApplicationSetGenerator and per-generator types |
pkg/apis/application/v1alpha1/applicationset_types.go |
| ApplicationSet status | ApplicationSetStatus, ApplicationSetCondition, ApplicationSetApplicationStatus |
pkg/apis/application/v1alpha1/applicationset_types.go |
| Repository / repo creds | Repository, RepoCreds |
pkg/apis/application/v1alpha1/repository_types.go |
| Constants & defaults | Annotations, labels, sync-options strings | pkg/apis/application/v1alpha1/application_annotations.go, application_defaults.go, cluster_constants.go |
Settings and policy
| Concept | Type | File |
|---|---|---|
| Cluster-wide settings | ArgoCDSettings, OIDCConfig, RepoCredentials, ResourceOverride, KustomizeOptions, HelmOptions, … |
util/settings/settings.go |
| Casbin policy | Enforcer and helpers |
util/rbac/rbac.go |
| Notifications config | Service + template + trigger structs | util/notification/settings/ and the upstream notifications-engine |
| Resource tracking | ResourceTracking, TrackingMethod |
util/argo/resource_tracking.go |
| Resource normalization | Normalizer interface and impls |
util/argo/normalizers/ |
In-flight RPC types
Almost every gRPC service has its own request/response messages defined alongside the proto files (e.g., server/application/application.proto). The generated Go types live in the same directory; the auto-generated clients are under pkg/apiclient/<service>/.
Repo server protocol
The repo server's protocol is defined in reposerver/repository/repository.proto. Notable messages:
ManifestRequest/ManifestResponse— the rendering RPC.Repository— the source repo descriptor (URL, type, credentials).RepoServerAppDetailsQuery/RepoAppDetailsResponse— the "browse repo" UI surface.
Commit server protocol
The commit server protocol lives in commitserver/commit/. The single core RPC commits a set of files into a hydrated branch; see Commit server.
Codegen
Generated files (do not hand-edit):
pkg/apis/application/v1alpha1/generated.pb.go(~1.4 MB)pkg/apis/application/v1alpha1/openapi_generated.go(~319 KB)pkg/apis/application/v1alpha1/zz_generated.deepcopy.go- Per-package
mocks/directories.
Run make codegen to regenerate.
See also
- primitives/ for the conceptual descriptions.
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.