Bug 2030403 - [RFE] Deploying LSO backed ODF on top of unschedulable control plane nodes (masters) [NEEDINFO]
Summary: [RFE] Deploying LSO backed ODF on top of unschedulable control plane nodes (m...
Keywords:
Status: NEW
Alias: None
Product: Red Hat OpenShift Data Foundation
Classification: Red Hat Storage
Component: ocs-operator
Version: 4.8
Hardware: Unspecified
OS: Unspecified
unspecified
medium
Target Milestone: ---
: ---
Assignee: Santosh Pillai
QA Contact: Elad
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2021-12-08 17:16 UTC by daniel
Modified: 2023-08-09 17:00 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed:
Embargoed:
muagarwa: needinfo? (sapillai)


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Github dmoessne/ocp-odf-iscsi-infra/tree/main/ocs/taint 0 None None None 2021-12-09 11:44:14 UTC
Red Hat Knowledge Base (Article) 6408481 0 None None None 2021-12-09 11:46:25 UTC

Description daniel 2021-12-08 17:16:39 UTC
1. Proposed title of this feature request
Deploying LSO backed ODF on top of unschedulable control plane nodes (masters)

3. What is the nature and description of the request?
Being able to deploy LSO backed ODF on top of master nodes without making master nodes schedulable

4. Why does the customer need this? (List the business requirements here)
Especially for bare metal setup whith preset HW (customers have often contracts where a certain HW type is preferred/discounted,..) 
it often happens that also control plane nodes have more than sufficient power to run additional load to not wast that resources.
An other use case might be the setup is a to customer sold solution where the worker nodes should be as good as possible free from infra 
workload to be able to fully sell that compute power.
Making masters schedulable brings other problems with it, like the need to change the default scheduler or add additional labels
to custom namespaces

5. How would the customer like to achieve this? (List the functional requirements here)
Taint/label all relevant components for BM setup so ODF can be deployed on top of masters that have *not* been made schedulable

6. For each functional requirement listed, specify how Red Hat and the customer can test to confirm the requirement is successfully implemented.
Label and taint all relevant object accordingly and verify those are  only running on the masters (like done in https://github.com/dmoessne/ocp-odf-iscsi-infra/tree/main/ocs/taint#validate-components-running-on-correct-nodes)

7. Is there already an existing RFE upstream or in Red Hat Bugzilla?

At least similar thin is in https://bugzilla.redhat.com/show_bug.cgi?id=1915607
And we already have https://access.redhat.com/articles/6408481 which would perhaps need just some polishing and addition of LSO.


8. Does the customer have any specific timeline dependencies and which release would they like to target (i.e. RHEL8, RHEL9)?
As soon as possible would be great and for ODF 4.8

9. Is the sales team involved in this request and do they have any additional input?
not at this point, but can be if needed

10. List any affected packages or components.
- LSO
- ODF


additional info 
PoC procedure in https://github.com/dmoessne/ocp-odf-iscsi-infra/tree/main/ocs/taint
but there RGW is currently missing. Also, I did a comparison between a deployment on masters and workers with special attention 
to affinities and only difference I found was for mds 
~~~

spec:                                                           spec:
  affinity:                                                       affinity:
    nodeAffinity:                                                   nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:                 requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:                                              nodeSelectorTerms:
        - matchExpressions:                                             - matchExpressions:
          - key: cluster.ocs.openshift.io/openshift-storage               - key: cluster.ocs.openshift.io/openshift-storage
            operator: Exists                                                operator: Exists
          - key: node-role.kubernetes.io/master               |     podAntiAffinity:
            operator: Exists                                  |       requiredDuringSchedulingIgnoredDuringExecution:
                                                              >       - labelSelector:
                                                              >           matchExpressions:
                                                              >           - key: app
                                                              >             operator: In
                                                              >             values:
                                                              >             - rook-ceph-mds
                                                              >         topologyKey: topology.kubernetes.io/zone
  containers:                                                     containers:

~~~

which is a bit confusing as my understanding is that we just overwrite settings that are there and hence I would have expected
the podAntiAffinity is stil there....

Also, it might be that topologyKey on zone makes less sense for a BM deployment


Note You need to log in before you can comment on or make changes to this bug.