This repository contains the infrastructure code and tooling to deploy and operate the Momo Store platform. It includes provisioning, Kubernetes setup, GitOps-based deployment, monitoring, and secret management.
| Directory | Purpose |
|---|---|
ansible/ |
Ansible roles and playbooks for provisioning and configuring servers. |
argocd/ |
ArgoCD application manifests for GitOps deployment of services. |
charts/ |
Helm charts for deploying the momo-store app and its monitoring-stack. |
scripts/ |
Utility scripts to set up K3s clusters, Vault, Nexus, and more. |
terraform/ |
Infrastructure as Code to provision cloud resources like servers and DNS. |
You can deploy the infrastructure locally or in the cloud using the following flow:
- Provision infrastructure (with Terraform)
- Configure servers (with Ansible or utility scripts)
- Deploy app and/or monitoring stack (with ArgoCD and Helm)
Each component can be set up incrementally depending on your environment.
This repo supports a GitOps-based deployment of the momo-store application, powered by ArgoCD and CI integration:
-
The
charts/momo-storefolder includes CI configuration files (typically added to the code repository) that automate Helm chart packaging and publishing. -
The CI pipeline is triggered in two scenarios:
- A new application image is built and pushed.
- The Helm chart files are modified.
-
On either trigger:
-
The chart is packaged.
-
It is versioned as
0.1.{CI_PIPELINE_ID}, where:0.1(major/minor) is set manually by a developer.{CI_PIPELINE_ID}(patch) is injected automatically by the CI.
-
The packaged chart is pushed to a Nexus Helm repository.
-
Once the chart is published:
- ArgoCD detects the new version in Nexus and automatically pulls and deploys it.
- Optionally, the CI pipeline can manually trigger an ArgoCD sync to speed up deployment.
This flow ensures consistent, traceable, and automated application delivery using GitOps principles.
- Prometheus + Alertmanager – Metric collection and alerting.
- Grafana – Dashboards with TLS and external data sources (Prometheus, Loki).
- Loki + Promtail – Log aggregation.
Predefined alerts and dashboards for the Momo Store backend are included.
- Vault + External Secrets Operator – Centralized secrets management.
- Nexus – Private Docker and Helm chart registry, with optional TLS via NGINX.
- Docker
- Helm 3.x
- Terraform CLI
- Ansible
- Kubernetes CLI (
kubectl)