Deployment of Red Hat OpenShift Data Foundation using GitOps

Deploy Red Hat OpenShift Data Foundation (ODF), a unified data storage solution for OpenShift, using GitOps. Manage installation declaratively with Argo CD for enhanced consistency and auditability.

Try Red Hat OpenShift Data Foundation

This end-to-end example demonstrates how to deploy the MultiCloudGateway (MCG) component of OpenShift Data Foundation in isolation using GitOps, suitable for users only requiring object storage capabilities without block or file services.

In this lesson, you will:

  • Learn to declaratively deploy only the MultiCloudGateway (MCG) component of ODF, allowing you to establish S3-compatible object storage services using a GitOps approach.

View the example

The following is an end-to-end example. It uses several additional Helm Charts that will allow the deployment of the Operator and the configuration at the same time. This time, we will deploy the MultiCloudGateway only.

  1. We will use the following Chart for our configuration: Argo CD Repository for Setup OpenShift Data Foundation

  2. This folder will automatically be used for an Argo CD Application.

  3. The following sub-charts are used. Please verify the appropriate README files for further information:

    | Repository | Name | Version |
    |------------|------|---------|
    | https://charts.stderr.at/ | helper-operator | ~1.0.14 |
    | https://charts.stderr.at/ | helper-status-checker | ~4.0.0 |
    | https://charts.stderr.at/ | openshift-data-foundation | ~1.0.10 |
    | https://charts.stderr.at/ | tpl | ~1.0.0 |
  4. The values file looks like the following. This time, only object storage is deployed.

    ###########################
    # Enable and configure ODF
    ###########################
    openshift-data-foundation:
     storagecluster:
       enabled: true # <1>
       syncwave: 3
       
       # There are two options:
       # Either install the MultiCloudGateway only. This is useful if you just need S3 for Quay registry for example.
       multigateway_only: # <2>
         enabled: true
         
         # Name of the storageclass
         # The class must exist upfront and is currently not created by this chart.
         storageclass: gp3-csi # <3>
    # Install Operator Compliance Operator
    # Deploys Operator --> Subscription and Operatorgroup
    # Syncwave: 0
    helper-operator: # <4>
     console_plugins: # <5>
       enabled: true
       plugins:
         - odf-console
       job_namespace: kube-system
     operators:
       odf-operator: # <6>
         enabled: true
         syncwave: '0'
         namespace: # <7>
           name: openshift-storage
           create: true
         subscription: # <8>
           channel: stable-4.18
           approval: Automatic
           operatorName: odf-operator
           source: redhat-operators
           sourceNamespace: openshift-marketplace
         operatorgroup: # <9>
           create: true
    helper-status-checker: # <10>
     enabled: true
     checks:
       - operatorName: odf-operator
         namespace:
           name: openshift-storage
         serviceAccount:
           name: "status-checker-odf" 
  5. Enable Storage configuration.

  6. Installing object storage only. 

  7. StorageClass to use for ODF.

  8. helper-operator: Creates the namespace, subscription, and OperatorGroup. 

  9. Create a job that deploys the console plugin of ODF. 

  10. Name of the subscription. 

  11. Namespace name and if it will be created by this chart.  

  12. Subscription definition, like channel and deployment strategy.

  13. Create the OperatorGroup

  14. helper-status-checker: Enable status check to verify if the Operator has been deployed successfully.

Let's look at another example in the next lesson.

Previous resource
Verify the installation
Next resource
End-to-end example #2 - Full Storage Deployment