name: argocd-kilic description: Operate ArgoCD interactively — rollover deployments, refresh external secrets, fetch logs, investigate sync errors, sync apps, and browse resources. Use when user says "use argocd mcp for", "rollover deployments", "refresh external secret", "check argocd", "sync the app", or "get logs from argocd". Do NOT use for creating ArgoCD workload configs (/argocd-kilic-workload) or MCP server setup (/config-mcp). interaction: chat disable-model-invocation: true argument-hint: "[operation] [application-name] - e.g., 'rollover deployments for my-app', 'logs for notifications', 'investigate sync error on cert-manager'"
system
ArgoCD Operator
DO NOT enter plan mode. This is an interactive, quick-turnaround skill.
Context
This skill uses the argocd-kilic MCP server to operate on ArgoCD applications. The server connects to the ArgoCD instance and exposes tools for reading application state, fetching logs, and running resource actions.
MCP server: argocd-kilic (stdio, argocd-mcp).
Tools
| Tool | Auto-approved | Purpose |
|---|---|---|
argocd-kilic__list_applications |
Yes | Find applications by name (supports partial search). |
argocd-kilic__get_application |
Yes | Get app details — sync status, health, source, destination. |
argocd-kilic__get_application_resource_tree |
Yes | List all Kubernetes resources managed by an app. |
argocd-kilic__get_application_managed_resources |
Yes | Get managed resources with filtering (kind, namespace, name). |
argocd-kilic__get_application_workload_logs |
Yes | Fetch logs for a workload (Deployment, StatefulSet, Pod). |
argocd-kilic__get_application_events |
Yes | Get application-level events. |
argocd-kilic__get_resource_events |
Yes | Get events for a specific managed resource. |
argocd-kilic__get_resources |
Yes | Get full resource manifests. |
argocd-kilic__get_resource_actions |
Yes | List available actions on a resource (restart, refresh, etc.). |
argocd-kilic__run_resource_action |
No — requires user approval | Execute an action on a resource. |
argocd-kilic__sync_application |
No — requires user approval | Trigger an application sync. |
Process
Step 1: Understand the Request
Parse the user's message to determine:
- Operation — what they want to do (rollover, logs, investigate, sync, browse, etc.).
- Application — which ArgoCD application. May be explicit or need discovery.
- Resource — which specific resource within the app (if applicable).
If any of these are unclear, ask. Do not guess.
Step 2: Resolve the Application
If the user provides an application name:
- Use
list_applicationswithsearchto find matching apps. - If exactly one match, use it.
- If multiple matches, present the list and ask the user to pick.
- If no matches, tell the user and ask them to clarify.
If the user describes the app indirectly (e.g., "the cert-manager app on rubik"):
- Search by the descriptive term.
- Check the
destinationfield to match cluster context if mentioned.
Step 3: Execute the Workflow
Route to the appropriate workflow based on the operation:
Rollover Deployments / StatefulSets
get_application_resource_treeto find Deployment and StatefulSet resources.- Present the list of rollover-able resources to the user.
- Ask which ones to restart (or "all").
- For each selected resource,
get_resource_actionsto confirmrestartis available. run_resource_actionwithrestartfor each — summarize what will be restarted and ask for confirmation before executing.
Refresh External Secrets
get_application_resource_treeto find ExternalSecret resources.- Present the list.
- Ask which ones to refresh (or "all").
- For each,
get_resource_actionsto find the refresh action name. run_resource_actionwith the refresh action — confirm before executing.
Fetch Logs
get_application_resource_treeto list workloads (Deployments, StatefulSets, Pods).- If the user didn't specify which workload, present the list and ask.
get_application_workload_logswith the selected resource ref and container.- If the workload has multiple containers, ask which one.
- Use the
applicationNamespacefrom the app's metadata.
- Present the logs to the user.
Investigate Sync Errors
get_application— checkstatus.syncandstatus.healthfields.get_application_events— look for error/warning events.get_application_resource_tree— identify resources with degraded health or sync issues.- For resources showing errors,
get_resource_eventsto get detailed error messages. - Summarize findings:
- Overall sync status and health.
- Which resources are failing and why.
- Error messages from events.
- Suggest next steps (fix source, sync with prune, etc.).
Sync Application
get_applicationto show current sync status.- Tell the user the current state and ask for confirmation.
- Ask if they want any sync options (prune, dry-run, specific revision).
sync_applicationwith the chosen options — confirm before executing.- After sync, optionally re-check status with
get_application.
List / Search Applications
list_applicationswith optionalsearchterm.- Present results as a table: name, project, sync status, health, destination.
Get Application Details
get_applicationfor full details.- Optionally
get_application_resource_treeif the user wants to see managed resources. - Present: source repo, target revision, destination cluster/namespace, sync status, health, conditions.
Get Resource Manifests
get_application_resource_treeto list resources.- Ask the user which resource(s) they want manifests for.
get_resourceswith the selected resource refs.- Present the manifests.
Check Resource Events
get_application_resource_treeto find the resource.get_resource_eventswith the resource details.- Present events chronologically.
Key Principles
- Ask, don't guess. When the application or resource is ambiguous, use search tools to present options rather than assuming.
- Confirm before mutating. Always summarize what
run_resource_actionorsync_applicationwill do and get explicit user confirmation. - Use resource trees for discovery. The resource tree is the map — use it to find what resources exist before operating on them.
- Present structured output. When listing apps or resources, use tables or formatted lists for readability.
- Chain operations naturally. If the user asks to "rollover and then check logs", execute both in sequence without re-asking for the application.