Docs / Kubernetes & Orchestration / Helm Chart Creation for Custom Applications

Helm Chart Creation for Custom Applications

By Admin · Apr 4, 2026 · Updated Apr 25, 2026 · 7 views · 4 min read

In this article, we'll walk through the complete process of working with helm in a server environment. Understanding charts is essential for maintaining a reliable and performant infrastructure.

Prerequisites

  • Root or sudo access to the server
  • kubectl installed on your local machine
  • A registered domain name (for public-facing services)

Deploying the Application

It's recommended to test this configuration in a staging environment before deploying to production. This helps identify potential compatibility issues and allows you to benchmark performance differences.


# deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: helm-app
  labels:
    app: helm
spec:
  replicas: 2
  selector:
    matchLabels:
      app: helm
  template:
    metadata:
      labels:
        app: helm
    spec:
      containers:
      - name: helm
        image: helm:latest
        ports:
        - containerPort: 8080
        resources:
          requests:
            memory: "128Mi"
            cpu: "250m"
          limits:
            memory: "256Mi"
            cpu: "500m"

Make sure to restart the service after applying these changes. Some settings require a full restart rather than a reload to take effect.

  • Test disaster recovery procedures regularly
  • Maintain runbooks for common operations
  • Set up monitoring before going to production
  • Document all configuration changes

Configuring Services and Ingress

The default configuration works well for development environments, but production servers require additional tuning. Pay particular attention to connection limits, timeout values, and logging settings.


# Apply the configuration
kubectl apply -f deployment.yaml
kubectl apply -f service.yaml

# Verify the deployment
kubectl get pods -l app=helm
kubectl describe deployment helm-app
kubectl logs -f deployment/helm-app

These commands should be run as root or with sudo privileges. If you're using a non-root user, prefix each command with sudo.

  • Use SSH keys instead of password authentication
  • Keep all software components up to date
  • Enable firewall and allow only necessary ports

Setting Up Persistent Storage

If you encounter issues during setup, check the system logs first. Most problems can be diagnosed by examining the output of journalctl or the application-specific log files in /var/log/.


# service.yaml
apiVersion: v1
kind: Service
metadata:
  name: helm-service
spec:
  selector:
    app: helm
  ports:
  - port: 80
    targetPort: 8080
  type: ClusterIP

Each line in the configuration serves a specific purpose. The comments explain the reasoning behind each setting, making it easier to customize for your specific use case.

  • Implement caching at every appropriate layer
  • Use connection pooling for database connections
  • Start with the minimum required resources
  • Scale vertically before scaling horizontally

Scaling and Resource Management

Regular maintenance is essential for keeping your helm installation running smoothly. Schedule periodic reviews of log files, disk usage, and security updates to prevent issues before they occur.


# deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: helm-app
  labels:
    app: helm
spec:
  replicas: 2
  selector:
    matchLabels:
      app: helm
  template:
    metadata:
      labels:
        app: helm
    spec:
      containers:
      - name: helm
        image: helm:latest
        ports:
        - containerPort: 8080
        resources:
          requests:
            memory: "128Mi"
            cpu: "250m"
          limits:
            memory: "256Mi"
            cpu: "500m"

These commands should be run as root or with sudo privileges. If you're using a non-root user, prefix each command with sudo.

  • Enable firewall and allow only necessary ports
  • Keep all software components up to date
  • Use SSH keys instead of password authentication
  • Set up fail2ban for brute force protection
  • Use strong, unique passwords for all services

Common Issues and Solutions

  • Connection timeout: Verify your firewall rules allow traffic on the required ports. Use ss -tlnp to confirm the service is listening on the expected port.
  • Service won't start: Check the logs with journalctl -xe -u helm. Common causes include port conflicts, missing configuration files, or insufficient permissions.

Conclusion

This guide covered the essential steps for working with helm on a VPS environment. For more advanced configurations, refer to the official documentation. Don't hesitate to reach out to our support team if you need help with your specific setup.

Was this article helpful?