Skip to main content
Version: Next

Platform Resources Extension

Default platform resources for WSO2 AI Agent Management Platform on OpenChoreo

helm install amp-platform-resources-extension oci://ghcr.io/wso2/helm-charts/wso2-amp-platform-resources-extension \
--namespace <namespace> --create-namespace \
--values my-values.yaml

apiPlatformGateway​

ParameterDescriptionTypeDefault
apiPlatformGatewayWhere the per-environment API Platform Gateway is installed. This must agree with apiGateway.namespace in wso2-amp-api-platform-gateway-extension, because the traits below address that release's gateway-runtime Service by DNS name.object
apiPlatformGateway.namespaceEmpty = derive the per-org-env convention "<org>-<env>", which setup-gateway.sh and add-environment.sh create by passing set apiGateway.namespace=<org>-<env>. Set this to a fixed namespace when the gateway extension is installed somewhere else — notably openchoreo-data-plane, which is the gateway chart's own default for apiGateway.namespace. Leaving it empty there makes the traits build a name that does not resolve, and the failure is silent: agents keep serving traffic while every span batch fails, and agent invocation has no route to the gateway runtime.string""

apiPlatformGatewayVhost​

ParameterDescriptionTypeDefault
apiPlatformGatewayVhostAPI Platform Gateway vhost used for externally reachable gateway URLs. Sandboxed platform agents use the per-environment gateway runtime's in-cluster Service for OTEL and managed LLM/MCP proxy traffic instead.object
apiPlatformGatewayVhost.hostHostname of the virtual host.string"gateway.localhost"
apiPlatformGatewayVhost.portPort the virtual host serves on.integer19080
apiPlatformGatewayVhost.otelEndpointOverrideFull override for the agent OTEL endpoint. When set, it replaces the in-cluster runtime URL entirely — used on installs that front a single public gateway host on :443 (e.g. a VM install), where the per-environment Kubernetes Service does not apply. Empty = derive the in-cluster Service.string""

authz​

ParameterDescriptionTypeDefault
authzAuthorization configuration for OpenChoreoobject
authz.ampApiClientAMP API Client authorization bindingobject
authz.ampApiClient.clientIdClient ID used by agent-manager-service (must match Thunder OAuth client_id)string"amp-api-client"
authz.ampApiClient.roleRole to assign (admin grants full access to OpenChoreo APIs)string"admin"
authz.amObserverClientAM Observer Client authorization bindingobject
authz.amObserverClient.clientIdClient ID used by agent-manager-observer's outbound calls to the OpenChoreo observer (must match Thunder OAuth client_id seeded by wso2-amp-thunder-extension's amObserverClient)string"am-observer-client"
authz.amObserverClient.roleMinimal read-only role for observability data (traces/logs/metrics)string"amp-observer-reader"

buildWorkflows​

ParameterDescriptionTypeDefault
buildWorkflowsBuild workflow pod hardeningobject
buildWorkflows.userNamespacesRun build pods inside a Linux user namespace (hostUsers: false) so the build's root user is unprivileged on the node. This requires idmapped-mount support for every filesystem the pod mounts (overlayfs AND tmpfs/projected volumes) — in practice Linux kernel >= 6.3 (e.g. Ubuntu 24.04, Amazon Linux 2023, recent COS). On older kernels (e.g. Ubuntu 22.04's 5.15, Amazon Linux 2's 5.10) every build pod fails at sandbox creation with "failed to set MOUNT_ATTR_IDMAP ... invalid argument" — set this to false on such nodes to run builds without user namespaces.booleantrue

deploymentPipeline​

ParameterDescriptionTypeDefault
deploymentPipelineDeployment Pipeline configurationobject
deploymentPipeline.nameName of the default deployment pipelinestring"default"
deploymentPipeline.displayNameDisplay name for the deployment pipelinestring"Default Deployment Pipeline"
deploymentPipeline.descriptionDescription for the deployment pipelinestring"Default deployment pipeline for WSO2 Agent Manager"
deploymentPipeline.promotionOrderPromotion order for the deployment pipelinearraysee values.yaml

environment​

ParameterDescriptionTypeDefault
environmentEnvironment configurationobject
environment.nameName of the default environmentstring"default"
environment.displayNameDisplay name for the environmentstring"Default"
environment.descriptionDescription for the environmentstring"Default environment for WSO2 AI Agent Management Platform"
environment.isCriticalIs this environment critical/production?booleanfalse
environment.dnsPrefixDNS Prefix for the gatewaystring"default"
environment.gatewayGateway ingress details persisted on the default Environment CR. This mirrors what add-environment.sh writes for other envs so every env CR carries its gateway info explicitly. name/namespace MUST reference the real data-plane Gateway so agent HTTPRoutes attach to it; OC builds agent route hostnames as "<env>-<org>.<listener.host>".object
environment.gateway.nameReal data-plane Gateway the agent routes attach to (parentRef).string"gateway-default"
environment.gateway.namespaceNamespace containing that gateway.string"openchoreo-data-plane"
environment.gateway.httphttp: agent-facing host (distinct from the gateway-runtime host gateway.localhost).object
environment.gateway.http.hostHostname routed to agents in this environment.string"am-gateway.localhost"
environment.gateway.http.portPort the HTTP listener serves on.integer19080
environment.gateway.httpshttps: optional TLS-fronted variant. Unset by default (local/compose serves agents over plain http, tlsEnabled=false). Set host/port on TLS deployments (e.g. the VM installer) so the binding carries an https externalURL; otherwise the tlsEnabled console reads a missing variant and the invoke URL is empty.object{}

