diff --git a/go.mod b/go.mod index 623494fd2..59bac7919 100644 --- a/go.mod +++ b/go.mod @@ -136,7 +136,7 @@ require ( replace ( github.com/openshift/assisted-service/api => github.com/openshift/assisted-service/api v0.0.0-20260408081236-e807c36156f2 - github.com/openshift/assisted-service/models => github.com/openshift/assisted-service/models v0.0.0-20260408081236-e807c36156f2 + github.com/openshift/assisted-service/models => github.com/openshift/assisted-service/models v0.0.0-20260419130423-5f9b42b177da github.com/openshift/cluster-api-provider-agent/api => ./api sigs.k8s.io/cluster-api => sigs.k8s.io/cluster-api v1.11.0 ) diff --git a/go.sum b/go.sum index 19af78107..abdad5233 100644 --- a/go.sum +++ b/go.sum @@ -347,8 +347,8 @@ github.com/openshift/api v0.0.0-20251120220512-cb382c9eaf42 h1:Mo2FlDdoCZ+BE2W4C github.com/openshift/api v0.0.0-20251120220512-cb382c9eaf42/go.mod h1:d5uzF0YN2nQQFA0jIEWzzOZ+edmo6wzlGLvx5Fhz4uY= github.com/openshift/assisted-service/api v0.0.0-20260408081236-e807c36156f2 h1:u7GqhwktRGs3SLOpHshUid5+ujrRtbmVkuSNW3U76bg= github.com/openshift/assisted-service/api v0.0.0-20260408081236-e807c36156f2/go.mod h1:tffXj5l5bM6z0+vnOvmW3yRsVJY2fQcEy/k8S8emllk= -github.com/openshift/assisted-service/models v0.0.0-20260408081236-e807c36156f2 h1:BVcCDC+FvxBgpXxJj2o/0t/sSNTLis9eaYv5YpQd0BY= -github.com/openshift/assisted-service/models v0.0.0-20260408081236-e807c36156f2/go.mod h1:AIlSmaRbWvECCyZo+nuzkRijy7szsTxq+MrU9lmQRwo= +github.com/openshift/assisted-service/models v0.0.0-20260419130423-5f9b42b177da h1:qw8vMN/U9S0wtvNj08FeSC7VbyiEONhu251yHCxUt1c= +github.com/openshift/assisted-service/models v0.0.0-20260419130423-5f9b42b177da/go.mod h1:AIlSmaRbWvECCyZo+nuzkRijy7szsTxq+MrU9lmQRwo= github.com/openshift/custom-resource-status v1.1.3-0.20220503160415-f2fdb4999d87 h1:cHyxR+Y8rAMT6m1jQCaYGRwikqahI0OjjUDhFNf3ySQ= github.com/openshift/custom-resource-status v1.1.3-0.20220503160415-f2fdb4999d87/go.mod h1:DB/Mf2oTeiAmVVX1gN+NEqweonAPY0TKUwADizj8+ZA= github.com/openshift/hive/apis v0.0.0-20260403230239-a325b87ee9af h1:b+IGpkp1JvupD/zEzRrqxfu4JM0fLeb2+fmr4c823rE= diff --git a/vendor/github.com/openshift/assisted-service/models/versioned_cluster_host_requirements_details.go b/vendor/github.com/openshift/assisted-service/models/versioned_cluster_host_requirements_details.go new file mode 100644 index 000000000..606fd28cb --- /dev/null +++ b/vendor/github.com/openshift/assisted-service/models/versioned_cluster_host_requirements_details.go @@ -0,0 +1,65 @@ +// Code generated by go-swagger; DO NOT EDIT. + +package models + +// This file was generated by the swagger tool. +// Editing this file might prove futile when you re-run the swagger generate command + +import ( + "context" + + "github.com/go-openapi/strfmt" + "github.com/go-openapi/swag" +) + +// VersionedClusterHostRequirementsDetails versioned cluster host requirements details +// +// swagger:model versioned-cluster-host-requirements-details +type VersionedClusterHostRequirementsDetails struct { + + // Required number of CPU cores + CPUCores *int64 `json:"cpu_cores,omitempty"` + + // Required disk size in GB + DiskSizeGb *int64 `json:"disk_size_gb,omitempty"` + + // Required installation disk speed in ms + InstallationDiskSpeedThresholdMs *int64 `json:"installation_disk_speed_threshold_ms,omitempty"` + + // Maximum network average latency (RTT) at L3 for role. + NetworkLatencyThresholdMs *float64 `json:"network_latency_threshold_ms,omitempty"` + + // Maximum packet loss allowed at L3 for role. + PacketLossPercentage *float64 `json:"packet_loss_percentage,omitempty"` + + // Required number of RAM in MiB + RAMMib *int64 `json:"ram_mib,omitempty"` +} + +// Validate validates this versioned cluster host requirements details +func (m *VersionedClusterHostRequirementsDetails) Validate(formats strfmt.Registry) error { + return nil +} + +// ContextValidate validates this versioned cluster host requirements details based on context it is used +func (m *VersionedClusterHostRequirementsDetails) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (m *VersionedClusterHostRequirementsDetails) MarshalBinary() ([]byte, error) { + if m == nil { + return nil, nil + } + return swag.WriteJSON(m) +} + +// UnmarshalBinary interface implementation +func (m *VersionedClusterHostRequirementsDetails) UnmarshalBinary(b []byte) error { + var res VersionedClusterHostRequirementsDetails + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *m = res + return nil +} diff --git a/vendor/github.com/openshift/assisted-service/models/versioned_host_requirements.go b/vendor/github.com/openshift/assisted-service/models/versioned_host_requirements.go index ce5e814eb..487a88fb3 100644 --- a/vendor/github.com/openshift/assisted-service/models/versioned_host_requirements.go +++ b/vendor/github.com/openshift/assisted-service/models/versioned_host_requirements.go @@ -7,10 +7,12 @@ package models import ( "context" + "encoding/json" "github.com/go-openapi/errors" "github.com/go-openapi/strfmt" "github.com/go-openapi/swag" + "github.com/go-openapi/validate" ) // VersionedHostRequirements versioned host requirements @@ -19,19 +21,23 @@ import ( type VersionedHostRequirements struct { // Arbiter node requirements - ArbiterRequirements *ClusterHostRequirementsDetails `json:"arbiter,omitempty"` + ArbiterRequirements *VersionedClusterHostRequirementsDetails `json:"arbiter,omitempty"` // Edge Worker OpenShift node requirements - EdgeWorkerRequirements *ClusterHostRequirementsDetails `json:"edge-worker,omitempty"` + EdgeWorkerRequirements *VersionedClusterHostRequirementsDetails `json:"edge-worker,omitempty"` // Master node requirements - MasterRequirements *ClusterHostRequirementsDetails `json:"master,omitempty"` + MasterRequirements *VersionedClusterHostRequirementsDetails `json:"master,omitempty"` + + // Determines how the version field is matched. "exact" applies only to the specified version (default). "min_version" applies to the specified version and all later versions. + // Enum: [exact min_version] + MatchType string `json:"match_type,omitempty"` // Single node OpenShift node requirements - SNORequirements *ClusterHostRequirementsDetails `json:"sno,omitempty"` + SNORequirements *VersionedClusterHostRequirementsDetails `json:"sno,omitempty"` // Worker node requirements - WorkerRequirements *ClusterHostRequirementsDetails `json:"worker,omitempty"` + WorkerRequirements *VersionedClusterHostRequirementsDetails `json:"worker,omitempty"` // Version of the component for which requirements are defined Version string `json:"version,omitempty"` @@ -53,6 +59,10 @@ func (m *VersionedHostRequirements) Validate(formats strfmt.Registry) error { res = append(res, err) } + if err := m.validateMatchType(formats); err != nil { + res = append(res, err) + } + if err := m.validateSNORequirements(formats); err != nil { res = append(res, err) } @@ -124,6 +134,48 @@ func (m *VersionedHostRequirements) validateMasterRequirements(formats strfmt.Re return nil } +var versionedHostRequirementsTypeMatchTypePropEnum []interface{} + +func init() { + var res []string + if err := json.Unmarshal([]byte(`["exact","min_version"]`), &res); err != nil { + panic(err) + } + for _, v := range res { + versionedHostRequirementsTypeMatchTypePropEnum = append(versionedHostRequirementsTypeMatchTypePropEnum, v) + } +} + +const ( + + // VersionedHostRequirementsMatchTypeExact captures enum value "exact" + VersionedHostRequirementsMatchTypeExact string = "exact" + + // VersionedHostRequirementsMatchTypeMinVersion captures enum value "min_version" + VersionedHostRequirementsMatchTypeMinVersion string = "min_version" +) + +// prop value enum +func (m *VersionedHostRequirements) validateMatchTypeEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, versionedHostRequirementsTypeMatchTypePropEnum, true); err != nil { + return err + } + return nil +} + +func (m *VersionedHostRequirements) validateMatchType(formats strfmt.Registry) error { + if swag.IsZero(m.MatchType) { // not required + return nil + } + + // value enum + if err := m.validateMatchTypeEnum("match_type", "body", m.MatchType); err != nil { + return err + } + + return nil +} + func (m *VersionedHostRequirements) validateSNORequirements(formats strfmt.Registry) error { if swag.IsZero(m.SNORequirements) { // not required return nil diff --git a/vendor/modules.txt b/vendor/modules.txt index 83cc65a50..0cb14b3dd 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -251,7 +251,7 @@ github.com/openshift/api/operator/v1 github.com/openshift/assisted-service/api/common github.com/openshift/assisted-service/api/hiveextension/v1beta1 github.com/openshift/assisted-service/api/v1beta1 -# github.com/openshift/assisted-service/models v0.0.0 => github.com/openshift/assisted-service/models v0.0.0-20260408081236-e807c36156f2 +# github.com/openshift/assisted-service/models v0.0.0 => github.com/openshift/assisted-service/models v0.0.0-20260419130423-5f9b42b177da ## explicit; go 1.25.0 github.com/openshift/assisted-service/models github.com/openshift/assisted-service/models/validations @@ -1005,6 +1005,6 @@ sigs.k8s.io/structured-merge-diff/v6/value ## explicit; go 1.22 sigs.k8s.io/yaml # github.com/openshift/assisted-service/api => github.com/openshift/assisted-service/api v0.0.0-20260408081236-e807c36156f2 -# github.com/openshift/assisted-service/models => github.com/openshift/assisted-service/models v0.0.0-20260408081236-e807c36156f2 +# github.com/openshift/assisted-service/models => github.com/openshift/assisted-service/models v0.0.0-20260419130423-5f9b42b177da # github.com/openshift/cluster-api-provider-agent/api => ./api # sigs.k8s.io/cluster-api => sigs.k8s.io/cluster-api v1.11.0