-
Notifications
You must be signed in to change notification settings - Fork 23
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
SUSE Support and crmsh #175
Comments
Not that I know of - @sean-freeman or @berndfinger might know.
The role is not currently idempotent for all operations - not sure which are idempotent and which are not - I don't know if you can make the crmsh implementation idempotent without making the pcs implemetation idempotent |
@richm I had started porting some code in line with the mentioned Ansible Role draft (keeping to the scope of I would probably suggest that |
Thank you both for your comments, I will proceed with with work on my end to see how this can be implemented. |
That's correct. When you run the role repeatedly with the same variables, you'll get the same outcome and the role should not even restart cluster daemons and thus it should not disrupt cluster operations. However, the role removes any cluster configuration not specified in the role variables. This applies to CIB, corosync and other cluster components. Changing some components' (corosync, sbd) configuration results in restarting those daemons. |
@sean-freeman @tomjelinek @berndfinger Lot of idempotency is coming from fact that cluster config will be rebuilt using all those CIB tasks and then remain untouched if they are same. How would this work combined with sap_install if you re-run them both @sean-freeman ? sap_ha_pacemaker_cluster is where all resources and pacemaker config is created and I dont see anywhere ha_cluster_resource_primitives or __sap_ha_pacemaker_cluster_resource_primitives are defined in examples, so I would assume it would result in CIB being replaced regardless. If this destructive behavior in combination with sap_ha_pacemaker_cluster is expected, then there is not much value for us in implementing CIB steps under crmsh. |
@tomjelinek Thinking about my comment / on re-visit to this GH Issue, it is a good idea to give the end-user a choice on how The following would warrant a separate GH Issue to be raised. Perhaps "Feature Request: In case such a feature exists already and I cannot see it, please excuse me and please correct me. As @marcelmamula perceives, and other end-users may also, the behaviour of @marcelmamula Best to move any continued discussion specific to SAP, into the On it's own, the Ansible Role The Ansible Role
The 'private' var (prefix So the same applies.... if an end-user:
|
Thank you @sean-freeman for lengthy explanation even though I managed to get to explanations in meantime. @tomjelinek @sean-freeman I was asking about destructiveness and idempotence mainly because whole cib creation sequence is using pcs working on temporary configuration xml, leaving whole cluster intact. This is not possible with SUSE crm unless you start doing some extensive jinja2 changes without running crm configure But end is most likely same, because even crm_diff at end of cib build considers all changes as changes and pushes them as patch. |
@marcelmamula Can you expand your explanation? From what I investigated (a long time ago), any Looking in the repository, there are a limited number of
Or do you mean it is not possible for |
Yes @sean-freeman , My comment was mainly about -f to do changes in xml separate from live cluster cib. |
@marcelmamula Isn't 'Shadow CRB usage' the equivalent ? |
@sean-freeman You are correct, shadow cib is possible, but it is limited to interactive crm configure mode, because you have to do all changes before commit. I tried using it on command line as ansible would, but shadow was not kept after commands. Update: I am testing with -c and it seems to be working, I will update if it is usable. |
@tomjelinek I have started going through Contribution documentation and I have hit snag with tox availability on SUSE. Would it be fine with doing linting check and leave rest of tests for git actions when PR is submitted? Also ha_cluster is not using FQDN module names so all new tasks I added contain them to avoid linting errors. Are you planning to switch to FQDN roles in future? |
@marcelmamula As long as your code passes CI eventually, it doesn't really matter to me whether you test locally or use git actions in a PR. I think that not using FQDN names in a role for its own modules is a system roles convention. @richm Could you comment on these two questions? |
@tomjelinek Thank you. |
This looks like Ansible check mode to me. The ha_cluster role supports check mode, even though some tasks are impossible to be done in check mode. You also need to know a bit about how the role works, that it builds configuration in temp files and then pushes it to cluster / nodes. |
@marcelmamula Sorry for being late to the I don't think you need to strictly follow pcs at all costs. Some parts of the role are very pcs specific, e.g. pcsd configuration. There was no demand for crmsh support when the role got started, so it wasn't designed with crmsh in mind. |
@tomjelinek I have tested out multiple approaches and settled down with crm -c and crm_diff on cib vs shadow. It seems to be working good including rc == 1 check. Example for cib group:
There are some pcs specific like tickets, sets and others so I will leave them as empty placeholders for now or remove completely wherever possible. |
you can't install python
Yes, I suppose so, but it will be painful to debug, if you find some odd issue, and have to iterate repeatedly by pushing new code to a PR, and cannot reproduce the error locally.
In general, you can use the short name for Ansible built-in modules/plugins, and use the FQCN for non-built-in modules/plugins. The Ansible team have told me that short names for built-ins will be supported for the foreseeable future. If/when Ansible changes to require the use of FQCN for everything, we will have tooling to automatically convert everything, because we will have to do that for the other 29 system roles at the same time. |
That should not be happening with ansible-lint because we suppress that warning - https://github.com/linux-system-roles/ha_cluster/blob/main/.ansible-lint#L16 |
@richm @tomjelinek Tox/Testing: |
Not sure what you mean by that.
Yes, you can use
It is a requirement to use qemu. But it is possible to install the qemu and kvm and seabios packages separately. So if you want to be able to run
then you will need to install the qemu, kvm, seabios, whatever other packages you need to run qcow2 based VMs on your development platform. You do not need |
Thank you @sean-freeman @richm @tomjelinek for #186. |
Hello Team,
I am working on sap-linuxlab (community.sap_install) and our plan is to make sure that role sap_ha_pacemaker_cluster, which consumes fedora.linux_system_roles, is correctly working on SUSE systems.
I noticed that groundwork for adoption of non-pcs steps was already done thanks to Sean in #122, so adoption would consist of:
There are few things that I wanted to ask for clarification, before proceeding with any changes in fork:
The text was updated successfully, but these errors were encountered: