Comments (6)
My 2 🪙s would be that this could / should be driven by an ADR (probably not on this particular issue since it is small by itself) but having a base uds-cli / bundle ADR on what they are and what they are planned to contain would allow people to see more decision criteria / more of the vision / drive behind uds-cli and bundles.
Fun fact zarf
actually started with a command hierarchy but also had shortcut commands that were removed early on (before Zarf started doing ADRs). Zarf still has deprecation warnings in it's CLI almost 2 years on:
from uds-cli.
@mjnagel I agree, I think it depends upon what will necessitate a bundle
, as there is not a clear definition / ADR on that as of right now. Is bundle
the only thing that UDS CLI will orchestrate? In order to update a single application in a bundle, are users going to re-build the bundle and re-deploy, or should UDS CLI support deploying Zarf packages and merging them into an existing bundle?
Even in Zarf there is a little bit of disrepency, zarf connect
is technically zarf package connect
.
from uds-cli.
Hey folks really appreciate all the discussion. We're making the call to keep the uds <action>
syntax, with no bundle
keyword. As for additional ADRs on the definition/purpose of a bundle, I'm all for sharing more words/context, but am admittedly unsure about what the content of that ADR should be (but that's for a different PR!)
from uds-cli.
helm install
works because you're installing a "helm"
I'd push back on this example - helm install
installs a helm chart, so its almost 1:1 the same scenario as uds create
creating a uds bundle. I don't know that I could make the same case with terraform - so that's a fair example as best I can tell.
I don't have a strong opinion on this, but I am curious what this "other functionality" is that would necessitate clarifying its a bundle action. I guess I was expecting this would always just work on bundles, but there may be additional things that could be pulled into bundles (i.e. non-zarf things like IaC)? Maybe the point you're making is that we don't really know though so why risk it...
Edit: I think "what uds-cli will operate on" is really the crux of the matter. If uds-cli will always operate on bundles then imo there is no reason to explicitly require bundle
in the command. That would be analogous to helm
requiring you to do a helm chart install
, helm chart template
, etc, which feels like an unnecessary addition. Maybe to be more direct - would uds-cli
ever create
/deploy
/... something other than a bundle? It may do other types of actions, but (and I could be off) I am thinking it would only ever create
a bundle
?
from uds-cli.
Just my 2 cents.
I feel that it is premature to remove clarity from such a naval tool. For example something like helm install
, the action it performs on what is widely known as a helm chart has history. It's intuitive and it feels natural for chart to be implied when using the helm tool.
What is UDS-CLI? What is UDS to the world? At first glance with a little digging I find UDS is an acronym for Unicorn Delivery Service. Okay cool, that to me sounds like maybe UDS-CLI is a multi-purpose command line interface tool that makes software delivery much easier for me. What are all the cool things it can help me do? Well, it has one purpose and that is to create and deploy these things called Bundles which are well orchestrated collections of zarf packages. It also inherits a lot of zarf functionality. Well what is zarf? Why isn't this just a feature of zarf if thats all it does, someone may think to themselves? Its not the multi purpose Unicorn Delivery Service tool I initially assumed.
That is just an example of the thoughts that would go around in my brain when coming across this tool. Implying bundle just feels premature and possibly handcuffs the potential of the tool. That is all.
Edit: With that being said, removing it isn't that serious. I'm on team keep the bundle syntax and just wanted to say why.
from uds-cli.
Hello folks, as product architect, I approved this change when it happened, I think @Racer159 is right an ADR would be needed to change this going forward. I'll give you my take on why I am fine with it:
- UDS CLI will have more behavior than just bundles, but we dont know what or when
- But like Helm, the primary thing will be the bundle...the only reason anyone feels this normal is because helm made it so for that tool, and that's where we are with UDS-CLI, it's normal if we make it normal
- For additional things there may be a tree of subcommands pushed lower, similar to the
zarf tools <command>
pattern, but we don't know what those will be yet - In the big picture, UDS CLI will be firstly a bundle handler and secondly, an view into the UDS Runtime Engine (name tbd), for which there will also be a UDS UI, both the CLI and UI will call effectively the same REST (tbd) endpoints. The only real in-CLI business logic will be that which must run locally, i.e. a
zarf package <COMMAND>
equivalent for bundles. - No final decision on miscellaneous tools, but I suspect it might end up being something like kubectl plugins for those things.
FWIW, I originally had both zarf package create
+ zarf zarf.yaml
and zarf package deploy
+ zarf package.tar.gz
so you could shorthand--but lost that argument (can't seem to find it now)
from uds-cli.
Related Issues (20)
- Optional components aren't excluded from the bundle HOT 1
- engine: UDS state and intelligent removes
- ADR for OCI media types
- UDS-Cli - index out of range error HOT 1
- Investigate dead code automation
- uds dev deploy remote bundle HOT 1
- Spike: What colors can be used in tasks HOT 5
- uds config variable check only on deploy
- Expand package selection to include components within those packages
- Caching Refactor
- Refactor overrides
- Add ability to view override and config options for a given bundle prior to deployment HOT 2
- Check bundle arch against cluster arch HOT 3
- Policy Logs - MVP HOT 4
- App Portal - MVP HOT 1
- DevDeploy: validate `--flavor` input
- "Save logs" not working in our workflow
- List images from bundle artifacts
- Docs on `${...}` usage in override values HOT 1
- Dev Mode: Artifact indicator
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from uds-cli.