Documentation

One chart, many deployment shapes.

The chart turns a values.yaml file into the Kubernetes resources an application needs. Use the sections below as a site-native configuration reference.

Getting StartedConfigurationNetworkingStorageGateway APIGitOpsUpgrade

Getting Started

Add the chart repository and install a release into its own namespace. The complete installation guide includes Artifact Hub and standard Helm workflows.

helm repo add universal https://chaser100.github.io/u-helm-chart
helm repo update
helm upgrade --install my-app universal/application \
  --namespace my-app --create-namespace \
  --set image=nginx --set imageTag=1.27

Open Getting Started →

Configuration

The primary values define the image, Service, probes, resources, environment, security context, and optional Kubernetes resources.

image: ghcr.io/example-org/my-app
imageTag: "1.0.0"
replicaCount: 2
service:
  port: 8080
resources:
  requests: {cpu: 100m, memory: 128Mi}
  limits: {cpu: 500m, memory: 512Mi}
readinessProbe:
  httpGet: {path: /health, port: http}

Open the complete configuration reference →

Networking

Use the Service as the internal boundary and select either Ingress or Gateway API for external traffic.

service:
  type: ClusterIP
  port: 8080
route:
  enabled: true
  gateway: external
  gatewayNamespace: gateway-system
  sectionName: https
  hostname: app.example.com

Storage

Mount only the paths an application needs. Use a PVC for durable data and an emptyDir volume for ephemeral runtime files.

persistentVolumeClaims:
  - name: app-data
    size: 10Gi
    accessModes: [ReadWriteOnce]
    mountPath: /var/lib/app
    readOnly: false

volumes:
  - name: runtime
    emptyDir: {}
volumeMounts:
  - name: runtime
    mountPath: /tmp

Gateway API

Set a Gateway name, namespace, listener section, and hostname. The chart renders an HTTPRoute that points to the generated Service.

route:
  enabled: true
  gateway: external
  gatewayNamespace: gateway-system
  sectionName: https
  hostname: api.example.com
  path: /
  pathMatchType: PathPrefix

Gateway API configuration reference →

GitOps

Commit environment-specific values to Git and let Argo CD or Flux reconcile the release. Keep image tags immutable and promote by changing the tag in the environment values.

argocd app create my-app \
  --repo https://github.com/example-org/platform-config.git \
  --path environments/dev/my-app \
  --dest-server https://kubernetes.default.svc \
  --dest-namespace my-app

Upgrade

Use the same idempotent command for upgrades. Review the rendered diff, wait for readiness, and keep the previous image tag available for rollback.

helm repo update
helm upgrade my-app universal/application \
  --namespace my-app \
  --reuse-values \
  --set imageTag=1.1.0
kubectl rollout status deployment/my-app -n my-app

Choose the right abstraction

A universal chart fits conventional applications with repeatable Kubernetes patterns. Choose a dedicated chart when a product needs specialized lifecycle logic, custom CRDs, or a large opinionated API.