Need Advice: Bitbucket Helm Repo Structure for Multi-Service K8s Project + Shared Infra (ArgoCD, Vault, Cert-Manager, etc.)
Hey everyone
I’m looking for some advice on how to organize our Helm charts and Bitbucket repos for a growing Kubernetes setup.
Current setup
We currently have one main Bitbucket repo that contains everything — about 30 microservices and several infra-related services (like ArgoCD, Vault, Cert-Manager, etc.).
For our application layer, we have a common base Helm chart that’s used only for microservices. It defines shared Kubernetes objects like Deployments, Services, ConfigMaps, and Secrets. We don’t have separate repos for each microservice — all are managed under the same project.
Here’s a simplified view of the repo structure:
app/ ├── project-argocd/ │ ├── charts/ │ └── values.yaml ├── project-vault/ │ ├── charts/ │ └── values.yaml │ ├── project-chart/ # Base chart used only for microservices │ ├── basechart/ │ │ ├── templates/ │ │ └── Chart.yaml │ ├── templates/ │ ├── Chart.yaml # Defines multiple services as dependencies using basechart │ └── values/ │ ├── cluster1/ │ │ ├── service1/ │ │ │ └── values.yaml │ │ └── service2/ │ │ └── values.yaml │ └── values.yaml │ │ # Each values file under 'values/' is synced to clusters via ArgoCD │ # using an ApplicationSet for automated multi-cluster deployments
Shared Infra Components
The following infra services are also in the same repo right now:
ArgoCD
HashiCorp Vault
Cert-Manager
Project Contour (Ingress)
(and other cluster-level tools like k3s, Longhorn, etc.)
These are not tied to the application project — they’re shared and deployed across multiple clusters and environments.
Questions
Should I move these shared infra components into a separate “infra” Bitbucket repo (including their Helm charts, Terraform, and Ansible configs)?
For GitOps with ArgoCD, would it make more sense to split things like this:
“apps” repo → all microservices + base Helm chart
“infra” repo → cluster-level services (ArgoCD, Vault, Cert-Manager, Longhorn, etc.)
How do other teams handle shared Helm dependencies like this base chart across multiple services or clusters?
Disclaimer: Used AI to help write and format this post for grammar and readability.
Posted Nov 1, 2025, 1:22 PM UTC