Trying to build vpp

This commit is contained in:
2026-04-08 21:13:21 +08:00
parent 0c5f490dfc
commit 4eae2621c9
12 changed files with 284 additions and 54 deletions

View File

@@ -52,12 +52,39 @@ type OSUpgradeList struct {
Items []OSUpgrade `json:"items" yaml:"items"`
}
// OSUpgradeSpec defines the desired state of an OSUpgrade.
type OSUpgradeSpec struct {
// User request, can be "stable" or an explicit version like "v1.35.3".
// DesiredVersion is the requested target version.
//
// It may be either:
// - "stable" to use the catalog's current stable version
// - an explicit version such as "v1.35.3"
//
// The resolved target version is reported in status.
// +kubebuilder:validation:MinLength=1
DesiredVersion string `json:"desiredVersion,omitempty" yaml:"desiredVersion,omitempty"`
// FlashProfile controls how aggressively the image is written to disk.
//
// Supported values are:
// - "fast": prioritize speed
// - "balanced": default tradeoff between speed and system impact
// - "safe": minimize I/O pressure on the node
//
// If unset, the controller should use a default profile.
// +kubebuilder:validation:Enum=fast;balanced;safe
// +kubebuilder:default=balanced
FlashProfile string `json:"flashProfile,omitempty"`
// Catalog specifies how available versions and images are resolved.
//
// This may point to a remote catalog, inline catalog data, or another source,
// depending on the VersionCatalogSource definition.
Catalog *VersionCatalogSource `json:"catalog,omitempty"`
// NodeSelector limits the upgrade to nodes whose labels match this selector.
//
// If unset, the upgrade applies to all eligible nodes.
NodeSelector *metav1.LabelSelector `json:"nodeSelector,omitempty" yaml:"nodeSelector,omitempty"`
}