Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

K8SPXC-1509: Fix reconciler error when PiTR enabled #1879

Open
wants to merge 7 commits into
base: main
Choose a base branch
from

Conversation

egegunes
Copy link
Contributor

@egegunes egegunes commented Nov 23, 2024

K8SPXC-1509 Powered by Pull Request Badge

CHANGE DESCRIPTION

Fix temporary resource name may not be empty error when PiTR enabled on a running cluster.

CHECKLIST

Jira

  • Is the Jira ticket created and referenced properly?
  • Does the Jira ticket have the proper statuses for documentation (Needs Doc) and QA (Needs QA)?
  • Does the Jira ticket link to the proper milestone (Fix Version field)?

Tests

  • Is an E2E test/test case added for the new feature/change?
  • Are unit tests added where appropriate?
  • Are OpenShift compare files changed for E2E tests (compare/*-oc.yml)?

Config/Logging/Testability

  • Are all needed new/changed options added to default YAML files?
  • Are all needed new/changed options added to the Helm Chart?
  • Did we add proper logging messages for operator actions?
  • Did we ensure compatibility with the previous version or cluster upgrade process?
  • Does the change support oldest and newest supported PXC version?
  • Does the change support oldest and newest supported Kubernetes version?

@pull-request-size pull-request-size bot added the size/M 30-99 lines label Nov 23, 2024
@hors hors marked this pull request as ready for review December 2, 2024 08:43
@hors hors marked this pull request as draft December 2, 2024 08:43
@egegunes egegunes added this to the v1.17.0 milestone Dec 13, 2024
@egegunes egegunes marked this pull request as ready for review January 9, 2025 10:28
Comment on lines +38 to +43
switch res {
case controllerutil.OperationResultCreated:
log.Info("Created binlog collector", "name", binlogCollector.Name)
case controllerutil.OperationResultUpdated:
log.Info("Updated binlog collector", "name", binlogCollector.Name)
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why don't we log res regardless of its status and we are switching only for these 2 cases? The status has an underlying type of string, which already has the information we want.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we can do something like this, but i prefer the current version tbh

Suggested change
switch res {
case controllerutil.OperationResultCreated:
log.Info("Created binlog collector", "name", binlogCollector.Name)
case controllerutil.OperationResultUpdated:
log.Info("Updated binlog collector", "name", binlogCollector.Name)
}
if res != controllerutil.OperationResultNone {
log.Info("Reconciled binlog collector", "name", binlogCollector.Name, "operation", res)
}

Comment on lines +42 to +43
if err := r.reconcileBinlogCollector(ctx, cr); err != nil {
return errors.Wrap(err, "reconcile binlog collector")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Discussed with @egegunes that if can also add a unit test for the controller if we have some time

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i spend some time on this but binlog collector is only reconciled after cluster is ready and unfortunately on envtest we have no means to make cluster ready

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

alright thanks for checking this

@egegunes egegunes requested a review from gkech January 21, 2025 13:09
@JNKPercona
Copy link
Collaborator

Test name Status
affinity-8-0 passed
auto-tuning-8-0 passed
cross-site-8-0 passed
custom-users-8-0 passed
demand-backup-cloud-8-0 passed
demand-backup-encrypted-with-tls-8-0 passed
demand-backup-8-0 passed
haproxy-5-7 passed
haproxy-8-0 passed
init-deploy-5-7 passed
init-deploy-8-0 passed
limits-8-0 passed
monitoring-2-0-8-0 passed
one-pod-5-7 passed
one-pod-8-0 passed
pitr-8-0 passed
pitr-gap-errors-8-0 passed
proxy-protocol-8-0 passed
proxysql-sidecar-res-limits-8-0 passed
pvc-resize-5-7 passed
pvc-resize-8-0 passed
recreate-8-0 passed
restore-to-encrypted-cluster-8-0 passed
scaling-proxysql-8-0 passed
scaling-8-0 passed
scheduled-backup-5-7 failure
scheduled-backup-8-0 passed
security-context-8-0 passed
smart-update1-8-0 passed
smart-update2-8-0 passed
storage-8-0 passed
tls-issue-cert-manager-ref-8-0 passed
tls-issue-cert-manager-8-0 passed
tls-issue-self-8-0 passed
upgrade-consistency-8-0 passed
upgrade-haproxy-5-7 passed
upgrade-haproxy-8-0 passed
upgrade-proxysql-5-7 passed
upgrade-proxysql-8-0 passed
users-5-7 passed
users-8-0 passed
validation-hook-8-0 passed
We run 42 out of 42

commit: c3439e3
image: perconalab/percona-xtradb-cluster-operator:PR-1879-c3439e37

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
size/M 30-99 lines
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants