Cloud customer?
Start for Free >
Upgrade in MyJFrog >
What's New in Cloud >

Search





Overview

The JFrog Platform installation using Helm Chart enables you to install the JFrog Platform–with all products–in one installation package. Using this installer, you can choose to either install all of the JFrog products, or to cherry pick the products you wish to deploy. 

When would you use the JFrog Platform installation versus installing JFrog products individually using the installations below?

The most common use case would be if you want to install several product (or all of them) at the same time; using this installation saves you the need to repeat steps, repeating configuration of join keys and more, making the installation process easy and straightforward.

To learn more about installing specific products, see the following:

Upgrade from the Beta Version of JFrog Platform Helm Chart is Not Supported

JFrog Platform Installer 10.x is the GA version of the JFrog Platform Installer helm charts. Upgrade is not supported from previous versions, which were beta.



Before You Begin

System Requirements

Before installing the JFrog Platform, see System Requirements for information on supported platforms, supported browsers, and other requirements.

System Architecture

To learn about the JFrog Platform Deployment, see System Architecture.

Prerequisites

Before installing JFrog Platform, verify that the following are in place.

  • Kubernetes 1.14+
  • Artifactory license (see note below)
  • Kubectl installed and set up to use the cluster

  • Helm v3 installed

Subscription Levels

If you install only Artifactory and Xray, you need either an Enterprise or Enterprise+ trial license (get one from here) or a Pro trial license (get one from here). If you install additional JFrog products, you need an Enterprise+ license.

JFrog Subscription Levels

SELF-HOSTED 
ENTERPRISE+
Page Contents



Installation Steps

