Skip to content

Helm chart README: add prominent warning about demo image limitations and required values nesting for backstage.backstage.* #323

@sodiq-code

Description

@sodiq-code

README Improvement Proposal: Prevent Silent First-Time Failures

Summary

The current README does not prominently warn new users about two non-obvious issues that frequently cause silent first-time Helm install failures.

These two issues appear to account for a significant share of community reports like: “Why is my Backstage pod crash-looping right after install?”


Issue 1: Demo image is not production-ready and fails without required environment/config setup

The quickstart path references the demo image (backstage/backstage).
That image requires additional runtime configuration (for example database and app config).
Without that configuration, the pod can start and then immediately exit with a non-descriptive failure.

Minimal reproducible example

helm repo add backstage https://backstage.github.io/charts
helm repo update
helm install my-backstage backstage/backstage

Result: pod enters CrashLoopBackOff.
kubectl logs shows application startup failing due to missing/invalid database configuration.

Suggested README improvement

Add a prominent warning near the top of the README:

⚠️ The demo image requires additional configuration and is not intended for production out of the box.
You must supply a valid app-config and database credentials.
See the Backstage getting started docs before proceeding: https://backstage.io/docs/getting-started/


Issue 2: Required values must be nested under backstage.backstage., not backstage.

The chart uses a double-nested values structure.
Backstage application config must go under backstage.backstage..
If values are placed under backstage.
instead, Helm still installs successfully, but runtime config is silently ignored.

Minimal reproducible example

Wrong (values silently ignored):

backstage:
  appConfig:
    app:
      baseUrl: https://my-backstage.example.com

Correct:

backstage:
  backstage:
    appConfig:
      app:
        baseUrl: https://my-backstage.example.com

Both install without Helm errors. Only the second structure applies config to the Backstage app.

Suggested README improvement

Add a clear note in the Configuration section:

ℹ️ Values nesting: Backstage application config belongs under backstage.backstage.* (double nested).
Values placed at backstage.* apply to the wrapper chart and may not configure the Backstage application itself.


Context

I documented both issues while writing a hands-on Backstage deployment guide:
https://dev.to/sodiqjimoh/nine-ways-backstage-breaks-before-your-developer-portal-works-4eo1

I am happy to submit a README PR if maintainers confirm this approach.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions