Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
57c6699
feat: add auto-generation of CHANGELOG.md for chart releases
Tronix117 Dec 31, 2025
f3bad4b
fix: rename image pull secret from -docker to -registry
Tronix117 Dec 31, 2025
1f452b2
refactor: rename docker-secret to registry-secret
Tronix117 Dec 31, 2025
252dd9d
feat: add secure containerSecurityContext defaults
Tronix117 Dec 31, 2025
547dfeb
feat: add secure PodSecurityContext defaults
Tronix117 Dec 31, 2025
c60d0b9
feat: add default resource requests and limits
Tronix117 Dec 31, 2025
1d10f83
docs: document security and resource defaults
Tronix117 Dec 31, 2025
9999950
feat: add ServiceAccount configuration
Tronix117 Dec 31, 2025
4a90192
feat: add PodDisruptionBudget support
Tronix117 Dec 31, 2025
a24596f
feat: add NetworkPolicy support
Tronix117 Dec 31, 2025
6697938
feat: add TopologySpreadConstraints support
Tronix117 Dec 31, 2025
c0802a4
feat: add ServiceMonitor support for Prometheus
Tronix117 Dec 31, 2025
44069af
feat: add HorizontalPodAutoscaler support
Tronix117 Dec 31, 2025
2117f23
feat: add startupProbe support
Tronix117 Dec 31, 2025
e5a9f36
fix: change ServiceAccount defaults for better security
Tronix117 Dec 31, 2025
3d278b5
feat: add seccompProfile RuntimeDefault by default
Tronix117 Dec 31, 2025
114ba95
feat: add enableServiceLinks configuration
Tronix117 Dec 31, 2025
4d841e3
feat: add ephemeral storage limits by default
Tronix117 Dec 31, 2025
bf0554f
feat: add runtimeClassName support
Tronix117 Dec 31, 2025
c9e3684
feat: add Pod Security Standards support
Tronix117 Dec 31, 2025
3006cf0
feat: add explicit host protection settings
Tronix117 Dec 31, 2025
fc8f606
docs: add image security best practices
Tronix117 Dec 31, 2025
effba6e
fix: remove deprecated requirements.yaml file
Tronix117 Dec 31, 2025
96bd23a
fix: disable chart version increment checking
Tronix117 Dec 31, 2025
1b90b50
feat: add automatic version bumping based on conventional commits
Tronix117 Dec 31, 2025
5855701
docs: update CONTRIBUTING.md for automatic version bumping
Tronix117 Dec 31, 2025
dc14c54
docs: update PR template for automatic version bumping
Tronix117 Dec 31, 2025
2347455
fix: optimize CI/CD to only test changed charts
Tronix117 Dec 31, 2025
1b70916
fix: update helm-unittest to latest version v1.0.3
Tronix117 Dec 31, 2025
055cb43
fix: improve helm-unittest plugin caching strategy
Tronix117 Dec 31, 2025
85f76e5
fix: upgrade Helm to v3.19.4 and remove plugin cache
Tronix117 Dec 31, 2025
5ab452b
fix: correct storage configuration in volumes
Tronix117 Dec 31, 2025
33ad3a2
ci: fix tests
Tronix117 Dec 31, 2025
95ead4d
fix: use nginx-unprivileged image for CI testing
Tronix117 Dec 31, 2025
16f3fdd
fix: use configurable port in ingress and update CI values
Tronix117 Jan 5, 2026
aa8e93b
fix: add /tmp emptyDir volume for nginx CI testing
Tronix117 Jan 5, 2026
487252a
fix: correct probe ports in full-values.yaml for nginx-unprivileged
Tronix117 Jan 5, 2026
9cfe9c9
fix: use preferred affinity instead of required for CI testing
Tronix117 Jan 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions .chglog/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
style: github
template: |
## {{ if .PreviousTag }}[{{ .Version }}]({{ .Info.RepositoryURL }}/compare/{{ .PreviousTag }}...{{ .Version }}){{ else }}{{ .Version }}{{ end }} - {{ .Info.Date.Format "2006-01-02" }}

{{ range .Commits -}}
{{- if or (contains .Commit.Header "feat") (contains .Commit.Header "fix") (contains .Commit.Header "docs") }}
{{- if or (contains .Commit.Header "refactor") (contains .Commit.Header "perf") (contains .Commit.Header "test") }}
{{- if or (contains .Commit.Header "build") (contains .Commit.Header "ci") (contains .Commit.Header "chore") }}
* {{ if .Scope }}**{{ .Scope }}:** {{ end }}{{ .Subject }}
{{ end -}}{{ end -}}{{ end -}}
{{ end }}

info:
title: CHANGELOG
repository_url: https://github.com/wikodit/charts
options:
commit_filters:
Type:
- feat
- fix
- docs
- refactor
- perf
- test
- build
- ci
- chore
header:
pattern: "^(\\w*)(?:\\(([\\w\\$\\.\\-\\*\\s]*)\\))?!?: (.*)$"
maps:
- Type: 1
- Scope: 2
- Subject: 3
notes:
keywords:
- BREAKING CHANGE
2 changes: 1 addition & 1 deletion .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@

