Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
6b65308
remove placeholder values that break testing the chart
johnjeffers May 20, 2026
47f8721
gate the chart at k8s v1.23.0 or later to remove old API version support
johnjeffers May 20, 2026
5d2ea63
autoscaling check, fix metrics path
johnjeffers May 20, 2026
e4aff4f
add test to the release workflow, update the readme
johnjeffers May 20, 2026
47ec1db
quote values in deployment.yaml, fix typo in minikube example
johnjeffers May 20, 2026
f711fe8
remove unnecessary servicemonitor labels
johnjeffers May 20, 2026
fdc8bbf
schema updates
johnjeffers May 20, 2026
4128ed1
more chart hardening, add minUnavailable to PDB
johnjeffers May 20, 2026
5b275f1
add icon to chart to silence the linter, more chart hardening
johnjeffers May 20, 2026
aa55019
add existingsecret for search creds, breaking change for database creds
johnjeffers May 20, 2026
63807be
helpers for backward compat, shared labels
johnjeffers May 20, 2026
2f3da8b
kickstart guardrails, fix indents
johnjeffers May 20, 2026
2591b36
schema updates for env
johnjeffers May 20, 2026
2602744
set env vars take precedence over chart values
johnjeffers May 20, 2026
e627454
db credentials shape
johnjeffers May 20, 2026
012bef8
move logic to helpers
johnjeffers May 20, 2026
4fd0487
split the templates
johnjeffers May 21, 2026
6e8993a
wip
johnjeffers May 21, 2026
95df720
update secret names
johnjeffers May 21, 2026
52d9b14
update readme, roll back some changes for simplicity
johnjeffers May 22, 2026
88353b7
readme update
johnjeffers May 22, 2026
fbf3938
readme update, remove unused values
johnjeffers May 22, 2026
9a12b3d
add tests
johnjeffers May 22, 2026
df5bff6
generate README from template
johnjeffers May 22, 2026
2d231f8
do not allow env var orderrides for chart values
johnjeffers May 22, 2026
6b39e10
handle building DATABASE_URL
johnjeffers May 22, 2026
911e45e
validate search basicAuth
johnjeffers May 23, 2026
a3f069e
readme update, parse env properly
johnjeffers May 23, 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
30 changes: 30 additions & 0 deletions .github/workflows/chart-docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: Generate Chart README

on:
pull_request:
push:
branches:
- main
workflow_dispatch:

jobs:
chart-docs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6

- name: Set up Go
uses: actions/setup-go@v6
with:
go-version: stable

- name: Install helm-docs
run: go install github.com/norwoodj/helm-docs/cmd/helm-docs@v1.14.2

- name: Generate chart docs
run: |
"$(go env GOPATH)/bin/helm-docs" -x --chart-search-root . --chart-to-generate chart

- name: Verify chart docs are current
run: git diff --exit-code chart/README.md
44 changes: 44 additions & 0 deletions .github/workflows/chart-test-matrix.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
name: Chart Test Matrix

on:
pull_request:
push:
branches:
- main
workflow_dispatch:

jobs:
chart-smoke-test:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6

- name: Set up Helm
uses: azure/setup-helm@v4

- name: Smoke-test chart
run: sh scripts/validate-chart.sh chart

chart-unit-test-matrix:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
suite:
- database
- search
- init
- negative
steps:
- name: Checkout
uses: actions/checkout@v6

- name: Set up Helm
uses: azure/setup-helm@v4

- name: Install helm-unittest
run: helm plugin install https://github.com/helm-unittest/helm-unittest.git --verify=false

- name: Run chart matrix suite
run: helm unittest --strict -f "tests/${{ matrix.suite }}_test.yaml" chart
32 changes: 22 additions & 10 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
name: Release

on:
push:
tags:
Expand All @@ -17,25 +19,35 @@ jobs:
token: "${{ secrets.PAT_ACTIONS_WORKFLOWS }}"
fetch-depth: 0

- name: update placeholder versions
working-directory: ./chart
run: |
apk add -q curl jq envsubst
- name: add prerequisites
run: apk add -q curl jq envsubst

