Skip to main content
Background Image

Learning About GitOps

·251 words·2 mins

A Look at My CI/CD Pipeline
#

I’ve been setting up a GitOps pipeline using Gitea Actions, Helm, and ArgoCD. It’s a powerful way to manage deployments to Kubernetes.

The process of using Git as the single source of truth for my infrastructure has made my deployments much more reliable and transparent.

flowchart TD
    DevLabel([πŸ–₯️ Development]):::devStage
    CILabel([βš™οΈ Continuous Integration - CI]):::ciStage
    CDLabel([πŸš€ Continuous Deployment - CD]):::cdStage

    DevLabel --> CILabel --> CDLabel

    subgraph Dev [ ]
        A[πŸ“„ Write/Edit Content & Config]:::dev --> B[🌐 hugo server -D for Local Preview]:::dev
        B --> C[πŸ”§ Manage Source Code with Git]:::dev
        C --> D[πŸ“€ Push to hugo-sites repo - Gitea]:::dev
    end
    DevLabel --> A

    subgraph CI [ ]
        D --> E[βš™οΈ Trigger: Gitea Actions Workflow]:::ci
        E --> F[πŸ—οΈ Build: Checkout repo & Install Hugo]:::ci
        F --> G[πŸ—οΈ Build Static Site - site-a or site-b]:::ci
        G --> H[πŸ“¦ Package: Docker Build Static Files]:::ci
        H --> I[🐳 Publish: Push Docker Image to Nexus]:::ci
        I --> J[πŸ“ Update Manifests: Clone hugo-manifests repo]:::ci
        J --> K[πŸ“ Update values.yaml image.tag with Commit Hash]:::ci
        K --> L[πŸ“€ Push Changes to hugo-manifests repo]:::ci
    end
    CILabel --> E

    subgraph CD [ ]
        L --> M[πŸ‘€ ArgoCD Watches hugo-manifests repo]:::cd
        M --> N[πŸ”„ Synchronization: Detects Updated values.yaml]:::cd
        N --> O[☸️ Deployment: ArgoCD Applies Helm Charts]:::cd
        O --> P[🐳 Cluster Pulls Docker Image from Nexus]:::cd
        P --> Q[🌍 Hugo Site Updated in Kubernetes Cluster]:::cd
    end
    CDLabel --> M

    classDef dev fill:#a3e635,stroke:#333,stroke-width:2px,color:#000;
    classDef ci fill:#60a5fa,stroke:#333,stroke-width:2px,color:#000;
    classDef cd fill:#c084fc,stroke:#333,stroke-width:2px,color:#000;

    classDef devStage fill:#65a30d,stroke:#333,stroke-width:3px,color:#fff,font-weight:bold;
    classDef ciStage fill:#1d4ed8,stroke:#333,stroke-width:3px,color:#fff,font-weight:bold;
    classDef cdStage fill:#6d28d9,stroke:#333,stroke-width:3px,color:#fff,font-weight:bold;
Eric B.
Author
Eric B.
Tech Nerd - Everything Linux

Related

My First Blog Post on Hugo
·50 words·1 min
Welcome! # This is my very first blog post on my new Hugo site. I’m excited to share my thoughts and projects here.
About Me
·58 words·1 min
My Story # This is an example of a static page in Hugo. I’m building this simple site to showcase my skills using a GitOps workflow.
Machine Head: Unbound