-
Notifications
You must be signed in to change notification settings - Fork 146
install cephadm on all nodes #3552
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
base: main
Are you sure you want to change the base?
install cephadm on all nodes #3552
Conversation
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
2241460 to
0c9047f
Compare
|
This PR is stale because it has been for over 15 days with no activity. |
0c9047f to
a27c4f4
Compare
fultonj
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would you please consider a few small changes?
a27c4f4 to
e90853a
Compare
fmount
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Other than minor things that we can even address in a follow up, the patch seems good to go. @katarimanojk let me know if you have other iterations on it, otherwise we can land it.
e90853a to
483825e
Compare
@fmount Thanks for the suggestions, updated the patch now |
fmount
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/lgtm
|
@katarimanojk as per the recent failures I'm wondering if this patch should be extended to install not only cephadm but also the missing requirements [1]. |
483825e to
f17e5c7
Compare
@fmount i just updated the patch to install missing package, please review the latest change |
|
Build failed (check pipeline). Post https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/e5db0069d16f45ca8a97bf33b950d6fe ✔️ openstack-k8s-operators-content-provider SUCCESS in 2h 08m 33s |
hooks/playbooks/ceph.yml
Outdated
| hosts: "{{ cifmw_ceph_target | default('computes') }}" | ||
| gather_facts: false | ||
| become: true | ||
| when: cifmw_cephadm_install_on_all_nodes | default(false) | bool |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nope.
ERROR! 'when' is not a valid attribute for a Play
The error appears to be in '/home/zuul/src/github.com/openstack-k8s-operators/ci-framework/hooks/playbooks/ceph.yml': line 101, column 3, but may
be elsewhere in the file depending on the exact syntax problem.
The offending line appears to be:
- name: Ceph prerequisites
^ here
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My bad, i missed it, thanks for pointing it. I will fix it in the follow up patch.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is fixed in the latest patch.
f17e5c7 to
3b24394
Compare
|
Could you also include the [cifmw_cephadm] prefix in the commit title and include a Also when/if you have a log of this running and working, please share a link (if you need to share a downstream link, include a link in a comment on a jira and mark the comment as Restriced to Red Hat Employee) Thanks! |
3b24394 to
3f4c116
Compare
Thanks for the suggestion, commit msg is updated accordingly and Jira has logs (only red hat employee) |
3f4c116 to
8d0b439
Compare
hooks/playbooks/ceph.yml
Outdated
| pre_tasks: | ||
| - name: Early stop ceph prerequisites | ||
| when: | ||
| - not cifmw_cephadm_install_on_all_nodes | default(false) | bool |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this still a valid option? I think we extended this playbook to support more than just cephadm, so you might need to install jq in any case.
So either we set a global option to skip_prereq entirely, or we scope this variable to cephadm only.
How much we gain from this option? In theory we have two use cases in CI:
- HCI (it might be ok to install cephadm on the 3 compute nodes, because
monsare deployed there) - external Ceph: still 3 nodes, still
monsco-located w/OSDs
So the question is: what do you think about removing the condition entirely from both here (L109) and pre.yaml (L25)? This way we could rely on the fact that ansible is idempotent (and not break the existing use cases with this change), we could decide to skip this playbook entirely with --skip-tags if needed, and we can consolidate prerequisites in a single place w/ no distinction between cephadm or other things that we might need in the future (e.g. due to new ceph versions).
I'd like also to hear @fultonj's opinion on this ^
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@fmount Thanks for the feedback, I agree with your point about removing the condition
so that the prerequisite packages are installed unconditionally on all nodes.
Also I can add the ceph_prereq tag to the entire play, so if needed, the prerequisite installation can be skipped using --skip-tags ceph_prereq.
Some context on the use cases:
- Greenfield scenarios: These scenarios will not be harmed by installing the packages again due to Ansible's idempotency
- HCI adoption: , we use adoption_deploy_ceph.yml (i.e., openstack overcloud ceph deploy) instead of the cifmw ceph playbook, so this change won't impact that workflow
@fultonj we need your thoughts on this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree with the proposal from @fmount
Greenfield only installed cephadm on the boostrap node because that's the only node where it is needed for greenfield. That assumption got us this far but now for adoption the requirement has changed so let's just accept it and remove while we add instead of trying to add more complexity to support two scenarios we don't actually have to go out of our way to support. Wish I had thought of that sooner.
pre.yml is called in the bootstrap context; i.e. target hosts are only the single bootstrap node:
https://github.com/openstack-k8s-operators/ci-framework/blob/main/hooks/playbooks/ceph.yml#L410
it could be kept as is and thought of as pre-for-bootstrap and this line could be removed:
You could then take care of prerequisites for all nodes including the cephadm installation separately.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
… nodes For adoption scenarios with external Ceph, cephadm and dependent packages may be missing on nodes. Add separate play to install required packages on all nodes. Signed-off-by: mkatari <mkatari@redhat.com> Jira: OSPRH-24863
8d0b439 to
3dcaa11
Compare
|
/lgtm |
|
Build failed (check pipeline). Post https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/7404c62f4eae4372badea8c7438ce04f ✔️ openstack-k8s-operators-content-provider SUCCESS in 2h 40m 17s |
No description provided.