Entire workflow with app repo and manifest repo for Kubernetes agent - UX requirements specification
Problem to solve
This problem has many facets, the user stories we want to support on the long run are described in the agent doc
Requirements we want to satisfy:
- Make it possible to review the final YAML before it gets merged into master of kubernetes manifests
- We should support different workflows
- App is configured together with the app code
- A separate app template exists and only minor configuration is allowed in the app code
- The manifest repo is deployed automatically
- The manifest repo is used to review final changes
We can start by supporting only one worfklow, and get user feedback on other needs.
Intended users
- Delaney (Development Team Lead)
- Sasha (Software Developer)
- Devon (DevOps Engineer)
- Sam (Security Analyst)
- Rachel (Release Manager)
- Alex (Security Operations Engineer)
- Simone (Software Engineer in Test)
- Allison (Application Ops)
- Priyanka (Platform Engineer)
User experience goal
Have a transparent and easy to use workflow from app code development to deployment to a cluster.
Proposal
Ideas
New app version:
sequenceDiagram
Engineer ->> App repo : Merges to master / pushes code
App repo ->> Docker registry: Run app CI and push image
App repo ->> Manifest repo: Trigger pipeline to run hydrate step
Note over App repo, Manifest repo: Does this require parent-child pipelines? (premium)
Manifest repo --> Docker registry: grab the image name/tag
Manifest repo ->> Manifest repo: commit new version
Manifest repo --> agentk: Polling find new version
Deployment template changes:
sequenceDiagram
Engineer ->> Manifest repo : Changes the project templates in master
Manifest repo ->> Manifest repo: Trigger pipeline to run hydrate step and commit
Manifest repo --> agentk: Polling find new version
This means that we need a defined structure for the project to find the template, or should use something like Google Application Manager does to get to the final manifest repo.
Further details
Permissions and Security
Documentation
Availability & Testing
What does success look like, and how can we measure that?
What is the type of buyer?
Is this a cross-stage feature?
Links / references
Edited by Mikhail Mazurskiy