- name: prepare release chart
run: |
export APP_VERSION=$(curl -s https://account.fusionauth.io/api/version | jq -r '.versions[]' | sort -V | tail -n 1)
export CHART_VERSION="${GITHUB_REF##*/}"
export RELEASE_CHART=/tmp/fusionauth-chart

echo "Chart: $CHART_VERSION"
echo "App: $APP_VERSION"

rm -rf "$RELEASE_CHART"
cp -R chart "$RELEASE_CHART"

for file in Chart.yaml values.yaml README.md examples/minikube/values.yaml
do
tmpfile=$(mktemp)
cat "$file" > "$tmpfile"
envsubst < "$tmpfile" > "$file"
sed -i \
-e "s/0\.0\.0-chart-dev/${CHART_VERSION}/g" \
-e "s/0\.0\.0-app-dev/${APP_VERSION}/g" \
"$RELEASE_CHART/$file"
done

echo "APP_VERSION=$APP_VERSION" >> $GITHUB_ENV
echo "CHART_VERSION=$CHART_VERSION" >> $GITHUB_ENV
echo "RELEASE_CHART=$RELEASE_CHART" >> $GITHUB_ENV

- name: Smoke-test release chart
run: sh scripts/validate-chart.sh "$RELEASE_CHART"

- name: configure git
run: |
Expand All @@ -59,7 +71,7 @@ jobs:
CR_PAGES_BRANCH: main
CR_RELEASE_NAME_TEMPLATE: "{{ .Version }}"
run: |
cr package chart
cr package "$RELEASE_CHART"
cr upload --release-notes-file /tmp/release-notes.md
cr index --push
ARCHIVE=$(ls ${CR_PACKAGE_PATH})
Expand All @@ -82,8 +94,8 @@ jobs:
helm repo add fusionauth ${CHARTS_REPO}
helm install fusionauth fusionauth/fusionauth \
--set database.host=host \
--set database.user=user \
--set database.password=password \
--set database.dbUser.username=user \
--set database.dbUser.password=password \
--set search.host=host

- name: Verify the chart version
Expand Down
41 changes: 41 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,49 @@ Beginning with 1.57.1, the Helm chart version is the same as the FusionAuth app

We'll typically release any changes to the chart alongside new FusionAuth app versions. Changes will be called out in the release notes. If changes must be made to the chart outside of the FusionAuth app release cycle, we'll indicate that with a SemVer pre-release tag. For example, `1.57.1-1` would indicate the 1st revision of the chart after the `1.57.1` release, before the next FusionAuth app release.

## Testing Changes

Install the Helm unit test plugin:

```sh
helm plugin install https://github.com/helm-unittest/helm-unittest.git --verify=false
```

Run the chart test matrix locally:

```sh
helm unittest --strict chart
sh scripts/validate-chart.sh chart
```

Changes to the chart should have corresponding tests, and the tests must pass prior to release.

## Updating Chart Documentation

The chart README is generated from README.md.gotmpl and `helm-docs`. Do not manually update `chart/README.md`. Update the template and regenerate it.

Install `helm-docs` with homebrew:

```sh
brew install norwoodj/tap/helm-docs
```

Install `helm-docs` with `go install`:

```sh
go install github.com/norwoodj/helm-docs/cmd/helm-docs@v1.14.2
```

Regenerate the chart README after changing `chart/values.yaml`, `chart/Chart.yaml`, or `chart/README.md.gotmpl`:

```sh
helm-docs -x --chart-search-root . --chart-to-generate chart
```

## Releasing the Chart

Make sure you've run tests and generated docs before releasing. The release could fail if these are not done.

Release the chart by pushing a new tag.

```
Expand Down
1 change: 1 addition & 0 deletions chart/.helmignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,4 @@
.idea/
*.tmproj
.vscode/
tests/
6 changes: 4 additions & 2 deletions chart/Chart.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
apiVersion: v2
name: fusionauth
description: Helm chart for FusionAuth
icon: https://fusionauth.io/img/favicon.png
type: application
version: ${CHART_VERSION}
appVersion: ${APP_VERSION}
kubeVersion: ">=1.23.0-0"
version: 0.0.0-chart-dev
appVersion: 0.0.0-app-dev
Loading
Loading