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

Fix/syndic/62618 - external auth #63257

Closed
wants to merge 20 commits into from
Closed

Commits on Dec 16, 2022

  1. Configuration menu
    Copy the full SHA
    779ca84 View commit details
    Browse the repository at this point in the history
  2. Tests allowed on Python <3.10

    waynew committed Dec 16, 2022
    Configuration menu
    Copy the full SHA
    e231a5a View commit details
    Browse the repository at this point in the history
  3. Convert syndics to use older AsyncReqChannel

    There *may* be a better way to get results from syndics to the Master of
    Masters, but this at least works.
    
    Fixes saltstack#62933
    waynew committed Dec 16, 2022
    Configuration menu
    Copy the full SHA
    16a44a5 View commit details
    Browse the repository at this point in the history
  4. refactor publish, extract publisher_acl

    Aiming to simplify publish where possible, to make it easier to follow.
    waynew committed Dec 16, 2022
    Configuration menu
    Copy the full SHA
    f1b37d8 View commit details
    Browse the repository at this point in the history
  5. Fix Syndic eauth failure

    This is a complete restructure of how Master-of-Masters and Syndics
    communicate when publishing a job.
    
    In the past, if we were a MoM, the undocumented but desired approach was
    that the MoM would not have any minions attached to it. Because when a
    Salt Master was a MoM it would simply publish the job 100% of the time
    unless the ACL denied the command. But this was not based on whether or
    not there were minions that could be targeted. In fact, when no valid
    minions were found then the job would be published, it was only when
    there were *invalid* minions found that things would be rejected.
    
    This new approach is for the MoM to make a request of the syndics to
    return a list of minions that match both the allowed ACL targets as well
    as the requested targets.
    
    On the MoM if the user has requested more minions than they have access
    to then we will fail on authorization.
    
    There are a few known issues with the existing architecture:
    
    1. It's possible (though undocumented as to what the behavior should be)
       for multiple syndics to have different minions with the same ID.
    2. Based on timing, and without a complete rearchitecture of Syndics
       (planned for 2023), if a syndic comes online *after* targeting data
       is returned and *before* the job is published it's possible that a
       user may be able to publish jobs to minions they should not have
       access to.
    3. It's undocumented how things should work if a Syndic is a MoM.
    
    But now - when using external auth, or publisher_acl, the only time a
    job should be published is when the provided user actually has the
    correct ACL to publish the jobs.
    waynew committed Dec 16, 2022
    Configuration menu
    Copy the full SHA
    0b259a8 View commit details
    Browse the repository at this point in the history
  6. Update Syndic docs

    Yeah, maybe Syndics have been around for a while but a lot of their
    behavior is not well-defined.
    waynew committed Dec 16, 2022
    Configuration menu
    Copy the full SHA
    5b7729f View commit details
    Browse the repository at this point in the history
  7. Add changelog entries

    waynew committed Dec 16, 2022
    Configuration menu
    Copy the full SHA
    2d8e8c3 View commit details
    Browse the repository at this point in the history
  8. SQUASHME

    waynew committed Dec 16, 2022
    Configuration menu
    Copy the full SHA
    c4e5055 View commit details
    Browse the repository at this point in the history
  9. Remove experimental note

    Required by Anil
    waynew committed Dec 16, 2022
    Configuration menu
    Copy the full SHA
    d79fbab View commit details
    Browse the repository at this point in the history
  10. Skip if docker not found

    Do our tests care we cannot connect to docker in the environment? We do
    not. If docker can't get the client to connect it's OK, we'll just skip
    the tests. At least *one* of our platforms should be running these
    tests, which is enough.
    waynew committed Dec 16, 2022
    Configuration menu
    Copy the full SHA
    0fe8db6 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    d40ae8d View commit details
    Browse the repository at this point in the history
  12. Rewrite warning

    waynew committed Dec 16, 2022
    Configuration menu
    Copy the full SHA
    ed5389a View commit details
    Browse the repository at this point in the history
  13. Another test skip

    No need to fail when we can't clean up. VMs *should* be going away, and
    if you're running locally you can clean up yourself 👍
    waynew committed Dec 16, 2022
    Configuration menu
    Copy the full SHA
    39b079c View commit details
    Browse the repository at this point in the history
  14. Fix existing typo

    waynew committed Dec 16, 2022
    Configuration menu
    Copy the full SHA
    98a3d45 View commit details
    Browse the repository at this point in the history

Commits on Dec 19, 2022

  1. Configuration menu
    Copy the full SHA
    6e36e03 View commit details
    Browse the repository at this point in the history

Commits on Dec 21, 2022

  1. Configuration menu
    Copy the full SHA
    1ce5576 View commit details
    Browse the repository at this point in the history

Commits on Dec 22, 2022

  1. Configuration menu
    Copy the full SHA
    d843ecf View commit details
    Browse the repository at this point in the history

Commits on Dec 23, 2022

  1. Configuration menu
    Copy the full SHA
    44cb6b2 View commit details
    Browse the repository at this point in the history

Commits on Jan 2, 2023

  1. Configuration menu
    Copy the full SHA
    92e490b View commit details
    Browse the repository at this point in the history

Commits on Jan 3, 2023

  1. bump up the timeout

    waynew committed Jan 3, 2023
    Configuration menu
    Copy the full SHA
    0336010 View commit details
    Browse the repository at this point in the history