Fixes #2445 The default Kubernetes client rate limiter settings were too restrictive, causing context cancellation errors when kubedog's reflector infrastructure tried to watch multiple resources simultaneously. When the deployment becomes ready before the rate limiter releases the request, the context gets canceled. This fix: - Increases default QPS from 5 to 100 and Burst from 10 to 200 - Makes QPS and Burst configurable per release via kubedogQPS and kubedogBurst - Uses direct client-go configuration instead of kubedog's kube.Init - Adds comprehensive documentation and examples Users can now tune these settings based on their cluster size and requirements: - Small clusters: QPS=50, Burst=100 - Medium clusters: QPS=100, Burst=200 (default) - Large clusters: QPS=200, Burst=400 Signed-off-by: yxxhero <aiopsclub@163.com> |
||
|---|---|---|
| .. | ||
| charts | ||
| deployments | ||
| remote | ||
| values | ||
| KUBEDOG_CONFIG_EXAMPLES.md | ||
| README.md | ||
README.md
Helmfile practical examples and advanced usages
Managing oneshot-jobs with Helmfile
In case you want to manage oneshot-jobs like a report generation or a database migration and so on, add a dedicated release spec for the job in helmfile.yaml like:
repositories:
- name: yourorg
url: https://yourorg.example.com/charts
releases:
- name: dbmigrator
labels:
job: dbmigrator
chart: ./dbmigrator
# DB host, port, and connection opts for the environment
values:
- "deploy/environments/{{ env "RAILS_ENV" }}/values.yaml"
# DB username and password encrypted with helm-secrets (getsops/sops)
secrets:
- "deploy/environments/{{ env "RAILS_ENV" }}/secrets.yaml"
You would then start a database migration job by executing:
# Start a database migration for the prod environment
$ RAILS_ENV=prod helmfile --selector job=dbmigrator sync
# Tail log until you are satisfied
$ kubectl logs -l job=dbmigrator
For more context, see this issue.