-
Notifications
You must be signed in to change notification settings - Fork 4.3k
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
VAULT-21474 Run oidcPeriodicFunc for each namespace id store #29312
Conversation
not sure why I decided to ignore the NoNamespace error before or not log the unexpected error, that doesn't make sense.
CI Results: |
Build Results: |
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.
Code itself looks great!
changelog/29312.txt
Outdated
@@ -0,0 +1,3 @@ | |||
```release-note:bug | |||
identity/oidc: Run OIDC key rotations for each namespace individually. |
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.
Can we also add a change release note to say that the cache control header returned from OIDC queries will only be for the queried namespace?
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 might be good to connect with @austingebauer and @fairclothjm, since I know they've done worth with OIDC before, to try to see whether this change in behavior is problematic
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 think I was planning on adding a separate changelog on the ent PR but that doesn't make much sense... yeah I'll update this entry with more details regarding what this means for enterprise
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.
@miagilepner John took a look at the enterprise PR here. He also asked me to run a quick smoke test for upgrade which I did and didn't see anything weird
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, thank you!
this was already in the ENT PR, I had already checked that the file didn't exist on CE before but somehow I missed it.
in merging these changes I want to avoid the normal path of 1) merge CE PR, 2) wait for changes to be merged into ENT then 3) merge the ENT PR because during the period between 1) and 3) the ENT repo would build successfully but yield a binary with a bug where OIDC keys are not rotated for any namespaces except for the root one. So instead of the normal path I'll follow this other guide instead and merge both CE and ENT PRs at the same time. I've ran the following command to ensure compatibility between the PRs: |
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.
reapproved after docs change
Description
This PR makes the identity store rotate only the OIDC keys for its own namespace. This allows the enterprise version, which supports namespaces, to scale to a larger number of namespaces without hitting timeouts on this
oidcPeriodicFunc
by dividing the work between multiple executions. For CE this shouldn't change anything.ent PR: vault-enterprise#7164
Jira: VAULT-21474
TODO only if you're a HashiCorp employee
backport/
label that matches the desired release branch. Note that in the CE repo, the latest release branch will look likebackport/x.x.x
, but older release branches will bebackport/ent/x.x.x+ent
.of a public function, even if that change is in a CE file, double check that
applying the patch for this PR to the ENT repo and running tests doesn't
break any tests. Sometimes ENT only tests rely on public functions in CE
files.
in the PR description, commit message, or branch name.
description. Also, make sure the changelog is in this PR, not in your ENT PR.