187 lines
3.8 KiB
Markdown
187 lines
3.8 KiB
Markdown
# Example: Kubedog Resource Tracking Configuration
|
|
|
|
This example demonstrates various ways to configure kubedog resource tracking.
|
|
|
|
## Basic Example
|
|
|
|
```yaml
|
|
releases:
|
|
- name: simple-app
|
|
namespace: default
|
|
chart: ./charts/simple-app
|
|
trackMode: kubedog
|
|
```
|
|
|
|
Uses default QPS (100) and Burst (200).
|
|
|
|
## Customized Rate Limiting
|
|
|
|
```yaml
|
|
releases:
|
|
- name: high-throughput-app
|
|
namespace: production
|
|
chart: ./charts/app
|
|
trackMode: kubedog
|
|
# Increased limits for large-scale deployments
|
|
kubedogQPS: 200
|
|
kubedogBurst: 400
|
|
trackTimeout: 600
|
|
trackLogs: true
|
|
trackKinds:
|
|
- Deployment
|
|
- StatefulSet
|
|
```
|
|
|
|
## Multiple Releases with Different Settings
|
|
|
|
```yaml
|
|
releases:
|
|
# Small app - conservative limits
|
|
- name: frontend
|
|
namespace: web
|
|
chart: ./charts/frontend
|
|
trackMode: kubedog
|
|
kubedogQPS: 50
|
|
kubedogBurst: 100
|
|
|
|
# Medium app - default limits
|
|
- name: backend
|
|
namespace: api
|
|
chart: ./charts/backend
|
|
trackMode: kubedog
|
|
|
|
# Large app - increased limits
|
|
- name: data-processor
|
|
namespace: data
|
|
chart: ./charts/processor
|
|
trackMode: kubedog
|
|
kubedogQPS: 150
|
|
kubedogBurst: 300
|
|
trackKinds:
|
|
- Deployment
|
|
- StatefulSet
|
|
- Job
|
|
```
|
|
|
|
## Environment-Specific Configuration
|
|
|
|
```yaml
|
|
environments:
|
|
development:
|
|
values:
|
|
- kubedogQPS: 50
|
|
- kubedogBurst: 100
|
|
staging:
|
|
values:
|
|
- kubedogQPS: 100
|
|
- kubedogBurst: 200
|
|
production:
|
|
values:
|
|
- kubedogQPS: 200
|
|
- kubedogBurst: 400
|
|
|
|
releases:
|
|
- name: myapp
|
|
namespace: {{ .Environment.Name }}
|
|
chart: ./charts/myapp
|
|
trackMode: kubedog
|
|
kubedogQPS: {{ .Values.kubedogQPS }}
|
|
kubedogBurst: {{ .Values.kubedogBurst }}
|
|
```
|
|
|
|
## With Global Defaults
|
|
|
|
```yaml
|
|
helmDefaults:
|
|
createNamespace: true
|
|
timeout: 300
|
|
|
|
releases:
|
|
- name: app1
|
|
namespace: default
|
|
chart: ./charts/app
|
|
trackMode: kubedog
|
|
# Uses release-specific settings
|
|
kubedogQPS: 150
|
|
kubedogBurst: 300
|
|
|
|
- name: app2
|
|
namespace: default
|
|
chart: ./charts/app
|
|
trackMode: kubedog
|
|
# Uses default QPS=100, Burst=200
|
|
```
|
|
|
|
## Selective Tracking
|
|
|
|
```yaml
|
|
releases:
|
|
- name: complex-app
|
|
namespace: default
|
|
chart: ./charts/complex-app
|
|
trackMode: kubedog
|
|
kubedogQPS: 120
|
|
kubedogBurst: 250
|
|
# Only track deployments and jobs
|
|
trackKinds:
|
|
- Deployment
|
|
- Job
|
|
# Skip these resource types
|
|
skipKinds:
|
|
- ConfigMap
|
|
- Secret
|
|
- Ingress
|
|
# Track specific resources only
|
|
trackResources:
|
|
- kind: Deployment
|
|
name: main-app
|
|
- kind: Job
|
|
name: migration-job
|
|
namespace: default
|
|
```
|
|
|
|
## Testing the Configuration
|
|
|
|
To test your kubedog configuration:
|
|
|
|
```bash
|
|
# Apply with kubedog tracking
|
|
helmfile apply -n my-namespace -l app=myapp
|
|
|
|
# With debug logging
|
|
helmfile apply -n my-namespace -l app=myapp --log-level debug
|
|
|
|
# With specific environment
|
|
helmfile apply -e production -l app=myapp
|
|
```
|
|
|
|
## Expected Output
|
|
|
|
When kubedog tracking is working correctly, you should see:
|
|
|
|
```
|
|
Tracking 5 resources from release myapp with kubedog
|
|
Tracking 5 resources with kubedog (filtered from 5 total)
|
|
┌ Status progress
|
|
│ DEPLOYMENT REPLICAS AVAILABLE UP-TO-DATE
|
|
│ myapp-main 1/1 1 1
|
|
└ Status progress
|
|
All resources tracked successfully
|
|
UPDATED RELEASES:
|
|
NAME NAMESPACE CHART VERSION DURATION
|
|
myapp default ./charts/app 1.0.0 1m32s
|
|
```
|
|
|
|
## Troubleshooting Commands
|
|
|
|
```bash
|
|
# Check current kubedog settings
|
|
helmfile build -n my-namespace -l app=myapp | grep -A 5 "kubedog"
|
|
|
|
# Test with increased verbosity
|
|
helmfile apply -n my-namespace -l app=myapp --log-level debug 2>&1 | grep -i kubedog
|
|
|
|
# Monitor API server requests (requires cluster access)
|
|
kubectl get --raw /metrics | grep apiserver_request_count
|
|
```
|