View Repository
Browse the Helm charts repository
What It Is
The generic application chart is a Helm chart published athttps://charts.cnap.tech with the chart name app. It’s designed to deploy any Docker container image to Kubernetes with sensible defaults and extensive customization options.
While the chart is used internally by CNAP for GitHub repository deployments, you can also use it directly with Helm if you want to deploy container images manually.
When CNAP Uses It
CNAP automatically uses the generic chart when:- Deploying from GitHub repositories - When you create a product or installation using a GitHub repository source
- Using Docker images - When you deploy a Docker image without a custom Helm chart
- Standalone installations - When you deploy a Docker image or GitHub repository directly to a cluster as a , without packaging it as a product first
- Container image and tag
- Resource limits and requests
- Environment variables
- Exposed ports
- Health checks
- Scaling configuration
Chart Features
Container Configuration
- Deploy any Docker container image with configurable pull policies
- Multiple ports and protocols (HTTP, HTTPS, TCP, gRPC, UDP)
- Override the container’s command (entrypoint) and args
- Environment variables with plain values or Kubernetes
secretKeyRef - Private registry support via CNAP’s registry proxy
Gateway API Integration
- HTTPRoute creation for external access with custom domains
- Support for multiple hostnames
- Path-based routing rules with header and query parameter matching
- Traffic splitting via additional backend refs and weights
- Request header modification filters
- Gateway parentRefs for routing through specific gateways (Cilium, Cloudflare, etc.)
Health Checks
- Liveness and readiness probes (disabled by default)
- HTTP, TCP, and exec probe types
- Configurable delays, intervals, timeouts, and failure thresholds
Scaling and Resources
- Horizontal Pod Autoscaler (HPA) with CPU and memory utilization targets
- Configurable CPU and memory requests and limits
- Configurable replica count and min/max replicas
Advanced
- Init containers and sidecar containers
- Volume mounts and persistent storage
- Pod and container security contexts (runs as non-root by default)
- Node selectors, tolerations, and affinity rules
- Pod annotations and labels
- ServiceAccount creation and configuration
How It Works
When you deploy from a GitHub repository:- Code is built — Your repository code is built into a Docker image using Railpack (via GitHub Actions workflows)
- Chart is selected — CNAP automatically uses the generic
appchart fromhttps://charts.cnap.tech - Values are generated — CNAP generates Helm values from your deployment configuration (ports, env vars, resources, scaling, command/args, HTTPRoute hostnames)
- Chart is deployed — The chart is deployed to your cluster with the generated values
- Application runs — Your application runs in Kubernetes with all configured resources
Using the Chart Directly
The chart is published as a Helm repository:Customization
While CNAP automatically configures the chart, you can customize the deployment through the Settings tab on any installed app (or during app creation):- Ports - Configure container ports and expose them externally with hostnames
- Environment variables - Add plain-text or secret configuration values
- Scaling - Set replica count or enable HPA with CPU/memory targets
- Resources - Set CPU and memory requests and limits
- Command and args - Override the container’s entrypoint and arguments
Example Values
Here’s an example of the Helm values CNAP generates for a typical Node.js application with an exposed port:Source Code
The chart source code is available in the cnap-tech/charts repository. You can:- Review the chart structure and templates
- Understand how it works internally
- Contribute improvements
- Use it as a reference for creating custom charts
Related Topics
- Custom Domains → - Expose apps externally with custom domains via Gateway API
- GitHub Actions → - Learn about the build workflows that create images for this chart
- Application Sources → - Understand how GitHub repositories work as sources
- Templates → - See how templates use Helm charts
- Package Generation → - Learn how CNAP packages charts