Skip to main content
Container Image Registry for ACR

Container Image Registry for ACR

View container image details from ACR in Backstage.

Azure Container Registry plugin for Backstage

The Azure Container Registry (ACR) plugin displays information about your container images available in the Azure Container Registry.

For administrators

Installing and configuring the ACR plugin

  1. Run the following command to install the ACR plugin:

    yarn workspace app add @janus-idp/backstage-plugin-acr
  2. Set the proxy to the desired ACR server in the app-config.yaml file as follows:

    # app-config.yaml
    proxy:
    endpoints:
    '/acr/api':
    target: 'https://mycontainerregistry.azurecr.io/acr/v1/'
    credentials: require
    changeOrigin: true
    headers:
    # If you use Bearer Token for authorization, please replace the 'Basic' with 'Bearer' in the following line.
    Authorization: 'Basic ${ACR_AUTH_TOKEN}'
    # Change to "false" in case of using self hosted artifactory instance with a self-signed certificate
    secure: true

    [!NOTE] The value inside each route is either a simple URL string, or an object on the format accepted by http-proxy-middleware. Additionally, it has an optional credentials key which can have the following values:

    • require: Callers must provide Backstage user or service credentials with each request. The credentials are not forwarded to the proxy target. This is the default.
    • forward: Callers must provide Backstage user or service credentials with each request, and those credentials are forwarded to the proxy target.
    • dangerously-allow-unauthenticated: No Backstage credentials are required to access this proxy target. The target can still apply its own credentials checks, but the proxy will not help block non-Backstage-blessed callers. If you also add allowedHeaders: ['Authorization'] to an endpoint configuration, then the Backstage token (if provided) WILL be forwarded.

    Note that if you have backend.auth.dangerouslyDisableDefaultAuthPolicy set to true, the credentials value does not apply; the proxy will behave as if all endpoints were set to dangerously-allow-unauthenticated.

  3. Set the authorization using one of the following options:

    • Basic authorization:

      • Navigate to the ACR portal and go to the Access Keys tab.
      • Retrieve the username and password of the Admin user and use the Basic Auth Header Generator tool or run echo printf '<username>:<password>' | base64 in a terminal to convert the credentials into a basic token.
      • Set the generated token as ACR_AUTH_TOKEN in environment variables.
    • OAuth2: - Generate bearer access token using the process described in Authenticate with an Azure Container Registry.

      • One method is to generate a bearer token using your basic authorization token, i.e.

                curl --location 'https://<yourregistry>.azurecr.io/oauth2/token?scope=repository%3A*%3A*&service=<yourregistry>.azurecr.io' \
        --header 'Authorization: Basic <basic_token>'
      • Set the generated token as ACR_AUTH_TOKEN in environment variables. Make sure to replace the Basic in the app-config.yaml with Bearer

  4. Enable an additional tab on the entity view page using the packages/app/src/components/catalog/EntityPage.tsx file as follows:

    packages/app/src/components/catalog/EntityPage.tsx
    import { AcrPage, isAcrAvailable } from '@janus-idp/backstage-plugin-acr';


    const serviceEntityPage = (
    <EntityLayout>
    // ...
    <EntityLayout.Route
    if={e => Boolean(isAcrAvailable(e))}
    path="/acr"
    title="ACR"
    >
    <AcrPage />
    </EntityLayout.Route>
    </EntityLayout>
    );
  5. Annotate your entity using the following annotations:

    metadata:
    annotations:
    'azure-container-registry/repository-name': `<REPOSITORY-NAME>',

For users

Using the ACR plugin in Backstage

ACR is a front-end plugin that enables you to view information about the container images from your Azure Container Registry in Backstage.

Prerequisites

Procedure

  1. Open your Backstage application and select a component from the Catalog page.

  2. Go to the ACR tab.

    acr-tab

    The ACR tab in the Backstage UI contains a list of container images and related information, such as TAG, CREATED, LAST MODIFIED, and MANIFEST.