|
1 | | -# base |
| 1 | +# Helm Base Chart |
2 | 2 |
|
3 | | -  |
| 3 | +[](https://github.com/bonddim/helm-base-chart/commits/main) |
| 4 | +[](https://github.com/bonddim/helm-base-chart/releases) |
4 | 5 |
|
5 | | -Base Helm chart for Kubernetes - fully values-driven. |
| 6 | +A simple, straightforward Helm chart driven entirely by `values.yaml` for deploying standard Kubernetes resources - scaffolded from `helm create` and intentionally kept close to that structure so anyone can read, understand, and maintain it without prior knowledge of the chart. |
6 | 7 |
|
7 | | -## Maintainers |
| 8 | +## Usage |
8 | 9 |
|
9 | | -| Name | Email | Url | |
10 | | -| ---- | ------ | --- | |
11 | | -| bonddim | | | |
| 10 | +The chart is published to GitHub Container Registry as an OCI artifact. |
| 11 | +You may install it directly with your own values - **no wrapper chart, no boilerplate templates required**: |
12 | 12 |
|
13 | | -## Source Code |
| 13 | +```bash |
| 14 | +helm install my-release oci://ghcr.io/bonddim/helm-charts/base --values values.yaml |
| 15 | +``` |
14 | 16 |
|
15 | | -* <https://github.com/bonddim/helm-base-chart> |
| 17 | +```bash |
| 18 | +helm upgrade --install my-release oci://ghcr.io/bonddim/helm-charts/base --values values.yaml |
| 19 | +``` |
16 | 20 |
|
17 | | -## Values |
| 21 | +A minimal `values.yaml` to get started: |
18 | 22 |
|
19 | | -### Global parameters |
| 23 | +```yaml |
| 24 | +image: |
| 25 | + repository: my-app |
| 26 | + tag: "1.0.0" |
20 | 27 |
|
21 | | -| Key | Type | Default | Description | |
22 | | -|-----|------|---------|-------------| |
23 | | -| global.imageRegistry | string | `""` | Global image registry. Used as the default for all charts, but can be overridden by individual chart values. | |
24 | | -| global.imageTag | string | `""` | Global image tag used as the default for all charts. Can be overridden by individual chart values. | |
| 28 | +service: |
| 29 | + enabled: true |
| 30 | + port: 8080 |
25 | 31 |
|
26 | | -### Common parameters |
| 32 | +ingress: |
| 33 | + enabled: true |
| 34 | + className: nginx |
| 35 | + hosts: |
| 36 | + - host: my-app.example.com |
| 37 | + paths: |
| 38 | + - path: / |
| 39 | + pathType: Prefix |
| 40 | +``` |
27 | 41 |
|
28 | | -| Key | Type | Default | Description | |
29 | | -|-----|------|---------|-------------| |
30 | | -| nameOverride | string | `""` | Override resource names (partially) | |
31 | | -| fullnameOverride | string | `""` | Override resource names (fully) | |
32 | | -| commonLabels | object | `{}` | Labels to add to all deployed resources | |
33 | | -| commonAnnotations | object | `{}` | Annotations to add to all deployed resources | |
| 42 | +See [values.yaml](charts/base/values.yaml) and [README.md](charts/base/README.md) for the full list of configurable parameters. |
34 | 43 |
|
35 | | -### Workload parameters |
36 | | - |
37 | | -| Key | Type | Default | Description | |
38 | | -|-----|------|---------|-------------| |
39 | | -| annotations | object | `{}` | Additional annotations on the Deployment resource itself. | |
40 | | -| labels | object | `{}` | Additional labels on the Deployment resource itself. | |
41 | | -| replicas | int | `nil` | Number of pod replicas. Ignored when autoscaling.enabled=true. Must be >= 0 if specified. null by default, which defaults to 1 and not controlled by Helm. | |
42 | | -| strategy | object | `{}` | Deployment update strategy. e.g. { type: RollingUpdate, rollingUpdate: { maxSurge: 1, maxUnavailable: 0 } } | |
43 | | -| revisionHistoryLimit | int | `nil` | Number of old ReplicaSets to retain. | |
44 | | -| podAnnotations | object | `{}` | Additional annotations on the Pod template. | |
45 | | -| podLabels | object | `{}` | Additional labels on the Pod template. | |
46 | | -| podSecurityContext | object | `{}` | Pod-level security context. | |
47 | | -| imagePullSecrets | list | `[]` | Image pull secrets (list of { name: ... }). | |
48 | | -| automountServiceAccountToken | bool | `nil` | Whether to auto-mount the service account token to the pod. | |
49 | | -| initContainers | object/list | `{}` | Init containers (values are tpl-rendered). | |
50 | | -| sidecarContainers | object/list | `{}` | Sidecar containers (values are tpl-rendered). | |
51 | | -| volumes | object/list | `{}` | Volumes (values are tpl-rendered). | |
52 | | -| nodeSelector | object | `{}` | Node selector for pod scheduling. | |
53 | | -| tolerations | list | `[]` | Tolerations for pod scheduling. | |
54 | | -| affinity | object | `{}` | Pod affinity/anti-affinity rules. | |
55 | | -| topologySpreadConstraints | list | `[]` | Topology spread constraints. | |
56 | | -| dnsPolicy | string | `""` | DNS policy for the pod. | |
57 | | -| priorityClassName | string | `""` | Priority class name. | |
58 | | -| terminationGracePeriodSeconds | int | `nil` | Grace period (seconds) before forceful termination. | |
59 | | -| enableServiceLinks | bool | `nil` | Enable Kubernetes service links injected as env vars. | |
60 | | -| image.registry | string | `""` | Container image registry. | |
61 | | -| image.repository | string | `""` | Container image repository. | |
62 | | -| image.tag | string | `""` | Container image tag. Defaults to Chart.AppVersion when empty. @default latest | |
63 | | -| image.pullPolicy | string | `nil` | Image pull policy. | |
64 | | -| command | list | `[]` | Override the container entrypoint. | |
65 | | -| args | list | `[]` | Arguments to the entrypoint. | |
66 | | -| env | object/list | `{}` | Environment variables (tpl-rendered). | |
67 | | -| envFrom | list | `[]` | envFrom sources (tpl-rendered). | |
68 | | -| extraPorts | object/list | `{}` | Extra ports in addition to the primary port derived from service.port. | |
69 | | -| resources | object | `{}` | Compute resource requests and limits. | |
70 | | -| securityContext | object | `{}` | Container-level security context. | |
71 | | -| livenessProbe | object | `{}` | Liveness probe configuration. | |
72 | | -| readinessProbe | object | `{}` | Readiness probe configuration. | |
73 | | -| startupProbe | object | `{}` | Startup probe configuration. | |
74 | | -| lifecycle | object | `{}` | Container lifecycle hooks. | |
75 | | -| volumeMounts | object/list | `{}` | Volume mounts (tpl-rendered). Key = volume name. | |
76 | | - |
77 | | -### Security parameters |
78 | | - |
79 | | -| Key | Type | Default | Description | |
80 | | -|-----|------|---------|-------------| |
81 | | -| serviceAccount.create | bool | `false` | Whether to create a ServiceAccount resource. | |
82 | | -| serviceAccount.annotations | object | `{}` | Annotations for the ServiceAccount. | |
83 | | -| serviceAccount.automount | bool | `nil` | Automatically mount API credentials. | |
84 | | -| serviceAccount.name | string | `""` | Name of the ServiceAccount. Auto-generated from fullname if empty and create=true. | |
85 | | - |
86 | | -### Network parameters |
87 | | - |
88 | | -| Key | Type | Default | Description | |
89 | | -|-----|------|---------|-------------| |
90 | | -| service.enabled | bool | `false` | Whether to create a Service resource. | |
91 | | -| service.annotations | object | `{}` | Annotations for the Service. | |
92 | | -| service.type | string | `"ClusterIP"` | Service type. | |
93 | | -| service.port | int | `nil` | Primary port exposed by the Service (also used as the container's primary port). | |
94 | | -| service.targetPort | string | `"http"` | Target port on the container. Defaults to the port name "http". | |
95 | | -| service.protocol | string | `"TCP"` | Protocol for the primary port. | |
96 | | -| service.nodePort | string | `nil` | NodePort value (only applies to NodePort/LoadBalancer service types). | |
97 | | -| service.extraPorts | object | `{}` | Extra ports Key is the port name. | |
98 | | -| ingress.enabled | bool | `false` | Whether to create an Ingress resource. | |
99 | | -| ingress.annotations | object | `{}` | Annotations for the Ingress. | |
100 | | -| ingress.className | string | `""` | Ingress class name. | |
101 | | -| ingress.hostnames | list | `[]` | List of hostnames to route traffic to this service. | |
102 | | -| ingress.paths | list | `[{"path":"/","pathType":"Prefix"}]` | Path rules applied to every hostname. | |
103 | | -| ingress.tls | object | `{"enabled":false,"secretName":""}` | TLS configuration. | |
104 | | -| ingress.tls.secretName | string | `""` | Secret name; defaults to "<first-hostname>-tls" when empty. | |
105 | | -| httpRoute.enabled | bool | `false` | Whether to create an HTTPRoute resource. | |
106 | | -| httpRoute.annotations | object | `{}` | Annotations for the HTTPRoute. | |
107 | | -| httpRoute.parentRefs | list | `[]` | Gateway parentRefs this route attaches to. | |
108 | | -| httpRoute.hostnames | list | `[]` | Hostnames matched by this route. | |
109 | | -| httpRoute.rules | list | `[]` | Routing rules. backendRefs are auto-populated from the Service. | |
110 | | - |
111 | | -### Autoscaling parameters |
112 | | - |
113 | | -| Key | Type | Default | Description | |
114 | | -|-----|------|---------|-------------| |
115 | | -| autoscaling.enabled | bool | `false` | Whether to create an HPA resource (also suppresses Deployment.spec.replicas). | |
116 | | -| autoscaling.annotations | object | `{}` | Annotations for the HPA. | |
117 | | -| autoscaling.labels | object | `{}` | Labels for the HPA. | |
118 | | -| autoscaling.minReplicas | int | `1` | Minimum number of replicas when autoscaling is enabled. | |
119 | | -| autoscaling.maxReplicas | int | `10` | Maximum number of replicas when autoscaling is enabled. | |
120 | | -| autoscaling.targetCPUUtilizationPercentage | int | `80` | Target CPU utilization percentage. | |
121 | | -| autoscaling.behavior | object | `{}` | Advanced scaling behavior. | |
122 | | -| autoscaling.metrics | list | `[]` | Additional custom metrics (appended to the generated metrics list). | |
123 | | - |
124 | | -### ConfigMap parameters |
125 | | - |
126 | | -| Key | Type | Default | Description | |
127 | | -|-----|------|---------|-------------| |
128 | | -| configMap.enabled | bool | `false` | Whether to create a ConfigMap resource. | |
129 | | -| configMap.annotations | object | `{}` | Annotations for the ConfigMap. | |
130 | | -| configMap.labels | object | `{}` | Labels for the ConfigMap. | |
131 | | -| configMap.data | object | `{}` | Key/value data for the ConfigMap. | |
132 | | - |
133 | | -### Extras |
134 | | - |
135 | | -| Key | Type | Default | Description | |
136 | | -|-----|------|---------|-------------| |
137 | | -| extraObjects | object/list | `[]` | Render additional Kubernetes manifests. Each entry may be a string (with Go template expressions) or a YAML object. | |
138 | | - |
139 | | ----------------------------------------------- |
140 | | -Autogenerated from chart metadata using [helm-docs v1.14.2](https://github.com/norwoodj/helm-docs/releases/v1.14.2) |
| 44 | +## Contributing |
| 45 | +Contributions are welcome! Please open an issue or submit a pull request with any improvements or bug fixes. |
0 commit comments