Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion plugins/klaude-deploy/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "klaude-deploy",
"description": "App-centric multi-cluster deployment and operations. Deploy apps, aggregate logs, check status, and sync from git across all your Kubernetes clusters - working with apps, not clusters.",
"version": "0.7.1",
"version": "0.8.0",
"author": {
"name": "KubeStellar",
"url": "https://github.com/kubestellar/klaude"
Expand Down
56 changes: 56 additions & 0 deletions plugins/klaude-deploy/commands/delete.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# Delete

Delete Kubernetes resources from clusters.

## Usage

Delete a resource by kind and name from one or more clusters.

## Examples

- "Delete deployment nginx from default namespace"
- "Remove the my-config configmap from all clusters"
- "Delete service my-app from production cluster"
- "Delete the old-job job from batch namespace"

## What it does

1. Targets specified clusters (or all available)
2. Deletes the resource from each cluster
3. Reports success/failure/not-found per cluster

## MCP Tools Used

- `delete_resource` - Delete a Kubernetes resource

## Supported Resource Types

- Deployments, StatefulSets, DaemonSets
- Services, Ingresses
- ConfigMaps, Secrets
- Pods, Jobs, CronJobs
- PersistentVolumeClaims
- Namespaces
- ServiceAccounts
- Roles, RoleBindings, ClusterRoles, ClusterRoleBindings

## Implementation

Use the `delete_resource` tool with:
- `kind`: Resource kind (required) - e.g., Deployment, Service, ConfigMap
- `name`: Resource name (required)
- `namespace`: Namespace (default: default, ignored for cluster-scoped)
- `dry_run`: Preview without applying
- `clusters`: Target clusters (all if not specified)

## Examples of Tool Calls

```json
{
"kind": "Deployment",
"name": "my-app",
"namespace": "production",
"dry_run": false,
"clusters": ["cluster-1", "cluster-2"]
}
```
55 changes: 55 additions & 0 deletions plugins/klaude-deploy/commands/helm-install.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# Helm Install

Install or upgrade a Helm chart to multiple clusters.

## Usage

Install a Helm chart to clusters. Can specify target clusters explicitly or deploy to all available clusters.

## Examples

- "Install nginx chart to all clusters"
- "Helm install my-app ./charts/myapp to production cluster"
- "Deploy redis chart version 17.0.0 to clusters with label env=staging"
- "Install prometheus with custom values to monitoring namespace"

## What it does

1. Finds target clusters (specified or all available)
2. Runs `helm upgrade --install` on each cluster
3. Reports success/failure per cluster

## MCP Tools Used

- `helm_install` - Install or upgrade a Helm release

## Implementation

Use the `helm_install` tool with:
- `release_name`: Name for the Helm release (required)
- `chart`: Chart name, path, or OCI URL (required)
- `namespace`: Target namespace (default: default)
- `values`: Key-value pairs for --set
- `values_yaml`: Full YAML values
- `version`: Specific chart version
- `repo`: Chart repository URL
- `wait`: Wait for resources to be ready
- `timeout`: Timeout for wait
- `dry_run`: Preview without applying
- `clusters`: Target clusters (all if not specified)

## Examples of Tool Calls

```json
{
"release_name": "my-nginx",
"chart": "nginx",
"repo": "https://charts.bitnami.com/bitnami",
"namespace": "web",
"values": {
"replicaCount": "3",
"service.type": "LoadBalancer"
},
"wait": true
}
```
42 changes: 42 additions & 0 deletions plugins/klaude-deploy/commands/helm-rollback.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Helm Rollback

Rollback a Helm release to a previous revision.

## Usage

Roll back a Helm release to a previous revision across clusters.

## Examples

- "Rollback my-app to the previous version"
- "Helm rollback nginx to revision 3"
- "Undo the last deployment of redis"

## What it does

1. Finds clusters where the release exists
2. Runs `helm rollback` on each cluster
3. Reports success/failure per cluster

## MCP Tools Used

- `helm_rollback` - Rollback a Helm release

## Implementation

Use the `helm_rollback` tool with:
- `release_name`: Name of the release (required)
- `namespace`: Namespace of the release (default: default)
- `revision`: Revision number to rollback to (previous if not specified)
- `dry_run`: Preview without applying
- `clusters`: Target clusters (auto-detected if not specified)

## Examples of Tool Calls

```json
{
"release_name": "my-nginx",
"namespace": "web",
"revision": 2
}
```
41 changes: 41 additions & 0 deletions plugins/klaude-deploy/commands/helm-uninstall.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Helm Uninstall

Uninstall a Helm release from clusters.

## Usage

Remove a Helm release from one or more clusters. Automatically finds clusters where the release exists.

## Examples

- "Uninstall my-app from all clusters"
- "Helm uninstall nginx from production cluster"
- "Remove the redis release from staging namespace"

## What it does

1. Finds clusters where the release exists (or uses specified clusters)
2. Runs `helm uninstall` on each cluster
3. Reports success/failure per cluster

## MCP Tools Used

- `helm_uninstall` - Uninstall a Helm release

## Implementation

Use the `helm_uninstall` tool with:
- `release_name`: Name of the release to uninstall (required)
- `namespace`: Namespace of the release (default: default)
- `dry_run`: Preview without applying
- `clusters`: Target clusters (auto-detected if not specified)

## Examples of Tool Calls

```json
{
"release_name": "my-nginx",
"namespace": "web",
"dry_run": true
}
```
63 changes: 63 additions & 0 deletions plugins/klaude-deploy/commands/kustomize.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
# Kustomize

Apply kustomize configurations to multiple clusters.

## Usage

Build and apply kustomize overlays to one or more clusters.

## Examples

- "Apply kustomize from ./overlays/production to all clusters"
- "Build kustomize output from ./base"
- "Delete resources defined in ./overlays/staging kustomize"

## What it does

1. Builds kustomize output from the specified path
2. Applies (or deletes) the rendered manifests to target clusters
3. Reports success/failure per cluster

## MCP Tools Used

- `kustomize_build` - Render kustomize output without applying
- `kustomize_apply` - Build and apply to clusters
- `kustomize_delete` - Build and delete those resources

## Implementation

Use the `kustomize_apply` tool with:
- `path`: Path to directory containing kustomization.yaml (required)
- `dry_run`: Preview without applying
- `clusters`: Target clusters (all if not specified)

## Examples of Tool Calls

**Build only:**
```json
{
"path": "./overlays/production"
}
```

**Apply to all clusters:**
```json
{
"path": "./overlays/production",
"dry_run": false
}
```

**Delete from specific clusters:**
```json
{
"path": "./overlays/staging",
"clusters": ["staging-1", "staging-2"]
}
```

## Prerequisites

Requires either:
- `kustomize` CLI installed
- Or `kubectl` with kustomize support (kubectl kustomize)
75 changes: 75 additions & 0 deletions plugins/klaude-deploy/commands/label.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# Label

Add or remove labels from Kubernetes resources across clusters.

## Usage

Manage labels on resources across multiple clusters.

## Examples

- "Add label team=platform to deployment api"
- "Label all my nginx pods with env=production"
- "Remove the deprecated label from configmap settings"
- "Add owner=andy to service frontend in all clusters"

## What it does

1. Targets specified clusters (or all available)
2. Adds or removes labels using JSON merge patch
3. Reports success/failure per cluster

## MCP Tools Used

- `add_labels` - Add labels to a resource
- `remove_labels` - Remove labels from a resource

## Supported Resource Types

- Deployments, StatefulSets, DaemonSets
- Services, ConfigMaps, Secrets
- Pods, Namespaces, Nodes
- PersistentVolumes, PersistentVolumeClaims

## Implementation

**Add labels** with the `add_labels` tool:
- `kind`: Resource kind (required)
- `name`: Resource name (required)
- `namespace`: Namespace (default: default)
- `labels`: Map of label key-values to add (required)
- `dry_run`: Preview without applying
- `clusters`: Target clusters (all if not specified)

**Remove labels** with the `remove_labels` tool:
- `kind`: Resource kind (required)
- `name`: Resource name (required)
- `namespace`: Namespace (default: default)
- `labels`: Array of label keys to remove (required)
- `dry_run`: Preview without applying
- `clusters`: Target clusters (all if not specified)

## Examples of Tool Calls

**Add labels:**
```json
{
"kind": "Deployment",
"name": "api",
"namespace": "default",
"labels": {
"team": "platform",
"owner": "andy"
}
}
```

**Remove labels:**
```json
{
"kind": "Deployment",
"name": "api",
"namespace": "default",
"labels": ["deprecated", "old-owner"]
}
```
2 changes: 1 addition & 1 deletion plugins/klaude-ops/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "klaude-ops",
"description": "Multi-cluster Kubernetes diagnostics, RBAC analysis, and security checks. Find pod issues, security misconfigurations, and analyze permissions across all your clusters.",
"version": "0.7.1",
"version": "0.8.0",
"author": {
"name": "KubeStellar",
"url": "https://github.com/kubestellar/klaude"
Expand Down