Scaffolder: dynamic drop-downs and randomized values. Plus, a new way to authenticate k8s

You can now define drop-down fields with options coming from an external API in your software templates, as well as use randomized valued based on a timestamp in your Scaffolder values. We also added the ability to set up authentication via a service token in the k8s plugin.

Dynamic drop-downs in the Scaffolder

Let’s say your software templates include a step in which the user has to select a database. Instead of having them figure out the DB reference and write it down, you can now give them a drop-down with valid values. We’ve added the ability for you to define drop-down fields in your software templates that show options fetched from an external API. Get started with drop-downs fed from external APIs. Screenshot: drop down with API options

Use randomized values in your Scaffolder template

If you’re writing a software template that generates, for example, a PR in a repo, you want to be sure the name of the branch you generate is unique. You can now use timestamp-based values to randomize data in the Scaffolder using ${{ '' | now }}. Check the following template for reference on how to use it:


apiVersion: scaffolder.backstage.io/v1beta3
kind: Template
metadata:
  name: test-now-filter
  description: test the new now filter
spec:
  type: service
  owner: user:default/kissmikijr
  steps:
    - id: fetch
      name: Fetch Skeleton + Template
      action: fetch:template
      input:
        url: template-url
        values:
          component_id: ${{ '' | now }}
          description: ${{ '' | now }}

Authenticate k8s via a service token

Previously, we only supported AWS EKS and Google Cloud’s GKE for configuring the k8s plugin. However, if you’re self-deploying k8s, the usual mechanism for authenticating is a service account token. Roadie now supports this mechanism in the plugin’s admin panel.

Screenshot: K8s config admin panel