This is a cache of https://docs.okd.io/latest/rest_api/operatorhub_apis/clustercatalog-olm-operatorframework-io-v1.html. It is a snapshot of the page at 2025-07-05T19:43:27.437+0000.
ClusterCatalog [olm.operatorframework.io/v1] - OperatorHub <strong>api</strong>s | <strong>api</strong> reference | OKD 4
×

Specification

Property Type Description

apiVersion

string

apiVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources

kind

string

Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

metadata

ObjectMeta

Standard object’s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

spec

object

spec is the desired state of the ClusterCatalog. spec is required. The controller will work to ensure that the desired catalog is unpacked and served over the catalog content HTTP server.

status

object

status contains information about the state of the ClusterCatalog such as: - Whether or not the catalog contents are being served via the catalog content HTTP server - Whether or not the ClusterCatalog is progressing to a new state - A reference to the source from which the catalog contents were retrieved

.spec

Description

spec is the desired state of the ClusterCatalog. spec is required. The controller will work to ensure that the desired catalog is unpacked and served over the catalog content HTTP server.

Type

object

Required
  • source

Property Type Description

availabilityMode

string

availabilityMode allows users to define how the ClusterCatalog is made available to clients on the cluster. availabilityMode is optional.

Allowed values are "Available" and "Unavailable" and omitted.

When omitted, the default value is "Available".

When set to "Available", the catalog contents will be unpacked and served over the catalog content HTTP server. Setting the availabilityMode to "Available" tells clients that they should consider this ClusterCatalog and its contents as usable.

When set to "Unavailable", the catalog contents will no longer be served over the catalog content HTTP server. When set to this availabilityMode it should be interpreted the same as the ClusterCatalog not existing. Setting the availabilityMode to "Unavailable" can be useful in scenarios where a user may not want to delete the ClusterCatalog all together, but would still like it to be treated as if it doesn’t exist.

priority

integer

priority allows the user to define a priority for a ClusterCatalog. priority is optional.

A ClusterCatalog’s priority is used by clients as a tie-breaker between ClusterCatalogs that meet the client’s requirements. A higher number means higher priority.

It is up to clients to decide how to handle scenarios where multiple ClusterCatalogs with the same priority meet their requirements. When deciding how to break the tie in this scenario, it is recommended that clients prompt their users for additional input.

When omitted, the default priority is 0 because that is the zero value of integers.

Negative numbers can be used to specify a priority lower than the default. Positive numbers can be used to specify a priority higher than the default.

The lowest possible value is -2147483648. The highest possible value is 2147483647.

source

object

source allows a user to define the source of a catalog. A "catalog" contains information on content that can be installed on a cluster. Providing a catalog source makes the contents of the catalog discoverable and usable by other on-cluster components. These on-cluster components may do a variety of things with this information, such as presenting the content in a GUI dashboard or installing content from the catalog on the cluster. The catalog source must contain catalog metadata in the File-Based Catalog (FBC) format. For more information on FBC, see https://olm.operatorframework.io/docs/reference/file-based-catalogs/#docs. source is a required field.

Below is a minimal example of a ClusterCatalogSpec that sources a catalog from an image:

source: type: Image image: ref: quay.io/operatorhubio/catalog:latest

.spec.source

Description

source allows a user to define the source of a catalog. A "catalog" contains information on content that can be installed on a cluster. Providing a catalog source makes the contents of the catalog discoverable and usable by other on-cluster components. These on-cluster components may do a variety of things with this information, such as presenting the content in a GUI dashboard or installing content from the catalog on the cluster. The catalog source must contain catalog metadata in the File-Based Catalog (FBC) format. For more information on FBC, see https://olm.operatorframework.io/docs/reference/file-based-catalogs/#docs. source is a required field.

Below is a minimal example of a ClusterCatalogSpec that sources a catalog from an image:

source:
  type: Image
  image:
    ref: quay.io/operatorhubio/catalog:latest
Type

object

Required
  • type

Property Type Description

image

object

image is used to configure how catalog contents are sourced from an OCI image. This field is required when type is Image, and forbidden otherwise.

type

string

type is a reference to the type of source the catalog is sourced from. type is required.

