Skip to content

topology: Introduce KnownTopology.ADForest - #263

Merged
jakub-vavra-cz merged 1 commit into
SSSD:masterfrom
jakub-vavra-cz:forest
Oct 6, 2026
Merged

jakub-vavra-cz merged 1 commit into
SSSD:masterfrom
jakub-vavra-cz:forest

Conversation

@jakub-vavra-cz

@jakub-vavra-cz jakub-vavra-cz commented Jul 31, 2026 •

Copy link
Copy Markdown
Contributor

topology: Introduce KnownTopology.ADForest
Using: Cursor

Depends on: SSSD/sssd-ci-containers#216

@jakub-vavra-cz
jakub-vavra-cz requested a review from danlavu July 31, 2026 11:51
@jakub-vavra-cz
jakub-vavra-cz marked this pull request as draft July 31, 2026 11:51
@jakub-vavra-cz
jakub-vavra-cz force-pushed the forest branch 2 times, most recently from 0219fe1 to 9bc5e50 Compare August 3, 2026 13:11
@jakub-vavra-cz
jakub-vavra-cz force-pushed the forest branch 8 times, most recently from 96c3d99 to 42f086f Compare September 9, 2026 13:59
@jakub-vavra-cz
jakub-vavra-cz removed the request for review from danlavu September 9, 2026 14:05
@jakub-vavra-cz
jakub-vavra-cz marked this pull request as ready for review September 9, 2026 14:05
@jakub-vavra-cz
jakub-vavra-cz force-pushed the forest branch 2 times, most recently from fcfbed1 to b56bb15 Compare September 21, 2026 13:39
thalman
thalman previously approved these changes Sep 24, 2026

@thalman thalman left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM

@danlavu

danlavu commented Sep 24, 2026

Copy link
Copy Markdown
Contributor

There is a much better way to do this, and I think you'll see the value in what I'm proposing: Let's run three clients.

  • All three domains run in one test — no leave/rejoin churn
  • Three small containers is cheap — seconds to boot, no real cost
  • No static join fixtures, no repeated join/teardown code
  • Controller stops being a no-op — it owns the joins in topology_setup
  • Role subclasses for child and tree make the domain hierarchy explicit

I really do not like the static code; if we need to add more, it's just going to get complicated. I think the role subclasses are the way to go. WYDT?

Comment thread sssd_test_framework/roles/ad.py
Comment thread sssd_test_framework/roles/ad.py
Comment thread sssd_test_framework/fixtures.py Outdated
@danlavu

danlavu commented Sep 29, 2026

Copy link
Copy Markdown
Contributor

I had AI draft up some changes. I still don't like the GPO stuff, but I understand why you have to clean it up now. Take a look at #279. I haven't tested it yet, but I'd like to figure out how we want to proceed before I spend any more time on it. We should probably just hop on a meeting call and hash this out.

@jakub-vavra-cz

Copy link
Copy Markdown
Contributor Author

There is a much better way to do this, and I think you'll see the value in what I'm proposing: Let's run three clients.

* All three domains run in one test — no leave/rejoin churn

* Three small containers is cheap — seconds to boot, no real cost

Nope these are three standalone VMs with setup, these are 2 new containers with names, dns records IPs and build for each supported os in upstreanm ci.

* No static join fixtures, no repeated join/teardown code

* Controller stops being a no-op — it owns the joins in topology_setup

* Role subclasses for child and tree make the domain hierarchy explicit

I really do not like the static code; if we need to add more, it's just going to get complicated. I think the role subclasses are the way to go. WYDT?

Hi @danlavu ,
I am strongly opposed to running three clients. We are trying to cut down testing and footprint in cloud.
I can't even imagine what will get completely screwed up by having three clients on ci-containers and framework level.
I already spent hours and hours (especially stuck/broken gpo linking) on this and I am not fond of idea of redoing this as it is at best tier2 testing.

AFAIK it would make more sense to have three separate ad forest topologies for machine in child/root/tree and do the joining/leaving in topology setup/teardown once. This discussion should have happened before implemented all of this though.

Afaik if You want to experiment with topologies do so but as a refactoring atfer this ii merged.

@danlavu

danlavu commented Sep 29, 2026 •

Copy link
Copy Markdown
Contributor

Okay, dropping my draft. Yes, this discussion should have happened before. I don't like the static fixtures. I know you did a lot of work on this already, and I'm absolutely willing to contribute. I just want to rework the helper fixtures; everything else is fine.

@jakub-vavra-cz

Copy link
Copy Markdown
Contributor Author

I have moved the fixtures to tests and kept only necessary parts here. I am re-running tests, but this should be g2g.

danlavu
danlavu previously approved these changes Oct 5, 2026

@danlavu danlavu left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

EDITED: I overlooked the auto-formatting changes; please revert them, and I'll approve.

@danlavu
danlavu dismissed their stale review October 5, 2026 22:14

I overlooked the auto formatting changes, please revert them and I'll approve.

@danlavu danlavu left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

tox/black is not configured the same as the repo; there are a lot of unrelated formatting changes. Please revert them. If we need to, we can change the formatting in another PR and there is a line with extra indentation. Other than that, it looks great, thanks.

Comment thread sssd_test_framework/roles/ad.py
Comment thread sssd_test_framework/roles/ad.py
Comment thread sssd_test_framework/roles/ad.py
Comment thread sssd_test_framework/roles/ad.py
Comment thread sssd_test_framework/roles/ad.py
Comment thread sssd_test_framework/roles/ad.py
Comment thread sssd_test_framework/roles/ad.py
Comment thread sssd_test_framework/roles/ad.py Outdated
Add KnownTopology.ADForest with root, child, and tree domain controllers.
Extend AD to handle some operation on the child/tree.
Add clenup helpers.
Document ad-forest multihost testing in docs/guides/testing-adforest.rst.

Assisted-by: Cursor
@jakub-vavra-cz

Copy link
Copy Markdown
Contributor Author

Reverted the indentation changes and fixed the wrong indent as well.

@danlavu danlavu left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Looks good, thank you!

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants