Chapter 2. Installing the Quay Operator
2.1. Differences from Earlier Versions
As of Red Hat Quay 3.4.0, the Operator has been completely re-written to provide an improved out of the box experience as well as support for more Day 2 operations. As a result the new Operator is simpler to use and is more opinionated. The key differences from earlier versions of the Operator are:
-
The
QuayEcosystem
custom resource has been replaced with theQuayRegistry
custom resource - The default installation options produces a fully supported Quay environment with all managed dependencies (database, object storage, etc) ready for production use
- A new robust validation library for Quay’s configuration which is shared by the Quay application and config tool for consistency
-
Registry object storage can now be managed by the Operator using the
ObjectBucketClaim
Kubernetes API (the NooBaa component of Red Hat OpenShift Container Storage (RHOCS) is one implementation of this API) - Customization of the container images used by deployed pods for testing and development scenarios
2.2. Before Installing the Quay Operator
2.2.1. Deciding On a Storage Solution
If you want the Operator to manage its own object storage, you will first need to ensure the RHOCS is available on your OpenShift cluster to provide the ObjectBucketClaim
API. If you already have object storage ready to be used by the Operator, skip to Installing the Operator.
2.2.2. Enabling OpenShift Container Storage
To install the RHOCS Operator and configure a lightweight NooBaa (S3-compatible) object storage:
- Open the OpenShift console and select Operators → OperatorHub, then select the OpenShift Container Storage Operator.
- Select Install. Accept all default options and select Install again.
-
After a minute or so, the Operator will install and create a namespace
openshift-storage
. You can confirm it is completed when theStatus
column is markedSucceeded
. Create NooBaa object storage. Save the following YAML to a file called
noobaa.yml
.apiVersion: noobaa.io/v1alpha1 kind: NooBaa metadata: name: noobaa namespace: openshift-storage spec: dbResources: requests: cpu: '0.1' memory: 1Gi coreResources: requests: cpu: '0.1' memory: 1Gi
Then run the following:
$ oc create -n openshift-storage -f noobaa.yml noobaa.noobaa.io/noobaa created
After a minute or so, you should see the object storage ready for use (
PHASE
column is markedReady
)$ oc get -n openshift-storage noobaas noobaa -w NAME MGMT-ENDPOINTS S3-ENDPOINTS IMAGE PHASE AGE noobaa [https://10.0.32.3:30318] [https://10.0.32.3:31958] registry.redhat.io/ocs4/mcg-core-rhel8@sha256:56624aa7dd4ca178c1887343c7445a9425a841600b1309f6deace37ce6b8678d Ready 3d18h
2.3. Installing the Operator from OperatorHub
- Using the OpenShift console, Select Operators → OperatorHub, then select the Quay Operator. If there is more than one, be sure to use the Red Hat certified Operator and not the community version.
- Select Install. The Operator Subscription page appears.
Choose the following then select Subscribe:
- Installation Mode: Choose either 'All namespaces' or 'A specific namespace' depending on whether you want the Operator to be available cluster-wide or only within a single namespace (all-namespaces recommended)
- Update Channel: Choose the update channel (only one may be available)
- Approval Strategy: Choose to approve automatic or manual updates
- Select Install.
- After a minute you will see the Operator installed successfully in the Installed Operators page.