Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

State Mgmt Templates MVP #203

Closed
DinaBelova opened this issue Aug 18, 2024 · 1 comment
Closed

State Mgmt Templates MVP #203

DinaBelova opened this issue Aug 18, 2024 · 1 comment
Assignees
Labels
epic Large body of work, can be broken down into individual issues

Comments

@DinaBelova
Copy link
Collaborator

DinaBelova commented Aug 18, 2024

Goals

  • Ensure that clusters created by the cluster mgmt component of hmc can also be easily be operated as actual k8s clusters (as just a k8s cluster itself does not provide much value for the business and also needs additional helmcharts/artifacts installed) with bringing a simple State Management solution which does not need any additional dependencies installed.
  • While there are many state mgmt solutions out there that allow extremely complex configurations and systems we believe that for standard services like ingress-nginx a simpler solution based on the existing templates can be built. This allows platform teams to simply create and manage many clusters without the need to learn a complex state management solution like Flux or Argo.

Major deliverables

  • Implement a state mgmt solution which allows platform admins to also define helmcharts in a Template which then automatically get installed in clusters after they have been provisioned.

Who it benefits

  • Customer Business: Faster time to market for clusters, less overhead of the platform team to manage 10 or 1000 clusters
  • Platform: Central place to define what should be installed across multiple clusters without the need to duplicate the same configuration for every cluster
  • Mirantis: Provide customers with a State Mgmt solution which is multi cluster capable if the customer does not have this capability yet, therefore providing a better service and experience

Acceptance criteria

  • Existing Templates can not only define which CAPI objects should be installed, but also possibility to define helmcharts that should be installed in the cluster after the cluster has been provisioned
  • Initially we just need ingress-nginx as examples for installing services through a template, more services will be added later.
  • Templates have possibilities to overwrite values which then get injected into the helm charts installed in the clusters (as it is the case for cluster mgmt)
  • leverage flux HelmRelease CAPI capability to install the helm charts defined in the template into the clusters
  • Platform Engineers don't see any indications that we are using flux HelmRelease under the hood, it is abstracted for them (as we are abstracting CAPI for the cluster mgmt). People creating templates do need to learn how to use Flux HelmRelease
  • Updating a helmchart in a template will automatically roll out the changes to the clusters created from that template based on the Upgrade/Rollout System
  • State Management solution is end to end tested via an Github CI solution

Assumptions

Telemetry & Success Criteria

  • Success criteria
    • Percentage of templates with state management component

Out of scope

  • Using Flux GitOps approach, we just use the Flux HelmRelease capability
    • Looking into full Flux GitOps will happen later, as the current capabilities does not scale well if a customer has 20+ templates
  • Deploy a single HelmChart across multiple Templates, we just need HelmCharts deployed through an existing Template

Related issues:

@DinaBelova DinaBelova added the epic Large body of work, can be broken down into individual issues label Aug 18, 2024
@DinaBelova DinaBelova moved this to Todo in Project 2A Aug 19, 2024
@wahabmk wahabmk moved this from Todo to In Progress in Project 2A Aug 20, 2024
@DinaBelova
Copy link
Collaborator Author

completed with #213 and #223
more comprehensive state mgmt implementation to be done as a part of follow up initiatives

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
epic Large body of work, can be broken down into individual issues
Projects
Status: Done
Development

No branches or pull requests

2 participants