charts icon indicating copy to clipboard operation
charts copied to clipboard

Why the deployment using this helm chart is not in the documentation?

Open andreyolv opened this issue 1 year ago • 5 comments

What is the recommended way to deploy to Kubernetes? on the page https://backstage.io/docs/deployment/k8s/ or using this helm chart?

Is the documentation out of date or is this helm chart out of date?

Questions so trivial that they are not explained anywhere.

andreyolv avatar Jun 04 '24 16:06 andreyolv

Hi, I wanted to try this helm chart and was asking myself the same question. I was also wondering how can I have a quick example running in kind with minimal values but I didn't find the documentation and just using helm install don't work out of the box.

Arcahub avatar Jun 05 '24 09:06 Arcahub

@andreyolv it's mostly up to you! The chart is definitely up to date, so you are free to use it in case you prefer using helm. More information in the subchart: https://github.com/backstage/charts/tree/main/charts/backstage

The important thing is that you provide your own Docker image containing your own Backstage, customized with the plugins that are needed for your org.

vinzscam avatar Jul 02 '24 18:07 vinzscam

Hi,

We're doing a PoC and trying to get this up and running for evaluation on Kubernetes. We followed the documentation mentioned in this thread: https://backstage.io/docs/deployment/k8s. The steps were clear until we got stuck on creating a Backstage deployment. Instead of creating a deployment file as instructed in the doc, we saw a Helm chart and installed it directly into the Kubernetes cluster under the backstage namespace.

Here's the error we received:

Loading config from MergedConfigSource{FileConfigSource{path="/app/app-config.yaml"}, EnvConfigSource{count=1}}
{"level":"info","message":"Found 1 new secrets in config that will be redacted","service":"backstage"}
{"level":"info","message":"Listening on :7007","service":"rootHttpRouter"}
{"level":"info","message":"Plugin initialization started: 'app', 'proxy', 'scaffolder', 'techdocs', 'auth', 'catalog', 'permission', 'search'","service":"backstage","type":"initialization"}
{"level":"warn","message":"Postgres search engine is not supported, skipping registration of search-backend-module-pg","plugin":"search","service":"backstage"}
{"level":"warn","message":"Permission backend started with permissions disabled. Enable permissions by setting permission.enabled=true.","plugin":"permission","service":"backstage"}
{"level":"info","message":"Configuring \"database\" as KeyStore provider","plugin":"auth","service":"backstage"}
{"level":"info","message":"Creating Local publisher for TechDocs","plugin":"techdocs","service":"backstage"}
{"level":"info","message":"Starting scaffolder with the following actions enabled fetch:plain, fetch:plain:file, fetch:template, debug:log, debug:wait, catalog:register, catalog:fetch, catalog:write, fs:delete, fs:rename","plugin":"scaffolder","service":"backstage"}
{"level":"info","message":"Performing database migration","plugin":"catalog","service":"backstage"}
{"level":"info","message":"Added DefaultCatalogCollatorFactory collator factory for type software-catalog","plugin":"search","service":"backstage"}
{"level":"info","message":"Added DefaultTechDocsCollatorFactory collator factory for type techdocs","plugin":"search","service":"backstage"}
{"level":"info","message":"Serving static app content from /app/packages/app/dist","plugin":"app","service":"backstage"}
{"level":"info","message":"Configuring auth provider: guest","plugin":"auth","service":"backstage"}
/app/node_modules/@backstage/backend-app-api/dist/index.cjs.js:1680
            throw new errors.ForwardedError(
                  ^

ForwardedError: Plugin 'auth' startup failed; caused by Error: Failed to initialize guest auth provider, The guest provider cannot be used outside of a development environment
    at /app/node_modules/@backstage/backend-app-api/dist/index.cjs.js:1680:19
    at async /app/node_modules/@backstage/backend-app-api/dist/index.cjs.js:1679:11
    ... 3 lines matching cause stack trace ...
    at async BackstageBackend.start (/app/node_modules/@backstage/backend-app-api/dist/index.cjs.js:1762:5) {
  cause: Error: Failed to initialize guest auth provider, The guest provider cannot be used outside of a development environment
      at bindProviderRouters (/app/node_modules/@backstage/plugin-auth-backend/dist/index.cjs.js:1544:17)
      at createRouter (/app/node_modules/@backstage/plugin-auth-backend/dist/index.cjs.js:2267:3)
      at async Object.init [as func] (/app/node_modules/@backstage/plugin-auth-backend/dist/index.cjs.js:2335:24)
      at async /app/node_modules/@backstage/backend-app-api/dist/index.cjs.js:1679:11
      at async Promise.all (index 4)
      at async #doStart (/app/node_modules/@backstage/backend-app-api/dist/index.cjs.js:1633:5)
      at async BackendInitializer.start (/app/node_modules/@backstage/backend-app-api/dist/index.cjs.js:1562:5)
      at async BackstageBackend.start (/app/node_modules/@backstage/backend-app-api/dist/index.cjs.js:1762:5)

Our questions are:

  • What are the minimum configurations required to successfully deploy Backstage on Kubernetes using Helm chart?
  • Could you provide a sample configuration file that we can use as a reference?

Thanks.

sysintelligent avatar Aug 14 '24 21:08 sysintelligent

So I had the same issue while trying to do a POC and after some trail and error this config helped me get the helm chart working

  backstage:
    extraEnvVars: 
      - name: "NODE_ENV"
        value: development
    appConfig:
      app:
        title: My Backstage App
        baseUrl: http://127.0.0.1
      backend:
        baseUrl: http://127.0.0.1
        listen:
          port: 7007
        cors:
          origin: http://127.0.0.1
      auth:
        providers:
          guest: {}
      techdocs:
        builder: 'local' # Alternatives - 'external'
      generator:
        runIn: 'local' # Alternatives - 'local'
      publisher:
        type: 'local' # Alternatives - 'googleGcs' or 'awsS3'. Read documentation for using alternatives.
    resources:
      limits:
        memory: 1Gi
        cpu: 1000m
      requests:
        memory: 512Mi
        cpu: 150m

The helm chart documentation should really be updated as this is not straightforward

RohitThomas-PI avatar Aug 16 '24 10:08 RohitThomas-PI

Awesome! I'll give it a try. Thanks, @RohitThomas-PI for the info.

sysintelligent avatar Aug 16 '24 18:08 sysintelligent

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

github-actions[bot] avatar Oct 16 '24 06:10 github-actions[bot]