Documentation ¶
Overview ¶
Package machineset implements the machineset topology controller. NOTE: It is required to enable the ClusterTopology feature gate flag to activate managed topologies support.
Index ¶
- func CalculateTemplatesInUse(md *clusterv1.MachineDeployment, msList []*clusterv1.MachineSet) (map[string]bool, error)
- func DeleteTemplateIfUnused(ctx context.Context, c client.Client, templatesInUse map[string]bool, ...) error
- func GetMachineSetsForDeployment(ctx context.Context, c client.Reader, md types.NamespacedName) ([]*clusterv1.MachineSet, error)
- type Reconciler
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CalculateTemplatesInUse ¶
func CalculateTemplatesInUse(md *clusterv1.MachineDeployment, msList []*clusterv1.MachineSet) (map[string]bool, error)
CalculateTemplatesInUse returns all templates referenced in non-deleting MachineDeployment and MachineSets.
func DeleteTemplateIfUnused ¶
func DeleteTemplateIfUnused(ctx context.Context, c client.Client, templatesInUse map[string]bool, ref *corev1.ObjectReference) error
DeleteTemplateIfUnused deletes the template (ref), if it is not in use (i.e. in templatesInUse).
func GetMachineSetsForDeployment ¶
func GetMachineSetsForDeployment(ctx context.Context, c client.Reader, md types.NamespacedName) ([]*clusterv1.MachineSet, error)
GetMachineSetsForDeployment returns a list of MachineSets associated with a MachineDeployment.
Types ¶
type Reconciler ¶
type Reconciler struct { Client client.Client // APIReader is used to list MachineSets directly via the API server to avoid // race conditions caused by an outdated cache. APIReader client.Reader WatchFilterValue string }
Reconciler deletes referenced templates during deletion of topology-owned MachineSets. The templates are only deleted, if they are not used in other MachineDeployments or MachineSets which are not in deleting state, i.e. the templates would otherwise be orphaned after the MachineSet deletion completes. Note: To achieve this the reconciler sets a finalizer to hook into the MachineSet deletions.
func (*Reconciler) Reconcile ¶
Reconcile deletes referenced templates during deletion of topology-owned MachineSets. The templates are only deleted, if they are not used in other MachineDeployments or MachineSets which are not in deleting state, i.e. the templates would otherwise be orphaned after the MachineSet deletion completes. Additional context: * MachineSet deletion:
- MachineSets are deleted and garbage collected first (without waiting until all Machines are also deleted)
- After that, deletion of Machines is automatically triggered by Kubernetes based on owner references.
Note: We assume templates are not reused by different MachineDeployments, which is (only) true for topology-owned
MachineDeployments.
We don't have to set the finalizer, as it's already set during MachineSet creation in the MachineSet controller.
func (*Reconciler) SetupWithManager ¶
func (r *Reconciler) SetupWithManager(ctx context.Context, mgr ctrl.Manager, options controller.Options) error