Crossplane Configurations API

Configurations are Crossplane packages that bundle Compositions and CompositeResourceDefinitions together into a distributable unit that can be installed into a Crossplane control plane.

OpenAPI Specification

crossplane-configurations-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Crossplane Kubernetes CompositeResourceDefinitions Configurations API
  description: 'The Crossplane Kubernetes API extends the Kubernetes API server with custom resources for managing cloud infrastructure declaratively. Resources are organized into two main API groups: apiextensions.crossplane.io for composition primitives (Compositions, CompositeResourceDefinitions, EnvironmentConfigs) and pkg.crossplane.io for package management (Providers, Functions, Configurations and their revisions). All operations use standard Kubernetes REST conventions and are authenticated through the Kubernetes API server''s authentication mechanisms.'
  version: '2.2'
  contact:
    name: Crossplane Community
    url: https://slack.crossplane.io/
  termsOfService: https://www.crossplane.io/
servers:
- url: https://kubernetes.default.svc
  description: Kubernetes API Server (in-cluster)
security:
- bearerAuth: []
tags:
- name: Configurations
  description: Configurations are Crossplane packages that bundle Compositions and CompositeResourceDefinitions together into a distributable unit that can be installed into a Crossplane control plane.
paths:
  /apis/pkg.crossplane.io/v1/configurations:
    get:
      operationId: listConfigurations
      summary: Crossplane List Configurations
      description: Returns a list of all Configuration package installations. Configurations bundle Compositions and XRDs together, enabling platform teams to distribute reusable platform APIs as versioned OCI packages.
      tags:
      - Configurations
      parameters:
      - $ref: '#/components/parameters/labelSelector'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/continueToken'
      responses:
        '200':
          description: Successfully listed Configurations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConfigurationList'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createConfiguration
      summary: Crossplane Install a Configuration
      description: Installs a new Configuration package. Crossplane fetches the OCI image, installs the bundled Compositions and XRDs, and tracks revisions for upgrade management.
      tags:
      - Configurations
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Configuration'
      responses:
        '201':
          description: Configuration installation initiated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Configuration'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '409':
          $ref: '#/components/responses/Conflict'
  /apis/pkg.crossplane.io/v1/configurations/{name}:
    get:
      operationId: getConfiguration
      summary: Crossplane Get a Configuration
      description: Returns details of a specific Configuration installation, including its package image reference, revision history, and status conditions.
      tags:
      - Configurations
      parameters:
      - $ref: '#/components/parameters/name'
      responses:
        '200':
          description: Successfully retrieved the Configuration.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Configuration'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteConfiguration
      summary: Crossplane Uninstall a Configuration
      description: Removes a Configuration installation. Crossplane will remove the bundled Compositions and XRDs if no other resources depend on them.
      tags:
      - Configurations
      parameters:
      - $ref: '#/components/parameters/name'
      responses:
        '200':
          description: Configuration uninstallation initiated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Status'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  parameters:
    labelSelector:
      name: labelSelector
      in: query
      required: false
      description: A selector to restrict the list of returned objects by their labels. Defaults to everything.
      schema:
        type: string
    continueToken:
      name: continue
      in: query
      required: false
      description: Token returned by a previous list call to retrieve the next page of results. This token encodes list position and expiration time.
      schema:
        type: string
    name:
      name: name
      in: path
      required: true
      description: Name of the Crossplane resource.
      schema:
        type: string
    limit:
      name: limit
      in: query
      required: false
      description: Maximum number of items to return in a single response. The server may return fewer items than requested. Use the continue token for pagination.
      schema:
        type: integer
        minimum: 1
  responses:
    Unauthorized:
      description: Authentication credentials are missing or invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Status'
    BadRequest:
      description: The request was malformed or failed validation.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Status'
    NotFound:
      description: The requested resource was not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Status'
    Conflict:
      description: A resource with this name already exists.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Status'
  schemas:
    PackageStatus:
      type: object
      description: Common status fields for Crossplane package resources.
      properties:
        currentRevision:
          type: string
          description: Name of the currently active package revision.
        conditions:
          type: array
          description: Status conditions for the package.
          items:
            $ref: '#/components/schemas/Condition'
    Configuration:
      type: object
      description: A Crossplane Configuration package that bundles Compositions and CompositeResourceDefinitions into a versioned, distributable OCI image for sharing platform APIs across control planes.
      required:
      - apiVersion
      - kind
      - metadata
      - spec
      properties:
        apiVersion:
          type: string
          const: pkg.crossplane.io/v1
          description: API version for the Configuration resource.
        kind:
          type: string
          const: Configuration
          description: Resource kind identifier.
        metadata:
          $ref: '#/components/schemas/ObjectMeta'
        spec:
          $ref: '#/components/schemas/PackageSpec'
        status:
          $ref: '#/components/schemas/PackageStatus'
    Status:
      type: object
      description: A Kubernetes API Status response used for errors and operation results.
      properties:
        apiVersion:
          type: string
          description: API version of the Status object.
        kind:
          type: string
          const: Status
          description: Always Status.
        status:
          type: string
          description: Status of the operation, Success or Failure.
        message:
          type: string
          description: Human-readable description of the status.
        reason:
          type: string
          description: Machine-readable reason for the status, such as NotFound or AlreadyExists.
        code:
          type: integer
          description: HTTP status code corresponding to this status.
    ObjectMeta:
      type: object
      description: Standard Kubernetes object metadata.
      required:
      - name
      properties:
        name:
          type: string
          description: Unique name of the resource within its scope.
        namespace:
          type: string
          description: Namespace of the resource. Crossplane core resources are cluster-scoped and do not use namespace.
        labels:
          type: object
          description: Key-value pairs for organizing and selecting resources.
          additionalProperties:
            type: string
        annotations:
          type: object
          description: Non-identifying metadata attached to the resource.
          additionalProperties:
            type: string
        resourceVersion:
          type: string
          description: Opaque string that identifies the version of the resource for optimistic concurrency.
        uid:
          type: string
          description: Unique identifier for the resource assigned by the API server.
        generation:
          type: integer
          description: Sequence number for changes to the spec. Incremented by the API server on spec changes.
        creationTimestamp:
          type: string
          format: date-time
          description: Timestamp when the resource was created.
        deletionTimestamp:
          type: string
          format: date-time
          description: Timestamp after which the resource will be deleted, set when deletion is requested.
        finalizers:
          type: array
          description: Finalizers that must be cleared before the object is deleted.
          items:
            type: string
    PackageSpec:
      type: object
      description: Common specification fields for Crossplane package resources (Provider, Function, Configuration).
      required:
      - package
      properties:
        package:
          type: string
          description: OCI image reference for the package, including registry, repository, and tag or digest.
        packagePullPolicy:
          type: string
          enum:
          - Always
          - IfNotPresent
          - Never
          description: Image pull policy for fetching the package OCI image.
        packagePullSecrets:
          type: array
          description: References to Kubernetes secrets containing OCI registry credentials.
          items:
            type: object
            required:
            - name
            properties:
              name:
                type: string
                description: Name of the image pull secret.
        revisionActivationPolicy:
          type: string
          enum:
          - Automatic
          - Manual
          description: Policy for activating new package revisions. Automatic activates immediately; Manual requires explicit activation.
        revisionHistoryLimit:
          type: integer
          minimum: 0
          description: Number of inactive package revisions to retain for rollback.
        runtimeConfigRef:
          type: object
          description: Reference to a DeploymentRuntimeConfig for customizing the package's runtime deployment.
          required:
          - name
          properties:
            name:
              type: string
              description: Name of the DeploymentRuntimeConfig.
            apiVersion:
              type: string
              description: API version of the referenced resource.
            kind:
              type: string
              description: Kind of the referenced resource.
    ConfigurationList:
      type: object
      description: A list of Configuration resources.
      required:
      - apiVersion
      - kind
      - items
      properties:
        apiVersion:
          type: string
          description: API version for the list resource.
        kind:
          type: string
          const: ConfigurationList
          description: List kind identifier.
        metadata:
          type: object
          properties:
            resourceVersion:
              type: string
              description: Resource version of the list.
            continue:
              type: string
              description: Continuation token for pagination.
        items:
          type: array
          description: List of Configuration resources.
          items:
            $ref: '#/components/schemas/Configuration'
    Condition:
      type: object
      description: A status condition for a Crossplane resource.
      required:
      - type
      - status
      properties:
        type:
          type: string
          description: Type of condition, such as Ready, Synced, or Healthy.
        status:
          type: string
          enum:
          - 'True'
          - 'False'
          - Unknown
          description: Status of the condition.
        reason:
          type: string
          description: Machine-readable reason for the condition's last transition.
        message:
          type: string
          description: Human-readable message describing the current condition state.
        lastTransitionTime:
          type: string
          format: date-time
          description: Timestamp of the last transition for this condition.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Kubernetes service account token or user bearer token for authenticating with the Kubernetes API server. RBAC policies control which Crossplane resources each identity can access.
externalDocs:
  description: Crossplane API Reference
  url: https://docs.crossplane.io/latest/api/