Skip to content
This repository has been archived by the owner on Feb 15, 2022. It is now read-only.

CLI reconcile cmd should be able to remove rings and services from the hld repository via the lifecycle pipeline #858

Open
2 of 5 tasks
mtarng opened this issue Dec 17, 2019 · 6 comments
Labels
epic An "epic" story that holds several related issues

Comments

@mtarng
Copy link
Contributor

mtarng commented Dec 17, 2019

As a:
SPK User

I want:
To be able to remove rings and services via spk and pipelines

So that:
I don't have to manually remove them and worry about conflicts.

Describe the solution you'd like:

  • As a user, if I remove a ring, then the changes are reflected in: the associated bedrock.yaml, my hld repository, and the materialized repository.
    • for every service in my application reppository, every service to have the removed ring… removed
    • p-1: delete just the ring directory for every service
    • p-unicorn: delete the configuration for the ring at every level it is referenced in the HLD
    • idea: copy all config content into memory, mapped by path, blow away existing HLD, re-generate new HLD based on bedrock.yaml, emit config content in memory to config files at path.
      • ¡idempotent!
  • (low pri) As a user, if I remove a service from my mono-repository, then the service should be removed from the associated bedrock.yaml, my hld repository, and the materialized repository.
    • Need spk service delete command first. for full testing work flow, but reconcile will remove services that have been removed from a project bedrock.yaml
    • same operations as just removing a ring itself.
  • (low pri) As a user, if I remove an external dependency (ie. Kafka, MongoDB) from my mono-repository, then:
  • As a user, if I wish to delete a service repository or mono-repository, how would this be reflected in the downstream (HLD, ultimately flux) repositories?
    • low-pri - no identified case yet

Acceptance Criteria:
If i have multiple bedrock application repositories (or even many mono-repositories) removing a shared referenced dependency from one, should not impact other repositories.

Describe alternatives you've considered:
Running spk hld reconcile locally/manually or through automation pipelines.

Additional context:
Previous work to add rings and services #717

Does this require updates to documentation?:
Yes!

@mtarng mtarng added enhancement New feature or request triage epic An "epic" story that holds several related issues labels Dec 17, 2019
@andrebriggs andrebriggs changed the title [SPK][EPIC] SPK Should be able to remove Services and Rings SPK Should be able to remove Services and Rings Jan 9, 2020
@andrebriggs
Copy link
Member

Describe the solution you'd like:

  • As a user, if I remove a ring from a service, then the changes are reflected in: the associated bedrock.yaml, my hld repository, and the materialized repository.

  • As a user, if I remove a service from my mono-repository, then the service should be removed from the associated bedrock.yaml, my hld repository, and the materialized repository.

  • As a user, if I remove an external dependency (ie. Kafka, MongoDB) from my mono-repository, then:

    • then the external dependency should be removed from the associated bedrock.yaml, my hld repository, and the materialized repository, if and only if, it is not also being utilized by any other mono-repository linked to the same HLD and Materialized repositories.
  • As a user, if I wish to delete a service repository or mono-repository, how would this be reflected in the downstream repositories?

@evanlouie @bnookala @mtarng do we have sub tasks that correspond to these?

@andrebriggs andrebriggs changed the title SPK Should be able to remove Services and Rings SPK should be able to remove services and rings Jan 9, 2020
@evanlouie
Copy link
Contributor

@andrebriggs Don't believe subtasks have been written yet. I think it would probably be best to wait for @bnookala and @mtarng to return to go through more thoroughly.

@andrebriggs
Copy link
Member

@bnookala can you share you design doc here?

@bnookala
Copy link
Member

image

image

@andrebriggs
Copy link
Member

Non-indexable text in an image? 😅

@andrebriggs
Copy link
Member

@bnookala @mtarng let's create a separate task for documenting how the user would use this and start that first

@andrebriggs andrebriggs removed the enhancement New feature or request label Mar 6, 2020
@mtarng mtarng changed the title SPK should be able to remove services and rings spk reconcile should be above to remove rings and services from the hld repository via the lifecycle pipeline Mar 11, 2020
@andrebriggs andrebriggs changed the title spk reconcile should be above to remove rings and services from the hld repository via the lifecycle pipeline CLI reconcile cmd should be able to remove rings and services from the hld repository via the lifecycle pipeline Mar 28, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
epic An "epic" story that holds several related issues
Projects
None yet
Development

No branches or pull requests

4 participants