Skip to main content
Version: 1.15.0

Workload Placement

This topic describes APIs used to create, get, update, and delete a Workload Placement.

Create Workload Placement

Use this API to create a Workload Placement.

Method and URL

POST /api/v1/workload-placement

Parameters

ParameterParameter TypeDescriptionRequired
WorkspaceNameStringThe workspace under which the workload is deployed.Mandatory
nameStringThe unique name of the workload placement. This is used as the identifier.Mandatory
clustersarray[string]The list of cluster names where the workload is deployed.Mandatory
burstDurationStringThe time duration for temporary scaling or burst activity (for example, 15m).Mandatory
deletionPolicyStringThis defines what happens on delete (Delete or Retain).Mandatory
helmConfigsarray[object]The list of Helm deployments included in the workload.Mandatory
manifestResourcesarray[object]The list of Kubernetes manifests to apply (for example, ConfigMaps and Deployments).Mandatory
cmdExecarray[object]The list of shell/command executions to run (for example, kubectl commands).Mandatory
stepsarray[object]The ordered execution steps defining workload sequence (command, helm, manifest, etc.).Mandatory

Helm Configuration Parameters

ParameterParameter TypeDescriptionRequired
chartStringThe Helm chart identifier (repo/chart-name).Mandatory
releaseNameStringThe Helm release name.Mandatory
releaseNamespaceStringThe target namespace for Helm release.Mandatory
repoNameStringThe Helm repository name.Mandatory
repoURLStringThe URL to the Helm chart repository.Mandatory
SecretRefStringThe secret reference for Helm repository authentication.Optional
valuesObjectThe key-value map of Helm chart values.Optional
Helm Flag Parameters
ParameterParameter TypeDescriptionRequired
atomicBooleanIf enabled, deletes the installation on failure, rolling back changes.Optional
cleanupOnFailBooleanIf enabled, deletes new resources created in this release when it fails.Optional
createNamespaceBooleanIf enabled, automatically creates the Kubernetes Namespace if it does not already exist.Optional
skipCRDsBooleanIf enabled, skips installing Custom Resource Definitions.Optional
waitBooleanIf enabled, waits until all Pods, PVCs, Services, and minimum number of Pods of a Deployment are in a ready state before marking the release as successful.Optional
timeoutStringThe duration to wait for Kubernetes operation (for example, 0h10m0s for 10 minutes).Optional
SecretRef Parameters
ParameterParameter TypeDescriptionRequired
nameStringThe name of the Kubernetes secret.Mandatory
Values Parameters
ParameterParameter TypeDescriptionRequired
replicaCountThis is the number of replicas to deploy.NumericOptional

Manifest Resources Parameters

ParameterParameter TypeDescriptionRequired
nameStringThe logical name for the manifest.
namespaceStringThe namespace where the manifest applies.
apiVersionStringThe API version of the Kubernetes resource (for example, v1).
kindStringThe Kubernetes resource kind (for example, ConfigMap and Deployment).
dataObjectThe resource content or data fields.

Command Execution Parameters

ParameterParameter TypeDescriptionRequired
nameStringThe name or label for the command step.Mandatory
cmdStringThe command line to execute (for example, kubectl get pods -n bookinfo).Mandatory

Steps Configuration Parameters

ParameterParameter TypeDescriptionRequired
nameStringThe step name referencing a Helm config, manifest, or command.Mandatory
typeStringThe step type for deployment. The values are helm, manifest, or command.Mandatory

Example Request

