Add support for connecting via a Boundary tunnel - #2119
Merged
Conversation
https://developer.hashicorp.com/boundary/docs/what-is-boundary * Add CLI option --boundary-id. * Add [boundary_beta] section to ~/.myclirc. When this is fully configured, the single CLI option is all that is needed to connect. Boundary issues temporary credentials, which are plugged in. * Unless less_chatty is set, print a banner before connection showing the expiry time of the temporary connection. * When --verbose --verbose is given, print the temporary credentials before entering the REPL. Usecase: making additional connections over the same tunnel. * Allow boundary_id to be given in the query parameters of a DSN, and when connecting over a Boundary tunnel, return it in "/dsn show" by default. * Respect password_sources precedence, where there was already a stub value, unused. * Do _not_ include boundary in keyring sources. The credential is temporary; storing it in the system keyring would create clutter. There was not much abstraction which could be easily shared with SSH tunnels, so the code is separate, but adjacent. Suggested followups * Also bake in kubectl tunnels with "kubectl port-forward". * Also bake in gcloud ssh tunnels, or give an example for how to configure one with the existing SSH support. * Guide boundary authentication if it has expired, or at least give a more specific error message. * Resolve occasional SSL errors when making a boundary connection.
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.
Description
https://developer.hashicorp.com/boundary/docs/what-is-boundary
--boundary-id.[boundary_beta]section to~/.myclirc. When this is fully configured, the single CLI option is all that is needed to connect. Boundary issues temporary credentials, which are plugged in.less_chattyis set, print a banner before connection showing the expiry time of the temporary connection.--verbose --verboseis given, print the temporary credentials before entering the REPL. Usecase: making additional connections over the same tunnel.boundary_idto be given in the query parameters of a DSN, and when connecting over a Boundary tunnel, return it in/dsn showby default.password_sourcesprecedence, where there was already a stub value, unused.boundaryin keyring sources. The credential is temporary; storing it in the system keyring would create clutter.There was not much abstraction which could be easily shared with SSH tunnels, so the code is separate, but adjacent.
Suggested followups
kubectl port-forward.gcloud sshtunnels, or give an example for how to configure one with the existing SSH support.Checklist
changelog.mdfile.AUTHORSfile (or it's already there).