feat: expose client kube context to accessCommand templates#459
Open
corydolphin wants to merge 1 commit intodiranged:mainfrom
Open
feat: expose client kube context to accessCommand templates#459corydolphin wants to merge 1 commit intodiranged:mainfrom
corydolphin wants to merge 1 commit intodiranged:mainfrom
Conversation
Add a `clientKubeContext` field to PodAccessRequestSpec and
ExecAccessRequestSpec, populated automatically by `ozctl` from the
effective kubeconfig context (the standard `--context` flag if set,
otherwise the kubeconfig's `current-context`). The renderer surfaces
this value as `{{ .ClientKubeContext }}` so an `accessCommand` can
include `--context <name>` and produce a kubectl invocation that
targets the same cluster the request was created in.
The field is optional. The default `accessCommand` does not reference
it, so behavior is unchanged for existing templates. Templates that
opt into using it should gate the reference with a conditional so they
remain safe when the field is empty (e.g. when the request is applied
as raw YAML or by an older `ozctl`).
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.
Problem:
In environments with multiple clusters and or kubernetes contexts, it is common to be able to pass
--context XXXto execute a command within that environment. While Oz respects that, it is impossible for a PodAccessTemplate's accessCommand to include that context, making it impossible for the templated command to always be executable by a user.This change adds a
clientKubeContextfield to PodAccessRequestSpec and ExecAccessRequestSpec, populated automatically byozctlfrom the effective kubeconfig context (the standard--contextflag if set, otherwise the kubeconfig'scurrent-context). The renderer surfaces this value as{{ .ClientKubeContext }}so anaccessCommandcan include--context <name>and produce a kubectl invocation that targets the same cluster the request was created in.The field is optional. The default
accessCommanddoes not reference it, so behavior is unchanged for existing templates. Templates that opt into using it should gate the reference with a conditional so they remain safe when the field is empty (e.g. when the request is applied as raw YAML or by an olderozctl).