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

Implement generate Cluster and its referenced objects for a managed topology #4998

Closed
fabriziopandini opened this issue Jul 22, 2021 · 1 comment · Fixed by #5002
Closed
Assignees
Labels
kind/feature Categorizes issue or PR as related to a new feature. lifecycle/active Indicates that an issue or PR is actively being worked on by a contributor.
Milestone

Comments

@fabriziopandini
Copy link
Member

Detailed Description

This is part of the activities for the implementation of the ClusterClass proposal.

As part of the ManageTopologyController reconcile loop, we want to generate the desired state of a managed topology.

This requires to computing following objects starting from the ClusterClass, referenced templates, and eventually the current state of the cluster:

  • ClusterInfrastructure object
  • ControlPlaneMachineInfrastructureTemplate object, if required
  • ControlPlane object
  • Cluster object (only spec.InfrastructureRef and spec.ControlPlaneRef are computed)
  • For each MachineDeployment in Cluster.Topology.Workers.Deployments
    • MachineBootstrapTemplate object
    • MachineInfrastructureTemplate object
    • MachineDeployment object

Given the scope of this task, this issue focus on the first set of objects, cluster and its dependencies, while machine deployments and related templates will be addressed in a separated issue.

Also, please note that implementing support for version upgrade component by component will be addressed in a follow up step.

** Anything else you would like to add: **

This issue assumes #4933 and #4986 to be merged first

The rules for creating objects are documented in the proposal, however some things are worth to notice:

  • Creating a ClusterInfrastructure object from a template (template .--> object) is really similar what we are already doing when creating a MachineInfrastructure object from a template; same considerations apply to creating the ControlPlane object
  • Creating the ControlPlaneMachineInfrastructureTemplate is slightly different (template .--> template), but we want to keep a consistent set of labels and annotations (e.g ClonedFrom)
  • Crating ControlPlane should take into account providers with/without replicas support and providers with/without requirement for a MachineInfrastructureTemplate

/kind feature

@k8s-ci-robot k8s-ci-robot added the kind/feature Categorizes issue or PR as related to a new feature. label Jul 22, 2021
@fabriziopandini
Copy link
Member Author

/milestone v0.4

/assign
/lifecycle active

@k8s-ci-robot k8s-ci-robot added the lifecycle/active Indicates that an issue or PR is actively being worked on by a contributor. label Jul 22, 2021
@k8s-ci-robot k8s-ci-robot added this to the v0.4 milestone Jul 22, 2021
@fabriziopandini fabriziopandini changed the title Implement generate desired state for a managed topology - part 1 Implement generate Cluster and its referenced objects for a managed topology Jul 22, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/feature Categorizes issue or PR as related to a new feature. lifecycle/active Indicates that an issue or PR is actively being worked on by a contributor.
Projects
None yet
2 participants