diff --git a/go.mod b/go.mod index 5f8c07c53..fb88abd79 100644 --- a/go.mod +++ b/go.mod @@ -12,12 +12,12 @@ require ( github.com/openshift/custom-resource-status v1.1.2 github.com/operator-framework/api v0.17.0 github.com/prometheus/client_golang v1.13.0 - github.com/red-hat-storage/ocs-operator v0.0.1-master.0.20221110113950-7c639f6d7884 + github.com/red-hat-storage/ocs-operator v0.4.13-0.20240531152909-800b085ee450 github.com/stretchr/testify v1.8.0 go.uber.org/multierr v1.8.0 - k8s.io/api v0.25.0 + k8s.io/api v0.26.0 k8s.io/apiextensions-apiserver v0.25.0 - k8s.io/apimachinery v0.25.0 + k8s.io/apimachinery v0.26.0 k8s.io/client-go v12.0.0+incompatible sigs.k8s.io/controller-runtime v0.13.0 ) @@ -120,8 +120,8 @@ require ( gopkg.in/yaml.v3 v3.0.1 // indirect k8s.io/component-base v0.25.0 // indirect k8s.io/klog/v2 v2.80.1 // indirect - k8s.io/kube-openapi v0.0.0-20220803164354-a70c9af30aea // indirect - k8s.io/utils v0.0.0-20220823124924-e9cbc92d1a73 // indirect + k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280 // indirect + k8s.io/utils v0.0.0-20221107191617-1a15be271d1d // indirect sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2 // indirect sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect sigs.k8s.io/yaml v1.3.0 // indirect diff --git a/go.sum b/go.sum index f6ed60d88..23ccfd66e 100644 --- a/go.sum +++ b/go.sum @@ -1004,8 +1004,8 @@ github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0ua github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rboyer/safeio v0.2.1 h1:05xhhdRNAdS3apYm7JRjOqngf4xruaW959jmRxGDuSU= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= -github.com/red-hat-storage/ocs-operator v0.0.1-master.0.20221110113950-7c639f6d7884 h1:bse8RHnmj60o4PlZ+PUFlQ3kis+0HXq0JaSGrvDHtZI= -github.com/red-hat-storage/ocs-operator v0.0.1-master.0.20221110113950-7c639f6d7884/go.mod h1:zhR01ZYRsgEXP/8La+lh/uXAS7nWsHv9nZ0P/6sswMk= +github.com/red-hat-storage/ocs-operator v0.4.13-0.20240531152909-800b085ee450 h1:xOlcu4yqzr8Jm01xQZLxiOvd2bd7R5Bzj0h+0Ic/GZY= +github.com/red-hat-storage/ocs-operator v0.4.13-0.20240531152909-800b085ee450/go.mod h1:TKd5ZvjQS9nZMaeERJS2+jDK2TEL+D9mksv6fbtTS+M= github.com/renier/xmlrpc v0.0.0-20170708154548-ce4a1a486c03 h1:Wdi9nwnhFNAlseAOekn6B5G/+GMtks9UKbvRU/CMM/o= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= @@ -1793,8 +1793,8 @@ k8s.io/kube-openapi v0.0.0-20210305001622-591a79e4bda7/go.mod h1:wXW5VT87nVfh/iL k8s.io/utils v0.0.0-20210930125809-cb0fa318a74b/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20211116205334-6203023598ed/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20220210201930-3a6ce19ff2f9/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -k8s.io/utils v0.0.0-20220823124924-e9cbc92d1a73 h1:H9TCJUUx+2VA0ZiD9lvtaX8fthFsMoD+Izn93E/hm8U= -k8s.io/utils v0.0.0-20220823124924-e9cbc92d1a73/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= +k8s.io/utils v0.0.0-20221107191617-1a15be271d1d h1:0Smp/HP1OH4Rvhe+4B8nWGERtlqAGSftbSbbmm45oFs= +k8s.io/utils v0.0.0-20221107191617-1a15be271d1d/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= layeh.com/radius v0.0.0-20190322222518-890bc1058917/go.mod h1:fywZKyu//X7iRzaxLgPWsvc0L26IUpVvE/aeIL2JtIQ= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= diff --git a/vendor/github.com/red-hat-storage/ocs-operator/api/v1/ocsinitialization_types.go b/vendor/github.com/red-hat-storage/ocs-operator/api/v1/ocsinitialization_types.go index 6db552934..cd0ec826e 100644 --- a/vendor/github.com/red-hat-storage/ocs-operator/api/v1/ocsinitialization_types.go +++ b/vendor/github.com/red-hat-storage/ocs-operator/api/v1/ocsinitialization_types.go @@ -63,8 +63,9 @@ type OCSInitializationStatus struct { // +kubebuilder:printcolumn:name="Age",type=date,JSONPath=.metadata.creationTimestamp // +kubebuilder:printcolumn:name="Phase",type=string,JSONPath=.status.phase,description="Current Phase" // +kubebuilder:printcolumn:name="Created At",type=string,JSONPath=.metadata.creationTimestamp +// +operator-sdk:csv:customresourcedefinitions:displayName="OCS Initialization" -// OCSInitialization is the Schema for the ocsinitialization API +// OCSInitialization represents the initial data to be created when the operator is installed. type OCSInitialization struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/vendor/github.com/red-hat-storage/ocs-operator/api/v1/storagecluster_types.go b/vendor/github.com/red-hat-storage/ocs-operator/api/v1/storagecluster_types.go index 1b1552b05..b7d0794d3 100644 --- a/vendor/github.com/red-hat-storage/ocs-operator/api/v1/storagecluster_types.go +++ b/vendor/github.com/red-hat-storage/ocs-operator/api/v1/storagecluster_types.go @@ -18,6 +18,7 @@ package v1 import ( "os" + "time" nbv1 "github.com/noobaa/noobaa-operator/v5/pkg/apis/noobaa/v1alpha1" quotav1 "github.com/openshift/api/quota/v1" @@ -84,6 +85,12 @@ type StorageClusterSpec struct { // AllowRemoteStorageConsumers Indicates that the OCS cluster should deploy the needed // components to enable connections from remote consumers. AllowRemoteStorageConsumers bool `json:"allowRemoteStorageConsumers,omitempty"` + + // ProviderAPIServerServiceType Indicates the ServiceType for OCS Provider API Server Service. + // The supported values are NodePort or LoadBalancer. The default ServiceType is NodePort if the value is empty. + // This will only be used when AllowRemoteStorageConsumers is set to true + ProviderAPIServerServiceType corev1.ServiceType `json:"providerAPIServerServiceType,omitempty"` + // EnableCephTools toggles on whether or not the ceph tools pod // should be deployed. // Defaults to false @@ -100,13 +107,13 @@ type StorageClusterSpec struct { // storageDeviceSets section of the CR. BackingStorageClasses []BackingStorageClass `json:"backingStorageClasses,omitempty"` // DefaultStorageProfile is the default storage profile to use for - // the storageclassclaims as StorageProfile is optional. + // the storageclassrequest as StorageProfile is optional. DefaultStorageProfile string `json:"defaultStorageProfile,omitempty"` StorageProfiles []StorageProfile `json:"storageProfiles,omitempty"` } -// StorageProfile is the storage profile to use for the storageclassclaims. +// StorageProfile is the storage profile to use for the storageclassrequest. type StorageProfile struct { // +kubebuilder:validation:Required // Name of the storage profile. @@ -163,6 +170,14 @@ type ManagedResourcesSpec struct { // ManageCephCluster defines how to reconcile the Ceph cluster definition type ManageCephCluster struct { ReconcileStrategy string `json:"reconcileStrategy,omitempty"` + // WaitTimeoutForHealthyOSDInMinutes defines the time the operator would wait before an OSD can be stopped for upgrade or restart. + // If `continueUpgradeAfterChecksEvenIfNotHealthy` is `false` and the timeout exceeds and OSD is not ok to stop, then the operator + // would skip upgrade for the current OSD and proceed with the next one. + // If `continueUpgradeAfterChecksEvenIfNotHealthy` is `true`, then operator would continue with the upgrade of an OSD even if its + // not ok to stop after the timeout. + // This timeout won't be applied if `skipUpgradeChecks` is `true`. + // The default wait timeout is 10 minutes. + WaitTimeoutForHealthyOSDInMinutes time.Duration `json:"waitTimeoutForHealthyOSDInMinutes,omitempty"` } // ManageCephConfig defines how to reconcile the Ceph configuration @@ -232,30 +247,6 @@ const ( type ExternalStorageClusterSpec struct { // +optional Enable bool `json:"enable,omitempty"` - - //+kubebuilder:validation:Enum=ocs;rhcs - // StorageProviderKind Identify the type of storage provider cluster this consumer cluster is going to connect to. - StorageProviderKind ExternalStorageKind `json:"storageProviderKind,omitempty"` - - // StorageProviderEndpoint holds info to establish connection with the storage providing cluster. - StorageProviderEndpoint string `json:"storageProviderEndpoint,omitempty"` - - // OnboardingTicket holds an identity information required for consumer to onboard. - OnboardingTicket string `json:"onboardingTicket,omitempty"` - - // RequestedCapacity Will define the desired capacity requested by a consumer cluster. - RequestedCapacity *resource.Quantity `json:"requestedCapacity,omitempty"` -} - -// ExternalStorageClusterStatus defines the status of the external Storage Cluster -// to be connected to the local cluster -type ExternalStorageClusterStatus struct { - // GrantedCapacity Will report the actual capacity - // granted to the consumer cluster by the provider cluster. - GrantedCapacity resource.Quantity `json:"grantedCapacity,omitempty"` - - // ConsumerID will hold the identity of this cluster inside the attached provider cluster - ConsumerID string `json:"id,omitempty"` } // StorageDeviceSet defines a set of storage devices. @@ -447,9 +438,6 @@ type StorageClusterStatus struct { // ExternalSecretHash holds the checksum value of external secret data. ExternalSecretHash string `json:"externalSecretHash,omitempty"` - // ExternalStorage shows the status of the external cluster - ExternalStorage ExternalStorageClusterStatus `json:"externalStorage,omitempty"` - // Images holds the image reconcile status for all images reconciled by the operator Images ImagesStatus `json:"images,omitempty"` @@ -522,8 +510,9 @@ const ( // +kubebuilder:printcolumn:name="External",type=boolean,JSONPath=.spec.externalStorage.enable,description="External Storage Cluster" // +kubebuilder:printcolumn:name="Created At",type=string,JSONPath=.metadata.creationTimestamp // +kubebuilder:printcolumn:name="Version",type=string,JSONPath=.status.version,description="Storage Cluster Version" +// +operator-sdk:csv:customresourcedefinitions:displayName="Storage Cluster",resources={{CephCluster,v1,cephclusters.ceph.rook.io},{NooBaa,v1alpha1,noobaas.noobaa.io}} -// StorageCluster is the Schema for the storageclusters API +// StorageCluster represents a cluster including Ceph Cluster, NooBaa and all the storage and compute resources required. type StorageCluster struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/vendor/github.com/red-hat-storage/ocs-operator/api/v1/zz_generated.deepcopy.go b/vendor/github.com/red-hat-storage/ocs-operator/api/v1/zz_generated.deepcopy.go index d2cf4b932..17e0d646d 100644 --- a/vendor/github.com/red-hat-storage/ocs-operator/api/v1/zz_generated.deepcopy.go +++ b/vendor/github.com/red-hat-storage/ocs-operator/api/v1/zz_generated.deepcopy.go @@ -129,11 +129,6 @@ func (in *EncryptionSpec) DeepCopy() *EncryptionSpec { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ExternalStorageClusterSpec) DeepCopyInto(out *ExternalStorageClusterSpec) { *out = *in - if in.RequestedCapacity != nil { - in, out := &in.RequestedCapacity, &out.RequestedCapacity - x := (*in).DeepCopy() - *out = &x - } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalStorageClusterSpec. @@ -146,22 +141,6 @@ func (in *ExternalStorageClusterSpec) DeepCopy() *ExternalStorageClusterSpec { return out } -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ExternalStorageClusterStatus) DeepCopyInto(out *ExternalStorageClusterStatus) { - *out = *in - out.GrantedCapacity = in.GrantedCapacity.DeepCopy() -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalStorageClusterStatus. -func (in *ExternalStorageClusterStatus) DeepCopy() *ExternalStorageClusterStatus { - if in == nil { - return nil - } - out := new(ExternalStorageClusterStatus) - in.DeepCopyInto(out) - return out -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ImagesStatus) DeepCopyInto(out *ImagesStatus) { *out = *in @@ -702,7 +681,7 @@ func (in *StorageClusterSpec) DeepCopyInto(out *StorageClusterSpec) { *out = new(metav1.LabelSelector) (*in).DeepCopyInto(*out) } - in.ExternalStorage.DeepCopyInto(&out.ExternalStorage) + out.ExternalStorage = in.ExternalStorage if in.Placement != nil { in, out := &in.Placement, &out.Placement *out = make(ceph_rook_iov1.PlacementSpec, len(*in)) @@ -821,7 +800,6 @@ func (in *StorageClusterStatus) DeepCopyInto(out *StorageClusterStatus) { *out = make([]string, len(*in)) copy(*out, *in) } - in.ExternalStorage.DeepCopyInto(&out.ExternalStorage) in.Images.DeepCopyInto(&out.Images) out.KMSServerConnection = in.KMSServerConnection } diff --git a/vendor/k8s.io/utils/pointer/pointer.go b/vendor/k8s.io/utils/pointer/pointer.go index 638e27d41..b8103223a 100644 --- a/vendor/k8s.io/utils/pointer/pointer.go +++ b/vendor/k8s.io/utils/pointer/pointer.go @@ -53,6 +53,7 @@ func Int(i int) *int { } // IntPtr is a function variable referring to Int. +// // Deprecated: Use Int instead. var IntPtr = Int // for back-compat @@ -66,6 +67,7 @@ func IntDeref(ptr *int, def int) int { } // IntPtrDerefOr is a function variable referring to IntDeref. +// // Deprecated: Use IntDeref instead. var IntPtrDerefOr = IntDeref // for back-compat @@ -75,6 +77,7 @@ func Int32(i int32) *int32 { } // Int32Ptr is a function variable referring to Int32. +// // Deprecated: Use Int32 instead. var Int32Ptr = Int32 // for back-compat @@ -88,6 +91,7 @@ func Int32Deref(ptr *int32, def int32) int32 { } // Int32PtrDerefOr is a function variable referring to Int32Deref. +// // Deprecated: Use Int32Deref instead. var Int32PtrDerefOr = Int32Deref // for back-compat @@ -109,6 +113,7 @@ func Uint(i uint) *uint { } // UintPtr is a function variable referring to Uint. +// // Deprecated: Use Uint instead. var UintPtr = Uint // for back-compat @@ -122,6 +127,7 @@ func UintDeref(ptr *uint, def uint) uint { } // UintPtrDerefOr is a function variable referring to UintDeref. +// // Deprecated: Use UintDeref instead. var UintPtrDerefOr = UintDeref // for back-compat @@ -131,6 +137,7 @@ func Uint32(i uint32) *uint32 { } // Uint32Ptr is a function variable referring to Uint32. +// // Deprecated: Use Uint32 instead. var Uint32Ptr = Uint32 // for back-compat @@ -144,6 +151,7 @@ func Uint32Deref(ptr *uint32, def uint32) uint32 { } // Uint32PtrDerefOr is a function variable referring to Uint32Deref. +// // Deprecated: Use Uint32Deref instead. var Uint32PtrDerefOr = Uint32Deref // for back-compat @@ -165,6 +173,7 @@ func Int64(i int64) *int64 { } // Int64Ptr is a function variable referring to Int64. +// // Deprecated: Use Int64 instead. var Int64Ptr = Int64 // for back-compat @@ -178,6 +187,7 @@ func Int64Deref(ptr *int64, def int64) int64 { } // Int64PtrDerefOr is a function variable referring to Int64Deref. +// // Deprecated: Use Int64Deref instead. var Int64PtrDerefOr = Int64Deref // for back-compat @@ -199,6 +209,7 @@ func Uint64(i uint64) *uint64 { } // Uint64Ptr is a function variable referring to Uint64. +// // Deprecated: Use Uint64 instead. var Uint64Ptr = Uint64 // for back-compat @@ -212,6 +223,7 @@ func Uint64Deref(ptr *uint64, def uint64) uint64 { } // Uint64PtrDerefOr is a function variable referring to Uint64Deref. +// // Deprecated: Use Uint64Deref instead. var Uint64PtrDerefOr = Uint64Deref // for back-compat @@ -233,6 +245,7 @@ func Bool(b bool) *bool { } // BoolPtr is a function variable referring to Bool. +// // Deprecated: Use Bool instead. var BoolPtr = Bool // for back-compat @@ -246,6 +259,7 @@ func BoolDeref(ptr *bool, def bool) bool { } // BoolPtrDerefOr is a function variable referring to BoolDeref. +// // Deprecated: Use BoolDeref instead. var BoolPtrDerefOr = BoolDeref // for back-compat @@ -267,6 +281,7 @@ func String(s string) *string { } // StringPtr is a function variable referring to String. +// // Deprecated: Use String instead. var StringPtr = String // for back-compat @@ -280,6 +295,7 @@ func StringDeref(ptr *string, def string) string { } // StringPtrDerefOr is a function variable referring to StringDeref. +// // Deprecated: Use StringDeref instead. var StringPtrDerefOr = StringDeref // for back-compat @@ -301,6 +317,7 @@ func Float32(i float32) *float32 { } // Float32Ptr is a function variable referring to Float32. +// // Deprecated: Use Float32 instead. var Float32Ptr = Float32 @@ -314,6 +331,7 @@ func Float32Deref(ptr *float32, def float32) float32 { } // Float32PtrDerefOr is a function variable referring to Float32Deref. +// // Deprecated: Use Float32Deref instead. var Float32PtrDerefOr = Float32Deref // for back-compat @@ -335,6 +353,7 @@ func Float64(i float64) *float64 { } // Float64Ptr is a function variable referring to Float64. +// // Deprecated: Use Float64 instead. var Float64Ptr = Float64 @@ -348,6 +367,7 @@ func Float64Deref(ptr *float64, def float64) float64 { } // Float64PtrDerefOr is a function variable referring to Float64Deref. +// // Deprecated: Use Float64Deref instead. var Float64PtrDerefOr = Float64Deref // for back-compat diff --git a/vendor/k8s.io/utils/trace/trace.go b/vendor/k8s.io/utils/trace/trace.go index 3023d1066..a0b07a6d7 100644 --- a/vendor/k8s.io/utils/trace/trace.go +++ b/vendor/k8s.io/utils/trace/trace.go @@ -21,6 +21,7 @@ import ( "context" "fmt" "math/rand" + "sync" "time" "k8s.io/klog/v2" @@ -93,13 +94,16 @@ func (s traceStep) writeItem(b *bytes.Buffer, formatter string, startTime time.T // Trace keeps track of a set of "steps" and allows us to log a specific // step if it took longer than its share of the total allowed time type Trace struct { + // constant fields name string fields []Field - threshold *time.Duration startTime time.Time - endTime *time.Time - traceItems []traceItem parentTrace *Trace + // fields guarded by a lock + lock sync.RWMutex + threshold *time.Duration + endTime *time.Time + traceItems []traceItem } func (t *Trace) time() time.Time { @@ -138,6 +142,8 @@ func New(name string, fields ...Field) *Trace { // how long it took. The Fields add key value pairs to provide additional details about the trace // step. func (t *Trace) Step(msg string, fields ...Field) { + t.lock.Lock() + defer t.lock.Unlock() if t.traceItems == nil { // traces almost always have less than 6 steps, do this to avoid more than a single allocation t.traceItems = make([]traceItem, 0, 6) @@ -153,7 +159,9 @@ func (t *Trace) Nest(msg string, fields ...Field) *Trace { newTrace := New(msg, fields...) if t != nil { newTrace.parentTrace = t + t.lock.Lock() t.traceItems = append(t.traceItems, newTrace) + t.lock.Unlock() } return newTrace } @@ -163,7 +171,9 @@ func (t *Trace) Nest(msg string, fields ...Field) *Trace { // is logged. func (t *Trace) Log() { endTime := time.Now() + t.lock.Lock() t.endTime = &endTime + t.lock.Unlock() // an explicit logging request should dump all the steps out at the higher level if t.parentTrace == nil { // We don't start logging until Log or LogIfLong is called on the root trace t.logTrace() @@ -178,13 +188,17 @@ func (t *Trace) Log() { // If the Trace is nested it is not immediately logged. Instead, it is logged when the trace it // is nested within is logged. func (t *Trace) LogIfLong(threshold time.Duration) { + t.lock.Lock() t.threshold = &threshold + t.lock.Unlock() t.Log() } // logTopLevelTraces finds all traces in a hierarchy of nested traces that should be logged but do not have any // parents that will be logged, due to threshold limits, and logs them as top level traces. func (t *Trace) logTrace() { + t.lock.RLock() + defer t.lock.RUnlock() if t.durationIsWithinThreshold() { var buffer bytes.Buffer traceNum := rand.Int31() @@ -244,9 +258,13 @@ func (t *Trace) calculateStepThreshold() *time.Duration { traceThreshold := *t.threshold for _, s := range t.traceItems { nestedTrace, ok := s.(*Trace) - if ok && nestedTrace.threshold != nil { - traceThreshold = traceThreshold - *nestedTrace.threshold - lenTrace-- + if ok { + nestedTrace.lock.RLock() + if nestedTrace.threshold != nil { + traceThreshold = traceThreshold - *nestedTrace.threshold + lenTrace-- + } + nestedTrace.lock.RUnlock() } } diff --git a/vendor/modules.txt b/vendor/modules.txt index 63184fba3..97e3c8890 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -326,7 +326,7 @@ github.com/prometheus/common/model github.com/prometheus/procfs github.com/prometheus/procfs/internal/fs github.com/prometheus/procfs/internal/util -# github.com/red-hat-storage/ocs-operator v0.0.1-master.0.20221110113950-7c639f6d7884 +# github.com/red-hat-storage/ocs-operator v0.4.13-0.20240531152909-800b085ee450 ## explicit; go 1.18 github.com/red-hat-storage/ocs-operator/api/v1 # github.com/rook/rook v1.10.1 @@ -548,7 +548,7 @@ gopkg.in/yaml.v2 # gopkg.in/yaml.v3 v3.0.1 ## explicit gopkg.in/yaml.v3 -# k8s.io/api v0.25.0 => k8s.io/api v0.23.4 +# k8s.io/api v0.26.0 => k8s.io/api v0.23.4 ## explicit; go 1.16 k8s.io/api/admission/v1 k8s.io/api/admission/v1beta1 @@ -606,7 +606,7 @@ k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/scheme k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1 k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1beta1 -# k8s.io/apimachinery v0.25.0 => k8s.io/apimachinery v0.24.13 +# k8s.io/apimachinery v0.26.0 => k8s.io/apimachinery v0.24.13 ## explicit; go 1.19 k8s.io/apimachinery/pkg/api/equality k8s.io/apimachinery/pkg/api/errors @@ -800,12 +800,12 @@ k8s.io/klog/v2/internal/clock k8s.io/klog/v2/internal/dbg k8s.io/klog/v2/internal/serialize k8s.io/klog/v2/internal/severity -# k8s.io/kube-openapi v0.0.0-20220803164354-a70c9af30aea => k8s.io/kube-openapi v0.0.0-20210305001622-591a79e4bda7 +# k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280 => k8s.io/kube-openapi v0.0.0-20210305001622-591a79e4bda7 ## explicit; go 1.12 k8s.io/kube-openapi/pkg/schemaconv k8s.io/kube-openapi/pkg/util/proto -# k8s.io/utils v0.0.0-20220823124924-e9cbc92d1a73 -## explicit; go 1.12 +# k8s.io/utils v0.0.0-20221107191617-1a15be271d1d +## explicit; go 1.18 k8s.io/utils/buffer k8s.io/utils/clock k8s.io/utils/clock/testing