-
Notifications
You must be signed in to change notification settings - Fork 2
feat: add Helm charts for Kubernetes deployment #199
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
* main: (35 commits) #133 Show alert in interface when you are unable to delete a resource (#198) Deployment documentation (#175) #190: Fixed empty content returned by knooppunt when creating DocumentReference and also the fact BSN wasn't properly transformed from the transport token (#191) Adds pseudonym support for NVI to HAPI (#154) #133 Associate Endpoints Screen (#187) #168: Support pseudonyms in NVI gateway (#171) Add addressing view to diagram (#42) feat(bsn): add proof-of-concept transport token utils (#166) #68: Add search to NVI gateway (#162) #113 mCSD Update Client: use resource-level history query, instead of system-wide (#156) Refactored the code to use conditional references (#157) #68: NVI gateway for registering DocumentReferences (#160) #135: fix mCSD Update Client meta.source (#151) Decouple HAPI Fhir initalisation from Nuts (#152) #144: set correct FHIR resource profiles (#147) #58: Support pagination when updating mCSD (#108) #103 [MCSD Admin] Refine location screen (#138) mCSD Admin: make valuesets compiler-safe with generated constants (#146) mCSD Update Client: return empty slice in report when no errors or warnings are there, instead of null (#141) #103 [MCSD Admin] Refine Organisation Screen (#137) ...
This reverts commit 5a23f09.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR introduces comprehensive Helm charts for deploying nuts-knooppunt and its dependencies to Kubernetes, providing a production-ready, infrastructure-agnostic deployment solution with flexible configuration options.
- Adds a complete nuts-knooppunt Helm chart with embedded dependencies for nuts-node and FHIR server
- Introduces a standalone HAPI FHIR server chart with PostgreSQL integration via CloudNativePG operator
- Provides multiple networking options including traditional Ingress and optional Gateway API support
Reviewed Changes
Copilot reviewed 30 out of 34 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
| helm/nuts-knooppunt/ | Main application chart with deployment templates, networking options, and dependency management |
| helm/fhir/ | Standalone FHIR server chart with PostgreSQL integration and networking templates |
| .github/workflows/build-images.yaml | Updated quote style for consistency |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
Co-authored-by: JorisHeadease <joris@headease.nl>
…imarily used for the Skaffold
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…e dependency version, and configuration parameters; add README documentation.
* main: Rewritten handleConsent check to internal function (#218) Mitz component cleanup (unused methods, logging) (#214) Readme update (#211) ADR: Solution Architecture (#169) #180: Adding mitz connector (closed query, subscription, notification) (#194) #139 Add practitioner role in mcsd admin (#201) Docs: change diagrams to have a set of diagrams per GF (#195) # Conflicts: # .gitignore
…on to 0.0.5 in Helm chart.
…rts is in a directory called nuts-knooppunt and this line causes trouble.
This eliminates the manual task of creating database secrets by: 1. Automatic Secret Conversion - Helm hook job converts CloudNativePG postgresql:// URIs to postgres:// - NUTS node requires postgres:// scheme, CloudNativePG uses postgresql:// - Job creates a new secret with the correct format automatically 2. Intelligent Configuration Validation - NOTES.txt validates database connection configuration - Checks for NUTS_STORAGE_SQL_CONNECTION environment variable - Validates secret name matches expected pattern - Provides helpful warnings with correct configuration examples 3. Simplified User Experience - Users create custom values files (e.g., my-values.yaml) - Clear examples in values.yaml with placeholder values - Validation catches common mistakes (wrong secret name, missing config) - No complex --set-json commands required 4. Helper Template - Added nuts-knooppunt.nuts.dbSecretName helper - Ensures consistency between database and secret references - Used in validation and secret conversion 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
JorisHeadease
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good @rolandgroen!
I've added the Helm chart dependency tarballs to the .gitignore.
* main: (92 commits) feat: Make mCSD directory resource types configurable (#247) Make HTTP interface configurable (#253) test(pep): add e2e authorization tests (#237) Add PractitionerRole to the list of entities to sync using the update client (#236) NVI: use actual Fake NVI HAPI interceptor in e2e test (#243) feat: Add ExcludeAdminDirectories configuration to prevent self-syncing in mCSD (#230) fix: #241 mCSD update client caches admin directories in memory indefinitely (#242) Add examples for localisation GF (#189) #16: switch to EUPL 1.2 license + DCO (#224) #233: fix nil deref on missing entry.Request of mCSD _history response (#235) Fix organization name not being dynamic (#234) Docs: GF I&A EHR-Knooppunt interaction Sequence Diagram (#232) Helm: add HAPI FHIR properties (#227) Fix URL in documentation (#229) Helm: update Knooppunt to v0.2.0 (#228) feat: add Helm charts for Kubernetes deployment (#199) Docs: prep integration and deployment docs for hackathon (#222) Docs: add IHE ITI codes to TXs in C4 diagrams (#213) C4 diagrams for PEP/PDP that use GF Consent (#210) #216 Boilerplate PDP endpoint (#219) ... # Conflicts: # LICENSE
Summary
Introduces production-ready Helm charts for deploying nuts-knooppunt and its dependencies to Kubernetes. The charts provide a flexible, infrastructure-agnostic deployment solution with sensible defaults
for development while supporting production customization.
Key additions:
Changes
Helm Charts (1,187 lines added)
Main application chart with the following features:
Standalone HAPI FHIR deployment chart:
Supporting Changes
.gitignore (.gitignore:5)
.github/workflows/build-images.yaml (.github/workflows/build-images.yaml:2)
Key Design Decisions
Infrastructure Agnostic:
Default Configuration:
Production Ready:
Deployment Examples
Basic installation with default values (Ingress-based)
helm install nuts-knooppunt ./helm/nuts-knooppunt
Local development with overrides
helm install nuts-knooppunt ./helm/nuts-knooppunt
-f ./helm/nuts-knooppunt/values-local.yaml
Production deployment with custom namespace
helm install nuts-knooppunt ./helm/nuts-knooppunt
-n nuts-knooppunt --create-namespace
Using Gateway API instead of Ingress
helm install nuts-knooppunt ./helm/nuts-knooppunt
--set gateway.enabled=true
--set httpRoute.enabled=true
--set ingress.enabled=false
Prerequisites
Required:
Optional:
Testing Checklist