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-hyperconverged-into-dependencies #11523

Merged
merged 4 commits into from
Mar 10, 2025

Conversation

DanielOsypenko
Copy link
Contributor

@DanielOsypenko DanielOsypenko commented Feb 27, 2025

In past we had a problem with deploying ODF on Hosted Client clusters that were deployed with latest unreleased CVN and latest unreleased ACM.
The nature of the problem was not determined, but installing upstream hyperconverged along with upstream mce proved to be sustainable.
This PR is also giving us a backdoor option, when CNV ureleased version is still not available and upstream HCO is already been populated via unstable index-tag of quay.io/kubevirt/hyperconverged-cluster-index

Link to the issue: https://issues.redhat.com/browse/OCPBUGS-32196
Link to verification run: https://privatebin.corp.redhat.com/?08e39cfadafad0c6#E5JtjD7BpRWhLi22Jobta6U3FX6hJ3RfgUJZcAvqjsUT

Added int parameter in configuration ENV_DATA.clusters.<cluster_name>.storage_quota. Default value - no storage_quota, meaning storage for this client is unlimited

@DanielOsypenko DanielOsypenko self-assigned this Feb 27, 2025
@DanielOsypenko DanielOsypenko requested a review from a team as a code owner February 27, 2025 20:06
@pull-request-size pull-request-size bot added the size/L PR that changes 100-499 lines label Feb 27, 2025
@pull-request-size pull-request-size bot added size/XL and removed size/L PR that changes 100-499 lines labels Mar 2, 2025
@DanielOsypenko
Copy link
Contributor Author

added mce nstallation rework into 2nd commit
verified on both clean cluster and on cluster with mce: https://privatebin.corp.redhat.com/?76769169232a1435#6tbg8gXQpJFF2n9ewSpVpFuo94zNAHTpK4jsD7Rfdoob

"""
Deploy hosted OCP cluster on provisioned Provider platform

Args:
deploy_cnv: (bool) Deploy CNV
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be good to keep some arguments documented and have **kwargs after they are listed.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we don't use kwargs in any call, this was removed entirely, because it was bad design. Now before calling deploy_ocp we need to call deploy_dependencies, that reduces shared dependencies and makes code more flexible

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

kwargs were used because deploy_ocp is overloaded method and pylint urges on missing arguments, and kinda for future use

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, sounds reasonable.

get_semantic_version(get_latest_release_version(), only_major_minor=True)
)

if provider_ocp_version > latest_released_ocp_version:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks ok to me. If the workaround is needed for older version then we can use release-4.17 branch.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we don't need this workaround anymore, because it was not stable at all.
Now we have option to deploy Hyperconverged from the start, in aregular way we do it will all other dependencies, instead of installing ACM -> turning off imbedded Hyperconverged -> installing Hyperconverged upstream.
So this code is redundant and not stable, hence removed

)

else:
deploy_acm_hub = False
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't the values be collected from config even after first deployment?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this function is driven by ocs_ci/deployment/deployment.py:deploy_cluster which has its own deploy_cnv call.
We have it here in case we don't want to deploy Provider and use fixture, or try to deploy clients directly from other place.

So in this case it passes the calls where we do install cnv - mandatory, when config saying this and now only check that with first client cnv and rest dependencies are installed.
Hope that answers on q.

fbalak
fbalak previously approved these changes Mar 3, 2025
"""
Deploy hosted OCP cluster on provisioned Provider platform

Args:
deploy_cnv: (bool) Deploy CNV
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, sounds reasonable.

Copy link
Contributor

@dahorak dahorak left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall LGTM, just small question about one condition.

About the Provider - Client jenkins job, should I add following two parameters also to the job UI (similarly as we have DEPLOY_ACM_HUB and DEPLOY_CNV?

* `mce_deployment` - Deploy MCE or not (Default: false)
* `deploy_hyperconverged` - Deploy hyperconverged operator or not (Default: false).  Necessary for Converged clusters with hosted clients with unreleased OCP version

obrazek

Comment on lines 294 to 295
if not config.ENV_DATA.get("deploy_acm_hub_cluster", True):
deploy_acm_hub = False
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this part necessary?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

removed

dahorak
dahorak previously approved these changes Mar 3, 2025
@DanielOsypenko DanielOsypenko dismissed stale reviews from dahorak and fbalak via 2a393a1 March 3, 2025 15:00
@openshift-ci openshift-ci bot removed the lgtm label Mar 3, 2025
@DanielOsypenko DanielOsypenko force-pushed the 418hyperconverged branch 5 times, most recently from f28c27c to 0cb14ef Compare March 4, 2025 14:08
@DanielOsypenko DanielOsypenko force-pushed the 418hyperconverged branch 3 times, most recently from e86eb10 to f9e7164 Compare March 6, 2025 20:13
Signed-off-by: Daniel Osypenko <[email protected]>
@DanielOsypenko
Copy link
Contributor Author

@DanielOsypenko DanielOsypenko added the Verified Mark when PR was verified and log provided label Mar 7, 2025
@openshift-ci openshift-ci bot added the lgtm label Mar 7, 2025
Copy link

openshift-ci bot commented Mar 10, 2025

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: dahorak, DanielOsypenko, fbalak

The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@fbalak fbalak merged commit c7744a4 into red-hat-storage:master Mar 10, 2025
6 of 7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
lgtm size/XL Verified Mark when PR was verified and log provided
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants