What Gets Generated
CNAP creates a standard Helm package that combines all your Helm charts and manifests into a single, self-contained unit. Each template update automatically creates a new versioned release (e.g.,0.1.0, 0.1.1). All dependencies are bundled together, so no external downloads are needed during deployment. Packages are validated before being made available to ensure they’re ready to deploy.
Package Contents
Each generated package is a standard Helm chart containing:- Chart.yaml
- values.yaml
- templates/
- charts/
Contains package metadata including the package name (e.g.,
template-abc123), semantic version (like 0.1.0), a dependencies list with all Helm chart sources converted to dependencies, and an auto-generated description based on the template name.Source Metadata and Capabilities
CNAP tracks metadata about your sources to enable powerful capabilities:Artifact Hub Integration
Artifact Hub Integration
When you add charts from Artifact Hub, CNAP stores chart information, documentation, version details, compatibility information, and repository metadata. This enables features like automatic documentation updates and chart information display.
Container Image Tracking
Container Image Tracking
For container images, CNAP tracks the image URL and tag, source repository information, and build metadata.
GitHub Workflow Integration
GitHub Workflow Integration
When you use images built from GitHub workflows, CNAP stores GitHub repository information, workflow run details, and build metadata. This enables automatic image updates when new builds complete, keeping your deployments current with the latest code.
Auto-Deploy Configuration
Auto-Deploy Configuration
Sources can be configured for automatic deployment, enabling automatic package regeneration when sources update, automatic deployment of new versions, and streamlined update workflows.
Why This Matters
Traditional deployment approaches require coordinating multiple sources, managing dependencies, and dealing with version drift. CNAP’s automatic package generation solves these problems:Predictable Deployments
Companies manually pin versions to prevent unexpected updates from external charts. They monitor external sources for breaking changes and manually lock dependency versions. This process is error-prone and time-consuming, and production deployments remain vulnerable to external source changes.CNAP automatically locks all dependencies at generation time. Every install uses the exact same package version, so you won’t encounter surprises from unexpected updates. Production deployments are isolated from external source changes, eliminating entire classes of vulnerabilities and downtime risks.
Self-Contained Packages
In practice, companies create wrapper charts around external dependencies to control versions and configurations. They manually track and bundle dependencies, ensuring deployments work even if sources become unavailable. This requires significant engineering effort and ongoing maintenance.CNAP automatically bundles all dependencies into your package. Dependencies are packaged automatically, eliminating the need for manual wrapper charts. Packages work offline with no external fetches during deployment. They’re source-independent and work even if original sources become unavailable. Deployments are faster since a single download contains everything, and more reliable with no network dependencies during install.
Version Control
Companies manually track version history and manage rollbacks. They document changes between versions and plan gradual rollouts carefully. This requires discipline and process to maintain.CNAP automatically creates a new package version with each template update. You get complete version history, the ability to rollback to previous versions, gradual rollout capabilities, and clear tracking of what changed - all without manual effort.
Standard Helm Compatibility
Generated packages work with all Helm tooling. You can usehelm install, helm template, and all Helm CLI commands. Packages work with GitOps tools and deployment platforms, are portable and can be used outside CNAP, and give you access to the entire Helm plugin ecosystem.
How It Works
When you create or update a template, CNAP automatically:- Fetches your sources - Retrieves all Helm charts and custom manifests
- Merges configurations - Combines values from all sources into a unified configuration
- Bundles dependencies - Downloads and packages all Helm chart dependencies
- Validates the package - Ensures everything is correct and ready to deploy
- Creates the package - Generates a versioned
.tgzfile - Stores it securely - Saves the package and records the version
Package generation happens in the background, so it won’t block your product creation. The process typically completes in under a minute.
When Packages Are Generated
Packages are automatically generated when:- Creating a product - First package version is created from your sources
- Updating a product - New package version is generated with updated sources
- Creating a direct install - Package is generated for standalone deployments
Example: Creating Your First Product
Here’s what happens when you create a product:- You add sources - Select PostgreSQL and Redis charts, configure their settings
- Template created - CNAP automatically creates a template from your sources
- Package generation starts - Background process begins creating your versioned package
- Package ready - Your package is stored and ready to deploy
Benefits
For Your Business
- Faster time to market - No manual package creation or dependency management
- Reliable deployments - Every install uses the same tested package
- Version tracking - Complete history of all package versions
- Simplified operations - One package instead of coordinating multiple sources
- Automatic updates - Packages can regenerate automatically when sources change
For Your Customers
- Consistent deployments - Same package version every time
- Faster installs - Pre-computed packages deploy quickly
- No surprises - Dependencies are locked, no unexpected changes
- Reliable service - Self-contained packages work even if sources change
Related Topics
- Templates Guide → - Learn how templates work
- Package Versioning → - Understand version management
- Create a Product → - See package generation in action
- Application Sources → - Learn about different source types
- Generic App Chart → - Understand the chart used for GitHub deployments