{"id":"97ab2f30-a550-4a03-9f32-04234be43f4f","shortId":"epDyb9","kind":"skill","title":"kubesphere-devops-argocd","tagline":"Use when configuring ArgoCD in KubeSphere DevOps, including GitOps deployments, application management, SSO setup, or troubleshooting ArgoCD issues","description":"# KubeSphere DevOps ArgoCD Configuration\n\n## Overview\n\nKubeSphere DevOps includes **ArgoCD v2.11.7** as a bundled subchart for GitOps continuous deployment. ArgoCD follows the declarative GitOps pattern, automatically syncing application state with Git repositories.\n\n## When to Use\n\n- Setting up GitOps continuous deployment\n- Configuring ArgoCD applications and ApplicationSets\n- Enabling SSO authentication via Dex\n- Managing multi-cluster deployments\n- Troubleshooting ArgoCD sync issues\n- Configuring repository credentials\n\n## KubeSphere GitOps Integration\n\n### Two Ways to Create Applications\n\n**1. Direct ArgoCD Application (Admin Only)**\n- Created in `argocd` namespace\n- Requires access to ArgoCD namespace\n- Full control over ArgoCD configuration\n\n**2. KubeSphere GitOps Application (Tenant-Friendly)**\n- Created via `/kapis/gitops.kubesphere.io/v1alpha1/`\n- Application CR created in tenant namespace\n- KubeSphere automatically creates corresponding ArgoCD Application\n- Tenant doesn't need direct ArgoCD access\n\n### Architecture\n\n```\n┌─────────────────────────────────────────────────────────────┐\n│                    Tenant Namespace                          │\n│  ┌──────────────────────────────────────────────┐           │\n│  │  Application (gitops.kubesphere.io/v1alpha1) │           │\n│  │  - Created by tenant via KubeSphere API      │           │\n│  │  - Label: gitops.kubesphere.io/argocd-location: argocd │  │\n│  └──────────────────┬───────────────────────────┘           │\n└──────────────────────┼──────────────────────────────────────┘\n                       │\n                       │ KubeSphere Controller watches\n                       │ and creates corresponding\n                       ▼\n┌─────────────────────────────────────────────────────────────┐\n│                    argocd Namespace                          │\n│  ┌──────────────────────────────────────────────┐           │\n│  │  Application (argoproj.io/v1alpha1)          │           │\n│  │  - Created automatically by KubeSphere       │           │\n│  │  - References tenant namespace as target     │           │\n│  └──────────────────┬───────────────────────────┘           │\n└──────────────────────┼──────────────────────────────────────┘\n                       │\n                       │ ArgoCD Controller reconciles\n                       ▼\n┌─────────────────────────────────────────────────────────────┐\n│                    Tenant Namespace                          │\n│  ┌──────────────────────────────────────────────┐           │\n│  │  Deployed Resources (Pods, Services, etc.)   │           │\n│  │  - Created by ArgoCD                         │           │\n│  │  - Managed via GitOps                        │           │\n│  └──────────────────────────────────────────────┘           │\n└─────────────────────────────────────────────────────────────┘\n```\n\n### Key Differences\n\n| Aspect | Direct ArgoCD | KubeSphere GitOps |\n|--------|---------------|-------------------|\n| **Namespace** | `argocd` | Tenant's namespace |\n| **Access Required** | ArgoCD namespace | Tenant namespace only |\n| **API Endpoint** | N/A (kubectl) | `/kapis/gitops.kubesphere.io/v1alpha1/` |\n| **Tenant Can Create** | ❌ No | ✅ Yes |\n| **ArgoCD UI Access** | ✅ Yes | ❌ No (transparent) |\n| **Multi-tenancy** | Shared | Isolated per tenant |\n\n## Architecture\n\n### ArgoCD Components\n\n| Component | Pod Name Pattern | Purpose |\n|-----------|------------------|---------|\n| Application Controller | `devops-agent-argocd-application-controller-*` | Reconciles Application state |\n| ApplicationSet Controller | `devops-agent-argocd-applicationset-controller-*` | Manages ApplicationSet CRDs |\n| Dex Server | `devops-agent-argocd-dex-server-*` | SSO authentication proxy |\n| Notifications Controller | `devops-agent-argocd-notifications-controller-*` | Event notifications |\n| Redis | `devops-agent-argocd-redis-*` | Cache and state storage |\n| Repo Server | `devops-agent-argocd-repo-server-*` | Git repository operations |\n| ArgoCD Server | `devops-agent-argocd-server-*` | API and UI |\n\n**Namespace:** `argocd` (configurable via `argocd.namespace`)\n\n## Installation & Verification\n\n### Check ArgoCD Status\n\n```bash\n# Verify ArgoCD namespace exists\nkubectl get ns argocd\n\n# Check all ArgoCD pods\nkubectl get pods -n argocd\n\n# Check ArgoCD services\nkubectl get svc -n argocd\n```\n\n### Access ArgoCD UI\n\n```bash\n# Get ArgoCD server service\nkubectl get svc devops-agent-argocd-server -n argocd\n\n# Port-forward for local access\nkubectl port-forward svc/devops-agent-argocd-server -n argocd 8080:443\n\n# Get initial admin password\nkubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath='{.data.password}' | base64 -d\n\n# Access via: https://localhost:8080\n# Username: admin\n# Password: (from command above)\n```\n\n## Configuration\n\n### Enable/Disable ArgoCD\n\nIn DevOps InstallPlan:\n\n```yaml\napiVersion: kubesphere.io/v1alpha1\nkind: InstallPlan\nmetadata:\n  name: devops\n  namespace: kubesphere-system\nspec:\n  extension:\n    name: devops\n    version: 1.2.4\n  enabled: true\n  upgradeStrategy: Manual\n  config: |\n    agent:\n      argocd:\n        enabled: true           # Enable ArgoCD\n        namespace: \"argocd\"     # ArgoCD namespace\n```\n\n### Custom ArgoCD Configuration\n\n```yaml\nconfig: |\n  agent:\n    argocd:\n      enabled: true\n      namespace: \"argocd\"\n      # Full ArgoCD Helm values available\n      # See: kse-extensions/devops/charts/agent/charts/argo-cd/values.yaml\n      configs:\n        cm:\n          url: \"https://argocd.example.com\"\n          admin.enabled: \"true\"\n```\n\n## Managing Applications\n\n### Create an Application\n\n```yaml\napiVersion: argoproj.io/v1alpha1\nkind: Application\nmetadata:\n  name: my-app\n  namespace: argocd\nspec:\n  project: default\n  source:\n    repoURL: https://github.com/example/repo.git\n    targetRevision: HEAD\n    path: k8s/overlays/production\n  destination:\n    server: https://kubernetes.default.svc\n    namespace: my-app-namespace\n  syncPolicy:\n    automated:\n      prune: true\n      selfHeal: true\n    syncOptions:\n      - CreateNamespace=true\n```\n\n\n### Create via KubeSphere GitOps API (Tenant Method)\n\n**For tenants** who don't have access to the `argocd` namespace:\n\n```bash\n# Authenticate as tenant\nexport API_TOKEN=\"<tenant-kubesphere-token>\"\nexport KUBESPHERE_API=\"https://kubesphere-api.example.com\"\nexport DEVOPS_PROJECT=\"demo-project\"\n\n# Create GitOps Application via API\ncurl -s -X POST \"${KUBESPHERE_API}/kapis/gitops.kubesphere.io/v1alpha1/namespaces/${DEVOPS_PROJECT}/applications\" \\\n  -H \"Authorization: Bearer ${API_TOKEN}\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"apiVersion\": \"gitops.kubesphere.io/v1alpha1\",\n    \"kind\": \"Application\",\n    \"metadata\": {\n      \"name\": \"guestbook\",\n      \"namespace\": \"'${DEVOPS_PROJECT}'\",\n      \"labels\": {\n        \"gitops.kubesphere.io/argocd-location\": \"argocd\"\n      }\n    },\n    \"spec\": {\n      \"argoApp\": {\n        \"spec\": {\n          \"project\": \"default\",\n          \"source\": {\n            \"repoURL\": \"https://github.com/stoneshi-yunify/argocd-example-apps\",\n            \"targetRevision\": \"HEAD\",\n            \"path\": \"guestbook\"\n          },\n          \"destination\": {\n            \"server\": \"https://kubernetes.default.svc\",\n            \"namespace\": \"'${DEVOPS_PROJECT}'\"\n          },\n          \"syncPolicy\": {\n            \"automated\": {\n              \"prune\": true,\n              \"selfHeal\": true\n            },\n            \"syncOptions\": [\n              \"CreateNamespace=true\"\n            ]\n          }\n        }\n      }\n    }\n  }'\n```\n\n**What happens:**\n1. Tenant creates `Application` (gitops.kubesphere.io/v1alpha1) in their namespace\n2. KubeSphere automatically adds label: `gitops.kubesphere.io/argocd-location: argocd`\n3. KubeSphere controller creates corresponding ArgoCD Application in `argocd` namespace\n4. ArgoCD syncs the application to the tenant's namespace\n\n**Verify Application Status:**\n\n```bash\n# Method 1: Check status labels (tenant accessible)\ncurl -s \"${KUBESPHERE_API}/clusters/member-1/kapis/gitops.kubesphere.io/v1alpha1/namespaces/demo-project/applications/guestbook\" \\\n  -H \"Authorization: Bearer ${API_TOKEN}\" | jq -r '{\n  health: .metadata.labels[\"gitops.kubesphere.io/health-status\"],\n  sync: .metadata.labels[\"gitops.kubesphere.io/sync-status\"]\n}'\n# Expected output when healthy and synced:\n# {\n#   \"health\": \"Healthy\",\n#   \"sync\": \"Synced\"\n# }\n\n# Method 2: Check detailed status via .status.argoApp (JSON string)\ncurl -s \"${KUBESPHERE_API}/clusters/member-1/kapis/gitops.kubesphere.io/v1alpha1/namespaces/demo-project/applications/guestbook\" \\\n  -H \"Authorization: Bearer ${API_TOKEN}\" | jq -r '.status.argoApp' | jq -r '{\n  syncStatus: .sync.status,\n  healthStatus: .health.status,\n  resources: [.resources[] | {kind: .kind, name: .name, status: .status}]\n}'\n\n# Check ArgoCD Application (admin only)\nkubectl get application -n argocd | grep guestbook\n```\n\n**Note:** When `spec.argoApp.spec.destination.server` is `https://kubernetes.default.svc` and `destination.name` is empty or `in-cluster`, the Application deploys to the cluster specified in the API path (e.g., `/clusters/member-1` → member-1 cluster). Tenants should verify deployment via Application status labels as they may not have permissions to query the destination namespace directly.\n\n**Note:** This method requires KubeSphere GitOps controller to be running.\n\n\n**⚠️ CRITICAL: Required Label**\n\nThe Application **MUST** have the label `gitops.kubesphere.io/argocd-location: argocd`. Without this label:\n- The controller will **silently ignore** the Application\n- No ArgoCD Application will be created\n- The Application status will remain **Unknown**\n\n**Evidence from controller logs:**\n```\nWarning  Invalid  application/private-guestbook  \nCannot find the namespace of the Argo CD instance from key: gitops.kubesphere.io/argocd-location\n```\n\n**⚠️ WARNING: Don't Create ArgoCD Application Manually**\n\nWhen using KubeSphere GitOps Application, the controller automatically creates the corresponding ArgoCD Application. **Do NOT** create an ArgoCD Application manually with the same name or targeting the same resources - this will cause a resource conflict.\n\n**Resource Conflict Example:**\n```\nDeployment/guestbook-ui is part of applications \nargocd/private-guestbook and stone-devops-private-guestbook\n```\n\nThis results in:\n- SharedResourceWarning\n- OutOfSync status\n- Conflicting management\n\n### Create an ApplicationSet\n\n```yaml\napiVersion: argoproj.io/v1alpha1\nkind: ApplicationSet\nmetadata:\n  name: my-appset\n  namespace: argocd\nspec:\n  generators:\n    - git:\n        repoURL: https://github.com/example/repo.git\n        revision: HEAD\n        directories:\n          - path: apps/*\n  template:\n    metadata:\n      name: '{{path.basename}}'\n    spec:\n      project: default\n      source:\n        repoURL: https://github.com/example/repo.git\n        targetRevision: HEAD\n        path: '{{path}}'\n      destination:\n        server: https://kubernetes.default.svc\n        namespace: '{{path.basename}}'\n      syncPolicy:\n        automated:\n          prune: true\n          selfHeal: true\n```\n\n## Repository Management\n\n### Add a Git Repository\n\n**Via CLI:**\n```bash\n# Login to argocd CLI\nargocd login localhost:8080 --username admin --password $(kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath='{.data.password}' | base64 -d)\n\n# Add repository\nargocd repo add https://github.com/example/repo.git \\\n  --username <user> \\\n  --password <token>\n```\n\n**Via Secret:**\n```yaml\napiVersion: v1\nkind: Secret\nmetadata:\n  name: repo-github-example\n  namespace: argocd\n  labels:\n    argocd.argoproj.io/secret-type: repository\nstringData:\n  type: git\n  url: https://github.com/example/repo.git\n  username: <username>\n  password: <personal-access-token>\n```\n\n### Add a Helm Repository\n\n```yaml\napiVersion: v1\nkind: Secret\nmetadata:\n  name: repo-helm-stable\n  namespace: argocd\n  labels:\n    argocd.argoproj.io/secret-type: repository\nstringData:\n  type: helm\n  url: https://charts.helm.sh/stable\n  name: stable\n```\n\n## SSO Configuration\n\n### Enable Dex for SSO\n\nArgoCD includes Dex for SSO integration:\n\n```yaml\nconfig: |\n  agent:\n    argocd:\n      configs:\n        cm:\n          url: https://argocd.example.com\n          dex.config: |\n            connectors:\n              - type: github\n                id: github\n                name: GitHub\n                config:\n                  clientID: $dex.github.clientId\n                  clientSecret: $dex.github.clientSecret\n                  orgs:\n                    - name: your-org\n```\n\n### Configure Secrets for Dex\n\n```bash\n# Create secret for Dex connector credentials\nkubectl -n argocd create secret generic argocd-dex-github \\\n  --from-literal=dex.github.clientId=<client-id> \\\n  --from-literal=dex.github.clientSecret=<client-secret>\n```\n\n## CLI Operations\n\n### Install ArgoCD CLI\n\n```bash\n# Download CLI\ncurl -sSL -o argocd-linux-amd64 https://github.com/argoproj/argo-cd/releases/latest/download/argocd-linux-amd64\n\n# Install\nsudo install -m 555 argocd-linux-amd64 /usr/local/bin/argocd\nrm argocd-linux-amd64\n```\n\n### Common CLI Commands\n\n```bash\n# Login\nargocd login <argocd-server-host>\n\n# List applications\nargocd app list\n\n# Get application status\nargocd app get <app-name>\n\n# Sync application\nargocd app sync <app-name>\n\n# Sync with pruning\nargocd app sync <app-name> --prune\n\n# Watch sync progress\nargocd app wait <app-name> --health\n\n# Rollback\nargocd app rollback <app-name> <revision>\n```\n\n## Practical Examples\n\n### Complete Workflow: Deploy Guestbook Application\n\n**1. Create Namespace (if needed):**\n```bash\nkubectl create ns argo-guestbook\n```\n\n**2. Create Application:**\n```yaml\napiVersion: argoproj.io/v1alpha1\nkind: Application\nmetadata:\n  name: guestbook\n  namespace: argocd\nspec:\n  project: default\n  source:\n    repoURL: https://github.com/stoneshi-yunify/argocd-example-apps\n    targetRevision: HEAD\n    path: guestbook\n  destination:\n    server: https://kubernetes.default.svc\n    namespace: argo-guestbook\n  syncPolicy:\n    automated:\n      prune: true\n      selfHeal: true\n    syncOptions:\n      - CreateNamespace=true\n```\n\n**Apply:**\n```bash\nkubectl apply -f guestbook-app.yaml\n```\n\n**3. Check Application Status:**\n```bash\n# Quick status\nkubectl get applications.argoproj.io guestbook -n argocd\n\n# Detailed status\nkubectl get applications.argoproj.io guestbook -n argocd -o custom-columns=\\\nSYNC:.status.sync.status,HEALTH:.status.health.status,REVISION:.status.sync.revision\n\n# Resource health\nkubectl get applications.argoproj.io guestbook -n argocd -o jsonpath='{.status.resources}'\n\n# Check deployed resources\nkubectl get all -n argo-guestbook\n```\n\n**Expected Output:**\n```\nNAME        SYNC STATUS   HEALTH STATUS\nguestbook   Synced        Healthy\n\nSYNC     HEALTH    REVISION\nSynced   Healthy   335cffbb730e59b165c308b98c3fa4037822bf2b\n```\n\n### Force Resync Application\n\nWhen you need to force ArgoCD to re-sync (e.g., after manually deleting resources):\n\n**Method 1: Add Refresh Annotation**\n```bash\nkubectl patch applications.argoproj.io guestbook -n argocd --type merge \\\n  -p '{\"metadata\":{\"annotations\":{\"argocd.argoproj.io/refresh\":\"hard\"}}}'\n```\n\n**Method 2: Update Spec (triggers reconciliation)**\n```bash\nkubectl patch applications.argoproj.io guestbook -n argocd --type merge \\\n  -p '{\"spec\":{\"revisionHistoryLimit\":10}}'\n```\n\n**With Automated Sync Enabled:**\nIf `syncPolicy.automated.selfHeal: true`, ArgoCD will automatically recreate deleted resources.\n\n**Test Force Resync:**\n```bash\n# 1. Delete all resources manually\nkubectl delete all --all -n argo-guestbook\n\n# 2. Trigger resync\nkubectl patch applications.argoproj.io guestbook -n argocd --type merge \\\n  -p '{\"metadata\":{\"annotations\":{\"argocd.argoproj.io/refresh\":\"hard\"}}}'\n\n# 3. Verify resources recreated\nkubectl get all -n argo-guestbook\n```\n\n### Delete Application\n\n**Delete Application (resources remain by default):**\n```bash\nkubectl delete applications.argoproj.io guestbook -n argocd\n```\n\n**Delete Application and Cleanup Resources:**\n```bash\n# Delete application\nkubectl delete applications.argoproj.io guestbook -n argocd\n\n# Clean up remaining resources\nkubectl delete all --all -n argo-guestbook\n```\n\n**Note:** With `syncPolicy.automated.prune: true`, deleting the application will also delete managed resources.\n\n### Common Status Checks\n\n```bash\n# Full status overview\nkubectl get applications.argoproj.io guestbook -n argocd -o custom-columns=\\\nAPPLICATION:.metadata.name,SYNC:.status.sync.status,HEALTH:.status.health.status,LAST_SYNC:.status.operationState.finishedAt\n\n# Sync result details\nkubectl get applications.argoproj.io guestbook -n argocd -o custom-columns=\\\nPHASE:.status.operationState.phase,MESSAGE:.status.operationState.message\n\n# Resource-level status\nkubectl get applications.argoproj.io guestbook -n argocd -o jsonpath='{.status.resources}' | jq .\n```\n\n## Troubleshooting\n\n### Check Application Status\n\n**For Tenants (via KubeSphere API):**\n\n```bash\n# Quick status check using labels\ncurl -s \"${KUBESPHERE_API}/clusters/member-1/kapis/gitops.kubesphere.io/v1alpha1/namespaces/${DEVOPS_PROJECT}/applications/${APP_NAME}\" \\\n  -H \"Authorization: Bearer ${API_TOKEN}\" | jq -r '{\n  health: .metadata.labels[\"gitops.kubesphere.io/health-status\"],\n  sync: .metadata.labels[\"gitops.kubesphere.io/sync-status\"],\n  argocdApp: .metadata.labels[\"gitops.kubesphere.io/argocd-application\"]\n}'\n\n# Detailed status from .status.argoApp (JSON string)\ncurl -s \"${KUBESPHERE_API}/clusters/member-1/kapis/gitops.kubesphere.io/v1alpha1/namespaces/${DEVOPS_PROJECT}/applications/${APP_NAME}\" \\\n  -H \"Authorization: Bearer ${API_TOKEN}\" | jq -r '.status.argoApp' | jq -r '{\n  syncStatus: .sync.status,\n  healthStatus: .health.status,\n  revision: .sync.revision,\n  resources: [.resources[] | {kind: .kind, name: .name, status: .status, health: .health.status}],\n  operationPhase: .operationState.phase,\n  operationMessage: .operationState.message\n}'\n```\n\n**For Admins (Direct ArgoCD Access):**\n\n```bash\n# Get application details\nkubectl get application <app-name> -n argocd -o yaml\n\n# Check application conditions\nkubectl get application <app-name> -n argocd -o jsonpath='{.status.conditions}'\n\n# View application events\nkubectl describe application <app-name> -n argocd\n```\n\n### Common Issues\n\n| Issue | Cause | Fix |\n|-------|-------|-----|\n| Sync failed | Invalid manifests | Check `status.operationState` for errors |\n| Permission denied | RBAC issues | Verify ArgoCD has permissions in target namespace |\n| Repo not found | Credential issues | Check repository secret and URL |\n| Stuck in Progress | Resource stuck | Check resource health, may need manual intervention |\n| OutOfSync | Drift detected | Enable auto-sync or manually sync |\n| Resources not recreated after deletion | Auto-sync not enabled | Add `selfHeal: true` or manually trigger sync |\n| Application status Unknown (KubeSphere GitOps) | Missing required label | Add label `gitops.kubesphere.io/argocd-location: argocd` |\n| SharedResourceWarning / OutOfSync | Duplicate ArgoCD Applications | Delete manually-created ArgoCD Application, use only KubeSphere GitOps Application |\n\n### Tips from Experience\n\n**1. Use Full CRD Name in Commands:**\n```bash\n# Correct\nkubectl get applications.argoproj.io guestbook -n argocd\n\n# May fail (ambiguous)\nkubectl get application guestbook -n argocd\n```\n\n**2. Automated Sync Behavior:**\n- `prune: true` - Deletes resources not in Git\n- `selfHeal: true` - Recreates resources deleted manually\n- Both recommended for production GitOps workflows\n\n**3. Namespace Creation:**\nUse `CreateNamespace=true` sync option to auto-create target namespace:\n```yaml\nsyncOptions:\n  - CreateNamespace=true\n```\n\n**4. Force Refresh Timing:**\nAfter adding refresh annotation, allow 5-10 seconds for reconciliation before checking status.\n\n| Issue | Cause | Fix |\n|-------|-------|-----|\n| Sync failed | Invalid manifests | Check `status.operationState` for errors |\n| Permission denied | RBAC issues | Verify ArgoCD has permissions in target namespace |\n| Repo not found | Credential issues | Check repository secret and URL |\n| Stuck in Progress | Resource stuck | Check resource health, may need manual intervention |\n| OutOfSync | Drift detected | Enable auto-sync or manually sync |\n\n### View Logs\n\n```bash\n# Application controller logs\nkubectl logs -n argocd -l app.kubernetes.io/name=argocd-application-controller\n\n# Repo server logs\nkubectl logs -n argocd -l app.kubernetes.io/name=argocd-repo-server\n\n# Server logs\nkubectl logs -n argocd -l app.kubernetes.io/name=argocd-server\n```\n\n### Debug Sync Failures\n\n```bash\n# Get detailed sync status\nkubectl get application <app-name> -n argocd -o jsonpath='{.status.operationState}' | jq .\n\n# Check resource health\nkubectl get application <app-name> -n argocd -o jsonpath='{.status.resources}'\n\n# Force refresh\nargocd app get <app-name> --hard-refresh\n```\n\n## Integration with KubeSphere\n\n### GitOps Applications Resource\n\nKubeSphere provides a `applications.gitops.kubesphere.io` CRD that integrates with ArgoCD:\n\n```yaml\napiVersion: gitops.kubesphere.io/v1alpha1\nkind: Application\nmetadata:\n  name: my-gitops-app\n  namespace: my-project\nspec:\n  argoApp:\n    source:\n      repoURL: https://github.com/example/repo.git\n      targetRevision: HEAD\n      path: manifests\n    destination:\n      server: https://kubernetes.default.svc\n      namespace: my-app\n    syncPolicy:\n      automated:\n        prune: true\n        selfHeal: true\n```\n\n### Multi-Cluster Deployments\n\nArgoCD can deploy to multiple clusters managed by KubeSphere:\n\n```bash\n# List registered clusters in ArgoCD\nargocd cluster list\n\n# Add a KubeSphere member cluster\nargocd cluster add <kubeconfig-context-name>\n```\n\n## Version Information\n\n| Component | Version |\n|-----------|---------|\n| ArgoCD | v2.11.7 |\n| ArgoCD Helm Chart | 7.3.11 |\n| Redis | 7.2.4 |\n| Dex | v2.38.0 |\n\n\n### Trigger Manual Sync via API\n\n**Tenant Method (KubeSphere API):**\n```bash\nexport API_TOKEN=\"<tenant-kubesphere-token>\"\n\n# Trigger sync\ncurl -s -X POST \"${KUBESPHERE_API}/kapis/gitops.kubesphere.io/v1alpha1/namespaces/demo-project/applications/guestbook/sync\" \\\n  -H \"Authorization: Bearer ${API_TOKEN}\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prune\":true}'\n```\n\n**Notes:**\n- Returns HTTP 400 with `another operation is already in progress` if auto-sync is enabled and recently completed\n- The sync API is accessible to tenants\n- Response may be empty on success\n\n**Admin Method (ArgoCD API):**\n```bash\n# Get ArgoCD admin token\nARGO_TOKEN=$(kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath='{.data.password}' | base64 -d)\n\n# Trigger sync\ncurl -s -X POST \"https://argocd-server.argocd/api/v1/applications/guestbook/sync\" \\\n  -H \"Authorization: Bearer ${ARGO_TOKEN}\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prune\":true,\"dryRun\":false}'\n```\n## References\n\n- [ArgoCD Documentation](https://argo-cd.readthedocs.io/)\n- [ArgoCD Helm Chart](https://github.com/argoproj/argo-helm/tree/main/charts/argo-cd)\n- [KubeSphere GitOps Guide](https://docs.kubesphere.io/)\n- [DevOps Extension README](/root/go/src/github.com/kubesphere/kse-extensions/devops/README.md)","tags":["kubesphere","devops","argocd","agent-skills","cloud-native","cncf","ebpf","hacktoberfest","kubernetes","llm","multi-cluster","multi-tenancy"],"capabilities":["skill","source-kubesphere","skill-kubesphere-devops-argocd","topic-agent-skills","topic-cloud-native","topic-cncf","topic-devops","topic-ebpf","topic-hacktoberfest","topic-kubernetes","topic-kubesphere","topic-llm","topic-multi-cluster","topic-multi-tenancy","topic-observability"],"categories":["kubesphere"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/kubesphere/kubesphere/kubesphere-devops-argocd","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add kubesphere/kubesphere","source_repo":"https://github.com/kubesphere/kubesphere","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 16920 github stars · SKILL.md body (23,126 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-03T00:52:29.259Z","embedding":null,"createdAt":"2026-04-18T21:53:12.130Z","updatedAt":"2026-05-03T00:52:29.259Z","lastSeenAt":"2026-05-03T00:52:29.259Z","tsv":"'-1':800 '-10':1927 '/)':2282,2294 '/api/v1/applications/guestbook/sync':2261 '/applications':583,1640,1678 '/argocd-application':1664 '/argocd-location':610,887 '/argocd-location:':157,660,843,1831 '/argoproj/argo-cd/releases/latest/download/argocd-linux-amd64':1198 '/argoproj/argo-helm/tree/main/charts/argo-cd)':2288 '/clusters/member-1':798 '/clusters/member-1/kapis/gitops.kubesphere.io/v1alpha1/namespaces':1637,1675 '/clusters/member-1/kapis/gitops.kubesphere.io/v1alpha1/namespaces/demo-project/applications/guestbook':697,738 '/devops/charts/agent/charts/argo-cd/values.yaml':479 '/example/repo.git':512,976,993,1051,1080,2097 '/health-status':709,1654 '/kapis/gitops.kubesphere.io/v1alpha1':121,219 '/kapis/gitops.kubesphere.io/v1alpha1/namespaces':580 '/kapis/gitops.kubesphere.io/v1alpha1/namespaces/demo-project/applications/guestbook/sync':2180 '/name=argocd-application-controller':2001 '/name=argocd-repo-server':2012 '/name=argocd-server':2022 '/refresh':1428,1495 '/root/go/src/github.com/kubesphere/kse-extensions/devops/readme.md':2298 '/secret-type:':1072,1103 '/stable':1111 '/stoneshi-yunify/argocd-example-apps':621,1296 '/sync-status':714,1659 '/usr/local/bin/argocd':1208 '/v1alpha1':428,495,598,960,1281,2078 '/v1alpha1)':147,170,649 '1':92,643,687,1262,1410,1466,1852 '1.2.4':443 '10':1448 '2':112,653,726,1274,1431,1479,1876 '3':662,1323,1497,1899 '335cffbb730e59b165c308b98c3fa4037822bf2b':1390 '4':672,1917 '400':2197 '443':388 '5':1926 '555':1203 '7.2.4':2156 '7.3.11':2154 '8080':387,411,1025 'access':103,140,208,227,356,379,408,547,692,1715,2218 'ad':1922 'add':656,1011,1044,1048,1083,1411,1812,1827,2137,2144 'admin':96,391,401,413,764,1027,1037,1712,2227,2234,2246 'admin.enabled':484 'agent':250,261,272,283,292,303,314,369,449,464,1128 'allow':1925 'alreadi':2202 'also':1557 'ambigu':1869 'amd64':1195,1207,1213 'annot':1413,1425,1492,1924 'anoth':2199 'api':153,215,317,538,557,561,573,579,587,696,701,737,742,795,1626,1636,1646,1674,1684,2163,2167,2170,2179,2184,2216,2230 'apivers':425,492,595,957,1057,1088,1278,2075 'app':502,523,981,1224,1230,1235,1241,1248,1253,1641,1679,2054,2086,2108 'app.kubernetes.io':2000,2011,2021 'app.kubernetes.io/name=argocd-application-controller':1999 'app.kubernetes.io/name=argocd-repo-server':2010 'app.kubernetes.io/name=argocd-server':2020 'appli':1317,1320 'applic':15,49,64,91,95,115,122,133,144,167,246,252,255,487,490,497,571,600,646,668,676,683,763,768,787,807,836,854,857,862,893,899,907,913,937,1222,1227,1233,1261,1276,1283,1325,1393,1509,1511,1524,1530,1555,1578,1620,1718,1722,1728,1732,1739,1743,1819,1837,1843,1848,1872,1991,2033,2045,2063,2080 'application/json':593,2190,2271 'application/private-guestbook':873 'applications.argoproj.io':1332,1340,1358,1417,1439,1484,1519,1533,1570,1592,1610,1863 'applications.gitops.kubesphere.io':2068 'applicationset':66,257,263,266,955,962 'appset':967 'architectur':141,238 'argo':880,1272,1306,1373,1477,1506,1547,2236,2265 'argo-cd.readthedocs.io':2281 'argo-cd.readthedocs.io/)':2280 'argo-guestbook':1271,1305,1372,1476,1505,1546 'argoapp':613,2092 'argocd':4,8,21,25,31,41,63,78,94,100,105,110,132,139,158,165,180,192,200,204,210,225,239,251,262,273,284,293,304,310,315,321,328,332,338,341,347,349,355,357,361,370,373,386,395,399,420,450,454,456,457,460,465,469,471,504,550,611,661,667,670,673,762,770,844,856,892,906,912,969,1020,1022,1031,1035,1046,1068,1099,1120,1129,1165,1170,1184,1193,1205,1211,1219,1223,1229,1234,1240,1247,1252,1288,1335,1343,1361,1399,1420,1442,1456,1487,1522,1536,1573,1595,1613,1714,1724,1734,1745,1764,1832,1836,1842,1866,1875,1950,1997,2008,2018,2035,2047,2053,2073,2119,2133,2134,2142,2149,2151,2229,2233,2240,2244,2278,2283 'argocd-dex-github':1169 'argocd-initial-admin-secret':398,1034,2243 'argocd-linux-amd64':1192,1204,1210 'argocd-server.argocd':2260 'argocd-server.argocd/api/v1/applications/guestbook/sync':2259 'argocd.argoproj.io':1071,1102,1427,1494 'argocd.argoproj.io/refresh':1426,1493 'argocd.argoproj.io/secret-type:':1070,1101 'argocd.example.com':483,1133 'argocd.namespace':324 'argocd/private-guestbook':938 'argocdapp':1660 'argoproj.io':169,494,959,1280 'argoproj.io/v1alpha1':493,958,1279 'argoproj.io/v1alpha1)':168 'aspect':198 'authent':69,277,553 'author':585,699,740,1644,1682,2182,2263 'auto':1797,1808,1909,1983,2207 'auto-cr':1908 'auto-sync':1796,1807,1982,2206 'autom':526,633,1004,1309,1450,1877,2110 'automat':47,129,172,655,902,1458 'avail':474 'base64':406,1042,2251 'bash':330,359,552,685,1017,1156,1186,1217,1267,1318,1327,1414,1436,1465,1516,1528,1564,1627,1716,1859,1990,2026,2128,2168,2231 'bearer':586,700,741,1645,1683,2183,2264 'behavior':1879 'bundl':35 'cach':295 'cannot':874 'caus':926,1749,1935 'cd':881 'chart':2153,2285 'charts.helm.sh':1110 'charts.helm.sh/stable':1109 'check':327,339,348,688,727,761,1324,1365,1563,1619,1630,1727,1755,1775,1785,1932,1941,1961,1971,2040 'clean':1537 'cleanup':1526 'cli':1016,1021,1181,1185,1188,1215 'clientid':1143 'clientsecret':1145 'cluster':75,785,791,801,2117,2124,2131,2135,2141,2143 'cm':481,1131 'column':1347,1577,1599 'command':416,1216,1858 'common':1214,1561,1746 'complet':1257,2213 'compon':240,241,2147 'condit':1729 'config':448,463,480,1127,1130,1142 'configur':7,26,62,81,111,322,418,461,1115,1152 'conflict':929,931,951 'connector':1135,1161 'content':591,2188,2269 'content-typ':590,2187,2268 'continu':39,60 'control':108,160,181,247,253,258,264,280,286,664,828,849,869,901,1992 'correct':1860 'correspond':131,164,666,905 'cr':123 'crd':1855,2069 'crds':267 'creat':90,98,119,124,130,148,163,171,190,222,488,534,569,645,665,860,891,903,910,953,1157,1166,1263,1269,1275,1841,1910 'createnamespac':532,639,1315,1903,1915 'creation':1901 'credenti':83,1162,1773,1959 'critic':832 'curl':574,693,734,1189,1633,1671,2174,2255 'custom':459,1346,1576,1598 'custom-column':1345,1575,1597 'd':407,594,1043,2191,2252,2272 'data.password':405,1041,2250 'debug':2023 'declar':44 'default':507,616,988,1291,1515 'delet':1407,1460,1467,1472,1508,1510,1518,1523,1529,1532,1542,1553,1558,1806,1838,1882,1891 'demo':567 'demo-project':566 'deni':1760,1946 'deploy':14,40,61,76,185,788,805,1259,1366,2118,2121 'deployment/guestbook-ui':933 'describ':1742 'destin':517,626,819,998,1301,2102 'destination.name':779 'detail':728,1336,1589,1665,1719,2028 'detect':1794,1980 'devop':3,11,24,29,249,260,271,282,291,302,313,368,422,433,441,564,581,605,630,942,1638,1676,2295 'devops-agent-argocd-application-control':248 'devops-agent-argocd-applicationset-control':259 'devops-agent-argocd-dex-serv':270 'devops-agent-argocd-notifications-control':281 'devops-agent-argocd-redi':290 'devops-agent-argocd-repo-serv':301 'devops-agent-argocd-serv':312,367 'dex':71,268,274,1117,1122,1155,1160,1171,2157 'dex.config':1134 'dex.github.clientid':1144,1176 'dex.github.clientsecret':1146,1180 'differ':197 'direct':93,138,199,821,1713 'directori':979 'docs.kubesphere.io':2293 'docs.kubesphere.io/)':2292 'document':2279 'doesn':135 'download':1187 'drift':1793,1979 'dryrun':2275 'duplic':1835 'e.g':797,1404 'empti':781,2224 'enabl':67,444,451,453,466,1116,1452,1795,1811,1981,2210 'enable/disable':419 'endpoint':216 'error':1758,1944 'etc':189 'event':287,1740 'evid':867 'exampl':932,1066,1256 'exist':334 'expect':715,1375 'experi':1851 'export':556,559,563,2169 'extens':439,478,2296 'f':1321 'fail':1752,1868,1938 'failur':2025 'fals':2276 'find':875 'fix':1750,1936 'follow':42 'forc':1391,1398,1463,1918,2051 'forward':376,383 'found':1772,1958 'friend':118 'from-liter':1173,1177 'full':107,470,1565,1854 'generat':971 'generic':1168 'get':336,344,352,360,365,389,396,767,1032,1226,1231,1331,1339,1357,1369,1502,1569,1591,1609,1717,1721,1731,1862,1871,2027,2032,2044,2055,2232,2241 'git':52,307,972,1013,1076,1886 'github':1065,1137,1139,1141,1172 'github.com':511,620,975,992,1050,1079,1197,1295,2096,2287 'github.com/argoproj/argo-cd/releases/latest/download/argocd-linux-amd64':1196 'github.com/argoproj/argo-helm/tree/main/charts/argo-cd)':2286 'github.com/example/repo.git':510,974,991,1049,1078,2095 'github.com/stoneshi-yunify/argocd-example-apps':619,1294 'gitop':13,38,45,59,85,114,195,202,537,570,827,898,1823,1847,1897,2062,2085,2290 'gitops.kubesphere.io':146,156,597,609,648,659,708,713,842,886,1653,1658,1663,1830,2077 'gitops.kubesphere.io/argocd-application':1662 'gitops.kubesphere.io/argocd-location':608,885 'gitops.kubesphere.io/argocd-location:':155,658,841,1829 'gitops.kubesphere.io/health-status':707,1652 'gitops.kubesphere.io/sync-status':712,1657 'gitops.kubesphere.io/v1alpha1':596,2076 'gitops.kubesphere.io/v1alpha1)':145,647 'grep':771 'guestbook':603,625,772,944,1260,1273,1286,1300,1307,1333,1341,1359,1374,1382,1418,1440,1478,1485,1507,1520,1534,1548,1571,1593,1611,1864,1873 'guestbook-app.yaml':1322 'guid':2291 'h':584,589,698,739,1643,1681,2181,2186,2262,2267 'happen':642 'hard':1429,1496,2057 'hard-refresh':2056 'head':514,623,978,995,1298,2099 'health':705,721,1250,1350,1355,1380,1386,1582,1650,1705,1787,1973,2042 'health.status':752,1694,1706 'healthi':718,722,1384,1389 'healthstatus':751,1693 'helm':472,1085,1096,1107,2152,2284 'http':2196 'id':1138 'ignor':852 'in-clust':783 'includ':12,30,1121 'inform':2146 'initi':390,400,1036,2245 'instal':325,1183,1199,1201 'installplan':423,430 'instanc':882 'integr':86,1125,2059,2071 'intervent':1791,1977 'invalid':872,1753,1939 'isol':235 'issu':22,80,1747,1748,1762,1774,1934,1948,1960 'jq':703,744,747,1617,1648,1686,1689,2039 'json':732,1669 'jsonpath':404,1040,1363,1615,1736,2037,2049,2249 'k8s/overlays/production':516 'key':196,884 'kind':429,496,599,755,756,961,1059,1090,1282,1699,1700,2079 'kse':477 'kse-extens':476 'kubectl':218,335,343,351,364,380,393,766,1029,1163,1268,1319,1330,1338,1356,1368,1415,1437,1471,1482,1501,1517,1531,1541,1568,1590,1608,1720,1730,1741,1861,1870,1994,2005,2015,2031,2043,2238 'kubernetes.default.svc':519,628,777,1000,1303,2104 'kubespher':2,10,23,28,84,113,128,152,159,174,201,436,536,560,578,654,663,695,736,826,897,1625,1635,1673,1822,1846,2061,2065,2127,2139,2166,2178,2289 'kubesphere-api.example.com':562 'kubesphere-devops-argocd':1 'kubesphere-system':435 'kubesphere.io':427 'kubesphere.io/v1alpha1':426 'l':1998,2009,2019 'label':154,607,657,690,809,834,840,847,1069,1100,1632,1826,1828 'last':1584 'level':1606 'linux':1194,1206,1212 'list':1221,1225,2129,2136 'liter':1175,1179 'local':378 'localhost':410,1024 'log':870,1989,1993,1995,2004,2006,2014,2016 'login':1018,1023,1218,1220 'm':1202 'manag':16,72,193,265,486,952,1010,1559,2125 'manifest':1754,1940,2101 'manual':447,894,914,1406,1470,1790,1800,1816,1840,1892,1976,1986,2160 'manually-cr':1839 'may':812,1788,1867,1974,2222 'member':799,2140 'merg':1422,1444,1489 'messag':1602 'metadata':431,498,601,963,983,1061,1092,1284,1424,1491,2081 'metadata.labels':706,711,1651,1656,1661 'metadata.name':1579 'method':540,686,725,824,1409,1430,2165,2228 'miss':1824 'multi':74,232,2116 'multi-clust':73,2115 'multi-ten':231 'multipl':2123 'must':837 'my-app':500,2106 'my-app-namespac':521 'my-appset':965 'my-gitops-app':2083 'my-project':2088 'n':346,354,372,385,394,769,1030,1164,1334,1342,1360,1371,1419,1441,1475,1486,1504,1521,1535,1545,1572,1594,1612,1723,1733,1744,1865,1874,1996,2007,2017,2034,2046,2239 'n/a':217 'name':243,432,440,499,602,757,758,918,964,984,1062,1093,1112,1140,1148,1285,1377,1642,1680,1701,1702,1856,2082 'namespac':101,106,127,143,166,177,184,203,207,211,213,320,333,434,455,458,468,503,520,524,551,604,629,652,671,681,820,877,968,1001,1067,1098,1264,1287,1304,1769,1900,1912,1955,2087,2105 'need':137,1266,1396,1789,1975 'note':773,822,1549,2194 'notif':279,285,288 'ns':337,1270 'o':403,1039,1191,1344,1362,1574,1596,1614,1725,1735,2036,2048,2248 'oper':309,1182,2200 'operationmessag':1709 'operationphas':1707 'operationstate.message':1710 'operationstate.phase':1708 'option':1906 'org':1147,1151 'outofsync':949,1792,1834,1978 'output':716,1376 'overview':27,1567 'p':1423,1445,1490 'part':935 'password':392,414,1028,1053,1082 'patch':1416,1438,1483 'path':515,624,796,980,996,997,1299,2100 'path.basename':985,1002 'pattern':46,244 'per':236 'permiss':815,1759,1766,1945,1952 'phase':1600 'pod':187,242,342,345 'port':375,382 'port-forward':374,381 'post':577,2177,2258 'practic':1255 'privat':943 'product':1896 'progress':1246,1782,1968,2204 'project':506,565,568,582,606,615,631,987,1290,1639,1677,2090 'provid':2066 'proxi':278 'prune':527,634,1005,1239,1243,1310,1880,2111,2192,2273 'purpos':245 'queri':817 'quick':1328,1628 'r':704,745,748,1649,1687,1690 'rbac':1761,1947 're':1402 're-sync':1401 'readm':2297 'recent':2212 'recommend':1894 'reconcil':182,254 'reconcili':1435,1930 'recreat':1459,1500,1804,1889 'redi':289,294,2155 'refer':175,2277 'refresh':1412,1919,1923,2052,2058 'regist':2130 'remain':865,1513,1539 'repo':299,305,1047,1064,1095,1770,1956,2002 'repo-github-exampl':1063 'repo-helm-st':1094 'repositori':53,82,308,1009,1014,1045,1073,1086,1104,1776,1962 'repourl':509,618,973,990,1293,2094 'requir':102,209,825,833,1825 'resourc':186,753,754,923,928,930,1354,1367,1408,1461,1469,1499,1512,1527,1540,1560,1605,1697,1698,1783,1786,1802,1883,1890,1969,1972,2041,2064 'resource-level':1604 'respons':2221 'result':946,1588 'resync':1392,1464,1481 'return':2195 'revis':977,1352,1387,1695 'revisionhistorylimit':1447 'rm':1209 'rollback':1251,1254 'run':831 'second':1928 'secret':397,402,1033,1038,1055,1060,1091,1153,1158,1167,1777,1963,2242,2247 'see':475 'selfheal':529,636,1007,1312,1813,1887,2113 'server':269,275,300,306,311,316,362,371,518,627,999,1302,2003,2013,2103 'servic':188,350,363 'set':57 'setup':18 'share':234 'sharedresourcewarn':948,1833 'silent':851 'skill' 'skill-kubesphere-devops-argocd' 'sourc':508,617,989,1292,2093 'source-kubesphere' 'spec':438,505,612,614,970,986,1289,1433,1446,2091 'spec.argoapp.spec.destination.server':775 'specifi':792 'ssl':1190 'sso':17,68,276,1114,1119,1124 'stabl':1097,1113 'state':50,256,297 'status':329,684,689,729,759,760,808,863,950,1228,1326,1329,1337,1379,1381,1562,1566,1607,1621,1629,1666,1703,1704,1820,1933,2030 'status.argoapp':731,746,1668,1688 'status.conditions':1737 'status.health.status':1351,1583 'status.operationstate':1756,1942,2038 'status.operationstate.finishedat':1586 'status.operationstate.message':1603 'status.operationstate.phase':1601 'status.resources':1364,1616,2050 'status.sync.revision':1353 'status.sync.status':1349,1581 'stone':941 'stone-devops-private-guestbook':940 'storag':298 'string':733,1670 'stringdata':1074,1105 'stuck':1780,1784,1966,1970 'subchart':36 'success':2226 'sudo':1200 'svc':353,366 'svc/devops-agent-argocd-server':384 'sync':48,79,674,710,720,723,724,1232,1236,1237,1242,1245,1348,1378,1383,1385,1388,1403,1451,1580,1585,1587,1655,1751,1798,1801,1809,1818,1878,1905,1937,1984,1987,2024,2029,2161,2173,2208,2215,2254 'sync.revision':1696 'sync.status':750,1692 'syncopt':531,638,1314,1914 'syncpolici':525,632,1003,1308,2109 'syncpolicy.automated.prune':1551 'syncpolicy.automated.selfheal':1454 'syncstatus':749,1691 'system':437 'target':179,920,1768,1911,1954 'targetrevis':513,622,994,1297,2098 'templat':982 'tenanc':233 'tenant':117,126,134,142,150,176,183,205,212,220,237,539,542,555,644,679,691,802,1623,2164,2220 'tenant-friend':116 'test':1462 'time':1920 'tip':1849 'token':558,588,702,743,1647,1685,2171,2185,2235,2237,2266 'topic-agent-skills' 'topic-cloud-native' 'topic-cncf' 'topic-devops' 'topic-ebpf' 'topic-hacktoberfest' 'topic-kubernetes' 'topic-kubesphere' 'topic-llm' 'topic-multi-cluster' 'topic-multi-tenancy' 'topic-observability' 'transpar':230 'trigger':1434,1480,1817,2159,2172,2253 'troubleshoot':20,77,1618 'true':445,452,467,485,528,530,533,635,637,640,1006,1008,1311,1313,1316,1455,1552,1814,1881,1888,1904,1916,2112,2114,2193,2274 'two':87 'type':592,1075,1106,1136,1421,1443,1488,2189,2270 'ui':226,319,358 'unknown':866,1821 'updat':1432 'upgradestrategi':446 'url':482,1077,1108,1132,1779,1965 'use':5,56,896,1631,1844,1853,1902 'usernam':412,1026,1052,1081 'v1':1058,1089 'v2.11.7':32,2150 'v2.38.0':2158 'valu':473 'verif':326 'verifi':331,682,804,1498,1763,1949 'version':442,2145,2148 'via':70,120,151,194,323,409,535,572,730,806,1015,1054,1624,2162 'view':1738,1988 'wait':1249 'warn':871,888 'watch':161,1244 'way':88 'without':845 'workflow':1258,1898 'x':576,2176,2257 'yaml':424,462,491,956,1056,1087,1126,1277,1726,1913,2074 'yes':224,228 'your-org':1149","prices":[{"id":"a1be5985-8998-42b5-b4cd-a207bb408ace","listingId":"97ab2f30-a550-4a03-9f32-04234be43f4f","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"kubesphere","category":"kubesphere","install_from":"skills.sh"},"createdAt":"2026-04-18T21:53:12.130Z"}],"sources":[{"listingId":"97ab2f30-a550-4a03-9f32-04234be43f4f","source":"github","sourceId":"kubesphere/kubesphere/kubesphere-devops-argocd","sourceUrl":"https://github.com/kubesphere/kubesphere/tree/master/skills/kubesphere-devops-argocd","isPrimary":false,"firstSeenAt":"2026-04-18T21:53:12.130Z","lastSeenAt":"2026-05-03T00:52:29.259Z"}],"details":{"listingId":"97ab2f30-a550-4a03-9f32-04234be43f4f","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"kubesphere","slug":"kubesphere-devops-argocd","github":{"repo":"kubesphere/kubesphere","stars":16920,"topics":["agent-skills","ai","cloud-native","cncf","devops","ebpf","hacktoberfest","kubernetes","kubesphere","llm","multi-cluster","multi-tenancy","observability","servicemesh","skills","skills-sh","skillsmp"],"license":"other","html_url":"https://github.com/kubesphere/kubesphere","pushed_at":"2026-04-27T06:10:27Z","description":"The container platform tailored for Kubernetes multi-cloud, datacenter, and edge management ⎈ 🖥 ☁️","skill_md_sha":"704f83dad9a08371e41d2e47f1c72c84a516a65d","skill_md_path":"skills/kubesphere-devops-argocd/SKILL.md","default_branch":"master","skill_tree_url":"https://github.com/kubesphere/kubesphere/tree/master/skills/kubesphere-devops-argocd"},"layout":"multi","source":"github","category":"kubesphere","frontmatter":{"name":"kubesphere-devops-argocd","description":"Use when configuring ArgoCD in KubeSphere DevOps, including GitOps deployments, application management, SSO setup, or troubleshooting ArgoCD issues"},"skills_sh_url":"https://skills.sh/kubesphere/kubesphere/kubesphere-devops-argocd"},"updatedAt":"2026-05-03T00:52:29.259Z"}}