Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func MustPatchClusterClient ¶ added in v0.2.1
func MustPatchClusterClient(ctx context.Context, ar *clustersv1alpha1.AccessRequest, cluster *clusters.Cluster) *clusters.Cluster
MustPatchClusterClient replaces the cluster client with the host value of the local AR annotation. If no local annotation is present then the original cluster of the wrapped reconciler is returned.
func NewLocalAccessReconciler ¶
func NewLocalAccessReconciler(car clusteraccess.Reconciler) clusteraccess.Reconciler
NewLocalAccessReconciler returns a local cluster access reconciler that wraps the given cluster access reconciler
Types ¶
type ClusterContext ¶
type ClusterContext struct {
// MCPCluster is the managed control plane that belongs to the current reconcile request
MCPCluster *clusters.Cluster
// MCPAccessSecretKey provides the object key to retrieve the MCP kubeconfig secret
MCPAccessSecretKey client.ObjectKey
// WorkloadCluster is the workload cluster that belongs the current reconcile request
WorkloadCluster *clusters.Cluster
// WorkloadAccessSecretKey provides the object key to retrieve the workload cluster kubeconfig secret
WorkloadAccessSecretKey client.ObjectKey
}
ClusterContext provides access to request-scoped clusters. These clusters include the managed control plane and workload clusters associated with a specific reconcile request. (Static clusters like the platform and onboarding clusters are provided to the reconciler when it is initialized.)
More info on the deployment model: https://openmcp-project.github.io/docs/about/design/service-provider#deployment-model
type Provider ¶
type Provider interface {
// MCPCluster creates a Cluster for the MCP AccessRequest.
// This function will only be successful if the MCP AccessRequest is granted and Reconcile returned without an error
// and a reconcile.Result with no RequeueAfter value.
MCPCluster(ctx context.Context, request reconcile.Request) (*clusters.Cluster, error)
// MCPAccessRequest returns the AccessRequest for the MCP cluster.
MCPAccessRequest(ctx context.Context, request reconcile.Request) (*clustersv1alpha1.AccessRequest, error)
// WorkloadCluster creates a Cluster for the Workload AccessRequest.
// This function will only be successful if the Workload AccessRequest is granted and Reconcile returned without an error
// and a reconcile.Result with no RequeueAfter value.
WorkloadCluster(ctx context.Context, request reconcile.Request) (*clusters.Cluster, error)
// WorkloadAccessRequest returns the AccessRequest for the Workload cluster.
WorkloadAccessRequest(ctx context.Context, request reconcile.Request) (*clustersv1alpha1.AccessRequest, error)
// Reconcile creates the ClusterRequests and AccessRequests for the MCP and Workload clusters based on the reconciled object.
// This function should be called during all reconciliations of the reconciled object.
// ctx is the context for the reconciliation.
// request is the object that is being reconciled
// It returns a reconcile.Result and an error if the reconciliation failed.
// The reconcile.Result may contain a RequeueAfter value to indicate that the reconciliation should be retried after a certain duration.
Reconcile(ctx context.Context, request reconcile.Request) (reconcile.Result, error)
// ReconcileDelete deletes the AccessRequests and ClusterRequests for the MCP and Workload clusters based on the reconciled object.
// This function should be called during the deletion of the reconciled object.
// ctx is the context for the reconciliation.
// request is the object that is being reconciled.
// It returns a reconcile.Result and an error if the reconciliation failed.
// The reconcile.Result may contain a RequeueAfter value to indicate that the reconciliation should be retried after a certain duration.
ReconcileDelete(ctx context.Context, request reconcile.Request) (reconcile.Result, error)
}
Provider is a light weight version of the ClusterAccessReconciler