ClusterCatalog makes File-Based Catalog (FBC) data available to your cluster. For more information on FBC, see https://olm.operatorframework.io/docs/reference/file-based-catalogs/#docs
ClusterCatalog makes File-Based Catalog (FBC) data available to your cluster. For more information on FBC, see https://olm.operatorframework.io/docs/reference/file-based-catalogs/#docs
object
metadata
spec
| Property | Type | Description |
|---|---|---|
|
|
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 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 |
|
Standard object’s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata |
|
|
|
spec is a required field that defines the desired state of the ClusterCatalog. The controller ensures that the catalog is unpacked and served over the catalog content HTTP server. |
|
|
status contains the following information about the state of the ClusterCatalog: - Whether the catalog contents are being served via the catalog content HTTP server - Whether the ClusterCatalog is progressing to a new state - A reference to the source from which the catalog contents were retrieved |
spec is a required field that defines the desired state of the ClusterCatalog. The controller ensures that the catalog is unpacked and served over the catalog content HTTP server.
object
source
| Property | Type | Description |
|---|---|---|
|
|
availabilityMode is an optional field that defines how the ClusterCatalog is made available to clients on the cluster. Allowed values are "Available", "Unavailable", or omitted. When omitted, the default value is "Available". When set to "Available", the catalog contents are unpacked and served over the catalog content HTTP server. Clients should consider this ClusterCatalog and its contents as usable. When set to "Unavailable", the catalog contents are no longer served over the catalog content HTTP server. Treat this the same as if the ClusterCatalog does not exist. Use "Unavailable" when you want to keep the ClusterCatalog but treat it as if it doesn’t exist. |
|
|
priority is an optional field that defines a priority for this ClusterCatalog. Clients use the ClusterCatalog priority as a tie-breaker between ClusterCatalogs that meet their requirements. Higher numbers mean higher priority. Clients decide how to handle scenarios where multiple ClusterCatalogs with the same priority meet their requirements. Clients should prompt users for additional input to break the tie. When omitted, the default priority is 0. Use negative numbers to specify a priority lower than the default. Use positive numbers to specify a priority higher than the default. The lowest possible value is -2147483648. The highest possible value is 2147483647. |
|
|
source is a required field that defines the source of a catalog. A catalog contains information on content that can be installed on a cluster. The catalog source makes catalog contents discoverable and usable by other on-cluster components. These components can present the content in a GUI dashboard or install 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. 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 |
source is a required field that defines the source of a catalog. A catalog contains information on content that can be installed on a cluster. The catalog source makes catalog contents discoverable and usable by other on-cluster components. These components can present the content in a GUI dashboard or install 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.
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
object
type
| Property | Type | Description |
|---|---|---|
|
|
image configures how catalog contents are sourced from an OCI image. It is required when type is Image, and forbidden otherwise. |
|
|
type is a required field that specifies the type of source for the catalog. The only allowed value is "Image". When set to "Image", the ClusterCatalog content is 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. |
image configures how catalog contents are sourced from an OCI image. It is required when type is Image, and forbidden otherwise.
object
ref
| Property | Type | Description |
|---|---|---|
|
|
pollIntervalMinutes is an optional field that sets the interval, in minutes, at which the image source is polled for new content. You cannot specify pollIntervalMinutes when ref is a digest-based reference. When omitted, the image is not polled for new content. |
|
|
ref is a required field that defines the reference to a container image containing catalog contents. It cannot be more than 1000 characters. A reference has 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 contains the following information about the state of the ClusterCatalog: - Whether the catalog contents are being served via the catalog content HTTP server - Whether the ClusterCatalog is progressing to a new state - A reference to the source from which the catalog contents were retrieved
object
| Property | Type | Description |
|---|---|---|
|
|
conditions represents the current state of this ClusterCatalog. The current condition types are Serving and Progressing. The Serving condition represents whether the catalog contents are being served via the HTTP(S) web server: - When status is True and reason is Available, the catalog contents are being served. - When status is False and reason is Unavailable, the catalog contents are not being served because the contents are not yet available. - When status is False and reason is UserSpecifiedUnavailable, the catalog contents are not being served because the catalog has been intentionally marked as unavailable. The Progressing condition represents whether the ClusterCatalog is progressing or is ready to progress towards a new state: - When status is True and reason is Retrying, an error occurred that may be resolved on subsequent reconciliation attempts. - When status is True and reason is Succeeded, the ClusterCatalog has successfully progressed to a new state and is ready to continue progressing. - When status is False and reason is Blocked, an error occurred that requires manual intervention for recovery. If the system initially fetched contents and polling identifies updates, both conditions can be active simultaneously: - The Serving condition remains True with reason Available because the previous contents are still served via the HTTP(S) web server. - The Progressing condition is True with reason Retrying because the system is working to serve the new version. |
|
|
Condition contains details for one aspect of the current state of this API Resource. |
|
|
lastUnpacked represents the last time the catalog contents were extracted from their source format. For example, when using an Image source, the OCI image is pulled and image layers are written to a file-system backed cache. This extraction from the source format is called "unpacking". |
|
|
resolvedSource contains information about the resolved source based on the source type. |
|
|
urls contains the URLs that can be used to access the catalog. |
conditions represents the current state of this ClusterCatalog.
The current condition types are Serving and Progressing.
The Serving condition represents whether the catalog contents are being served via the HTTP(S) web server: - When status is True and reason is Available, the catalog contents are being served. - When status is False and reason is Unavailable, the catalog contents are not being served because the contents are not yet available. - When status is False and reason is UserSpecifiedUnavailable, the catalog contents are not being served because the catalog has been intentionally marked as unavailable.
The Progressing condition represents whether the ClusterCatalog is progressing or is ready to progress towards a new state: - When status is True and reason is Retrying, an error occurred that may be resolved on subsequent reconciliation attempts. - When status is True and reason is Succeeded, the ClusterCatalog has successfully progressed to a new state and is ready to continue progressing. - When status is False and reason is Blocked, an error occurred that requires manual intervention for recovery.
If the system initially fetched contents and polling identifies updates, both conditions can be active simultaneously: - The Serving condition remains True with reason Available because the previous contents are still served via the HTTP(S) web server. - The Progressing condition is True with reason Retrying because the system is working to serve the new version.
array
Condition contains details for one aspect of the current state of this API Resource.
object
lastTransitionTime
message
reason
status
type
| Property | Type | Description |
|---|---|---|
|
|
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 is a human readable message indicating details about the transition. This may be an empty string. |
|
|
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 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 of the condition, one of True, False, Unknown. |
|
|
type of condition in CamelCase or in foo.example.com/CamelCase. |
resolvedSource contains information about the resolved source based on the source type.
object
image
type
| Property | Type | Description |
|---|---|---|
|
|
image contains resolution information for a catalog sourced from an image. It must be set when type is Image, and forbidden otherwise. |
|
|
type is a required field that specifies the type of source for the catalog. The only allowed value is "Image". When set to "Image", information about the resolved image source is set in the image field. |
image contains resolution information for a catalog sourced from an image. It must be set when type is Image, and forbidden otherwise.
object
ref
| Property | Type | Description |
|---|---|---|
|
|
ref contains the resolved image digest-based reference. The digest format allows you to use other tooling to fetch the exact OCI manifests that were used to extract the catalog contents. |
urls contains the URLs that can be used to access the catalog.
object
base
| Property | Type | Description |
|---|---|---|
|
|
base is a cluster-internal URL that provides endpoints for accessing the catalog content. Clients should append the path for the endpoint they want 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 entire catalog contents in the FBC format New endpoints may be added as needs evolve. |
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
DELETE
delete collection of ClusterCatalog
| HTTP code | Reponse body |
|---|---|
200 - OK |
|
401 - Unauthorized |
Empty |
GET
list objects of kind ClusterCatalog
| HTTP code | Reponse body |
|---|---|
200 - OK |
|
401 - Unauthorized |
Empty |
POST
create a ClusterCatalog
| Parameter | Type | Description |
|---|---|---|
|
|
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 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. |
| Parameter | Type | Description |
|---|---|---|
|
|
| HTTP code | Reponse body |
|---|---|
200 - OK |
|
201 - Created |
|
202 - Accepted |
|
401 - Unauthorized |
Empty |
| Parameter | Type | Description |
|---|---|---|
|
|
name of the ClusterCatalog |
DELETE
delete a ClusterCatalog
| Parameter | Type | Description |
|---|---|---|
|
|
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 |
| HTTP code | Reponse body |
|---|---|
200 - OK |
|
202 - Accepted |
|
401 - Unauthorized |
Empty |
GET
read the specified ClusterCatalog
| HTTP code | Reponse body |
|---|---|
200 - OK |
|
401 - Unauthorized |
Empty |
PATCH
partially update the specified ClusterCatalog
| Parameter | Type | Description |
|---|---|---|
|
|
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 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. |
| HTTP code | Reponse body |
|---|---|
200 - OK |
|
401 - Unauthorized |
Empty |
PUT
replace the specified ClusterCatalog
| Parameter | Type | Description |
|---|---|---|
|
|
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 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. |
| Parameter | Type | Description |
|---|---|---|
|
|
| HTTP code | Reponse body |
|---|---|
200 - OK |
|
201 - Created |
|
401 - Unauthorized |
Empty |
| Parameter | Type | Description |
|---|---|---|
|
|
name of the ClusterCatalog |
GET
read status of the specified ClusterCatalog
| HTTP code | Reponse body |
|---|---|
200 - OK |
|
401 - Unauthorized |
Empty |
PATCH
partially update status of the specified ClusterCatalog
| Parameter | Type | Description |
|---|---|---|
|
|
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 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. |
| HTTP code | Reponse body |
|---|---|
200 - OK |
|
401 - Unauthorized |
Empty |
PUT
replace status of the specified ClusterCatalog
| Parameter | Type | Description |
|---|---|---|
|
|
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 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. |
| Parameter | Type | Description |
|---|---|---|
|
|
| HTTP code | Reponse body |
|---|---|
200 - OK |
|
201 - Created |
|
401 - Unauthorized |
Empty |