## Checklist

- [ ] Chart version bumped in `Chart.yaml`
- [ ] Commit messages follow [Conventional Commits](https://www.conventionalcommits.org/) format
- [ ] `helm lint` passes
- [ ] `helm template` renders correctly
- [ ] Unit tests pass (if applicable)
Expand Down
73 changes: 49 additions & 24 deletions .github/workflows/lint-test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ jobs:
- name: Set up Helm
uses: azure/setup-helm@v4
with:
version: v3.16.3
version: v3.19.4

- name: Set up Python
uses: actions/setup-python@v5
Expand Down Expand Up @@ -68,34 +68,56 @@ jobs:
runs-on: ubuntu-latest
needs: lint
if: needs.lint.outputs.changed == 'true'
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Set up Helm
uses: azure/setup-helm@v4
with:
version: v3.16.3
version: v3.19.4

- name: Cache Helm plugins
uses: actions/cache@v4
with:
path: ~/.local/share/helm/plugins
key: helm-plugins-unittest-${{ runner.os }}
- name: Set up chart-testing
uses: helm/chart-testing-action@v2.7.0

- name: Install helm-unittest plugin
- name: Get changed charts
id: set-matrix
run: |
if ! helm plugin list | grep -q unittest; then
helm plugin install https://github.com/helm-unittest/helm-unittest.git
# Use main as target branch for push events
TARGET_BRANCH="main"
if [[ "${{ github.event_name }}" == "pull_request" ]]; then
TARGET_BRANCH="${{ github.base_ref }}"
fi

changed=$(ct list-changed --config ct.yaml --target-branch $TARGET_BRANCH 2>/dev/null || echo "")
if [[ -z "$changed" ]]; then
# Fallback: check git diff
changed=$(git diff --name-only origin/$TARGET_BRANCH HEAD -- charts/ 2>/dev/null | grep -oP 'charts/\K[^/]+' | sort -u || echo "")
fi

if [[ -n "$changed" ]]; then
CHARTS=$(echo "$changed" | jq -R -s -c 'split("\n") | map(select(. != ""))')
else
CHARTS='[]'
fi

echo "matrix={\"chart\":$CHARTS}" >> "$GITHUB_OUTPUT"

- name: Install helm-unittest plugin
run: |
helm plugin install https://github.com/helm-unittest/helm-unittest.git

- name: Run unit tests
run: |
failed=0
for chart in charts/*/; do
if [[ -d "${chart}tests" ]]; then
echo "Testing ${chart}"
if ! helm unittest "${chart}"; then
for chart in ${{ fromJson(needs.lint.outputs.charts) }}; do
if [[ -d "charts/${chart}/tests" ]]; then
echo "Testing charts/${chart}"
if ! helm unittest "charts/${chart}"; then
failed=1
fi
fi
Expand All @@ -113,7 +135,7 @@ jobs:
- name: Set up Helm
uses: azure/setup-helm@v4
with:
version: v3.16.3
version: v3.19.4

- name: Install kubeconform
run: |
Expand All @@ -123,18 +145,18 @@ jobs:
- name: Validate manifests
run: |
failed=0
for chart in charts/*/; do
chart_name=$(basename "$chart")
echo "Validating ${chart_name}"
for chart in ${{ fromJson(needs.lint.outputs.charts) }}; do
chart_path="charts/${chart}"
echo "Validating ${chart}"

# Use ci values if available, otherwise default
values_file=""
if [[ -f "${chart}ci/default-values.yaml" ]]; then
values_file="-f ${chart}ci/default-values.yaml"
if [[ -f "${chart_path}ci/default-values.yaml" ]]; then
values_file="-f ${chart_path}ci/default-values.yaml"
fi

helm dependency update "$chart" 2>/dev/null || true
if ! helm template "$chart" $values_file | kubeconform -strict -summary -output json; then
helm dependency update "$chart_path" 2>/dev/null || true
if ! helm template "$chart_path" $values_file | kubeconform -strict -summary -output json; then
failed=1
fi
echo "::endgroup::"
Expand All @@ -145,6 +167,9 @@ jobs:
runs-on: ubuntu-latest
needs: lint
if: needs.lint.outputs.changed == 'true'
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.lint.outputs.charts) }}
steps:
- name: Checkout
uses: actions/checkout@v4
Expand All @@ -153,7 +178,7 @@ jobs:
uses: aquasecurity/trivy-action@0.28.0
with:
scan-type: 'fs'
scan-ref: 'charts/'
scan-ref: 'charts/${{ matrix.chart }}'
scanners: 'misconfig'
format: 'table'
exit-code: '1'
Expand All @@ -173,7 +198,7 @@ jobs:
- name: Set up Helm
uses: azure/setup-helm@v4
with:
version: v3.16.3
version: v3.19.4

- name: Set up chart-testing
uses: helm/chart-testing-action@v2.7.0
Expand Down
Loading