Install Artifactory with Helm Charts

Install JFrog Artifactory on Kubernetes or OpenShift self-managed clusters using Helm charts. Covers single-node and high-availability (HA) deployments with step-by-step instructions for configuration, verification, and troubleshooting.

Overview

To install JFrog Artifactory with Helm charts, add the jfrog Helm repository, generate master and join keys, and run helm upgrade --install artifactory jfrog/artifactory. This guide covers Kubernetes and OpenShift self-managed clusters for Artifactory 7.x, including single-node and high-availability (HA) deployments.

DetailValue
Artifactory version7.x (all releases)
Helm version3.17 or later
Default UI port8082
Default admin credentialsadmin / password — change on first login
HA minimum replicas2 (recommended: 3)
Helm chartjfrog/artifactory from https://charts.jfrog.io

Prerequisites for Installing Artifactory with Helm

Before you begin, verify the following:

Install JFrog Artifactory using Helm

Follow the steps for your environment: Kubernetes or OpenShift. OpenShift requires one additional step — disabling securityContext in values.yaml — before installing the chart.

  1. Add the JFrog Helm Charts repository

    helm repo add jfrog https://charts.jfrog.io
    helm repo update
  2. Create unique master and join keys

    Artifactory requires unique master and join keys. Default keys in values.yaml are for demonstration only — never use them in production. Changing the master key after installation is very difficult.

    Option A: Environment variables

    export MASTER_KEY=$(openssl rand -hex 32)
    echo ${MASTER_KEY}
    export JOIN_KEY=$(openssl rand -hex 32)
    echo ${JOIN_KEY}

    Option B: Kubernetes secrets (recommended for production)

    # Master key
    export MASTER_KEY=$(openssl rand -hex 32)
    echo ${MASTER_KEY}
    kubectl create secret generic my-masterkey-secret -n artifactory --from-literal=master-key=${MASTER_KEY}
    
    # Join key
    export JOIN_KEY=$(openssl rand -hex 32)
    echo ${JOIN_KEY}
    kubectl create secret generic my-joinkey-secret -n artifactory --from-literal=join-key=${JOIN_KEY}

    Always pass the same keys on all future helm install and helm upgrade calls using --set artifactory.masterKey=${MASTER_KEY} or --set artifactory.masterKeySecretName=my-masterkey-secret. For more information, see Manage Keys.

  3. Install the Artifactory Helm chart

    📘

    Note

    When using a customized values.yaml file, attach a -f flag to each upgrade command.

    Install based on your deployment type:

    Option A: Single-node

    helm upgrade --install artifactory \
      --set artifactory.masterKey=${MASTER_KEY} \
      --set artifactory.joinKey=${JOIN_KEY} \
      --namespace artifactory --create-namespace \
      jfrog/artifactory

    Option B: High Availability (HA) — recommended for new deployments

    helm upgrade --install artifactory \
      --set artifactory.replicaCount=3 \
      --set artifactory.masterKey=${MASTER_KEY} \
      --set artifactory.joinKey=${JOIN_KEY} \
      --namespace artifactory --create-namespace \
      jfrog/artifactory

    Minimum replica count for HA is 2; recommended is 3.

  4. Change the internal PostgreSQL password (optional)

    If the Helm chart deployed an internal PostgreSQL database (default behavior), change PostgreSQL's auto-generated password for security. For more information, see Auto-generated Passwords (Internal PostgreSQL) and Set up Database.

  5. Set up the filestore

    The filestore is where Artifactory physically stores binaries.

    • Single-node: A local filesystem is the default. Externalizing to a dedicated volume is recommended for easier management.
    • HA: A shared filestore is mandatory (NFS, S3, Azure Blob Storage, Google Cloud Storage, or another supported solution). All nodes must have unified network access to this single shared filestore.

    For Helm-specific storage modifications, see Advanced Storage Options.

  6. Customize Artifactory configuration

    For Helm deployments, configure Artifactory through the chart's values.yaml file. Do not edit the system.yaml file directly on individual nodes. For system.yaml parameter reference, see System YAML Configuration. To override defaults via values.yaml, see Overriding the Default System YAML File.

  7. Connect to Artifactory

    It may take a few minutes for the LoadBalancer IP to become available.

    # Watch until LoadBalancer IP is available:
    kubectl get svc --namespace <your-namespace> -w <release-name>-artifactory-nginx
    
    # Once available, get the URL:
    export SERVICE_IP=$(kubectl get svc --namespace <your-namespace> <release-name>-artifactory-nginx -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
    echo http://$SERVICE_IP/

    Example output (release name art77, namespace art):

    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 art -w art77-artifactory-nginx'
       export SERVICE_IP=$(kubectl get svc --namespace art art77-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
  8. Install the HA license (HA only)

    For HA setups, install the Artifactory HA license using the REST API, Artifactory UI, or a Kubernetes Secret. For more information, see .

  9. Monitor Artifactory

    To access logs and monitor Artifactory pods:

    # Find pod names:
    kubectl --namespace <your-namespace> get pods
    
    # Stream logs for a pod:
    kubectl --namespace <your-namespace> logs -f <pod-name>
  10. Access the Artifactory UI

    Open http://<SERVER_HOSTNAME>:8082/ in your browser. For HA, access through your load balancer pointing to http://<ARTIFACTORY_NODE_IP>:8082/ on each node.

  11. Complete initial setup

    On first access, the onboarding wizard guides you through:

    • Change Default Admin Password: Default credentials are admin / password. Change immediately.
    • Configure Base URL: Set the Base URL for your deployment. See Configure a Custom Base URL.
    • Apply Licenses: Apply your Artifactory Pro or Enterprise license through the Onboarding Wizard.

Verify the Artifactory Installation

After installation, confirm JFrog Artifactory is running correctly.

  1. Check pod status:

    kubectl get pods --namespace artifactory

    Expected: All pods show Running status. For HA, all replica pods are Running.

  2. Check the health endpoint:

    curl -f http://<LB-IP>/artifactory/api/system/ping

    Expected: OK

  3. Access the UI:

    Open http://<LB-IP>:8082/ui/ in your browser. Expected: The JFrog Artifactory login page loads.

Troubleshooting the Helm Installation

The following table covers common issues encountered during Artifactory Helm installation and their solutions.

SymptomCauseFix
Pod stuck in Pending stateInsufficient cluster resources (CPU, RAM, or disk)Increase node count or adjust resource limits in values.yaml
LoadBalancer IP not assignedCloud provider quota reached or misconfigured networkingCheck cloud provider load balancer quota; verify cluster network settings
Cannot connect to databaseInternal PostgreSQL pod not readyWait for the postgresql pod to reach Running; check logs with kubectl logs <postgresql-pod>
Master key error on upgradeMaster key not passed to helm upgradeAlways pass --set artifactory.masterKey=${MASTER_KEY} on every helm upgrade call
securityContext errors on OpenShiftOpenShift strict security policies not accommodatedDisable securityContext in values.yaml per the OpenShift tab, step 3

Frequently Asked Questions

❓ What Helm version is required to install JFrog Artifactory?

A: Helm 3.17 or later is required. Helm 2 is not supported. Verify your version by running helm version — the output should show v3.17.x or later. See Helm requirements for the full compatibility list.

❓ What port does Artifactory listen on after a Helm installation?

A: Artifactory listens on port 8082 by default. The Nginx ingress pod handles incoming requests and routes them to the Artifactory service. Access the UI at http://<LB-IP>:8082/ui/ after the LoadBalancer IP is assigned.

❓ Can I install Artifactory on OpenShift using the standard Artifactory Helm chart?

A: Yes. The OpenShift installation uses the same jfrog/artifactory Helm chart. The only difference is that OpenShift requires securityContext settings to be disabled in values.yaml for Artifactory, PostgreSQL, RTFS, and Nginx. See the OpenShift tab, step 3 for the full values.yaml configuration.

❓ How do I upgrade Artifactory after installing with Helm?

A: Run helm upgrade artifactory jfrog/artifactory --set artifactory.masterKey=${MASTER_KEY} --set artifactory.joinKey=${JOIN_KEY} -n artifactory. Always pass the original master and join keys on every helm upgrade call — omitting them causes Helm to generate new keys, which breaks the existing installation.

❓ What are the default admin credentials for a new Helm installation?

A: The default credentials are username admin and password password. Change the password immediately through the onboarding wizard on first login. The wizard requires a password change before you can proceed to the main UI.

Next Steps