Coverage Matrix
Chkk Curated Release Notes | v2.7.0 to latest |
Private Registry | Supported |
Custom Built Images | Supported |
Safety, Health, and Readiness Checks | v3.1.1 to latest |
Supported Packages | Helm, Kustomize, Kube |
EOL Information | Available |
Version Incompatibility Information | Available |
Upgrade Templates | In-Place, Blue-Green |
Preverification | Available |
jsreport Overview
jsreport is an open-source reporting server enabling teams to create, generate, and distribute dynamic reports (PDF, Excel, Word, HTML) using web technologies. Developers define report templates with HTML/CSS and JavaScript, supported by an embedded web-based designer (jsreport Studio). Running on Node.js, jsreport offloads document rendering from applications, ensuring consistent reporting across services. Its modular architecture, headless browser rendering, and scripting support make it flexible and powerful within Kubernetes environments, integrating smoothly into modern CI/CD pipelines.Chkk Coverage
Curated Release Notes
Chkk curates jsreport release notes to highlight relevant new features, breaking changes, and deprecated functionalities affecting your deployments. Instead of manual checks, platform teams receive targeted summaries, such as sandbox security improvements or deprecated configuration fields. Chkk clearly flags changes, like new sandboxing behavior replacing older libraries, ensuring smooth transitions between versions. This reduces the risk of overlooked details impacting template rendering or system compatibility.Preflight & Postflight Checks
Chkk performs preflight checks ensuring your Kubernetes cluster and Node.js versions meet new jsreport prerequisites and flags necessary intermediate upgrades. It also detects deprecated extensions or configuration issues, allowing preemptive corrections. Post-upgrade, Chkk validates deployment health by verifying pods’ updated versions, analyzing logs for new errors, and performing sample report renderings. These proactive measures help platform engineers quickly address issues without user impact.Version Recommendations
Chkk continuously monitors jsreport releases, advising when versions approach end-of-support. It evaluates your deployment against known vulnerabilities and compatibility issues, recommending stable upgrade paths with clear justifications, like outdated Chrome engines or Node.js runtimes. For customized jsreport forks, Chkk adapts its recommendations to match your specific support policies, ensuring consistent operational stability.Upgrade Templates
Chkk provides detailed Upgrade Templates for both in-place and blue-green upgrades aligned with jsreport best practices. In-place upgrades include explicit pre-upgrade backups, configuration adjustments, and rolling restart strategies. Blue-green deployments involve parallel installations to gradually test and validate new versions before switching production traffic. These structured templates integrate seamlessly into GitOps and CI/CD pipelines, minimizing upgrade risks.Preverification
Chkk’s preverification creates a realistic rehearsal environment replicating your production jsreport setup, including configurations and templates. Automated upgrade simulations identify potential migration or compatibility issues early, such as resource constraints or template execution errors. This proactive validation allows engineers to refine configurations and resources in staging environments, significantly reducing the risk of production issues.Supported Packages
Chkk supports multiple jsreport deployment methods, including Docker images, Helm charts, Kubernetes manifests, Node.js library integrations, and custom binaries. It intelligently analyzes your existing configuration and deployment method, offering precise upgrade instructions and image recommendations. Chkk also accommodates specialized or vendor-specific jsreport versions, ensuring upgrade guidance remains accurate and practical for your environment.Common Operational Considerations
- Persistent Storage: Use PersistentVolumes or external databases for jsreport storage to maintain templates and reports across pod restarts and upgrades. Shared storage is critical for consistency when scaling multiple instances.
- Scaling and Load Balancing: jsreport instances must use identical configurations and shared storage when horizontally scaling behind load balancers. Optimize internal worker threads and monitor CPU; scale horizontally if CPU limits become saturated.
- Headless Chrome Resources: Allocate adequate memory and CPU for jsreport’s Chrome-based rendering to prevent pod evictions or slowdowns. Consider dedicated Chrome pools or docker-worker extensions for high-volume render environments.
- Configuration via Environment Variables: Translate jsreport JSON configuration keys to Kubernetes-compatible environment variable formats (e.g.,
extensions_fsStore_dataDirectory
). Incorrect formatting can lead to defaults being silently applied. - Licensing Management: Manage jsreport licenses via Kubernetes Secrets or environment variables, ensuring compliance with multi-instance licensing terms. Use
license.development=true
for non-production environments to avoid licensing conflicts. - Ingress Path Configuration: Configure jsreport’s
appPath
correctly when exposing services via an Ingress or reverse proxy at a subpath. Misconfigurations may cause broken URLs and interface issues. - Template Compatibility: Proactively review templates for compatibility issues with new jsreport versions, especially changes in sandbox security or APIs. Test upgrades in staging environments to identify necessary adjustments early.