The only allowed value is "Image".

When set to "Image", the ClusterCatalog content will be sourced from an OCI image. When using an image source, the image field must be set and must be the only field defined for this type.

.spec.source.image

Description

image is used to configure how catalog contents are sourced from an OCI image. This field is required when type is Image, and forbidden otherwise.

Type

object

Required
  • ref

Property Type Description

pollIntervalMinutes

integer

pollIntervalMinutes allows the user to set the interval, in minutes, at which the image source should be polled for new content. pollIntervalMinutes is optional. pollIntervalMinutes can not be specified when ref is a digest-based reference.

When omitted, the image will not be polled for new content.

ref

string

ref allows users to define the reference to a container image containing Catalog contents. ref is required. ref can not be more than 1000 characters.

A reference can be broken down into 3 parts - the domain, name, and identifier.

The domain is typically the registry where an image is located. It must be alphanumeric characters (lowercase and uppercase) separated by the "." character. Hyphenation is allowed, but the domain must start and end with alphanumeric characters. Specifying a port to use is also allowed by adding the ":" character followed by numeric values. The port must be the last value in the domain. Some examples of valid domain values are "registry.mydomain.io", "quay.io", "my-registry.io:8080".

The name is typically the repository in the registry where an image is located. It must contain lowercase alphanumeric characters separated only by the ".", "_", "\__", "-" characters. Multiple names can be concatenated with the "/" character. The domain and name are combined using the "/" character. Some examples of valid name values are "operatorhubio/catalog", "catalog", "my-catalog.prod". An example of the domain and name parts of a reference being combined is "quay.io/operatorhubio/catalog".

The identifier is typically the tag or digest for an image reference and is present at the end of the reference. It starts with a separator character used to distinguish the end of the name and beginning of the identifier. For a digest-based reference, the "@" character is the separator. For a tag-based reference, the ":" character is the separator. An identifier is required in the reference.

Digest-based references must contain an algorithm reference immediately after the "@" separator. The algorithm reference must be followed by the ":" character and an encoded string. The algorithm must start with an uppercase or lowercase alpha character followed by alphanumeric characters and may contain the "-", "_", "+", and "." characters. Some examples of valid algorithm values are "sha256", "sha256+b64u", "multihash+base58". The encoded string following the algorithm must be hex digits (a-f, A-F, 0-9) and must be a minimum of 32 characters.

Tag-based references must begin with a word character (alphanumeric + "\_") followed by word characters or ".", and "-" characters. The tag must not be longer than 127 characters.

An example of a valid digest-based image reference is "quay.io/operatorhubio/catalog@sha256:200d4ddb2a73594b91358fe6397424e975205bfbe44614f5846033cad64b3f05" An example of a valid tag-based image reference is "quay.io/operatorhubio/catalog:latest"

.status

Description

status contains information about the state of the ClusterCatalog such as: - Whether or not the catalog contents are being served via the catalog content HTTP server - Whether or not the ClusterCatalog is progressing to a new state - A reference to the source from which the catalog contents were retrieved

Type

object

Property Type Description

conditions

array

conditions is a representation of the current state for this ClusterCatalog.

The current condition types are Serving and Progressing.

The Serving condition is used to represent whether or not the contents of the catalog is being served via the HTTP(S) web server. When it has a status of True and a reason of Available, the contents of the catalog are being served. When it has a status of False and a reason of Unavailable, the contents of the catalog are not being served because the contents are not yet available. When it has a status of False and a reason of UserSpecifiedUnavailable, the contents of the catalog are not being served because the catalog has been intentionally marked as unavailable.

The Progressing condition is used to represent whether or not the ClusterCatalog is progressing or is ready to progress towards a new state. When it has a status of True and a reason of Retrying, there was an error in the progression of the ClusterCatalog that may be resolved on subsequent reconciliation attempts. When it has a status of True and a reason of Succeeded, the ClusterCatalog has successfully progressed to a new state and is ready to continue progressing. When it has a status of False and a reason of Blocked, there was an error in the progression of the ClusterCatalog that requires manual intervention for recovery.

