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

Better ownership-aligned workflows on CAPA #2739

Closed
10 tasks done
Tracked by #2726
Rotfuks opened this issue Aug 21, 2023 · 2 comments
Closed
10 tasks done
Tracked by #2726

Better ownership-aligned workflows on CAPA #2739

Rotfuks opened this issue Aug 21, 2023 · 2 comments
Assignees
Labels
area/kaas Mission: Cloud Native Platform - Self-driving Kubernetes as a Service team/turtles Team Turtles topic/capi

Comments

@Rotfuks
Copy link
Contributor

Rotfuks commented Aug 21, 2023

Motivation

As we moved a lot of component ownerships across KaaS Teams and this new ownership is not along the lines of repositories, but sometimes multiple teams own parts of a repository we now face some issues in our engineering workflows. We see some potential on improving the structure of how we organise the code of our systems to better match the ownership boundaries and create better flow.

Stories

Preview Give feedback
  1. area/kaas team/turtles
    nprokopic
  2. 15 of 15
    provider/cluster-api-aws team/turtles topic/capi topic/cluster-schema
    njuettner nprokopic
  3. 28 of 28
    provider/cluster-api-aws team/turtles topic/capi topic/cluster-schema
    njuettner nprokopic
  4. 2 of 2
    team/turtles
    njuettner nprokopic
  5. 0 of 4
    area/kaas team/turtles
    nprokopic
  6. 2 of 2
    area/kaas team/turtles
    nprokopic
  7. 5 of 5
    area/kaas team/turtles
    nprokopic
  8. area/kaas team/turtles
    njuettner

Outcome

  • We have a clear structure for organising code that improves our overall efficiency by improving our engineering workflows.
@Rotfuks Rotfuks added area/kaas Mission: Cloud Native Platform - Self-driving Kubernetes as a Service topic/capi team/turtles Team Turtles labels Aug 21, 2023
@Rotfuks Rotfuks changed the title Better ownership-aligned workflows Better ownership-aligned workflows on CAPA Aug 29, 2023
@nprokopic
Copy link

nprokopic commented Sep 15, 2023

In Team Turtles we have continued working on restructuring of the cluster-<provider> apps.

For more high-level overview (from which you will be able to dive into more details as we add them to specific issues) see epic Better ownership-aligned workflows on CAPA.

The original (investigation/discussion) issue suggested multiple approaches, all of which have their own pros and cons. After analyzing multiple options and mocking and trying out some of the suggested approaches, we have decided to continue with 3.2.1. Provider-specific chart referencing provider-independent chart. In practice this means that all the provider-independent resources will be moved to a separate cluster chart, which will then be added as a subchart to the existing cluster-<provider> apps.

Some of the reasons why we picked this approach:

  • All existing cluster-<provider> apps continue to exist, which minimizes impact on development, (automated/manual) testing and cluster lifecycle (creation/upgrade/deletion) UI/UX.
  • We get to have all provider-independent resources in a centralized place. This enables us to do all the provider-independent development work once in one place, and then test same change on all providers (by updating cluster chart version in cluster-<provider> apps).
  • cluster chart will be highly configurable via Helm values, so cloud/onprem integration teams will still keep high level of control over resources in cluster chart.
    • The goal is then to understand better what is the same and similar across all providers, and then have more defaults in cluster chart that do not have to be configured explicitly from cluster-<provider> apps.
  • It allows us to continue working with an iterative approach, starting with a single provider and moving one group of provider-independent resources to a provider-independent cluster chart, and then incrementally move more provider-independent resources and update more providers to use the new cluster chart.
  • Once all providers have been switched to use provider-independent cluster chart, the cluster chart can progress at its own pace, and all providers can be upgraded to newer cluster chart whenever they are ready (ideally immediately, but the reality probably won't allow that).

One of the next steps is to show how all of this would look like, which some folks also asked for, so it's easier to see and understand the impact that this change will have on existing cluster apps and KaaS teams. This is already in progress and soon you will see the pull requests in existing cluster-<provider> apps and we can then dive into more details.

Here is a diagram (Miro board) that shows how the restructuring will look like in phases (exported image below). The current state is on the left, then there are few iterative phases, with the final target state being on the right.

The diagram is drawn with cluster-aws in mind. As soon as we're done with cluster-aws/AWS/CAPA, we'll continue immediately with other providers. Also, while working on cluster chart for CAPA, we're also looking into other providers so we don't miss something and design cluster chart poorly because of that.

Restructuring cluster apps

@Rotfuks
Copy link
Contributor Author

Rotfuks commented Mar 7, 2024

All Done

@Rotfuks Rotfuks closed this as completed Mar 7, 2024
@github-project-automation github-project-automation bot moved this from In Progress ⛏️ to Done ✅ in Roadmap Mar 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/kaas Mission: Cloud Native Platform - Self-driving Kubernetes as a Service team/turtles Team Turtles topic/capi
Projects
Archived in project
Development

No branches or pull requests

2 participants