curl -X POST --location --globoff --request 'https://{{host}}/api/v1/workload-placement' \
{
"workspaceName": "placement-workspace",
"name": "workload-placement",
"clusterNames": [
"worker-1",
"worker-2"
],
"numPlacements": 2,
"helmConfigs": [
{
"name": "grafana-test",
"chart": "grafana/grafana",
"releaseName": "grafana-test",
"releaseNamespace": "bookinfo",
"repoName": "grafana",
"repoURL": "https://grafana.github.io/helm-charts",
"version": "7.3.10",
"secretRef": {
"name": "vaidio-secret"
},
"values": {
"replicas": 1,
"service": {
"type": "ClusterIP",
"port": 3000
}
},
"helmFlags":{
"createNamespace": true,
"wait": true,
"atomic": true,
"skipCRDs": true,
"cleanupOnFail": true,
"timeout": "10m"
}
}
],
"manifestResources": [
{
"name": "sample-configmap",
"manifest": {
"apiVersion": "v1",
"kind": "ConfigMap",
"metadata": {
"namespace": "bookinfo",
"name": "sample-configmap"
},
"data": {
"database.properties": "host=localhost\nport=5432\ndatabase=myapp",
"ui.properties": "color=purple\ntheme=dark\nlanguage=en"
}
}
}
],
"cmdExec": [
{
"name": "verify-namespace",
"cmd": "kubectl get pods -n bookinfo"
}
],
"steps": [
{
"name": "verify-namespace",
"type": "command"
},
{
"name": "grafana-test",
"type": "helm"
},
{
"name": "sample-configmap",
"type": "manifest"
}
],
"gprDetails": {
"enableAutoGpuSelection": false,
"instanceType": "g6-standard-8",
"gpuShape": "NVIDIA-H100",
"numberOfGPUs": 1,
"numberOfGPUNodes": 1,
"exitDuration": "0d0h10m",
"priority": 201,
"memoryPerGpu": 23
},
"workloadTemplateName": "sample-workload-template",
"enableBurst": true
}

Example Responses

Response: Success

{
"statusCode": 200,
"status": "OK",
"message": "Success",
"data": {
"name": "workload-placement"
}
}

Response: Error

{
"statusCode":404,
"status":"UPSTREAM_REQUEST_ERROR",
"message":"Error while creating a Workload Placement",
"data":null,
"error":{
"errorKey":"UPSTREAM_REQUEST_ERROR",
"message":"Error while creating a Workload Placement",
"data":"Error: workloadtemplates.gpr.kubeslice.io \"sample-workload-templates\" not found; Reason: NotFound; Refer Documentation: https://docs.avesha.io/documentation/enterprise-egs"
}}

List Workload Placements

Use this API to list all the Workload Placements.

Method and URL

GET /api/v1/workload-placement

Example Request

curl -X GET --location --globoff --request 'https://{{host}}/api/v1/workload-placement' \

Example Responses

Response: Success

