Repository navigation
chore(infrahub): upgrade the neo4j subchart to 2026.5.0 - #84
Merged
Merged
Conversation
Match the Neo4j server version Infrahub is tested against on release-1.11
(2026.05.0), following the upstream bump in infrahub ad08b81a7 which moved
the HA deployment and Terraform pins from 2025.10.1-4 to the same chart.
Rendered manifests are unchanged apart from the image tag and the chart's
own HELM_NEO4J_VERSION / HELM_CHART_VERSION env vars, verified against the
default values and all five infrahub-enterprise sizing presets. The
subchart reworked its resources helper so a requests-only block now leaves
limits unset natively, but the existing explicit `limits: {}` renders
identically, so values.yaml is left alone.
Neo4j 2026.05 is validated against the 6.2 Python driver, which ships with
Infrahub 1.11, while appVersion here stays at 1.10.6 (driver 6.0.3). This
should therefore land immediately before or after the 1.11 release rather
than shipping ahead of it.
infrahub-enterprise follows with its infrahub dependency pinned to 4.32.0.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The empty `limits` map existed only because the older neo4j subchart forced limits == requests whenever limits was nil, so an explicit empty map was the only way to render the Neo4j container uncapped (af1a7d9). The 2026.5.0 subchart reworked its resources helper to only auto-fill limits for the shorthand `resources.cpu`/`resources.memory` form, so a requests-only block now leaves limits unset on its own. The workaround is redundant. Rendered output is equivalent: `limits` drops out entirely rather than rendering as `{}`, which is the same "no cap" to Kubernetes. Verified across the default values and all five infrahub-enterprise sizing presets, plus both user-override paths -- a shorthand cpu/memory override still does not auto-fill limits, and an explicit limits override still passes through. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
fatih-acar
force-pushed
the
fac/prep-neo4j-upgrade-jop7m
branch
from
August 19, 2026 22:11
7c6a875 to
f81e573
Compare
fatih-acar
marked this pull request as ready for review
August 19, 2026 22:12
Infrahub 1.11.0 was released, so point the charts at it. This is the release that carries the Neo4j 6.2 Python driver, which is what Neo4j 2026.05 -- the server this branch upgrades the subchart to -- is validated against. The two changes belong in the same chart release. Follows the appVersion bump convention: appVersion on both charts plus the prefectTag in the infrahub values, which tracks the same version. The chart versions already move to 4.33.0 / 4.19.0 earlier in this branch, so no further version bump is needed. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Merge timing — resolved
This PR originally had to wait for the Infrahub 1.11 release, because Neo4j 2026.05 is validated against the Neo4j Python driver 6.2 and only 1.11 carries that driver.
Infrahub 1.11.0 has since shipped (
infrahub-v1.11.0, 2026-08-19), and this branch now bumpsappVersionto1.11.0alongside the Neo4j upgrade. The driver/server pairing is correct within this PR, so there is no longer an ordering constraint on the merge.Summary
Brings the bundled Neo4j up to the version Infrahub is actually tested against. The
neo4jsubchart moves from2025.10.1-4to2026.5.0, which deploys Neo4j 2026.05.0 — matchingrelease-1.11in theinfrahubrepo.This tracks the upstream bump in
opsmill/infrahub@ad08b81a7("chore: upgrade to Python 3.14 with Neo4j 6.2 driver and 2026.05 server"), which moved the HA deployment and Terraformhelm_releasepins to the same2026.5.0chart, so the Helm and Terraform deployment paths stay on one Neo4j version.Key changes
appVersionmoves to1.11.0on both charts, so they deploy the Infrahub release that carries the matching Neo4j 6.2 driver.infrahubchart4.32.3→4.33.0;infrahub-enterprise4.18.3→4.19.0with itsinfrahubdependency repinned to4.33.0.Operator impact
Neo4j 2026.05 upgrades the store format on first startup, and that is not reversible. Operators should back up the database before upgrading the chart — both changelog fragments say so.
The chart default for
neo4j.volumes.dataisemptyDir, so only deployments that opted into a persistent volume are affected.Test plan
helm lintpasses oncharts/infrahubandcharts/infrahub-enterprise.2025.10.1-4) vs new (2026.5.0) across the default values and all fiveinfrahub-enterprisesizing presets (small, medium, large, medium-data, large-data). The only differences areimage: neo4j:2025.10.1→neo4j:2026.05.0and the subchart's ownHELM_NEO4J_VERSION/HELM_CHART_VERSIONenv vars. Nothing else in the StatefulSet moves.neo4j:2026.05.0andneo4j:2026.05.0-enterpriseboth exist upstream as multi-arch (amd64 + arm64) images.4.33.0/4.19.0.stableatd9ff224. Re-verified after the rebase: both charts lint, all six render cases still produceneo4j:2026.05.0with no resource limits, and stable's medium-preset heap change (24G → 16G, fix: medium sizing preset reserves 28 GB of 32 GB for Neo4j, leaving no headroom #87) is intact.helm-lint-infrahub,helm-lint-enterprise,e2e-infrahub,e2e-infrahub-enterprise.Commits
Three commits, reviewable independently:
chore(infrahub): upgrade the neo4j subchart to 2026.5.0— the version bump itself.refactor(infrahub): drop the neo4j resources limits workaround— removes the now-redundantlimits: {}invalues.yaml. It existed only because the older subchart forcedlimits == requestswheneverlimitswas nil, so an explicit empty map was the only way to render Neo4j uncapped (af1a7d9). The2026.5.0helper only auto-fills limits for the shorthandresources.cpu/resources.memoryform, so a requests-only block leaves them unset on its own.Equivalent rendered output —
limitsdrops out entirely instead of rendering as{}, which is the same "no cap" to Kubernetes. Verified across the default values and all five sizing presets, plus both user-override paths: a shorthandcpu/memoryoverride still does not auto-fill limits, and an explicitlimitsoverride still passes through untouched.chore: bump appVersion to 1.11.0— points both charts at the newly released Infrahub 1.11.0, following the existing bump convention:appVersionon both charts plusprefect-server.global.prefect.image.prefectTagin the infrahub values, which tracks the same version. Rendered manifests now pullregistry.opsmill.io/opsmill/infrahub:1.11.0(confirmed present in the registry) alongsideneo4j:2026.05.0.🤖 Generated with Claude Code