In the case that the Serving condition is True with reason Available and Progressing is True with reason Retrying, the previously fetched catalog contents are still being served via the HTTP(S) web server while we are progressing towards serving a new version of the catalog contents. This could occur when we’ve initially fetched the latest contents from the source for this catalog and when polling for changes to the contents we identify that there are updates to the contents.

conditions[]

object

Condition contains details for one aspect of the current state of this api Resource.

lastUnpacked

string

lastUnpacked represents the last time the contents of the catalog were extracted from their source format. As an example, when using an Image source, the OCI image will be pulled and the image layers written to a file-system backed cache. We refer to the act of this extraction from the source format as "unpacking".

resolvedSource

object

resolvedSource contains information about the resolved source based on the source type.

urls

object

urls contains the URLs that can be used to access the catalog.

.status.conditions

Description

conditions is a representation of the current state for this ClusterCatalog.

The current condition types are Serving and Progressing.

The Serving condition is used to represent whether or not the contents of the catalog is being served via the HTTP(S) web server. When it has a status of True and a reason of Available, the contents of the catalog are being served. When it has a status of False and a reason of Unavailable, the contents of the catalog are not being served because the contents are not yet available. When it has a status of False and a reason of UserSpecifiedUnavailable, the contents of the catalog are not being served because the catalog has been intentionally marked as unavailable.

The Progressing condition is used to represent whether or not the ClusterCatalog is progressing or is ready to progress towards a new state. When it has a status of True and a reason of Retrying, there was an error in the progression of the ClusterCatalog that may be resolved on subsequent reconciliation attempts. When it has a status of True and a reason of Succeeded, the ClusterCatalog has successfully progressed to a new state and is ready to continue progressing. When it has a status of False and a reason of Blocked, there was an error in the progression of the ClusterCatalog that requires manual intervention for recovery.

In the case that the Serving condition is True with reason Available and Progressing is True with reason Retrying, the previously fetched catalog contents are still being served via the HTTP(S) web server while we are progressing towards serving a new version of the catalog contents. This could occur when we’ve initially fetched the latest contents from the source for this catalog and when polling for changes to the contents we identify that there are updates to the contents.

Type

array

.status.conditions[]

Description

Condition contains details for one aspect of the current state of this api Resource.

Type

object

Required
  • lastTransitionTime

  • message

  • reason

  • status

  • type

Property Type Description

lastTransitionTime

string

lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the api field changed is acceptable.

message

string

message is a human readable message indicating details about the transition. This may be an empty string.

observedGeneration

integer

observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.

reason

string

reason contains a programmatic identifier indicating the reason for the condition’s last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed api. The value should be a CamelCase string. This field may not be empty.

status

string

status of the condition, one of True, False, Unknown.

type

string

type of condition in CamelCase or in foo.example.com/CamelCase.

.status.resolvedSource

Description

resolvedSource contains information about the resolved source based on the source type.

Type

object

Required
  • image

  • type

Property Type Description

image

object

image is a field containing resolution information for a catalog sourced from an image. This field must be set when type is Image, and forbidden otherwise.

type

string

type is a reference to the type of source the catalog is sourced from. type is required.

The only allowed value is "Image".

When set to "Image", information about the resolved image source will be set in the 'image' field.

.status.resolvedSource.image

Description

image is a field containing resolution information for a catalog sourced from an image. This field must be set when type is Image, and forbidden otherwise.

Type

object

Required
  • ref

Property Type Description

ref

string

ref contains the resolved image digest-based reference. The digest format is used so users can use other tooling to fetch the exact OCI manifests that were used to extract the catalog contents.

.status.urls

Description

urls contains the URLs that can be used to access the catalog.

Type

object

Required
  • base

Property Type Description

base

string

base is a cluster-internal URL that provides endpoints for accessing the content of the catalog.

It is expected that clients append the path for the endpoint they wish to access.

Currently, only a single endpoint is served and is accessible at the path /api/v1.

The endpoints served for the v1 api are: - /all - this endpoint returns the entirety of the catalog contents in the FBC format

As the needs of users and clients of the evolve, new endpoints may be added.

api endpoints

