-
Notifications
You must be signed in to change notification settings - Fork 262
Add blog post: GitOps Best Practices I Wish I Had Known Before #17468
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
Covers 16 battle-tested GitOps best practices including repo structure, drift detection, secret management, progressive delivery with Kargo, the IaC-to-GitOps bridge pattern, and pragmatic deviations at scale.
Documentation ReviewThanks for this comprehensive GitOps best practices blog post, @dirien! This is a solid piece with great depth, practical examples, and real-world production stories. I've reviewed the content and have several suggestions for improvement. Issues Found1. Image Format Issue (Line 69, gitops-meme.png)The file Suggestion: Convert the WebP file to an actual PNG format, or rename it to 2. Spelling/Grammar IssuesLine 44: "can feel like trying to herd cats through a YAML factory while the factory is on fire"
Line 161: "kustomization.yaml # replicas: 3, limits: 1Gi"
Line 189: "the number one cause of failed deployments was missing PR reviews"
Line 240: "This gives reviewers a concrete view"
Line 262: "build your exclusion lists before you turn on auto-sync, not after"
3. Link VerificationAll internal links appear to use correct anchor format. However, verify these external links are current:
4. Style Guide ComplianceCapitalization (proper nouns vs common nouns): The post correctly uses lowercase for common terms like "stack" throughout. Good adherence to the style guide. Headings:
Callout boxes: All use 5. Content AccuracyLine 93: "A caveat though: this works cleanly for stateless, declarative resources..."
Line 110-113: Discussion of webhook receivers
Line 143: Rendered manifests pattern
Line 211: Warning about SOPS with rendered manifests
Line 262: Auto-remediation exclusions
Line 324: SOPS description
6. Code ExamplesLines 147-163: Directory structure example
Lines 215-237: GitHub Actions workflow
Lines 268-279: ArgoCD ignoreDifferences example
Lines 328-344: ExternalSecret example
Lines 365-379: gitops-bridge ConfigMap example
7. Frontmatter Validationtitle: ✓ Present and descriptive
date: ✓ 2026-02-11 (future date is fine for scheduled posts)
draft: ✓ false
meta_desc: ✓ Present and under 160 characters
meta_image: ✓ meta.png exists
authors: ✓ engin-diri exists in data/team/team/
tags: ✓ Appropriate tags (gitops, kubernetes, best-practices, argocd, devops)
social: ✓ Twitter and LinkedIn snippets provided8. ShortcodesAll shortcodes appear correctly formatted:
9. SEO and ReadabilityTitle: Clear and keyword-rich ✓ Meta description: Good summary that includes key terms ✓ Structure: Well-organized with clear numbered sections ✓ Paragraph length: Most paragraphs are appropriately concise. A few could be split:
Call-to-action: Clear CTAs at the end ✓ Suggestions for Enhancement
SummaryThis is a high-quality, comprehensive blog post that demonstrates deep production experience with GitOps. The writing is engaging, the examples are practical, and the advice is sound. The main actionable item is converting the gitops-meme.png file to an actual PNG format. The other suggestions are minor improvements. Recommendation: Approve after fixing the image format issue. Mention @claude if you'd like me to review any revisions or if you have questions about any of these suggestions! |
|
Your site preview for commit 65f2af0 is ready! 🎉 http://www-testing-pulumi-docs-origin-pr-17468-65f2af06.s3-website.us-west-2.amazonaws.com. |
…y takeaways - Replace kubeval with kubeconform (kubeval is no longer maintained) - Add links for yamllint and kubeconform - Clarify SOPS vs Sealed Secrets encryption model - Add comparison table for secret management approaches - Add key takeaways summary before the table of contents
|
Your site preview for commit 7219840 is ready! 🎉 http://www-testing-pulumi-docs-origin-pr-17468-72198401.s3-website.us-west-2.amazonaws.com. |
Documentation ReviewI've completed a review of this GitOps best practices blog post. The content is comprehensive, well-structured, and provides valuable production insights. Here are my findings: ✅ Strengths
📝 Issues FoundCritical: Missing trailing newline (line 445)The file must end with a newline character per AGENTS.md requirements. Style: Heading capitalization issuesPer STYLE-GUIDE.md, H2+ headings should use sentence case, not title case. The following headings need adjustment: Line 79: "Git is your single source of truth (no, really)" ✅ Correct Line 93: "Declarative over imperative, always" ✅ Correct Line 107: "Pull-based deployments are the way" ✅ Correct Line 125: Should be "Separate app code from deployment config (when it hurts not to)" (already correct) Line 141: Should be "Use directories, not branches, for environments" (already correct) Line 179: Should be "Trunk-based development or bust" (already correct) Line 195: Should be "Every change gets a PR review (no exceptions)" (already correct) Line 210: Should be "Validate before you merge" (already correct) Line 251: Should be "Tag with commit SHAs, not 'latest'" (already correct) Line 263: Should be "Automate drift detection and reconciliation" (already correct) Line 292: Should be "Progressive delivery: don't YOLO to production" (already correct) Line 310: Should be "Policy-as-code: your automated guardrails" (already correct) Line 323: Should be "Secrets don't belong in Git (ever)" (already correct) Line 367: Should be "Bridge your IaC and GitOps (don't choose one)" (already correct) Line 404: Should be "Be pragmatic, not dogmatic" (already correct) Line 418: Should be "Invest in observability (GitOps doesn't replace monitoring)" (already correct) Actually, upon closer inspection, all H2 headings are correctly using sentence case. Well done! Spelling/Grammar: Minor issuesLine 304: YouTube embed - verify video ID is correct: Content observationsLine 118: The note about API rate limits and polling intervals is excellent practical advice. The webhook recommendation is spot-on. Line 151: Good clarification on the rendered manifests pattern vs. the anti-pattern of environment branches. Line 219: Smart caveat about not rendering plaintext secrets in the rendered manifests pattern. Line 271: Excellent warning about auto-remediation exclusion lists - this is a common production pitfall. Line 377: The Statsig case study link should be verified for accuracy. 🔍 Verification NeededI recommend verifying these external links are accessible:
📦 Image AssetsTwo image files added:
Both images appear properly referenced. Verify both have appropriate alt text (the Drake meme does at line 77). ✨ RecommendationApprove with minor fix: Add the trailing newline to line 445. This is a quick fix that can be addressed before merge. The content is production-ready and provides genuine value to readers implementing GitOps. The writing quality is strong, the technical accuracy appears sound, and the real-world examples add significant credibility. Mention @claude if you'd like me to review any specific sections in more detail or help with the trailing newline fix. |
|
Your site preview for commit e936739 is ready! 🎉 http://www-testing-pulumi-docs-origin-pr-17468-e9367394.s3-website.us-west-2.amazonaws.com. |
Summary
Test plan
make buildpassesmake serve