Workshop improvements: validation, docs, and network migration#152
Open
Workshop improvements: validation, docs, and network migration#152
Conversation
Improves the validator client type validation error messages to provide better user guidance when invalid types are specified. Changes: - Add generic fuzzy matching for "did you mean" suggestions * Known typos map: loki→lodestar, prism→prysm, lighthose→lighthouse * Prefix matching: tek→teku, nim→nimbus, lodest→lodestar * Substring matching for partial matches - Provide actionable fix instructions showing: * CLI flag syntax: --set validatorClient.type=<type> * values.yaml format with proper indentation * Custom values file approach - Include documentation reference to README.md - Use suggested type in examples when available Example error output: ERROR: Invalid validator client type 'loki'. Valid options: lighthouse, lodestar, teku, prysm, nimbus⚠️ Did you mean 'lodestar'? How to fix this: • Using --set flag: --set validatorClient.type=lodestar • In your values.yaml file: validatorClient: type: lodestar Tested with all validator client types and various typos. All valid types (lighthouse, lodestar, teku, prysm, nimbus) still work correctly. Addresses user feedback from PR #148 that validation errors needed more actionable guidance.
Adds --validate=false flag to kubectl commands in the ENR job to prevent validation errors when running in FIPS 140-only mode environments. Issue: When the ENR generation job runs in FIPS 140-only mode, kubectl validation fails with error: "crypto/ecdh: use of X25519 is not allowed in FIPS 140-only mode" This occurs during: 1. kubectl apply when creating new ENR secrets 2. kubectl patch when updating existing secrets with missing ENR field Solution: Add --validate=false flag to both kubectl commands (lines 210, 226): - kubectl patch: --validate=false flag added - kubectl apply: --validate=false flag added The GODEBUG environment variable (x509sha1=1,tls13=0) is already set for the kubectl-secret-creator container, but validation needs to be explicitly disabled for kubectl operations in FIPS mode. This allows the ENR job to complete successfully in FIPS-compliant Kubernetes clusters while maintaining the same functional behavior.
This commit includes several documentation and usability improvements: 1. Migrate from chainId to network parameter (breaking change) - Replace all chainId references with network parameter in docs - Update QUICKSTART.md examples: chainId=1 → network=mainnet - Update values-examples to use network instead of chainId - Templates already supported network-based helpers 2. Update all Helm commands to use 'helm upgrade --install' - Updated 8+ instances in README.md - Provides idempotent commands for both install and upgrade scenarios - Better user experience and less confusion 3. Add Challenge & Testing documentation - New comprehensive section in QUICKSTART.md - Examples for overriding API endpoints (dev/staging) - Examples for using specific DKG sidecar commits/branches - Complete challenge example with all parameters - Helpful for testing and development workflows 4. Implement intelligent fallback beacon node endpoints - Auto-select publicnode.com endpoints based on network - mainnet → ethereum-beacon-api.publicnode.com - sepolia → ethereum-sepolia-beacon-api.publicnode.com - hoodi → ethereum-hoodi-beacon-api.publicnode.com - Pods can now start without manual fallback configuration - Users can still override with custom endpoints Files modified: - charts/dv-pod/QUICKSTART.md - charts/dv-pod/README.md - charts/dv-pod/README.md.gotmpl - charts/dv-pod/templates/_helpers.tpl - charts/dv-pod/templates/statefulset.yaml - charts/dv-pod/values-examples/with-target-config-hash.yaml - charts/dv-pod/values.yaml BREAKING CHANGE: Users must now use --set network=mainnet instead of --set chainId=1
This was referenced Nov 13, 2025
OisinKyne
previously approved these changes
Jan 11, 2026
charts/dv-pod/templates/_helpers.tpl
Outdated
| {{- $suggestion := "" -}} | ||
| {{- $currentLower := lower $currentType -}} | ||
| {{- /* Check for common typos and confusions */ -}} | ||
| {{- $typoMap := dict "loki" "lodestar" "lodestar-" "lodestar" "lighthose" "lighthouse" "lighthouse-" "lighthouse" "tekku" "teku" "teku-" "teku" "prisim" "prysm" "prism" "prysm" "prysm-" "prysm" "nimbos" "nimbus" "nimbus-" "nimbus" -}} |
Contributor
There was a problem hiding this comment.
Is it correct for the correct spellings to be in this typo map?
43c4cbb to
78a99bd
Compare
Replace the hardcoded typoMap with dynamic proximity detection: - Check if input shares 3-char prefix with valid types - Check if input contains or is contained by valid type This is more maintainable and catches typos automatically without needing to maintain a list of known typos.
78a99bd to
4d535fe
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR consolidates workshop-related improvements:
Included Changes
From PR #150: Validator Client Type Validation
From PR #151: Documentation and Network Migration
helm upgrade --installAlso Includes
Breaking Change
Users must now use
--set network=mainnetinstead of--set chainId=1Testing
Supersedes: #150, #151