Skip to content

Default installation of Neptune 2.5#

The simplified installation procedure deploys Neptune with default values. This works well for lightweight setups, trial, or testing.

The procedure bootstraps a K3s cluster and installs Neptune there, along with the required services. These include MySQL, Elasticsearch1, and Kafka instances, as well as PVC for storage.

Advanced installation

If you want to customize the installation, the custom installation guide shows how to configure the Neptune Helm chart values. This way, you can set up Neptune to meet more advanced needs (such as external storage, managed database, scaling, and more).

Start from Prerequisites →

Prerequisites#

On the machine or VM where Neptune is deployed, you need the following:

  • 4 vCPUs, 16 GB RAM, and 400 GB of storage.
  • Internet access. Only required for the installation itself, to fetch the installation artifacts.
  • Administrator ("root" user) access.

Additionally, you need to obtain the following from Neptune support:

  • Your Docker credentials (DRC), to access and download the Neptune installation artifacts.
  • Your Neptune license, to access the self-hosted instance once installation is complete.

Preparation#

This section walks you through setting up a K3s cluster for Neptune.

Note

If you're upgrading an existing Neptune installation, contact Neptune support.

On the deployment machine, as administrator ("root" user):

  1. Point the configuration to the correct cluster:

    export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
    
  2. Download K3s:

    wget "https://raw.githubusercontent.com/k3s-io/k3s/v1.21.9+k3s1/install.sh"
    
  3. Download and install Helm:

    curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
    

    If needed, refer to the Helm documentation.

    Note for proxy users

    If you're using an additional proxy, like AWS LoadBalancer or Cloudflare, you need to configure Traefik to respect X-Forwarded-* headers.

    Before installing K3s, create a file /var/lib/rancher/k3s/server/manifests/traefik-config.yaml with the following content:

    apiVersion: helm.cattle.io/v1
    kind: HelmChartConfig
    metadata:
    name: traefik
    namespace: kube-system
    spec:
    valuesContent: |-
        additionalArguments:
        - "--entryPoints.web.proxyProtocol.insecure"
        - "--entryPoints.web.forwardedHeaders.insecure"
    
  4. Deploy K3s:

    chmod a+x install.sh
    
    bash ./install.sh
    

Expected output

...
[INFO] systemd: Starting k3s

To verify the cluster deployment, run the following:

kubectl get pods -A

and ensure that the following pods are running (names may vary slightly):

NAMESPACE     NAME
kube-system   coredns-77ccd57875-jh5xt
kube-system   local-path-provisioner-957fdf8bc-q9z2q
kube-system   helm-install-traefik-crd-kv9hm
kube-system   helm-install-traefik-b28l2
kube-system   metrics-server-648b5df564-6xctl

If kubectl is not available, you may need to add the /usr/local/bin/ directory to the $PATH variable:

export PATH=$PATH:/usr/local/bin/

Installation#

  1. Add the Neptune Helm repository:

    helm repo add neptune https://helm.neptune.ai
    

    Expected output

    "neptune" has been added to your repositories
    
  2. Download the current chart list:

    helm repo update
    

    Expected output

    Hang tight while we grab the latest from your chart repositories...
    ...Successfully got an update from the "neptune" chart repository
    Update Complete. ⎈Happy Helming!⎈
    
  3. Install the neptune-onprem parent chart, which takes care of installing dependencies:

    helm upgrade -i \
      --create-namespace -n neptune neptune-onprem neptune/neptune-onprem \
      --version 2.5.0 \
      --set dockerRegistryCredentials="<your_DRC_token>" # (1)!
    
    1. Your DRC token. For example, dockerRegistryCredentials="ewogICJ0e......dC5jb20iCn0K"

      You can also assign it to a variable and pass it as follows:

      export DOCKER_CREDENTIALS=ewogICJ0eXBlIjogInNlc...WNlYWNjb3VudC5jb20iCn0K
      
      helm upgrade -i \
      --create-namespace -n neptune neptune-onprem neptune/neptune-onprem \
      --version 2.5.0 \
      --set dockerRegistryCredentials="$DOCKER_CREDENTIALS"
      

    Expected output

    Release "neptune-onprem" does not exist. Installing it now.
    NAME: neptune-onprem
    LAST DEPLOYED: Wed Dec 13 08:06:21 2023
    NAMESPACE: neptune
    STATUS: deployed
    ...
    You can use an Ingress Controller to expose Neptune in your environment
    

Version 2.5.0 of Neptune has now been installed in the neptune-onprem namespace.

To view the status of Neptune's ingress:

kubectl get ingress -n neptune

You can use an ingress controller to expose Neptune in your environment (see Exposing Neptune).

Your Neptune instance is available at the external IP address of the host machine or VM, on standard HTTP & HTTPS ports. To obtain the address on the machine itself:

curl -k https://localhost

Your login credentials are in the neptune.yaml configuration file, in the neptune.init section.

Note

Change these credentials from the defaults as soon as possible.

Edit the values in the configuration file itself, then use the new values to log in.

neptune.yaml
neptune:
    init:
        workspaceName: onprem-team
        administrator:
            username: administrator
            password: change_me

Next steps#

You can now invite collaborators to your Neptune workspace. For instructions, see Adding users.


  1. If you're using AWS OpenSearch, contact us