The following api endpoints are available:

  • /apis/olm.operatorframework.io/v1/clustercatalogs

    • DELETE: delete collection of ClusterCatalog

    • GET: list objects of kind ClusterCatalog

    • POST: create a ClusterCatalog

  • /apis/olm.operatorframework.io/v1/clustercatalogs/{name}

    • DELETE: delete a ClusterCatalog

    • GET: read the specified ClusterCatalog

    • PATCH: partially update the specified ClusterCatalog

    • PUT: replace the specified ClusterCatalog

  • /apis/olm.operatorframework.io/v1/clustercatalogs/{name}/status

    • GET: read status of the specified ClusterCatalog

    • PATCH: partially update status of the specified ClusterCatalog

    • PUT: replace status of the specified ClusterCatalog

/apis/olm.operatorframework.io/v1/clustercatalogs

HTTP method

DELETE

Description

delete collection of ClusterCatalog

Table 1. HTTP responses
HTTP code Reponse body

200 - OK

Status schema

401 - Unauthorized

Empty

HTTP method

GET

Description

list objects of kind ClusterCatalog

Table 2. HTTP responses
HTTP code Reponse body

200 - OK

ClusterCatalogList schema

401 - Unauthorized

Empty

HTTP method

POST

Description

create a ClusterCatalog

Table 3. Query parameters
Parameter Type Description

dryRun

string

When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed

fieldValidation

string

fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.

Table 4. Body parameters
Parameter Type Description

body

ClusterCatalog schema

Table 5. HTTP responses
HTTP code Reponse body

200 - OK

ClusterCatalog schema

201 - Created

ClusterCatalog schema

202 - Accepted

ClusterCatalog schema

401 - Unauthorized

Empty

/apis/olm.operatorframework.io/v1/clustercatalogs/{name}

Table 6. Global path parameters
Parameter Type Description

name

string

name of the ClusterCatalog

HTTP method

DELETE

Description

delete a ClusterCatalog

Table 7. Query parameters
Parameter Type Description

dryRun

string

When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed

Table 8. HTTP responses
HTTP code Reponse body

200 - OK

Status schema

202 - Accepted

Status schema

401 - Unauthorized

Empty

HTTP method

GET

Description

read the specified ClusterCatalog

Table 9. HTTP responses
HTTP code Reponse body

200 - OK

ClusterCatalog schema

401 - Unauthorized

Empty

HTTP method

PATCH

Description

partially update the specified ClusterCatalog

Table 10. Query parameters
Parameter Type Description

dryRun

string

When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed

fieldValidation

string

fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.

Table 11. HTTP responses
HTTP code Reponse body

200 - OK

ClusterCatalog schema

401 - Unauthorized

Empty

HTTP method

PUT

Description

replace the specified ClusterCatalog

Table 12. Query parameters
Parameter Type Description

dryRun

string

When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed

fieldValidation

string

fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.

Table 13. Body parameters
Parameter Type Description

body

ClusterCatalog schema

Table 14. HTTP responses
HTTP code Reponse body

200 - OK

ClusterCatalog schema

201 - Created

ClusterCatalog schema

401 - Unauthorized

Empty

/apis/olm.operatorframework.io/v1/clustercatalogs/{name}/status

Table 15. Global path parameters
Parameter Type Description

name

string

name of the ClusterCatalog

HTTP method

GET

Description

read status of the specified ClusterCatalog

Table 16. HTTP responses
HTTP code Reponse body

200 - OK

ClusterCatalog schema

401 - Unauthorized

Empty

HTTP method

PATCH

Description

partially update status of the specified ClusterCatalog

Table 17. Query parameters
Parameter Type Description

dryRun

string

When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed

fieldValidation

string

fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.

Table 18. HTTP responses
HTTP code Reponse body

200 - OK

ClusterCatalog schema

401 - Unauthorized

Empty

HTTP method

PUT

Description

replace status of the specified ClusterCatalog

Table 19. Query parameters
Parameter Type Description

dryRun

string

When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed

fieldValidation

string

fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.

Table 20. Body parameters
Parameter Type Description

body

ClusterCatalog schema

Table 21. HTTP responses
HTTP code Reponse body

200 - OK

ClusterCatalog schema

201 - Created

ClusterCatalog schema

401 - Unauthorized

Empty