From 33d2d20d0960172ef0f8e7bf54e0d62658458d95 Mon Sep 17 00:00:00 2001 From: Dmytro Bondar Date: Fri, 17 Apr 2026 11:27:44 +0200 Subject: [PATCH 1/5] Move to chart --- .helmignore => chart/.helmignore | 0 Chart.yaml => chart/Chart.yaml | 0 README.md => chart/README.md | 0 {templates => chart/templates}/NOTES.txt | 0 {templates => chart/templates}/_helpers.tpl | 0 {templates => chart/templates}/_pod.tpl | 0 {templates => chart/templates}/_render.tpl | 0 {templates => chart/templates}/configmap.yaml | 0 {templates => chart/templates}/deployment.yaml | 0 {templates => chart/templates}/extras.yaml | 0 {templates => chart/templates}/hpa.yaml | 0 {templates => chart/templates}/httproute.yaml | 0 {templates => chart/templates}/ingress.yaml | 0 {templates => chart/templates}/service.yaml | 0 {templates => chart/templates}/serviceaccount.yaml | 0 values.yaml => chart/values.yaml | 0 16 files changed, 0 insertions(+), 0 deletions(-) rename .helmignore => chart/.helmignore (100%) rename Chart.yaml => chart/Chart.yaml (100%) rename README.md => chart/README.md (100%) rename {templates => chart/templates}/NOTES.txt (100%) rename {templates => chart/templates}/_helpers.tpl (100%) rename {templates => chart/templates}/_pod.tpl (100%) rename {templates => chart/templates}/_render.tpl (100%) rename {templates => chart/templates}/configmap.yaml (100%) rename {templates => chart/templates}/deployment.yaml (100%) rename {templates => chart/templates}/extras.yaml (100%) rename {templates => chart/templates}/hpa.yaml (100%) rename {templates => chart/templates}/httproute.yaml (100%) rename {templates => chart/templates}/ingress.yaml (100%) rename {templates => chart/templates}/service.yaml (100%) rename {templates => chart/templates}/serviceaccount.yaml (100%) rename values.yaml => chart/values.yaml (100%) diff --git a/.helmignore b/chart/.helmignore similarity index 100% rename from .helmignore rename to chart/.helmignore diff --git a/Chart.yaml b/chart/Chart.yaml similarity index 100% rename from Chart.yaml rename to chart/Chart.yaml diff --git a/README.md b/chart/README.md similarity index 100% rename from README.md rename to chart/README.md diff --git a/templates/NOTES.txt b/chart/templates/NOTES.txt similarity index 100% rename from templates/NOTES.txt rename to chart/templates/NOTES.txt diff --git a/templates/_helpers.tpl b/chart/templates/_helpers.tpl similarity index 100% rename from templates/_helpers.tpl rename to chart/templates/_helpers.tpl diff --git a/templates/_pod.tpl b/chart/templates/_pod.tpl similarity index 100% rename from templates/_pod.tpl rename to chart/templates/_pod.tpl diff --git a/templates/_render.tpl b/chart/templates/_render.tpl similarity index 100% rename from templates/_render.tpl rename to chart/templates/_render.tpl diff --git a/templates/configmap.yaml b/chart/templates/configmap.yaml similarity index 100% rename from templates/configmap.yaml rename to chart/templates/configmap.yaml diff --git a/templates/deployment.yaml b/chart/templates/deployment.yaml similarity index 100% rename from templates/deployment.yaml rename to chart/templates/deployment.yaml diff --git a/templates/extras.yaml b/chart/templates/extras.yaml similarity index 100% rename from templates/extras.yaml rename to chart/templates/extras.yaml diff --git a/templates/hpa.yaml b/chart/templates/hpa.yaml similarity index 100% rename from templates/hpa.yaml rename to chart/templates/hpa.yaml diff --git a/templates/httproute.yaml b/chart/templates/httproute.yaml similarity index 100% rename from templates/httproute.yaml rename to chart/templates/httproute.yaml diff --git a/templates/ingress.yaml b/chart/templates/ingress.yaml similarity index 100% rename from templates/ingress.yaml rename to chart/templates/ingress.yaml diff --git a/templates/service.yaml b/chart/templates/service.yaml similarity index 100% rename from templates/service.yaml rename to chart/templates/service.yaml diff --git a/templates/serviceaccount.yaml b/chart/templates/serviceaccount.yaml similarity index 100% rename from templates/serviceaccount.yaml rename to chart/templates/serviceaccount.yaml diff --git a/values.yaml b/chart/values.yaml similarity index 100% rename from values.yaml rename to chart/values.yaml From d606cf0d611aa8aa52779fc8a80f01db2d331115 Mon Sep 17 00:00:00 2001 From: Dmytro Bondar Date: Fri, 17 Apr 2026 13:13:27 +0200 Subject: [PATCH 2/5] Update workflows and pre-commit config * pre-commit: add local hook for linting * publish: create GitHub release after chart publish * ci: set permissions on job level --- .github/workflows/ci.yml | 7 +++---- .github/workflows/publish.yaml | 28 +++++++++++++++------------- .pre-commit-config.yaml | 13 ++++++++++++- 3 files changed, 30 insertions(+), 18 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 02be607..0f1b93d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,12 +6,11 @@ on: branches: - main -permissions: - contents: read - jobs: lint: runs-on: ubuntu-latest + permissions: + contents: read steps: - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 @@ -31,4 +30,4 @@ jobs: uses: helm/chart-testing-action@6ec842c01de15ebb84c8627d2744a0c2f2755c9f # v2.8.0 - name: Run chart-testing (lint) - run: ct lint --use-helmignore --charts . + run: ct lint --chart-dirs . diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index 0cadf95..bc3c145 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -6,23 +6,17 @@ on: branches: - main paths: - - templates/** - - Chart.yaml - - values.yaml - - README.md - -permissions: - contents: read - packages: write + - chart jobs: publish: runs-on: ubuntu-latest + permissions: + contents: write + packages: write steps: - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - fetch-depth: 0 - name: Login to GHCR uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4.0.0 @@ -31,8 +25,16 @@ jobs: username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - - name: Package helm charts - run: helm dependency build && helm package . + - name: Get chart version + run: echo "CHART_VERSION=$(helm show chart chart | yq .version)" | tee -a $GITHUB_ENV + + - name: Package helm chart + run: helm package --dependency-update chart - name: Push chart to GHCR - run: helm push base-*.tgz oci://ghcr.io/${{ github.repository_owner }}/helm-charts + run: helm push base-${CHART_VERSION}.tgz oci://ghcr.io/${{ github.repository_owner }}/helm-charts + + - name: Create GitHub Release + run: gh release create "${CHART_VERSION}" --title "${CHART_VERSION}" --generate-notes + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 1d61ce7..ad5926f 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -8,7 +8,7 @@ repos: - id: check-executables-have-shebangs - id: check-shebang-scripts-are-executable - id: check-yaml - exclude: "^templates/.*\\.ya?ml$" + exclude: "^chart/templates/.*\\.ya?ml$" - id: end-of-file-fixer - id: trailing-whitespace @@ -19,3 +19,14 @@ repos: args: - --chart-search-root=. - --sort-values-order=file + + - repo: local + hooks: + - id: helm-chart-testing + name: Helm Chart Testing + language: docker_image + alias: ct + files: "^chart/" + pass_filenames: false + require_serial: false + entry: quay.io/helmpack/chart-testing ct lint --chart-dirs . From 6f6f25f74c687fb76a505c57203773295c64f8bd Mon Sep 17 00:00:00 2001 From: Dmytro Bondar Date: Fri, 17 Apr 2026 15:18:57 +0200 Subject: [PATCH 3/5] Update readme --- README.md | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..8f6bba9 --- /dev/null +++ b/README.md @@ -0,0 +1,45 @@ +# Helm Base Chart + +[![Last Commit](https://img.shields.io/github/last-commit/bonddim/helm-base-chart/main?style=flat-square)](https://github.com/bonddim/helm-base-chart/commits/main) +[![Latest Release](https://img.shields.io/github/v/release/bonddim/helm-base-chart?style=flat-square)](https://github.com/bonddim/helm-base-chart/releases) + +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. + +## Usage + +The chart is published to GitHub Container Registry as an OCI artifact. +You may install it directly with your own values - **no wrapper chart, no boilerplate templates required**: + +```bash +helm install my-release oci://ghcr.io/bonddim/helm-charts/base --values values.yaml +``` + +```bash +helm upgrade --install my-release oci://ghcr.io/bonddim/helm-charts/base --values values.yaml +``` + +A minimal `values.yaml` to get started: + +```yaml +image: + repository: my-app + tag: "1.0.0" + +service: + enabled: true + port: 8080 + +ingress: + enabled: true + className: nginx + hosts: + - host: my-app.example.com + paths: + - path: / + pathType: Prefix +``` + +See [chart/values.yaml](chart/values.yaml) and [chart/README.md](chart/README.md) for the full list of configurable parameters. + +## Contributing +Contributions are welcome! Please open an issue or submit a pull request with any improvements or bug fixes. From dc9db1b33e089a3b5f46e641a545705f6bf0aac7 Mon Sep 17 00:00:00 2001 From: Dmytro Bondar Date: Fri, 17 Apr 2026 15:32:42 +0200 Subject: [PATCH 4/5] Move further to charts --- .github/workflows/ci.yml | 2 +- .github/workflows/publish.yaml | 6 +++--- .pre-commit-config.yaml | 8 ++++---- README.md | 4 ++-- {chart => charts/base}/.helmignore | 0 {chart => charts/base}/Chart.yaml | 0 {chart => charts/base}/README.md | 0 {chart => charts/base}/templates/NOTES.txt | 0 {chart => charts/base}/templates/_helpers.tpl | 0 {chart => charts/base}/templates/_pod.tpl | 0 {chart => charts/base}/templates/_render.tpl | 0 {chart => charts/base}/templates/configmap.yaml | 0 {chart => charts/base}/templates/deployment.yaml | 0 {chart => charts/base}/templates/extras.yaml | 0 {chart => charts/base}/templates/hpa.yaml | 0 {chart => charts/base}/templates/httproute.yaml | 0 {chart => charts/base}/templates/ingress.yaml | 0 {chart => charts/base}/templates/service.yaml | 0 {chart => charts/base}/templates/serviceaccount.yaml | 0 {chart => charts/base}/values.yaml | 0 20 files changed, 10 insertions(+), 10 deletions(-) rename {chart => charts/base}/.helmignore (100%) rename {chart => charts/base}/Chart.yaml (100%) rename {chart => charts/base}/README.md (100%) rename {chart => charts/base}/templates/NOTES.txt (100%) rename {chart => charts/base}/templates/_helpers.tpl (100%) rename {chart => charts/base}/templates/_pod.tpl (100%) rename {chart => charts/base}/templates/_render.tpl (100%) rename {chart => charts/base}/templates/configmap.yaml (100%) rename {chart => charts/base}/templates/deployment.yaml (100%) rename {chart => charts/base}/templates/extras.yaml (100%) rename {chart => charts/base}/templates/hpa.yaml (100%) rename {chart => charts/base}/templates/httproute.yaml (100%) rename {chart => charts/base}/templates/ingress.yaml (100%) rename {chart => charts/base}/templates/service.yaml (100%) rename {chart => charts/base}/templates/serviceaccount.yaml (100%) rename {chart => charts/base}/values.yaml (100%) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0f1b93d..65584d1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -30,4 +30,4 @@ jobs: uses: helm/chart-testing-action@6ec842c01de15ebb84c8627d2744a0c2f2755c9f # v2.8.0 - name: Run chart-testing (lint) - run: ct lint --chart-dirs . + run: ct lint diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index bc3c145..41b2761 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -6,7 +6,7 @@ on: branches: - main paths: - - chart + - charts jobs: publish: @@ -26,10 +26,10 @@ jobs: password: ${{ secrets.GITHUB_TOKEN }} - name: Get chart version - run: echo "CHART_VERSION=$(helm show chart chart | yq .version)" | tee -a $GITHUB_ENV + run: echo "CHART_VERSION=$(helm show chart charts/base | yq .version)" | tee -a $GITHUB_ENV - name: Package helm chart - run: helm package --dependency-update chart + run: helm package --dependency-update charts/base - name: Push chart to GHCR run: helm push base-${CHART_VERSION}.tgz oci://ghcr.io/${{ github.repository_owner }}/helm-charts diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index ad5926f..8532cf9 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -8,7 +8,7 @@ repos: - id: check-executables-have-shebangs - id: check-shebang-scripts-are-executable - id: check-yaml - exclude: "^chart/templates/.*\\.ya?ml$" + exclude: "^charts/.*/templates/.*\\.ya?ml$" - id: end-of-file-fixer - id: trailing-whitespace @@ -17,7 +17,7 @@ repos: hooks: - id: helm-docs-container args: - - --chart-search-root=. + - --chart-search-root=charts - --sort-values-order=file - repo: local @@ -26,7 +26,7 @@ repos: name: Helm Chart Testing language: docker_image alias: ct - files: "^chart/" + files: "^charts/" pass_filenames: false require_serial: false - entry: quay.io/helmpack/chart-testing ct lint --chart-dirs . + entry: quay.io/helmpack/chart-testing ct lint diff --git a/README.md b/README.md index 8f6bba9..511df07 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ A simple, straightforward Helm chart driven entirely by `values.yaml` for deploy ## Usage -The chart is published to GitHub Container Registry as an OCI artifact. +The chart is published to GitHub Container Registry as an OCI artifact. You may install it directly with your own values - **no wrapper chart, no boilerplate templates required**: ```bash @@ -39,7 +39,7 @@ ingress: pathType: Prefix ``` -See [chart/values.yaml](chart/values.yaml) and [chart/README.md](chart/README.md) for the full list of configurable parameters. +See [values.yaml](charts/base/values.yaml) and [README.md](charts/base/README.md) for the full list of configurable parameters. ## Contributing Contributions are welcome! Please open an issue or submit a pull request with any improvements or bug fixes. diff --git a/chart/.helmignore b/charts/base/.helmignore similarity index 100% rename from chart/.helmignore rename to charts/base/.helmignore diff --git a/chart/Chart.yaml b/charts/base/Chart.yaml similarity index 100% rename from chart/Chart.yaml rename to charts/base/Chart.yaml diff --git a/chart/README.md b/charts/base/README.md similarity index 100% rename from chart/README.md rename to charts/base/README.md diff --git a/chart/templates/NOTES.txt b/charts/base/templates/NOTES.txt similarity index 100% rename from chart/templates/NOTES.txt rename to charts/base/templates/NOTES.txt diff --git a/chart/templates/_helpers.tpl b/charts/base/templates/_helpers.tpl similarity index 100% rename from chart/templates/_helpers.tpl rename to charts/base/templates/_helpers.tpl diff --git a/chart/templates/_pod.tpl b/charts/base/templates/_pod.tpl similarity index 100% rename from chart/templates/_pod.tpl rename to charts/base/templates/_pod.tpl diff --git a/chart/templates/_render.tpl b/charts/base/templates/_render.tpl similarity index 100% rename from chart/templates/_render.tpl rename to charts/base/templates/_render.tpl diff --git a/chart/templates/configmap.yaml b/charts/base/templates/configmap.yaml similarity index 100% rename from chart/templates/configmap.yaml rename to charts/base/templates/configmap.yaml diff --git a/chart/templates/deployment.yaml b/charts/base/templates/deployment.yaml similarity index 100% rename from chart/templates/deployment.yaml rename to charts/base/templates/deployment.yaml diff --git a/chart/templates/extras.yaml b/charts/base/templates/extras.yaml similarity index 100% rename from chart/templates/extras.yaml rename to charts/base/templates/extras.yaml diff --git a/chart/templates/hpa.yaml b/charts/base/templates/hpa.yaml similarity index 100% rename from chart/templates/hpa.yaml rename to charts/base/templates/hpa.yaml diff --git a/chart/templates/httproute.yaml b/charts/base/templates/httproute.yaml similarity index 100% rename from chart/templates/httproute.yaml rename to charts/base/templates/httproute.yaml diff --git a/chart/templates/ingress.yaml b/charts/base/templates/ingress.yaml similarity index 100% rename from chart/templates/ingress.yaml rename to charts/base/templates/ingress.yaml diff --git a/chart/templates/service.yaml b/charts/base/templates/service.yaml similarity index 100% rename from chart/templates/service.yaml rename to charts/base/templates/service.yaml diff --git a/chart/templates/serviceaccount.yaml b/charts/base/templates/serviceaccount.yaml similarity index 100% rename from chart/templates/serviceaccount.yaml rename to charts/base/templates/serviceaccount.yaml diff --git a/chart/values.yaml b/charts/base/values.yaml similarity index 100% rename from chart/values.yaml rename to charts/base/values.yaml From 070a0f88f8a55527b648ca0b45ad253b1c715473 Mon Sep 17 00:00:00 2001 From: Dmytro Bondar Date: Fri, 17 Apr 2026 15:36:29 +0200 Subject: [PATCH 5/5] update helmignore --- charts/base/.helmignore | 2 -- 1 file changed, 2 deletions(-) diff --git a/charts/base/.helmignore b/charts/base/.helmignore index 9fc1c1f..f9dcfa9 100644 --- a/charts/base/.helmignore +++ b/charts/base/.helmignore @@ -22,5 +22,3 @@ .idea/ *.tmproj .vscode/ -# Ignore pre-commit config file -.pre-commit-config.yaml