baton-argo-cd is a connector for built using the Baton SDK.
Check out Baton to learn more the project in general.
To grant roles to users, role definitions must exist in the argocd-rbac-cm ConfigMap before assignment.
Built-in roles (always available):
admin- Full administrative accessreadonly- Read-only access to all resources
Custom roles must be defined before granting:
apiVersion: v1
kind: ConfigMap
metadata:
name: argocd-rbac-cm
namespace: argocd
data:
policy.csv: |
# Define custom roles FIRST (policy definitions)
p, role:developers, applications, get, default/*, allow
p, role:operators, applications, *, */*, allow
# Then grants can be added (manually or via baton)
g, alice, role:developersPolicy line format: p, role:<name>, resource, action, object, effect
See ArgoCD RBAC documentation for details.
When connecting to ArgoCD instances with self-signed certificates, you have two options:
For development/testing (insecure):
baton-argo-cd --insecure-skip-verify true --api-url https://argocd.local ...For production (secure with custom CA):
baton-argo-cd --ca-cert-path /path/to/ca.crt --api-url https://argocd.local ...brew install conductorone/baton/baton conductorone/baton/baton-argo-cd
baton-argo-cd
baton resources
docker run --rm -v $(pwd):/out -e BATON_DOMAIN_URL=domain_url -e BATON_API_KEY=apiKey -e BATON_USERNAME=username ghcr.io/conductorone/baton-argo-cd:latest -f "/out/sync.c1z"
docker run --rm -v $(pwd):/out ghcr.io/conductorone/baton:latest -f "/out/sync.c1z" resources
go install github.com/conductorone/baton/cmd/baton@main
go install github.com/conductorone/baton-argo-cd/cmd/baton-argo-cd@main
baton-argo-cd
baton resources
baton-argo-cd will pull down information about the following resources from ArgoCD:
- Users
- Roles
This connector supports account provisioning for users and entitlement provisioning for roles.
We started Baton because we were tired of taking screenshots and manually building spreadsheets. We welcome contributions, and ideas, no matter how small—our goal is to make identity and permissions sprawl less painful for everyone. If you have questions, problems, or ideas: Please open a GitHub Issue!
See CONTRIBUTING.md for more details.
baton-argo-cd
Usage:
baton-argo-cd [flags]
baton-argo-cd [command]
Available Commands:
capabilities Get connector capabilities
completion Generate the autocompletion script for the specified shell
help Help about any command
Flags:
--username string The username used to authenticate with Argo CD
--password string The password used to authenticate with Argo CD
--api-url string The API URL
--client-id string The client ID used to authenticate with ConductorOne ($BATON_CLIENT_ID)
--client-secret string The client secret used to authenticate with ConductorOne ($BATON_CLIENT_SECRET)
-f, --file string The path to the c1z file to sync with ($BATON_FILE) (default "sync.c1z")
-h, --help help for baton-argo-cd
--log-format string The output format for logs: json, console ($BATON_LOG_FORMAT) (default "json")
--log-level string The log level: debug, info, warn, error ($BATON_LOG_LEVEL) (default "info")
-p, --provisioning If this connector supports provisioning, this must be set in order for provisioning actions to be enabled ($BATON_PROVISIONING)
--ticketing This must be set to enable ticketing support ($BATON_TICKETING)
-v, --version version for baton-argo-cd
Use "baton-argo-cd [command] --help" for more information about a command.
