Skip to content

Reintroduce bundled database to the chart#365

Draft
nikolasmatt wants to merge 5 commits intoagentregistry-dev:mainfrom
nikolasmatt:reintroduce-managed-database
Draft

Reintroduce bundled database to the chart#365
nikolasmatt wants to merge 5 commits intoagentregistry-dev:mainfrom
nikolasmatt:reintroduce-managed-database

Conversation

@nikolasmatt
Copy link
Collaborator

Resolves #358

Description

As noted in #358 we are reversing the decision to not provide a bundled PostgreSQL database as part of the chart.
This change is meant to align with the kagent chart as well https://github.com/kagent-dev/kagent/tree/main/helm/kagent

Change Type

/kind feature
/kind install

Changelog

Reintroduces a bundled PostgreSQL databased installation option through the helm chart.
Removes resource presets from helm chart.

Additional Notes

This setup is intended for development and testing. For production, use a managed PostgreSQL service or a production-grade operator.

#### Install Agent Registry
For production, disable the bundled database and point to a managed PostgreSQL service:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this could be more strongly called out. Maybe with one of these?

name: {{ $fullname }}
labels:
{{- include "agentregistry.postgresql.labels" . | nindent 4 }}
{{- $annotations := include "agentregistry.annotations" (dict "annotations" dict "context" $) }}
Copy link

@iplay88keys iplay88keys Mar 18, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since this is duplicated down below multiple times, can we just move it to the top of the file and make it shared?

imagePullSecrets: []
# -- Name of an existing Secret containing all credentials (POSTGRES_PASSWORD and AGENT_REGISTRY_JWT_PRIVATE_KEY). Overrides config.existingSecret and database.existingSecret when set.
# -- Name of an existing Secret containing all credentials (POSTGRES_PASSWORD and AGENT_REGISTRY_JWT_PRIVATE_KEY). Overrides config.existingSecret and database.external.existingSecret when set. When database.bundled.enabled=true, this secret must contain POSTGRES_PASSWORD — the chart will not create its own secret and the bundled PostgreSQL pod will reference it directly.
existingSecret: ""
Copy link

@iplay88keys iplay88keys Mar 18, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that it would be better to just drop global.existingSecret and if someone wants to put both POSTGRES_PASSWORD and AGENT_REGISTRY_JWT_PRIVATE_KEY in the same secret, they can just point db.external.existingSecret and config.existingSecret at that same secret since the keys are different.

# -- External database user
username: "agentregistry"
# -- External database password (ignored when existingSecret is set)
password: ""

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Have you seen any issues with this if the password contains something like: @, :, /, ?, #, % which could break url parsing when loaded?

# -- Bundled PostgreSQL (dev/test). Enabled by default; set bundled.enabled=false to bring your own.
bundled:
# -- Deploy a PostgreSQL instance alongside Agent Registry
enabled: true

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we document why we need to have this? Can we key off of the external database configuration?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Per a discussion with @nikolasmatt, we are going to use bundled if database.postgres.url and database.postgres.host are both unset instead of having a database.postgres.bundled.enabled field.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Bundle postgres inside the agentregistry chart by default

2 participants