Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add RCO system requirements to v1 doc #634

Merged
merged 3 commits into from
Aug 19, 2024
Merged
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
57 changes: 57 additions & 0 deletions doc/user-guide-v1.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,62 @@

This generic Operator is capable of deploying any application image and can be imported into any runtime-specific Operator as library of application capabilities. This architecture ensures compatibility and consistency between all runtime Operators, allowing everyone to benefit from the functionality added in this project.

== System requirements

Your environment must meet cluster, sizing, persistent storage, and network requirements for Runtime Component operator.

=== OpenShift Container Platform Requirements
If you are installing a Runtime Component operator on an Red Hat OpenShift cluster, your environment must meet Red Hat OpenShift Container Platform (OCP) cluster requirements.

==== OCP requirements

Runtime Component operator requires an link:++https://docs.openshift.com/container-platform/4.16/welcome/index.html++[OCP version 4.16], link:++https://docs.openshift.com/container-platform/4.15/welcome/index.html++[OCP version 4.15], link:++https://docs.openshift.com/container-platform/4.14/welcome/index.html++[OCP version 4.14], or link:++https://docs.openshift.com/container-platform/4.12/welcome/index.html++[OCP version 4.12] cluster on Linux x86_64 (amd64), Linux on Power (ppc64le), or Linux on IBM Z (s390x) platform, with cluster-admin permissions. To manage OCP projects with OCP CLI (oc) commands, the installation also requires the link:++https://docs.openshift.com/container-platform/4.9/cli_reference/openshift_cli/getting-started-cli.html++[OCP CLI].

By default, certificates are generated by using the OpenShift certificate manager. If you want to use the `manageTLS` capability and use a different certificate manager (such as link:++https://cert-manager.io/docs/installation/++[cert-manager]) to generate and manage the certificates, you must install it.

=== Kubernetes Requirements

If you are installing a Runtime Component operator on a Kubernetes cluster, your environment must meet the Kubernetes cluster requirements.

==== Kubernetes requirements
Runtime Component operator requires a Kubernetes version 1.29, 1.28, 1.27, 1.26, or 1.25 cluster on Linux x86_64 (amd64), Linux on Power (ppc64le), or Linux on IBM Z (s390x) platform, with cluster-admin permissions.

If you plan to use link:++https://olm.operatorframework.io/++[Operator Lifecycle Manager (OLM)], it must be installed on your cluster.

If you want to use the `manageTLS` capability, you must have a certificate manager (such as link:++https://cert-manager.io/docs/installation/++[cert-manager]) installed.

Before you can use the Ingress resource to expose your application, you must install an ingress controller such as Nginx or Traefik.

=== Sizing Requirements

Your environment must meet sizing requirements for Runtime Component operator.

==== Runtime Component operator sizing

.Operator sizing requirements
|===
| Project | CPU request (cores) | Memory request (Mi) | Disk space (Gi) | Notes
| Runtime Component operator | 0.2 (limit: 0.4) | 128 (limit: 1024) | N/A | Applications that are deployed and managed by the operator have their own resource requests and limits as specified in the link:#overview[Runtime Component operator custom resources].
|===

NOTE: The values in the tables do not include any requirements inherent in the storage provider. The storage infrastructure might require more resources (for example, CPU or memory) from the worker nodes.

=== Storage requirements

No storage requirements exist for Runtime Component operator.

You are responsible for configuring and managing storage for any applications that you deploy with Runtime Component operator.

=== Network requirements

Your environment must meet network requirements for Runtime Component operator.

.External network requirements
|===
| Hostnames | Ports and Protocols | Purpose
| icr.io, cp.icr.io | 443 (HTTP over TLS) | The listed domain is the container image registry that is used as part of the Runtime Component operator installation. This registry is also used when Runtime Component operator and dependency software levels are updated.
|===

== Operator installation

Use the instructions for one of the link:++../deploy/releases++[releases] to install the operator into a Kubernetes cluster.
Expand All @@ -22,6 +78,7 @@ Appropriate cluster roles and bindings are required to watch another namespace,

NOTE: The Runtime Component Operator can only interact with resources it is given permission to interact through link:++https://kubernetes.io/docs/reference/access-authn-authz/rbac/++[Role-based access control (RBAC)]. Some of the operator features described in this document require interacting with resources in other namespaces. In that case, the operator must be installed with correct `ClusterRole` definitions.

[[overview]]
== Overview

The architecture of the Runtime Component Operator follows the basic controller pattern: the Operator container with the controller is deployed into a Pod and listens for incoming resources with `Kind: RuntimeComponent`. Creating a `RuntimeComponent` custom resource (CR) triggers the Runtime Component Operator to create, update or delete Kubernetes resources needed by the application to run on your cluster.
Expand Down