Ring management in Bedrock CLI (adding or removing rings)
As a: spk user I want: to be able to add or remove rings to my project via an spk cli command So that: I can manage my rings Describe the solution you'd like:
Documentation - https://github.com/microsoft/bedrock/issues/975
- [x] Define what a ring is
- [x] Describe when to use rings
- [x] Define how to add a ring
- [x] Define how to remove a ring
- [x] Define how to determine what services have what rings
- [x] Describe how to validate a service's ringed deployment
Implementation
-
[x] Add stub methods https://github.com/microsoft/bedrock/issues/1067
-
[x] create a command to add a ring to a bedrock project:
spk ring create <ring-name>orspk ring add <ring-name>. This command should:- Add the ring to the
bedrock.yamlfile. - For all existing services in this project, linked via the
bedrock.yamlfile, add the new ring to the build pipeline's branch trigger. - https://github.com/microsoft/bedrock/issues/969
- Add the ring to the
-
[x] create a command to remove a ring from a bedrock project:
spk ring remove <ring-name>orspk ring delete <ring-name>. This command should:- Remove the ring from the
bedrock.yamlfile. - For all existing services in this project, linked via the
bedrock.yamlfile, remove the ring from the build pipeline's branch trigger. - This command will not allow the deletion of the default ring. Users must first change the default ring before deleting the current default ring.
- https://github.com/microsoft/bedrock/issues/971
- Note - The actual work for removing rings from the hld is captured in this epic: https://github.com/microsoft/bedrock/issues/858
- Remove the ring from the
-
[ ] Optional depending on if we want this feature: include a --git-push flag that will add all changes and open a PR against master.
-
[x] create a command to set the default ring:
spk ring set-default <ring-name>. This command should set the default ring in thebedrock.yamlfile.- https://github.com/microsoft/bedrock/issues/972
-
[x] Have a walkthrough guide that shows how and when a user would call
spk ring create <ring-name>,spk ring set-default <ring-name>, and finallyspk ring delete <ring-name>- https://github.com/microsoft/bedrock/issues/1112
-
[x] Extend smoke tests to add and remove rings.
- https://github.com/microsoft/bedrock/issues/974 and https://github.com/microsoft/bedrock/issues/1205
-
[ ] Smoke test to set default ring?
-
[x] Validate IngressRoutes #1119
@mtarng first thing should be to create a task for documentation.
Do you have any other tasks to link to this epic?
Have a walkthrough guide that shows how and when a user would call spk ring create
,spk ring set-default , and finally spk ring delete
@mtarng I added this to the task list