Skip to content
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

How about a "multusctl" utility? #488

Closed
tliron opened this issue Apr 21, 2020 · 16 comments
Closed

How about a "multusctl" utility? #488

tliron opened this issue Apr 21, 2020 · 16 comments

Comments

@tliron
Copy link

tliron commented Apr 21, 2020

What would you like to be added:

It would be great if we had a multusctl utility to simplify and enhance the experience of using and installing Multus.

Of course it's possible to use kubectl for everything, but why not do better?

Why is this needed:

Some examples of what I have in mind:

# Install Multus without having to use "kubectl apply ..."
# The --wait switch can block until everything is running

multusctl install --wait

# Create a NetworkAttachmentDefinition
# Allows using YAML in addition to JSON, and automatically
# stringifies it for inclusion in the custom resource spec

multusctl create myattachment --config=config.yaml

# This will list all NetworkAttachmentDefinition custom resources
# and for each show all pods that have annotated an attachment to them
# Even better: support KubeVirt and show which VirtualMachineInstance
# custom resources attach to them

multusctl list

If the team is interested in this feature, I'm willing to contribute some time towards getting the ball rolling. I have experience in creating "-ctl" tools for other Kubernetes projects.

@tliron tliron changed the title How about a multusctl command? How about a "multusctl" utility? Apr 21, 2020
@dougbtv
Copy link
Member

dougbtv commented Apr 30, 2020

@tliron this is interesting, and looks pretty slick, a nice UX enhancement. Would you like to join our next maintainers meeting to discuss the creation of such a utility?

Agenda doc @ https://docs.google.com/document/d/17-vkuoObBFBb6feXNA7tjTaKr-rs8ea0VTnqvlEdCv8/edit#

@tliron
Copy link
Author

tliron commented May 3, 2020

@dougbtv I went ahead and created it. :)

Please consider it a prototype -- it actually relies on code I wrote for other projects, and as such could not be included as is in Multus. However, with some work it would be easy enough to make it entirely independent of other projects.

It supports install with --wait, uninstall, create, delete, get, and list. list will show network attachment definitions in a namespace with names of pods that attach to each one. create can accept both JSON and YAML configs. So it's already quite complete as a basic tool.

I can demo it at the maintainers meeting and we can discuss if it can be an addition to Multus.

@electrocucaracha
Copy link

Hey @tliron, I just noticed this proposal which it's a great utility but I was wondering if this could be offered as kubectl plugin. Using that approach the commands can be executed as follow:

kubectl multus install --wait

@tliron
Copy link
Author

tliron commented May 7, 2020

Absolutely. It would be using Krew. I haven't done the wiring for that, but should be trivial.

@tliron
Copy link
Author

tliron commented May 13, 2020

@electrocucaracha On further look, no need to use Krew. It's enough to name the executable "kubectl-multus" and have it in the execution path, so kubectl will immediately pick it up as a plugin. Integrating with Krew is useful if we want to make it easier for people to install it.

@tliron
Copy link
Author

tliron commented Jul 28, 2020

Has there any progress about considering this tool? I'm happy to do the initial work, but I want to be sure that the Multus core team would accept some ownership on its ongoing maintenance.

@tliron
Copy link
Author

tliron commented Mar 22, 2021

^^ bump ^^

I am willing to help out and contribute this tool to the project, but I need help guidance core team members.

@dougbtv
Copy link
Member

dougbtv commented Mar 22, 2021 via email

@s1061123
Copy link
Member

s1061123 commented Mar 22, 2021 via email

@tliron
Copy link
Author

tliron commented Mar 22, 2021

Just let me know what you decide and send me an invite to the meeting!

@s1061123
Copy link
Member

s1061123 commented Mar 22, 2021

I decide to propose it as a one project under NPWG, https://github.com/k8snetworkplumbingwg as multus-cni itself.
You could launch multusctl as a part of project and you could get feedback from community.

I add your proposal in next meeting agenda, so let's discuss about it in NPWG meeting.
https://docs.google.com/document/d/1oE93V3SgOGWJ4O1zeD1UmpeToa0ZiiO6LqRAmZBPFWM/edit

@github-actions
Copy link

This issue is stale because it has been open 90 days with no activity. Remove stale label or comment or this will be closed in 7 days.

@github-actions github-actions bot added the Stale label Jun 21, 2021
@tliron
Copy link
Author

tliron commented Jun 24, 2021

In progress, not stale.

@github-actions
Copy link

This issue is stale because it has been open 90 days with no activity. Remove stale label or comment or this will be closed in 7 days.

@github-actions github-actions bot added the Stale label Sep 23, 2021
@tliron
Copy link
Author

tliron commented Sep 23, 2021

Not stale.

@github-actions github-actions bot removed the Stale label Sep 24, 2021
@tliron
Copy link
Author

tliron commented Nov 8, 2021

The project has been approved. This is its new home: https://github.com/k8snetworkplumbingwg/multusctl

@tliron tliron closed this as completed Nov 8, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants