Home apps Catalog: novu

Catalog: novu

Last updated on Aug 05, 2025

Novu

A Helm Chart for Managing Kubernetes Applications

What is Novu?

Novu is a popular Helm Chart designed to streamline the management of Kubernetes applications. It provides a robust solution for deploying, updating, and scaling containerized applications with ease. Whether you're working on a monolithic app or a microservices architecture, Novu offers a flexible and efficient way to handle your Kubernetes resources.

Why Use Novu?

Helm is the de facto package manager for Kubernetes, allowing developers to manage charts—collections of YAML files—that define the deployment configuration for applications. Novu builds upon Helm by offering additional features that make managing these charts more intuitive and powerful.

One of the standout features of Novu is its declarative configuration approach. This means you can specify exactly how your application should be deployed, scaled, and maintained without diving into complex YAML structures. Novu abstracts much of the Kubernetes complexity, allowing you to focus on the business logic rather than the underlying infrastructure.

Key Features

Declarative Configuration

Novu takes a declarative approach to configuration, which means you define your application's requirements in plain text. This is particularly useful for defining dependencies, configurations, and resource specifications. For example, you can specify that your app requires certain environment variables or specific volumes.

Integration with CI/CD Pipelines

Novu seamlessly integrates with continuous integration and continuous delivery (CI/CD) pipelines. This allows you to automate the deployment of your application across different environments, such as development, staging, and production. You can also use tools like Jenkins, GitHub Actions, or CircleCI to trigger deployments when code changes are detected.

Monitoring and Observability

Kubernetes provides powerful monitoring and observability capabilities, but managing these tools for each application can be cumbersome. Novu simplifies this process by providing built-in support for monitoring and logging. You can easily integrate metrics, logs, and traces from services like Prometheus, Grafana, and the Kubernetes Metrics API.

Error Handling and Rollbacks

Deploying applications to production comes with risks, especially when you're working in a distributed system like Kubernetes. Novu includes robust error handling and rollbacks mechanisms that allow you to detect and resolve issues quickly. If an application fails to deploy or becomes unresponsive, Novu can automatically trigger rollbacks or retries.

Getting Started

Installation

To install Novu, you'll need to have Helm installed on your system. You can download it using the following command:

helm repo add https://charts.novu.sh
helm repo update

Once Helm is set up, you can install Novu by running:

helm install novu --create-namespace

Configuration

Novu uses a YAML file to define your application's configuration. You'll create a novu.yaml file in your working directory with content like this:

apiVersion: v1
kind: Component
metadata:
  name: my-app
  version: 1.0.0
spec:
  containers:
    - name: my-service
      image: mycompany/myapp:latest
      ports:
        - containerPort: 80

Dependencies

You can specify dependencies in your Novu configuration to ensure that all required components are deployed alongside your application. For example:

dependencies:
  - name: database
    version: 1.2.3

Usage Examples

Deploying a Simple Application

Here's an example of deploying a simple web application using Novu:

helm install --set image.repository=mycompany/myapp \
          --set image.tag=latest \
          my-app novu

This command deploys the my-app component with the specified container image and tag.

Scaling Your Application

Novu makes it easy to scale your application by simply modifying its configuration. You can add a scale policy that automatically adjusts the number of containers based on demand:

spec:
  containers:
    - name: my-service
      image: mycompany/myapp:latest
      ports:
        - containerPort: 80
      resources:
        limits:
          cpus: '2'

Updating Your Application

Updating your application is straightforward with Novu. You can simply push a new version of the container image and trigger an update:

docker build -t mycompany/myapp:new-version .
helm update --create-namespace my-app novu

Best Practices

Versioning

Always maintain clear versioning for your applications. Use semantic versioning (e.g., 1.2.3) to indicate major, minor, and patch updates.

CI/CD Integration

Leverage CI/CD pipelines to automate testing and deployment. Use webhooks or triggers to automatically deploy when code changes are pushed to your repository.

Monitoring

Set up monitoring and logging from the start. Define metrics, logs, and traces in your Novu configuration to keep track of your application's health and performance.

Testing

Before deploying to production, always test your application in a staging environment. Use Novu to create a staging cluster or namespace for pre-deployment testing.

Troubleshooting

If you encounter issues while using Novu, check the logs and metrics provided by Kubernetes. Common problems include dependency conflicts, resource limits, or configuration errors.

Conclusion

Novu is an excellent choice for managing Kubernetes applications due to its declarative configuration, integration with CI/CD pipelines, and robust error handling. By following the steps outlined in this guide, you can quickly deploy, update, and scale your applications with confidence. Whether you're working on a small project or a large-scale deployment, Novu provides the flexibility and power you need to succeed.