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

24
Loading comments…