Documentation ¶
Overview ¶
Package resourcerequestoperator contains the ResourceRequest controller which reconciles the resource and creates new ResourceOffer and related tests. utils.go contains all utility function.
Index ¶
- func GetResourceRequest(ctx context.Context, k8sClient client.Client, clusterID string) (*discoveryv1alpha1.ResourceRequest, error)
- func GetTenantName(cluster discoveryv1alpha1.ClusterIdentity) string
- type OfferQueue
- type OfferUpdater
- func (u *OfferUpdater) CreateOrUpdateOffer(cluster discoveryv1alpha1.ClusterIdentity) (requeue bool, err error)
- func (u *OfferUpdater) NotifyChange()
- func (u *OfferUpdater) RemoveClusterID(clusterID string)
- func (u *OfferUpdater) SetThreshold(updateThresholdPercentage uint)
- func (u *OfferUpdater) Start(ctx context.Context) error
- type ResourceRequestReconciler
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetResourceRequest ¶ added in v0.3.2
func GetResourceRequest(ctx context.Context, k8sClient client.Client, clusterID string) ( *discoveryv1alpha1.ResourceRequest, error)
GetResourceRequest returns ResourceRequest for the given cluster.
func GetTenantName ¶ added in v0.4.0
func GetTenantName(cluster discoveryv1alpha1.ClusterIdentity) string
GetTenantName returns the name of the Tenant for the given cluster.
Types ¶
type OfferQueue ¶ added in v0.3.2
type OfferQueue struct {
// contains filtered or unexported fields
}
OfferQueue is a component that periodically commands a broadcaster/broker to update its ResourceOffers. It also provides rate-limited retries for transient errors in the offering process.
func NewOfferQueue ¶ added in v0.3.2
func NewOfferQueue(offerUpdater *OfferUpdater) OfferQueue
NewOfferQueue constructs an OfferQueue.
func (*OfferQueue) Push ¶ added in v0.3.2
func (u *OfferQueue) Push(cluster discoveryv1alpha1.ClusterIdentity)
Push pushes a cluster ID into the queue.
func (*OfferQueue) RemoveClusterID ¶ added in v0.3.2
func (u *OfferQueue) RemoveClusterID(clusterID string)
RemoveClusterID clears updates for the given cluster.
type OfferUpdater ¶
type OfferUpdater struct { resourcemonitors.ResourceReader OfferQueue // contains filtered or unexported fields }
OfferUpdater is a component that responds to ResourceRequests with the cluster's resources read from ResourceReader.
func NewOfferUpdater ¶ added in v0.3.2
func NewOfferUpdater(ctx context.Context, k8sClient client.Client, homeCluster discoveryv1alpha1.ClusterIdentity, clusterLabels map[string]string, reader resourcemonitors.ResourceReader, updateThresholdPercentage uint, localRealStorageClassName string, enableStorage bool) *OfferUpdater
NewOfferUpdater constructs a new OfferUpdater.
func (*OfferUpdater) CreateOrUpdateOffer ¶ added in v0.3.2
func (u *OfferUpdater) CreateOrUpdateOffer(cluster discoveryv1alpha1.ClusterIdentity) (requeue bool, err error)
CreateOrUpdateOffer creates an offer into the given cluster, reading resources from the ResourceReader.
func (*OfferUpdater) NotifyChange ¶ added in v0.3.2
func (u *OfferUpdater) NotifyChange()
NotifyChange is used by the ResourceReader to notify that resources were added or removed. It checks if any resources have changed by at least a set percentage since we last updated a ResourceOffer, and if so it triggers a new update.
func (*OfferUpdater) RemoveClusterID ¶ added in v0.3.2
func (u *OfferUpdater) RemoveClusterID(clusterID string)
RemoveClusterID stops tracking the resources to be offered to a given cluster.
func (*OfferUpdater) SetThreshold ¶ added in v0.3.2
func (u *OfferUpdater) SetThreshold(updateThresholdPercentage uint)
SetThreshold sets the threshold for resource updates to trigger an update of the ResourceOffers.
type ResourceRequestReconciler ¶
type ResourceRequestReconciler struct { client.Client Scheme *runtime.Scheme HomeCluster discoveryv1alpha1.ClusterIdentity *OfferUpdater EnableIncomingPeering bool }
ResourceRequestReconciler reconciles a ResourceRequest object.
func (*ResourceRequestReconciler) Reconcile ¶
func (r *ResourceRequestReconciler) Reconcile(ctx context.Context, req ctrl.Request) (result ctrl.Result, err error)
Reconcile is the main function of the controller which reconciles ResourceRequest resources.
func (*ResourceRequestReconciler) SetupWithManager ¶
func (r *ResourceRequestReconciler) SetupWithManager(mgr ctrl.Manager) error
SetupWithManager is the setup function of the controller.
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package resourcemonitors contains the ResourceReader API that is used to create ResourceOffers, as well as resource monitors implementing this API.
|
Package resourcemonitors contains the ResourceReader API that is used to create ResourceOffers, as well as resource monitors implementing this API. |