Skip to content

Commit

Permalink
Merge pull request #81 from langchain-ai/infra/release-0.4
Browse files Browse the repository at this point in the history
ci: release 0.4.0
  • Loading branch information
langchain-infra authored Mar 25, 2024
2 parents 76af0c7 + 048c150 commit bfa13fc
Show file tree
Hide file tree
Showing 12 changed files with 72 additions and 106 deletions.
4 changes: 2 additions & 2 deletions charts/langsmith/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@ maintainers:
email: [email protected]
description: Helm chart to deploy the langsmith application and all services it depends on.
type: application
version: 0.3.9
appVersion: "0.1.19"
version: 0.4.0
appVersion: "0.1.37"
44 changes: 30 additions & 14 deletions charts/langsmith/README.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,23 @@
# langsmith

![Version: 0.3.9](https://img.shields.io/badge/Version-0.3.9-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.1.19](https://img.shields.io/badge/AppVersion-0.1.19-informational?style=flat-square)
![Version: 0.4.0](https://img.shields.io/badge/Version-0.4.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.1.37](https://img.shields.io/badge/AppVersion-0.1.37-informational?style=flat-square)

Helm chart to deploy the langsmith application and all services it depends on.

## Migrating from LangSmith 0.3.0 to 0.4.0

LangSmith 0.3.0 should be a drop-in replacement for LangSmith 0.2.0. You can follow the generic upgrade instructions [here](docs/UPGRADE.md).

There are a few important changes when migrating from 0.3.0 to 0.4.0:
There are a few important changes when migrating from 0.3.0 to 0.4.0. The majority of these will require no action on your part. However, there are a few things to note:

- OAuth Flow now relies on using Access Tokens instead of OIDC ID tokens. This shouldn't impact any of your application functionality.
- A new asynchronous queue worker implementation has been added. This should improve the performance of the application trace ingestion.
- Clickhouse persistence now uses 50Gi of storage by default. You can adjust this by changing the `clickhouse.statefulSet.persistence.size` value in your `values.yaml` file.
- You may need to resize your existing storage class or set `clickhouse.statefulSet.persistence.size` to the old default value of `8Gi`.
- Some our image repositories have been update. You can see the root repositories in our `values.yaml` file. You may need to update mirrors.
- We now expose an api key salt parameter. This previously defaulted to your LangSmith License Key. You should set this param to your license key to avoid invalidating old api keys.

** Note: Using a new api key salt will invalidate all old api keys. **

## Migrating from LangSmith 0.2.0 to 0.3.0

Expand Down Expand Up @@ -45,18 +49,24 @@ Ensure you have the following tools/items ready.
1. `brew install helm`
3. LangSmith License Key
1. You can get this from your Langchain representative. Contact us at support@langchain.dev for more information.
3. SSL(optional)
4. Api Key Salt
1. This is a secret key that you can generate. It should be a random string of characters.
2. You can generate this using the following command:
```bash
openssl rand -base64 32
```
5. SSL(optional)
1. This should be attachable to the load balancer that you will be provisioning.
4. OpenAI API Key(optional).
6. OpenAI API Key(optional).
1. Used for natural language search feature. Can specify OpenAI key in browser as well for the playground feature.
5. Oauth Configuration(optional).
7. Oauth Configuration(optional).
1. You can configure oauth using the `values.yaml` file. You will need to provide a `client_id` and `client_issuer_url` for your oauth provider.
2. Note, we do rely on the OIDC Authorization Code with PKCE flow. We currently support almost anything that is OIDC compliant however Google does not support this flow.
6. External Postgres(optional).
8. External Postgres(optional).
1. You can configure external postgres using the `values.yaml` file. You will need to provide connection parameters for your postgres instance.
2. If using a schema other than public, ensure that you do not have any other schemas with the pgcrypto extension enabled or you must include that in your search path.
3. Note: We do only officially support Postgres versions >= 14.
7. External Redis(optional).
9. External Redis(optional).
1. You can configure external redis using the `values.yaml` file. You will need to provide a connection url for your redis instance.
2. Currently, we do not support using Redis with TLS. We will be supporting this shortly.
3. We only official support Redis versions >= 6.
Expand All @@ -77,14 +87,15 @@ Bare minimum config file `langsmith_config.yaml`:
```yaml
config:
langsmithLicenseKey: ""
apiKeySalt: "foo"
```

Example `EKS` config file with certificates setup using ACM:

```jsx
config:
langsmithLicenseKey: ""
apiKeySalt: "foo"
frontend:
service:
Expand All @@ -99,6 +110,8 @@ Example config file with oauth setup:
```jsx
config:
langsmithLicenseKey: ""
apiKeySalt: "foo"
oauth:
enabled: true
oauthClientId: "0oa805851lEvitA1i697"
Expand All @@ -112,6 +125,8 @@ Example config file with external postgres and redis:
```jsx
config:
langsmithLicenseKey: ""
apiKeySalt: "foo"
postgres:
external:
enabled: true
Expand Down Expand Up @@ -263,7 +278,7 @@ We typically validate deployment using the following quickstart guide:
| clickhouse.statefulSet.extraEnv | list | `[]` | |
| clickhouse.statefulSet.labels | object | `{}` | |
| clickhouse.statefulSet.nodeSelector | object | `{}` | |
| clickhouse.statefulSet.persistence.size | string | `"8Gi"` | |
| clickhouse.statefulSet.persistence.size | string | `"50Gi"` | |
| clickhouse.statefulSet.persistence.storageClassName | string | `""` | |
| clickhouse.statefulSet.podSecurityContext | object | `{}` | |
| clickhouse.statefulSet.resources | object | `{}` | |
Expand All @@ -277,20 +292,20 @@ We typically validate deployment using the following quickstart guide:
| fullnameOverride | string | `""` | String to fully override `"langsmith.fullname"` |
| images.backendImage.pullPolicy | string | `"IfNotPresent"` | |
| images.backendImage.repository | string | `"docker.io/langchain/langsmith-backend"` | |
| images.backendImage.tag | string | `"0.1.19"` | |
| images.backendImage.tag | string | `"0.1.37"` | |
| images.clickhouseImage.pullPolicy | string | `"Always"` | |
| images.clickhouseImage.repository | string | `"docker.io/clickhouse/clickhouse-server"` | |
| images.clickhouseImage.tag | string | `"23.9"` | |
| images.frontendImage.pullPolicy | string | `"IfNotPresent"` | |
| images.frontendImage.repository | string | `"docker.io/langchain/langsmith-frontend"` | |
| images.frontendImage.tag | string | `"0.1.19"` | |
| images.frontendImage.tag | string | `"0.1.37"` | |
| images.hubBackendImage.pullPolicy | string | `"IfNotPresent"` | |
| images.hubBackendImage.repository | string | `"docker.io/langchain/langhub-backend"` | |
| images.hubBackendImage.tag | string | `"0.1.19"` | |
| images.hubBackendImage.tag | string | `"0.1.37"` | |
| images.imagePullSecrets | list | `[]` | Secrets with credentials to pull images from a private registry. Specified as name: value. |
| images.playgroundImage.pullPolicy | string | `"IfNotPresent"` | |
| images.playgroundImage.repository | string | `"docker.io/langchain/langsmith-playground"` | |
| images.playgroundImage.tag | string | `"0.1.19"` | |
| images.playgroundImage.tag | string | `"0.1.37"` | |
| images.postgresImage.pullPolicy | string | `"IfNotPresent"` | |
| images.postgresImage.repository | string | `"docker.io/postgres"` | |
| images.postgresImage.tag | string | `"14.7"` | |
Expand All @@ -310,6 +325,7 @@ We typically validate deployment using the following quickstart guide:

| Key | Type | Default | Description |
|-----|------|---------|-------------|
| config.apiKeySalt | string | `""` | |
| config.existingSecretName | string | `""` | |
| config.langsmithLicenseKey | string | `""` | |
| config.logLevel | string | `"info"` | |
Expand Down Expand Up @@ -428,7 +444,7 @@ We typically validate deployment using the following quickstart guide:
| clickhouse.statefulSet.extraEnv | list | `[]` | |
| clickhouse.statefulSet.labels | object | `{}` | |
| clickhouse.statefulSet.nodeSelector | object | `{}` | |
| clickhouse.statefulSet.persistence.size | string | `"8Gi"` | |
| clickhouse.statefulSet.persistence.size | string | `"50Gi"` | |
| clickhouse.statefulSet.persistence.storageClassName | string | `""` | |
| clickhouse.statefulSet.podSecurityContext | object | `{}` | |
| clickhouse.statefulSet.resources | object | `{}` | |
Expand Down
29 changes: 22 additions & 7 deletions charts/langsmith/README.md.gotmpl
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,16 @@

LangSmith 0.3.0 should be a drop-in replacement for LangSmith 0.2.0. You can follow the generic upgrade instructions [here](docs/UPGRADE.md).

There are a few important changes when migrating from 0.3.0 to 0.4.0:
There are a few important changes when migrating from 0.3.0 to 0.4.0. The majority of these will require no action on your part. However, there are a few things to note:

- OAuth Flow now relies on using Access Tokens instead of OIDC ID tokens. This shouldn't impact any of your application functionality.
- A new asynchronous queue worker implementation has been added. This should improve the performance of the application trace ingestion.
- Clickhouse persistence now uses 50Gi of storage by default. You can adjust this by changing the `clickhouse.statefulSet.persistence.size` value in your `values.yaml` file.
- You may need to resize your existing storage class or set `clickhouse.statefulSet.persistence.size` to the old default value of `8Gi`.
- Some our image repositories have been update. You can see the root repositories in our `values.yaml` file. You may need to update mirrors.
- We now expose an api key salt parameter. This previously defaulted to your LangSmith License Key. You should set this param to your license key to avoid invalidating old api keys.

** Note: Using a new api key salt will invalidate all old api keys. **

## Migrating from LangSmith 0.2.0 to 0.3.0

Expand Down Expand Up @@ -45,18 +49,24 @@ Ensure you have the following tools/items ready.
1. `brew install helm`
3. LangSmith License Key
1. You can get this from your Langchain representative. Contact us at [email protected] for more information.
3. SSL(optional)
4. Api Key Salt
1. This is a secret key that you can generate. It should be a random string of characters.
2. You can generate this using the following command:
```bash
openssl rand -base64 32
```
5. SSL(optional)
1. This should be attachable to the load balancer that you will be provisioning.
4. OpenAI API Key(optional).
6. OpenAI API Key(optional).
1. Used for natural language search feature. Can specify OpenAI key in browser as well for the playground feature.
5. Oauth Configuration(optional).
7. Oauth Configuration(optional).
1. You can configure oauth using the `values.yaml` file. You will need to provide a `client_id` and `client_issuer_url` for your oauth provider.
2. Note, we do rely on the OIDC Authorization Code with PKCE flow. We currently support almost anything that is OIDC compliant however Google does not support this flow.
6. External Postgres(optional).
8. External Postgres(optional).
1. You can configure external postgres using the `values.yaml` file. You will need to provide connection parameters for your postgres instance.
2. If using a schema other than public, ensure that you do not have any other schemas with the pgcrypto extension enabled or you must include that in your search path.
3. Note: We do only officially support Postgres versions >= 14.
7. External Redis(optional).
9. External Redis(optional).
1. You can configure external redis using the `values.yaml` file. You will need to provide a connection url for your redis instance.
2. Currently, we do not support using Redis with TLS. We will be supporting this shortly.
3. We only official support Redis versions >= 6.
Expand All @@ -77,14 +87,15 @@ Bare minimum config file `langsmith_config.yaml`:
```yaml
config:
langsmithLicenseKey: ""

apiKeySalt: "foo"
```

Example `EKS` config file with certificates setup using ACM:

```jsx
config:
langsmithLicenseKey: ""
apiKeySalt: "foo"

frontend:
service:
Expand All @@ -99,6 +110,8 @@ Example config file with oauth setup:
```jsx
config:
langsmithLicenseKey: ""
apiKeySalt: "foo"

oauth:
enabled: true
oauthClientId: "0oa805851lEvitA1i697"
Expand All @@ -112,6 +125,8 @@ Example config file with external postgres and redis:
```jsx
config:
langsmithLicenseKey: ""
apiKeySalt: "foo"

postgres:
external:
enabled: true
Expand Down
1 change: 1 addition & 0 deletions charts/langsmith/examples/autoscaling_config.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
config:
langsmithLicenseKey: "YOUR_LICENSE_KEY"
apiKeySalt: "YOUR_API_KEY_SALT"

# Note, you likely should tweak the values to match your needs
backend:
Expand Down
1 change: 1 addition & 0 deletions charts/langsmith/examples/basic_config.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
config:
langsmithLicenseKey: "YOUR_LICENSE_KEY"
apiKeySalt: "YOUR_API_KEY_SALT"
# existingSecretName: "langsmith-config" You can also put the above into a secret if you want to avoid putting the license key in the values file.
1 change: 1 addition & 0 deletions charts/langsmith/examples/basic_external.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
config:
langsmithLicenseKey: "YOUR_LICENSE_KEY"
apiKeySalt: "YOUR_API_KEY_SALT"

postgres:
external:
Expand Down
1 change: 1 addition & 0 deletions charts/langsmith/examples/basic_oauth.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
config:
langsmithLicenseKey: "YOUR_LICENSE_KEY"
apiKeySalt: "YOUR_API_KEY_SALT"
oauth:
enabled: true
oauthClientId: "YOUR_CLIENT_ID"
Expand Down
1 change: 1 addition & 0 deletions charts/langsmith/examples/medium_size.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
config:
langsmithLicenseKey: "YOUR_LICENSE_KEY"
apiKeySalt: "YOUR_API_KEY_SALT"
openaiApiKey: "YOUR OPENAI API KEY"
oauth:
enabled: true
Expand Down
59 changes: 0 additions & 59 deletions charts/langsmith/templates/backend/config-map.yaml

This file was deleted.

24 changes: 6 additions & 18 deletions charts/langsmith/templates/backend/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -88,12 +88,10 @@ spec:
{{- toYaml .Values.backend.deployment.resources | nindent 12 }}
securityContext:
{{- toYaml .Values.backend.deployment.securityContext | nindent 12 }}
{{- with .Values.backend.deployment.volumeMounts }}
volumeMounts:
{{- with .Values.backend.deployment.volumeMounts }}
{{- toYaml . | nindent 12 }}
{{- end }}
- mountPath: /docker-entrypoint.d
name: nginx-unit-conf
{{- toYaml . | nindent 12 }}
{{- end }}
{{- with .Values.backend.deployment.extraContainerConfig }}
{{- toYaml . | nindent 10 }}
{{- end }}
Expand All @@ -112,17 +110,7 @@ spec:
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.backend.deployment.volumes }}
volumes:
{{- with .Values.backend.deployment.volumes }}
{{- toYaml . | nindent 8 }}
{{- end }}
- name: nginx-unit-conf
configMap:
{{- if .Values.backend.existingConfigMapName }}
name: {{ .Values.backend.existingConfigMapName }}
{{- else }}
name: {{ include "langsmith.fullname" . }}-{{ .Values.backend.name }}
{{- end }}
items:
- key: nginx-unit-config.json
path: unit.json
{{- toYaml . | nindent 8 }}
{{- end }}
2 changes: 1 addition & 1 deletion charts/langsmith/templates/secrets.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,5 @@ data:
oauth_client_id: {{ .Values.config.oauth.oauthClientId | b64enc | quote }}
oauth_issuer_url: {{ .Values.config.oauth.oauthIssuerUrl | b64enc | quote }}
langsmith_license_key: {{ .Values.config.langsmithLicenseKey | b64enc | quote }}
api_key_salt: {{ .Values.config.langsmithLicenseKey | b64enc | quote }}
api_key_salt: {{ .Values.config.apiKeySalt | default .Values.config.langsmithLicenseKey | b64enc | quote }}
{{- end }}
Loading

0 comments on commit bfa13fc

Please sign in to comment.