A guide on how to deploy Briefer on a Kubernetes cluster.
web
and api
services, a Jupyter server, and a Postgres database to store data. It can also include the AI service in case you want to enable code generation features.
Ingress
resources, which you should create yourself taking into account which ingress controller you’re using.
values.yaml
file in which you’ll configure the URLs you want Briefer to use.
briefer
chart from the newly added chart repository, passing your values.yaml
file.
--create-namespace
flag.kubectl get pods -n briefer
).
Ingress
resources so that you can access Briefer’s API and Web containers.
Make sure to use the same URLs you’ve configured in step 2.values.yaml
file that you’ll pass to Helm when installing Briefer’s chart.
In this section we’ll describe the most common configurations you might want to make.
To see a full values.yaml
example, check out our GitHub repo.
web
and api
services.
You can do that by setting api.env.frontendUrl
and api.env.apiUrl
in your values.yaml
file.
Ingress
resources.
enableLocalPostgres
and set api.env.postgresHostname
, api.env.postgresPort
, api.env.postgresDatabase
, api.secrets.postgresUsername
, and api.secrets.postgresPassword
, as shown in the example below.
pgvector
extension. Briefer uses pgvector
to store and query embeddings when you use the AI service to generate queries and code.replicas
for each service in your values.yaml
file.
After doing that, make sure to enable sticky sessions in your Ingress
resources. Without sticky sessions (also known as Session Affinity), Briefer will not work correctly when using multiple replicas.
If you’re using the Nginx Ingress controller, for example, you can enable sticky sessions by adding the annotations below to your Ingress
resources.
jupyter
pod so that it has enough memory and vCPUs to run your analyses.
Additionally, you can also set resources
and limits
for your api
, web
, and ai
pods.
Below, you can see an example of how to configure your pod’s sizes.
affinity
and tolerations
options within jupyter
in your values.yaml
file, as show below.
ai
service by setting ai.enabled
values.yaml
. Therefore, installing the latest published Helm chart should also cause your pods to use newer images.
Here’s how to install Briefer’s most recent Helm chart.
briefercloud
Helm repository.
values.yaml
, as shown below.
image
tag through
values.yaml
. That’s because newer versions of Briefer might require
environment variables that are not passed to the pod’s in older versions of
the chart. Still, this might be useful for quick changes sometimes.