356 lines
7.5 KiB
Markdown
356 lines
7.5 KiB
Markdown
# DevOps Plugin - Configuration Management
|
|
|
|
You are managing DevOps configuration settings.
|
|
|
|
## Task: Manage Configuration
|
|
|
|
The user wants to view or modify DevOps configuration.
|
|
|
|
### Step 1: Check for Configuration
|
|
|
|
1. Check if `.devops/config.json` exists
|
|
2. If not and command is not `set`:
|
|
```
|
|
❌ DevOps not initialized
|
|
💡 Run /devops:init to create configuration
|
|
```
|
|
Then STOP.
|
|
|
|
### Step 2: Parse Config Command
|
|
|
|
Parse subcommand:
|
|
- `/devops:config` - Show current configuration
|
|
- `/devops:config get {key}` - Get specific config value
|
|
- `/devops:config set {key} {value}` - Set config value
|
|
- `/devops:config list` - List all configuration keys
|
|
- `/devops:config validate` - Validate configuration
|
|
- `/devops:config export` - Export configuration
|
|
- `/devops:config import {file}` - Import configuration
|
|
|
|
### Step 3: Show Configuration
|
|
|
|
**For `/devops:config`** (default):
|
|
|
|
```bash
|
|
node ${CLAUDE_PLUGIN_ROOT}/cli/devops-cli.js config get --all
|
|
```
|
|
|
|
Display:
|
|
```
|
|
⚙️ DevOps Configuration
|
|
|
|
Platform: {platform}
|
|
Environment: {environment}
|
|
Region: {region}
|
|
|
|
Deployment:
|
|
Strategy: {strategy}
|
|
Auto-deploy: {auto_deploy}
|
|
Rollback-on-failure: {rollback_enabled}
|
|
|
|
CI/CD:
|
|
Platform: {cicd_platform}
|
|
Auto-build: {auto_build}
|
|
Branch: {default_branch}
|
|
|
|
Secrets:
|
|
Mode: {secrets_mode}
|
|
Provider: {secrets_provider}
|
|
Encrypted: {is_encrypted}
|
|
|
|
Infrastructure:
|
|
Type: {infra_type}
|
|
Auto-scale: {auto_scale}
|
|
Min instances: {min_instances}
|
|
Max instances: {max_instances}
|
|
|
|
Monitoring:
|
|
Enabled: {monitoring_enabled}
|
|
Alerts: {alerts_enabled}
|
|
Log retention: {log_retention} days
|
|
|
|
Configuration file: .devops/config.json
|
|
Last updated: {last_updated}
|
|
|
|
💡 Modify: /devops:config set {key} {value}
|
|
💡 Validate: /devops:config validate
|
|
```
|
|
|
|
### Step 4: Get Specific Config Value
|
|
|
|
**For `/devops:config get {key}`**:
|
|
|
|
```bash
|
|
node ${CLAUDE_PLUGIN_ROOT}/cli/devops-cli.js config get --key "{key}"
|
|
```
|
|
|
|
Display:
|
|
```
|
|
{key}: {value}
|
|
```
|
|
|
|
Example:
|
|
```
|
|
$ /devops:config get platform
|
|
platform: aws
|
|
```
|
|
|
|
### Step 5: Set Config Value
|
|
|
|
**For `/devops:config set {key} {value}`**:
|
|
|
|
1. Validate key exists:
|
|
```bash
|
|
node ${CLAUDE_PLUGIN_ROOT}/cli/devops-cli.js config validate-key --key "{key}"
|
|
```
|
|
|
|
2. If invalid key:
|
|
```
|
|
❌ Invalid configuration key: {key}
|
|
|
|
Valid keys:
|
|
- platform (aws, gcp, azure, netlify, vercel)
|
|
- environment (dev, staging, production)
|
|
- region (cloud-specific regions)
|
|
- cicd_platform (github-actions, jenkins, netlify, vercel)
|
|
- secrets_mode (local, aws, gcp, azure, manual)
|
|
- auto_deploy (true, false)
|
|
- auto_scale (true, false)
|
|
```
|
|
Then STOP.
|
|
|
|
3. Set value:
|
|
```bash
|
|
node ${CLAUDE_PLUGIN_ROOT}/cli/devops-cli.js config set \
|
|
--key "{key}" \
|
|
--value "{value}"
|
|
```
|
|
|
|
4. Show confirmation:
|
|
```
|
|
✓ Configuration updated
|
|
|
|
{key}: {old_value} → {new_value}
|
|
|
|
💡 Validate: /devops:config validate
|
|
```
|
|
|
|
### Step 6: Validate Configuration
|
|
|
|
**For `/devops:config validate`**:
|
|
|
|
```bash
|
|
node ${CLAUDE_PLUGIN_ROOT}/cli/devops-cli.js config validate
|
|
```
|
|
|
|
Display validation results:
|
|
```
|
|
🔍 Validating configuration...
|
|
|
|
Platform Configuration:
|
|
✓ Platform: aws (valid)
|
|
✓ Region: us-east-1 (valid)
|
|
✓ Credentials: configured
|
|
|
|
CI/CD Configuration:
|
|
✓ Platform: github-actions (valid)
|
|
⚠️ Auto-build: disabled (recommended: true)
|
|
✓ Branch: main (exists)
|
|
|
|
Secrets Configuration:
|
|
✓ Mode: aws (valid)
|
|
✓ Provider: AWS Secrets Manager (accessible)
|
|
✓ Encryption: enabled
|
|
|
|
Infrastructure Configuration:
|
|
✓ Type: full-stack (valid)
|
|
✓ Auto-scale: enabled
|
|
⚠️ Max instances: 10 (high cost warning)
|
|
✓ Min instances: 2 (valid)
|
|
|
|
Overall: Valid with 2 warnings
|
|
|
|
💡 Fix warnings or continue with current config
|
|
```
|
|
|
|
### Step 7: Export Configuration
|
|
|
|
**For `/devops:config export`**:
|
|
|
|
```bash
|
|
node ${CLAUDE_PLUGIN_ROOT}/cli/devops-cli.js config export \
|
|
--output ".devops/config-export-{timestamp}.json"
|
|
```
|
|
|
|
Show:
|
|
```
|
|
✓ Configuration exported
|
|
|
|
File: .devops/config-export-{timestamp}.json
|
|
Size: {size} KB
|
|
|
|
Exported settings:
|
|
- Platform configuration
|
|
- CI/CD settings
|
|
- Infrastructure config
|
|
- Monitoring settings
|
|
|
|
⚠️ Note: Secrets are NOT exported (security)
|
|
|
|
💡 Import to another project: /devops:config import {file}
|
|
```
|
|
|
|
### Step 8: Import Configuration
|
|
|
|
**For `/devops:config import {file}`**:
|
|
|
|
1. Validate import file exists
|
|
2. Show preview:
|
|
```bash
|
|
node ${CLAUDE_PLUGIN_ROOT}/cli/devops-cli.js config preview-import \
|
|
--file "{file}"
|
|
```
|
|
|
|
3. Display changes:
|
|
```
|
|
📥 Configuration Import Preview
|
|
|
|
File: {file}
|
|
Settings to import: {count}
|
|
|
|
Changes:
|
|
- platform: {current} → {new}
|
|
- region: {current} → {new}
|
|
- cicd_platform: {current} → {new}
|
|
|
|
New settings:
|
|
+ monitoring_enabled: true
|
|
+ log_retention: 30
|
|
|
|
⚠️ This will overwrite current configuration
|
|
```
|
|
|
|
4. Ask: "Import this configuration?"
|
|
- If no, STOP
|
|
- If yes, import
|
|
|
|
5. Import:
|
|
```bash
|
|
node ${CLAUDE_PLUGIN_ROOT}/cli/devops-cli.js config import \
|
|
--file "{file}" \
|
|
--backup
|
|
```
|
|
|
|
6. Show result:
|
|
```
|
|
✓ Configuration imported
|
|
|
|
Backup saved: .devops/config-backup-{timestamp}.json
|
|
Active config: .devops/config.json
|
|
|
|
💡 Validate: /devops:config validate
|
|
💡 Restore backup if needed: /devops:config import {backup_file}
|
|
```
|
|
|
|
### Step 9: List All Keys
|
|
|
|
**For `/devops:config list`**:
|
|
|
|
```bash
|
|
node ${CLAUDE_PLUGIN_ROOT}/cli/devops-cli.js config list-keys
|
|
```
|
|
|
|
Display:
|
|
```
|
|
⚙️ Available Configuration Keys
|
|
|
|
Platform:
|
|
- platform (aws, gcp, azure, netlify, vercel)
|
|
- region (cloud-specific)
|
|
- environment (dev, staging, production)
|
|
|
|
Deployment:
|
|
- deployment_strategy (rolling, blue-green, canary)
|
|
- auto_deploy (true, false)
|
|
- rollback_on_failure (true, false)
|
|
- health_check_enabled (true, false)
|
|
|
|
CI/CD:
|
|
- cicd_platform (github-actions, jenkins, netlify, vercel)
|
|
- auto_build (true, false)
|
|
- default_branch (branch name)
|
|
- build_timeout (seconds)
|
|
|
|
Secrets:
|
|
- secrets_mode (local, aws, gcp, azure, manual)
|
|
- secrets_provider (provider name)
|
|
- encryption_enabled (true, false)
|
|
|
|
Infrastructure:
|
|
- infra_type (compute, serverless, static, full-stack)
|
|
- auto_scale (true, false)
|
|
- min_instances (number)
|
|
- max_instances (number)
|
|
- instance_type (instance size)
|
|
|
|
Monitoring:
|
|
- monitoring_enabled (true, false)
|
|
- alerts_enabled (true, false)
|
|
- log_retention (days)
|
|
- metrics_retention (days)
|
|
|
|
💡 Get value: /devops:config get {key}
|
|
💡 Set value: /devops:config set {key} {value}
|
|
```
|
|
|
|
---
|
|
|
|
**Configuration Schema**:
|
|
|
|
The `.devops/config.json` file structure:
|
|
```json
|
|
{
|
|
"version": "1.0",
|
|
"platform": "aws",
|
|
"environment": "production",
|
|
"region": "us-east-1",
|
|
"deployment": {
|
|
"strategy": "rolling",
|
|
"auto_deploy": false,
|
|
"rollback_on_failure": true,
|
|
"health_check_enabled": true
|
|
},
|
|
"cicd": {
|
|
"platform": "github-actions",
|
|
"auto_build": true,
|
|
"default_branch": "main",
|
|
"build_timeout": 600
|
|
},
|
|
"secrets": {
|
|
"mode": "aws",
|
|
"provider": "AWS Secrets Manager",
|
|
"encryption_enabled": true
|
|
},
|
|
"infrastructure": {
|
|
"type": "full-stack",
|
|
"auto_scale": true,
|
|
"min_instances": 2,
|
|
"max_instances": 10,
|
|
"instance_type": "t3.medium"
|
|
},
|
|
"monitoring": {
|
|
"enabled": true,
|
|
"alerts_enabled": true,
|
|
"log_retention": 30,
|
|
"metrics_retention": 90
|
|
}
|
|
}
|
|
```
|
|
|
|
**IMPORTANT**:
|
|
- Configuration changes take effect immediately
|
|
- Always validate after making changes
|
|
- Backup created automatically on import
|
|
- Secrets are never stored in config.json
|
|
- Platform-specific settings validated against cloud APIs
|