JFrog Artifactory Edge

Get Started with the JFrog Platform

Content Type
Administration / Platform
ft:sourceType
Paligo

Subscription Information

This feature is supported with the Enterprise+ license.

Overview

JFrog Artifactory Edge (an "Edge node") is an edition of JFrog Artifactory whose available features have been customized to distribute software to a runtime such as a data center, a point-of-sale, or even a mobile device. Packages hosted in an Edge node are typically part of a Release Bundle, which is a secure and immutable collection of software packages that make up a release to be provisioned.Distribute Release Bundles (v1)

Note

The REST API for distributing Release Bundles v1 to Edge nodes can be found here. The REST API for distributing Release Bundles v2 to Edge nodes can be found here.Distribute Release Bundle v1 VersionDistribute Release Bundle Version v2

Tip

Generic artifacts can be uploaded to Edge nodes directly using the standard UI or REST API methods for deploying artifacts. All uploads to Edge nodes must be directed to the artifactory-edge-uploads generic repository.Deploying ArtifactsDeploy Artifact

Edge Node Features and Capabilities

An Artifactory Edge node is customized to only provide functionality needed for the distribution of packages specified in Release Bundles. The following table summarizes what an Edge node can and cannot do compared to a full Artifactory instance:

Artifactory

Edge Node

Uploading Files

Upload from a source Artifactory instance during a Distribution transaction

Direct upload of generic artifacts using the UI or REST API

To the artifactory-edge-uploads generic repository only

Downloading Files

Repositories

Local

Remote

Smart Remote Repository only

Virtual

Storage (all options supported by Artifactory)

Filestore Sharding

User Plugins

Replication

Builds

Xray Integration

High Availability

Projects

The Distribution Flow

The high-level distribution flow has two main flows:

  1. Creating a Release Bundle: You can create a Release Bundle using the Create Release Bundle Version REST API call on JFrog Distribution and specify a variety of parameters including the files comprising the Release Bundle, and different properties associated with it or directly in the UI.Create Release Bundle v1 VersionDistribute Release Bundles (v1)

  2. Distributing a Release BundleDistribute Release Bundles (v1)

    Distribution is responsible for triggering the replication process that happens from the source Artifactory to the Edge nodes. First, it replicates the Release Bundle info to each Edge Node, and then initiates the replication process in the source Artifactory.

Behind the Scenes

Distributing a Release BundleThe distribution process includes these steps:

  1. Start a distribution transaction: Query JFrog Mission Control for details on the distribution target nodes, and provide the target nodes (Artifactory Edge Nodes), with information about distributed files such as their checksum.

  2. End a distribution transaction: JFrog Distribution notifies the Edge node that the transaction is complete. In turn, the Edge node validates the integrity of the transferred Release Bundle and the Release Bundle as a unit through their checksum and hosts them in the correct place as specified in the Release Bundle.

Installing an Edge Node

The process of installing an Edge node is identical to installing any other Artifactory instance. For more information, see Installing Artifactory Edge.Installing Artifactory Edge

Circle of Trust

An Edge node can only receive Release Bundles from an Artifactory service if they are both within the same "circle oftrust". Once you have completed the installation of the Edge node, make sure to add it to the circle of trust for any Artifactory service from which it should receive Release Bundles. To learn how to establish a circle of trust, see Establish the Circle of Trust.Establish the Circle of Trust

Deploying Artifacts

The artifactory-edge-uploads repository is automatically created and cannot be removed. Deploying artifacts to this repository can be done using the UI or REST API.Deploying ArtifactsDeploy Artifact

Note

All repositories in an Artifactory Edge are read-only. The artifactory-edge-uploads repository is the only repository to which your Release Bundles are deployed.

artifactory_edge_uploads.png

Pulling Artifacts

From version 6.12, an Artifactory Edge node can be configured to pull artifacts using a Smart Remote Repository. Artifacts can be pulled from other Artifactory instances (ones with Enterprise+ or Edge licenses, just like any remote repository).Smart Remote Repositories

When pulling data from a smart remote repository, the Edge node will first attempt to pull the data from cache. If it does not exist, it will continue to try and fetch it from the remote repository on the target instance.

Support for remote repositories (that are not Smart Remote) is not available. For example, creating a remote repository pointing to Docker hub is not supported.

Note

Pull replication is not supported on Edge nodes.

Setting a GPG Key

To enable a secure distribution flow, an Edge node must be able to validate the contents of any Release Bundles that it receives. This is done by providing the Edge node with the GPG signing key of any Distribution service that will be uploading Release Bundles as a one-time action before any Distribution flows are invoked.

Updating GPG Keys

Note that if you change the GPG signing keys on any Distribution service that is uploading Release Bundles to an Edge node, the Edge node must be updated with the new public key.

To upload the GPG key of a Distribution service to an Edge node, use the Upload and Propagate GPG Signing Keys for Distribution REST API endpoint.Upload and Propagate GPG Signing Keys for Distribution

NGINX Configuration

As part of the distribution flow, Artifactory needs to interact with JFrog Distribution which relies on HTTP/1.1 protocol functionalities, such as chunked transfer encoding. To support these functionalities, you need to add the following settings to your NGINX configuration.Configure NGINX

Next step: Installing Artifactory EdgeInstalling Artifactory Edge