diff --git a/.github/workflows/sanity.yaml b/.github/workflows/sanity.yaml
index 5b7a641a3..1c34818cd 100644
--- a/.github/workflows/sanity.yaml
+++ b/.github/workflows/sanity.yaml
@@ -12,13 +12,26 @@ jobs:
verify:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
-
- - uses: actions/setup-go@v5
- with:
- go-version-file: "go.mod"
- - name: Run verification checks
- run: make verify
+ - uses: actions/checkout@v4
+ with:
+ path: operator-controller
+ - uses: actions/setup-go@v5
+ with:
+ go-version-file: "operator-controller/go.mod"
+ - name: Get catalogd version
+ id: get-catalogd-version
+ run: |
+ cd operator-controller
+ echo "CATALOGD_VERSION=$(go list -mod=mod -m -f "{{.Version}}" github.com/operator-framework/catalogd)" >> "$GITHUB_OUTPUT"
+ - uses: actions/checkout@v4
+ with:
+ repository: operator-framework/catalogd
+ path: catalogd
+ ref: "${{ steps.get-catalogd-version.outputs.CATALOGD_VERSION }}"
+ - name: Run verification checks
+ run: |
+ cd operator-controller
+ make verify
lint:
runs-on: ubuntu-latest
steps:
diff --git a/Makefile b/Makefile
index f36df3f91..56ca11441 100644
--- a/Makefile
+++ b/Makefile
@@ -300,13 +300,18 @@ quickstart: $(KUSTOMIZE) manifests #EXHELP Generate the installation release man
##@ Docs
.PHONY: crd-ref-docs
-API_REFERENCE_FILENAME := operator-controller-api-reference.md
-crd-ref-docs: $(CRD_REF_DOCS)
- rm -f $(ROOT_DIR)/docs/refs/api/$(API_REFERENCE_FILENAME)
+OPERATOR_CONTROLLER_API_REFERENCE_FILENAME := operator-controller-api-reference.md
+CATALOGD_API_REFERENCE_FILENAME := catalogd-api-reference.md
+CATALOGD_PATH := "$(ROOT_DIR)/../catalogd"
+crd-ref-docs: $(CRD_REF_DOCS) #EXHELP Generate the API Reference Documents. NOTE: catalogd must be cloned into operator-controller's parent directory.
+ rm -f $(ROOT_DIR)/docs/refs/api/$(OPERATOR_CONTROLLER_API_REFERENCE_FILENAME)
$(CRD_REF_DOCS) --source-path=$(ROOT_DIR)/api \
- --config=$(ROOT_DIR)/config/base/crd/bases/olm.operatorframework.io_clusterextensions.yaml \
- --renderer=markdown \
- --output-path=$(ROOT_DIR)/docs/refs/api/$(API_REFERENCE_FILENAME)
+ --config=$(ROOT_DIR)/docs/refs/api/crd-ref-docs-gen-config.yaml \
+ --renderer=markdown --output-path=$(ROOT_DIR)/docs/refs/api/$(OPERATOR_CONTROLLER_API_REFERENCE_FILENAME);
+ rm -f $(ROOT_DIR)/docs/refs/api/$(CATALOGD_API_REFERENCE_FILENAME)
+ $(CRD_REF_DOCS) --source-path=$(CATALOGD_PATH)/api \
+ --config=$(ROOT_DIR)/docs/refs/api/crd-ref-docs-gen-config.yaml \
+ --renderer=markdown --output-path=$(ROOT_DIR)/docs/refs/api/$(CATALOGD_API_REFERENCE_FILENAME)
VENVDIR := $(abspath docs/.venv)
diff --git a/docs/refs/api/catalogd-api-reference.md b/docs/refs/api/catalogd-api-reference.md
new file mode 100644
index 000000000..89d130a9f
--- /dev/null
+++ b/docs/refs/api/catalogd-api-reference.md
@@ -0,0 +1,192 @@
+# API Reference
+
+## Packages
+- [olm.operatorframework.io/core](#olmoperatorframeworkiocore)
+- [olm.operatorframework.io/v1alpha1](#olmoperatorframeworkiov1alpha1)
+
+
+## olm.operatorframework.io/core
+
+Package api is the internal version of the API.
+
+
+
+
+## olm.operatorframework.io/v1alpha1
+
+Package v1alpha1 contains API Schema definitions for the core v1alpha1 API group
+
+### Resource Types
+- [ClusterCatalog](#clustercatalog)
+- [ClusterCatalogList](#clustercataloglist)
+
+
+
+#### CatalogSource
+
+
+
+CatalogSource contains the sourcing information for a Catalog
+
+
+
+_Appears in:_
+- [ClusterCatalogSpec](#clustercatalogspec)
+
+| Field | Description | Default | Validation |
+| --- | --- | --- | --- |
+| `type` _[SourceType](#sourcetype)_ | type defines the kind of Catalog content being sourced. | | Enum: [image]
Required: \{\}
|
+| `image` _[ImageSource](#imagesource)_ | image is the catalog image that backs the content of this catalog. | | |
+
+
+#### ClusterCatalog
+
+
+
+ClusterCatalog is the Schema for the ClusterCatalogs API
+
+
+
+_Appears in:_
+- [ClusterCatalogList](#clustercataloglist)
+
+| Field | Description | Default | Validation |
+| --- | --- | --- | --- |
+| `apiVersion` _string_ | `olm.operatorframework.io/v1alpha1` | | |
+| `kind` _string_ | `ClusterCatalog` | | |
+| `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 | | |
+| `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 | | |
+| `metadata` _[ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#objectmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | |
+| `spec` _[ClusterCatalogSpec](#clustercatalogspec)_ | | | |
+| `status` _[ClusterCatalogStatus](#clustercatalogstatus)_ | | | |
+
+
+#### ClusterCatalogList
+
+
+
+ClusterCatalogList contains a list of ClusterCatalog
+
+
+
+
+
+| Field | Description | Default | Validation |
+| --- | --- | --- | --- |
+| `apiVersion` _string_ | `olm.operatorframework.io/v1alpha1` | | |
+| `kind` _string_ | `ClusterCatalogList` | | |
+| `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 | | |
+| `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 | | |
+| `metadata` _[ListMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#listmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | |
+| `items` _[ClusterCatalog](#clustercatalog) array_ | | | |
+
+
+#### ClusterCatalogSpec
+
+
+
+ClusterCatalogSpec defines the desired state of ClusterCatalog
+
+
+
+_Appears in:_
+- [ClusterCatalog](#clustercatalog)
+
+| Field | Description | Default | Validation |
+| --- | --- | --- | --- |
+| `source` _[CatalogSource](#catalogsource)_ | source is the source of a Catalog that contains catalog metadata in the FBC format
https://olm.operatorframework.io/docs/reference/file-based-catalogs/#docs | | |
+| `priority` _integer_ | priority is used as the tie-breaker between bundles selected from different catalogs; a higher number means higher priority. | 0 | |
+
+
+#### ClusterCatalogStatus
+
+
+
+ClusterCatalogStatus defines the observed state of ClusterCatalog
+
+
+
+_Appears in:_
+- [ClusterCatalog](#clustercatalog)
+
+| Field | Description | Default | Validation |
+| --- | --- | --- | --- |
+| `conditions` _[Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#condition-v1-meta) array_ | conditions store the status conditions of the ClusterCatalog instances | | |
+| `resolvedSource` _[ResolvedCatalogSource](#resolvedcatalogsource)_ | resolvedSource contains information about the resolved source | | |
+| `contentURL` _string_ | contentURL is a cluster-internal address that on-cluster components
can read the content of a catalog from | | |
+| `observedGeneration` _integer_ | observedGeneration is the most recent generation observed for this ClusterCatalog. It corresponds to the
ClusterCatalog's generation, which is updated on mutation by the API Server. | | |
+| `lastUnpacked` _[Time](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#time-v1-meta)_ | LastUnpacked represents the time when the
ClusterCatalog object was last unpacked. | | |
+
+
+#### ImageSource
+
+
+
+ImageSource contains information required for sourcing a Catalog from an OCI image
+
+
+
+_Appears in:_
+- [CatalogSource](#catalogsource)
+
+| Field | Description | Default | Validation |
+| --- | --- | --- | --- |
+| `ref` _string_ | ref contains the reference to a container image containing Catalog contents. | | |
+| `pullSecret` _string_ | pullSecret contains the name of the image pull secret in the namespace that catalogd is deployed. | | |
+| `pollInterval` _[Duration](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#duration-v1-meta)_ | pollInterval indicates the interval at which the image source should be polled for new content,
specified as a duration (e.g., "5m", "1h", "24h", "etc".). Note that PollInterval may not be
specified for a catalog image referenced by a sha256 digest. | | Format: duration
|
+| `insecureSkipTLSVerify` _boolean_ | insecureSkipTLSVerify indicates that TLS certificate validation should be skipped.
If this option is specified, the HTTPS protocol will still be used to
fetch the specified image reference.
This should not be used in a production environment. | | |
+
+
+#### ResolvedCatalogSource
+
+
+
+ResolvedCatalogSource contains the information about a sourced Catalog
+
+
+
+_Appears in:_
+- [ClusterCatalogStatus](#clustercatalogstatus)
+
+| Field | Description | Default | Validation |
+| --- | --- | --- | --- |
+| `type` _[SourceType](#sourcetype)_ | type defines the kind of Catalog content that was sourced. | | Enum: [image]
Required: \{\}
|
+| `image` _[ResolvedImageSource](#resolvedimagesource)_ | image is the catalog image that backs the content of this catalog. | | |
+
+
+#### ResolvedImageSource
+
+
+
+ResolvedImageSource contains information about the sourced Catalog
+
+
+
+_Appears in:_
+- [ResolvedCatalogSource](#resolvedcatalogsource)
+
+| Field | Description | Default | Validation |
+| --- | --- | --- | --- |
+| `ref` _string_ | ref contains the reference to a container image containing Catalog contents. | | |
+| `resolvedRef` _string_ | resolvedRef contains the resolved sha256 image ref containing Catalog contents. | | |
+| `lastPollAttempt` _[Time](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#time-v1-meta)_ | lastPollAtempt is the time when the source resolved was last polled for new content. | | |
+| `lastUnpacked` _[Time](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#time-v1-meta)_ | LastUnpacked is the time when the catalog contents were successfully unpacked. | | |
+
+
+#### SourceType
+
+_Underlying type:_ _string_
+
+
+
+
+
+_Appears in:_
+- [CatalogSource](#catalogsource)
+- [ResolvedCatalogSource](#resolvedcatalogsource)
+
+| Field | Description |
+| --- | --- |
+| `image` | |
+
+
diff --git a/docs/refs/api/crd-ref-docs-gen-config.yaml b/docs/refs/api/crd-ref-docs-gen-config.yaml
new file mode 100644
index 000000000..f6394fdf6
--- /dev/null
+++ b/docs/refs/api/crd-ref-docs-gen-config.yaml
@@ -0,0 +1,7 @@
+processor:
+ ignoreTypes: []
+ ignoreFields: []
+
+render:
+ # Version of Kubernetes to use when generating links to Kubernetes API documentation.
+ kubernetesVersion: 1.31
diff --git a/docs/refs/api/operator-controller-api-reference.md b/docs/refs/api/operator-controller-api-reference.md
index d03bc4df4..de0a1f2bd 100644
--- a/docs/refs/api/operator-controller-api-reference.md
+++ b/docs/refs/api/operator-controller-api-reference.md
@@ -81,7 +81,7 @@ _Appears in:_
| `packageName` _string_ | packageName is a reference to the name of the package to be installed
and is used to filter the content from catalogs.
This field is required, immutable and follows the DNS subdomain name
standard as defined in [RFC 1123]. This means that valid entries:
- Contain no more than 253 characters
- Contain only lowercase alphanumeric characters, '-', or '.'
- Start with an alphanumeric character
- End with an alphanumeric character
Some examples of valid values are:
- some-package
- 123-package
- 1-package-2
- somepackage
Some examples of invalid values are:
- -some-package
- some-package-
- thisisareallylongpackagenamethatisgreaterthanthemaximumlength
- some.package
[RFC 1123]: https://tools.ietf.org/html/rfc1123 | | MaxLength: 253
Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$`
|
| `version` _string_ | version is an optional semver constraint (a specific version or range of versions). When unspecified, the latest version available will be installed.
Acceptable version ranges are no longer than 64 characters.
Version ranges are composed of comma- or space-delimited values and one or
more comparison operators, known as comparison strings. Additional
comparison strings can be added using the OR operator (\|\|).
# Range Comparisons
To specify a version range, you can use a comparison string like ">=3.0,
<3.6". When specifying a range, automatic updates will occur within that
range. The example comparison string means "install any version greater than
or equal to 3.0.0 but less than 3.6.0.". It also states intent that if any
upgrades are available within the version range after initial installation,
those upgrades should be automatically performed.
# Pinned Versions
To specify an exact version to install you can use a version range that
"pins" to a specific version. When pinning to a specific version, no
automatic updates will occur. An example of a pinned version range is
"0.6.0", which means "only install version 0.6.0 and never
upgrade from this version".
# Basic Comparison Operators
The basic comparison operators and their meanings are:
- "=", equal (not aliased to an operator)
- "!=", not equal
- "<", less than
- ">", greater than
- ">=", greater than OR equal to
- "<=", less than OR equal to
# Wildcard Comparisons
You can use the "x", "X", and "*" characters as wildcard characters in all
comparison operations. Some examples of using the wildcard characters:
- "1.2.x", "1.2.X", and "1.2.*" is equivalent to ">=1.2.0, < 1.3.0"
- ">= 1.2.x", ">= 1.2.X", and ">= 1.2.*" is equivalent to ">= 1.2.0"
- "<= 2.x", "<= 2.X", and "<= 2.*" is equivalent to "< 3"
- "x", "X", and "*" is equivalent to ">= 0.0.0"
# Patch Release Comparisons
When you want to specify a minor version up to the next major version you
can use the "~" character to perform patch comparisons. Some examples:
- "~1.2.3" is equivalent to ">=1.2.3, <1.3.0"
- "~1" and "~1.x" is equivalent to ">=1, <2"
- "~2.3" is equivalent to ">=2.3, <2.4"
- "~1.2.x" is equivalent to ">=1.2.0, <1.3.0"
# Major Release Comparisons
You can use the "^" character to make major release comparisons after a
stable 1.0.0 version is published. If there is no stable version published, // minor versions define the stability level. Some examples:
- "^1.2.3" is equivalent to ">=1.2.3, <2.0.0"
- "^1.2.x" is equivalent to ">=1.2.0, <2.0.0"
- "^2.3" is equivalent to ">=2.3, <3"
- "^2.x" is equivalent to ">=2.0.0, <3"
- "^0.2.3" is equivalent to ">=0.2.3, <0.3.0"
- "^0.2" is equivalent to ">=0.2.0, <0.3.0"
- "^0.0.3" is equvalent to ">=0.0.3, <0.0.4"
- "^0.0" is equivalent to ">=0.0.0, <0.1.0"
- "^0" is equivalent to ">=0.0.0, <1.0.0"
# OR Comparisons
You can use the "\|\|" character to represent an OR operation in the version
range. Some examples:
- ">=1.2.3, <2.0.0 \|\| >3.0.0"
- "^0 \|\| ^3 \|\| ^5"
For more information on semver, please see https://semver.org/ | | MaxLength: 64
Pattern: `^(\s*(=\|\|!=\|>\|<\|>=\|=>\|<=\|=<\|~\|~>\|\^)\s*(v?(0\|[1-9]\d*\|[x\|X\|\*])(\.(0\|[1-9]\d*\|x\|X\|\*]))?(\.(0\|[1-9]\d*\|x\|X\|\*))?(-([0-9A-Za-z\-]+(\.[0-9A-Za-z\-]+)*))?(\+([0-9A-Za-z\-]+(\.[0-9A-Za-z\-]+)*))?)\s*)((?:\s+\|,\s*\|\s*\\|\\|\s*)(=\|\|!=\|>\|<\|>=\|=>\|<=\|=<\|~\|~>\|\^)\s*(v?(0\|[1-9]\d*\|x\|X\|\*])(\.(0\|[1-9]\d*\|x\|X\|\*))?(\.(0\|[1-9]\d*\|x\|X\|\*]))?(-([0-9A-Za-z\-]+(\.[0-9A-Za-z\-]+)*))?(\+([0-9A-Za-z\-]+(\.[0-9A-Za-z\-]+)*))?)\s*)*$`
|
| `channels` _string array_ | channels is an optional reference to a set of channels belonging to
the package specified in the packageName field.
A "channel" is a package author defined stream of updates for an extension.
When specified, it is used to constrain the set of installable bundles and
the automated upgrade path. This constraint is an AND operation with the
version field. For example:
- Given channel is set to "foo"
- Given version is set to ">=1.0.0, <1.5.0"
- Only bundles that exist in channel "foo" AND satisfy the version range comparison will be considered installable
- Automatic upgrades will be constrained to upgrade edges defined by the selected channel
When unspecified, upgrade edges across all channels will be used to identify valid automatic upgrade paths.
This field follows the DNS subdomain name standard as defined in [RFC
1123]. This means that valid entries:
- Contain no more than 253 characters
- Contain only lowercase alphanumeric characters, '-', or '.'
- Start with an alphanumeric character
- End with an alphanumeric character
Some examples of valid values are:
- 1.1.x
- alpha
- stable
- stable-v1
- v1-stable
- dev-preview
- preview
- community
Some examples of invalid values are:
- -some-channel
- some-channel-
- thisisareallylongchannelnamethatisgreaterthanthemaximumlength
- original_40
- --default-channel
[RFC 1123]: https://tools.ietf.org/html/rfc1123 | | |
-| `selector` _[LabelSelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v/#labelselector-v1-meta)_ | selector is an optional field that can be used
to filter the set of ClusterCatalogs used in the bundle
selection process.
When unspecified, all ClusterCatalogs will be used in
the bundle selection process. | | |
+| `selector` _[LabelSelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#labelselector-v1-meta)_ | selector is an optional field that can be used
to filter the set of ClusterCatalogs used in the bundle
selection process.
When unspecified, all ClusterCatalogs will be used in
the bundle selection process. | | |
| `upgradeConstraintPolicy` _[UpgradeConstraintPolicy](#upgradeconstraintpolicy)_ | upgradeConstraintPolicy is an optional field that controls whether
the upgrade path(s) defined in the catalog are enforced for the package
referenced in the packageName field.
Allowed values are: ["CatalogProvided", "SelfCertified"].
When this field is set to "CatalogProvided", automatic upgrades will only occur
when upgrade constraints specified by the package author are met.
When this field is set to "SelfCertified", the upgrade constraints specified by
the package author are ignored. This allows for upgrades and downgrades to
any version of the package. This is considered a dangerous operation as it
can lead to unknown and potentially disastrous outcomes, such as data
loss. It is assumed that users have independently verified changes when
using this option.
If unspecified, the default value is "CatalogProvided". | CatalogProvided | Enum: [CatalogProvided SelfCertified]
|
@@ -102,7 +102,7 @@ _Appears in:_
| `kind` _string_ | `ClusterExtension` | | |
| `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 | | |
| `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 | | |
-| `metadata` _[ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v/#objectmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | |
+| `metadata` _[ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#objectmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | |
| `spec` _[ClusterExtensionSpec](#clusterextensionspec)_ | | | |
| `status` _[ClusterExtensionStatus](#clusterextensionstatus)_ | | | |
@@ -158,7 +158,7 @@ ClusterExtensionList contains a list of ClusterExtension
| `kind` _string_ | `ClusterExtensionList` | | |
| `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 | | |
| `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 | | |
-| `metadata` _[ListMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v/#listmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | |
+| `metadata` _[ListMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#listmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | |
| `items` _[ClusterExtension](#clusterextension) array_ | | | |
@@ -210,7 +210,7 @@ _Appears in:_
| --- | --- | --- | --- |
| `install` _[ClusterExtensionInstallStatus](#clusterextensioninstallstatus)_ | | | |
| `resolution` _[ClusterExtensionResolutionStatus](#clusterextensionresolutionstatus)_ | | | |
-| `conditions` _[Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v/#condition-v1-meta) array_ | conditions is a representation of the current state for this ClusterExtension.
The status is represented by a set of "conditions".
Each condition is generally structured in the following format:
- Type: a string representation of the condition type. More or less the condition "name".
- Status: a string representation of the state of the condition. Can be one of ["True", "False", "Unknown"].
- Reason: a string representation of the reason for the current state of the condition. Typically useful for building automation around particular Type+Reason combinations.
- Message: a human readable message that further elaborates on the state of the condition
The global set of condition types are:
- "Installed", represents whether or not the a bundle has been installed for this ClusterExtension
- "Resolved", represents whether or not a bundle was found that satisfies the selection criteria outlined in the spec
- "Unpacked", represents whether or not the bundle contents have been successfully unpacked
When the ClusterExtension is sourced from a catalog, the following conditions are also possible:
- "Deprecated", represents an aggregation of the PackageDeprecated, ChannelDeprecated, and BundleDeprecated condition types
- "PackageDeprecated", represents whether or not the package specified in the spec.source.catalog.packageName field has been deprecated
- "ChannelDeprecated", represents whether or not any channel specified in spec.source.catalog.channels has been deprecated
- "BundleDeprecated", represents whether or not the installed bundle is deprecated
The current set of reasons are:
- "Success", this reason is set on the "Unpacked", "Resolved" and "Installed" conditions when unpacking a bundle's content, resolution and installation/upgrading is successful
- "Failed", this reason is set on the "Unpacked", "Resolved" and "Installed" conditions when an error has occurred while unpacking the contents of a bundle, during resolution or installation. | | |
+| `conditions` _[Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.31/#condition-v1-meta) array_ | conditions is a representation of the current state for this ClusterExtension.
The status is represented by a set of "conditions".
Each condition is generally structured in the following format:
- Type: a string representation of the condition type. More or less the condition "name".
- Status: a string representation of the state of the condition. Can be one of ["True", "False", "Unknown"].
- Reason: a string representation of the reason for the current state of the condition. Typically useful for building automation around particular Type+Reason combinations.
- Message: a human readable message that further elaborates on the state of the condition
The global set of condition types are:
- "Installed", represents whether or not the a bundle has been installed for this ClusterExtension
- "Resolved", represents whether or not a bundle was found that satisfies the selection criteria outlined in the spec
- "Unpacked", represents whether or not the bundle contents have been successfully unpacked
When the ClusterExtension is sourced from a catalog, the following conditions are also possible:
- "Deprecated", represents an aggregation of the PackageDeprecated, ChannelDeprecated, and BundleDeprecated condition types
- "PackageDeprecated", represents whether or not the package specified in the spec.source.catalog.packageName field has been deprecated
- "ChannelDeprecated", represents whether or not any channel specified in spec.source.catalog.channels has been deprecated
- "BundleDeprecated", represents whether or not the installed bundle is deprecated
The current set of reasons are:
- "Success", this reason is set on the "Unpacked", "Resolved" and "Installed" conditions when unpacking a bundle's content, resolution and installation/upgrading is successful
- "Failed", this reason is set on the "Unpacked", "Resolved" and "Installed" conditions when an error has occurred while unpacking the contents of a bundle, during resolution or installation. | | |
#### PreflightConfig
diff --git a/mkdocs.yml b/mkdocs.yml
index 69c3f015c..db954af48 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -18,7 +18,8 @@ nav:
- Deleting an extension: 'Tasks/uninstalling-an-extension.md'
- References:
- API references:
- - Operator controller API reference: 'refs/api/operator-controller-api-reference.md'
+ - Operator Controller API reference: 'refs/api/operator-controller-api-reference.md'
+ - CatalogD API reference: 'refs/api/catalogd-api-reference.md'
- Catalog queries: 'refs/catalog-queries.md'
- CRD Upgrade Safety: 'refs/crd-upgrade-safety.md'