Skip to content

jdwillmsen/jdw-apps

Repository files navigation

JDW Apps Helm Repository

Deploy Pages License: MIT Docs

📦 Helm Chart App Versions

authui Chart Version container Chart Version rolesui Chart Version usersui Chart Version servicediscovery Chart Version usersrole Chart Version secret-store Chart Version


🧭 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
├── bootstrap.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: "{{ .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 }}

🏗️ Adding a New Environment

  1. Create a new YAML file under envs/, e.g. envs/staging.yaml
  2. Define applications as shown:
    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.

  • 🔒 Cluster Configuration & Secrets Management
  • 🔁 Automated Deployments via Argo CD
  • ⚙️ Base Ingress, Monitoring, and Platform Services

🧩 JDW Project

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)

🌍 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.

About

ArgoCD repository for JDW apps

Topics

Resources

License

Stars

Watchers

Forks

Contributors