Installing the JFrog Platform using the jfrog-platform Helm Chart will install the products in the following setup by default:

  • JFrog Artifactory
  • JFrog Xray/JFrog Insight/JFrog Distribution/JFrog Pipelines: Single Node
  1. Add the ChartCenter Helm repository to your Helm client.

    helm repo add jfrog https://charts.jfrog.io 
    
  2. Update the repository.

    helm repo update
  3. Install the chart with the release name jfrog-platform.

    helm upgrade --install jfrog-platform --namespace jfrog-platform jfrog/jfrog-platform
  4. Optional: Customize the Helm Chart installation to install one or more of the JFrog products.

    The JFrog Platform Helm Chart provides the flexibility of enabling one or more of the JFrog additional products during the installation, which means that you can choose to install all of the products (Distribution, Insight, Pipelines, and Xray), or only some of them.

    For example:

    1. To enable Xray and Insight with Artifactory, you can create a custom-values.yaml with the following content and then pass it during installation. 

      xray:
        enabled: true
      insight:
        enabled: true
    2. Run the installation.

      helm upgrade --install jfrog-platform --namespace jfrog-platform jfrog/jfrog-platform -f custom-values.yaml
    3. To configure each JFrog product separately, you will need to do the following.

      1. Copy the main values.yaml file (create a custom-values.yaml).

      2. Edit that product's section in the custom-values.yaml.

      3. Make the changes and then run the upgrade command.

        helm upgrade --install jfrog-platform --namespace jfrog-platform jfrog/jfrog-platform -f custom-values.yaml

    If you wish to enable Artifactory and disable all the other products, you can create a custom-values.yaml with the following content and then pass it during installation.

    xray:
      enabled: false
    insight:
      enabled: false
    distribution
      enabled: false
    pipelines:
      enabled: false
    rabbitmq:
      enabled: false
    redis:
      enabled: false

    For more specific product configuration information, see System YAML Configuration File.

    Once the installation completes, you will be able to see the products that have been installed.

    NOTES:
    Congratulations. You have just deployed JFrog Platform Chart with the following products:
    - artifactory
    - xray
    - insight
    - distribution
    - pipelines
  5. Connect to Artifactory.

    It may take a few minutes for Artifactory's public IP to become available. Follow the instructions that are output by the install command above to get the Artifactory IP to access it. Below you will find a sample instruction of what to look for to pick the URL to reach Artifactory (in the example below, jfrog-platform is the release name and jfrog-platform is the namespace).

    Congratulations. You have just deployed JFrog Artifactory.
    1. Get the Artifactory URL by running these commands:
       NOTE: It may take a few minutes for the LoadBalancer IP to be available.
             You can watch the status of the service by running 'kubectl get svc --namespace jfrog-platform -w jfrog-platform-artifactory-nginx'
       export SERVICE_IP=$(kubectl get svc --namespace jfrog-platform jfrog-platform-artifactory-nginx -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
       echo http://$SERVICE_IP/
    2. Open Artifactory in your browser
       Default credential for Artifactory:
       user: admin
       password: password
  6. Install the JFrog Platform license using one of three methods: REST API, Artifactory UI, or a Kubernetes Secret. For more information, click the link below.

     Adding Licenses

    To activate Artifactory HA, you must install an appropriate license as part of the installation. There are three ways to manage the license: via Artifactory UI, REST API, or a Kubernetes Secret.

    Specifying multiple licenses

    Whether in the Artifactory UI, using the REST API or in the artifactory.cluster.license file, make sure that the licenses are separated by a newline.

    The easiest and recommended way is by using Artifactory UI. Using the Kubernetes Secret or REST API is for advanced users and is better suited for automation.

    You should use only one of these methods. Switching between them while a cluster is running might disable your Artifactory HA cluster.


    Option A: Using REST API

    You can add licenses via REST API. Note that the REST API uses "\n" for the newlines in the licenses (this is currently recommended method).

    Option B: Using the Artifactory UI

    Once the primary cluster is running, open Artifactory UI and insert the license(s) in the UI. See HA installation and setup for more details.

    Enter all of the licenses at once, with each license separated by a newline. If you add the licenses one at a time, you may get redirected to a node without a license and the UI will not load for that node.

    Option C: Using a Kubernetes Secret

    Important

    This method is relevant for initial deployment only. Once Artifactory is deployed, you should not keep passing these parameters, since the license is already persisted into Artifactory's storage (and they will be ignored). Updating the license should be done via Artifactory UI or REST API.


    You can deploy the Artifactory license(s) as a
    Kubernetes Secret
    You will need to prepare a text file with the license(s) written in it. If adding multiple licenses, they are added in the same file. Remember to add two new lines between each license block.

    1. Create the Kubernetes secret (assuming the local license file is 'art.lic').

      kubectl create secret generic artifactory-cluster-license --from-file=./art.lic
      
    2. Create a license-values.yaml.

      artifactory:
        license:
          secret: artifactory-cluster-license
          dataKey: art.lic
    3. Install with the license-values.yaml.
      Run the following command for JFrog Platform.

      helm upgrade --install jfrog-platform --namespace jfrog-platform center/jfrog/jfrog-platform -f license-values.yaml

      Run the following command for Artifactory.

      helm upgrade --install artifactory --set artifactory.license.secret=artifactory-cluster-license,artifactory.license.dataKey=artifactory.lic --namespace artifactory jfrog/artifactory
    Create the Kubernetes Secret as Part of the Helm Release
    1. Create a license-values.yaml.

      artifactory:
        license:
          licenseKey: |-
            <LICENSE_KEY1>
      
      
            <LICENSE_KEY2>
      
      
            <LICENSE_KEY3>
    2. Install with the license-values.yaml.

      helm upgrade --install jfrog-platform --namespace jfrog-platform center/jfrog/jfrog-platform -f license-values.yaml

    This method is relevant for initial deployment only. Once Artifactory is deployed, you should not keep passing these parameters, since the license is already persisted into Artifactory's storage (and they will be ignored). Updating the license should be done via Artifactory UI or REST API.

    If you want to keep managing the Artifactory license using the same method, you can use the copyOnEveryStartup example shown in the values.yaml file.

  7. To access the logs, find the name of the pod using this command.

    kubectl --namespace <your namespace> get pods
  8. To get the specific container logs, run the following command.

    kubectl --namespace <your namespace> logs -f <name of the pod> -c <name of the container>
  9. Customize the product configuration (optional) including database, Java Opts, and filestore. 


Product Configuration

After installing and before running Artifactory, you may set the following configurations.

System YAML Configuration File

You can configure all your system settings using the system.yaml file located in the $JFROG_HOME/artifactory/var/etc folder. For more information, see System ConfigurationIf you don't have a System YAML file in your folder, copy the template available in the folder and name it system.yaml.

Unlike other installations, Helm Chart configurations are made to the values.yaml and are then applied to the system.yaml.

Follow these steps to apply the configuration changes.

  1. Make the changes to values.yaml. 
  2. Run the command.

    helm upgrade --install <jfrog product> --namespace <jfrog product> -f values.yaml

Database

The JFrog Platform Helm Chart comes with a bundled PostgreSQL Database out-of-the-box. If you're planning to use it in production, it is highly recommended to first configure any alternate supported databases, and then deploy the JFrog Platform.

Customize Java Opts (Optional)

You can modify your JVM Parameters as needed by setting JAVA_OPTIONS in $JFROG_HOME/artifactory/var/etc/system.yaml. The property to pass extra Java opts is artifactory.extraJavaOpts. It is highly recommended to set your Java memory parameters as follows:

The larger your repository or number of concurrent users, the larger you need to make the -Xms and -Xmx values accordingly. If you can reserve at least 512MB for Artifactory, the recommended minimal values are:

-server -Xms512m -Xmx2g -Xss256k -XX:+UseG1GC

For more recommendations about your hardware configuration (especially the -Xmx parameter), see System Requirements.

Additional Settings

Additional settings include: customizing ports, joinKey (join.key), masterKey (master.key).

Configuring the Filestore

By default, Artifactory is configured to use the local file system as its filestore. Artifactory supports a variety of additional filestore configurations to meet a variety of needs for binary storage providers, storage size and redundancy.


Advanced Users

The JFrog Platform installation also includes options for advanced users. For more information, see Helm Charts for Advanced Users.

  • No labels
Copyright © 2021 JFrog Ltd.