Documentation
¶
Overview ¶
Package controller contains the functions in PostgreSQL instance manager that reacts to changes to the Cluster resource.
Index ¶
- Variables
- type DatabaseReconciler
- type InstanceReconciler
- func (r *InstanceReconciler) GetClient() ctrl.Client
- func (r *InstanceReconciler) GetCluster(ctx context.Context) (*apiv1.Cluster, error)
- func (r *InstanceReconciler) GetExecutedCondition() *concurrency.Executed
- func (r *InstanceReconciler) GetSecret(ctx context.Context, name string) (*corev1.Secret, error)
- func (r *InstanceReconciler) Instance() *postgres.Instance
- func (r *InstanceReconciler) IsDBUp(ctx context.Context) error
- func (r *InstanceReconciler) Reconcile(ctx context.Context, _ reconcile.Request) (reconcile.Result, error)
- func (r *InstanceReconciler) ReconcileTablespaces(ctx context.Context, cluster *apiv1.Cluster) error
- type PublicationReconciler
- type SubscriptionReconciler
Constants ¶
This section is empty.
Variables ¶
var ErrFailedDatabaseObjectReconciliation = fmt.Errorf("database object reconciliation failed")
ErrFailedDatabaseObjectReconciliation is raised when a database object failed to reconcile
var RetryUntilWalReceiverDown = wait.Backoff{ Duration: 1 * time.Second, Steps: math.MaxInt32, }
RetryUntilWalReceiverDown is the default retry configuration that is used to wait for the WAL receiver process to be down
Functions ¶
This section is empty.
Types ¶
type DatabaseReconciler ¶ added in v1.25.0
type DatabaseReconciler struct {
client.Client
Scheme *runtime.Scheme
// contains filtered or unexported fields
}
DatabaseReconciler reconciles a Database object
func NewDatabaseReconciler ¶ added in v1.25.0
func NewDatabaseReconciler( mgr manager.Manager, instance *postgres.Instance, ) *DatabaseReconciler
NewDatabaseReconciler creates a new database reconciler
func (*DatabaseReconciler) GetCluster ¶ added in v1.25.0
GetCluster gets the managed cluster through the client
func (*DatabaseReconciler) Reconcile ¶ added in v1.25.0
Reconcile is the database reconciliation loop
func (*DatabaseReconciler) SetupWithManager ¶ added in v1.25.0
func (r *DatabaseReconciler) SetupWithManager(mgr ctrl.Manager) error
SetupWithManager sets up the controller with the Manager.
type InstanceReconciler ¶
type InstanceReconciler struct {
// contains filtered or unexported fields
}
InstanceReconciler reconciles the status of the Cluster resource with the one of this PostgreSQL instance. Also, the configuration in the ConfigMap is applied when needed
func NewInstanceReconciler ¶
func NewInstanceReconciler( instance *postgres.Instance, client ctrl.Client, metricsExporter *metricserver.Exporter, ) *InstanceReconciler
NewInstanceReconciler creates a new instance reconciler
func (*InstanceReconciler) GetClient ¶
func (r *InstanceReconciler) GetClient() ctrl.Client
GetClient returns the dynamic client that is being used for a certain reconciler
func (*InstanceReconciler) GetCluster ¶
GetCluster gets the managed cluster through the client
func (*InstanceReconciler) GetExecutedCondition ¶
func (r *InstanceReconciler) GetExecutedCondition() *concurrency.Executed
GetExecutedCondition returns the condition that can be checked in order to be sure initialization has been done
func (*InstanceReconciler) Instance ¶
func (r *InstanceReconciler) Instance() *postgres.Instance
Instance get the PostgreSQL instance that this reconciler is working on
func (*InstanceReconciler) IsDBUp ¶
func (r *InstanceReconciler) IsDBUp(ctx context.Context) error
IsDBUp checks whether the superuserdb is reachable and returns an error if that's not the case
func (*InstanceReconciler) Reconcile ¶
func (r *InstanceReconciler) Reconcile( ctx context.Context, _ reconcile.Request, ) (reconcile.Result, error)
Reconcile is the main reconciliation loop for the instance TODO this function needs to be refactor
func (*InstanceReconciler) ReconcileTablespaces ¶ added in v1.22.0
func (r *InstanceReconciler) ReconcileTablespaces( ctx context.Context, cluster *apiv1.Cluster, ) error
ReconcileTablespaces ensures the mount points created for the tablespaces are there, and creates a subdirectory in each of them, which will therefore be owned by the `postgres` user (rather than `root` as the mount point), as required in order to hold PostgreSQL Tablespaces
type PublicationReconciler ¶ added in v1.25.0
type PublicationReconciler struct {
client.Client
Scheme *runtime.Scheme
// contains filtered or unexported fields
}
PublicationReconciler reconciles a Publication object
func NewPublicationReconciler ¶ added in v1.25.0
func NewPublicationReconciler( mgr manager.Manager, instance *postgres.Instance, ) *PublicationReconciler
NewPublicationReconciler creates a new publication reconciler
func (*PublicationReconciler) GetCluster ¶ added in v1.25.0
GetCluster gets the managed cluster through the client
func (*PublicationReconciler) Reconcile ¶ added in v1.25.0
func (r *PublicationReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error)
Reconcile is part of the main kubernetes reconciliation loop which aims to move the current state of the cluster closer to the desired state. TODO(user): Modify the Reconcile function to compare the state specified by the Publication object against the actual cluster state, and then perform operations to make the cluster state reflect the state specified by the user.
For more details, check Reconcile and its Result here: - https://pkg.go.dev/sigs.k8s.io/controller-runtime@v0.18.4/pkg/reconcile
func (*PublicationReconciler) SetupWithManager ¶ added in v1.25.0
func (r *PublicationReconciler) SetupWithManager(mgr ctrl.Manager) error
SetupWithManager sets up the controller with the Manager.
type SubscriptionReconciler ¶ added in v1.25.0
type SubscriptionReconciler struct {
client.Client
Scheme *runtime.Scheme
// contains filtered or unexported fields
}
SubscriptionReconciler reconciles a Subscription object
func NewSubscriptionReconciler ¶ added in v1.25.0
func NewSubscriptionReconciler( mgr manager.Manager, instance *postgres.Instance, ) *SubscriptionReconciler
NewSubscriptionReconciler creates a new subscription reconciler
func (*SubscriptionReconciler) GetCluster ¶ added in v1.25.0
GetCluster gets the managed cluster through the client
func (*SubscriptionReconciler) Reconcile ¶ added in v1.25.0
func (r *SubscriptionReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error)
Reconcile is the subscription reconciliation loop
func (*SubscriptionReconciler) SetupWithManager ¶ added in v1.25.0
func (r *SubscriptionReconciler) SetupWithManager(mgr ctrl.Manager) error
SetupWithManager sets up the controller with the Manager
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
Package externalservers contains the reconciler of external servers, taking care of enabling connectivity to every server defined in the relative section of the CR
|
Package externalservers contains the reconciler of external servers, taking care of enabling connectivity to every server defined in the relative section of the CR |
|
Package roles contains the code needed to reconcile roles with PostgreSQL
|
Package roles contains the code needed to reconcile roles with PostgreSQL |
|
slots
|
|
|
infrastructure
Package infrastructure contains the structs and interfaces needed to manage replication slots
|
Package infrastructure contains the structs and interfaces needed to manage replication slots |
|
reconciler
Package reconciler contains all the logic needed to reconcile replication slots
|
Package reconciler contains all the logic needed to reconcile replication slots |
|
runner
Package runner contains the runner that replicates slots from the primary to the replicas
|
Package runner contains the runner that replicates slots from the primary to the replicas |
|
Package tablespaces contains the runner to declarative tablespace
|
Package tablespaces contains the runner to declarative tablespace |
|
infrastructure
Package infrastructure contains the structs and interfaces needed to manage declarative tablespace
|
Package infrastructure contains the structs and interfaces needed to manage declarative tablespace |