Skip to content
2 changes: 1 addition & 1 deletion charts/langsmith/scripts/create_marketplace_version.sh
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ CONTAINER_IMAGES=$(cat <<EOF
[
"${REGISTRY}/${REPO}:langsmith-ace-backend-${VERSION}",
"${REGISTRY}/${REPO}:langsmith-backend-${VERSION}",
"${REGISTRY}/${REPO}:langsmith-clio-${VERSION}",
"${REGISTRY}/${REPO}:langsmith-insights-engine-${VERSION}",
"${REGISTRY}/${REPO}:langsmith-frontend-${VERSION}",
"${REGISTRY}/${REPO}:hosted-langserve-backend-${VERSION}",
"${REGISTRY}/${REPO}:langgraph-operator-${OPERATOR_VERSION}",
Expand Down
1 change: 0 additions & 1 deletion charts/langsmith/scripts/mirror_langsmith_images.sh
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,6 @@ OPERATOR_VERSION="${OPERATOR_VERSION:-$DEFAULT_OPERATOR_VERSION}"
IMAGES=(
"docker.io/langchain/langsmith-ace-backend:${VERSION}"
"docker.io/langchain/langsmith-backend:${VERSION}"
"docker.io/langchain/langsmith-clio:${VERSION}"
"docker.io/langchain/langsmith-insights-engine:${VERSION}"
"docker.io/langchain/langsmith-frontend:${VERSION}"
"docker.io/langchain/hosted-langserve-backend:${VERSION}"
Expand Down
2 changes: 1 addition & 1 deletion charts/langsmith/scripts/push_helm_chart.sh
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ with open(values_path, 'r') as f:
image_map = {
'docker.io/langchain/langsmith-ace-backend': 'langsmith-ace-backend',
'docker.io/langchain/langsmith-backend': 'langsmith-backend',
'docker.io/langchain/langsmith-clio': 'langsmith-clio',
'docker.io/langchain/langsmith-insights-engine': 'langsmith-insights-engine',
'docker.io/langchain/langsmith-frontend': 'langsmith-frontend',
'docker.io/langchain/hosted-langserve-backend': 'hosted-langserve-backend',
'docker.io/langchain/langgraph-operator': 'langgraph-operator',
Expand Down
9 changes: 6 additions & 3 deletions charts/langsmith/templates/validate.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,12 @@ AWS Marketplace Helm template verification).
{{- fail (printf "images.%s has moved to images.engineInsightsAgentImage: Engine and Insights run on one image. Set images.engineInsightsAgentImage instead." $key) -}}
{{- end -}}
{{- end -}}
{{- /* The tag arm matches the AWS Marketplace layout, where every image shares
one repo and the name moves into the tag. */ -}}
{{- $engineInsightsImage := .Values.images.engineInsightsAgentImage -}}
{{- if not (or (contains "insights-engine" $engineInsightsImage.repository) (hasPrefix "langsmith-insights-engine-" ($engineInsightsImage.tag | default ""))) -}}
{{- fail (printf "images.engineInsightsAgentImage.repository is %q: Insights and Engine run on the combined langsmith-insights-engine image, which serves both the `insights` and `engine` graphs. langsmith-clio is no longer supported. Point it at langsmith-insights-engine (or your mirror of it)." $engineInsightsImage.repository) -}}
{{- end -}}
{{- /* Deprecated image keys: these workloads now run on the single consolidated backend image */ -}}
{{- range $key := list "hostBackendImage" "platformBackendImage" "playgroundImage" "fleetToolServerImage" "fleetTriggerServerImage" "agentBuilderToolServerImage" "agentBuilderTriggerServerImage" -}}
{{- if hasKey $.Values.images $key -}}
Expand Down Expand Up @@ -537,9 +543,6 @@ AWS Marketplace Helm template verification).

{{- /* Engine (co-hosted Insights+Engine) requires config when enabled. */ -}}
{{- if .Values.engine.enabled }}
{{- if not (contains "insights-engine" .Values.images.engineInsightsAgentImage.repository) }}
{{- fail (printf "engine.enabled is true but images.engineInsightsAgentImage.repository is %q: Engine requires the combined insights-engine image, which serves both the `insights` and `engine` graphs. Point it at langsmith-insights-engine (or your mirror of it)." .Values.images.engineInsightsAgentImage.repository) }}
{{- end }}
{{- if and (not .Values.engine.encryptionKey) (not .Values.config.existingSecretName) }}
{{- fail "engine.encryptionKey is required when engine.enabled is true (must match smith-go's ISSUES_AGENT_ENCRYPTION_KEY). Generate one with: python -c \"from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())\" (not needed if config.existingSecretName has engine_encryption_key)." }}
{{- end }}
Expand Down
28 changes: 27 additions & 1 deletion charts/langsmith/tests/engine_insights_agent_test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,13 @@ tests:
- failedTemplate:
errorMessage: "images.insightsEngineImage has moved to images.engineInsightsAgentImage: Engine and Insights run on one image. Set images.engineInsightsAgentImage instead."

- it: should fail on the clio image even with engine disabled
set:
images.engineInsightsAgentImage.repository: docker.io/langchain/langsmith-clio
asserts:
- failedTemplate:
errorMessage: "images.engineInsightsAgentImage.repository is \"docker.io/langchain/langsmith-clio\": Insights and Engine run on the combined langsmith-insights-engine image, which serves both the `insights` and `engine` graphs. langsmith-clio is no longer supported. Point it at langsmith-insights-engine (or your mirror of it)."

- it: should fail when engine is enabled without the combined image
set:
config.existingSecretName: langsmith-secrets
Expand All @@ -27,7 +34,26 @@ tests:
images.engineInsightsAgentImage.repository: docker.io/langchain/langsmith-clio
asserts:
- failedTemplate:
errorMessage: "engine.enabled is true but images.engineInsightsAgentImage.repository is \"docker.io/langchain/langsmith-clio\": Engine requires the combined insights-engine image, which serves both the `insights` and `engine` graphs. Point it at langsmith-insights-engine (or your mirror of it)."
errorMessage: "images.engineInsightsAgentImage.repository is \"docker.io/langchain/langsmith-clio\": Insights and Engine run on the combined langsmith-insights-engine image, which serves both the `insights` and `engine` graphs. langsmith-clio is no longer supported. Point it at langsmith-insights-engine (or your mirror of it)."

- it: should accept a mirror that keeps the image name
set:
config.existingSecretName: langsmith-secrets
config.oauth.enabled: true
config.authType: oauth
images.engineInsightsAgentImage.repository: registry.example.com/mirror/langsmith-insights-engine
asserts:
- notFailedTemplate: {}

- it: should accept the marketplace layout, where the name is in the tag
set:
config.existingSecretName: langsmith-secrets
config.oauth.enabled: true
config.authType: oauth
images.engineInsightsAgentImage.repository: 709825985650.dkr.ecr.us-east-1.amazonaws.com/langchain/langsmith
images.engineInsightsAgentImage.tag: langsmith-insights-engine-0.16.32
asserts:
- notFailedTemplate: {}

- it: should fail when engine is enabled without an intelligence base URL
set:
Expand Down
Loading