Quick Start
- Standard Installation
- Secure Installation (TLS)
This is the standard installation to evaluate Hoop. We recommend it for Proof of Concepts or testing environments.
1
Deploy the Gateway
2
Access it
- Forward the hoopgateway service ports to your local machine to access the WebApp
The default installation method install a Postgres database with Host mounted storage.
In case the node is decommissioned, all data will be lost.For more durable setups, use a Persistent Volume by providing the option below:
--set postgres.storageClassName=<your-storage-class>
Helm Install
To install the latest version in a new namespace (example:hoopdev). Issue the command below:
Overwriting or passing new attributes
It is possible to add new attributes or overwrite an attribute from a basevalues.yaml file.
In the example below a default agent is deployed as a sidecar container and with a using a specific version of the gateway.
Database Configuration
Hoop uses Postgres as the backend storage of all data in the system. It uses the schemaprivate to create the tables of the system.
The command below creates a database and a user with privileges to access the database and the required schema.
In case of using a password with special characters, make sure to url encode it properly when setting the connection string.
POSTGRES_DB_URI=postgres://hoopuser:<passwd>@<db-host>:5432/hoopdb
Agent Deployment
values.yaml (minimal)
values.yaml (minimal)
values.yaml (full)
values.yaml (full)
Helm
Make sure you have helm installed in your machine. Check Helm installation pageUsing Helm Manifests
Need short-lived agent credentials instead of a static
HOOP_KEY?
The same hoopagent-chart also supports SPIFFE JWT-SVID
authentication with a spiffe-helper sidecar — see
SPIFFE Agent Identity → Deploying with the official Helm chart
for the step-by-step guide.Standalone Deployment
deployment.yaml
deployment.yaml
Sidecar Container
deployment.yaml
deployment.yaml
Gateway Chart Configuration
Check the environment variables section for more information about the configuration of the sectionconfig.
Example:
TLS Configuration
Starting with version 1.45+,we are transitioning to expose native protocols directly on the Gateway, eliminating the need to forward ports locally through the Hoop Command Line. This new approach requires the Gateway to terminate TLS connections, ensuring secure protocol negotiation and protecting data in transit.- To deploy the gateway with a valid certificate, make to define the environment variables
TLS_KEYandTLS_CERT.
The certificate file may contain the Root and Intermediate CA’s as well.
Make sure to include them in the proper order, the example below show how the certificates must be generated:
- Base64 Encoded Configuration
- Path Based Configuration
Use the output of each value to configure the attributes above.
Authentication
- Local Authentication
- Oauth2/OIDC Authentication
Local Authentication manages users and passwords locally and sign JWT access tokens to users.
Default Database
The chart allows deploying a Postgres database as part of the installation.Persistence
We recommend using SSD for large deployments, it will help speed the I/O when handling many concurrent requests. The following example shows how to enable a 50GB persistent volume when using AWS/EKS.Ingress Configuration
This section covers the ingress configuration. The gateway requires exposing the ports HTTP/8009 and HTTP2/8010. The ingress configuration establishes these two differing configurations based on the ingress controller in use.- AWS ALB
- Nginx Ingress Controller
- GCP Classic ALB
AWS Load Balancer Controller is a controller to help manage Elastic Load Balancers for a Kubernetes cluster.
1
Deploy the AWS Load Balancer Controller
2
Ingress Configuration
Proxy Protocol Services
Starting from version 1.45+, the protocols are served directly on the Gateway. These ports must be exposed to your network via a Network Load Balancer. Configuration Example:This setup requires configuring TLS directly on the gateway.
Computing Resources
The helm-chart defaults to 1vCPU and 1GB, which is suitable for evaluation purposes only. For production setups, we recommend allocating at least 8GB/4vCPU to the gateway process.Image Configuration
By default, the latest version of all images is used. If you want to use a specific image or pin the versions, use theimage attribute section.
Default Agent Sidecar
Adding this section will deploy a default agent as a sidecar container.The
grpcHost allows configuring the host to connect when starting the agent.
In case the gateway has TLS configured (TLS_CA env set), the host must match the certificate SAN.Data Masking Configuration
To enable the Data Masking feature, you need to configure thedataMasking section in your values.yaml file.
It will deploy the Microsoft Presidio on the same namespace as the Hoop Gateway.
When the
dataMasking attribute is enabled, it takes control over the following configurations:- DLP_MODE
- DLP_PROVIDER
- MSPRESIDIO_ANALYZER_URL
- MSPRESIDIO_ANONYMIZER_URL
- GOOGLE_APPLICATION_CREDENTIALS_JSON
Node Selector
This configuration describes a pod that has a node selector,disktype: ssd. This means that the pod will get scheduled on a node that has a disktype=ssd label.
See this documentation for more information.
Tolerations
See this article explaining how to configure tolerationsNode Affinity
See this article explaining how to configure affinity and anti-affinity rulesPresidio Deployment
The Data Masking feature uses Microsoft Presidio. We provide a Helm chart that gives more control over the deployment.It will guarantee at least four concurrent requests when performing model inference.
If you want the workload to be burstable, decrease the CPU requests to 1024m.
For maximum performance, ensure CPU requests are always set to 2 vCPUs and enable the Horizontal Pod Autoscaler.