Skip to main content

Air-Gapped Installation

This section covers how to install the SKE Backstage integration in air-gapped or network-restricted environments.

Backstage Plugins

In air-gapped or network-restricted environments, your Backstage may not be able to reach the public npm registry to install SKE plugins directly. You must first publish the plugins to an internal registry accessible from your Backstage instance, then follow the standard installation and configuration steps.

Spotify Portal for Backstage

If you are using Spotify Portal for Backstage, you will need to publish the plugins to your internal Portal Cloud instance.

Contact Spotify to request a token for publishing plugins to your cloud instance. Once you have a token, download the frontend plugin by running:

npm pack @syntasso/plugin-ske-frontend

This downloads the latest version of the plugin as a .tgz file in the current directory.

Repeat for the backend plugin:

npm pack @syntasso/plugin-ske-backend

Set the token you received from Spotify in your environment:

export PORTAL_PUBLISHING_TOKEN=<token>

Configure npm to authenticate against your Portal registry:

npm config set //<company>.spotifyportal.com/api/plugin-installer/registry/:_authToken=$PORTAL_PUBLISHING_TOKEN

Publish each plugin to your Portal instance, replacing <version> with the version printed by npm pack:

npm publish syntasso-plugin-ske-frontend-<version>.tgz --registry https://<company>.spotifyportal.com/api/plugin-installer/registry/npm
npm publish syntasso-plugin-ske-backend-<version>.tgz --registry https://<company>.spotifyportal.com/api/plugin-installer/registry/npm

Passing --registry directly ensures the tarball is published to your Portal instance regardless of any registry configuration inside the plugin's own package.json.

SKE Backstage Controller

In air-gapped environments, you must mirror the Backstage Controller image and deployment manifests into your own infrastructure before installing. Once mirrored, follow the standard Installing the Backstage Controller steps.

Mirroring the Backstage Controller Image

You may want to manage the Backstage Controller image within your own environment either due to air-gapped requirements or other security measures.

To do this, you will need to set up image mirroring and configure the Backstage Controller distribution to pull images from your own registry.

You must ensure that the Backstage Controller image is mirrored in your own image registry and tagged according to the version.

ghcr.io/syntasso/backstage-controller

As is the case for the SKE Operator and SKE Platform images, the Backstage Controller will use the registry configured via imageRegistry.host in the Helm Chart when pulling images. If you have changed the name of the Backstage Controller image in your internal registry, ensure that imageRegistry.backstageControllerImage.name is updated to reflect this.

Mirroring the Backstage Controller Release Manifests

Like the SKE distribution, you will need to ensure that the Backstage Controller deployment manifests are available in the SKE Release Storage — the S3-compatible bucket or Git repository that is accessible from the Platform Cluster.

You need to ensure that the manifests are downloaded to the SKE Release Storage and that the directory structure matches the Syntasso Enterprise Releases page. For instance:

ske
v0.43.0
ske-distribution.yaml
release-metadata.json

ske-backstage-controller
v0.2.2
ske-backstage-controller-distribution.yaml