weave-gitops-enterprise
weave-gitops-enterprise copied to clipboard
[Pipelines UI] Enable me to add, edit, or remove environments in my pipeline via the UI
trafficstars
Objective
Create a UI that replaces current Templates.
User Stories
- [ ] As an app dev, I would like to be able to create a pipeline from the WGE UI, so that I can avoid yaml and making mistakes.
- [ ] As a platform dev, I would like to be able to edit a pipeline from the WGE UI, so that I can avoid yaml and making mistakes.
- [ ] As a platform dev, I would like to be able to remove a pipeline, so that I can avoid yaml and making mistakes.
- [ ] As an app dev, I would like to be able to name my new Pipeline in a single step, so that I can avoid yaml and making mistakes.
- [ ] As an app dev, I would like to be able to select the application that I want to promote from a pre-populated list of options, so that I can avoid yaml and making mistakes.
- [ ] As an app dev, I would like to be able to create environments for my pipeline via the WGE UI, so that I can save time.
- [ ] As an app dev, I would like to be able to name my environments myself, so that I can customise my pipeline.
- [ ] As an app dev, I would like to be able to create as many environments as I need, so that I can customise my pipeline.
- [ ] As an app dev, I would like to be able to create targets for my pipeline environments via the WGE UI, so that I can customise my pipeline.
- [ ] As an app dev, I would like to be able to create as many targets in my environment as I need, so that I can customise my pipeline.
- [ ] As an app dev, I would like to be able to choose my promotion strategy from the WGE UI, so that I can customise my pipeline quickly.
- [ ] As an app dev, I would like to be able to automatically trigger the additional fields required to implement the pull request strategy, so that I can avoid forgetting required fields and making mistakes.
- [ ] As an app dev, I would like to be able to name my environments myself, so that I can customise my pipeline.
- [ ] As an app dev, I would like to be able to select the branch where I write updates to Git via the WGE UI, so that I can customise my pipeline efficiently.
- [ ] As an app dev, I would like the credentials that my system will use to create PRs with to appear automatically in the WGE UI, so that while I’m setting up a pipeline I can save time and avoid errors.
- [ ] As an app dev, I would like to be able to choose my application’s repo type from a drop-down list, so I can save time.
- [ ] As an app dev, I would like to be able to select my application’s repo URL via a drop-down list, so I can avoid making mistakes.
- [ ] As an app dev, I would like to be able to edit my pipeline via button-press, so that I can do this easily.
- [ ] As an app dev, I would like to be able to review the GitOps-related details of my pipeline before I create the pipeline, so I can apply GitOps from the WGE UI.
- [ ] As an app dev, I would like to be able to create and edit my pipeline using a repeatable process, so that I know that I’m not introducing any mistakes or forgetting key details.
- [ ] As an app dev, I would like to be able to see information about my target health in my current environment, so that I don’t have to flip back and forth to check it.
- [ ] As a platform dev, I would like to be able to change my application using the WGE UI with a simple button click, so that I can save time.
- [ ] As a platform dev, I would like to see a prompt on the Pipelines details page showing me where to add or remove more environments to my pipeline, so that I can avoid doing it in yaml files.
Location of the Change/Work
Pipelines > New create/edit pipeline UI (replaces Templates)
Related Initiative Problem
Technical Task breakdown
- [ ] Add a button from the current Pipelines view that goes to the new create/edit Pipeline UI.
- [ ] Deprecate templates code from Pipelines feature and redirect users to new Pipelines "create/edit" UI
- [ ] Produce a valid Pipeline CRD
- [ ] "Git credential secret name": Change the API so that the secret (HMAC) is under the notification strategy instead of as a peer/same level. In the API the secret promotion strategy might make a difference to the notification strategy.
- [ ] For lists of envs and targets at right: Will need some backend code here that is one request, create a pipeline or edit a pipeline." It's the same functionality we'll have for sources. TODO: will need to discuss the "edit" aspect. The endpoint is "create pull request." And edit is just another change request.
- [ ] Would be nice if in edit operations, the "GitOps: Review details and create" box pops up so you don't make mistakes. Maybe can store annotations in the yaml? Does this exist in our current pipeline structure? (probably not.)
- [ ] Potential issues would be related to GitHub API, not related to "you made a bad pipeline and it doesn't work." We could validate that. If you pass an object and it has the right stuff per pipeline spec, the backend will validate it. For example, if you have no targets or envs. Yiannis is doing the backend work for this via Sources work and will then just add the pipelines object to that.
Acceptance Criteria
Design
Notes
- Environments must be in order, but targets inside envs don't need to be in order.
@joshri @yiannistri @squaremo I've made a mockup that shows our edits to the design: https://miro.com/app/board/uXjVMFiEhxc=/?moveToWidget=3458764568150350324&cot=14 cc @mmoulian
Notes from our sync yesterday are either represented there or above in the main issue description under "tasks" and "notes."