{
"statusCode":200,
"status":"OK",
"message":"Success",
"data":[{
"burstDuration":"3m",
"clusterNames":["worker-1","worker-2"],
"cmdExec":[{"cmd":"kubectl get pods -n bookinfo","name":"create-namespace"}],
"createdAt":"2025-12-01T10:42:11Z",
"deletionPolicy":"Delete",
"gprDetails":{
"exitDuration":"24h0m0s",
"gpuShape":"NVIDIA-H100",
"instanceType":"g6-standard-8",
"memoryPerGpu":15,
"numberOfGPUNodes":1,
"numberOfGPUs":1,
"priority":101},
"helmConfigs":[{
"chart":"vaidio/cuda",
"helmFlags":{"createNamespace":true},
"name":"cuda",
"releaseName":"cuda",
"releaseNamespace":"bookinfo",
"repoName":"vaidio",
"repoURL":"https://smartscaler.nexus.aveshalabs.io/repository/vaidio/",
"secretRef":{"name":"vaidio-secret"},"values":{"replicaCount":1}}],
"manifestResources":[{
"manifest":{"apiVersion":"v1",
"data":{
"database.properties":"host=localhost\nport=5432\ndatabase=myapp\n",
"ui.properties":"color=purple\ntheme=dark\nlanguage=en\n"},
"kind":"ConfigMap",
"metadata":{"name":"sample-configmap","namespace":"bookinfo"}},"name":"sample-configmap"}],
"name":"bookinfo-workload-template",
"numPlacements":1,
"status":{
"clusterPlacementDecisions":[{
"clusterName":"worker-1",
"currentStep":1,
"gprStatus":{},
"message":"Step cuda failed: Helm execution failed: failed to decode username from secret vaidio-secret: illegal base64 data at input byte 4",
"phase":"Failed",
"startTime":"2025-12-01T10:42:11Z",
"stepResults":[{
"duration":"90.429929ms",
"message":"Job completed successfully",
"name":"create-namespace",
"success":true,
"type":"command"},
{
"duration":"26.38µs",
"message":"Helm execution failed: failed to decode username from secret vaidio-secret: illegal base64 data at input byte 4",
"name":"cuda",
"success":false,
"type":"helm"}],
"workloadPlacementName":"bookinfo-workload-template-worker-1"}],
"placementStatus":"created"},
"steps":[
{"name":"create-namespace","type":"command"},
{"name":"cuda","type":"helm"},
{"name":"sample-configmap","type":"manifest"}],
"updatedAt":"2025-12-01T10:42:11Z",
"workloadTemplateName":"",
"workspaceName":"placement-workspace"},
{
"burstDuration":"15m",
"clusterNames":["worker-1","worker-2"],
"cmdExec":[{"cmd":"kubectl get pods -n bookinfo","name":"test-cmd"}],
"createdAt":"2025-12-01T13:05:18Z",
"deletionPolicy":"Delete",
"gprDetails":{
"enableEviction":true,
"exitDuration":"0h0m0s",
"gpuShape":"NVIDIA-H100",
"instanceType":"g6-standard-8",
"memoryPerGpu":48,
"numberOfGPUNodes":1,
"numberOfGPUs":1,
"priority":201,
"requeueOnFailure":true},
"helmConfigs":[{
"chart":"bitnami/nginx",
"helmFlags":{
"atomic":true,"skipCRDs":true,"timeout":"0h10m0s","wait":true},
"name":"nginx-server",
"releaseName":"nginx-server",
"releaseNamespace":"placement-workspace",
"repoName":"bitnami",
"repoURL":"https://charts.bitnami.com/bitnami",
"secretRef":{"name":"grafana-secret"},
"values":{"port":80,"replicaCount":2,"type":"ClusterIP"},"version":"7.3.10"}],
"manifestResources":[{
"manifest":{
"apiVersion":"v1",
"data":{
"database.properties":"host=localhost\nport=5432\ndatabase=myapp",
"ui.properties":"color=purple\ntheme=dark\nlanguage=en"},
"kind":"ConfigMap",
"metadata":{
"name":"sample-configmap",
"namespace":"bookinfo"}},"name":"eryre"}],
"name":"test-from-ui",
"numPlacements":2,
"status":{
"clusterPlacementDecisions":
[{
"clusterName":"worker-1",
"gprStatus":{},
"message":"Secret grafana-secret not found in controller cluster, helm config: nginx-server",
"workloadPlacementName":
"test-from-ui-worker-1"},
{
"clusterName":"worker-2",
"gprStatus":{},
"message":"Secret grafana-secret not found in controller cluster, helm config: nginx-server",
"workloadPlacementName":"test-from-ui-worker-2"}
],"placementStatus":"created"},
"steps":[{
"name":"test-cmd",
"type":"command"},
{
"name":"nginx-server",
"type":"helm"},
{
"name":"eryre",
"type":"manifest"}],
"updatedAt":"2025-12-01T13:05:18Z",
"workloadTemplateName":"",
"workspaceName":"placement-workspace"}
,{"
clusterNames":["worker-1","worker-2"],
"cmdExec":[{"cmd":"kubectl get pods -n bookinfo","name":"verify-namespace"}],
"createdAt":"2025-12-01T17:41:58Z",
"deletionPolicy":"Delete",
"enableBurst":true,
"gprDetails":{
"enableEviction":true,
"exitDuration":"0h10m0s",
"gpuShape":"NVIDIA-H100",
"instanceType":"g6-standard-8",
"memoryPerGpu":23,"numberOfGPUNodes":1,"numberOfGPUs":1,"priority":201,"requeueOnFailure":true},
"helmConfigs":[{
"chart":"grafana/grafana",
"helmFlags":{
"atomic":true,"cleanupOnFail":true,"createNamespace":true,"skipCRDs":true,"timeout":"0h10m0s","wait":true},
"name":"grafana-test",
"releaseName":"grafana-test",
"releaseNamespace":"bookinfo",
"repoName":"grafana",
"repoURL":"https://grafana.github.io/helm-charts",
"secretRef":{"name":"vaidio-secret"},
"values":{
"replicas":1,
"service":{"port":3000,"type":"ClusterIP"}},
"version":"7.3.10"}],
"manifestResources":[{
"manifest":{"apiVersion":"v1",
"data":{
"database.properties":"host=localhost\nport=5432\ndatabase=myapp",
"ui.properties":"color=purple\ntheme=dark\nlanguage=en"},
"kind":"ConfigMap",
"metadata":{
"name":"sample-configmap",
"namespace":"bookinfo"}},"name":"sample-configmap"}],
"name":"workload-placement",
"numPlacements":2,
"status":{
"clusterPlacementDecisions":[{
"clusterName":"worker-1",
"currentStep":1,
"gprStatus":{},
"message":"Step grafana-test failed: Helm execution failed: failed to decode username from secret vaidio-secret: illegal base64 data at input byte 4",
"phase":"Failed",
"startTime":"2025-12-01T17:41:58Z",
"stepResults":[{
"duration":"78.068681ms",
"message":"Job completed successfully",
"name":"verify-namespace",
"success":true,
"type":"command"},
{
"duration":"45.039µs",
"message":"Helm execution failed: failed to decode username from secret vaidio-secret: illegal base64 data at input byte 4",
"name":"grafana-test",
"success":false,
"type":"helm"}],
"workloadPlacementName":
"workload-placement-worker-1"},
{
"clusterName":"worker-2",
"currentStep":1,
"gprStatus":{},
"message":"Step grafana-test failed: Helm execution failed: failed to decode username from secret vaidio-secret: illegal base64 data at input byte 4",
"phase":"Failed",
"startTime":"2025-12-01T17:41:58Z",
"stepResults":[{
"duration":"6.105809ms",
"message":"Job completed successfully","name":"verify-namespace","success":true,"type":"command"},
{
"duration":"31.19µs",
"message":"Helm execution failed: failed to decode username from secret vaidio-secret: illegal base64 data at input byte 4",
"name":"grafana-test",
"success":false,
"type":"helm"}],"workloadPlacementName":"workload-placement-worker-2"}],
"placementStatus":"created"},
"steps":[
{"name":"verify-namespace","type":"command"},
{"name":"grafana-test","type":"helm"},
{"name":"sample-configmap","type":"manifest"}],
"updatedAt":"2025-12-01T17:41:58Z",
"workloadTemplateName":"sample-workload-template","workspaceName":"placement-workspace"}]} }]}