externalSecrets​

ParameterDescriptionTypeDefault
externalSecretsExternal Secrets configurationobject
externalSecrets.clusterSecretStoreNameName of the ClusterSecretStore (uses the default OpenBao ClusterSecretStore)string"default"

gatewayTls​

ParameterDescriptionTypeDefault
gatewayTlsGateway TLS certificate configurationobject
gatewayTls.enabledEnable gateway TLS certificate creationbooleantrue
gatewayTls.certificateNameCertificate namestring"gateway-tls"
gatewayTls.secretNameSecret name where the certificate will be storedstring"gateway-tls"
gatewayTls.namespaceNamespace where the certificate and secret will be createdstring"openchoreo-data-plane"
gatewayTls.durationCertificate duration (default: 2160h = 90 days)string"2160h"
gatewayTls.renewBeforeCertificate renewal time (default: 720h = 30 days before expiry)string"720h"
gatewayTls.commonNameCommon name for the certificatestring"*.agentmanager.localhost"
gatewayTls.dnsNamesDNS names for the certificatearraysee values.yaml
gatewayTls.issuerRefIssuer reference for cert-managerobject
gatewayTls.issuerRef.nameName of the issuer (created by openchoreo-data-plane chart)string"openchoreo-data-plane-selfsigned-issuer"
gatewayTls.issuerRef.kindIssuer kind: Issuer or ClusterIssuerstring"Issuer"

global​

ParameterDescriptionTypeDefault
globalGlobal configurationobject
global.oauthOAuth / IDP configuration for workload publishingobject
global.oauth.tokenUrlOAuth token endpoint URLstring"http://host.k3d.internal:8080/oauth2/token"
global.oauth.hostHeaderHost header for OAuth requestsstring"thunder.amp.localhost"
global.oauth.clientIdOAuth client ID for workload publisherstring"openchoreo-workload-publisher-client"
global.apiServerOpenChoreo API server configurationobject
global.apiServer.urlAPI server URLstring"http://host.k3d.internal:8080"
global.apiServer.hostHeaderHost header for API server requestsstring"api.openchoreo.localhost"
global.commonLabelsCommon labels to add to every resource.object{}
global.baseDomainBase domain for external access (e.g., "openchoreo.example.com") When set, registry will be accessible at registry.<baseDomain>string""
global.registryContainer registry configurationobject
global.registry.endpointRegistry endpoint for pushing and pulling images For local registry: "host.k3d.internal:10082" For external registry with baseDomain: automatically uses "registry.<baseDomain>"string"host.k3d.internal:10082"
global.defaultResourcesDefault resources configurationobject
global.defaultResources.namespaceNamespace where default resources will be createdstring"default"
global.defaultResources.registryRegistry configuration for default resourcesobject
global.defaultResources.registry.tlsVerifyEnable TLS verification for registry connectionsbooleanfalse
global.defaultResources.buildpackCacheBuildpack cache configurationobject
global.defaultResources.buildpackCache.enabled@schema type: boolean description: Enable buildpack image caching. When enabled, images are pulled from cache registry instead of remote. default: false @schemabooleanfalse
global.defaultResources.buildpackCache.images@schema type: array description: List of buildpack images to cache. Each entry has an id for lookup, remoteImage for external registry, and cachedImage for local cache. items: type: object additionalProperties: false required: - id - remoteImage - cachedImage properties: id: type: string description: Unique identifier for lookup in workflow templates remoteImage: type: string description: Image reference from remote registry (used when caching is disabled) cachedImage: type: string description: Image path in the local build plane registry (used when caching is enabled) @schemaarraysee values.yaml

kubectl​

ParameterDescriptionTypeDefault
kubectlKubectl image configuration for jobsobject
kubectl.imageImage providing the kubectl binary for helper jobsstring"bitnamilegacy/kubectl:1.32.4"

openchoreoNamespace​

ParameterDescriptionTypeDefault
openchoreoNamespaceNamespace the platform resources below are created in. It must match the service's OPEN_CHOREO_DEFAULT_NAMESPACE, since that is the namespace the service creates projects in — and a namespaced ProjectType is only resolvable from within its own namespace.string"default"

project​

ParameterDescriptionTypeDefault
projectProject configurationobject
project.nameName of the default projectstring"default"
project.displayNameDisplay name for the projectstring"Default Project"
project.descriptionDescription for the projectstring"Default project for WSO2 Agent Manager"

projectType​

ParameterDescriptionTypeDefault
projectTypeProjectType referenced by the default Project. OpenChoreo 1.2.0+ makes Project.spec.type a required reference to a (Cluster)ProjectType, which provides the per-environment resource template (here, the cell namespace). A namespaced ProjectType is used rather than a cluster-scoped ClusterProjectType so the type is not shared across tenants. The name is deliberately not configurable: it is a contract with the service, which references client.DefaultProjectTypeName. If the two diverged, every project created through the API would fail to reconcile with ProjectTypeNotFound.object
projectType.displayNameDisplay name for the project typestring"Default Project Type"
projectType.descriptionDescription for the project typestring"Minimal project type that provisions only the cell namespace per environment."