JDW Apps is a Helm repository used for deploying applications via Argo CD. It provides a centralized way to manage Kubernetes applications with environment-specific configurations and GitOps automation.
.
├── envs/ 📦 Environment-specific configurations (dev/prd/uat)
├── excluded/ 🗃️ Excluded/test charts and manifests
├── charts/ 🛠️ Helm charts for JDW apps
├── bootstrap.yaml ⚙️ Main app configuration
├── LICENSE 📄 License info
└── README.md 📝 This file
This repo is wired to Argo CD using ApplicationSet, which dynamically configures and deploys Helm apps defined in
envs/.
apps:
- appName: secret-store-dev
helmPath: charts/secret-store
namespace: dev
values:
- values-dev.yaml
- appName: container-dev
helmPath: charts/container
namespace: dev
values:
- values-dev.yaml
# ...and so on for other appsapiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: jdw-apps-config
namespace: argocd
spec:
goTemplate: true
goTemplateOptions: [ "missingkey=error" ]
generators:
- matrix:
generators:
- git:
repoURL: https://github.com/jdwillmsen/jdw-apps.git
revision: main
files:
- path: envs/*
- list:
elementsYaml: "{{ .apps | toJson }}"
template:
metadata:
name: "{{ .appName }}"
annotations:
argocd.argoproj.io/sync-wave: "1"
spec:
project: default
source:
repoURL: https://github.com/jdwillmsen/jdw-apps.git
targetRevision: main
path: "{{ .helmPath }}"
destination:
namespace: "{{ .namespace }}"
server: https://kubernetes.default.svc
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true
- PruneLast=true
templatePatch: |
spec:
source:
helm:
valueFiles:
{{- toYaml .values | nindent 12 }}- Create a new YAML file under
envs/, e.g.envs/staging.yaml - Define applications as shown:
apps: - appName: usersui-staging helmPath: charts/usersui namespace: staging values: - values-staging.yaml
- Commit and push — Argo CD will detect and deploy automatically
-
Create your chart:
helm create charts/<app-name>
-
Customize
Chart.yaml,values.yaml, and templates. -
Add the chart to the appropriate environment file (e.g.,
envs/dev.yaml). -
(Optional) Add
values-dev.yaml,values-prd.yaml, etc. for overrides. -
Test your chart locally:
helm install --dry-run --debug ./charts/<app-name>
The JDW Kube repo manages the Kubernetes infrastructure for the JDW platform.
- 🔒 Cluster Configuration & Secrets Management
- 🔁 Automated Deployments via Argo CD
- ⚙️ Base Ingress, Monitoring, and Platform Services
The JDW Monorepo powers all front-end and back-end services.
- 🧱 Apps (Angular, Go, Spring Boot)
- 🧬 Libs (UI, feature, util, data-access)
- ⚙️ Tools (CI/CD, Docker, versioning, linting)
All Helm charts and deployment details are available via GitHub Pages:
This site is auto-updated by 🚀 GitHub Actions.
This repository is licensed under the MIT License. See the LICENSE file for
full details.