Crossplane · Schema
Crossplane Provider Configuration
Schema for Crossplane Provider and ProviderConfig resources that install and configure cloud provider integrations for infrastructure provisioning.
Apache 2.0CNCFCloud NativeCompositionControl PlaneCustom Resource DefinitionsGraduatedInfrastructure as CodeKubernetesMulti-CloudOpen SourcePlatform EngineeringProviders
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/api-evangelist/crossplane/blob/main/provider-schema.json",
"title": "Crossplane Provider Configuration",
"description": "Schema for Crossplane Provider and ProviderConfig resources that install and configure cloud provider integrations for infrastructure provisioning.",
"type": "object",
"oneOf": [
{ "$ref": "#/$defs/Provider" },
{ "$ref": "#/$defs/ProviderConfig" },
{ "$ref": "#/$defs/DeploymentRuntimeConfig" }
],
"$defs": {
"Provider": {
"type": "object",
"description": "A Crossplane Provider package that extends Crossplane with managed resources for a specific infrastructure platform.",
"required": ["apiVersion", "kind", "metadata", "spec"],
"properties": {
"apiVersion": {
"type": "string",
"const": "pkg.crossplane.io/v1",
"description": "API version for the Provider package resource."
},
"kind": {
"type": "string",
"const": "Provider",
"description": "Resource kind identifier."
},
"metadata": {
"type": "object",
"required": ["name"],
"properties": {
"name": {
"type": "string",
"description": "Name of the Provider installation."
},
"labels": {
"type": "object",
"additionalProperties": { "type": "string" }
},
"annotations": {
"type": "object",
"additionalProperties": { "type": "string" }
}
}
},
"spec": {
"type": "object",
"required": ["package"],
"properties": {
"package": {
"type": "string",
"description": "OCI image reference for the Provider package."
},
"packagePullPolicy": {
"type": "string",
"enum": ["Always", "IfNotPresent", "Never"],
"description": "Image pull policy for the Provider package."
},
"packagePullSecrets": {
"type": "array",
"description": "References to secrets for pulling the package image.",
"items": {
"type": "object",
"required": ["name"],
"properties": {
"name": { "type": "string" }
}
}
},
"revisionActivationPolicy": {
"type": "string",
"enum": ["Automatic", "Manual"],
"description": "Policy for activating new Provider revisions."
},
"revisionHistoryLimit": {
"type": "integer",
"minimum": 0,
"description": "Number of inactive revisions to retain."
},
"controllerConfigRef": {
"type": "object",
"description": "Reference to a ControllerConfig for the Provider pod.",
"required": ["name"],
"properties": {
"name": { "type": "string" }
}
},
"runtimeConfigRef": {
"type": "object",
"description": "Reference to a DeploymentRuntimeConfig for the Provider.",
"required": ["name"],
"properties": {
"name": { "type": "string" },
"apiVersion": { "type": "string" },
"kind": { "type": "string" }
}
}
}
}
}
},
"ProviderConfig": {
"type": "object",
"description": "Configuration for authenticating a Crossplane Provider with a cloud platform.",
"required": ["apiVersion", "kind", "metadata", "spec"],
"properties": {
"apiVersion": {
"type": "string",
"description": "Provider-specific API version, e.g. 'aws.upbound.io/v1beta1'."
},
"kind": {
"type": "string",
"const": "ProviderConfig",
"description": "Resource kind identifier."
},
"metadata": {
"type": "object",
"required": ["name"],
"properties": {
"name": {
"type": "string",
"description": "Name of the ProviderConfig, often 'default'."
},
"labels": {
"type": "object",
"additionalProperties": { "type": "string" }
},
"annotations": {
"type": "object",
"additionalProperties": { "type": "string" }
}
}
},
"spec": {
"type": "object",
"description": "Provider-specific authentication and configuration.",
"properties": {
"credentials": {
"type": "object",
"description": "Credentials for authenticating with the cloud platform.",
"required": ["source"],
"properties": {
"source": {
"type": "string",
"enum": ["Secret", "InjectedIdentity", "Environment", "Filesystem", "Upbound"],
"description": "Source of the credentials."
},
"secretRef": {
"type": "object",
"description": "Reference to a Kubernetes secret containing credentials.",
"required": ["name", "namespace", "key"],
"properties": {
"name": {
"type": "string",
"description": "Name of the credentials secret."
},
"namespace": {
"type": "string",
"description": "Namespace of the credentials secret."
},
"key": {
"type": "string",
"description": "Key within the secret containing the credentials."
}
}
}
}
},
"projectID": {
"type": "string",
"description": "Cloud provider project or account identifier."
},
"region": {
"type": "string",
"description": "Default region for provisioned resources."
},
"assumeRoleChain": {
"type": "array",
"description": "Chain of IAM roles to assume for authentication.",
"items": {
"type": "object",
"required": ["roleARN"],
"properties": {
"roleARN": { "type": "string" },
"externalID": { "type": "string" }
}
}
}
}
}
}
},
"DeploymentRuntimeConfig": {
"type": "object",
"description": "Runtime configuration for Provider deployments.",
"required": ["apiVersion", "kind", "metadata"],
"properties": {
"apiVersion": {
"type": "string",
"const": "pkg.crossplane.io/v1beta1",
"description": "API version for the DeploymentRuntimeConfig."
},
"kind": {
"type": "string",
"const": "DeploymentRuntimeConfig",
"description": "Resource kind identifier."
},
"metadata": {
"type": "object",
"required": ["name"],
"properties": {
"name": { "type": "string" }
}
},
"spec": {
"type": "object",
"description": "Runtime configuration specification.",
"properties": {
"deploymentTemplate": {
"type": "object",
"description": "Template for the Provider deployment.",
"properties": {
"spec": {
"type": "object",
"description": "Deployment spec overrides.",
"properties": {
"replicas": { "type": "integer" },
"selector": { "type": "object" },
"template": { "type": "object" }
}
}
}
},
"serviceAccountTemplate": {
"type": "object",
"description": "Template for the Provider service account.",
"properties": {
"metadata": {
"type": "object",
"properties": {
"annotations": {
"type": "object",
"additionalProperties": { "type": "string" }
}
}
}
}
}
}
}
}
}
}
}