Response: Error

{
"statusCode": 500,
"status": "Error",
"message": "Internal Server Error",
"data": null,
"error": {
"errorKey": "",
"message": "Failed to fetch workload placements",
"data": "{\"error\":{\"Message\":\"Error retrieving workload placements\",\"Status\":500,\"DetailedError\":{\"Errormessage\":\"kubernetes API timeout\",\"Reason\":\"InternalError\",\"Details\":\"\"},\"StatusCode\":500,\"ReferenceDocumentation\":\"https://docs.avesha.io/documentation/enterprise-egs\"}}"
}
}

Get Workload Placement

Use this API to get the Workload Placement by name.

Method and URL

GET /api/v1/workload-placement/{name} 

Example Request

curl -X GET --location --globoff --request 'https://{{host}}/api/v1/workload-placement/bookinfo-workload-template-worker-4-0' \

Example Responses

Response: Success

{
"statusCode":200,
"status":"OK",
"message":"Success",
"data":{
"clusterNames":["worker-1","worker-2"],
"cmdExec":[{
"cmd":"kubectl get pods -n bookinfo","name":"verify-namespace"}],
"createdAt":"2025-12-01T17:41:58Z",
"deletionPolicy":"Delete",
"enableBurst":true,
"gprDetails":{
"enableEviction":true,
"exitDuration":"0h10m0s",
"gpuShape":"NVIDIA-H100",
"instanceType":"g6-standard-8",
"memoryPerGpu":23,
"numberOfGPUNodes":1,
"numberOfGPUs":1,
"priority":201,
"requeueOnFailure":true},
"helmConfigs":[{
"chart":"grafana/grafana",
"helmFlags":{
"atomic":true,
"cleanupOnFail":true,
"createNamespace":true,"skipCRDs":true,"timeout":"0h10m0s","wait":true},
"name":"grafana-test",
"releaseName":"grafana-test",
"releaseNamespace":"bookinfo",
"repoName":"grafana",
"repoURL":"https://grafana.github.io/helm-charts",
"secretRef":{"name":"vaidio-secret"},
"values":{"replicas":1,"service":{"port":3000,"type":"ClusterIP"}},
"version":"7.3.10"}],
"manifestResources":[{
"manifest":{
"apiVersion":"v1",
"data":{
"database.properties":"host=localhost\nport=5432\ndatabase=myapp",
"ui.properties":"color=purple\ntheme=dark\nlanguage=en"},
"kind":"ConfigMap",
"metadata":{
"name":"sample-configmap",
"namespace":"bookinfo"}},
"name":"sample-configmap"}],
"name":"workload-placement",
"numPlacements":2,
"status":{
"clusterPlacementDecisions":[{
"clusterName":"worker-1",
"currentStep":1,
"gprStatus":{},
"message":"Step grafana-test failed: Helm execution failed: failed to decode username from secret vaidio-secret: illegal base64 data at input byte 4",
"phase":"Failed",
"startTime":"2025-12-01T17:41:58Z",
"stepResults":[{
"duration":"78.068681ms",
"message":"Job completed successfully",
"name":"verify-namespace",
"success":true,
"type":"command"},
{
"duration":"45.039µs",
"message":"Helm execution failed: failed to decode username from secret vaidio-secret: illegal base64 data at input byte 4",
"name":"grafana-test","success":false,"type":"helm"}],
"workloadPlacementName":"workload-placement-worker-1"},
{
"clusterName":"worker-2",
"currentStep":1,
"gprStatus":{},
"message":"Step grafana-test failed: Helm execution failed: failed to decode username from secret vaidio-secret: illegal base64 data at input byte 4",
"phase":"Failed",
"startTime":"2025-12-01T17:41:58Z",
"stepResults":[{
"duration":"6.105809ms",
"message":"Job completed successfully",
"name":"verify-namespace",
"success":true,
"type":"command"},
{
"duration":"31.19µs",
"message":"Helm execution failed: failed to decode username from secret vaidio-secret: illegal base64 data at input byte 4",
"name":"grafana-test",
"success":false,
"type":"helm"}],
"workloadPlacementName":"workload-placement-worker-2"}],
"placementStatus":"created"},
"steps":[{
"name":"verify-namespace",
"type":"command"},
{
"name":"grafana-test",
"type":"helm"},
{
"name":"sample-configmap",
"type":"manifest"}],
"updatedAt":"2025-12-01T17:41:58Z",
"workloadTemplateName":"sample-workload-template",
"workspaceName":"placement-workspace"
}}

