Capabilities
The ArgoCD connector supports automatic account provisioning and deprovisioning.
When a new account is created by C1, the account’s password will be sent to a vault.
The connector also supports credential rotation for local accounts: C1 sets a new random password
and sends it to a vault. ArgoCD rejects every session and API token issued before a password
change, so rotation also cuts off the account’s existing access.
Connector actions
Connector actions are custom capabilities that extend C1 automations with app-specific operations.Account lifecycle
The connector manages ArgoCD local accounts. ArgoCD’s Account API exposes no delete, disable or enable endpoint, so the connector changes accounts through the Kubernetes API, using the permissions described in Gather ArgoCD credentials.- Disable / enable (the
disable_userandenable_useractions) are reversible. The account keeps its password and API tokens, which ArgoCD refuses while the account is disabled and accepts again once it is enabled. - Revoke API tokens (the
revoke_tokensaction) removes the account’s API tokens without touching the account itself. - Rotate password (credential rotation) sets a new random password and invalidates every session and API token issued before it.
- Delete (account deprovisioning) is permanent. It revokes the account’s API tokens, removes its role grants and direct permissions, removes the account, and purges its stored credentials, so an account created later with the same name inherits none of them.
disable_user to suspend access you may need to restore, and delete to remove the account
for good.
Notes:
- The built-in
adminaccount cannot be disabled, enabled, rotated, stripped of its tokens or deleted. The connector also refuses to do any of these, except enable, to the account it authenticates as, since it would lock itself out of ArgoCD. SSO/Dex-managed identities are not local accounts, so there is nothing for the connector to manage for them. - Disabling a disabled account, enabling an enabled account, revoking the tokens of an account that has none, or deleting an account that is already gone is reported as success. The actions and rotation fail with a not-found error for an account ArgoCD does not know.
- Account names may contain only alphanumerics,
-and_. Names containing.are rejected, since ArgoCD cannot address them as accounts. - Deleting an account rewrites
policy.csvinargocd-rbac-cm, which removes its#comment lines. - Revoking tokens and rotating another account’s password need the
accounts, updateArgoCD RBAC permission for the connector’s account. Deleting accounts also requires thesecretsKubernetes permissions described below.
Gather ArgoCD credentials
Configuring the connector requires you to pass in credentials generated in ArgoCD. Gather these credentials before you move on.Create a Role with required permissions
The connector needs permissions to read and modify ArgoCD ConfigMaps, and to read and patch the ArgoCD Secret. Create a Role that grants access to the following objects:argocd-rbac-cmConfigMap: Contains RBAC policies and role grants (needs read and write access)argocd-cmConfigMap: Contains ArgoCD configuration including user accounts (needs write access for provisioning, deprovisioning and the enable/disable actions)argocd-secretSecret: Contains local accounts’ password hashes and API token records (needs read and write access for account deletion)
get: Read individual ConfigMaps (required to readargocd-rbac-cmandargocd-cm)list: List ConfigMaps in the namespace (required to discover and access the ConfigMaps)patch: Partially update ConfigMaps (used to modify RBAC policies and user accounts)update: Fully update ConfigMaps (used as an alternative to patch for modifying ConfigMaps)get/patchonsecrets: Read and purge a deleted account’s stored credentials inargocd-secret. Restricted to that one Secret by name, so the connector cannot read the repository and cluster credentials that also live in theargocdnamespace. Only needed for account deletion; omit the rule entirely if you do not use it.
Create a RoleBinding
Bind the Role to the ServiceAccount so the connector can use the permissions:Gather additional credentials
To set up the connector, you’ll need:1
The username and password for your ArgoCD admin account, or for a dedicated service account you’ve set up.
Make sure the account used to configure the connector has the relevant permissions:
- To sync (read) users and roles:
getandlistpermissions for users and roles - To provision (read-write) users and roles:
getandlistpermissions for users and roles, pluscreatepermission for users andupdatepermission for user role assignments. The built-inadminrole has these permissions, or you can create a custom role.
2
Your ArgoCD API URL, which is the URL you use to access the ArgoCD UI.
3
The
kubeconfig path or file to connect to the cluster where ArgoCD is running.The connector should be deployed in the same Kubernetes cluster as ArgoCD (such as in the argocd namespace). This allows the connector to automatically use the in-cluster configuration from the pod’s service account. No kubeconfig file is needed in this case. If one is provided, it will take precedence over in-cluster.Find more information on setting up an in-cluster configuration in the connector repo.4
(Optional) If your ArgoCD instance uses a self-signed TLS certificate, you’ll need one of the following:
- For testing/development: Set
BATON_INSECURE_SKIP_VERIFY=trueto skip certificate verification. - For production: Obtain the CA certificate used to sign your ArgoCD server’s TLS certificate and save it as a file. You’ll pass its path as
BATON_CA_CERT_PATH.
Configure the ArgoCD connector
- Cloud-hosted
- Self-hosted
Follow these instructions to use a built-in, no-code connector hosted by C1.This connector does not support cloud hosting.