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

Consolidate cluster-stacks folder structure #56

Closed
2 tasks done
paulphys opened this issue Apr 10, 2024 · 6 comments
Closed
2 tasks done

Consolidate cluster-stacks folder structure #56

paulphys opened this issue Apr 10, 2024 · 6 comments
Assignees
Labels
Container Issues or pull requests relevant for Team 2: Container Infra and Tooling epic Issues that are spread across multiple sprints
Milestone

Comments

@paulphys
Copy link
Member

paulphys commented Apr 10, 2024

Right now we have two cluster-stacks, alpha and scs, it is not clear which one is the mainly maintained cluster-stack. Therefore we should either remove one of them or give it a name that describes the purpose of each cluster-stacks, e.g. stable/unstable/dev.

@mxmxchere
Copy link
Contributor

mxmxchere commented Apr 10, 2024

We can also place an additional explanation file in the folder to explain the purpose and the guarantees of stable and unstable cluster-stacks.

For example we could guarantee that specific variables will be maintained or warn that they might change in case of an unstable clusterstack.

@paulphys paulphys linked a pull request Apr 10, 2024 that will close this issue
@jschoone
Copy link
Contributor

jschoone commented Apr 11, 2024

Hi @paulphys,
thanks for this issues. The scs Cluster Stack was the first try to represent KaaS v1 stuff in KaaS v2. alpha was the try to use the learnings from scs and clean it up. But I think we can still do better.
My suggestion would be to delete both and create a new Cluster Stack which will represent what we want to achieve.
Some problems are e.g. we need to add the Kubernetes version on various places. With Cluster Stacks approach this only needs to be in csctl.yaml with which csctl makes the rest.

@mxmxchere
Copy link
Contributor

In todays container call i learned that a clusterstack is the sum of all node-definitions, cluster-classes and cluster-addons over all k8s-versions over all providers that share the same clusterstack name.

Therefore i think the following folder-structure would better reflect this relation:

clusterstacks/
└── <cluster_stack_name>/
    └── <provider_name>/
        └── <k8s_major_minor_version>/

instead of

providers/
└── <provider_name>/
    └── <cluster_stack_name>/
        └── <k8s_major_minor_version>/

actual folder names:

cluster-stacks/
└── scs/
    └── README.md/   // describes features, goals, guarantees, tests
    └── openstack/
        └── 1-27/
        └── 1-28/
        └── 1-29/
    └── docker/
        └── 1-27/
        └── 1-28/
        └── 1-29/

Regarding CSO and CSPO this change would not do any harm, as the operators do not care about the git-state (only reading the GitHub releases) and in the release itself there are only assets of the most deeply nested path.

The question is if csctl would have issues with this change. Maybe @janiskemper or @michal-gubricky know?

@mxmxchere
Copy link
Contributor

I have another question:

does the most deeply nested folder (the kubernetes version) that contains cluster-class, cluster-addon and node-image have a name?

providers/
└── <provider_name>/
    └── <cluster_stack_name>/
        └── <k8s_major_minor_version>/  how is this kind of folder called?

@janiskemper
Copy link
Member

@mxmxchere you are 100% correct and there wouldn't be any issues. I strongly recommend to not choose "alpha" as cluster stack name in the future, because "alpha" should be rather "an alpha state of cluster stack xyz", so like a release channel stable, alpha, beta.

The cluster stack names should ideally be independent of both "scs" and anything like "stable", "alpha", etc. to not confuse this.

For example, what do we do if we have beta releases of the "alpha" cluster stack? And what if there is an "scs" cluster stack, but now we want to do a second one? Is that called "scs2" then?

@jschoone
Copy link
Contributor

@mxmxchere you are 100% correct and there wouldn't be any issues. I strongly recommend to not choose "alpha" as cluster stack name in the future, because "alpha" should be rather "an alpha state of cluster stack xyz", so like a release channel stable, alpha, beta.

The cluster stack names should ideally be independent of both "scs" and anything like "stable", "alpha", etc. to not confuse this.

For example, what do we do if we have beta releases of the "alpha" cluster stack? And what if there is an "scs" cluster stack, but now we want to do a second one? Is that called "scs2" then?

Hi @janiskemper I chose the name alpha on purpose for exactly the reason that this is probably not stable yet since we still working on good cluster stacks. That's why I suggested to delete alpha and scs again (see #56 (comment)) and put our learnings into new Cluster Stacks.

@jschoone jschoone added the Container Issues or pull requests relevant for Team 2: Container Infra and Tooling label May 28, 2024
@jschoone jschoone added the epic Issues that are spread across multiple sprints label Jun 3, 2024
@jschoone jschoone added this to the R7 (v8.0.0) milestone Jul 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Container Issues or pull requests relevant for Team 2: Container Infra and Tooling epic Issues that are spread across multiple sprints
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

4 participants