Response: Error

{
"statusCode":404,
"status":"UPSTREAM_REQUEST_ERROR",
"message":"Error while fetching Workload Placement",
"data":null,
"error":{"errorKey":"UPSTREAM_REQUEST_ERROR",
"message":"Error while fetching Workload Placement",
"data":"Error: workloadplacements.worker.kubeslice.io \"sample-workload-placements\" not found; Reason: NotFound; Refer Documentation: https://docs.avesha.io/documentation/enterprise-egs"
}}

Update Workload Placement

Use this API to update the Workload Placement.

Method and URL

PUT /api/v1/workload-placement/{name}

Change {name} to the actual name of the workload placement you want to update. Workload placement name (from path), must match existing CR.

Update Rules

ConditionEditable FieldsDescription
When status.provisioningStatus is Pending or QueuedAll fields except workspaceName and nameThe workload is not yet provisioned, so full reconfiguration is allowed.
When status.provisioningStatus is SuccessfulOnly burstDuration and deletionPolicyThe workload is being processed or partially deployed, only limited updates are allowed.
When status.provisioningStatus is CompletedNo fields editableAfter provisioning is successful, the CR becomes immutable.

Example Request

You can edit the Workload Placement if the GPR provisioning request is still in the pending or queued state.

Request Body Example (Allowed full update – Pending/Queued)

curl -X POST --location --globoff --request 'https://{{host}}/api/v1/workload-placement/{name}' \
{
"workspaceName": "placement-workspace",
"clusterNames": [
"worker-1",
"worker-2"
],
"numPlacements": 2,
"helmConfigs": [
{
"name": "grafana-test",
"chart": "grafana/grafana",
"releaseName": "grafana-test",
"releaseNamespace": "bookinfo",
"repoName": "grafana",
"repoURL": "https://grafana.github.io/helm-charts",
"version": "7.3.10",
"secretRef": {
"name": "vaidio-secret"
},
"values": {
"replicas": 1,
"service": {
"type": "ClusterIP",
"port": 3000
}
},
"helmFlags":{
"createNamespace": true,
"wait": true,
"atomic": true,
"skipCRDs": true,
"cleanupOnFail": true,
"timeout": "10m"
}
}
],
"manifestResources": [
{
"name": "sample-configmap",
"manifest": {
"apiVersion": "v1",
"kind": "ConfigMap",
"metadata": {
"namespace": "bookinfo",
"name": "sample-configmap"
},
"data": {
"database.properties": "host=localhost\nport=5432\ndatabase=myapp",
"ui.properties": "color=purple\ntheme=dark\nlanguage=en"
}
}
}
],
"cmdExec": [
{
"name": "verify-namespace",
"cmd": "kubectl get pods -n bookinfo"
}
],
"steps": [
{
"name": "verify-namespace",
"type": "command"
},
{
"name": "grafana-test",
"type": "helm"
},
{
"name": "sample-configmap",
"type": "manifest"
}
],
"gprDetails": {
"enableAutoGpuSelection": false,
"instanceType": "g6-standard-8",
"gpuShape": "NVIDIA-H100",
"numberOfGPUs": 1,
"numberOfGPUNodes": 1,
"exitDuration": "0d0h10m",
"priority": 201,
"memoryPerGpu": 23
},
"workloadTemplateName": "sample-workload-template",
"enableBurst": true
}

Request Body Example (Limited update – Active but not successful)

{
"burstDuration": "30m",
"deletionPolicy": "Retain"
}

Example Responses

Response: Success

{
"statusCode":200,
"status":"OK",
"message":"Success",
"data":{
"name":"sample-workload-placement"
}}

Responses: Error

{
"statusCode":400,
"status":"UPSTREAM_REQUEST_ERROR",
"message":"Cannot update fields other than helmConfigs and manifestResources",
"data":null,
"error":{
"errorKey":"UPSTREAM_REQUEST_ERROR",
"message":"Cannot update fields other than helmConfigs and manifestResources",
"data":"Error: The following fields cannot be updated when placementStatus is not pending: clusterNames, cmdExec, enableBurst, gprDetails, numPlacements, steps, workloadTemplateName, workspaceName. Only helmConfigs and manifestResources can be updated.; Refer Documentation: https://docs.avesha.io/documentation/enterprise-egs"
}}

Delete a Workload Placement

Use this API to delete a Workload Placement.

Method and URL

DELETE /api/v1/workload-placement/{name}

Change {name} to the actual name of the workload placement you want to delete.

Deletion Rules

ConditionEditable ParametersDescription
When status.provisioningStatus is NOT one of (Successful, Completed, Failed)Deletion AllowedWorkload is still provisioning or pending — safe to delete.
When status.provisioningStatus is Successful, Completed, or FailedDeletion UnallowedWorkload lifecycle finished — deletion not allowed.

Example Requests

curl -X DELETE --location --globoff --request 'https://{{host}}/api/v1/workload-placement/{name}' \

Example Responses

Responses: Success

{
"statusCode":200,
"status":"OK",
"message":"Success",
"data":{}
}

Example Response: Error

{
"statusCode":404,
"status":"UPSTREAM_REQUEST_ERROR",
"message":"Error while deleting Workload Placement",
"data":null,
"error":{
"errorKey":"UPSTREAM_REQUEST_ERROR",
"message":"Error while deleting Workload Placement",
"data":"Error: workloadplacements.worker.kubeslice.io \"sample-workload-placement\" not found; Reason: NotFound; Refer Documentation: https://docs.avesha.io/documentation/enterprise-egs"
}}

Get a Workload Placement in a Workspace

Method and URL

GET /api/v1/workload-placement/workspace/{name}

Example Request

GET /api/v1/workload-placement/workspace/placement-workspace

Example Responses

Response: Success

