Skip to content
Proud to collaborate with Microsoft for Startups

kubernetes.manifest.validate ​

Server-side schema validation of a manifest with strict field checking (no mutation)

Server-side schema validation of a Kubernetes manifest with strict field checking (no mutation).

Issues a kubectl apply --dry-run=server --validate=strict equivalent via the raw REST API:

  • Content-Type: application/apply-patch+json
  • ?dryRun=All&fieldValidation=Strict

The call is non-mutating: the dryRun=All query parameter tells the API server to validate and admit the request through every admission webhook but not to persist any changes.

Inputs:

  • connection_uuid: Cloud connection UUID (required)
  • manifest: Single-resource manifest dict with at least apiVersion, kind, metadata.name and optionally metadata.namespace (required)

Outputs:

  • valid: True if the manifest passed strict validation, False otherwise
  • errors: List of {field, message} dicts; empty when valid=True

Plugin required: context.get_plugin("connection").kubernetes_runner_clients(connection_uuid, organization_uuid) must expose api_client (a kubernetes.client.ApiClient instance).

Overview ​

PropertyValue
Workflow typeAtomic
LibraryApp-kubernetes
Version1.0

Input Schema ​

FieldTypeRequiredDefaultDescription
connection_uuiduuidYes——
manifestjsonYes——
organization_uuiduuidNo——

Output Schema ​

FieldTypeRequiredDefaultDescription
connection_uuiduuidNo——
organization_uuiduuidNo——
manifestjsonNo——
validbooleanNo——
errorsjsonNo——
failure_reasonstringNo——
failure_typestringNo——
failed_actionstringNo——
failed_at_statestringNo——
failed_stepstringNo——
failed_layerstringNo——
errorstringNo——
error_typestringNo——

States ​

StateInitialTerminalSuccessAuto-advanceDescription
pendingYesNo—execute—
completedNoYesYes——
failedNoYesNo——

State Diagram ​

Transitions ​

FromActionToDescription
pendingexecutecompleted—
* (any state)failfailed—

API Usage ​

bash
POST /api/workflows/start
Content-Type: application/json

{
  "workflow_type": "kubernetes.manifest.validate",
  "initial_data": {
    "connection_uuid": "value",
    "manifest": "value"
  }
}