diff --git a/src/app/docs/kagent/resources/api-ref/page.mdx b/src/app/docs/kagent/resources/api-ref/page.mdx index 1ddf4c26..10af8be4 100644 --- a/src/app/docs/kagent/resources/api-ref/page.mdx +++ b/src/app/docs/kagent/resources/api-ref/page.mdx @@ -18,7 +18,7 @@ export const metadata = { ## kagent.dev/v1alpha2 -Package v1alpha1 contains API Schema definitions for the agent v1alpha1 API group. +Package v1alpha2 contains API Schema definitions for the kagent.dev v1alpha2 API group. ### Resource Types - [Agent](#agent) @@ -1163,7 +1163,7 @@ _Appears in:_ | `seed` _integer_ | Seed value | | | | `n` _integer_ | N value | | | | `timeout` _integer_ | Timeout | | | -| `reasoningEffort` _[OpenAIReasoningEffort](#openaireasoningeffort)_ | Reasoning effort | | Enum: [minimal low medium high]
| +| `reasoningEffort` _[OpenAIReasoningEffort](#openaireasoningeffort)_ | Reasoning effort | | Enum: [none minimal low medium high]
| | `tokenExchange` _[TokenExchangeConfig](#tokenexchangeconfig)_ | TokenExchange configures dynamic bearer token acquisition via credential exchange.
Requires apiKeySecret (used as the service account secret) and is mutually exclusive with apiKeyPassthrough. | | | @@ -1172,9 +1172,11 @@ _Appears in:_ _Underlying type:_ _string_ OpenAIReasoningEffort represents how many reasoning tokens the model generates before producing a response. +Set to "none" to disable reasoning; some models (e.g. gpt-5.6-terra) require this to use +function tools via the Chat Completions API. _Validation:_ -- Enum: [minimal low medium high] +- Enum: [none minimal low medium high] _Appears in:_ - [OpenAIConfig](#openaiconfig) diff --git a/src/app/docs/kagent/resources/helm/page.mdx b/src/app/docs/kagent/resources/helm/page.mdx index 3a8dc91b..6d2224d6 100644 --- a/src/app/docs/kagent/resources/helm/page.mdx +++ b/src/app/docs/kagent/resources/helm/page.mdx @@ -31,7 +31,7 @@ A Helm chart for kagent, built with Google ADK | file://../agents/promql | promql-agent | | | file://../tools/grafana-mcp | grafana-mcp | | | file://../tools/querydoc | querydoc | | -| https://oauth2-proxy.github.io/manifests | oauth2-proxy | ~7.0.0 | +| https://oauth2-proxy.github.io/manifests | oauth2-proxy | ~10.7.0 | | oci://ghcr.io/kagent-dev/kmcp/helm | kmcp | `${KMCP_VERSION}` | | oci://ghcr.io/kagent-dev/tools/helm | kagent-tools | 0.2.1 | @@ -72,10 +72,11 @@ A Helm chart for kagent, built with Google ADK | cilium-policy-agent.resources.limits.memory | string | `"256Mi"` | | | cilium-policy-agent.resources.requests.cpu | string | `"50m"` | | | cilium-policy-agent.resources.requests.memory | string | `"128Mi"` | | -| controller.a2aBaseUrl | string | `http://-controller..svc.cluster.local:` | The base URL of the A2A Server endpoint, as advertised to clients. | +| controller.a2aBaseUrl | string | `http://-controller..svc:` | The base URL of the A2A Server endpoint, as advertised to clients. | | controller.a2aClientTimeout | string | "" (no timeout) | HTTP client timeout for A2A requests from the controller to agent pods. 0 (the default) means no timeout, which is correct for SSE-based streaming agents that can run for an arbitrarily long time. The previous implicit default was 3m (inherited from the a2a-go SDK), which caused `context deadline exceeded` errors for agents that take longer than 3 minutes to complete. Set a positive Go duration string (e.g. "30m", "1h") only if you need a hard upper bound on individual A2A calls. | -| controller.agentDeployment | object | `{"host":"","podLabels":{},"serviceAccountName":""}` | Global deployment defaults applied to all agent pods. Per-agent settings in the Agent CRD take precedence over these defaults. | +| controller.agentDeployment | object | `{"host":"","nodeSelector":{},"podLabels":{},"serviceAccountName":""}` | Global deployment defaults applied to all agent pods. Per-agent settings in the Agent CRD take precedence over these defaults. | | controller.agentDeployment.host | string | "" (controller falls back to "0.0.0.0"; "::" when ipv6.enabled) | Default host address for agent pods to bind to. Leave empty to use the controller's default fallback of "0.0.0.0". Automatically set to "::" when ipv6.enabled is true. Can be explicitly overridden here regardless of the ipv6 flag. | +| controller.agentDeployment.nodeSelector | object | {} (no default nodeSelector) | Default nodeSelector applied to all agent deployments. Useful when admission policies require a nodeSelector on every Deployment, since wizard-created Agents carry none. A per-agent nodeSelector in the Agent CRD takes precedence over these defaults. | | controller.agentDeployment.podLabels | object | {} (no extra labels) | Default labels applied to all agent pod templates. Per-agent labels in the Agent CRD take precedence over these defaults. | | controller.agentDeployment.serviceAccountName | string | "" (auto-create per-agent ServiceAccount) | Default ServiceAccount name for agent pods. When set, agent pods that don't specify an explicit serviceAccountName will use this ServiceAccount instead of creating a per-agent one. Useful for Workload Identity (GCP, AWS IRSA, Azure Workload Identity). Precedence: agent-level serviceAccountName > this default > auto-created SA. | | controller.agentImage.pullPolicy | string | `""` | | @@ -96,6 +97,7 @@ A Helm chart for kagent, built with Google ADK | controller.metrics | object | disabled | Prometheus-style /metrics endpoint for the controller manager. When enabled, provisions a dedicated metrics Service plus the ClusterRoles required for authenticated scrapes. Bind `-metrics-reader` to your Prometheus ServiceAccount to grant scrape access. Use `bindAddress` for any port change: the Service `targetPort` and the pod `containerPort` are derived from it at template time, so overriding `METRICS_BIND_ADDRESS` via `controller.env` shifts only the runtime listener and leaves the rendered Service pointing at the chart-time port. Setting `bindAddress: "0"` (or empty) is treated as a disable signal — equivalent to `enabled: false` — to keep faith with the controller binary's documented contract for `--metrics-bind-address`. | | controller.nodeSelector | object | `{}` | Node labels to match for `Pod` [scheduling](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/). | | controller.podAnnotations | object | `{}` | | +| controller.podLabels | object | `{}` | Additional labels for the controller pod template, merged over the global `podLabels` (per-key; component keys win). Selector labels can never be overridden. | | controller.readinessProbe | object | httpGet /health on port http, periodSeconds=30 | Custom readiness probe for the controller container. Setting a value replaces the default probe entirely — include a handler (httpGet / exec / tcpSocket / grpc) when overriding. | | controller.replicas | int | `1` | | | controller.resources.limits.cpu | int | `2` | | @@ -140,6 +142,7 @@ A Helm chart for kagent, built with Google ADK | database.postgres.url | string | `""` | External PostgreSQL connection string. Is always used if set regardless of the `.bundled.enabled` field. | | database.postgres.urlFile | string | `""` | Path to a file containing the database URL. Takes precedence over url when set. Is always used if set regardless of the `.bundled.enabled` field. | | database.postgres.vectorEnabled | bool | `false` | Enable the pgvector migration Required to use features that depend on database vector capability. (e.g. long-term memory) Set to true when using an external PostgreSQL that has the pgvector extension installed. | +| extraObjects | list | [] | Additional arbitrary Kubernetes manifests to deploy alongside the chart. Each list entry is rendered through `tpl`, so values may reference the release context (e.g. `{{ include "kagent.fullname" . }}`, `{{ .Release.Namespace }}`). Both map and multi-line string entries are supported. Use this to manage resources such as ExternalSecret, HTTPRoute, or NetworkPolicy within the same chart lifecycle without maintaining a separate chart. To use, replace the empty list below with your manifests, e.g.: extraObjects: - apiVersion: external-secrets.io/v1 kind: ExternalSecret metadata: name: '{{ include "kagent.fullname" . }}-openai' namespace: '{{ .Release.Namespace }}' spec: secretStoreRef: name: aws-secretsmanager kind: ClusterSecretStore target: name: kagent-openai data: - secretKey: OPENAI_API_KEY remoteRef: key: prod/kagent/openai property: api_key | | fullnameOverride | string | `""` | | | grafana-mcp.enabled | bool | `true` | | | grafana-mcp.grafana.serviceAccountToken | string | `""` | | @@ -177,6 +180,7 @@ A Helm chart for kagent, built with Google ADK | k8s-agent.resources.requests.memory | string | `"128Mi"` | | | kagent-tools.enabled | bool | `true` | | | kagent-tools.nameOverride | string | `"tools"` | | +| kagent-tools.nodeSelector | object | `{}` | Node labels to match for `Pod` [scheduling](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/). | | kagent-tools.podSecurityContext.runAsNonRoot | bool | `true` | | | kagent-tools.podSecurityContext.seccompProfile.type | string | `"RuntimeDefault"` | | | kagent-tools.replicaCount | int | `1` | | @@ -186,6 +190,7 @@ A Helm chart for kagent, built with Google ADK | kagent-tools.securityContext.allowPrivilegeEscalation | bool | `false` | | | kagent-tools.securityContext.capabilities.drop[0] | string | `"ALL"` | | | kagent-tools.securityContext.readOnlyRootFilesystem | bool | `true` | | +| kagent-tools.tolerations | list | `[]` | Node taints which will be tolerated for `Pod` [scheduling](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/). | | kagent-tools.tools.loglevel | string | `"debug"` | | | kagent-tools.tools.metrics.port | int | `8085` | | | kgateway-agent.enabled | bool | `true` | | @@ -235,7 +240,6 @@ A Helm chart for kagent, built with Google ADK | oauth2-proxy.extraVolumeMounts[0].readOnly | bool | `true` | | | oauth2-proxy.extraVolumes[0].configMap.name | string | `"kagent-oauth2-proxy-templates"` | | | oauth2-proxy.extraVolumes[0].name | string | `"custom-templates"` | | -| oauth2-proxy.redis.enabled | bool | `false` | | | oauth2-proxy.service.portNumber | int | `4180` | | | oauth2-proxy.service.type | string | `"ClusterIP"` | | | oauth2-proxy.sessionStorage.type | string | `"cookie"` | | @@ -257,6 +261,7 @@ A Helm chart for kagent, built with Google ADK | otel.tracing.exporter.otlp.protocol | string | `"grpc"` | | | otel.tracing.exporter.otlp.timeout | int | `15000` | | | podAnnotations | object | `{}` | | +| podLabels | object | `{}` | Additional labels to add to all pod templates (merged into pod labels of the controller and UI Deployments; can be overridden per component). Useful for admission policies that require specific labels on pods. | | podSecurityContext | object | `{"runAsNonRoot":true,"seccompProfile":{"type":"RuntimeDefault"}}` | Security context for all pods | | promql-agent.enabled | bool | `true` | | | promql-agent.memory.enabled | bool | `false` | | @@ -332,6 +337,7 @@ A Helm chart for kagent, built with Google ADK | ui.nodeSelector | object | `{}` | Node labels to match for `Pod` [scheduling](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/). | | ui.openshiftRoute.annotations."haproxy.router.openshift.io/timeout" | string | `"120m"` | | | ui.podAnnotations | object | `{}` | | +| ui.podLabels | object | `{}` | Additional labels for the UI pod template, merged over the global `podLabels` (per-key; component keys win). Selector labels can never be overridden. | | ui.podSecurityContext | object | (uses global podSecurityContext) | Pod-level security context for the UI pod. Overrides the global podSecurityContext. | | ui.publicBackendUrl | string | `"/api"` | | | ui.readinessProbe | object | httpGet /health on port http, periodSeconds=30 | Custom readiness probe for the UI container. Override to adjust thresholds, use exec-based probes, or change the health path. |