Skip to content

ArgoCD plugin support #93

Description

@ewega

Summary

Add ArgoCD as a supported DevOps tool in the CLI. ArgoCD is the leading GitOps/CD tool for Kubernetes, providing deployment frequency and change tracking data for DORA metrics.

Upstream Plugin

argocd in incubator-devlake/backend/plugins/argocd/

Property Value
Plugin slug argocd
Auth AccessToken
Scope type Applications (Name string in namespace)
Scope ID field name
Default endpoint User-provided ArgoCD server URL
Remote-scope API Yes
Connection test Yes

Dependencies

Blocked by:

Not blocked by #85 — ArgoCD uses AccessToken, compatible with current auth model.

Changes

  • Add ConnectionDef for argocd in connectionRegistry:
    • Endpoint: "" (user must provide)
    • SupportsTest: true
    • TokenPrompt: "ArgoCD auth token"
    • EnvVarNames: []string{"ARGOCD_TOKEN", "ARGOCD_AUTH_TOKEN"}
    • EnvFileKeys: []string{"ARGOCD_TOKEN", "ARGOCD_AUTH_TOKEN"}
    • ScopeIDField: "name"
    • ScopeFunc: scopeArgoCDHandler
  • Implement scopeArgoCDHandler:
    • Use client.ListRemoteScopes("argocd", connID, "", "") to list applications
    • Let user select applications interactively
    • PUT selected applications as scopes
  • Set Available: true

Acceptance Criteria

  • gh devlake configure connection add --plugin argocd --endpoint https://argocd.example.com creates an ArgoCD connection
  • ArgoCD appears in interactive plugin picker
  • ArgoCD scopes list applications for selection
  • Connection test works
  • go build ./..., go test ./..., go vet ./... pass

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions