Skip to main content

Connecting to an External Registry

This topic describes how to add credentials for an external private registry using the Replicated Vendor Portal or Replicated CLI. Adding an external registry allows you to grant proxy access to private images using the Replicated proxy registry. For more information, see About the Replicated Proxy Registry.

For information about adding a registry with the Vendor API v3, see Create an external registry with the specified parameters in the Vendor API v3 documentation.

Supported Registries

Replicated recommends that application vendors use one the following external private registries:

  • Amazon Elastic Container Registry (ECR)
  • DockerHub
  • GitHub Container Registry
  • Google Artifact Registry
  • Google Container Registry (Deprecated)
  • Sonatype Nexus
  • Quay.io

These registries have been tested for compatibility with KOTS.

You can also configure access to most other external registries if the registry conforms to the Open Container Initiative (OCI) standard.

Add Credentials for an External Registry

All applications in your team have access to the external registry that you add. This means that you can use the images in the external registry across multiple apps in the same team.

Using the Vendor Portal

To add an external registry using the Vendor Portal:

  1. Log in to the Vendor Portal and go to the Images page.

  2. Click Add External Registry.

    /images/add-external-registry.png

    View a larger version of this image

  3. In the Provider drop-down, select your registry provider.

  4. Complete the fields in the dialog, depending on the provider that you chose:

    note

    Replicated stores your credentials encrypted and securely. Your credentials and the encryption key do not leave Replicated servers.

    • Amazon ECR

      FieldInstructions
      HostnameEnter the host name for the registry, such as 123456689.dkr.ecr.us-east-1.amazonaws.com
      Access Key IDEnter the Access Key ID for a Service Account User that has pull access to the registry. See Setting up the Service Account User.
      Secret Access KeyEnter the Secret Access Key for the Service Account User.
    • DockerHub

      FieldInstructions
      HostnameEnter the host name for the registry, such as index.docker.io.
      Auth TypeSelect the authentication type for a DockerHub account that has pull access to the registry.
      UsernameEnter the host name for the account.
      Password or TokenEnter the password or token for the account, depending on the authentication type you selected.
    • GitHub Container Registry

      FieldInstructions
      HostnameEnter the host name for the registry.
      UsernameEnter the username for an account that has pull access to the registry.
      GitHub TokenEnter the token for the account.
    • Google Artifact Registry

      FieldInstructions
      HostnameEnter the host name for the registry, such as
      us-east1-docker.pkg.dev
      Auth TypeSelect the authentication type for a Google Cloud Platform account that has pull access to the registry.
      Service Account JSON Key or Token

      Enter the JSON Key from Google Cloud Platform assigned with the Artifact Registry Reader role, or token for the account, depending on the authentication type you selected.

      For more information about creating a Service Account, see Access Control with IAM in the Google Cloud documentation.

    • Google Container Registry

      important

      Google Container Registry is deprecated. For more information, see Container Registry deprecation in the Google documentation.

      FieldInstructions
      HostnameEnter the host name for the registry, such as gcr.io.
      Service Account JSON Key

      Enter the JSON Key for a Service Account in Google Cloud Platform that is assigned the Storage Object Viewer role.

      For more information about creating a Service Account, see Access Control with IAM in the Google Cloud documentation.

    • Quay.io

      FieldInstructions
      HostnameEnter the host name for the registry, such as quay.io.
      Username and PasswordEnter the username and password for an account that has pull access to the registry.
    • Sonatype Nexus

      FieldInstructions
      HostnameEnter the host name for the registry, such as nexus.example.net.
      Username and PasswordEnter the username and password for an account that has pull access to the registry.
    • Other

      FieldInstructions
      HostnameEnter the host name for the registry, such as example.registry.com.
      Username and PasswordEnter the username and password for an account that has pull access to the registry.
  5. For Image name & tag, enter the image name and image tag and click Test to confirm that the Vendor Portal can access the image. For example, api:v1.0.1 or my-app/api:v1.01.

  6. Click Link registry.

Using the CLI

To configure access to private images in an external registry using the Replicated CLI:

  1. Install and configure the Replicated CLI. See Installing the Replicated CLI.

  2. Run the registry add command for your external private registry. For more information about the registry add command, see registry add in Replicated CLI.

    For example, to add a DockerHub registry:

    replicated registry add dockerhub --username USERNAME \
    --password PASSWORD

    Where:

    • USERNAME is the username for DockerHub credentials with access to the registry.
    • PASSWORD is the password for DockerHub credentials with access to the registry.
    note

    To prevent the password from being saved in your shell history, Replicated recommends that you use the --password-stdin flag and entering the password when prompted.

Test External Registry Credentials

Replicated recommends that you test external registry credentials to ensure that the saved credentials on Replicated servers can pull the specified image.

To validate that the configured registry can pull specific images:

replicated registry test HOSTNAME \
--image IMAGE_NAME

Where:

  • HOSTNAME is the name of the host, such as index.docker.io.
  • IMAGE_NAME is the name of the target image in the registry.

For example:

replicated registry test index.docker.io --image my-company/my-image:v1.2.3

Tutorial: Using ECR for Private Images