Use this file to discover all available pages before exploring further.
This guide installs Bud-Stack from the published OCI Helm chart and points it
at managed services you already operate (e.g. Azure Database for PostgreSQL,
Cosmos DB for MongoDB, Azure Cache for Redis, Azure Blob via an S3-compatible
gateway, an external Kafka and ClickHouse). It lists only the configuration
that is mandatory for a new setup — defaults are fine for everything else.
If you want an all-in-one cluster with bundled Postgres/Mongo/Redis/MinIO,
follow the Installation Guide instead.
Chart Ingresses are pinned to ingressClassName: traefik.
TLS strategy
ingress.https: disabled (plain HTTP), internal (Traefik/cert-manager in-cluster certs), or external (terminated upstream by a LB/WAF).
OIDC identity provider
Any OIDC-compliant IdP works (Keycloak, Auth0, Okta, Azure AD, Google, etc.). Authorization is owned by budapp’s Postgres-backed PDP — the IdP only needs to issue ID tokens. The sibling chart at infra/helm/keycloak/ is a convenient default if you don’t already run one.
Registry credentials
Robot account for registry.bud.studio (request from sinan@bud.studio)
All managed services are configured under externalServices in values.yaml
and the matching credential blocks live in secrets.yaml. Provision the
resources below first, then fill in the values.
A single Redis instance, multiplexed by logical DB index.
Configure in values.yaml
Configure in secrets.yaml
externalServices.valkey.host
externalServices.valkey.password
externalServices.valkey.port
externalServices.valkey.databases.* (numeric index per consumer)
novu.externalRedis.host
The novu.externalRedis block references the same instance; only the host is
restated — the password is shared from externalServices.valkey.password
via the <release>-novu-externalredis Secret.
Any OIDC-compliant IdP is supported — budapp validates ID tokens via
OIDC discovery and stores all authorization state in its own Postgres PDP.
If you don’t already operate one, the sibling chart at infra/helm/keycloak/
gives you a working Keycloak in one install.You must pre-create the OAuth clients that the redirect-flow uses
(budadmin-web, budcustomer-web, budplayground-web, plus the
mcpgateway client) in your IdP and copy the client secrets into
secrets.yaml (see Application secrets).
Configure in values.yaml
Configure in secrets.yaml
externalServices.keycloak.url (issuer base URL, no trailing slash)
The externalServices.keycloak.* keys are named after the historical Keycloak
default but accept any OIDC issuer URL — rename in your head as
externalServices.oidc.*. The legacy keycloak.auth.adminUser / adminPassword
fields are only consulted when you run the bundled Keycloak chart.
Redirect-flow clients must exist in the realm before the budapp pod
boots, otherwise the login flow returns invalid_client.
registries.registry.bud.studio credentials are required even for
airgapped clusters that already mirrored the images — the chart still
creates the imagePullSecret referenced by every Deployment.