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:

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

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+



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.

  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 JFrog Platform Installation

Installing Other JFrog Products with an Existing Artifactory Installation

In cases where you have already installed Artifactory on your system and wish to add some or all of the JFrog products, you can use the JFrog Platform Installer to perform an advanced installation.

  1. Create a custom-values.yaml, which you will then pass during installation.
  2. In this file, disable the Artifactory installation and enable other products to install them on your system in the following way.

    artifactory:
      enabled: false
    xray:
      enabled: true
    insight:
      enabled: true
  3. Run the installation.

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

For more information, see Installing the JFrog Platform Using Helm Chart.

Using an External PostgreSQL Database in the JFrog Platform Installation

You can configure the JFrog Platform installation to use an external PostgreSQL database instead of the bundled PostgreSQL database.

Create values-external-postgresql.yaml file with the following YAML configuration.

global:
  database:
    initDBCreation: false
postgresql:
  enabled: false
artifactory:
  database:
    type: postgresql
    driver: org.postgresql.Driver
    url: 'jdbc:postgresql://${POSTGRESQL_HOST}:${POSTGRESQL_PORT}/${ARTIFACTORY_DATABASE}'
    user: ${ARTIFACTORY_DATABASE_USER}
    password: ${ARTIFACTORY_DATABASE_PASSWORD}
xray:
  database:
    url: 'postgres://${POSTGRESQL_HOST}:${POSTGRESQL_PORT}/${XRAY_DATABASE}?sslmode=disable'
    user: ${XRAY_DATABASE_USER}
    password: ${XRAY_DATABASE_PASSWORD}
distribution:
  database:
    url: 'jdbc:postgresql://${POSTGRESQL_HOST}:${POSTGRESQL_PORT}/${DISTRIBUTION_DATABASE}?sslmode=disable'
    user: ${DISTRIBUTION_DATABASE_USER}
    password: ${DISTRIBUTION_DATABASE_PASSWORD}
insight:
  database:
    url: 'jdbc:postgresql://${POSTGRESQL_HOST}:${POSTGRESQL_PORT}/${INSIGHT_DATABASE}'
    user: ${INSIGHT_DATABASE_USER}
    password: ${INSIGHT_DATABASE_PASSWORD}
pipelines:
  global:
    postgresql:
      user: ${PIPELINES_DATABASE_USER}
      password: ${PIPELINES_DATABASE_PASSWORD}
      host: ${POSTGRESQL_HOST}
      port: 5432
      database: ${PIPELINES_DATABASE}
      ssl: false / true

Set postgresql.enabled=false in the YAML file and provide the external database details before you run the helm install or upgrade. You must create the database and users before you run Helm install or upgrade. If you use Mission Control, you must set up databases, users, and schemas. For more information, refer to Setting up Your Postgre SQL Databases, Users, and Schemas.

Refer the external database section for more information on using an external database. 

You can also provide the database configuration using database.secrets in the YAML file. For more information, refer to Kubernetes Secrets.