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

nixos/ceph: Rename old ceph test and add new multi-node test #72094

Merged
merged 6 commits into from Nov 2, 2019

Conversation

lejonet
Copy link
Contributor

@lejonet lejonet commented Oct 27, 2019

Rename the old ceph test to ceph-single-node and add a new test
ceph-multi-node. The ceph-single-node represents a dev cluster whereas
ceph-multi-node is closer to a prod cluster.

Motivation for this change

I created a test that better emulates an actual cluster, with different nodes for different daemons and renamed the old test to "single-node". The single-node test more reflects how a dev cluster would be setup, with everything on one machine and to get better coverage for changes to the ceph package, the multi node tests separates mon from osd daemons completely.

A bunch of python packages seems to be broken in master, so I couldn't test with nix-review WIP (I had to change version of python-modules/cheroot from 6.5.8 (master) to 6.5.6 (19.09) to get the test to run at all).

I thought we could maybe use this pull request to get a few more tests for ceph, not just the multi-node one. For example, doing a single-node test that uses ceph-volume to provision the OSD daemons might be warranted.

Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Ensured that relevant documentation is up to date
  • Fits CONTRIBUTING.md.
Notify maintainers

cc @srhb @johanot @lejonet

Rename the old ceph test to ceph-single-node and add a new test
ceph-multi-node. The ceph-single-node represents a dev cluster whereas
ceph-multi-node is closer to a prod cluster.
Copy link
Contributor

@srhb srhb left a comment

Choose a reason for hiding this comment

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

This looks great, however I think I'd like if we could collect all the UUIDs and daemon numbers/names in some dataset and stop repeating them throughout the testScript and config. :)

nixos/tests/ceph-multi-node.nix Outdated Show resolved Hide resolved
@flokli
Copy link
Contributor

flokli commented Nov 1, 2019

@lejonet this looks really nice, thanks :-)

Can you add/rename in nixos/tests/all-tess.nix?

@lejonet
Copy link
Contributor Author

lejonet commented Nov 1, 2019

@lejonet this looks really nice, thanks :-)

Can you add/rename in nixos/tests/all-tess.nix?

Thank you for reminding me, had completely forgotten about that file. I have fixed that in 5fbf0cf.

@flokli
Copy link
Contributor

flokli commented Nov 1, 2019

Thanks! Can we add some bluestore OSDs in the test too?

@srhb
Copy link
Contributor

srhb commented Nov 1, 2019 via email

@lejonet
Copy link
Contributor Author

lejonet commented Nov 1, 2019

Thanks! Can we add some bluestore OSDs in the test too?

As @srhb points out, bluestore OSDs isn't supported by the module yet, therefor there isn't any point to add a test with them, yet. The reason is that we need to figure out a way to handle the activation needed for bluestore OSDs (which we don't need with filestore due to them being regular mounts) in the module first.

@lejonet
Copy link
Contributor Author

lejonet commented Nov 1, 2019

I'm happy to merge this as is. Bluestore should probably be supported in the module directly and then added to the tests rather than increasing the scope of this pr. Unless you feel differently @lejonet? :)

On Fri, Nov 1, 2019, 15:42 Florian Klink @.***> wrote: Thanks! Can we add some bluestore OSDs in the test too? — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub <#72094?email_source=notifications&email_token=AABVRYVDH3NOHVTPSVMPNJLQRQ565A5CNFSM4JFR2ITKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEC3DWNQ#issuecomment-548813622>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABVRYWE3KYSIKQS6PVMERTQRQ565ANCNFSM4JFR2ITA .

I'm just going to refactor the single-node test with the new "framework" and commit that, then I'm fine with merging the PR.

@lejonet
Copy link
Contributor Author

lejonet commented Nov 1, 2019

@srhb
Now both tests are written with the framework of an authoritative dataset in the beginning being used to store the constants and then substituted into the testscript and configuration as needed.

@flokli flokli merged commit bb4bf2f into NixOS:master Nov 2, 2019
@flokli
Copy link
Contributor

flokli commented Nov 2, 2019

Thanks @lejonet

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants