-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Allow server startup with partial connector failures #4159
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
Allow server startup with partial connector failures #4159
Conversation
ea220db
to
4e95e6c
Compare
49070d8
to
6b1b2fc
Compare
Signed-off-by: Manoj Vivek <p.manoj.vivek@gmail.com>
6b1b2fc
to
733eadb
Compare
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.
Nice, I tested the PR manually, and everything seems fine. I have a couple of suggestions, but otherwise it is good enough to be merged.
Some thoughts about the solution:
My initial idea was to experiment with a Kubernetes-like approach to handle OIDC providers. It retries discovery endpoint requests till a successful response in the background.
However, there are disadvantages, like it is not possible to distinguish misconfigured connectors and non-responding providers. Additionally, it adds much more changes to the code.
…s for connector failures Signed-off-by: Manoj Vivek <p.manoj.vivek@gmail.com>
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.
Seems fine to me! Thank you for the contribution.
<!-- Release notes generated using configuration in .github/release.yml at v2.44.0 --> ## What's Changed ### Enhancements 🚀 * Allow server startup with partial connector failures by @manojVivek in dexidp#4159 * Add recursive LDAP parent group search (AD-style hierarchy across all LDAPs) by @EthanDieterich in dexidp#4113 * feat: Add ModifyGroupNames claimMutation to oidc connector by @peschmae in dexidp#4144 * authproxy connector: add support for specifying group header separator by @a-buck in dexidp#3745 * fix: join issuer URL with discovery path without extra slash after issuer URL by @vizv in dexidp#4263 * feat: grpc api list clients by @daemonfire300 in dexidp#4202 ### Bug Fixes 🐛 * 🐛 remove extra method="get" from device-code template by @tuminoid in dexidp#4145 * [oidc] pass httpClient to the TokenIdentity context by @marriva in dexidp#4223 * Resolve CVE by updating gomplate to 4.3.3 by @philBrown in dexidp#4224 * fix: device code should not require scope by @cardoe in dexidp#4203 * fix: device code pending HTTP response by @cardoe in dexidp#4204 * Allow compilation without CGO by @nabokihms in dexidp#4266 ### Dependency Updates ⬆️ * Resolve CVE by updating gomplate to 4.3.2 by @nathanlaceyraft in dexidp#4146 * build(deps): bump actions/attest-build-provenance from 2.3.0 to 2.4.0 by @dependabot[bot] in dexidp#4180 * build(deps): bump golang.org/x/net from 0.40.0 to 0.41.0 by @dependabot[bot] in dexidp#4171 * build(deps): bump google.golang.org/grpc from 1.72.1 to 1.73.0 in /examples by @dependabot[bot] in dexidp#4174 * build(deps): bump github/codeql-action from 3.28.18 to 3.29.0 by @dependabot[bot] in dexidp#4179 * build(deps): bump aquasecurity/trivy-action from 0.30.0 to 0.31.0 by @dependabot[bot] in dexidp#4167 * build(deps): bump ossf/scorecard-action from 2.4.1 to 2.4.2 by @dependabot[bot] in dexidp#4162 * build(deps): bump docker/build-push-action from 6.17.0 to 6.18.0 by @dependabot[bot] in dexidp#4155 * build(deps): bump distroless/static-debian12 from `188ddfb` to `627d6c5` by @dependabot[bot] in dexidp#4181 * build(deps): bump sigstore/cosign-installer from 3.8.2 to 3.9.0 by @dependabot[bot] in dexidp#4187 * build(deps): bump google.golang.org/api from 0.233.0 to 0.238.0 by @dependabot[bot] in dexidp#4186 * build(deps): bump docker/setup-buildx-action from 3.10.0 to 3.11.0 by @dependabot[bot] in dexidp#4185 * build(deps): bump anchore/sbom-action from 0.20.0 to 0.20.1 by @dependabot[bot] in dexidp#4184 * build(deps): bump github.com/go-sql-driver/mysql from 1.9.2 to 1.9.3 by @dependabot[bot] in dexidp#4183 * build(deps): bump the etcd group with 2 updates by @dependabot[bot] in dexidp#4175 * build(deps): bump alpine from 3.21.3 to 3.22.0 by @dependabot[bot] in dexidp#4163 * build(deps): bump google.golang.org/grpc from 1.72.1 to 1.73.0 in /api/v2 by @dependabot[bot] in dexidp#4170 * build(deps): bump docker/setup-buildx-action from 3.11.0 to 3.11.1 by @dependabot[bot] in dexidp#4189 * build(deps): bump mheap/github-action-required-labels from 5.5.0 to 5.5.1 by @dependabot[bot] in dexidp#4190 * build(deps): bump google.golang.org/grpc from 1.73.0 to 1.74.0 in /examples by @dependabot[bot] in dexidp#4219 * build(deps): bump anchore/sbom-action from 0.20.1 to 0.20.2 by @dependabot[bot] in dexidp#4205 * build(deps): bump sigstore/cosign-installer from 3.9.0 to 3.9.2 by @dependabot[bot] in dexidp#4225 * build(deps): bump aquasecurity/trivy-action from 0.31.0 to 0.32.0 by @dependabot[bot] in dexidp#4210 * build(deps): bump github.com/go-jose/go-jose/v4 from 4.1.0 to 4.1.1 by @dependabot[bot] in dexidp#4196 * build(deps): bump golang.org/x/crypto from 0.39.0 to 0.40.0 by @dependabot[bot] in dexidp#4214 * build(deps): bump alpine from 3.22.0 to 3.22.1 by @dependabot[bot] in dexidp#4217 * build(deps): bump the etcd group with 2 updates by @dependabot[bot] in dexidp#4213 * build(deps): bump github.com/oklog/run from 1.1.0 to 1.2.0 by @dependabot[bot] in dexidp#4199 * build(deps): bump github.com/mattn/go-sqlite3 from 1.14.28 to 1.14.29 by @dependabot[bot] in dexidp#4239 * build(deps): bump github/codeql-action from 3.29.0 to 3.29.4 by @dependabot[bot] in dexidp#4238 * build(deps): bump google.golang.org/grpc from 1.73.0 to 1.74.2 by @dependabot[bot] in dexidp#4235 * build(deps): bump the etcd group with 2 updates by @dependabot[bot] in dexidp#4233 * build(deps): bump google.golang.org/grpc from 1.74.0 to 1.74.2 in /examples by @dependabot[bot] in dexidp#4232 * build(deps): bump anchore/sbom-action from 0.20.2 to 0.20.4 by @dependabot[bot] in dexidp#4229 * build(deps): bump google.golang.org/api from 0.238.0 to 0.243.0 by @dependabot[bot] in dexidp#4234 * build(deps): bump golang.org/x/net from 0.41.0 to 0.42.0 by @dependabot[bot] in dexidp#4227 * build(deps): bump github.com/coreos/go-oidc/v3 from 3.14.1 to 3.15.0 in /examples by @dependabot[bot] in dexidp#4246 * build(deps): bump the etcd group with 2 updates by @dependabot[bot] in dexidp#4243 * build(deps): bump distroless/static-debian12 from `627d6c5` to `cdf4daa` by @dependabot[bot] in dexidp#4253 * build(deps): bump docker/metadata-action from 5.7.0 to 5.8.0 by @dependabot[bot] in dexidp#4252 * build(deps): bump github.com/mattn/go-sqlite3 from 1.14.29 to 1.14.30 by @dependabot[bot] in dexidp#4249 * build(deps): bump github/codeql-action from 3.29.4 to 3.29.5 by @dependabot[bot] in dexidp#4244 * build(deps): bump google.golang.org/api from 0.243.0 to 0.244.0 by @dependabot[bot] in dexidp#4247 * build(deps): bump docker/login-action from 3.4.0 to 3.5.0 by @dependabot[bot] in dexidp#4254 * build(deps): bump github.com/go-jose/go-jose/v4 from 4.1.1 to 4.1.2 by @dependabot[bot] in dexidp#4255 * build(deps): bump github.com/prometheus/client_golang from 1.22.0 to 1.23.0 by @dependabot[bot] in dexidp#4257 * build(deps): bump google.golang.org/api from 0.244.0 to 0.246.0 by @dependabot[bot] in dexidp#4258 * build(deps): bump anchore/sbom-action from 0.20.4 to 0.20.5 by @dependabot[bot] in dexidp#4272 * build(deps): bump github.com/mattn/go-sqlite3 from 1.14.30 to 1.14.32 by @dependabot[bot] in dexidp#4271 * build(deps): bump github/codeql-action from 3.29.7 to 3.29.9 by @dependabot[bot] in dexidp#4269 * build(deps): bump actions/checkout from 4.2.2 to 5.0.0 by @dependabot[bot] in dexidp#4267 * build(deps): bump golang.org/x/net from 0.42.0 to 0.43.0 by @dependabot[bot] in dexidp#4262 * build(deps): bump actions/cache from 4.2.3 to 4.2.4 by @dependabot[bot] in dexidp#4261 * build(deps): bump cloud.google.com/go/compute/metadata from 0.7.0 to 0.8.0 by @dependabot[bot] in dexidp#4259 * build(deps): bump google.golang.org/protobuf from 1.36.6 to 1.36.7 by @dependabot[bot] in dexidp#4275 * build(deps): bump google.golang.org/api from 0.246.0 to 0.247.0 by @dependabot[bot] in dexidp#4274 * chore: update ent generated code by @sagikazarmark in dexidp#4276 * feat: update Go to 1.25 by @sagikazarmark in dexidp#4277 * build(deps): bump google.golang.org/grpc from 1.73.0 to 1.74.2 in /api/v2 by @dependabot[bot] in dexidp#4236 * build(deps): bump google.golang.org/protobuf from 1.36.6 to 1.36.7 in /api/v2 by @dependabot[bot] in dexidp#4260 * build(deps): bump actions/dependency-review-action from 4.7.1 to 4.7.2 by @dependabot[bot] in dexidp#4278 * build(deps): bump distroless/static-debian12 from `cdf4daa` to `a9f88e0` by @dependabot[bot] in dexidp#4291 * build(deps): bump github.com/beevik/etree from 1.5.1 to 1.6.0 by @dependabot[bot] in dexidp#4288 * build(deps): bump github/codeql-action from 3.29.9 to 3.29.11 by @dependabot[bot] in dexidp#4287 * build(deps): bump google.golang.org/grpc from 1.74.2 to 1.75.0 in /examples by @dependabot[bot] in dexidp#4282 * build(deps): bump google.golang.org/grpc from 1.74.2 to 1.75.0 by @dependabot[bot] in dexidp#4281 * build(deps): bump google.golang.org/grpc from 1.74.2 to 1.75.0 in /api/v2 by @dependabot[bot] in dexidp#4280 * build(deps): bump google.golang.org/api from 0.247.0 to 0.248.0 by @dependabot[bot] in dexidp#4283 * build(deps): bump google.golang.org/protobuf from 1.36.7 to 1.36.8 by @dependabot[bot] in dexidp#4285 * build(deps): bump actions/dependency-review-action from 4.7.2 to 4.7.3 by @dependabot[bot] in dexidp#4290 * build(deps): bump google.golang.org/protobuf from 1.36.7 to 1.36.8 in /api/v2 by @dependabot[bot] in dexidp#4286 * build(deps): bump actions/attest-build-provenance from 2.4.0 to 3.0.0 by @dependabot[bot] in dexidp#4296 * build(deps): bump aquasecurity/trivy-action from 0.32.0 to 0.33.0 by @dependabot[bot] in dexidp#4293 * build(deps): bump github.com/stretchr/testify from 1.10.0 to 1.11.1 by @dependabot[bot] in dexidp#4292 ## New Contributors * @nathanlaceyraft made their first contribution in dexidp#4146 * @manojVivek made their first contribution in dexidp#4159 * @marriva made their first contribution in dexidp#4223 * @peschmae made their first contribution in dexidp#4144 * @philBrown made their first contribution in dexidp#4224 * @a-buck made their first contribution in dexidp#3745 * @vizv made their first contribution in dexidp#4263 * @daemonfire300 made their first contribution in dexidp#4202 **Full Changelog**: dexidp/dex@v2.43.0...v2.44.0
Overview
Improves server resilience by allowing Dex to start even when some connectors fail to initialize. Previously, a single misconfigured connector would prevent the entire server from starting.
What this PR does / why we need it
This change prevents a single misconfigured connector from blocking the entire Dex server, improving availability in production environments where some identity providers may be temporarily unavailable or misconfigured.