Skip to content

TheMainMamad/CustomHelmChart

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

CustomHelmChart

This Helm chart is designed to be highly configurable, supporting multiple workloads (statefulsets, deployments, etc.) through a single workloads section in values.yaml. It follows best practices for security and flexibility and is suitable for enterprise environments.

Enterprise considerations

  • RBAC support – toggleable via rbac.enabled (and associated Role/RoleBinding).
  • NetworkPolicy – optional ingress/egress controls with networkPolicy values.
  • Schema validationvalues.schema.json provides a JSON schema for CI tools to validate user values before deployment.
  • Security contexts – defaults enforce non‑root users, drop capabilities, and disallow privilege escalation.
  • Resource limits & probes – configurable per‑workload to satisfy performance and SLAs.
  • Linted and tested – chart passes helm lint and can be extended with helm test hooks.
  • Multiple workloads support - Enables deployment and management of multiple application workloads simultaneously within a single Helm chart, allowing for flexible orchestration of diverse containerized services and their dependencies.

Feel free to extend the chart with additional policies, quotas, or sidecars as your organization requires.

Usage

To deploy the chart with default values:

helm install my-release ./app -f app/values.yaml

You can customize values.yaml to configure specific workloads. For example, to deploy only the deployment workload with a custom image:

workloads:
  deployment:
    containers:
      - name: app
        image: myregistry/myapp:v1.2.3
    service:
      type: ClusterIP
      port: 8080

Then run:

helm upgrade --install my-release ./app -f custom-values.yaml

Enable RBAC and a network policy in enterprise clusters:

rbac:
  enabled: true
networkPolicy:
  enabled: true
  ingress:
    - from:
        - podSelector:
            matchLabels:
              app.kubernetes.io/name: my-app

Lint and validate your modified values with:

helm lint ./app --strict -f custom-values.yaml
helm template ./app -f custom-values.yaml | kubectl apply --dry-run=client -f -

For testing, add or run the built‑in test-connection hook:

helm test my-release

Refer to the comments in values.yaml for descriptions of each field, and adjust probes, autoscaling, persistence, or ingress/httproute settings as needed.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors