Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ArgoCD: Deploy with confidence, conquer YAML my...

ArgoCD: Deploy with confidence, conquer YAML mysteries

A session from LINE THAILAND DEVELOPER CONFERENCE 2025 by Neutron Soutmun, Senior SRE at LINE Thailand

Avatar for LINE Developers Thailand

LINE Developers Thailand

September 15, 2025
Tweet

More Decks by LINE Developers Thailand

Other Decks in Technology

Transcript

  1. • Senior SRE LINE Company (Thailand) Season 7 • Debian

    Developer Debian Community Season 10 About Me pub rsa4096 2009-05-10 F532 DA10 E563 EE84 4409 77A1 9D04 70BD A6CD C457 GPG
  2. • Technical Debt the roots of all fears • GitOps

    reduces technical debt • ArgoCD heavy-duty GitOps Agent • Deploy with confidence • Conquer YAML mysteries Agenda
  3. Technical Debt The roots of all fears Reckless Prudent Deliberate

    Inadvertent We don’t have time We don’t know how We will deal with it later We should not have done this Rushed Development Inexperience Poor Design or Coding Standards Insufficient Maintenance Security Risks System Instability Developer Frustration Missed Opportunities Reduced Productivity Increased Costs
  4. Git version control - simple but powerful Create PR Peer

    Review Merge Revert Review Request Approved
  5. OpenGitOps Principles v1.0.0 Declarative Versioned and Immutable Pulled Automatically Continuously

    Reconciled Git Ops Pulled Automatically Manually Continuously Manually Reconciled
  6. ArgoCD Diff Preview a tool that renders the diff between

    two branches in a Git repository https://github.com/dag-andersen/argocd-diff-preview
  7. . YAML common errors ⎯ Indentation • Inconsistent • Incorrect

    Levels ⎯ Syntax and Formatting • Missing Colons • Unquoted Strings with Special Characters ⎯ Data Structure • Incorrect List Formatting • Improper Use of Anchors and Aliases ⎯ Other • Typos • Encoding Issues shoot yourself in the foot apiVersion: apps/v1 Kind: Deployment medatadata: name: example spec: replicas: "2" selector: matchLabels: app.kubernetes.io/name: example template: metadata: labels: app.kubernetes.io/name: example spec: containers: * name helloworld image: debian:trixie command: - sh - -c - "sleep infinity"
  8. JSON Schema. Let IDE do their job • JSON Schema

    Store https://www.schemastore.org • JSON Schemas for every version of every object in every version of Kubernetes https://github.com/yannh/kubernetes-json-schema • Popular Kubernetes CRDs (CustomResourceDefinition) in JSON schema format https://github.com/datreeio/CRDs-catalog YAML Language Server (LSP) + Syntax Highlighting https://github.com/redhat-developer/yaml-language-server
  9. YAML Formatter • yamlfmt https:// github.com/google/yamlfmt • dprint https://dprint.dev Team

    agreement on code formatting Enforce consistent code style, improving collaboration and code quality Before After
  10. Increase Reliability More Confident Reduce Failures • Reduce technical debt

    • Continuous Deployment • Good shape configuration • Simulation/Dry-Run • Errors detection • Good post-deploy feedback Summary SRE Focus