Skip to content
View wkwwa's full-sized avatar

Block or report wkwwa

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
wkwwa/README.md
  • 👋 Hi, I’m @wkwwa
  • 👀 I’m interested in DevOps
  • 🌱 I’m currently learning Go

Projects

First of all:

DevOps:

  • DevOps project demonstrating a full application build-delivery cycle using CI/CD and toolset: Docker, Gitlab CI/CD, Terraform, k8s, Helm, ArgoCD and monitoring with Prometheus, Grafana. App: Vue.js, HTML - frontend, Go - backend.

    Workflow Example:
    1. Developer works on a feature branch.
    2. Developer commits and pushes changes to GitLab.
    3. GitLab CI/CD pipeline runs: builds, tests, and pushes the Docker image.
    4. GitLab CI/CD deploys to staging using Helm.
    5. Automated tests run on staging.
    6. If tests pass, GitLab CI/CD updates the production deployment configuration in the Nexus repository (e.g., Helm chart values).
    7. Argo CD detects the change in Git and automatically deploys the updated application to production.
    8. Prometheus and Grafana monitor the application in production.

    Continuous Integration (CI):

    GitLab CI/CD https://github.com/wkwwa/store-ci/blob/main/.gitlab-ci.yml

    1. Build Stage: Triggered on pushes to feature branches. Builds the application Docker image, runs unit tests, and pushes the image to the GitLab Container Registry.
    2. Test Stage: Deploys to a temporary testing environment (Docker). Runs tests.
    3. Artifact Storage: Docker image and build artifacts stored in the GitLab Container Registry.

    Continuous Delivery (CD) - Staging:

    GitLab CI/CD https://github.com/wkwwa/store-cd/blob/main/.gitlab-ci.yml

    1. Terraform: Manages the staging environment infrastructure (Kubernetes cluster, load balancer).
    2. Helm: Defines the application deployment to staging (pulls Docker image from the GitLab Container Registry). Creates Helm package and pushes in the Nexus repository.
    3. Deployment: GitLab CI/CD deploys to staging using Helm.

    Continuous Delivery (CD) - Production (using Argo CD):

    GitLab CI/CD https://github.com/wkwwa/argocd-app/blob/main/.gitlab-ci.yml

    1. Nexus Repository for Deployment Configuration: A separate repository stores the Helm chart values for the production environment. This is the source of truth for Argo CD.

    2. Argo CD Setup: Argo CD is installed in the production Kubernetes cluster.

    3. Argo CD Application Definition: An Argo CD Application custom resource is created. This resource points to:

      • The Git repository containing the production deployment configuration.
      • The path within the repository to the application manifests.
      • The target Kubernetes cluster (production).
      • The desired revision (branch, tag, or commit) to track.
    4. Automated Synchronization: Argo CD automatically monitors the Git repository for changes. When a change is detected (e.g., a new version of the Helm chart values is pushed), Argo CD synchronizes the production environment to the desired state defined in Git.

    5. Deployment Trigger: The GitLab CI/CD pipeline, after successful staging tests, commits the updated Helm chart values (or other configuration) to the Git repository that Argo CD is monitoring. This triggers the Argo CD synchronization and deploys the new version to production.

    Monitoring and Logging:

    GitLab CI/CD https://github.com/wkwwa/store-cd/blob/main/monitoring-tools/.gitlab-ci.yml

    1. Prometheus: Deployed in the Kubernetes cluster to collect metrics.
    2. Grafana: Visualizes metrics from Prometheus.

    Infrastructure as Code (IaC):

    1. Terraform: Manages staging and production infrastructure. https://github.com/wkwwa/store-cd/blob/main/terraform/.gitlab-ci.yml
  • Automated virtual machine deployment with Vagrant. Installing Nexus on a VM using Vagrant and VMWare (MacOS Apple Silicon chip) https://github.com/wkwwa/vm-vagrant

  • Infrastructure deploy using the Infrastructure as Code approach and creating a virtual machine and S3 bucket using Terraform in Yandex Cloud https://github.com/wkwwa/terraform-yc-instance

  • Terraform config deploys a virtual machine and a VPC infrastructure. Demo shows creating a Terraform configuration using variables and modules for reuse or extension configuration https://github.com/wkwwa/tf-var-modules-yc-instance

  • Automated RKE Installation. The roject provides scripts and configuration files to automate the installation of a Kubernetes cluster on Yandex Cloud using Rancher Kubernetes Engine https://github.com/wkwwa/k8s_install_yandex_cloud_rke

Golang:

Popular repositories Loading

  1. wkwwa wkwwa Public

  2. store-ci store-ci Public

    This demo shows application build and release using Docker and Gitlab CI/CD. Part 1

    Vue

  3. vm-vagrant vm-vagrant Public

    Nexus and VM set up using Vagrant and VMWare (on MacOS with M1 or M2 or M3 chip)

    Shell

  4. store-cd store-cd Public

    This demo shows application and infrastructure deploy using YC, Terraform, k8s, Helm and monitoring with Prometheus, Grafana. Part 2

    Smarty

  5. argocd-app argocd-app Public

    Demo GitOps CD for k8s using ArgoCD

    Smarty

  6. deepseek-ollama deepseek-ollama Public

    Python API Requests to work with Ollama Server running Large Language Models

    Python