Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 37 additions & 0 deletions docs/operators/okderators.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# OKDerators

:::warning
OKDerators is a WIP project that is in active development. Cluster breaking changes could be introduced.
Use with caution!
:::

OKD by default only includes the community catalog of operators, which is a small fraction of what is available in
OpenShift. You can install additional catalogs like OperatorHub.io, but some of these operators lack support for the
additional security context constraints (SCCs) that OKD provides, or miss console integrations that are available in
OpenShift. OKDerators aims to fill this gap by providing the downstream OKD variant of core operators such as storage,
networking, and more.

## Compatibility

OKDerators are built and tested against the latest OKD releases. Older versions of the OKDerators catalog are not
maintained once a new version of OKD is released.

## Installation

To install the OKDerators catalog, you can run the following script. This will create or update the existing OKDerators
CatalogSource in your cluster, which will allow you to install operators from the OKDerators catalog via the OperatorHub UI or CLI.
To run this command, you will need `oc` or `kubectl` with cluster-admin privileges.

```bash
curl -s https://raw.githubusercontent.com/okd-project/okderators-catalog-index/refs/heads/release-4.18/hack/install-catalog.sh | bash
```

If successful, the command will return:

```
catalogsource.operators.coreos.com/okderators created
```

## Links
- [Catalog repository](https://github.com/okd-project/okderators-catalog-index)
- [Build pipelines repository](https://github.com/okd-project/okd-operator-pipelines)
45 changes: 23 additions & 22 deletions docs/operators/operators.md
Original file line number Diff line number Diff line change
@@ -1,30 +1,31 @@
# Operator Hub Catalogs
# Operators

<!--- cSpell:ignore Devworkspace devspaces -->
## What are Operators?
The [Operator pattern](https://kubernetes.io/docs/concepts/extend-kubernetes/operator/) is the concept of running "meta" software within your cluster to manage your applications
and supporting components.

!!!Warning
This section is under construction

OKD contains many operators which deliver the base platform, however there is also additional capabilities delivered as operators available via the Operator Hub.
For example, you as a cluster operator may provision a `OpensourceDatabaseSoftware`
(an operator-defined [Custom Resource](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/)), and the operator would take care of provisioning the underlying resources
(Deployments, ConfigMap, Secrets, Pods, etc) on your behalf, based on the configuration you provide.

The operator hub story for OKD isn't ideal currently (as at OKD 4.10) as OKD shares source with OpenShift, the commercial sibling to OKD. OpenShift has additional operator hub catalogs provided by Red Hat, which deliver additional capabilities as part of the supported OpenShift product. These additional capabilities are not currently provided to OKD.
Within OKD, we use a suite of tools called [Operator Framework](https://operatorframework.io/) to manage operators within the cluster
(an operator for operators). With Operator Framework we can access operators from central catalogs (such as this one)
and install them within our cluster.

OpenShift and OKD share a community catalog of operators, which are a subset of the operators available in the [OperatorHub](https://operatorhub.io)<!--{target=_blank} comment for docusaurus compat-->. The operators in the community catalog should run on OKD/OpenShift and will include any additional configuration, such as security context configuration.
## Where can I find the Red Hat operators?

However, where an operator in the community catalog has a dependency that Red Hat supports and delivers as part of the additional OpenShift operator catalog, then the community catalog operator will specify the dependency from the supported OpenShift catalog. This results in missing dependency errors when attempting to install on OKD.
Red Hat operators are not shipped with OKD since they require a subscription to Red Hat OpenShift however, there is a
community effort to provide a curated set of operators that are compatible with OKD, known as the
[OKDerators](./okderators.md) catalog.

!!!Question
- will the proposed OKD catalog solve all the dependency issues in the community catalog?
- what is the timeline for the OKD catalog?
## Why do you need OKD-adapted operators/applications?
Compared to many other Kubernetes distributions, OKD has additional security restrictions, assumptions and features
that mean an operator or application that would work "out of the box" on a more vanilla Kubernetes distribution,
does not function on OKD. For example, additional security profiles may need to be applied, or MachineConfigs applied
to add node features.

!!!Todo
Some useful repo links - do we need to create instructions for specific operators?
## Links

- Community operator source
- [docs](https://redhat-openshift-ecosystem.github.io/community-operators-prod/)
- [repo](https://github.com/redhat-openshift-ecosystem/community-operators-prod)
- OKD operators : [repo](https://github.com/redhat-openshift-ecosystem/okd-operators)
- Marketplace operator : [repo](https://github.com/operator-framework/operator-marketplace)
- Devworkspace operator : [repo](https://github.com/devfile/devworkspace-operator)
- GitOps operator : [repo](https://github.com/redhat-developer/gitops-operator)
- devspaces (crw) : [public repo](https://github.com/redhat-developer/devspaces)
- [Operator Framework](https://operatorframework.io/)
- [OperatorHub.io](https://operatorhub.io/)
- [Community Operators](https://github.com/redhat-openshift-ecosystem/community-operators-prod)