Skip to main content

Deployment

Architecture

Create or use an existing Kubernetes cluster to deploy the remote data loader on. It needs access to a cache bucket (S3, GCS, Azure Blob Storage, etc.) and access to your data backend endpoints.

Setup

To deploy your remote data loader, create an account with a supported provider (AWS, Azure, or GCP) or choose to self-host Kubernetes with an S3-compatible object store like MinIO.

Provision your cache bucket and a Kubernetes cluster before installing the Remote data loader. There are no region restrictions if your cloud provider supports these resources.

Foxglove provides a set of Terraform examples to help with these initial provisioning steps in a supported cloud provider.

Create cache bucket

The Remote data loader requires a bucket for storing a cache of recently-used visualization data. Configure a bucket retention policy to limit storage of these files by age. The optimal retention period varies by use-case, but 7 days is a good starting point.

Configure cloud credentials

Create a service account with read and write access to the cache bucket. The Kubernetes workload will use this service account.

See Configure cloud credentials for details on how to provide this credential to the deployment. This section also covers configuration of S3-compatible object storage.

Prepare a values file

Create a values.yaml file to configure the installation. Include a storageProvider (aws, azure, google_cloud, or s3_compatible) and the name of your cache bucket:

globals:
manifestEndpoint: <your manifest endpoint>
cache:
storageProvider: google_cloud
bucketName: foxglove-cache

Install

Helm will install the Remote data loader deployment to your current Kubernetes context.

helm repo add foxglove https://helm-charts.foxglove.dev
helm repo update
helm upgrade --install foxglove-remote-data-loader foxglove/remote-data-loader \
--values ./values.yaml \
--namespace foxglove \
--create-namespace

View info about the deployment:

helm list -n foxglove

Ingress for data streaming

The deployment installs an Ingress, exposing the remote data loader as an HTTP endpoint to download available data.

To reach the ingress from outside the cluster, assign a DNS name and HTTPS endpoint. Ensure that the HTTP endpoint is reachable from your organization's network or any network needing access to your data. This does not necessarily need to be exposed to the public internet; for example, if all clients will download data from within a VPN.

note

How to assign a DNS name and HTTPS endpoint to the ingress is specific to your organization and cloud environment.

You can configure the ingress using your values file. Below are the default values.

ingress:
enabled: true
className:
annotations: {}

To completely disable the built-in Ingress, set ingress.enabled to false. You will need to provide your own Ingress resource for the deployment to function.

You also need to set up an ingress controller in the cluster. Install the recommended controller for your managed Kubernetes provider, or choose a third-party implementation. The Kubernetes project maintains a list of options here.

Use the Remote data loader

You can visualize data from your HTTP sources by opening shareable links that direct Foxglove to your source. See the Remote data loader section for instructions for composing those links.

Support

For additional support contact us at [email protected].