{ 
"statusCode":200,
"status":"OK",
"message":"Success",
"data":[{
"burstDuration":"15m",
"clusterNames":["worker-1","worker-2"],
"cmdExec":[{
"cmd":"kubectl get pods -n bookinfo","name":"test-cmd"}],
"createdAt":"2025-12-01T13:05:18Z",
"deletionPolicy":"Delete",
"gprDetails":{
"enableEviction":true,
"exitDuration":"0h0m0s",
"gpuShape":"NVIDIA-H100",
"instanceType":"g6-standard-8",
"memoryPerGpu":48,
"numberOfGPUNodes":1,
"numberOfGPUs":1,
"priority":201,
"requeueOnFailure":true},
"helmConfigs":[{
"chart":"bitnami/nginx",
"helmFlags":{
"atomic":true,
"skipCRDs":true,
"timeout":"0h10m0s",
"wait":true},
"name":"nginx-server",
"releaseName":"nginx-server",
"releaseNamespace":"placement-workspace",
"repoName":"bitnami",
"repoURL":"https://charts.bitnami.com/bitnami",
"secretRef":{
"name":"grafana-secret"},
"values":{
"port":80,
"replicaCount":2,
"type":"ClusterIP"},
"version":"7.3.10"}],
"manifestResources":[{
"manifest":{
"apiVersion":"v1",
"data":{"database.properties":"host=localhost\nport=5432\ndatabase=myapp",
"ui.properties":"color=purple\ntheme=dark\nlanguage=en"},
"kind":"ConfigMap",
"metadata":{
"name":"sample-configmap",
"namespace":"bookinfo"}},
"name":"eryre"}],
"name":"test-from-ui",
"numPlacements":2,
"status":{"
clusterPlacementDecisions":[{"
clusterName":"worker-1",
"gprStatus":{},
"message":"Secret grafana-secret not found in controller cluster, helm config: nginx-server","workloadPlacementName":"test-from-ui-worker-1"},
{"clusterName":"worker-2",
"gprStatus":{},
"message":"Secret grafana-secret not found in controller cluster, helm config: nginx-server","workloadPlacementName":"test-from-ui-worker-2"}],
"placementStatus":"created"},
"steps":[{
"name":"test-cmd",
"type":"command"},
{
"name":"nginx-server",
"type":"helm"
},
{
"name":"eryre",
"type":"manifest"}],
"updatedAt":"2025-12-01T13:05:18Z",
"workloadTemplateName":"",
"workspaceName":"placement-workspace"
},
{
"clusterNames":["worker-1","worker-2"],
"cmdExec":[{
"cmd":"kubectl get pods -n bookinfo",
"name":"verify-namespace"}],
"createdAt":"2025-12-01T17:41:58Z",
"deletionPolicy":"Delete",
"enableBurst":true,
"gprDetails":{
"enableEviction":true,
"exitDuration":"0h10m0s",
"gpuShape":"NVIDIA-H100",
"instanceType":"g6-standard-8",
"memoryPerGpu":23,
"numberOfGPUNodes":1,
"numberOfGPUs":1,
"priority":201,
"requeueOnFailure":true},
"helmConfigs":[
{
"chart":"grafana/grafana",
"helmFlags":{
"atomic":true,
"cleanupOnFail":true,
"createNamespace":true,
"skipCRDs":true,
"timeout":"0h10m0s",
"wait":true},
"name":"grafana-test",
"releaseName":"grafana-test",
"releaseNamespace":"bookinfo",
"repoName":"grafana",
"repoURL":"https://grafana.github.io/helm-charts",
"secretRef":{
"name":"vaidio-secret"},
"values":{"replicas":1,"service":{"port":3000,"type":"ClusterIP"}},
"version":"7.3.10"}],
"manifestResources":[{
"manifest":{"
apiVersion":"v1",
"data":{"
database.properties":"host=localhost\nport=5432\ndatabase=myapp",
"ui.properties":"color=purple\ntheme=dark\nlanguage=en"},
"kind":"ConfigMap",
"metadata":{
"name":"sample-configmap","namespace":"bookinfo"}},
"name":"sample-configmap"}],
"name":"workload-placement",
"numPlacements":2,
"status":{"
clusterPlacementDecisions":[{"clusterName":"worker-1","currentStep":1,"gprStatus":{},"message":"Step grafana-test failed: Helm execution failed: failed to decode username from secret vaidio-secret: illegal base64 data at input byte 4",
"phase":"Failed",
"startTime":"2025-12-01T17:41:58Z",
"stepResults":[{
"duration":"78.068681ms",
"message":"Job completed successfully",
"name":"verify-namespace",
"success":true,
"type":"command"},
{
"duration":"45.039µs",
"message":"Helm execution failed: failed to decode username from secret vaidio-secret: illegal base64 data at input byte 4",
"name":"grafana-test",
"success":false,"type":"helm"}],
"workloadPlacementName":"workload-placement-worker-1"},
{
"clusterName":"worker-2",
"currentStep":1,
"gprStatus":{},
"message":"Step grafana-test failed: Helm execution failed: failed to decode username from secret vaidio-secret: illegal base64 data at input byte 4",
"phase":"Failed",
"startTime":"2025-12-01T17:41:58Z",
"stepResults":[{
"duration":"6.105809ms",
"message":"Job completed successfully",
"name":"verify-namespace",
"success":true,
"type":"command"},
{
"duration":"31.19µs",
"message":"Helm execution failed: failed to decode username from secret vaidio-secret: illegal base64 data at input byte 4",
"name":"grafana-test",
"success":false,
"type":"helm"}],
"workloadPlacementName":"workload-placement-worker-2"}],
"placementStatus":"created"},
"steps":[{
"name":"verify-namespace",
"type":"command"},
{
"name":"grafana-test",
"type":"helm"},
{
"name":"sample-configmap",
"type":"manifest"}],
"updatedAt":"2025-12-01T17:41:58Z",
"workloadTemplateName":"sample-workload-template",
"workspaceName":"placement-workspace"}
]}

Response: Error

{
"statusCode":404,
"status":"UPSTREAM_REQUEST_ERROR",
"message":"Error while listing Workload Placements by workspace name",
"data":null,
"error":{
"errorKey":"UPSTREAM_REQUEST_ERROR",
"message":"Error while listing Workload Placements by workspace name",
"data":"Error: sliceconfigs.controller.kubeslice.io \"pizzas\" not found; Reason: NotFound; Refer Documentation: https://docs.avesha.io/documentation/enterprise-egs"
}}