jdw-apps

JDW Apps Helm Repository

Deploy Pages License: MIT Docs

πŸ“¦ Helm Chart Versions [![authui Chart Version](https://img.shields.io/badge/dynamic/yaml?url=https%3A%2F%2Fraw.githubusercontent.com%2Fjdwillmsen%2Fjdw-apps%2Frefs%2Fheads%2Fmain%2Fcharts%2Fauthui%2FChart.yaml&query=%24.appVersion&prefix=v&label=authui)](https://github.com/jdwillmsen/jdw-apps/blob/main/charts/authui/Chart.yaml) [![container Chart Version](https://img.shields.io/badge/dynamic/yaml?url=https%3A%2F%2Fraw.githubusercontent.com%2Fjdwillmsen%2Fjdw-apps%2Frefs%2Fheads%2Fmain%2Fcharts%2Fcontainer%2FChart.yaml&query=%24.appVersion&prefix=v&label=container)](https://github.com/jdwillmsen/jdw-apps/blob/main/charts/container/Chart.yaml) [![rolesui Chart Version](https://img.shields.io/badge/dynamic/yaml?url=https%3A%2F%2Fraw.githubusercontent.com%2Fjdwillmsen%2Fjdw-apps%2Frefs%2Fheads%2Fmain%2Fcharts%2Frolesui%2FChart.yaml&query=%24.appVersion&prefix=v&label=rolesui)](https://github.com/jdwillmsen/jdw-apps/blob/main/charts/rolesui/Chart.yaml) [![usersui Chart Version](https://img.shields.io/badge/dynamic/yaml?url=https%3A%2F%2Fraw.githubusercontent.com%2Fjdwillmsen%2Fjdw-apps%2Frefs%2Fheads%2Fmain%2Fcharts%2Fusersui%2FChart.yaml&query=%24.appVersion&prefix=v&label=usersui)](https://github.com/jdwillmsen/jdw-apps/blob/main/charts/usersui/Chart.yaml) [![servicediscovery Chart Version](https://img.shields.io/badge/dynamic/yaml?url=https%3A%2F%2Fraw.githubusercontent.com%2Fjdwillmsen%2Fjdw-apps%2Frefs%2Fheads%2Fmain%2Fcharts%2Fservicediscovery%2FChart.yaml&query=%24.appVersion&prefix=v&label=servicediscovery)](https://github.com/jdwillmsen/jdw-apps/blob/main/charts/servicediscovery/Chart.yaml) [![usersrole Chart Version](https://img.shields.io/badge/dynamic/yaml?url=https%3A%2F%2Fraw.githubusercontent.com%2Fjdwillmsen%2Fjdw-apps%2Frefs%2Fheads%2Fmain%2Fcharts%2Fusersrole%2FChart.yaml&query=%24.appVersion&prefix=v&label=usersrole)](https://github.com/jdwillmsen/jdw-apps/blob/main/charts/usersrole/Chart.yaml) [![secret-store Chart Version](https://img.shields.io/badge/dynamic/yaml?url=https%3A%2F%2Fraw.githubusercontent.com%2Fjdwillmsen%2Fjdw-apps%2Frefs%2Fheads%2Fmain%2Fcharts%2Fsecret-store%2FChart.yaml&query=%24.appVersion&prefix=v&label=secret-store)](https://github.com/jdwillmsen/jdw-apps/blob/main/charts/secret-store/Chart.yaml)

🧭 Overview

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.


πŸ“ Repository Structure

.
β”œβ”€β”€ envs/                 πŸ“¦ Environment-specific configurations (dev/prd/uat)
β”œβ”€β”€ excluded/             πŸ—ƒοΈ Excluded/test charts and manifests
β”œβ”€β”€ charts/               πŸ› οΈ Helm charts for JDW apps
β”œβ”€β”€ jdw-apps.yaml         βš™οΈ Main app configuration
β”œβ”€β”€ LICENSE               πŸ“„ License info
└── README.md             πŸ“ This file

πŸš€ Automated Deployment via Argo CD

This repo is wired to Argo CD using ApplicationSet, which dynamically configures and deploys Helm apps defined in envs/.

🧾 Example dev.yaml

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 apps

πŸ”§ ApplicationSet Bootstrap Configuration

apiVersion: 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: ""
  template:
    metadata:
      name: ""
      annotations:
        argocd.argoproj.io/sync-wave: "1"
    spec:
      project: default
      source:
        repoURL: https://github.com/jdwillmsen/jdw-apps.git
        targetRevision: main
        path: ""
      destination:
        namespace: ""
        server: https://kubernetes.default.svc
      syncPolicy:
        automated:
          prune: true
          selfHeal: true
        syncOptions:
          - CreateNamespace=true
          - PruneLast=true
  templatePatch: |
    spec:
      source:
        helm:
          valueFiles:

πŸ—οΈ Adding a New Environment

  1. Create a new YAML file under envs/, e.g. envs/staging.yaml
  2. Define applications as shown: ```yaml apps:
    • appName: usersui-staging helmPath: charts/usersui namespace: staging values:
      • values-staging.yaml ```
  3. Commit and push β€” Argo CD will detect and deploy automatically

πŸ“¦ Adding a New Helm Chart

  1. Create your chart:

    helm create charts/<app-name>
    
  2. Customize Chart.yaml, values.yaml, and templates.
  3. Add the chart to the appropriate environment file (e.g., envs/dev.yaml).
  4. (Optional) Add values-dev.yaml, values-prd.yaml, etc. for overrides.
  5. Test your chart locally:

    helm install --dry-run --debug ./charts/<app-name>
    

🧱 JDW Platform Repos

☸️ JDW Kube

The JDW Kube repo manages the Kubernetes infrastructure for the JDW platform.

🧩 JDW Project

The JDW Monorepo powers all front-end and back-end services.


🌍 Documentation

All Helm charts and deployment details are available via GitHub Pages:

πŸ”— JDW Apps GitHub Pages

This site is auto-updated by πŸš€ GitHub Actions.


πŸ“„ License

This repository is licensed under the MIT License. See the LICENSE file for full details.