status

package
v1.4.0-rc.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 15, 2025 License: Apache-2.0, Apache-2.0 Imports: 29 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Controller

type Controller struct {
	// contains filtered or unexported fields
}

func NewController

func NewController(
	kubeClient client.Client,
	kubernetesVersionProvider imagefamily.KubernetesVersionProvider,
	nodeImageProvider imagefamily.NodeImageProvider,
	inClusterKubernetesInterface kubernetes.Interface,
) *Controller

func (*Controller) Reconcile

func (c *Controller) Reconcile(ctx context.Context, nodeClass *v1beta1.AKSNodeClass) (reconcile.Result, error)

func (*Controller) Register

func (c *Controller) Register(_ context.Context, m manager.Manager) error

type KubernetesVersionReconciler added in v1.4.0

type KubernetesVersionReconciler struct {
	// contains filtered or unexported fields
}

func NewKubernetesVersionReconciler added in v1.4.0

func NewKubernetesVersionReconciler(provider imagefamily.KubernetesVersionProvider) *KubernetesVersionReconciler

func (*KubernetesVersionReconciler) Reconcile added in v1.4.0

The kubernetes version reconciler will detect reasons to bump the kubernetes version:

  1. Newly created AKSNodeClass, will select the version discovered from the API server
  2. If a later kubernetes version is discovered from the API server, we will upgrade to it. [don't currently support rollback] - Note: We will indirectly trigger an upgrade to latest image version as well, by resetting the Images readiness.

func (*KubernetesVersionReconciler) Register added in v1.4.0

type NodeImageReconciler added in v1.4.0

type NodeImageReconciler struct {
	// contains filtered or unexported fields
}

func NewNodeImageReconciler added in v1.4.0

func NewNodeImageReconciler(
	provider imagefamily.NodeImageProvider,
	inClusterKubernetesInterface kubernetes.Interface,
) *NodeImageReconciler

func (*NodeImageReconciler) Reconcile added in v1.4.0

func (r *NodeImageReconciler) Reconcile(ctx context.Context, nodeClass *v1beta1.AKSNodeClass) (reconcile.Result, error)

The image version reconciler will detect reasons to bump the node image version as follows in order:

Scenario A: Update all image versions to latest

  • 1. Initializes the images versions for a newly created AKSNodeClass, based on customer configuration.
  • 2. Indirectly handle image bump for k8s upgrade
  • 3. Can indirectly handle bumps for any images unsupported by node features, if required to in the future Note: Currently there are no node features to be handled in this way.
  • 4. TODO: Update Images to latest if in an open maintenance window [retrieved from ConfigMap]

Scenario B: Calculate images to be updated based on delta of available images

  • 5. Handles update cases when customer changes image family, SIG usage, or other means of image selectors
  • 6. Handles softly adding newest image version of any newly supported SKUs by Karpenter

Note: While we'd currently only need to store a SKU -> version mapping in the status for avilaible Images we decided to store the full image ID, plus Requirements associated with it. Storing the complete ID is a simple and clean approach while allowing us to extend future capabilities off of it. Additionally, while the decision to store Requirements adds minor bloat, it also provides extra visibility into the avilaible images and how their selection will work, which is seen as worth the tradeoff.

func (*NodeImageReconciler) Register added in v1.4.0

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL