Add best-practices library, knowledge distillation pipeline settings, and first session log
- best-practices/: 11 topic files + INDEX.md extracted from cluster-bootstrap and custom-claude-skills (validation, k8s, helm, ansible, secrets, debugging, etc.) - settings.yaml: pipeline config (log retention, tracked projects, max logs per run) - CLAUDE.md: updated with best-practices loading and pipeline documentation - memory/log/: first session log demonstrating the format Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
35
best-practices/validation.md
Normal file
35
best-practices/validation.md
Normal file
@@ -0,0 +1,35 @@
|
||||
# Validation & Deployment
|
||||
|
||||
## Validate Locally, Deploy Once
|
||||
|
||||
The single biggest time sink across projects is "deploy first, validate later." Real-world stats from a 9-milestone infrastructure project showed 50-60% of commits were fixes that could have been caught locally.
|
||||
|
||||
**Always validate before pushing:**
|
||||
- `helm template` for Helm chart values
|
||||
- `kustomize build` (or `kubectl kustomize`) for Kustomize apps
|
||||
- `kubectl apply --dry-run=server` for K8s naming/schema issues
|
||||
- `docker run <app> validate-configuration` for apps that support it (Authelia, Homepage, etc.)
|
||||
- `docker inspect` for unfamiliar container images before writing init containers
|
||||
- Lint/typecheck/test for application code
|
||||
|
||||
**Batch fixes locally, push once.** Each push-sync-crash-fix cycle wastes minutes and clutters Git history.
|
||||
|
||||
## Test the Full Chain Immediately
|
||||
|
||||
After wiring up any new service or endpoint, test end-to-end from the user's perspective right away. Don't assume intermediate steps working means the whole chain works.
|
||||
|
||||
- `curl --resolve domain:443:<ip> https://domain` to test bypassing DNS/proxy layers
|
||||
- Test from the actual consumer (not same-namespace test pods for network policies)
|
||||
- Test DNS resolution after deploying FQDN-based policies
|
||||
|
||||
## Pre-Flight Checks
|
||||
|
||||
Before starting a deploy or automation phase:
|
||||
- Verify SSH keys are loaded (`ssh -T git@<host>`)
|
||||
- Confirm environment variables and credentials are available
|
||||
- Check that the target environment is in the expected state
|
||||
- Verify DNS records resolve as expected
|
||||
|
||||
## Scripts That Change Config Must Self-Verify
|
||||
|
||||
After updating and restarting a service, the script should test that the change actually took effect (e.g., curl an API endpoint, check a config value). A "success" message without verification hides failures.
|
||||
Reference in New Issue
Block a user