-
Notifications
You must be signed in to change notification settings - Fork 105
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
CLI for kapp-controller #412
Comments
Food for thought:
|
@cppforlife vmware-tanzu/tanzu-framework#983 seems to add fallback behaviour for all creates and updates, and improve logs printed while removal and creation of created resources. We have already incorporated these changes |
Could this CLI be also compatible somehow to be a kubectl plugin? |
We do have a method which attaches the (We might have to take a harder look at it if it is used in a kubectl plugin as I believe a bunch of flags might have overlapping names, not sure how that works out) |
Since kapp-controller CLI is targetting kubernetes users, I would really suggest that it's implemented as a kubectl plugin to boost adoption and minimize learning curve. If at the end of the day, this is basically providing the same functionality as the |
We do intend to add a set of |
Hopefully it is the case that this cli can be applied to both contexts. I think a kubectl plugin would be really worthwhile, and I tend to agree that I was thinking this cli should be more tailored to open source users. Here's more on creating plugins for kuebctl: https://kubernetes.io/docs/tasks/extend-kubectl/kubectl-plugins/ |
would it make sense to have a "--force" delete feature that was more powerful than kubectl's? e.g. see this issue: #416 so i could imagine that this CLI (or kapp itself) could be a place where we add like a
Just because I can imagine how we could , doesn't make it a good idea (similar i think to a theme park filled with dinosaurs?), so i'm asking whether we should. :) |
I wouldn't consider introducing a flag to undo things that should not have happened, just for the sake of convenience, a good UX. |
Some minor UX observations for Why does $ kctrl package available get cert-manager.community.tanzu.vmware.com It seems like the flag is not needed, but maybe I am not understanding other design considerations. Another interesting observation I had with $ kctrl package available get -p i-dont-exist
Target cluster 'https://192.168.64.225:8443' (nodes: minikube)
Name i-dont-exist
Version Released at
Succeeded It might be nice to do what kubectl does in this scenario which is saying no resources found: kubectl get deployments/i-dont-exist
Error from server (NotFound): deployments.apps "i-dont-exist" not found |
@joe-kimmel-vmw That does seem like a recurring issue we have to assist users with often if I am not wrong, it definitely makes sense to have something like that albeit with a less "aggressive" name maybe? 🤔 |
@danielhelfand thanks for pointing that out! we should definitely be saying that we could not find any resources if that is the case while getting a specific resource. Regarding how we are passing parameters we made the choice of using flags for "passing values" to the CLI rather than having positional arguments as that is a observed pattern across the other Carvel CLIs as well which we wanted to maintain. |
@jorgemoralespou pointed out that we should allow the users to update a package install to stop referencing a secret. Good catch! We can update a PackageInstall to stop referencing a Secret and delete the Secret if it was created by the CLI. As of today if users would want to update the installation to not consume a supplied values file, a workaround is to supply an empty values file. In which case the CLI updates the secret to have an empty values file. Option 1In case the user does not supply a value file, or supplies an empty value file while updating an installation. We could prompt the user to confirm whether they would like to the Secret to dereferenced and deleted (if created by the CLI) This might not be the best way to go about it as this case will be observed mainly when users are trying to bump the version of their installation. Option 2Another option would be to have a flag like Adding this to the list of AIs for now, let's see how we can approach this. |
I would prefer |
That was my first pref too, I was wondering if somehow the values file being supplied is dynamic, would users want to keep the flag in case they wanna dereference a secret only if the values file supplied is empty. But I guess that is a bit of a stretch. |
I would rather say |
|
On the carvel community call today, we talked about how Then we started talking about how For the help text, we would probably also still include the word reconcile to explain/convey what happens. |
You should probably think about non-native english speakers. I don't even know what |
For sure -- |
Closing this off in favour of issues branched out from it. |
PS: Added links to the issues that have branched off in the description of this issue |
Describe the problem/challenge you have
There is no interface for users to interact with kapp-controller server-side.
Describe the solution you'd like
a CLI which can be used to interact with kapp-controller
Milestone 1 -- Parity
Milestone 1 -- Feedback
--version
is not specified by user while installing package--service-account-name
flag frompackage installed update
valuesFileKey
, update existing keyMilestone 2 -- Consuming as library
Milestone 3 -- Enhancements
Milestone 4 -- Enhancements
kctrl
: Trigger reconciliation when exisiting value secrets are updated #670 )kctrl
: disallow use of shared namespaces while installing packages #672)kctrl
: Allow users to use ytt overlay while creating package installs easily #674 )kctrl
: Allow users to supply data values via flags similar to ytt #677 )go-cli-ui
)--global
flag for package repo add (kctrl
: Users should be able to install package repos globally using the CLI #673)kctrl
: UX enhancements #676)kctrl
: Progress tailing for repo add and delete. #671 )kctrl
: Allow users to drop a values secret being consumed by a package install #675 )kctrl pkg i -i contour -p foo
) (kctrl
: UX enhancements #676 )Vote on this request
This is an invitation to the community to vote on issues, to help us prioritize our backlog. Use the "smiley face" up to the right of this comment to vote.
👍 "I would like to see this addressed as soon as possible"
👎 "There are other more important things to focus on right now"
We are also happy to receive and review Pull Requests if you want to help working on this issue.
The text was updated successfully, but these errors were encountered: