Xray Single Node Helm Installation

Complete guide for installing Xray Single Node using Helm charts with step-by-step instructions and configuration options.

Before you proceed with the installation, review the system requirements.


Follow these steps to install the product:

  1. Add the charts.jfrog.io to your Helm client.

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

    helm repo update
  3. Installation requires a join key.

    You can pass the join key along with the Helm install/upgrade command or pass it in a values.yaml file.

    The following sample shows how to provide join key in the values.yaml file.

    xray:
      joinKey: <join key value>

    Alternatively, you can manually create a secret containing the join key and then pass it to the template during install/upgrade. The key must be named join-key.

    kubectl create secret generic joinkey-secret --from-literal=join-key=<YOUR_PREVIOUSLY_RETRIEVED_JOIN_KEY>

    The following example shows the values.yaml file with the join key secret.

    xray:
      joinKeySecretName: joinkey-secret
    📘

    Note

    In either case, make sure to pass the same join key on all future calls to helm install and helm upgrade. This means always passing --set xray.joinKey=<YOUR_PREVIOUSLY_RETRIEVED_JOIN_KEY>. In the second, this means always passing --set xray.joinKeySecretName=joinkey-secret and ensuring that the contents of the secret remain unchanged.

  4. You need to enter the JFrog URL.

    You can either pass the JFrog URL along with the Helm install/upgrade command or pass it along with the values.yaml file.

    The following example shows the values.yaml file with the JFrog URL.

    xray:
      jfrogUrl: <JFrog URL>

    There might be a case where the fully qualified domain name URL of JFrog is not accessible to the Xray pods or K8 cluster; in that case, you can pass the k8 service name of Nginx (https://<Nginx-service-name> or http://<Nginx-service-name>) or k8 service name of Artifactory (http://<Artifactory-service-name>8082) as a JFrog URL and in case Artifactory and Xray are in different namespaces, the service's fully qualified domain name of k8 services like http://<artifactory-service-name>.<service-namespace>.svc.cluster.local:8082 or http://<Nginx-service-name>.<service-namespace>.svc.cluster.local as a JFrog URL.

  5. Create a values.yaml file with all the required configuration if you want to proceed with an installation that holds all the configurations in a values.yaml file.

    You can also use separate configuration files for each configuration and pass them as separate yaml files.

    The following sample shows an example values.yaml file with join key and JFrog URL.

    xray:
      jfrogUrl: http://artifactory.rt:8082
      joinKey: EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE

    The following sample shows an example values.yaml file with join key as a secret and JFrog URL.

    xray:
      jfrogUrl: http://artifactory.rt:8082
      joinKeySecretName: joinkey-secret
  6. Run the Helm install command to proceed with the installation.

    The following command shows how you can pass the required values through a values.yaml file.

    helm upgrade --install xray --namespace xray -f values.yaml

    The following command shows how you can pass the required values along with the command.

    helm upgrade --install xray --set xray.joinKey=<YOUR_PREVIOUSLY_RETRIEVED_JOIN_KEY> \
                 --set xray.jfrogUrl=<YOUR_PREVIOUSLY_RETRIEVED_BASE_URL> --namespace xray jfrog/xray

    The following command shows how you can pass join key and master key as a secret along with the command.

    helm upgrade --install xray --set xray.joinKeySecretName=joinkey-secret \
                 --set xray.jfrogUrl=<YOUR_PREVIOUSLY_RETRIEVED_BASE_URL> --namespace xray jfrog/xray
  7. To access the logs, find the name of the pod using the following command.

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

    kubectl --namespace <your namespace> logs -f <name of the pod>
  9. Customize the product configuration (optional).

    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 xray --namespace xray -f values.yaml
  10. Access Xray from your browser at: http://<jfrogUrl>/ui/:port.

    Go to the Xray Security & Compliance tab in the Administration module in the UI.

  11. Check the status of your deployed Helm release.

    helm status xray
    📘

    Note

    Xray Helm Chart installation uses "/" as the RabbitMQ vhost. If you install Xray with the JFrog Platform charts, the RabbitMQ vhost is named "xray".

For advanced installation options, see Helm Charts Installers for Advanced Users.