From 97c56fa4efbbd1f0afddefd1e8fde6231e7d57d5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 27 Nov 2024 14:12:26 +0200 Subject: [PATCH 01/60] CLOUD-727: Bump github.com/onsi/ginkgo/v2 from 2.21.0 to 2.22.0 (#1875) Bumps [github.com/onsi/ginkgo/v2](https://github.com/onsi/ginkgo) from 2.21.0 to 2.22.0. - [Release notes](https://github.com/onsi/ginkgo/releases) - [Changelog](https://github.com/onsi/ginkgo/blob/master/CHANGELOG.md) - [Commits](https://github.com/onsi/ginkgo/compare/v2.21.0...v2.22.0) --- updated-dependencies: - dependency-name: github.com/onsi/ginkgo/v2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Viacheslav Sarzhan --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 6b49da38ea..25ad24ca9c 100644 --- a/go.mod +++ b/go.mod @@ -20,7 +20,7 @@ require ( github.com/google/go-cmp v0.6.0 github.com/hashicorp/go-version v1.7.0 github.com/minio/minio-go/v7 v7.0.80 - github.com/onsi/ginkgo/v2 v2.21.0 + github.com/onsi/ginkgo/v2 v2.22.0 github.com/onsi/gomega v1.35.1 github.com/pkg/errors v0.9.1 github.com/robfig/cron/v3 v3.0.1 diff --git a/go.sum b/go.sum index 157a03768d..5d1f99374b 100644 --- a/go.sum +++ b/go.sum @@ -143,8 +143,8 @@ github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f h1:y5//uYreIhSUg3J github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/onsi/ginkgo/v2 v2.21.0 h1:7rg/4f3rB88pb5obDgNZrNHrQ4e6WpjonchcpuBRnZM= -github.com/onsi/ginkgo/v2 v2.21.0/go.mod h1:7Du3c42kxCUegi0IImZ1wUQzMBVecgIHjR1C+NkhLQo= +github.com/onsi/ginkgo/v2 v2.22.0 h1:Yed107/8DjTr0lKCNt7Dn8yQ6ybuDRQoMGrNFKzMfHg= +github.com/onsi/ginkgo/v2 v2.22.0/go.mod h1:7Du3c42kxCUegi0IImZ1wUQzMBVecgIHjR1C+NkhLQo= github.com/onsi/gomega v1.35.1 h1:Cwbd75ZBPxFSuZ6T+rN/WCb/gOc6YgFBXLlZLhC7Ds4= github.com/onsi/gomega v1.35.1/go.mod h1:PvZbdDc8J6XJEpDK4HCuRBm8a6Fzp9/DmhC9C7yFlog= github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= From 8a995a559696f10963914dd67ab3881690508ab4 Mon Sep 17 00:00:00 2001 From: Pavel Tankov <4014969+ptankov@users.noreply.github.com> Date: Fri, 29 Nov 2024 12:28:26 +0200 Subject: [PATCH 02/60] K8SPXC-1508 Automate images and provider versions provisioning for Jenkins jobs (#1890) * Add release versions for Percona XtraDB Cluster Operator images and Kubernetes compatibility * Update release versions and add supported Kubernetes versions for Percona XtraDB Cluster Operator --- e2e-tests/release_versions | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 e2e-tests/release_versions diff --git a/e2e-tests/release_versions b/e2e-tests/release_versions new file mode 100644 index 0000000000..ef6f856420 --- /dev/null +++ b/e2e-tests/release_versions @@ -0,0 +1,25 @@ +# Images versions +IMAGE_OPERATOR=perconalab/percona-xtradb-cluster-operator:main + +IMAGE_PXC80=perconalab/percona-xtradb-cluster-operator:main-pxc8.0 +IMAGE_BACKUP80=perconalab/percona-xtradb-cluster-operator:main-pxc8.0-backup + +IMAGE_PXC57=perconalab/percona-xtradb-cluster-operator:main-pxc5.7 +IMAGE_BACKUP57=perconalab/percona-xtradb-cluster-operator:main-pxc5.7-backup + +IMAGE_PROXY=perconalab/percona-xtradb-cluster-operator:main-proxysql +IMAGE_HAPROXY=perconalab/percona-xtradb-cluster-operator:main-haproxy +IMAGE_LOGCOLLECTOR=perconalab/percona-xtradb-cluster-operator:main-logcollector +IMAGE_PMM_CLIENT=perconalab/pmm-client:dev-latest +IMAGE_PMM_SERVER=perconalab/pmm-server:dev-latest + +# Supported k8s versions +GKE_MIN=1.28 +GKE_MAX=1.30 +EKS_MIN=1.28 +EKS_MAX=1.31 +AKS_MIN=1.28 +AKS_MAX=1.31 +OPENSHIFT_MIN=4.13.52 +OPENSHIFT_MAX=4.17.3 +MINIKUBE_REL=1.31.0 \ No newline at end of file From 14c519bd4856bdd56f6cfaf62b1b3a601e87a336 Mon Sep 17 00:00:00 2001 From: Andrii Dema Date: Sun, 1 Dec 2024 21:11:52 +0200 Subject: [PATCH 03/60] K8SPXC-1451: remove comparing version (#1881) --- pkg/controller/pxc/volumes.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/controller/pxc/volumes.go b/pkg/controller/pxc/volumes.go index d7a705766e..518800bff9 100644 --- a/pkg/controller/pxc/volumes.go +++ b/pkg/controller/pxc/volumes.go @@ -226,7 +226,7 @@ func (r *ReconcilePerconaXtraDBCluster) reconcilePersistentVolumes(ctx context.C return nil } - if cr.CompareVersionWith("1.16.0") >= 0 && !cr.Spec.VolumeExpansionEnabled { + if !cr.Spec.VolumeExpansionEnabled { // If expansion is disabled we should keep the old value cr.Spec.PXC.VolumeSpec.PersistentVolumeClaim.Resources.Requests[corev1.ResourceStorage] = configured return nil From d88946ae79e56e253f961dfe013d3f7ef5152a9f Mon Sep 17 00:00:00 2001 From: Andrii Dema Date: Sun, 1 Dec 2024 21:12:51 +0200 Subject: [PATCH 04/60] K8SPXC-1378: fix `.spec.backup.allowParallel` (#1889) --- e2e-tests/demand-backup/run | 12 +++++++++-- pkg/controller/pxcbackup/controller.go | 18 ++++++++-------- pkg/naming/labels.go | 29 +++++++++++++++++--------- 3 files changed, 38 insertions(+), 21 deletions(-) diff --git a/e2e-tests/demand-backup/run b/e2e-tests/demand-backup/run index 30d99f5f0b..80b2469b25 100755 --- a/e2e-tests/demand-backup/run +++ b/e2e-tests/demand-backup/run @@ -30,18 +30,26 @@ main() { kubectl_bin apply -f "$test_dir/conf/$wrong_creds_backup_name.yml" - sleep 10 - run_backup "$cluster" "$minio_backup_name" compare_kubectl "job/xb-$minio_backup_name" + sleep 90 + wrong_backup_job_fail_timestamp=$(kubectl_bin get job xb-$wrong_creds_backup_name -o yaml \ | yq '.status.conditions[] | select(.type == "Failed").lastTransitionTime' \ | xargs -I {} "$date" -d "{}" +%s) + if [[ -z $wrong_backup_job_fail_timestamp ]]; then + echo 'failed to get wrong_backup_job_fail_timestamp' + exit 1 + fi minio_job_creation_timestamp=$(kubectl get job xb-$minio_backup_name -o yaml \ | yq '.metadata.creationTimestamp' \ | xargs -I {} "$date" -d "{}" +%s) + if [[ -z $minio_job_creation_timestamp ]]; then + echo 'failed to get minio_job_creation_timestamp' + exit 1 + fi if [[ $wrong_backup_job_fail_timestamp > $minio_job_creation_timestamp ]]; then echo "\"allowParallel: false\" doesn't work as expected. $minio_backup_name job was created before $wrong_creds_backup_name backup job failed" diff --git a/pkg/controller/pxcbackup/controller.go b/pkg/controller/pxcbackup/controller.go index fb354bfd70..c4ae96379d 100644 --- a/pkg/controller/pxcbackup/controller.go +++ b/pkg/controller/pxcbackup/controller.go @@ -166,7 +166,7 @@ func (r *ReconcilePerconaXtraDBClusterBackup) Reconcile(ctx context.Context, req } if !cluster.Spec.Backup.GetAllowParallel() { - isRunning, err := r.isOtherBackupRunning(ctx, cr) + isRunning, err := r.isOtherBackupRunning(ctx, cr, cluster) if err != nil { return rr, errors.Wrap(err, "failed to check if other backups running") } @@ -546,21 +546,21 @@ func setControllerReference(cr *api.PerconaXtraDBClusterBackup, obj metav1.Objec return nil } -func (r *ReconcilePerconaXtraDBClusterBackup) isOtherBackupRunning(ctx context.Context, cr *api.PerconaXtraDBClusterBackup) (bool, error) { +func (r *ReconcilePerconaXtraDBClusterBackup) isOtherBackupRunning(ctx context.Context, cr *api.PerconaXtraDBClusterBackup, cluster *api.PerconaXtraDBCluster) (bool, error) { list := new(batchv1.JobList) - lbls := map[string]string{ - "type": "xtrabackup", - "cluster": cr.Spec.PXCCluster, - } if err := r.client.List(ctx, list, &client.ListOptions{ - Namespace: cr.Namespace, - LabelSelector: labels.SelectorFromSet(lbls), + Namespace: cluster.Namespace, + LabelSelector: labels.SelectorFromSet(naming.LabelsBackup(cluster)), }); err != nil { return false, errors.Wrap(err, "list jobs") } for _, job := range list.Items { - if job.Labels["backup-name"] == cr.Name || job.Labels["backup-name"] == "" { + backupNameLabelKey := naming.LabelPerconaBackupName + if cluster.CompareVersionWith("1.16.0") < 0 { + backupNameLabelKey = "backup-name" + } + if job.Labels[backupNameLabelKey] == cr.Name { continue } if job.Status.Active == 0 && (jobSucceded(&job) || jobFailed(&job)) { diff --git a/pkg/naming/labels.go b/pkg/naming/labels.go index 56d0d08b5e..8fe38bd668 100644 --- a/pkg/naming/labels.go +++ b/pkg/naming/labels.go @@ -126,25 +126,34 @@ func LabelsScheduledBackup(cluster *api.PerconaXtraDBCluster, ancestor string) m return labels } +func LabelsBackup(cluster *api.PerconaXtraDBCluster) map[string]string { + if cluster.CompareVersionWith("1.16.0") < 0 { + return map[string]string{ + "type": "xtrabackup", + "cluster": cluster.Name, + } + } + return map[string]string{ + LabelPerconaBackupType: "xtrabackup", + LabelPerconaClusterName: cluster.Name, + } +} + func LabelsBackupJob(cr *api.PerconaXtraDBClusterBackup, cluster *api.PerconaXtraDBCluster, jobName string) map[string]string { labels := make(map[string]string) util.MergeMaps(labels, cluster.Spec.Backup.Storages[cr.Spec.StorageName].Labels) if cluster.CompareVersionWith("1.16.0") < 0 { - util.MergeMaps(labels, map[string]string{ - "type": "xtrabackup", - "cluster": cr.Spec.PXCCluster, + util.MergeMaps(labels, LabelsBackup(cluster), map[string]string{ "backup-name": cr.Name, "job-name": jobName, }) - } else { - util.MergeMaps(labels, LabelsCluster(cluster), map[string]string{ - LabelPerconaBackupType: "xtrabackup", - LabelPerconaClusterName: cr.Spec.PXCCluster, - LabelPerconaBackupName: cr.Name, - LabelPerconaBackupJobName: jobName, - }) + return labels } + util.MergeMaps(labels, LabelsCluster(cluster), LabelsBackup(cluster), map[string]string{ + LabelPerconaBackupName: cr.Name, + LabelPerconaBackupJobName: jobName, + }) return labels } From d5ad5c4061d62fd1184d6c389e7b96b3edd2e8c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ege=20G=C3=BCne=C5=9F?= Date: Mon, 2 Dec 2024 11:45:53 +0300 Subject: [PATCH 05/60] K8SPXC-1420: Add test case to check if proxy stopped during PiTR (#1877) * K8SPXC-1420: Add test case to check if proxy stopped during PiTR * some improvements * fix pitr-gap-errors * fix pitr * debug * fix pitr * Revert "debug" This reverts commit 7ca62f64aca4c4fa4bd9d66f9f564d88166507ad. --------- Co-authored-by: Viacheslav Sarzhan --- e2e-tests/functions | 46 +++++++++++++------ .../conf/restore-on-pitr-minio-gap-error.yaml | 2 +- .../conf/restore-on-pitr-minio-gap-force.yaml | 2 +- .../restore-on-pitr-minio-gap-no-pitr.yaml | 2 +- .../conf/restore-on-pitr-minio-invalid.yaml | 2 +- .../conf/restore-on-pitr-minio.yaml | 2 +- .../conf/restore-on-pitr-minio1.yaml | 2 +- e2e-tests/pitr-gap-errors/run | 27 ++++++----- .../pitr/conf/restore-on-pitr-minio-gtid.yaml | 2 +- .../pitr/conf/restore-on-pitr-minio-time.yaml | 2 +- .../pitr/conf/restore-on-pitr-minio.yaml | 2 +- e2e-tests/pitr/run | 12 +++-- 12 files changed, 65 insertions(+), 38 deletions(-) diff --git a/e2e-tests/functions b/e2e-tests/functions index 72bf29c79d..2f4499a5ba 100755 --- a/e2e-tests/functions +++ b/e2e-tests/functions @@ -177,7 +177,7 @@ wait_pod() { set +o xtrace kubectl_bin wait --for=condition=Ready pod/${pod} --timeout="${max_retry}s" ${ns:+-n $ns} || true retry=0 - echo -n $pod + echo -n "waiting for pod/$pod to become Ready" until kubectl_bin get ${ns:+-n $ns} pod/$pod -o jsonpath='{.status.conditions[?(@.type == "Ready")].status}' 2>/dev/null | grep -q -i 'True' \ && kubectl_bin get ${ns:+-n $ns} pod/$pod | grep -q "^$pod" \ && ! IS_FULL_CRASH=$(kubectl_bin logs --tail=1 ${ns:+-n $ns} pod/$pod ${container:+ -c $container} | grep LAST_LINE); do @@ -251,22 +251,24 @@ wait_backup() { wait_backup_restore() { local backup_name=$1 - local status=${2:-'Succeeded'} + local target_state=${2:-'Succeeded'} local wait_time=${3:-720} - desc "wait backup restore" set +o xtrace retry=0 - echo -n $backup_name - until kubectl_bin get pxc-restore/$backup_name -o jsonpath='{.status.state}' 2>/dev/null | grep $status; do - sleep 1 - echo -n . - let retry+=1 - if [ $retry -ge $wait_time ]; then - kubectl_bin logs ${OPERATOR_NS:+-n $OPERATOR_NS} $(get_operator_pod) - echo max retry count $retry reached. something went wrong with operator or kubernetes cluster + echo "waiting for pxc-restore/${backup_name} to reach ${target_state} state" + local current_state= + until [[ ${current_state} == ${target_state} ]]; do + current_state=$(kubectl_bin get pxc-restore $backup_name -o jsonpath='{.status.state}') + if [[ $retry -ge $wait_time || ${current_state} == 'error' ]]; then + kubectl_bin get pxc-restore ${backup_name} -o yaml + echo "Restore object pxc-restore/${backup_name} is in ${current_state} state." + echo something went wrong with operator or kubernetes cluster exit 1 fi + echo "$(date +%Y-%m-%dT%H:%M:%S) pxc-restore/${backup_name} state: ${current_state}" + sleep 1 + let retry+=1 done echo set_debug @@ -376,7 +378,7 @@ wait_for_generation() { wait_for_delete() { local res="$1" - echo -n "$res - " + echo -n "waiting for $res to be deleted" set +o xtrace retry=0 until (kubectl_bin get $res || :) 2>&1 | grep NotFound; do @@ -1655,8 +1657,24 @@ run_recovery_check_pitr() { | $sed -e "s//${gtid}/g" \ | $sed -e "s~minio-service.#namespace~minio-service.$namespace~" \ | kubectl_bin apply -f - - wait_backup_restore ${backup} - kubectl_bin logs job/restore-job-${backup}-${cluster} + + wait_backup_restore ${restore} "Stopping Cluster" + wait_for_delete pod/${cluster}-proxysql-0 + wait_for_delete pod/${cluster}-proxysql-1 + wait_for_delete pod/${cluster}-pxc-2 + wait_for_delete pod/${cluster}-pxc-1 + wait_for_delete pod/${cluster}-pxc-0 + + wait_backup_restore ${restore} "Point-in-time recovering" + wait_for_delete pod/${cluster}-proxysql-0 + wait_for_delete pod/${cluster}-proxysql-1 + wait_for_delete pod/${cluster}-pxc-2 + wait_for_delete pod/${cluster}-pxc-1 + + wait_pod ${cluster}-pxc-0 + + wait_backup_restore ${restore} + kubectl_bin logs job/restore-job-${restore}-${cluster} wait_for_running "$cluster-proxysql" 2 wait_for_running "$cluster-pxc" 3 wait_cluster_consistency "$cluster" 3 2 diff --git a/e2e-tests/pitr-gap-errors/conf/restore-on-pitr-minio-gap-error.yaml b/e2e-tests/pitr-gap-errors/conf/restore-on-pitr-minio-gap-error.yaml index 48149abe35..9816786a01 100755 --- a/e2e-tests/pitr-gap-errors/conf/restore-on-pitr-minio-gap-error.yaml +++ b/e2e-tests/pitr-gap-errors/conf/restore-on-pitr-minio-gap-error.yaml @@ -1,7 +1,7 @@ apiVersion: pxc.percona.com/v1 kind: PerconaXtraDBClusterRestore metadata: - name: on-pitr-minio-gap-error + name: restore-on-pitr-minio-gap-error spec: pxcCluster: pitr-gap-errors backupName: on-pitr-minio-gap diff --git a/e2e-tests/pitr-gap-errors/conf/restore-on-pitr-minio-gap-force.yaml b/e2e-tests/pitr-gap-errors/conf/restore-on-pitr-minio-gap-force.yaml index 77ef85701d..11eecbbc86 100755 --- a/e2e-tests/pitr-gap-errors/conf/restore-on-pitr-minio-gap-force.yaml +++ b/e2e-tests/pitr-gap-errors/conf/restore-on-pitr-minio-gap-force.yaml @@ -3,7 +3,7 @@ kind: PerconaXtraDBClusterRestore metadata: annotations: percona.com/unsafe-pitr: "true" - name: on-pitr-minio-gap-force + name: restore-on-pitr-minio-gap-force spec: pxcCluster: pitr-gap-errors backupName: on-pitr-minio-gap diff --git a/e2e-tests/pitr-gap-errors/conf/restore-on-pitr-minio-gap-no-pitr.yaml b/e2e-tests/pitr-gap-errors/conf/restore-on-pitr-minio-gap-no-pitr.yaml index 15c467b54f..a5f6b844a5 100755 --- a/e2e-tests/pitr-gap-errors/conf/restore-on-pitr-minio-gap-no-pitr.yaml +++ b/e2e-tests/pitr-gap-errors/conf/restore-on-pitr-minio-gap-no-pitr.yaml @@ -1,7 +1,7 @@ apiVersion: pxc.percona.com/v1 kind: PerconaXtraDBClusterRestore metadata: - name: on-pitr-minio-gap-no-pitr + name: restore-on-pitr-minio-gap-no-pitr spec: pxcCluster: pitr-gap-errors backupName: on-pitr-minio-gap diff --git a/e2e-tests/pitr-gap-errors/conf/restore-on-pitr-minio-invalid.yaml b/e2e-tests/pitr-gap-errors/conf/restore-on-pitr-minio-invalid.yaml index 40d66e91b0..1cb21560bb 100755 --- a/e2e-tests/pitr-gap-errors/conf/restore-on-pitr-minio-invalid.yaml +++ b/e2e-tests/pitr-gap-errors/conf/restore-on-pitr-minio-invalid.yaml @@ -3,7 +3,7 @@ kind: PerconaXtraDBClusterRestore metadata: annotations: percona.com/unsafe-pitr: "true" - name: on-pitr-minio-invalid + name: restore-on-pitr-minio-invalid spec: pxcCluster: pitr-gap-errors backupName: on-pitr-minio diff --git a/e2e-tests/pitr-gap-errors/conf/restore-on-pitr-minio.yaml b/e2e-tests/pitr-gap-errors/conf/restore-on-pitr-minio.yaml index 848fde4dbe..a3a0b68607 100755 --- a/e2e-tests/pitr-gap-errors/conf/restore-on-pitr-minio.yaml +++ b/e2e-tests/pitr-gap-errors/conf/restore-on-pitr-minio.yaml @@ -1,7 +1,7 @@ apiVersion: pxc.percona.com/v1 kind: PerconaXtraDBClusterRestore metadata: - name: on-pitr-minio + name: restore-on-pitr-minio spec: pxcCluster: pitr-gap-errors backupSource: diff --git a/e2e-tests/pitr-gap-errors/conf/restore-on-pitr-minio1.yaml b/e2e-tests/pitr-gap-errors/conf/restore-on-pitr-minio1.yaml index afd7b1eadb..ab376d2610 100755 --- a/e2e-tests/pitr-gap-errors/conf/restore-on-pitr-minio1.yaml +++ b/e2e-tests/pitr-gap-errors/conf/restore-on-pitr-minio1.yaml @@ -1,7 +1,7 @@ apiVersion: pxc.percona.com/v1 kind: PerconaXtraDBClusterRestore metadata: - name: on-pitr-minio1 + name: restore-on-pitr-minio1 spec: pxcCluster: pitr-gap-errors backupSource: diff --git a/e2e-tests/pitr-gap-errors/run b/e2e-tests/pitr-gap-errors/run index 7154c182b6..a49992789a 100755 --- a/e2e-tests/pitr-gap-errors/run +++ b/e2e-tests/pitr-gap-errors/run @@ -126,30 +126,33 @@ check_binlog_gap_restore() { kubectl patch pxc $cluster --type=merge -p '{"spec":{"backup":{"pitr":{"enabled":false}}}}' # try restore, check error if [ "$type" == "error" ]; then - kubectl_bin apply -f $test_dir/conf/restore-on-pitr-minio-gap-error.yaml - wait_backup_restore "on-pitr-minio-gap-error" "Failed" - local backup_error=$(kubectl_bin get pxc-restore on-pitr-minio-gap-error -ojsonpath='{.status.comments}' | grep -c "Backup doesn't guarantee consistent recovery with PITR. Annotate PerconaXtraDBClusterRestore with percona.com/unsafe-pitr to force it.") + local restore=restore-on-pitr-minio-gap-error + kubectl_bin apply -f $test_dir/conf/${restore}.yaml + wait_backup_restore "${restore}" "Failed" + local backup_error=$(kubectl_bin get pxc-restore ${restore} -ojsonpath='{.status.comments}' | grep -c "Backup doesn't guarantee consistent recovery with PITR. Annotate PerconaXtraDBClusterRestore with percona.com/unsafe-pitr to force it.") if [[ $backup_error -eq 0 ]]; then echo "ERROR: Backup is not tagged as PITR unready in the backup condition." kubectl_bin get pxc-backup on-pitr-minio-gap -oyaml exit 1 fi - kubectl_bin delete -f "$test_dir/conf/restore-on-pitr-minio-gap-error.yaml" + kubectl_bin delete -f "$test_dir/conf/${restore}.yaml" elif [ "$type" == "force" ]; then - kubectl_bin apply -f "$test_dir/conf/restore-on-pitr-minio-gap-force.yaml" - wait_backup_restore "on-pitr-minio-gap-force" "Succeeded" + local restore=restore-on-pitr-minio-gap-force + kubectl_bin apply -f "$test_dir/conf/${restore}.yaml" + wait_backup_restore "${restore}" "Succeeded" wait_for_running "$cluster-proxysql" 2 wait_for_running "$cluster-pxc" 3 wait_cluster_consistency "$cluster" 3 2 - kubectl_bin logs job/restore-job-on-pitr-minio-gap-force-${cluster} + kubectl_bin logs job/restore-job-${restore}-${cluster} compare_mysql_cmd "select-gap" "SELECT * from test.gap;" "-h $cluster-pxc-0.$cluster-pxc -uroot -proot_password" compare_mysql_cmd "select-gap" "SELECT * from test.gap;" "-h $cluster-pxc-1.$cluster-pxc -uroot -proot_password" compare_mysql_cmd "select-gap" "SELECT * from test.gap;" "-h $cluster-pxc-2.$cluster-pxc -uroot -proot_password" - kubectl_bin delete -f "$test_dir/conf/restore-on-pitr-minio-gap-force.yaml" + kubectl_bin delete -f "$test_dir/conf/${restore}.yaml" elif [ "$type" == "no-pitr" ]; then - kubectl_bin apply -f $test_dir/conf/restore-on-pitr-minio-gap-no-pitr.yaml - wait_backup_restore "on-pitr-minio-gap-no-pitr" "Succeeded" - local backup_error=$(kubectl_bin get pxc-restore on-pitr-minio-gap-no-pitr -ojsonpath='{.status.comments}' | grep -c "Backup doesn't guarantee consistent recovery with PITR. Annotate PerconaXtraDBClusterRestore with percona.com/unsafe-pitr to force it.") + local restore=restore-on-pitr-minio-gap-no-pitr + kubectl_bin apply -f $test_dir/conf/${restore}.yaml + wait_backup_restore "${restore}" "Succeeded" + local backup_error=$(kubectl_bin get pxc-restore ${restore} -ojsonpath='{.status.comments}' | grep -c "Backup doesn't guarantee consistent recovery with PITR. Annotate PerconaXtraDBClusterRestore with percona.com/unsafe-pitr to force it.") if [[ $backup_error -ne 0 ]]; then echo "ERROR: Restore without PiTR is failed because backups is tagged PiTR unready in the backup condition." kubectl_bin get pxc-backup on-pitr-minio-gap -oyaml @@ -230,7 +233,7 @@ invalid_binlog_test() { | yq eval 'del(.spec.backupSource)' \ | yq eval ".spec.backupName=\"$backup\"" \ | kubectl_bin apply -f - - wait_backup_restore ${backup} + wait_backup_restore restore-${backup} wait_for_running "$cluster-proxysql" 2 wait_for_running "$cluster-pxc" 3 wait_cluster_consistency "$cluster" 3 2 diff --git a/e2e-tests/pitr/conf/restore-on-pitr-minio-gtid.yaml b/e2e-tests/pitr/conf/restore-on-pitr-minio-gtid.yaml index f04a6f850b..6160779906 100755 --- a/e2e-tests/pitr/conf/restore-on-pitr-minio-gtid.yaml +++ b/e2e-tests/pitr/conf/restore-on-pitr-minio-gtid.yaml @@ -1,7 +1,7 @@ apiVersion: pxc.percona.com/v1 kind: PerconaXtraDBClusterRestore metadata: - name: on-pitr-minio + name: restore-on-pitr-minio-gtid spec: pxcCluster: pitr backupName: on-pitr-minio diff --git a/e2e-tests/pitr/conf/restore-on-pitr-minio-time.yaml b/e2e-tests/pitr/conf/restore-on-pitr-minio-time.yaml index 54768916c9..6177a2f53b 100755 --- a/e2e-tests/pitr/conf/restore-on-pitr-minio-time.yaml +++ b/e2e-tests/pitr/conf/restore-on-pitr-minio-time.yaml @@ -1,7 +1,7 @@ apiVersion: pxc.percona.com/v1 kind: PerconaXtraDBClusterRestore metadata: - name: on-pitr-minio + name: restore-on-pitr-minio-time spec: pxcCluster: pitr backupName: on-pitr-minio diff --git a/e2e-tests/pitr/conf/restore-on-pitr-minio.yaml b/e2e-tests/pitr/conf/restore-on-pitr-minio.yaml index 0bd799bf5f..70dbcdbe95 100755 --- a/e2e-tests/pitr/conf/restore-on-pitr-minio.yaml +++ b/e2e-tests/pitr/conf/restore-on-pitr-minio.yaml @@ -1,7 +1,7 @@ apiVersion: pxc.percona.com/v1 kind: PerconaXtraDBClusterRestore metadata: - name: on-pitr-minio + name: restore-on-pitr-minio spec: pxcCluster: pitr backupSource: diff --git a/e2e-tests/pitr/run b/e2e-tests/pitr/run index af124cd7cd..0883e374fb 100755 --- a/e2e-tests/pitr/run +++ b/e2e-tests/pitr/run @@ -116,15 +116,21 @@ main() { timeout=60 binlogs_exist=0 - for i in $(seq 2 3); do + for i in $(seq 1 5); do + echo "Checking if binlogs exist in bucket (attempt $i)..." binlogs_exist=$( kubectl_bin run -n "${NAMESPACE}" -i --rm aws-cli --image=perconalab/awscli --restart=Never -- \ /usr/bin/env AWS_ACCESS_KEY_ID=some-access-key AWS_SECRET_ACCESS_KEY=some-secret-key AWS_DEFAULT_REGION=us-east-1 \ /usr/bin/aws --endpoint-url https://minio-service:9000 --no-verify-ssl s3 ls operator-testing/binlogs/ | grep -c "binlog" | cat exit "${PIPESTATUS[0]}" ) - if [ "$binlogs_exist" -eq 0 ]; then - sleep "$((timeout * i))" + if [ "$binlogs_exist" -gt 0 ]; then + echo "${binlogs_exist} binlogs found in bucket" + break + else + d=$((timeout * i)) + echo "No binlogs found in bucket. Sleeping for ${d} seconds..." + sleep ${d} fi done From e85035b0c4283194f9b4bbe456a875952fe586d5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Dec 2024 16:03:29 +0200 Subject: [PATCH 06/60] CLOUD-727: Bump k8s.io/client-go from 0.31.2 to 0.31.3 (#1885) Bumps [k8s.io/client-go](https://github.com/kubernetes/client-go) from 0.31.2 to 0.31.3. - [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md) - [Commits](https://github.com/kubernetes/client-go/compare/v0.31.2...v0.31.3) --- updated-dependencies: - dependency-name: k8s.io/client-go dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Viacheslav Sarzhan --- go.mod | 6 +++--- go.sum | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index 25ad24ca9c..7a595b1027 100644 --- a/go.mod +++ b/go.mod @@ -26,9 +26,9 @@ require ( github.com/robfig/cron/v3 v3.0.1 go.uber.org/zap v1.27.0 golang.org/x/sync v0.9.0 - k8s.io/api v0.31.2 - k8s.io/apimachinery v0.31.2 - k8s.io/client-go v0.31.2 + k8s.io/api v0.31.3 + k8s.io/apimachinery v0.31.3 + k8s.io/client-go v0.31.3 k8s.io/klog/v2 v2.130.1 sigs.k8s.io/controller-runtime v0.19.1 ) diff --git a/go.sum b/go.sum index 5d1f99374b..c0cbe7b59d 100644 --- a/go.sum +++ b/go.sum @@ -258,14 +258,14 @@ gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -k8s.io/api v0.31.2 h1:3wLBbL5Uom/8Zy98GRPXpJ254nEFpl+hwndmk9RwmL0= -k8s.io/api v0.31.2/go.mod h1:bWmGvrGPssSK1ljmLzd3pwCQ9MgoTsRCuK35u6SygUk= +k8s.io/api v0.31.3 h1:umzm5o8lFbdN/hIXbrK9oRpOproJO62CV1zqxXrLgk8= +k8s.io/api v0.31.3/go.mod h1:UJrkIp9pnMOI9K2nlL6vwpxRzzEX5sWgn8kGQe92kCE= k8s.io/apiextensions-apiserver v0.31.1 h1:L+hwULvXx+nvTYX/MKM3kKMZyei+UiSXQWciX/N6E40= k8s.io/apiextensions-apiserver v0.31.1/go.mod h1:tWMPR3sgW+jsl2xm9v7lAyRF1rYEK71i9G5dRtkknoQ= -k8s.io/apimachinery v0.31.2 h1:i4vUt2hPK56W6mlT7Ry+AO8eEsyxMD1U44NR22CLTYw= -k8s.io/apimachinery v0.31.2/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= -k8s.io/client-go v0.31.2 h1:Y2F4dxU5d3AQj+ybwSMqQnpZH9F30//1ObxOKlTI9yc= -k8s.io/client-go v0.31.2/go.mod h1:NPa74jSVR/+eez2dFsEIHNa+3o09vtNaWwWwb1qSxSs= +k8s.io/apimachinery v0.31.3 h1:6l0WhcYgasZ/wk9ktLq5vLaoXJJr5ts6lkaQzgeYPq4= +k8s.io/apimachinery v0.31.3/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= +k8s.io/client-go v0.31.3 h1:CAlZuM+PH2cm+86LOBemaJI/lQ5linJ6UFxKX/SoG+4= +k8s.io/client-go v0.31.3/go.mod h1:2CgjPUTpv3fE5dNygAr2NcM8nhHzXvxB8KL5gYc3kJs= k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= k8s.io/kube-openapi v0.0.0-20240903163716-9e1beecbcb38 h1:1dWzkmJrrprYvjGwh9kEUxmcUV/CtNU8QM7h1FLWQOo= From aca02b923a81f3852bc411aa8905e8a117043deb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Dec 2024 16:04:39 +0200 Subject: [PATCH 07/60] CLOUD-727: Bump aquasecurity/trivy-action from 0.28.0 to 0.29.0 (#1892) Bumps [aquasecurity/trivy-action](https://github.com/aquasecurity/trivy-action) from 0.28.0 to 0.29.0. - [Release notes](https://github.com/aquasecurity/trivy-action/releases) - [Commits](https://github.com/aquasecurity/trivy-action/compare/0.28.0...0.29.0) --- updated-dependencies: - dependency-name: aquasecurity/trivy-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Viacheslav Sarzhan --- .github/workflows/scan.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/scan.yml b/.github/workflows/scan.yml index d179f5fffd..d045319f8c 100644 --- a/.github/workflows/scan.yml +++ b/.github/workflows/scan.yml @@ -31,7 +31,7 @@ jobs: ./e2e-tests/build - name: Run Trivy vulnerability scanner image (linux/arm64) - uses: aquasecurity/trivy-action@0.28.0 + uses: aquasecurity/trivy-action@0.29.0 with: image-ref: '${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.sha }}-arm64' format: 'table' @@ -50,7 +50,7 @@ jobs: ./e2e-tests/build - name: Run Trivy vulnerability scanner image (linux/amd64) - uses: aquasecurity/trivy-action@0.28.0 + uses: aquasecurity/trivy-action@0.29.0 with: image-ref: '${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.sha }}-amd64' format: 'table' From dd0b48cf13e8836aadccc49e34242fa892de6cd0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Dec 2024 16:05:49 +0200 Subject: [PATCH 08/60] CLOUD-727: Bump github.com/cert-manager/cert-manager (#1874) Bumps [github.com/cert-manager/cert-manager](https://github.com/cert-manager/cert-manager) from 1.16.1 to 1.16.2. - [Release notes](https://github.com/cert-manager/cert-manager/releases) - [Changelog](https://github.com/cert-manager/cert-manager/blob/master/RELEASE.md) - [Commits](https://github.com/cert-manager/cert-manager/compare/v1.16.1...v1.16.2) --- updated-dependencies: - dependency-name: github.com/cert-manager/cert-manager dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 7a595b1027..df484ffec8 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ require ( github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.5.0 github.com/Percona-Lab/percona-version-service/api v0.0.0-20201216104127-a39f2dded3cc github.com/caarlos0/env v3.5.0+incompatible - github.com/cert-manager/cert-manager v1.16.1 + github.com/cert-manager/cert-manager v1.16.2 github.com/flosch/pongo2/v6 v6.0.0 github.com/go-ini/ini v1.67.0 github.com/go-logr/logr v1.4.2 diff --git a/go.sum b/go.sum index c0cbe7b59d..52bbae2dc7 100644 --- a/go.sum +++ b/go.sum @@ -22,8 +22,8 @@ github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/caarlos0/env v3.5.0+incompatible h1:Yy0UN8o9Wtr/jGHZDpCBLpNrzcFLLM2yixi/rBrKyJs= github.com/caarlos0/env v3.5.0+incompatible/go.mod h1:tdCsowwCzMLdkqRYDlHpZCp2UooDD3MspDBjZ2AD02Y= -github.com/cert-manager/cert-manager v1.16.1 h1:1ceFMqTtwiqY2vyfaRT85CNiVmK7pJjt3GebYCx9awY= -github.com/cert-manager/cert-manager v1.16.1/go.mod h1:MfLVTL45hFZsqmaT1O0+b2ugaNNQQZttSFV9hASHUb0= +github.com/cert-manager/cert-manager v1.16.2 h1:c9UU2E+8XWGruyvC/mdpc1wuLddtgmNr8foKdP7a8Jg= +github.com/cert-manager/cert-manager v1.16.2/go.mod h1:MfLVTL45hFZsqmaT1O0+b2ugaNNQQZttSFV9hASHUb0= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= From b6d7fdd68eebc7853b29ef90f8ae3747baaaf0e0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Dec 2024 18:23:28 +0200 Subject: [PATCH 09/60] CLOUD-727: Bump sigs.k8s.io/controller-runtime from 0.19.1 to 0.19.2 (#1883) Bumps [sigs.k8s.io/controller-runtime](https://github.com/kubernetes-sigs/controller-runtime) from 0.19.1 to 0.19.2. - [Release notes](https://github.com/kubernetes-sigs/controller-runtime/releases) - [Changelog](https://github.com/kubernetes-sigs/controller-runtime/blob/main/RELEASE.md) - [Commits](https://github.com/kubernetes-sigs/controller-runtime/compare/v0.19.1...v0.19.2) --- updated-dependencies: - dependency-name: sigs.k8s.io/controller-runtime dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index df484ffec8..04e4d7084e 100644 --- a/go.mod +++ b/go.mod @@ -30,7 +30,7 @@ require ( k8s.io/apimachinery v0.31.3 k8s.io/client-go v0.31.3 k8s.io/klog/v2 v2.130.1 - sigs.k8s.io/controller-runtime v0.19.1 + sigs.k8s.io/controller-runtime v0.19.2 ) require ( diff --git a/go.sum b/go.sum index 52bbae2dc7..e789a7053c 100644 --- a/go.sum +++ b/go.sum @@ -272,8 +272,8 @@ k8s.io/kube-openapi v0.0.0-20240903163716-9e1beecbcb38 h1:1dWzkmJrrprYvjGwh9kEUx k8s.io/kube-openapi v0.0.0-20240903163716-9e1beecbcb38/go.mod h1:coRQXBK9NxO98XUv3ZD6AK3xzHCxV6+b7lrquKwaKzA= k8s.io/utils v0.0.0-20240921022957-49e7df575cb6 h1:MDF6h2H/h4tbzmtIKTuctcwZmY0tY9mD9fNT47QO6HI= k8s.io/utils v0.0.0-20240921022957-49e7df575cb6/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= -sigs.k8s.io/controller-runtime v0.19.1 h1:Son+Q40+Be3QWb+niBXAg2vFiYWolDjjRfO8hn/cxOk= -sigs.k8s.io/controller-runtime v0.19.1/go.mod h1:iRmWllt8IlaLjvTTDLhRBXIEtkCK6hwVBJJsYS9Ajf4= +sigs.k8s.io/controller-runtime v0.19.2 h1:3sPrF58XQEPzbE8T81TN6selQIMGbtYwuaJ6eDssDF8= +sigs.k8s.io/controller-runtime v0.19.2/go.mod h1:iRmWllt8IlaLjvTTDLhRBXIEtkCK6hwVBJJsYS9Ajf4= sigs.k8s.io/gateway-api v1.1.0 h1:DsLDXCi6jR+Xz8/xd0Z1PYl2Pn0TyaFMOPPZIj4inDM= sigs.k8s.io/gateway-api v1.1.0/go.mod h1:ZH4lHrL2sDi0FHZ9jjneb8kKnGzFWyrTya35sWUTrRs= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= From 9b697160c541e4e45d245be61bbb8e160859754d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Dec 2024 18:25:24 +0200 Subject: [PATCH 10/60] CLOUD-727: Bump github.com/onsi/gomega from 1.35.1 to 1.36.0 (#1884) Bumps [github.com/onsi/gomega](https://github.com/onsi/gomega) from 1.35.1 to 1.36.0. - [Release notes](https://github.com/onsi/gomega/releases) - [Changelog](https://github.com/onsi/gomega/blob/master/CHANGELOG.md) - [Commits](https://github.com/onsi/gomega/compare/v1.35.1...v1.36.0) --- updated-dependencies: - dependency-name: github.com/onsi/gomega dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 04e4d7084e..a8114597a5 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ require ( github.com/hashicorp/go-version v1.7.0 github.com/minio/minio-go/v7 v7.0.80 github.com/onsi/ginkgo/v2 v2.22.0 - github.com/onsi/gomega v1.35.1 + github.com/onsi/gomega v1.36.0 github.com/pkg/errors v0.9.1 github.com/robfig/cron/v3 v3.0.1 go.uber.org/zap v1.27.0 diff --git a/go.sum b/go.sum index e789a7053c..5b1e4b0665 100644 --- a/go.sum +++ b/go.sum @@ -145,8 +145,8 @@ github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/onsi/ginkgo/v2 v2.22.0 h1:Yed107/8DjTr0lKCNt7Dn8yQ6ybuDRQoMGrNFKzMfHg= github.com/onsi/ginkgo/v2 v2.22.0/go.mod h1:7Du3c42kxCUegi0IImZ1wUQzMBVecgIHjR1C+NkhLQo= -github.com/onsi/gomega v1.35.1 h1:Cwbd75ZBPxFSuZ6T+rN/WCb/gOc6YgFBXLlZLhC7Ds4= -github.com/onsi/gomega v1.35.1/go.mod h1:PvZbdDc8J6XJEpDK4HCuRBm8a6Fzp9/DmhC9C7yFlog= +github.com/onsi/gomega v1.36.0 h1:Pb12RlruUtj4XUuPUqeEWc6j5DkVVVA49Uf6YLfC95Y= +github.com/onsi/gomega v1.36.0/go.mod h1:PvZbdDc8J6XJEpDK4HCuRBm8a6Fzp9/DmhC9C7yFlog= github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ= From 4c01aab91633a8baf3780117b7d54b411572693e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 3 Dec 2024 12:04:28 +0200 Subject: [PATCH 11/60] CLOUD-727: Bump github.com/minio/minio-go/v7 from 7.0.80 to 7.0.81 (#1887) Bumps [github.com/minio/minio-go/v7](https://github.com/minio/minio-go) from 7.0.80 to 7.0.81. - [Release notes](https://github.com/minio/minio-go/releases) - [Commits](https://github.com/minio/minio-go/compare/v7.0.80...v7.0.81) --- updated-dependencies: - dependency-name: github.com/minio/minio-go/v7 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index a8114597a5..51f6acf08f 100644 --- a/go.mod +++ b/go.mod @@ -19,7 +19,7 @@ require ( github.com/go-sql-driver/mysql v1.8.1 github.com/google/go-cmp v0.6.0 github.com/hashicorp/go-version v1.7.0 - github.com/minio/minio-go/v7 v7.0.80 + github.com/minio/minio-go/v7 v7.0.81 github.com/onsi/ginkgo/v2 v2.22.0 github.com/onsi/gomega v1.36.0 github.com/pkg/errors v0.9.1 diff --git a/go.sum b/go.sum index 5b1e4b0665..7f3879ad25 100644 --- a/go.sum +++ b/go.sum @@ -126,8 +126,8 @@ github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0 github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/minio/md5-simd v1.1.2 h1:Gdi1DZK69+ZVMoNHRXJyNcxrMA4dSxoYHZSQbirFg34= github.com/minio/md5-simd v1.1.2/go.mod h1:MzdKDxYpY2BT9XQFocsiZf/NKVtR7nkE4RoEpN+20RM= -github.com/minio/minio-go/v7 v7.0.80 h1:2mdUHXEykRdY/BigLt3Iuu1otL0JTogT0Nmltg0wujk= -github.com/minio/minio-go/v7 v7.0.80/go.mod h1:84gmIilaX4zcvAWWzJ5Z1WI5axN+hAbM5w25xf8xvC0= +github.com/minio/minio-go/v7 v7.0.81 h1:SzhMN0TQ6T/xSBu6Nvw3M5M8voM+Ht8RH3hE8S7zxaA= +github.com/minio/minio-go/v7 v7.0.81/go.mod h1:84gmIilaX4zcvAWWzJ5Z1WI5axN+hAbM5w25xf8xvC0= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/moby/spdystream v0.4.0 h1:Vy79D6mHeJJjiPdFEL2yku1kl0chZpJfZcPpb16BRl8= From 087eda0180c270c80a66f3a7e33ef353f9cc59dc Mon Sep 17 00:00:00 2001 From: Eleonora Zinchenko Date: Tue, 3 Dec 2024 20:55:39 +0200 Subject: [PATCH 12/60] K8SPXC-1446: use kubectl in wait_for_delete function (#1893) --- e2e-tests/functions | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/e2e-tests/functions b/e2e-tests/functions index 2f4499a5ba..b4ed9afee7 100755 --- a/e2e-tests/functions +++ b/e2e-tests/functions @@ -381,7 +381,7 @@ wait_for_delete() { echo -n "waiting for $res to be deleted" set +o xtrace retry=0 - until (kubectl_bin get $res || :) 2>&1 | grep NotFound; do + until (kubectl get $res || :) 2>&1 | grep NotFound; do sleep 1 echo -n . let retry+=1 From a7a036d04ee345b013e9136977d7a5f4cf958f32 Mon Sep 17 00:00:00 2001 From: Eleonora Zinchenko Date: Wed, 4 Dec 2024 20:12:20 +0200 Subject: [PATCH 13/60] K8SPXC-1456: add tests for initContainer security-context (#1894) * K8SPXC-1456: add security context check * Fix context before init update * Remove extra Context * revert change for pitr * changes for openshift --- ...store-job-restore-pvc-sec-context-k127.yml | 92 ------- ...estore-job-restore-s3-sec-context-k127.yml | 101 ------- ...lset_sec-context-proxysql-changes-k127.yml | 251 ----------------- ...fulset_sec-context-proxysql-changes-oc.yml | 7 + ...atefulset_sec-context-proxysql-changes.yml | 19 +- .../statefulset_sec-context-proxysql-k127.yml | 238 ---------------- .../statefulset_sec-context-proxysql-oc.yml | 3 + .../statefulset_sec-context-proxysql.yml | 13 +- ...atefulset_sec-context-pxc-changes-k127.yml | 256 ------------------ .../statefulset_sec-context-pxc-changes.yml | 5 + .../statefulset_sec-context-pxc-k127.yml | 243 ----------------- .../compare/statefulset_sec-context-pxc.yml | 3 + .../conf/sec-context-changes.yml | 5 + 13 files changed, 52 insertions(+), 1184 deletions(-) delete mode 100644 e2e-tests/security-context/compare/job.batch_restore-job-restore-pvc-sec-context-k127.yml delete mode 100644 e2e-tests/security-context/compare/job.batch_restore-job-restore-s3-sec-context-k127.yml delete mode 100644 e2e-tests/security-context/compare/statefulset_sec-context-proxysql-changes-k127.yml delete mode 100644 e2e-tests/security-context/compare/statefulset_sec-context-proxysql-k127.yml delete mode 100644 e2e-tests/security-context/compare/statefulset_sec-context-pxc-changes-k127.yml delete mode 100644 e2e-tests/security-context/compare/statefulset_sec-context-pxc-k127.yml diff --git a/e2e-tests/security-context/compare/job.batch_restore-job-restore-pvc-sec-context-k127.yml b/e2e-tests/security-context/compare/job.batch_restore-job-restore-pvc-sec-context-k127.yml deleted file mode 100644 index d4f6962390..0000000000 --- a/e2e-tests/security-context/compare/job.batch_restore-job-restore-pvc-sec-context-k127.yml +++ /dev/null @@ -1,92 +0,0 @@ -apiVersion: batch/v1 -kind: Job -metadata: - generation: 1 - labels: - app.kubernetes.io/instance: sec-context - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - percona.com/restore-job-name: restore-job-restore-pvc-sec-context - name: restore-job-restore-pvc-sec-context - ownerReferences: - - controller: true - kind: PerconaXtraDBClusterRestore - name: restore-pvc -spec: - backoffLimit: 4 - completionMode: NonIndexed - completions: 1 - parallelism: 1 - selector: - matchLabels: {} - suspend: false - template: - metadata: - annotations: - openshift.io/scc: privileged - labels: - app.kubernetes.io/instance: sec-context - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - percona.com/restore-job-name: restore-job-restore-pvc-sec-context - spec: - containers: - - command: - - recovery-pvc-joiner.sh - env: - - name: RESTORE_SRC_SERVICE - value: restore-src-restore-pvc-sec-context - - name: XB_USE_MEMORY - value: 100MB - imagePullPolicy: Always - name: xtrabackup - resources: {} - securityContext: - privileged: true - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /datadir - name: datadir - - mountPath: /etc/mysql/vault-keyring-secret - name: vault-keyring-secret - - mountPath: /etc/mysql/ssl - name: ssl - - mountPath: /etc/mysql/ssl-internal - name: ssl-internal - dnsPolicy: ClusterFirst - restartPolicy: Never - schedulerName: default-scheduler - securityContext: - fsGroup: 1001 - runAsUser: 1001 - supplementalGroups: - - 1001 - serviceAccount: percona-xtradb-cluster-operator-workload - serviceAccountName: percona-xtradb-cluster-operator-workload - terminationGracePeriodSeconds: 30 - topologySpreadConstraints: - - maxSkew: 1 - topologyKey: kubernetes.io/hostname - whenUnsatisfiable: ScheduleAnyway - volumes: - - name: datadir - persistentVolumeClaim: - claimName: datadir-sec-context-pxc-0 - - name: vault-keyring-secret - secret: - defaultMode: 420 - optional: true - secretName: sec-context-vault - - name: ssl-internal - secret: - defaultMode: 420 - optional: true - secretName: some-name-ssl-internal - - name: ssl - secret: - defaultMode: 420 - optional: false - secretName: some-name-ssl diff --git a/e2e-tests/security-context/compare/job.batch_restore-job-restore-s3-sec-context-k127.yml b/e2e-tests/security-context/compare/job.batch_restore-job-restore-s3-sec-context-k127.yml deleted file mode 100644 index 521e2e5c0c..0000000000 --- a/e2e-tests/security-context/compare/job.batch_restore-job-restore-s3-sec-context-k127.yml +++ /dev/null @@ -1,101 +0,0 @@ -apiVersion: batch/v1 -kind: Job -metadata: - generation: 1 - labels: - app.kubernetes.io/instance: sec-context - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - percona.com/restore-job-name: restore-job-restore-s3-sec-context - name: restore-job-restore-s3-sec-context - ownerReferences: - - controller: true - kind: PerconaXtraDBClusterRestore - name: restore-s3 -spec: - backoffLimit: 4 - completionMode: NonIndexed - completions: 1 - parallelism: 1 - selector: - matchLabels: {} - suspend: false - template: - metadata: - annotations: - openshift.io/scc: privileged - labels: - app.kubernetes.io/instance: sec-context - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - percona.com/restore-job-name: restore-job-restore-s3-sec-context - spec: - containers: - - command: - - recovery-cloud.sh - env: - - name: PXC_SERVICE - value: sec-context-pxc - - name: PXC_USER - value: xtrabackup - - name: PXC_PASS - valueFrom: - secretKeyRef: - key: xtrabackup - name: my-cluster-secrets - - name: VERIFY_TLS - value: "true" - - name: ENDPOINT - value: http://minio-service.namespace:9000/ - - name: DEFAULT_REGION - value: us-east-1 - - name: ACCESS_KEY_ID - valueFrom: - secretKeyRef: - key: AWS_ACCESS_KEY_ID - name: minio-secret - - name: SECRET_ACCESS_KEY - valueFrom: - secretKeyRef: - key: AWS_SECRET_ACCESS_KEY - name: minio-secret - - name: XB_USE_MEMORY - value: 100MB - imagePullPolicy: Always - name: xtrabackup - resources: {} - securityContext: - privileged: true - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /datadir - name: datadir - - mountPath: /etc/mysql/vault-keyring-secret - name: vault-keyring-secret - dnsPolicy: ClusterFirst - restartPolicy: Never - schedulerName: default-scheduler - securityContext: - fsGroup: 1001 - runAsUser: 1001 - supplementalGroups: - - 1001 - serviceAccount: percona-xtradb-cluster-operator-workload - serviceAccountName: percona-xtradb-cluster-operator-workload - terminationGracePeriodSeconds: 30 - topologySpreadConstraints: - - maxSkew: 1 - topologyKey: kubernetes.io/hostname - whenUnsatisfiable: ScheduleAnyway - volumes: - - name: datadir - persistentVolumeClaim: - claimName: datadir-sec-context-pxc-0 - - name: vault-keyring-secret - secret: - defaultMode: 420 - optional: true - secretName: sec-context-vault diff --git a/e2e-tests/security-context/compare/statefulset_sec-context-proxysql-changes-k127.yml b/e2e-tests/security-context/compare/statefulset_sec-context-proxysql-changes-k127.yml deleted file mode 100644 index 0d9ae745da..0000000000 --- a/e2e-tests/security-context/compare/statefulset_sec-context-proxysql-changes-k127.yml +++ /dev/null @@ -1,251 +0,0 @@ -apiVersion: apps/v1 -kind: StatefulSet -metadata: - generation: 2 - name: sec-context-proxysql - ownerReferences: - - controller: true - kind: PerconaXtraDBCluster - name: sec-context -spec: - persistentVolumeClaimRetentionPolicy: - whenDeleted: Retain - whenScaled: Retain - podManagementPolicy: OrderedReady - replicas: 2 - revisionHistoryLimit: 10 - selector: - matchLabels: - app.kubernetes.io/component: proxysql - app.kubernetes.io/instance: sec-context - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - serviceName: sec-context-proxysql-unready - template: - metadata: - labels: - app.kubernetes.io/component: proxysql - app.kubernetes.io/instance: sec-context - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - spec: - containers: - - args: - - proxysql - - -f - - -c - - /etc/proxysql/proxysql.cnf - - --reload - command: - - /opt/percona/proxysql-entrypoint.sh - env: - - name: PXC_SERVICE - value: sec-context-pxc - - name: OPERATOR_PASSWORD - valueFrom: - secretKeyRef: - key: operator - name: internal-sec-context - - name: PROXY_ADMIN_USER - value: proxyadmin - - name: PROXY_ADMIN_PASSWORD - valueFrom: - secretKeyRef: - key: proxyadmin - name: internal-sec-context - - name: MONITOR_PASSWORD - valueFrom: - secretKeyRef: - key: monitor - name: internal-sec-context - envFrom: - - secretRef: - name: sec-context-env-vars-proxysql - optional: true - imagePullPolicy: Always - name: proxysql - ports: - - containerPort: 3306 - name: mysql - protocol: TCP - - containerPort: 6032 - name: proxyadm - protocol: TCP - resources: - requests: - cpu: 100m - memory: 100M - securityContext: - privileged: true - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/proxysql - name: proxydata - - mountPath: /etc/proxysql/ssl - name: ssl - - mountPath: /etc/proxysql/ssl-internal - name: ssl-internal - - mountPath: /opt/percona - name: bin - - args: - - /opt/percona/peer-list - - -on-change=/opt/percona/proxysql_add_pxc_nodes.sh - - -service=$(PXC_SERVICE) - env: - - name: PXC_SERVICE - value: sec-context-pxc - - name: OPERATOR_PASSWORD - valueFrom: - secretKeyRef: - key: operator - name: internal-sec-context - - name: PROXY_ADMIN_USER - value: proxyadmin - - name: PROXY_ADMIN_PASSWORD - valueFrom: - secretKeyRef: - key: proxyadmin - name: internal-sec-context - - name: MONITOR_PASSWORD - valueFrom: - secretKeyRef: - key: monitor - name: internal-sec-context - envFrom: - - secretRef: - name: sec-context-env-vars-proxysql - optional: true - imagePullPolicy: Always - name: pxc-monit - resources: {} - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /opt/percona - name: bin - - args: - - /opt/percona/peer-list - - -on-change=/opt/percona/proxysql_add_proxysql_nodes.sh - - -service=$(PROXYSQL_SERVICE) - env: - - name: PROXYSQL_SERVICE - value: sec-context-proxysql-unready - - name: OPERATOR_PASSWORD - valueFrom: - secretKeyRef: - key: operator - name: internal-sec-context - - name: PROXY_ADMIN_USER - value: proxyadmin - - name: PROXY_ADMIN_PASSWORD - valueFrom: - secretKeyRef: - key: proxyadmin - name: internal-sec-context - - name: MONITOR_PASSWORD - valueFrom: - secretKeyRef: - key: monitor - name: internal-sec-context - envFrom: - - secretRef: - name: sec-context-env-vars-proxysql - optional: true - imagePullPolicy: Always - name: proxysql-monit - resources: {} - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /opt/percona - name: bin - dnsPolicy: ClusterFirst - initContainers: - - command: - - /pxc-init-entrypoint.sh - imagePullPolicy: Always - name: pxc-init - resources: - limits: - cpu: 50m - memory: 50M - securityContext: - privileged: true - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/mysql - name: bin - - command: - - /proxysql-init-entrypoint.sh - imagePullPolicy: Always - name: proxysql-init - resources: - limits: - cpu: 50m - memory: 50M - securityContext: - privileged: true - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /opt/percona - name: bin - restartPolicy: Always - schedulerName: default-scheduler - securityContext: - runAsGroup: 1001 - runAsUser: 1001 - supplementalGroups: - - 1001 - serviceAccount: percona-xtradb-cluster-operator-workload - serviceAccountName: percona-xtradb-cluster-operator-workload - terminationGracePeriodSeconds: 30 - topologySpreadConstraints: - - labelSelector: - matchLabels: - app.kubernetes.io/component: proxysql - app.kubernetes.io/instance: sec-context - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - maxSkew: 1 - topologyKey: kubernetes.io/hostname - whenUnsatisfiable: ScheduleAnyway - volumes: - - name: ssl-internal - secret: - defaultMode: 420 - optional: true - secretName: some-name-ssl-internal - - name: ssl - secret: - defaultMode: 420 - optional: false - secretName: some-name-ssl - - emptyDir: {} - name: bin - updateStrategy: - rollingUpdate: - partition: 0 - type: RollingUpdate - volumeClaimTemplates: - - metadata: - labels: - app.kubernetes.io/component: proxysql - app.kubernetes.io/instance: sec-context - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - name: proxydata - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 6Gi - status: - phase: Pending diff --git a/e2e-tests/security-context/compare/statefulset_sec-context-proxysql-changes-oc.yml b/e2e-tests/security-context/compare/statefulset_sec-context-proxysql-changes-oc.yml index d4f5c84c4c..cee9bb7351 100644 --- a/e2e-tests/security-context/compare/statefulset_sec-context-proxysql-changes-oc.yml +++ b/e2e-tests/security-context/compare/statefulset_sec-context-proxysql-changes-oc.yml @@ -8,6 +8,9 @@ metadata: kind: PerconaXtraDBCluster name: sec-context spec: + persistentVolumeClaimRetentionPolicy: + whenDeleted: Retain + whenScaled: Retain podManagementPolicy: OrderedReady replicas: 2 revisionHistoryLimit: 10 @@ -171,6 +174,8 @@ spec: memory: 50M securityContext: privileged: true + runAsGroup: 1001 + runAsUser: 1001 terminationMessagePath: /dev/termination-log terminationMessagePolicy: File volumeMounts: @@ -186,6 +191,8 @@ spec: memory: 50M securityContext: privileged: true + runAsGroup: 1001 + runAsUser: 1001 terminationMessagePath: /dev/termination-log terminationMessagePolicy: File volumeMounts: diff --git a/e2e-tests/security-context/compare/statefulset_sec-context-proxysql-changes.yml b/e2e-tests/security-context/compare/statefulset_sec-context-proxysql-changes.yml index 39c6df2635..cee9bb7351 100644 --- a/e2e-tests/security-context/compare/statefulset_sec-context-proxysql-changes.yml +++ b/e2e-tests/security-context/compare/statefulset_sec-context-proxysql-changes.yml @@ -8,6 +8,9 @@ metadata: kind: PerconaXtraDBCluster name: sec-context spec: + persistentVolumeClaimRetentionPolicy: + whenDeleted: Retain + whenScaled: Retain podManagementPolicy: OrderedReady replicas: 2 revisionHistoryLimit: 10 @@ -29,7 +32,15 @@ spec: app.kubernetes.io/part-of: percona-xtradb-cluster spec: containers: - - env: + - args: + - proxysql + - -f + - -c + - /etc/proxysql/proxysql.cnf + - --reload + command: + - /opt/percona/proxysql-entrypoint.sh + env: - name: PXC_SERVICE value: sec-context-pxc - name: OPERATOR_PASSWORD @@ -163,6 +174,8 @@ spec: memory: 50M securityContext: privileged: true + runAsGroup: 1001 + runAsUser: 1001 terminationMessagePath: /dev/termination-log terminationMessagePolicy: File volumeMounts: @@ -177,7 +190,9 @@ spec: cpu: 50m memory: 50M securityContext: - privileged: false + privileged: true + runAsGroup: 1001 + runAsUser: 1001 terminationMessagePath: /dev/termination-log terminationMessagePolicy: File volumeMounts: diff --git a/e2e-tests/security-context/compare/statefulset_sec-context-proxysql-k127.yml b/e2e-tests/security-context/compare/statefulset_sec-context-proxysql-k127.yml deleted file mode 100644 index 3ff6b9b4c6..0000000000 --- a/e2e-tests/security-context/compare/statefulset_sec-context-proxysql-k127.yml +++ /dev/null @@ -1,238 +0,0 @@ -apiVersion: apps/v1 -kind: StatefulSet -metadata: - generation: 1 - name: sec-context-proxysql - ownerReferences: - - controller: true - kind: PerconaXtraDBCluster - name: sec-context -spec: - persistentVolumeClaimRetentionPolicy: - whenDeleted: Retain - whenScaled: Retain - podManagementPolicy: OrderedReady - replicas: 2 - revisionHistoryLimit: 10 - selector: - matchLabels: - app.kubernetes.io/component: proxysql - app.kubernetes.io/instance: sec-context - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - serviceName: sec-context-proxysql-unready - template: - metadata: - labels: - app.kubernetes.io/component: proxysql - app.kubernetes.io/instance: sec-context - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - spec: - containers: - - args: - - proxysql - - -f - - -c - - /etc/proxysql/proxysql.cnf - - --reload - command: - - /opt/percona/proxysql-entrypoint.sh - env: - - name: PXC_SERVICE - value: sec-context-pxc - - name: OPERATOR_PASSWORD - valueFrom: - secretKeyRef: - key: operator - name: internal-sec-context - - name: PROXY_ADMIN_USER - value: proxyadmin - - name: PROXY_ADMIN_PASSWORD - valueFrom: - secretKeyRef: - key: proxyadmin - name: internal-sec-context - - name: MONITOR_PASSWORD - valueFrom: - secretKeyRef: - key: monitor - name: internal-sec-context - envFrom: - - secretRef: - name: sec-context-env-vars-proxysql - optional: true - imagePullPolicy: Always - name: proxysql - ports: - - containerPort: 3306 - name: mysql - protocol: TCP - - containerPort: 6032 - name: proxyadm - protocol: TCP - resources: - requests: - cpu: 100m - memory: 100M - securityContext: - privileged: false - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/proxysql - name: proxydata - - mountPath: /etc/proxysql/ssl - name: ssl - - mountPath: /etc/proxysql/ssl-internal - name: ssl-internal - - mountPath: /opt/percona - name: bin - - args: - - /opt/percona/peer-list - - -on-change=/opt/percona/proxysql_add_pxc_nodes.sh - - -service=$(PXC_SERVICE) - env: - - name: PXC_SERVICE - value: sec-context-pxc - - name: OPERATOR_PASSWORD - valueFrom: - secretKeyRef: - key: operator - name: internal-sec-context - - name: PROXY_ADMIN_USER - value: proxyadmin - - name: PROXY_ADMIN_PASSWORD - valueFrom: - secretKeyRef: - key: proxyadmin - name: internal-sec-context - - name: MONITOR_PASSWORD - valueFrom: - secretKeyRef: - key: monitor - name: internal-sec-context - envFrom: - - secretRef: - name: sec-context-env-vars-proxysql - optional: true - imagePullPolicy: Always - name: pxc-monit - resources: {} - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /opt/percona - name: bin - - args: - - /opt/percona/peer-list - - -on-change=/opt/percona/proxysql_add_proxysql_nodes.sh - - -service=$(PROXYSQL_SERVICE) - env: - - name: PROXYSQL_SERVICE - value: sec-context-proxysql-unready - - name: OPERATOR_PASSWORD - valueFrom: - secretKeyRef: - key: operator - name: internal-sec-context - - name: PROXY_ADMIN_USER - value: proxyadmin - - name: PROXY_ADMIN_PASSWORD - valueFrom: - secretKeyRef: - key: proxyadmin - name: internal-sec-context - - name: MONITOR_PASSWORD - valueFrom: - secretKeyRef: - key: monitor - name: internal-sec-context - envFrom: - - secretRef: - name: sec-context-env-vars-proxysql - optional: true - imagePullPolicy: Always - name: proxysql-monit - resources: {} - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /opt/percona - name: bin - dnsPolicy: ClusterFirst - initContainers: - - command: - - /pxc-init-entrypoint.sh - imagePullPolicy: Always - name: pxc-init - resources: - limits: - cpu: 50m - memory: 50M - securityContext: - privileged: false - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/mysql - name: bin - - command: - - /proxysql-init-entrypoint.sh - imagePullPolicy: Always - name: proxysql-init - resources: - limits: - cpu: 50m - memory: 50M - securityContext: - privileged: false - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /opt/percona - name: bin - restartPolicy: Always - schedulerName: default-scheduler - securityContext: - fsGroup: 1001 - runAsUser: 1001 - serviceAccount: percona-xtradb-cluster-operator-workload - serviceAccountName: percona-xtradb-cluster-operator-workload - terminationGracePeriodSeconds: 30 - volumes: - - name: ssl-internal - secret: - defaultMode: 420 - optional: true - secretName: some-name-ssl-internal - - name: ssl - secret: - defaultMode: 420 - optional: false - secretName: some-name-ssl - - emptyDir: {} - name: bin - updateStrategy: - rollingUpdate: - partition: 0 - type: RollingUpdate - volumeClaimTemplates: - - metadata: - labels: - app.kubernetes.io/component: proxysql - app.kubernetes.io/instance: sec-context - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - name: proxydata - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 6Gi - status: - phase: Pending diff --git a/e2e-tests/security-context/compare/statefulset_sec-context-proxysql-oc.yml b/e2e-tests/security-context/compare/statefulset_sec-context-proxysql-oc.yml index 5a7aac1b6b..3ff6b9b4c6 100644 --- a/e2e-tests/security-context/compare/statefulset_sec-context-proxysql-oc.yml +++ b/e2e-tests/security-context/compare/statefulset_sec-context-proxysql-oc.yml @@ -8,6 +8,9 @@ metadata: kind: PerconaXtraDBCluster name: sec-context spec: + persistentVolumeClaimRetentionPolicy: + whenDeleted: Retain + whenScaled: Retain podManagementPolicy: OrderedReady replicas: 2 revisionHistoryLimit: 10 diff --git a/e2e-tests/security-context/compare/statefulset_sec-context-proxysql.yml b/e2e-tests/security-context/compare/statefulset_sec-context-proxysql.yml index 36decd4138..3ff6b9b4c6 100644 --- a/e2e-tests/security-context/compare/statefulset_sec-context-proxysql.yml +++ b/e2e-tests/security-context/compare/statefulset_sec-context-proxysql.yml @@ -8,6 +8,9 @@ metadata: kind: PerconaXtraDBCluster name: sec-context spec: + persistentVolumeClaimRetentionPolicy: + whenDeleted: Retain + whenScaled: Retain podManagementPolicy: OrderedReady replicas: 2 revisionHistoryLimit: 10 @@ -29,7 +32,15 @@ spec: app.kubernetes.io/part-of: percona-xtradb-cluster spec: containers: - - env: + - args: + - proxysql + - -f + - -c + - /etc/proxysql/proxysql.cnf + - --reload + command: + - /opt/percona/proxysql-entrypoint.sh + env: - name: PXC_SERVICE value: sec-context-pxc - name: OPERATOR_PASSWORD diff --git a/e2e-tests/security-context/compare/statefulset_sec-context-pxc-changes-k127.yml b/e2e-tests/security-context/compare/statefulset_sec-context-pxc-changes-k127.yml deleted file mode 100644 index ddcf3101f3..0000000000 --- a/e2e-tests/security-context/compare/statefulset_sec-context-pxc-changes-k127.yml +++ /dev/null @@ -1,256 +0,0 @@ -apiVersion: apps/v1 -kind: StatefulSet -metadata: - generation: 2 - name: sec-context-pxc - ownerReferences: - - controller: true - kind: PerconaXtraDBCluster - name: sec-context -spec: - persistentVolumeClaimRetentionPolicy: - whenDeleted: Retain - whenScaled: Retain - podManagementPolicy: OrderedReady - replicas: 3 - revisionHistoryLimit: 10 - selector: - matchLabels: - app.kubernetes.io/component: pxc - app.kubernetes.io/instance: sec-context - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - serviceName: sec-context-pxc - template: - metadata: - annotations: - openshift.io/scc: privileged - labels: - app.kubernetes.io/component: pxc - app.kubernetes.io/instance: sec-context - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - spec: - affinity: - podAntiAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - - labelSelector: - matchLabels: - app.kubernetes.io/component: pxc - app.kubernetes.io/instance: sec-context - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - topologyKey: kubernetes.io/hostname - containers: - - args: - - mysqld - command: - - /var/lib/mysql/pxc-entrypoint.sh - env: - - name: PXC_SERVICE - value: sec-context-pxc-unready - - name: MONITOR_HOST - value: '%' - - name: MYSQL_ROOT_PASSWORD - valueFrom: - secretKeyRef: - key: root - name: internal-sec-context - - name: XTRABACKUP_PASSWORD - valueFrom: - secretKeyRef: - key: xtrabackup - name: internal-sec-context - - name: MONITOR_PASSWORD - valueFrom: - secretKeyRef: - key: monitor - name: internal-sec-context - - name: OPERATOR_ADMIN_PASSWORD - valueFrom: - secretKeyRef: - key: operator - name: internal-sec-context - - name: LIVENESS_CHECK_TIMEOUT - value: "5" - - name: READINESS_CHECK_TIMEOUT - value: "15" - - name: DEFAULT_AUTHENTICATION_PLUGIN - value: mysql_native_password - - name: NOTIFY_SOCKET - value: /var/lib/mysql/notify.sock - - name: MYSQL_STATE_FILE - value: /var/lib/mysql/mysql.state - envFrom: - - secretRef: - name: sec-context-env-vars-pxc - optional: true - imagePullPolicy: Always - livenessProbe: - exec: - command: - - /var/lib/mysql/liveness-check.sh - failureThreshold: 3 - initialDelaySeconds: 300 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 5 - name: pxc - ports: - - containerPort: 3306 - name: mysql - protocol: TCP - - containerPort: 4444 - name: sst - protocol: TCP - - containerPort: 4567 - name: write-set - protocol: TCP - - containerPort: 4568 - name: ist - protocol: TCP - - containerPort: 33062 - name: mysql-admin - protocol: TCP - - containerPort: 33060 - name: mysqlx - protocol: TCP - readinessProbe: - exec: - command: - - /var/lib/mysql/readiness-check.sh - failureThreshold: 5 - initialDelaySeconds: 15 - periodSeconds: 30 - successThreshold: 1 - timeoutSeconds: 15 - resources: - limits: - cpu: "1" - memory: 1G - requests: - cpu: 100m - memory: 100M - securityContext: - privileged: true - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/mysql - name: datadir - - mountPath: /etc/percona-xtradb-cluster.conf.d - name: config - - mountPath: /tmp - name: tmp - - mountPath: /etc/mysql/ssl - name: ssl - - mountPath: /etc/mysql/ssl-internal - name: ssl-internal - - mountPath: /etc/mysql/mysql-users-secret - name: mysql-users-secret-file - - mountPath: /etc/my.cnf.d - name: auto-config - - mountPath: /etc/mysql/vault-keyring-secret - name: vault-keyring-secret - - mountPath: /etc/mysql/init-file - name: mysql-init-file - dnsPolicy: ClusterFirst - initContainers: - - command: - - /pxc-init-entrypoint.sh - imagePullPolicy: Always - name: pxc-init - resources: - limits: - cpu: 50m - memory: 50M - securityContext: - privileged: true - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/mysql - name: datadir - restartPolicy: Always - schedulerName: default-scheduler - securityContext: - fsGroup: 1001 - runAsUser: 1001 - supplementalGroups: - - 1001 - serviceAccount: percona-xtradb-cluster-operator-workload - serviceAccountName: percona-xtradb-cluster-operator-workload - terminationGracePeriodSeconds: 600 - topologySpreadConstraints: - - labelSelector: - matchLabels: - app.kubernetes.io/component: pxc - app.kubernetes.io/instance: sec-context - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - maxSkew: 1 - topologyKey: kubernetes.io/hostname - whenUnsatisfiable: ScheduleAnyway - volumes: - - emptyDir: {} - name: tmp - - configMap: - defaultMode: 420 - name: sec-context-pxc - optional: true - name: config - - name: ssl-internal - secret: - defaultMode: 420 - optional: true - secretName: some-name-ssl-internal - - name: ssl - secret: - defaultMode: 420 - optional: false - secretName: some-name-ssl - - configMap: - defaultMode: 420 - name: auto-sec-context-pxc - optional: true - name: auto-config - - name: vault-keyring-secret - secret: - defaultMode: 420 - optional: true - secretName: sec-context-vault - - name: mysql-users-secret-file - secret: - defaultMode: 420 - optional: false - secretName: internal-sec-context - - name: mysql-init-file - secret: - defaultMode: 420 - optional: true - secretName: sec-context-mysql-init - updateStrategy: - rollingUpdate: - partition: 0 - type: RollingUpdate - volumeClaimTemplates: - - metadata: - labels: - app.kubernetes.io/component: pxc - app.kubernetes.io/instance: sec-context - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - name: datadir - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 2Gi - status: - phase: Pending diff --git a/e2e-tests/security-context/compare/statefulset_sec-context-pxc-changes.yml b/e2e-tests/security-context/compare/statefulset_sec-context-pxc-changes.yml index edb925f12f..bf4c6d7241 100644 --- a/e2e-tests/security-context/compare/statefulset_sec-context-pxc-changes.yml +++ b/e2e-tests/security-context/compare/statefulset_sec-context-pxc-changes.yml @@ -8,6 +8,9 @@ metadata: kind: PerconaXtraDBCluster name: sec-context spec: + persistentVolumeClaimRetentionPolicy: + whenDeleted: Retain + whenScaled: Retain podManagementPolicy: OrderedReady replicas: 3 revisionHistoryLimit: 10 @@ -166,6 +169,8 @@ spec: memory: 50M securityContext: privileged: true + runAsGroup: 1001 + runAsUser: 1001 terminationMessagePath: /dev/termination-log terminationMessagePolicy: File volumeMounts: diff --git a/e2e-tests/security-context/compare/statefulset_sec-context-pxc-k127.yml b/e2e-tests/security-context/compare/statefulset_sec-context-pxc-k127.yml deleted file mode 100644 index b7eccb73b4..0000000000 --- a/e2e-tests/security-context/compare/statefulset_sec-context-pxc-k127.yml +++ /dev/null @@ -1,243 +0,0 @@ -apiVersion: apps/v1 -kind: StatefulSet -metadata: - generation: 1 - name: sec-context-pxc - ownerReferences: - - controller: true - kind: PerconaXtraDBCluster - name: sec-context -spec: - persistentVolumeClaimRetentionPolicy: - whenDeleted: Retain - whenScaled: Retain - podManagementPolicy: OrderedReady - replicas: 3 - revisionHistoryLimit: 10 - selector: - matchLabels: - app.kubernetes.io/component: pxc - app.kubernetes.io/instance: sec-context - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - serviceName: sec-context-pxc - template: - metadata: - annotations: - openshift.io/scc: privileged - labels: - app.kubernetes.io/component: pxc - app.kubernetes.io/instance: sec-context - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - spec: - affinity: - podAntiAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - - labelSelector: - matchLabels: - app.kubernetes.io/component: pxc - app.kubernetes.io/instance: sec-context - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - topologyKey: kubernetes.io/hostname - containers: - - args: - - mysqld - command: - - /var/lib/mysql/pxc-entrypoint.sh - env: - - name: PXC_SERVICE - value: sec-context-pxc-unready - - name: MONITOR_HOST - value: '%' - - name: MYSQL_ROOT_PASSWORD - valueFrom: - secretKeyRef: - key: root - name: internal-sec-context - - name: XTRABACKUP_PASSWORD - valueFrom: - secretKeyRef: - key: xtrabackup - name: internal-sec-context - - name: MONITOR_PASSWORD - valueFrom: - secretKeyRef: - key: monitor - name: internal-sec-context - - name: OPERATOR_ADMIN_PASSWORD - valueFrom: - secretKeyRef: - key: operator - name: internal-sec-context - - name: LIVENESS_CHECK_TIMEOUT - value: "5" - - name: READINESS_CHECK_TIMEOUT - value: "15" - - name: DEFAULT_AUTHENTICATION_PLUGIN - value: mysql_native_password - - name: NOTIFY_SOCKET - value: /var/lib/mysql/notify.sock - - name: MYSQL_STATE_FILE - value: /var/lib/mysql/mysql.state - envFrom: - - secretRef: - name: sec-context-env-vars-pxc - optional: true - imagePullPolicy: Always - livenessProbe: - exec: - command: - - /var/lib/mysql/liveness-check.sh - failureThreshold: 3 - initialDelaySeconds: 300 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 5 - name: pxc - ports: - - containerPort: 3306 - name: mysql - protocol: TCP - - containerPort: 4444 - name: sst - protocol: TCP - - containerPort: 4567 - name: write-set - protocol: TCP - - containerPort: 4568 - name: ist - protocol: TCP - - containerPort: 33062 - name: mysql-admin - protocol: TCP - - containerPort: 33060 - name: mysqlx - protocol: TCP - readinessProbe: - exec: - command: - - /var/lib/mysql/readiness-check.sh - failureThreshold: 5 - initialDelaySeconds: 15 - periodSeconds: 30 - successThreshold: 1 - timeoutSeconds: 15 - resources: - limits: - cpu: "1" - memory: 1G - requests: - cpu: 100m - memory: 100M - securityContext: - privileged: false - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/mysql - name: datadir - - mountPath: /etc/percona-xtradb-cluster.conf.d - name: config - - mountPath: /tmp - name: tmp - - mountPath: /etc/mysql/ssl - name: ssl - - mountPath: /etc/mysql/ssl-internal - name: ssl-internal - - mountPath: /etc/mysql/mysql-users-secret - name: mysql-users-secret-file - - mountPath: /etc/my.cnf.d - name: auto-config - - mountPath: /etc/mysql/vault-keyring-secret - name: vault-keyring-secret - - mountPath: /etc/mysql/init-file - name: mysql-init-file - dnsPolicy: ClusterFirst - initContainers: - - command: - - /pxc-init-entrypoint.sh - imagePullPolicy: Always - name: pxc-init - resources: - limits: - cpu: 50m - memory: 50M - securityContext: - privileged: false - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/mysql - name: datadir - restartPolicy: Always - schedulerName: default-scheduler - securityContext: - fsGroup: 1001 - runAsUser: 1001 - serviceAccount: percona-xtradb-cluster-operator-workload - serviceAccountName: percona-xtradb-cluster-operator-workload - terminationGracePeriodSeconds: 600 - volumes: - - emptyDir: {} - name: tmp - - configMap: - defaultMode: 420 - name: sec-context-pxc - optional: true - name: config - - name: ssl-internal - secret: - defaultMode: 420 - optional: true - secretName: some-name-ssl-internal - - name: ssl - secret: - defaultMode: 420 - optional: false - secretName: some-name-ssl - - configMap: - defaultMode: 420 - name: auto-sec-context-pxc - optional: true - name: auto-config - - name: vault-keyring-secret - secret: - defaultMode: 420 - optional: true - secretName: sec-context-vault - - name: mysql-users-secret-file - secret: - defaultMode: 420 - optional: false - secretName: internal-sec-context - - name: mysql-init-file - secret: - defaultMode: 420 - optional: true - secretName: sec-context-mysql-init - updateStrategy: - rollingUpdate: - partition: 0 - type: RollingUpdate - volumeClaimTemplates: - - metadata: - labels: - app.kubernetes.io/component: pxc - app.kubernetes.io/instance: sec-context - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - name: datadir - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 2Gi - status: - phase: Pending diff --git a/e2e-tests/security-context/compare/statefulset_sec-context-pxc.yml b/e2e-tests/security-context/compare/statefulset_sec-context-pxc.yml index 3c8b459fb5..b7eccb73b4 100644 --- a/e2e-tests/security-context/compare/statefulset_sec-context-pxc.yml +++ b/e2e-tests/security-context/compare/statefulset_sec-context-pxc.yml @@ -8,6 +8,9 @@ metadata: kind: PerconaXtraDBCluster name: sec-context spec: + persistentVolumeClaimRetentionPolicy: + whenDeleted: Retain + whenScaled: Retain podManagementPolicy: OrderedReady replicas: 3 revisionHistoryLimit: 10 diff --git a/e2e-tests/security-context/conf/sec-context-changes.yml b/e2e-tests/security-context/conf/sec-context-changes.yml index ff904c9f3c..9d28197813 100644 --- a/e2e-tests/security-context/conf/sec-context-changes.yml +++ b/e2e-tests/security-context/conf/sec-context-changes.yml @@ -8,6 +8,11 @@ spec: secretsName: my-cluster-secrets sslSecretName: some-name-ssl sslInternalSecretName: some-name-ssl-internal + initContainer: + containerSecurityContext: + privileged: true + runAsUser: 1001 + runAsGroup: 1001 pxc: annotations: openshift.io/scc: privileged From e9cb9a8fc686a6255a7c3b3877e7ec5ea8acdb85 Mon Sep 17 00:00:00 2001 From: Viacheslav Sarzhan Date: Thu, 5 Dec 2024 11:19:42 +0200 Subject: [PATCH 14/60] K8SPXC-1410 add PXC 8.4.X support (#1878) * K8SPXC-1410 add PXC 8.4 support * K8SPXC-1410 fix several tests * fix big-data test * fix users test * fix init deployment test --- build/pxc-configure-pxc.sh | 2 +- build/pxc-entrypoint.sh | 30 +- .../statefulset_custom-pxc-k127-oc.yml | 2 +- .../compare/statefulset_custom-pxc-k127.yml | 2 +- .../statefulset_hostname-pxc-k127-oc.yml | 2 +- .../compare/statefulset_hostname-pxc-k127.yml | 2 +- .../statefulset_region-pxc-k127-oc.yml | 2 +- .../compare/statefulset_region-pxc-k127.yml | 2 +- .../compare/statefulset_zone-pxc-k127-oc.yml | 2 +- .../compare/statefulset_zone-pxc-k127.yml | 2 +- e2e-tests/affinity/conf/custom.yml | 2 +- e2e-tests/affinity/conf/hostname.yml | 2 +- e2e-tests/affinity/conf/region.yml | 2 +- e2e-tests/affinity/conf/zone.yml | 2 +- .../conf/auto-tuning-with-limits.yml | 2 +- .../auto-tuning-with-template-transform.yml | 2 +- .../conf/auto-tuning-with-template.yml | 4 +- e2e-tests/auto-tuning/run | 4 +- e2e-tests/big-data/conf/restore-backup-84.yml | 12 + e2e-tests/big-data/run | 4 +- e2e-tests/conf/some-name.yml | 2 +- .../cross-site/conf/cross-site-replica.yml | 2 +- .../cross-site/conf/cross-site-source.yml | 2 +- .../conf/demand-backup-cloud.yml | 2 +- .../demand-backup/conf/demand-backup.yml | 2 +- e2e-tests/functions | 10 + e2e-tests/haproxy/conf/haproxy.yml | 2 +- .../compare/max_allowed_packet-1-84.sql | 1 + e2e-tests/init-deploy/compare/monitor-84.sql | 3 + e2e-tests/init-deploy/compare/root-84.sql | 2 + .../statefulset_some-name-pxc-k127-oc.yml | 2 +- .../statefulset_some-name-pxc-k127.yml | 2 +- .../init-deploy/compare/xtrabackup-84.sql | 2 + ...lset_no-requests-pxc-increased-k127-oc.yml | 2 +- ...efulset_no-requests-pxc-increased-k127.yml | 2 +- .../statefulset_no-requests-pxc-k127-oc.yml | 2 +- .../statefulset_no-requests-pxc-k127.yml | 2 +- e2e-tests/limits/conf/no-requests.yml | 2 +- .../pitr-gap-errors/conf/pitr-gap-errors.yml | 2 +- e2e-tests/pitr/conf/pitr.yml | 2 +- .../conf/side-car.yml | 2 +- e2e-tests/pvc-resize/conf/some-name-eks.yml | 2 +- e2e-tests/pvc-resize/conf/some-name.yml | 2 +- .../conf/scaling-proxysql.yml | 2 +- .../conf/sec-context-changes.yml | 2 +- .../security-context/conf/sec-context.yml | 2 +- .../conf/some-name-tls-issueref.yml | 2 +- .../conf/some-name-tls-issue-haproxy.yml | 2 +- .../conf/some-name-tls-issue.yml | 2 +- .../statefulset_some-name-pxc-1141-oc.yml | 2 +- .../statefulset_some-name-pxc-1141.yml | 2 +- .../statefulset_some-name-pxc-1151-oc.yml | 2 +- .../statefulset_some-name-pxc-1151.yml | 2 +- ...statefulset_some-name-pxc-1160-k127-oc.yml | 274 +++++++++++++++++ .../statefulset_some-name-pxc-1160-k127.yml | 275 ++++++++++++++++++ e2e-tests/users/compare/select-4-84.sql | 87 ++++++ e2e-tests/users/conf/some-name.yml | 2 +- 57 files changed, 733 insertions(+), 63 deletions(-) create mode 100644 e2e-tests/big-data/conf/restore-backup-84.yml create mode 100644 e2e-tests/init-deploy/compare/max_allowed_packet-1-84.sql create mode 100644 e2e-tests/init-deploy/compare/monitor-84.sql create mode 100644 e2e-tests/init-deploy/compare/root-84.sql create mode 100644 e2e-tests/init-deploy/compare/xtrabackup-84.sql create mode 100644 e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1160-k127-oc.yml create mode 100644 e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1160-k127.yml create mode 100644 e2e-tests/users/compare/select-4-84.sql diff --git a/build/pxc-configure-pxc.sh b/build/pxc-configure-pxc.sh index 70aa36fa3b..7404c3c369 100755 --- a/build/pxc-configure-pxc.sh +++ b/build/pxc-configure-pxc.sh @@ -69,7 +69,7 @@ fi CFG=/etc/mysql/node.cnf MYSQL_VERSION=$(mysqld -V | awk '{print $3}' | awk -F'.' '{print $1"."$2}') -if [ "$MYSQL_VERSION" == '8.0' ]; then +if [[ "$MYSQL_VERSION" =~ ^(8\.0|8\.4)$ ]]; then grep -E -q "^[#]?admin-address" "$CFG" || sed '/^\[mysqld\]/a admin-address=\n' ${CFG} 1<>${CFG} grep -E -q "^[#]?log_error_suppression_list" "$CFG" || sed '/^\[mysqld\]/a log_error_suppression_list="MY-010055"\n' ${CFG} 1<>${CFG} else diff --git a/build/pxc-entrypoint.sh b/build/pxc-entrypoint.sh index 1562e8e4d6..afb0d73436 100755 --- a/build/pxc-entrypoint.sh +++ b/build/pxc-entrypoint.sh @@ -165,7 +165,7 @@ if [ -f "$vault_secret" ]; then sed -i "/\[mysqld\]/a early-plugin-load=keyring_vault.so" $CFG sed -i "/\[mysqld\]/a keyring_vault_config=$vault_secret" $CFG - if [ "$MYSQL_VERSION" == '8.0' ]; then + if [[ "$MYSQL_VERSION" =~ ^(8\.0|8\.4)$ ]]; then sed -i "/\[mysqld\]/a default_table_encryption=ON" $CFG sed -i "/\[mysqld\]/a table_encryption_privilege_check=ON" $CFG sed -i "/\[mysqld\]/a innodb_undo_log_encrypt=ON" $CFG @@ -189,12 +189,11 @@ fi grep -q "^progress=" $CFG && sed -i "s|^progress=.*|progress=1|" $CFG grep -q "^\[sst\]" "$CFG" || printf '[sst]\n' >>"$CFG" grep -q "^cpat=" "$CFG" || sed '/^\[sst\]/a cpat=.*\\.pem$\\|.*init\\.ok$\\|.*galera\\.cache$\\|.*wsrep_recovery_verbose\\.log$\\|.*readiness-check\\.sh$\\|.*liveness-check\\.sh$\\|.*get-pxc-state$\\|.*sst_in_progress$\\|.*sleep-forever$\\|.*pmm-prerun\\.sh$\\|.*sst-xb-tmpdir$\\|.*\\.sst$\\|.*gvwstate\\.dat$\\|.*grastate\\.dat$\\|.*\\.err$\\|.*\\.log$\\|.*RPM_UPGRADE_MARKER$\\|.*RPM_UPGRADE_HISTORY$\\|.*pxc-entrypoint\\.sh$\\|.*unsafe-bootstrap\\.sh$\\|.*pxc-configure-pxc\\.sh\\|.*peer-list$\\|.*auth_plugin$\\|.*version_info$\\|.*mysql-state-monitor$\\|.*mysql-state-monitor\\.log$\\|.*notify\\.sock$\\|.*mysql\\.state$' "$CFG" 1<>"$CFG" -if [[ $MYSQL_VERSION == '8.0' ]]; then - if [[ $MYSQL_PATCH_VERSION -ge 26 ]]; then - grep -q "^skip_replica_start=ON" "$CFG" || sed -i "/\[mysqld\]/a skip_replica_start=ON" $CFG - else - grep -q "^skip_slave_start=ON" "$CFG" || sed -i "/\[mysqld\]/a skip_slave_start=ON" $CFG - fi + +if [[ $MYSQL_VERSION == '8.0' && $MYSQL_PATCH_VERSION -ge 26 ]] || [[ $MYSQL_VERSION == '8.4' ]]; then + grep -q "^skip_replica_start=ON" "$CFG" || sed -i "/\[mysqld\]/a skip_replica_start=ON" $CFG +else + grep -q "^skip_slave_start=ON" "$CFG" || sed -i "/\[mysqld\]/a skip_slave_start=ON" $CFG fi auth_plugin=${DEFAULT_AUTHENTICATION_PLUGIN} @@ -220,7 +219,7 @@ fi echo "${auth_plugin}" >/var/lib/mysql/auth_plugin sed -i "/default_authentication_plugin/d" $CFG -if [[ $MYSQL_VERSION == '8.0' && $MYSQL_PATCH_VERSION -ge 27 ]]; then +if [[ $MYSQL_VERSION == '8.0' && $MYSQL_PATCH_VERSION -ge 27 ]] || [[ $MYSQL_VERSION == "8.4" ]]; then sed -i "/\[mysqld\]/a authentication_policy=${auth_plugin},," $CFG else sed -i "/\[mysqld\]/a default_authentication_plugin=${auth_plugin}" $CFG @@ -293,8 +292,7 @@ if [[ -z ${WSREP_CLUSTER_NAME} || ${WSREP_CLUSTER_NAME} == 'noname' ]]; then echo "Cluster name is invalid, please check DNS" exit 1 fi - -if [[ -n ${NOTIFY_SOCKET} && ${MYSQL_VERSION} == '8.0' ]]; then +if [[ -n ${NOTIFY_SOCKET} && ${MYSQL_VERSION} =~ ^(8\.0|8\.4)$ ]]; then nohup /var/lib/mysql/mysql-state-monitor >/var/lib/mysql/mysql-state-monitor.log 2>&1 < /dev/null & fi @@ -327,7 +325,11 @@ if [ -z "$CLUSTER_JOIN" ] && [ "$1" = 'mysqld' -a -z "$wantHelp" ]; then echo 'Initializing database' # we initialize database into $TMPDIR because "--initialize-insecure" option does not work if directory is not empty # in some cases storage driver creates unremovable artifacts (see K8SPXC-286), so $DATADIR cleanup is not possible - "$@" --initialize-insecure --skip-ssl --datadir="$TMPDIR" + if [[ $MYSQL_VERSION == "8.4" ]]; then + "$@" --initialize-insecure --datadir="$TMPDIR" + else + "$@" --initialize-insecure --skip-ssl --datadir="$TMPDIR" + fi mv "$TMPDIR"/* "$DATADIR/" rm -rfv "$TMPDIR" echo 'Database initialized' @@ -385,7 +387,7 @@ if [ -z "$CLUSTER_JOIN" ] && [ "$1" = 'mysqld' -a -z "$wantHelp" ]; then file_env 'MONITOR_HOST' 'localhost' file_env 'MONITOR_PASSWORD' 'monitor' 'monitor' file_env 'REPLICATION_PASSWORD' 'replication' 'replication' - if [ "$MYSQL_VERSION" == '8.0' ]; then + if [[ "$MYSQL_VERSION" =~ ^(8\.0|8\.4)$ ]]; then read -r -d '' monitorConnectGrant <<-EOSQL || true GRANT SERVICE_CONNECTION_ADMIN ON *.* TO 'monitor'@'${MONITOR_HOST}'; EOSQL @@ -393,7 +395,7 @@ if [ -z "$CLUSTER_JOIN" ] && [ "$1" = 'mysqld' -a -z "$wantHelp" ]; then # SYSTEM_USER since 8.0.16 # https://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html#priv_system-user - if [[ $MYSQL_VERSION == "8.0" ]] && ((MYSQL_PATCH_VERSION >= 16)); then + if [[ $MYSQL_VERSION == "8.0" ]] && ((MYSQL_PATCH_VERSION >= 16)) || [[ $MYSQL_VERSION == "8.4" ]]; then read -r -d '' systemUserGrant <<-EOSQL || true GRANT SYSTEM_USER ON *.* TO 'monitor'@'${MONITOR_HOST}'; EOSQL @@ -518,7 +520,7 @@ if [ "$1" = 'mysqld' -a -z "$wantHelp" ]; then fi set -x - if [[ ${MYSQL_VERSION} == '8.0' ]]; then + if [[ "$MYSQL_VERSION" =~ ^(8\.0|8\.4)$ ]]; then mysqlState="startup" while [[ "${mysqlState}" != "ready" ]]; do mysqlState=$(tr -d '\0' < ${MYSQL_STATE_FILE}) diff --git a/e2e-tests/affinity/compare/statefulset_custom-pxc-k127-oc.yml b/e2e-tests/affinity/compare/statefulset_custom-pxc-k127-oc.yml index 85bd88018b..cdfd67b24d 100644 --- a/e2e-tests/affinity/compare/statefulset_custom-pxc-k127-oc.yml +++ b/e2e-tests/affinity/compare/statefulset_custom-pxc-k127-oc.yml @@ -155,7 +155,7 @@ spec: resources: limits: cpu: "1" - memory: 1G + memory: 2G requests: cpu: 600m memory: 1G diff --git a/e2e-tests/affinity/compare/statefulset_custom-pxc-k127.yml b/e2e-tests/affinity/compare/statefulset_custom-pxc-k127.yml index 07a30bfe38..baa4686cea 100644 --- a/e2e-tests/affinity/compare/statefulset_custom-pxc-k127.yml +++ b/e2e-tests/affinity/compare/statefulset_custom-pxc-k127.yml @@ -155,7 +155,7 @@ spec: resources: limits: cpu: "1" - memory: 1G + memory: 2G requests: cpu: 600m memory: 1G diff --git a/e2e-tests/affinity/compare/statefulset_hostname-pxc-k127-oc.yml b/e2e-tests/affinity/compare/statefulset_hostname-pxc-k127-oc.yml index fc02957d8c..6f65b505fd 100644 --- a/e2e-tests/affinity/compare/statefulset_hostname-pxc-k127-oc.yml +++ b/e2e-tests/affinity/compare/statefulset_hostname-pxc-k127-oc.yml @@ -128,7 +128,7 @@ spec: resources: limits: cpu: "1" - memory: 1G + memory: 2G requests: cpu: 600m memory: 1G diff --git a/e2e-tests/affinity/compare/statefulset_hostname-pxc-k127.yml b/e2e-tests/affinity/compare/statefulset_hostname-pxc-k127.yml index e11dc0cb0b..9e71887bdf 100644 --- a/e2e-tests/affinity/compare/statefulset_hostname-pxc-k127.yml +++ b/e2e-tests/affinity/compare/statefulset_hostname-pxc-k127.yml @@ -128,7 +128,7 @@ spec: resources: limits: cpu: "1" - memory: 1G + memory: 2G requests: cpu: 600m memory: 1G diff --git a/e2e-tests/affinity/compare/statefulset_region-pxc-k127-oc.yml b/e2e-tests/affinity/compare/statefulset_region-pxc-k127-oc.yml index e27ccfa7cc..1ae33b935c 100644 --- a/e2e-tests/affinity/compare/statefulset_region-pxc-k127-oc.yml +++ b/e2e-tests/affinity/compare/statefulset_region-pxc-k127-oc.yml @@ -128,7 +128,7 @@ spec: resources: limits: cpu: "1" - memory: 1G + memory: 2G requests: cpu: 600m memory: 1G diff --git a/e2e-tests/affinity/compare/statefulset_region-pxc-k127.yml b/e2e-tests/affinity/compare/statefulset_region-pxc-k127.yml index ee4c8945a5..99c2833f7c 100644 --- a/e2e-tests/affinity/compare/statefulset_region-pxc-k127.yml +++ b/e2e-tests/affinity/compare/statefulset_region-pxc-k127.yml @@ -128,7 +128,7 @@ spec: resources: limits: cpu: "1" - memory: 1G + memory: 2G requests: cpu: 600m memory: 1G diff --git a/e2e-tests/affinity/compare/statefulset_zone-pxc-k127-oc.yml b/e2e-tests/affinity/compare/statefulset_zone-pxc-k127-oc.yml index 0f6fb0b3e7..648266b749 100644 --- a/e2e-tests/affinity/compare/statefulset_zone-pxc-k127-oc.yml +++ b/e2e-tests/affinity/compare/statefulset_zone-pxc-k127-oc.yml @@ -128,7 +128,7 @@ spec: resources: limits: cpu: "1" - memory: 1G + memory: 2G requests: cpu: 600m memory: 1G diff --git a/e2e-tests/affinity/compare/statefulset_zone-pxc-k127.yml b/e2e-tests/affinity/compare/statefulset_zone-pxc-k127.yml index dbe982b820..4d55b79301 100644 --- a/e2e-tests/affinity/compare/statefulset_zone-pxc-k127.yml +++ b/e2e-tests/affinity/compare/statefulset_zone-pxc-k127.yml @@ -128,7 +128,7 @@ spec: resources: limits: cpu: "1" - memory: 1G + memory: 2G requests: cpu: 600m memory: 1G diff --git a/e2e-tests/affinity/conf/custom.yml b/e2e-tests/affinity/conf/custom.yml index 23217bc465..b26f17392e 100644 --- a/e2e-tests/affinity/conf/custom.yml +++ b/e2e-tests/affinity/conf/custom.yml @@ -13,7 +13,7 @@ spec: memory: 1G cpu: 600m limits: - memory: "1G" + memory: "2G" cpu: "1" volumeSpec: persistentVolumeClaim: diff --git a/e2e-tests/affinity/conf/hostname.yml b/e2e-tests/affinity/conf/hostname.yml index a62a26aeb5..557b3d20dd 100644 --- a/e2e-tests/affinity/conf/hostname.yml +++ b/e2e-tests/affinity/conf/hostname.yml @@ -13,7 +13,7 @@ spec: memory: 1G cpu: 600m limits: - memory: "1G" + memory: "2G" cpu: "1" volumeSpec: persistentVolumeClaim: diff --git a/e2e-tests/affinity/conf/region.yml b/e2e-tests/affinity/conf/region.yml index 09440c04ca..e81d6d10f4 100644 --- a/e2e-tests/affinity/conf/region.yml +++ b/e2e-tests/affinity/conf/region.yml @@ -13,7 +13,7 @@ spec: memory: 1G cpu: 600m limits: - memory: "1G" + memory: "2G" cpu: "1" volumeSpec: persistentVolumeClaim: diff --git a/e2e-tests/affinity/conf/zone.yml b/e2e-tests/affinity/conf/zone.yml index f92c2aa51d..5a9bfe21b2 100644 --- a/e2e-tests/affinity/conf/zone.yml +++ b/e2e-tests/affinity/conf/zone.yml @@ -13,7 +13,7 @@ spec: memory: 1G cpu: 600m limits: - memory: "1G" + memory: "2G" cpu: "1" volumeSpec: persistentVolumeClaim: diff --git a/e2e-tests/auto-tuning/conf/auto-tuning-with-limits.yml b/e2e-tests/auto-tuning/conf/auto-tuning-with-limits.yml index 80dcf752a8..38a18f6882 100644 --- a/e2e-tests/auto-tuning/conf/auto-tuning-with-limits.yml +++ b/e2e-tests/auto-tuning/conf/auto-tuning-with-limits.yml @@ -11,7 +11,7 @@ spec: image: -pxc resources: limits: - memory: 1Gi + memory: 2Gi cpu: 1000m volumeSpec: persistentVolumeClaim: diff --git a/e2e-tests/auto-tuning/conf/auto-tuning-with-template-transform.yml b/e2e-tests/auto-tuning/conf/auto-tuning-with-template-transform.yml index 9484353658..760fcc7f38 100644 --- a/e2e-tests/auto-tuning/conf/auto-tuning-with-template-transform.yml +++ b/e2e-tests/auto-tuning/conf/auto-tuning-with-template-transform.yml @@ -15,7 +15,7 @@ spec: image: -pxc resources: limits: - memory: 1Gi + memory: 4Gi requests: memory: 1Gi volumeSpec: diff --git a/e2e-tests/auto-tuning/conf/auto-tuning-with-template.yml b/e2e-tests/auto-tuning/conf/auto-tuning-with-template.yml index db229e521f..9ef4745c2c 100644 --- a/e2e-tests/auto-tuning/conf/auto-tuning-with-template.yml +++ b/e2e-tests/auto-tuning/conf/auto-tuning-with-template.yml @@ -9,7 +9,7 @@ spec: pxc: configuration: | [mysqld] - innodb_buffer_pool_size={{containerMemoryLimit}} + innodb_buffer_pool_size={{containerMemoryLimit * 1 / 2}} max_connections=200 size: 3 image: -pxc @@ -17,7 +17,7 @@ spec: requests: memory: 1Gi limits: - memory: 2Gi + memory: 4Gi volumeSpec: persistentVolumeClaim: resources: diff --git a/e2e-tests/auto-tuning/run b/e2e-tests/auto-tuning/run index 0b4b141dc5..031cb5e0fa 100755 --- a/e2e-tests/auto-tuning/run +++ b/e2e-tests/auto-tuning/run @@ -106,8 +106,8 @@ CONNECTIONS=$(run_mysql \ 'SELECT @@max_connections;' \ "-h $cluster-pxc -uroot -proot_password") -if [[ ${INNODB_SIZE} != 805306368 ]]; then - echo "with-template-transform: innodb_buffer_pool_size ${INNODB_SIZE} should be 805306368" +if [[ ${INNODB_SIZE} != 3221225472 ]]; then + echo "with-template-transform: innodb_buffer_pool_size ${INNODB_SIZE} should be 3221225472" exit 1 fi diff --git a/e2e-tests/big-data/conf/restore-backup-84.yml b/e2e-tests/big-data/conf/restore-backup-84.yml new file mode 100644 index 0000000000..7b7566fc89 --- /dev/null +++ b/e2e-tests/big-data/conf/restore-backup-84.yml @@ -0,0 +1,12 @@ +apiVersion: pxc.percona.com/v1 +kind: PerconaXtraDBClusterRestore +metadata: + name: restore1 +spec: + pxcCluster: some-name + backupSource: + destination: s3://percona-jenkins-artifactory/big-data-test/some-name-2024-11-23-19:32:52-full + s3: + credentialsSecret: aws-s3-secret + region: us-east-1 + endpointUrl: https://s3.amazonaws.com diff --git a/e2e-tests/big-data/run b/e2e-tests/big-data/run index 4b73f5f405..d4b556dd3d 100755 --- a/e2e-tests/big-data/run +++ b/e2e-tests/big-data/run @@ -19,10 +19,12 @@ main() { desc 'create first PXC cluster' cluster="some-name" spinup_pxc "$cluster" "$test_dir/conf/$cluster.yml" "3" "10" "$test_dir/conf/secrets_without_tls.yml" - if [[ $IMAGE_PXC =~ 8\.0 ]]; then desc 'Switch to 8.0 backup' kubectl_bin apply -f "${test_dir}/conf/restore-backup.yml" + elif [[ $IMAGE_PXC =~ 8\.4 ]]; then + desc 'Switch to 8.4 backup' + kubectl_bin apply -f "${test_dir}/conf/restore-backup-84.yml" else kubectl_bin apply -f "${test_dir}/conf/restore-backup-57.yml" fi diff --git a/e2e-tests/conf/some-name.yml b/e2e-tests/conf/some-name.yml index a4448cd7a5..058c8138a1 100644 --- a/e2e-tests/conf/some-name.yml +++ b/e2e-tests/conf/some-name.yml @@ -18,7 +18,7 @@ spec: memory: 0.1G cpu: 100m limits: - memory: "1G" + memory: "2G" cpu: "1" volumeSpec: persistentVolumeClaim: diff --git a/e2e-tests/cross-site/conf/cross-site-replica.yml b/e2e-tests/cross-site/conf/cross-site-replica.yml index 2a1ee73d4e..36d8535d99 100644 --- a/e2e-tests/cross-site/conf/cross-site-replica.yml +++ b/e2e-tests/cross-site/conf/cross-site-replica.yml @@ -29,7 +29,7 @@ spec: memory: 1G cpu: 600m limits: - memory: "1G" + memory: "2G" cpu: "1" volumeSpec: persistentVolumeClaim: diff --git a/e2e-tests/cross-site/conf/cross-site-source.yml b/e2e-tests/cross-site/conf/cross-site-source.yml index f3831f55e0..ddf40103d9 100644 --- a/e2e-tests/cross-site/conf/cross-site-source.yml +++ b/e2e-tests/cross-site/conf/cross-site-source.yml @@ -29,7 +29,7 @@ spec: memory: 1G cpu: 600m limits: - memory: "1G" + memory: "2G" cpu: "1" volumeSpec: persistentVolumeClaim: diff --git a/e2e-tests/demand-backup-cloud/conf/demand-backup-cloud.yml b/e2e-tests/demand-backup-cloud/conf/demand-backup-cloud.yml index c71e87057b..a509fc57b2 100644 --- a/e2e-tests/demand-backup-cloud/conf/demand-backup-cloud.yml +++ b/e2e-tests/demand-backup-cloud/conf/demand-backup-cloud.yml @@ -27,7 +27,7 @@ spec: memory: 0.1G cpu: 100m limits: - memory: "1G" + memory: "2G" cpu: "1" volumeSpec: persistentVolumeClaim: diff --git a/e2e-tests/demand-backup/conf/demand-backup.yml b/e2e-tests/demand-backup/conf/demand-backup.yml index 3aa2b80470..93a4f7c1d4 100644 --- a/e2e-tests/demand-backup/conf/demand-backup.yml +++ b/e2e-tests/demand-backup/conf/demand-backup.yml @@ -30,7 +30,7 @@ spec: memory: 0.1G cpu: 100m limits: - memory: "1G" + memory: "2G" cpu: "1" volumeSpec: persistentVolumeClaim: diff --git a/e2e-tests/functions b/e2e-tests/functions index b4ed9afee7..6f9c692646 100755 --- a/e2e-tests/functions +++ b/e2e-tests/functions @@ -407,6 +407,8 @@ compare_kubectl() { if [[ $IMAGE_PXC =~ 8\.0 ]] && [ -f ${expected_result//.yml/-80.yml} ]; then expected_result=${expected_result//.yml/-80.yml} + elif [[ $IMAGE_PXC =~ 8\.4 ]] && [ -f ${expected_result//.yml/-84.yml} ]; then + expected_result=${expected_result//.yml/-84.yml} fi if version_gt "1.29" && [ -f ${expected_result//.yml/-k129.yml} ]; then @@ -541,6 +543,8 @@ compare_mysql_cmd() { if [[ $IMAGE_PXC =~ 8\.0 ]] && [ -f ${test_dir}/compare/${command_id}${postfix}-80.sql ]; then expected_result=${test_dir}/compare/${command_id}${postfix}-80.sql + elif [[ $IMAGE_PXC =~ 8\.4 ]] && [ -f ${test_dir}/compare/${command_id}${postfix}-84.sql ]; then + expected_result=${test_dir}/compare/${command_id}${postfix}-84.sql fi run_mysql "$command" "$uri" \ @@ -564,6 +568,8 @@ compare_mysql_cmd_local() { if [[ $IMAGE_PXC =~ 8\.0 ]] && [ -f ${test_dir}/compare/${command_id}${postfix}-80.sql ]; then expected_result=${test_dir}/compare/${command_id}${postfix}-80.sql + elif [[ $IMAGE_PXC =~ 8\.4 ]] && [ -f ${test_dir}/compare/${command_id}${postfix}-84.sql ]; then + expected_result=${test_dir}/compare/${command_id}${postfix}-84.sql fi run_mysql_local "$command" "$uri" "$pod" "$container_name" \ @@ -607,6 +613,8 @@ compare_mysql_user() { if [[ $IMAGE_PXC =~ 8\.0 ]] && [ -f ${test_dir}/compare/$user$postfix-80.sql ]; then expected_result=${test_dir}/compare/$user$postfix-80.sql + elif [[ $IMAGE_PXC =~ 8\.4 ]] && [ -f ${test_dir}/compare/$user$postfix-84.sql ]; then + expected_result=${test_dir}/compare/$user$postfix-84.sql fi (run_mysql "SHOW GRANTS;" "$uri" || :) \ @@ -625,6 +633,8 @@ compare_mysql_user_local() { if [[ $IMAGE_PXC =~ 8\.0 ]] && [ -f ${test_dir}/compare/$user$postfix-80.sql ]; then expected_result=${test_dir}/compare/$user$postfix-80.sql + elif [[ $IMAGE_PXC =~ 8\.4 ]] && [ -f ${test_dir}/compare/$user$postfix-84.sql ]; then + expected_result=${test_dir}/compare/$user$postfix-84.sql fi (run_mysql_local "SHOW GRANTS;" "$uri" "$pod" "$container_name" || :) \ diff --git a/e2e-tests/haproxy/conf/haproxy.yml b/e2e-tests/haproxy/conf/haproxy.yml index f7b330ebbc..df75e4ebc0 100644 --- a/e2e-tests/haproxy/conf/haproxy.yml +++ b/e2e-tests/haproxy/conf/haproxy.yml @@ -24,7 +24,7 @@ spec: memory: 0.1G cpu: 100m limits: - memory: "1G" + memory: "2G" cpu: "1" volumeSpec: persistentVolumeClaim: diff --git a/e2e-tests/init-deploy/compare/max_allowed_packet-1-84.sql b/e2e-tests/init-deploy/compare/max_allowed_packet-1-84.sql new file mode 100644 index 0000000000..e6c68622ac --- /dev/null +++ b/e2e-tests/init-deploy/compare/max_allowed_packet-1-84.sql @@ -0,0 +1 @@ +67108864 diff --git a/e2e-tests/init-deploy/compare/monitor-84.sql b/e2e-tests/init-deploy/compare/monitor-84.sql new file mode 100644 index 0000000000..2a8c724ee0 --- /dev/null +++ b/e2e-tests/init-deploy/compare/monitor-84.sql @@ -0,0 +1,3 @@ +GRANT SELECT, RELOAD, PROCESS, SUPER, REPLICATION CLIENT ON *.* TO `monitor`@`%` +GRANT SERVICE_CONNECTION_ADMIN,SYSTEM_USER ON *.* TO `monitor`@`%` +GRANT SELECT ON `performance_schema`.* TO `monitor`@`%` diff --git a/e2e-tests/init-deploy/compare/root-84.sql b/e2e-tests/init-deploy/compare/root-84.sql new file mode 100644 index 0000000000..9fbcaf9dea --- /dev/null +++ b/e2e-tests/init-deploy/compare/root-84.sql @@ -0,0 +1,2 @@ +GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE, CREATE ROLE, DROP ROLE ON *.* TO `root`@`%` WITH GRANT OPTION +GRANT ALLOW_NONEXISTENT_DEFINER,APPLICATION_PASSWORD_ADMIN,AUDIT_ABORT_EXEMPT,AUDIT_ADMIN,AUTHENTICATION_POLICY_ADMIN,BACKUP_ADMIN,BINLOG_ADMIN,BINLOG_ENCRYPTION_ADMIN,CLONE_ADMIN,CONNECTION_ADMIN,ENCRYPTION_KEY_ADMIN,FIREWALL_EXEMPT,FLUSH_OPTIMIZER_COSTS,FLUSH_PRIVILEGES,FLUSH_STATUS,FLUSH_TABLES,FLUSH_USER_RESOURCES,GROUP_REPLICATION_ADMIN,GROUP_REPLICATION_STREAM,INNODB_REDO_LOG_ARCHIVE,INNODB_REDO_LOG_ENABLE,OPTIMIZE_LOCAL_TABLE,PASSWORDLESS_USER_ADMIN,PERSIST_RO_VARIABLES_ADMIN,REPLICATION_APPLIER,REPLICATION_SLAVE_ADMIN,RESOURCE_GROUP_ADMIN,RESOURCE_GROUP_USER,ROLE_ADMIN,SENSITIVE_VARIABLES_OBSERVER,SERVICE_CONNECTION_ADMIN,SESSION_VARIABLES_ADMIN,SET_ANY_DEFINER,SHOW_ROUTINE,SYSTEM_VARIABLES_ADMIN,TABLE_ENCRYPTION_ADMIN,TELEMETRY_LOG_ADMIN,TRANSACTION_GTID_TAG,XA_RECOVER_ADMIN ON *.* TO `root`@`%` WITH GRANT OPTION diff --git a/e2e-tests/init-deploy/compare/statefulset_some-name-pxc-k127-oc.yml b/e2e-tests/init-deploy/compare/statefulset_some-name-pxc-k127-oc.yml index 13ae08cdb8..e2b7596b72 100644 --- a/e2e-tests/init-deploy/compare/statefulset_some-name-pxc-k127-oc.yml +++ b/e2e-tests/init-deploy/compare/statefulset_some-name-pxc-k127-oc.yml @@ -175,7 +175,7 @@ spec: resources: limits: cpu: "1" - memory: 1G + memory: 2G requests: cpu: 100m memory: 100M diff --git a/e2e-tests/init-deploy/compare/statefulset_some-name-pxc-k127.yml b/e2e-tests/init-deploy/compare/statefulset_some-name-pxc-k127.yml index 92a1885e22..ea19b34fab 100644 --- a/e2e-tests/init-deploy/compare/statefulset_some-name-pxc-k127.yml +++ b/e2e-tests/init-deploy/compare/statefulset_some-name-pxc-k127.yml @@ -175,7 +175,7 @@ spec: resources: limits: cpu: "1" - memory: 1G + memory: 2G requests: cpu: 100m memory: 100M diff --git a/e2e-tests/init-deploy/compare/xtrabackup-84.sql b/e2e-tests/init-deploy/compare/xtrabackup-84.sql new file mode 100644 index 0000000000..4f27afeec7 --- /dev/null +++ b/e2e-tests/init-deploy/compare/xtrabackup-84.sql @@ -0,0 +1,2 @@ +GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE, CREATE ROLE, DROP ROLE ON *.* TO `xtrabackup`@`%` WITH GRANT OPTION +GRANT ALLOW_NONEXISTENT_DEFINER,APPLICATION_PASSWORD_ADMIN,AUDIT_ABORT_EXEMPT,AUDIT_ADMIN,AUTHENTICATION_POLICY_ADMIN,BACKUP_ADMIN,BINLOG_ADMIN,BINLOG_ENCRYPTION_ADMIN,CLONE_ADMIN,CONNECTION_ADMIN,ENCRYPTION_KEY_ADMIN,FIREWALL_EXEMPT,FLUSH_OPTIMIZER_COSTS,FLUSH_PRIVILEGES,FLUSH_STATUS,FLUSH_TABLES,FLUSH_USER_RESOURCES,GROUP_REPLICATION_ADMIN,GROUP_REPLICATION_STREAM,INNODB_REDO_LOG_ARCHIVE,INNODB_REDO_LOG_ENABLE,OPTIMIZE_LOCAL_TABLE,PASSWORDLESS_USER_ADMIN,PERSIST_RO_VARIABLES_ADMIN,REPLICATION_APPLIER,REPLICATION_SLAVE_ADMIN,RESOURCE_GROUP_ADMIN,RESOURCE_GROUP_USER,ROLE_ADMIN,SENSITIVE_VARIABLES_OBSERVER,SERVICE_CONNECTION_ADMIN,SESSION_VARIABLES_ADMIN,SET_ANY_DEFINER,SHOW_ROUTINE,SYSTEM_USER,SYSTEM_VARIABLES_ADMIN,TABLE_ENCRYPTION_ADMIN,TELEMETRY_LOG_ADMIN,TRANSACTION_GTID_TAG,XA_RECOVER_ADMIN ON *.* TO `xtrabackup`@`%` WITH GRANT OPTION diff --git a/e2e-tests/limits/compare/statefulset_no-requests-pxc-increased-k127-oc.yml b/e2e-tests/limits/compare/statefulset_no-requests-pxc-increased-k127-oc.yml index 62cd9b6fc1..65645c191f 100644 --- a/e2e-tests/limits/compare/statefulset_no-requests-pxc-increased-k127-oc.yml +++ b/e2e-tests/limits/compare/statefulset_no-requests-pxc-increased-k127-oc.yml @@ -117,7 +117,7 @@ spec: resources: limits: cpu: 600m - memory: 1G + memory: 2G terminationMessagePath: /dev/termination-log terminationMessagePolicy: File volumeMounts: diff --git a/e2e-tests/limits/compare/statefulset_no-requests-pxc-increased-k127.yml b/e2e-tests/limits/compare/statefulset_no-requests-pxc-increased-k127.yml index dc06cf0cb1..ac70f11e71 100644 --- a/e2e-tests/limits/compare/statefulset_no-requests-pxc-increased-k127.yml +++ b/e2e-tests/limits/compare/statefulset_no-requests-pxc-increased-k127.yml @@ -117,7 +117,7 @@ spec: resources: limits: cpu: 600m - memory: 1G + memory: 2G terminationMessagePath: /dev/termination-log terminationMessagePolicy: File volumeMounts: diff --git a/e2e-tests/limits/compare/statefulset_no-requests-pxc-k127-oc.yml b/e2e-tests/limits/compare/statefulset_no-requests-pxc-k127-oc.yml index 8d00c014b7..3dc65875cd 100644 --- a/e2e-tests/limits/compare/statefulset_no-requests-pxc-k127-oc.yml +++ b/e2e-tests/limits/compare/statefulset_no-requests-pxc-k127-oc.yml @@ -117,7 +117,7 @@ spec: resources: limits: cpu: 300m - memory: 600M + memory: 2G terminationMessagePath: /dev/termination-log terminationMessagePolicy: File volumeMounts: diff --git a/e2e-tests/limits/compare/statefulset_no-requests-pxc-k127.yml b/e2e-tests/limits/compare/statefulset_no-requests-pxc-k127.yml index a38cb56472..624a326d7d 100644 --- a/e2e-tests/limits/compare/statefulset_no-requests-pxc-k127.yml +++ b/e2e-tests/limits/compare/statefulset_no-requests-pxc-k127.yml @@ -117,7 +117,7 @@ spec: resources: limits: cpu: 300m - memory: 600M + memory: 2G terminationMessagePath: /dev/termination-log terminationMessagePolicy: File volumeMounts: diff --git a/e2e-tests/limits/conf/no-requests.yml b/e2e-tests/limits/conf/no-requests.yml index 6b591a5c0a..5049dd65f2 100644 --- a/e2e-tests/limits/conf/no-requests.yml +++ b/e2e-tests/limits/conf/no-requests.yml @@ -11,7 +11,7 @@ spec: image: -pxc resources: limits: - memory: 600M + memory: 2G cpu: 300m volumeSpec: persistentVolumeClaim: diff --git a/e2e-tests/pitr-gap-errors/conf/pitr-gap-errors.yml b/e2e-tests/pitr-gap-errors/conf/pitr-gap-errors.yml index 830b9aea17..213751aed3 100755 --- a/e2e-tests/pitr-gap-errors/conf/pitr-gap-errors.yml +++ b/e2e-tests/pitr-gap-errors/conf/pitr-gap-errors.yml @@ -23,7 +23,7 @@ spec: memory: 0.1G cpu: 100m limits: - memory: "1G" + memory: "2G" cpu: "1" volumeSpec: persistentVolumeClaim: diff --git a/e2e-tests/pitr/conf/pitr.yml b/e2e-tests/pitr/conf/pitr.yml index fbced6e1f8..41ef4dbf7c 100755 --- a/e2e-tests/pitr/conf/pitr.yml +++ b/e2e-tests/pitr/conf/pitr.yml @@ -23,7 +23,7 @@ spec: memory: 0.1G cpu: 100m limits: - memory: "1G" + memory: "2G" cpu: "1" volumeSpec: persistentVolumeClaim: diff --git a/e2e-tests/proxysql-sidecar-res-limits/conf/side-car.yml b/e2e-tests/proxysql-sidecar-res-limits/conf/side-car.yml index d0ea625f8e..244d328d2e 100644 --- a/e2e-tests/proxysql-sidecar-res-limits/conf/side-car.yml +++ b/e2e-tests/proxysql-sidecar-res-limits/conf/side-car.yml @@ -16,7 +16,7 @@ spec: memory: 0.1G cpu: 100m limits: - memory: "1G" + memory: "2G" cpu: "1" volumeSpec: persistentVolumeClaim: diff --git a/e2e-tests/pvc-resize/conf/some-name-eks.yml b/e2e-tests/pvc-resize/conf/some-name-eks.yml index a07a187383..be33e3b2cf 100644 --- a/e2e-tests/pvc-resize/conf/some-name-eks.yml +++ b/e2e-tests/pvc-resize/conf/some-name-eks.yml @@ -19,7 +19,7 @@ spec: memory: 0.1G cpu: 100m limits: - memory: "1G" + memory: "2G" cpu: "1" volumeSpec: persistentVolumeClaim: diff --git a/e2e-tests/pvc-resize/conf/some-name.yml b/e2e-tests/pvc-resize/conf/some-name.yml index bada501d4c..84f824d5a0 100644 --- a/e2e-tests/pvc-resize/conf/some-name.yml +++ b/e2e-tests/pvc-resize/conf/some-name.yml @@ -18,7 +18,7 @@ spec: memory: 0.1G cpu: 100m limits: - memory: "1G" + memory: "2G" cpu: "1" volumeSpec: persistentVolumeClaim: diff --git a/e2e-tests/scaling-proxysql/conf/scaling-proxysql.yml b/e2e-tests/scaling-proxysql/conf/scaling-proxysql.yml index 864e8fccc5..d9e037b36d 100644 --- a/e2e-tests/scaling-proxysql/conf/scaling-proxysql.yml +++ b/e2e-tests/scaling-proxysql/conf/scaling-proxysql.yml @@ -15,7 +15,7 @@ spec: memory: 0.1G cpu: 100m limits: - memory: "1G" + memory: "2G" cpu: "1" volumeSpec: persistentVolumeClaim: diff --git a/e2e-tests/security-context/conf/sec-context-changes.yml b/e2e-tests/security-context/conf/sec-context-changes.yml index 9d28197813..111ca808af 100644 --- a/e2e-tests/security-context/conf/sec-context-changes.yml +++ b/e2e-tests/security-context/conf/sec-context-changes.yml @@ -34,7 +34,7 @@ spec: memory: 0.1G cpu: 100m limits: - memory: "1G" + memory: "2G" cpu: "1" volumeSpec: persistentVolumeClaim: diff --git a/e2e-tests/security-context/conf/sec-context.yml b/e2e-tests/security-context/conf/sec-context.yml index 9167c0b287..f5ee878322 100644 --- a/e2e-tests/security-context/conf/sec-context.yml +++ b/e2e-tests/security-context/conf/sec-context.yml @@ -24,7 +24,7 @@ spec: memory: 0.1G cpu: 100m limits: - memory: "1G" + memory: "2G" cpu: "1" volumeSpec: persistentVolumeClaim: diff --git a/e2e-tests/tls-issue-cert-manager-ref/conf/some-name-tls-issueref.yml b/e2e-tests/tls-issue-cert-manager-ref/conf/some-name-tls-issueref.yml index ea1d1531e1..ad121ef4ea 100644 --- a/e2e-tests/tls-issue-cert-manager-ref/conf/some-name-tls-issueref.yml +++ b/e2e-tests/tls-issue-cert-manager-ref/conf/some-name-tls-issueref.yml @@ -22,7 +22,7 @@ spec: memory: 0.1G cpu: 100m limits: - memory: "1G" + memory: "2G" cpu: "1" volumeSpec: persistentVolumeClaim: diff --git a/e2e-tests/tls-issue-cert-manager/conf/some-name-tls-issue-haproxy.yml b/e2e-tests/tls-issue-cert-manager/conf/some-name-tls-issue-haproxy.yml index b258645407..6df30dd9a7 100644 --- a/e2e-tests/tls-issue-cert-manager/conf/some-name-tls-issue-haproxy.yml +++ b/e2e-tests/tls-issue-cert-manager/conf/some-name-tls-issue-haproxy.yml @@ -19,7 +19,7 @@ spec: memory: 0.1G cpu: 100m limits: - memory: "1G" + memory: "2G" cpu: "1" volumeSpec: persistentVolumeClaim: diff --git a/e2e-tests/tls-issue-cert-manager/conf/some-name-tls-issue.yml b/e2e-tests/tls-issue-cert-manager/conf/some-name-tls-issue.yml index 84700992ea..1f05d871d6 100644 --- a/e2e-tests/tls-issue-cert-manager/conf/some-name-tls-issue.yml +++ b/e2e-tests/tls-issue-cert-manager/conf/some-name-tls-issue.yml @@ -19,7 +19,7 @@ spec: memory: 0.1G cpu: 100m limits: - memory: "1G" + memory: "2G" cpu: "1" volumeSpec: persistentVolumeClaim: diff --git a/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1141-oc.yml b/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1141-oc.yml index d775f78770..1d045b704a 100644 --- a/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1141-oc.yml +++ b/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1141-oc.yml @@ -171,7 +171,7 @@ spec: resources: limits: cpu: "1" - memory: 1G + memory: 2G requests: cpu: 100m memory: 100M diff --git a/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1141.yml b/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1141.yml index 1449ca31f0..47f50b57f0 100644 --- a/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1141.yml +++ b/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1141.yml @@ -171,7 +171,7 @@ spec: resources: limits: cpu: "1" - memory: 1G + memory: 2G requests: cpu: 100m memory: 100M diff --git a/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1151-oc.yml b/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1151-oc.yml index 9f269576f7..ceda57c5c2 100644 --- a/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1151-oc.yml +++ b/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1151-oc.yml @@ -171,7 +171,7 @@ spec: resources: limits: cpu: "1" - memory: 1G + memory: 2G requests: cpu: 100m memory: 100M diff --git a/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1151.yml b/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1151.yml index d00b0abed2..35860b406e 100644 --- a/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1151.yml +++ b/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1151.yml @@ -171,7 +171,7 @@ spec: resources: limits: cpu: "1" - memory: 1G + memory: 2G requests: cpu: 100m memory: 100M diff --git a/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1160-k127-oc.yml b/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1160-k127-oc.yml new file mode 100644 index 0000000000..ceda57c5c2 --- /dev/null +++ b/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1160-k127-oc.yml @@ -0,0 +1,274 @@ +apiVersion: apps/v1 +kind: StatefulSet +metadata: + generation: 3 + name: some-name-pxc + ownerReferences: + - controller: true + kind: PerconaXtraDBCluster + name: some-name +spec: + persistentVolumeClaimRetentionPolicy: + whenDeleted: Retain + whenScaled: Retain + podManagementPolicy: OrderedReady + replicas: 3 + revisionHistoryLimit: 10 + selector: + matchLabels: + app.kubernetes.io/component: pxc + app.kubernetes.io/instance: some-name + app.kubernetes.io/managed-by: percona-xtradb-cluster-operator + app.kubernetes.io/name: percona-xtradb-cluster + app.kubernetes.io/part-of: percona-xtradb-cluster + serviceName: some-name-pxc + template: + metadata: + labels: + app.kubernetes.io/component: pxc + app.kubernetes.io/instance: some-name + app.kubernetes.io/managed-by: percona-xtradb-cluster-operator + app.kubernetes.io/name: percona-xtradb-cluster + app.kubernetes.io/part-of: percona-xtradb-cluster + spec: + affinity: + podAntiAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchLabels: + app.kubernetes.io/component: pxc + app.kubernetes.io/instance: some-name + app.kubernetes.io/managed-by: percona-xtradb-cluster-operator + app.kubernetes.io/name: percona-xtradb-cluster + app.kubernetes.io/part-of: percona-xtradb-cluster + topologyKey: kubernetes.io/hostname + containers: + - env: + - name: LOG_DATA_DIR + value: /var/lib/mysql + - name: POD_NAMESPASE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.namespace + - name: POD_NAME + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.name + envFrom: + - secretRef: + name: some-name-log-collector + optional: true + imagePullPolicy: Always + name: logs + resources: {} + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + volumeMounts: + - mountPath: /var/lib/mysql + name: datadir + - args: + - logrotate + env: + - name: SERVICE_TYPE + value: mysql + - name: MONITOR_PASSWORD + valueFrom: + secretKeyRef: + key: monitor + name: internal-some-name + imagePullPolicy: Always + name: logrotate + resources: {} + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + volumeMounts: + - mountPath: /var/lib/mysql + name: datadir + - args: + - mysqld + command: + - /var/lib/mysql/pxc-entrypoint.sh + env: + - name: PXC_SERVICE + value: some-name-pxc-unready + - name: MONITOR_HOST + value: '%' + - name: MYSQL_ROOT_PASSWORD + valueFrom: + secretKeyRef: + key: root + name: internal-some-name + - name: XTRABACKUP_PASSWORD + valueFrom: + secretKeyRef: + key: xtrabackup + name: internal-some-name + - name: MONITOR_PASSWORD + valueFrom: + secretKeyRef: + key: monitor + name: internal-some-name + - name: LOG_DATA_DIR + value: /var/lib/mysql + - name: IS_LOGCOLLECTOR + value: "yes" + - name: OPERATOR_ADMIN_PASSWORD + valueFrom: + secretKeyRef: + key: operator + name: internal-some-name + - name: LIVENESS_CHECK_TIMEOUT + value: "5" + - name: READINESS_CHECK_TIMEOUT + value: "15" + - name: DEFAULT_AUTHENTICATION_PLUGIN + value: mysql_native_password + envFrom: + - secretRef: + name: some-name-env-vars-pxc + optional: true + imagePullPolicy: Always + livenessProbe: + exec: + command: + - /var/lib/mysql/liveness-check.sh + failureThreshold: 3 + initialDelaySeconds: 300 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 + name: pxc + ports: + - containerPort: 3306 + name: mysql + protocol: TCP + - containerPort: 4444 + name: sst + protocol: TCP + - containerPort: 4567 + name: write-set + protocol: TCP + - containerPort: 4568 + name: ist + protocol: TCP + - containerPort: 33062 + name: mysql-admin + protocol: TCP + - containerPort: 33060 + name: mysqlx + protocol: TCP + readinessProbe: + exec: + command: + - /var/lib/mysql/readiness-check.sh + failureThreshold: 5 + initialDelaySeconds: 15 + periodSeconds: 30 + successThreshold: 1 + timeoutSeconds: 15 + resources: + limits: + cpu: "1" + memory: 2G + requests: + cpu: 100m + memory: 100M + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + volumeMounts: + - mountPath: /var/lib/mysql + name: datadir + - mountPath: /etc/percona-xtradb-cluster.conf.d + name: config + - mountPath: /tmp + name: tmp + - mountPath: /etc/mysql/ssl + name: ssl + - mountPath: /etc/mysql/ssl-internal + name: ssl-internal + - mountPath: /etc/mysql/mysql-users-secret + name: mysql-users-secret-file + - mountPath: /etc/my.cnf.d + name: auto-config + - mountPath: /etc/mysql/vault-keyring-secret + name: vault-keyring-secret + - mountPath: /etc/mysql/init-file + name: mysql-init-file + dnsPolicy: ClusterFirst + initContainers: + - command: + - /pxc-init-entrypoint.sh + imagePullPolicy: Always + name: pxc-init + resources: + limits: + cpu: 50m + memory: 50M + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + volumeMounts: + - mountPath: /var/lib/mysql + name: datadir + restartPolicy: Always + schedulerName: default-scheduler + securityContext: + supplementalGroups: + - 1001 + serviceAccount: default + serviceAccountName: default + terminationGracePeriodSeconds: 600 + volumes: + - emptyDir: {} + name: tmp + - configMap: + defaultMode: 420 + name: some-name-pxc + optional: true + name: config + - name: ssl-internal + secret: + defaultMode: 420 + optional: true + secretName: some-name-ssl-internal + - name: ssl + secret: + defaultMode: 420 + optional: false + secretName: some-name-ssl + - configMap: + defaultMode: 420 + name: auto-some-name-pxc + optional: true + name: auto-config + - name: vault-keyring-secret + secret: + defaultMode: 420 + optional: true + secretName: some-name-vault + - name: mysql-users-secret-file + secret: + defaultMode: 420 + optional: false + secretName: internal-some-name + - name: mysql-init-file + secret: + defaultMode: 420 + optional: true + secretName: some-name-mysql-init + updateStrategy: + rollingUpdate: + partition: 0 + type: RollingUpdate + volumeClaimTemplates: + - metadata: + name: datadir + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 2Gi + status: + phase: Pending diff --git a/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1160-k127.yml b/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1160-k127.yml new file mode 100644 index 0000000000..9b1296fba1 --- /dev/null +++ b/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1160-k127.yml @@ -0,0 +1,275 @@ +apiVersion: apps/v1 +kind: StatefulSet +metadata: + generation: 3 + name: some-name-pxc + ownerReferences: + - controller: true + kind: PerconaXtraDBCluster + name: some-name +spec: + persistentVolumeClaimRetentionPolicy: + whenDeleted: Retain + whenScaled: Retain + podManagementPolicy: OrderedReady + replicas: 3 + revisionHistoryLimit: 10 + selector: + matchLabels: + app.kubernetes.io/component: pxc + app.kubernetes.io/instance: some-name + app.kubernetes.io/managed-by: percona-xtradb-cluster-operator + app.kubernetes.io/name: percona-xtradb-cluster + app.kubernetes.io/part-of: percona-xtradb-cluster + serviceName: some-name-pxc + template: + metadata: + labels: + app.kubernetes.io/component: pxc + app.kubernetes.io/instance: some-name + app.kubernetes.io/managed-by: percona-xtradb-cluster-operator + app.kubernetes.io/name: percona-xtradb-cluster + app.kubernetes.io/part-of: percona-xtradb-cluster + spec: + affinity: + podAntiAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchLabels: + app.kubernetes.io/component: pxc + app.kubernetes.io/instance: some-name + app.kubernetes.io/managed-by: percona-xtradb-cluster-operator + app.kubernetes.io/name: percona-xtradb-cluster + app.kubernetes.io/part-of: percona-xtradb-cluster + topologyKey: kubernetes.io/hostname + containers: + - env: + - name: LOG_DATA_DIR + value: /var/lib/mysql + - name: POD_NAMESPASE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.namespace + - name: POD_NAME + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.name + envFrom: + - secretRef: + name: some-name-log-collector + optional: true + imagePullPolicy: Always + name: logs + resources: {} + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + volumeMounts: + - mountPath: /var/lib/mysql + name: datadir + - args: + - logrotate + env: + - name: SERVICE_TYPE + value: mysql + - name: MONITOR_PASSWORD + valueFrom: + secretKeyRef: + key: monitor + name: internal-some-name + imagePullPolicy: Always + name: logrotate + resources: {} + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + volumeMounts: + - mountPath: /var/lib/mysql + name: datadir + - args: + - mysqld + command: + - /var/lib/mysql/pxc-entrypoint.sh + env: + - name: PXC_SERVICE + value: some-name-pxc-unready + - name: MONITOR_HOST + value: '%' + - name: MYSQL_ROOT_PASSWORD + valueFrom: + secretKeyRef: + key: root + name: internal-some-name + - name: XTRABACKUP_PASSWORD + valueFrom: + secretKeyRef: + key: xtrabackup + name: internal-some-name + - name: MONITOR_PASSWORD + valueFrom: + secretKeyRef: + key: monitor + name: internal-some-name + - name: LOG_DATA_DIR + value: /var/lib/mysql + - name: IS_LOGCOLLECTOR + value: "yes" + - name: OPERATOR_ADMIN_PASSWORD + valueFrom: + secretKeyRef: + key: operator + name: internal-some-name + - name: LIVENESS_CHECK_TIMEOUT + value: "5" + - name: READINESS_CHECK_TIMEOUT + value: "15" + - name: DEFAULT_AUTHENTICATION_PLUGIN + value: mysql_native_password + envFrom: + - secretRef: + name: some-name-env-vars-pxc + optional: true + imagePullPolicy: Always + livenessProbe: + exec: + command: + - /var/lib/mysql/liveness-check.sh + failureThreshold: 3 + initialDelaySeconds: 300 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 + name: pxc + ports: + - containerPort: 3306 + name: mysql + protocol: TCP + - containerPort: 4444 + name: sst + protocol: TCP + - containerPort: 4567 + name: write-set + protocol: TCP + - containerPort: 4568 + name: ist + protocol: TCP + - containerPort: 33062 + name: mysql-admin + protocol: TCP + - containerPort: 33060 + name: mysqlx + protocol: TCP + readinessProbe: + exec: + command: + - /var/lib/mysql/readiness-check.sh + failureThreshold: 5 + initialDelaySeconds: 15 + periodSeconds: 30 + successThreshold: 1 + timeoutSeconds: 15 + resources: + limits: + cpu: "1" + memory: 2G + requests: + cpu: 100m + memory: 100M + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + volumeMounts: + - mountPath: /var/lib/mysql + name: datadir + - mountPath: /etc/percona-xtradb-cluster.conf.d + name: config + - mountPath: /tmp + name: tmp + - mountPath: /etc/mysql/ssl + name: ssl + - mountPath: /etc/mysql/ssl-internal + name: ssl-internal + - mountPath: /etc/mysql/mysql-users-secret + name: mysql-users-secret-file + - mountPath: /etc/my.cnf.d + name: auto-config + - mountPath: /etc/mysql/vault-keyring-secret + name: vault-keyring-secret + - mountPath: /etc/mysql/init-file + name: mysql-init-file + dnsPolicy: ClusterFirst + initContainers: + - command: + - /pxc-init-entrypoint.sh + imagePullPolicy: Always + name: pxc-init + resources: + limits: + cpu: 50m + memory: 50M + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + volumeMounts: + - mountPath: /var/lib/mysql + name: datadir + restartPolicy: Always + schedulerName: default-scheduler + securityContext: + fsGroup: 1001 + supplementalGroups: + - 1001 + serviceAccount: default + serviceAccountName: default + terminationGracePeriodSeconds: 600 + volumes: + - emptyDir: {} + name: tmp + - configMap: + defaultMode: 420 + name: some-name-pxc + optional: true + name: config + - name: ssl-internal + secret: + defaultMode: 420 + optional: true + secretName: some-name-ssl-internal + - name: ssl + secret: + defaultMode: 420 + optional: false + secretName: some-name-ssl + - configMap: + defaultMode: 420 + name: auto-some-name-pxc + optional: true + name: auto-config + - name: vault-keyring-secret + secret: + defaultMode: 420 + optional: true + secretName: some-name-vault + - name: mysql-users-secret-file + secret: + defaultMode: 420 + optional: false + secretName: internal-some-name + - name: mysql-init-file + secret: + defaultMode: 420 + optional: true + secretName: some-name-mysql-init + updateStrategy: + rollingUpdate: + partition: 0 + type: RollingUpdate + volumeClaimTemplates: + - metadata: + name: datadir + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 2Gi + status: + phase: Pending diff --git a/e2e-tests/users/compare/select-4-84.sql b/e2e-tests/users/compare/select-4-84.sql new file mode 100644 index 0000000000..d9695b3c54 --- /dev/null +++ b/e2e-tests/users/compare/select-4-84.sql @@ -0,0 +1,87 @@ +ADMINISTRABLE_ROLE_AUTHORIZATIONS +APPLICABLE_ROLES +CHARACTER_SETS +CHECK_CONSTRAINTS +CLIENT_STATISTICS +COLLATIONS +COLLATION_CHARACTER_SET_APPLICABILITY +COLUMNS +COLUMNS_EXTENSIONS +COLUMN_PRIVILEGES +COLUMN_STATISTICS +COMPRESSION_DICTIONARY +COMPRESSION_DICTIONARY_TABLES +ENABLED_ROLES +ENGINES +EVENTS +FILES +GLOBAL_TEMPORARY_TABLES +INDEX_STATISTICS +INNODB_BUFFER_PAGE +INNODB_BUFFER_PAGE_LRU +INNODB_BUFFER_POOL_STATS +INNODB_CACHED_INDEXES +INNODB_CMP +INNODB_CMPMEM +INNODB_CMPMEM_RESET +INNODB_CMP_PER_INDEX +INNODB_CMP_PER_INDEX_RESET +INNODB_CMP_RESET +INNODB_COLUMNS +INNODB_DATAFILES +INNODB_FIELDS +INNODB_FOREIGN +INNODB_FOREIGN_COLS +INNODB_FT_BEING_DELETED +INNODB_FT_CONFIG +INNODB_FT_DEFAULT_STOPWORD +INNODB_FT_DELETED +INNODB_FT_INDEX_CACHE +INNODB_FT_INDEX_TABLE +INNODB_INDEXES +INNODB_METRICS +INNODB_SESSION_TEMP_TABLESPACES +INNODB_TABLES +INNODB_TABLESPACES +INNODB_TABLESPACES_BRIEF +INNODB_TABLESTATS +INNODB_TEMP_TABLE_INFO +INNODB_TRX +INNODB_VIRTUAL +KEYWORDS +KEY_COLUMN_USAGE +OPTIMIZER_TRACE +PARAMETERS +PARTITIONS +PLUGINS +PROCESSLIST +PROFILING +REFERENTIAL_CONSTRAINTS +RESOURCE_GROUPS +ROLE_COLUMN_GRANTS +ROLE_ROUTINE_GRANTS +ROLE_TABLE_GRANTS +ROUTINES +SCHEMATA +SCHEMATA_EXTENSIONS +SCHEMA_PRIVILEGES +STATISTICS +ST_GEOMETRY_COLUMNS +ST_SPATIAL_REFERENCE_SYSTEMS +ST_UNITS_OF_MEASURE +TABLES +TABLESPACES_EXTENSIONS +TABLES_EXTENSIONS +TABLE_CONSTRAINTS +TABLE_CONSTRAINTS_EXTENSIONS +TABLE_PRIVILEGES +TABLE_STATISTICS +TEMPORARY_TABLES +THREAD_STATISTICS +TRIGGERS +USER_ATTRIBUTES +USER_PRIVILEGES +USER_STATISTICS +VIEWS +VIEW_ROUTINE_USAGE +VIEW_TABLE_USAGE diff --git a/e2e-tests/users/conf/some-name.yml b/e2e-tests/users/conf/some-name.yml index ce30c6c6b7..76798b8ccd 100644 --- a/e2e-tests/users/conf/some-name.yml +++ b/e2e-tests/users/conf/some-name.yml @@ -16,7 +16,7 @@ spec: memory: 0.1G cpu: 100m limits: - memory: "1G" + memory: "2G" cpu: "1" volumeSpec: persistentVolumeClaim: From 24f0615a151e877a3eed87c5d81610698421aa44 Mon Sep 17 00:00:00 2001 From: Pavel Tankov <4014969+ptankov@users.noreply.github.com> Date: Thu, 5 Dec 2024 19:57:19 +0200 Subject: [PATCH 15/60] Set the default value of the enableVolumeExpansion param to false to match v1.15.1 (#1896) --- deploy/cr.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deploy/cr.yaml b/deploy/cr.yaml index aba1eb78d7..44ba9cd637 100644 --- a/deploy/cr.yaml +++ b/deploy/cr.yaml @@ -11,7 +11,7 @@ metadata: # percona.com/issue-vault-token: "true" spec: crVersion: 1.16.0 -# enableVolumeExpansion: true +# enableVolumeExpansion: false # ignoreAnnotations: # - iam.amazonaws.com/role # ignoreLabels: From ae06438cb46d9366c28b0ae08650e4b014730d35 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 5 Dec 2024 20:00:04 +0200 Subject: [PATCH 16/60] CLOUD-727: Bump golang.org/x/sync from 0.9.0 to 0.10.0 (#1898) Bumps [golang.org/x/sync](https://github.com/golang/sync) from 0.9.0 to 0.10.0. - [Commits](https://github.com/golang/sync/compare/v0.9.0...v0.10.0) --- updated-dependencies: - dependency-name: golang.org/x/sync dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Viacheslav Sarzhan --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 51f6acf08f..9d8a5d99ad 100644 --- a/go.mod +++ b/go.mod @@ -25,7 +25,7 @@ require ( github.com/pkg/errors v0.9.1 github.com/robfig/cron/v3 v3.0.1 go.uber.org/zap v1.27.0 - golang.org/x/sync v0.9.0 + golang.org/x/sync v0.10.0 k8s.io/api v0.31.3 k8s.io/apimachinery v0.31.3 k8s.io/client-go v0.31.3 diff --git a/go.sum b/go.sum index 7f3879ad25..54827cf6fc 100644 --- a/go.sum +++ b/go.sum @@ -216,8 +216,8 @@ golang.org/x/oauth2 v0.23.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbht golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= -golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= +golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= From a0277c4a20e01ca7fb6a7a984943be0da55b8082 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 5 Dec 2024 20:02:19 +0200 Subject: [PATCH 17/60] CLOUD-727: Bump sigs.k8s.io/controller-runtime from 0.19.2 to 0.19.3 (#1897) Bumps [sigs.k8s.io/controller-runtime](https://github.com/kubernetes-sigs/controller-runtime) from 0.19.2 to 0.19.3. - [Release notes](https://github.com/kubernetes-sigs/controller-runtime/releases) - [Changelog](https://github.com/kubernetes-sigs/controller-runtime/blob/main/RELEASE.md) - [Commits](https://github.com/kubernetes-sigs/controller-runtime/compare/v0.19.2...v0.19.3) --- updated-dependencies: - dependency-name: sigs.k8s.io/controller-runtime dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 3 +-- go.sum | 6 ++---- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 9d8a5d99ad..d5932664e1 100644 --- a/go.mod +++ b/go.mod @@ -30,7 +30,7 @@ require ( k8s.io/apimachinery v0.31.3 k8s.io/client-go v0.31.3 k8s.io/klog/v2 v2.130.1 - sigs.k8s.io/controller-runtime v0.19.2 + sigs.k8s.io/controller-runtime v0.19.3 ) require ( @@ -44,7 +44,6 @@ require ( github.com/dustin/go-humanize v1.0.1 // indirect github.com/emicklei/go-restful/v3 v3.12.1 // indirect github.com/evanphx/json-patch/v5 v5.9.0 // indirect - github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/fxamacker/cbor/v2 v2.7.0 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-openapi/analysis v0.23.0 // indirect diff --git a/go.sum b/go.sum index 54827cf6fc..3dcc1ac7e7 100644 --- a/go.sum +++ b/go.sum @@ -40,8 +40,6 @@ github.com/evanphx/json-patch/v5 v5.9.0 h1:kcBlZQbplgElYIlo/n1hJbls2z/1awpXxpRi0 github.com/evanphx/json-patch/v5 v5.9.0/go.mod h1:VNkHZ/282BpEyt/tObQO8s5CMPmYYq14uClGH4abBuQ= github.com/flosch/pongo2/v6 v6.0.0 h1:lsGru8IAzHgIAw6H2m4PCyleO58I40ow6apih0WprMU= github.com/flosch/pongo2/v6 v6.0.0/go.mod h1:CuDpFm47R0uGGE7z13/tTlt1Y6zdxvr2RLT5LJhsHEU= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E= github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ= github.com/go-ini/ini v1.67.0 h1:z6ZrTEZqSWOTyH2FlglNbNgARyHG8oLW9gMELqKr06A= @@ -272,8 +270,8 @@ k8s.io/kube-openapi v0.0.0-20240903163716-9e1beecbcb38 h1:1dWzkmJrrprYvjGwh9kEUx k8s.io/kube-openapi v0.0.0-20240903163716-9e1beecbcb38/go.mod h1:coRQXBK9NxO98XUv3ZD6AK3xzHCxV6+b7lrquKwaKzA= k8s.io/utils v0.0.0-20240921022957-49e7df575cb6 h1:MDF6h2H/h4tbzmtIKTuctcwZmY0tY9mD9fNT47QO6HI= k8s.io/utils v0.0.0-20240921022957-49e7df575cb6/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= -sigs.k8s.io/controller-runtime v0.19.2 h1:3sPrF58XQEPzbE8T81TN6selQIMGbtYwuaJ6eDssDF8= -sigs.k8s.io/controller-runtime v0.19.2/go.mod h1:iRmWllt8IlaLjvTTDLhRBXIEtkCK6hwVBJJsYS9Ajf4= +sigs.k8s.io/controller-runtime v0.19.3 h1:XO2GvC9OPftRst6xWCpTgBZO04S2cbp0Qqkj8bX1sPw= +sigs.k8s.io/controller-runtime v0.19.3/go.mod h1:j4j87DqtsThvwTv5/Tc5NFRyyF/RF0ip4+62tbTSIUM= sigs.k8s.io/gateway-api v1.1.0 h1:DsLDXCi6jR+Xz8/xd0Z1PYl2Pn0TyaFMOPPZIj4inDM= sigs.k8s.io/gateway-api v1.1.0/go.mod h1:ZH4lHrL2sDi0FHZ9jjneb8kKnGzFWyrTya35sWUTrRs= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= From 63450ce34a6c2348ff1f30a5c29ec2a51046c4e5 Mon Sep 17 00:00:00 2001 From: Vlad Gusev Date: Thu, 5 Dec 2024 19:03:31 +0100 Subject: [PATCH 18/60] K8SPXC-1462: Restart PXC pods after monitor user password change (#1816) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * K8SPXC-1462 Restart PXC pods after monitor user password change * K8SPXC-1462 Restart PXC pods only if sidecars have secrets --------- Co-authored-by: Viacheslav Sarzhan Co-authored-by: Ege Güneş Co-authored-by: Inel Pandzic --- pkg/apis/pxc/v1/pxc_types.go | 29 ++++++++++++++++++++++++++ pkg/controller/pxc/users.go | 3 +++ pkg/controller/pxc/users_without_dp.go | 3 +++ 3 files changed, 35 insertions(+) diff --git a/pkg/apis/pxc/v1/pxc_types.go b/pkg/apis/pxc/v1/pxc_types.go index 81b9c3d795..3aca8270fc 100644 --- a/pkg/apis/pxc/v1/pxc_types.go +++ b/pkg/apis/pxc/v1/pxc_types.go @@ -501,6 +501,35 @@ type PodSpec struct { TopologySpreadConstraints []corev1.TopologySpreadConstraint `json:"topologySpreadConstraints,omitempty"` } +func (spec *PodSpec) HasSidecarInternalSecret(secret *corev1.Secret) bool { + if spec.Sidecars != nil { + for _, container := range spec.Sidecars { + for _, env := range container.Env { + if env.ValueFrom != nil && env.ValueFrom.SecretKeyRef != nil { + if env.ValueFrom.SecretKeyRef.Name == secret.Name { + return true + } + } + } + } + } + if spec.SidecarVolumes != nil { + for _, volume := range spec.SidecarVolumes { + if volume.Secret != nil && volume.Secret.SecretName == secret.Name { + return true + } + if volume.Projected != nil { + for _, source := range volume.Projected.Sources { + if source.Secret != nil && source.Secret.Name == secret.Name { + return true + } + } + } + } + } + return false +} + type ProxySQLSpec struct { PodSpec `json:",inline"` Expose ServiceExpose `json:"expose,omitempty"` diff --git a/pkg/controller/pxc/users.go b/pkg/controller/pxc/users.go index 55d4a99f57..f2d5ef266f 100644 --- a/pkg/controller/pxc/users.go +++ b/pkg/controller/pxc/users.go @@ -475,6 +475,9 @@ func (r *ReconcilePerconaXtraDBCluster) handleMonitorUser(ctx context.Context, c if cr.Spec.PMM != nil && cr.Spec.PMM.IsEnabled(internalSecrets) { actions.restartPXC = true } + if cr.Spec.PXC.Sidecars != nil && cr.Spec.PXC.HasSidecarInternalSecret(internalSecrets) { + actions.restartPXC = true + } err = r.discardOldPassword(cr, secrets, internalSecrets, user) if err != nil { diff --git a/pkg/controller/pxc/users_without_dp.go b/pkg/controller/pxc/users_without_dp.go index 3aea25076c..381d9979f2 100644 --- a/pkg/controller/pxc/users_without_dp.go +++ b/pkg/controller/pxc/users_without_dp.go @@ -249,6 +249,9 @@ func (r *ReconcilePerconaXtraDBCluster) handleMonitorUserWithoutDP(ctx context.C if cr.Spec.PMM != nil && cr.Spec.PMM.IsEnabled(internalSecrets) { actions.restartPXC = true } + if cr.Spec.PXC.Sidecars != nil && cr.Spec.PXC.HasSidecarInternalSecret(internalSecrets) { + actions.restartPXC = true + } orig := internalSecrets.DeepCopy() internalSecrets.Data[user.Name] = secrets.Data[user.Name] From d233d90a5557e3f2703cb650d40cf07a01ea1af0 Mon Sep 17 00:00:00 2001 From: Viacheslav Sarzhan Date: Thu, 5 Dec 2024 22:38:45 +0200 Subject: [PATCH 19/60] K8SPXC-1410 fix security-context test (#1900) --- .../compare/statefulset_sec-context-pxc-changes.yml | 2 +- .../security-context/compare/statefulset_sec-context-pxc.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/e2e-tests/security-context/compare/statefulset_sec-context-pxc-changes.yml b/e2e-tests/security-context/compare/statefulset_sec-context-pxc-changes.yml index bf4c6d7241..4ff02e36de 100644 --- a/e2e-tests/security-context/compare/statefulset_sec-context-pxc-changes.yml +++ b/e2e-tests/security-context/compare/statefulset_sec-context-pxc-changes.yml @@ -130,7 +130,7 @@ spec: resources: limits: cpu: "1" - memory: 1G + memory: 2G requests: cpu: 100m memory: 100M diff --git a/e2e-tests/security-context/compare/statefulset_sec-context-pxc.yml b/e2e-tests/security-context/compare/statefulset_sec-context-pxc.yml index b7eccb73b4..751009a51d 100644 --- a/e2e-tests/security-context/compare/statefulset_sec-context-pxc.yml +++ b/e2e-tests/security-context/compare/statefulset_sec-context-pxc.yml @@ -130,7 +130,7 @@ spec: resources: limits: cpu: "1" - memory: 1G + memory: 2G requests: cpu: 100m memory: 100M From ad71ccb08100233631ff73d9defb17176378c9c5 Mon Sep 17 00:00:00 2001 From: Eleonora Zinchenko Date: Fri, 6 Dec 2024 14:20:04 +0200 Subject: [PATCH 20/60] K8SPXC-1222: assign MYSQL_VERSION variable in liveness and readiness (#1895) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * K8SPXC-1222: assign MYSQL_VERSION variable in liveness and readiness check * fix wrong state after running mysqld * fix backup example * fix tests * Update build/pxc-entrypoint.sh * Add MYSQL_NOTIFY_SOCKET & MYSQL_STATE_FILE to update-consistency tests * remove k127 compare for upgrade-consistency and extra MYSQL_NOTIFY_SOCKET --------- Co-authored-by: Ege Güneş Co-authored-by: Viacheslav Sarzhan --- build/liveness-check.sh | 1 + build/pxc-entrypoint.sh | 4 +- build/readiness-check.sh | 1 + .../statefulset_custom-pxc-k127-oc.yml | 2 +- .../compare/statefulset_custom-pxc-k127.yml | 2 +- .../compare/statefulset_custom-pxc-oc.yml | 2 +- .../compare/statefulset_custom-pxc.yml | 2 +- .../statefulset_hostname-pxc-k127-oc.yml | 2 +- .../compare/statefulset_hostname-pxc-k127.yml | 2 +- .../compare/statefulset_hostname-pxc-oc.yml | 2 +- .../compare/statefulset_hostname-pxc.yml | 2 +- .../statefulset_region-pxc-k127-oc.yml | 2 +- .../compare/statefulset_region-pxc-k127.yml | 2 +- .../compare/statefulset_region-pxc-oc.yml | 2 +- .../compare/statefulset_region-pxc.yml | 2 +- .../compare/statefulset_zone-pxc-k127-oc.yml | 2 +- .../compare/statefulset_zone-pxc-k127.yml | 2 +- .../compare/statefulset_zone-pxc-oc.yml | 2 +- .../affinity/compare/statefulset_zone-pxc.yml | 2 +- .../statefulset_cluster1-pxc-k127-oc.yml | 2 +- .../compare/statefulset_cluster1-pxc-k127.yml | 2 +- .../compare/statefulset_cluster1-pxc-oc.yml | 2 +- .../compare/statefulset_cluster1-pxc.yml | 2 +- ...tatefulset_minimal-cluster-pxc-k127-oc.yml | 2 +- .../statefulset_minimal-cluster-pxc-k127.yml | 2 +- .../statefulset_minimal-cluster-pxc-oc.yml | 2 +- .../statefulset_minimal-cluster-pxc.yml | 2 +- .../statefulset_no-proxysql-pxc-k127-oc.yml | 2 +- .../statefulset_no-proxysql-pxc-k127.yml | 2 +- .../statefulset_no-proxysql-pxc-oc.yml | 2 +- .../compare/statefulset_no-proxysql-pxc.yml | 2 +- .../statefulset_some-name-pxc-k127-oc.yml | 2 +- .../statefulset_some-name-pxc-k127.yml | 2 +- .../compare/statefulset_some-name-pxc-oc.yml | 2 +- .../compare/statefulset_some-name-pxc.yml | 2 +- ...fulset_no-limits-pxc-increased-k127-oc.yml | 2 +- ...atefulset_no-limits-pxc-increased-k127.yml | 2 +- ...statefulset_no-limits-pxc-increased-oc.yml | 2 +- .../statefulset_no-limits-pxc-increased.yml | 2 +- .../statefulset_no-limits-pxc-k127-oc.yml | 2 +- .../statefulset_no-limits-pxc-k127.yml | 2 +- .../compare/statefulset_no-limits-pxc-oc.yml | 2 +- .../compare/statefulset_no-limits-pxc.yml | 2 +- ...quests-no-limits-pxc-increased-k127-oc.yml | 2 +- ...-requests-no-limits-pxc-increased-k127.yml | 2 +- ...no-requests-no-limits-pxc-increased-oc.yml | 2 +- ...et_no-requests-no-limits-pxc-increased.yml | 2 +- ...lset_no-requests-no-limits-pxc-k127-oc.yml | 2 +- ...efulset_no-requests-no-limits-pxc-k127.yml | 2 +- ...atefulset_no-requests-no-limits-pxc-oc.yml | 2 +- .../statefulset_no-requests-no-limits-pxc.yml | 2 +- ...lset_no-requests-pxc-increased-k127-oc.yml | 2 +- ...efulset_no-requests-pxc-increased-k127.yml | 2 +- ...atefulset_no-requests-pxc-increased-oc.yml | 2 +- .../statefulset_no-requests-pxc-increased.yml | 2 +- .../statefulset_no-requests-pxc-k127-oc.yml | 2 +- .../statefulset_no-requests-pxc-k127.yml | 2 +- .../statefulset_no-requests-pxc-oc.yml | 2 +- .../compare/statefulset_no-requests-pxc.yml | 2 +- ...ulset_monitoring-pxc-k127-no-prefix-oc.yml | 2 +- .../statefulset_monitoring-pxc-k127-oc.yml | 2 +- .../statefulset_monitoring-pxc-k127.yml | 2 +- ...ulset_monitoring-pxc-no-prefix-k127-oc.yml | 2 +- ...tefulset_monitoring-pxc-no-prefix-k127.yml | 2 +- ...tatefulset_monitoring-pxc-no-prefix-oc.yml | 2 +- .../statefulset_monitoring-pxc-no-prefix.yml | 2 +- .../compare/statefulset_monitoring-pxc-oc.yml | 2 +- .../compare/statefulset_monitoring-pxc.yml | 2 +- .../statefulset_one-pod-pxc-k127-oc.yml | 2 +- .../compare/statefulset_one-pod-pxc-k127.yml | 2 +- .../compare/statefulset_one-pod-pxc-oc.yml | 2 +- ...statefulset_one-pod-pxc-secret-k127-oc.yml | 2 +- .../statefulset_one-pod-pxc-secret-k127.yml | 2 +- .../statefulset_one-pod-pxc-secret-oc.yml | 2 +- .../statefulset_one-pod-pxc-secret.yml | 2 +- .../compare/statefulset_one-pod-pxc.yml | 2 +- ...statefulset_proxy-protocol-pxc-k127-oc.yml | 2 +- .../statefulset_proxy-protocol-pxc-k127.yml | 2 +- .../statefulset_proxy-protocol-pxc-oc.yml | 2 +- .../statefulset_proxy-protocol-pxc.yml | 2 +- .../statefulset_sec-context-pxc-changes.yml | 2 +- .../compare/statefulset_sec-context-pxc.yml | 2 +- .../statefulset_emptydir-pxc-k127-oc.yml | 2 +- .../compare/statefulset_emptydir-pxc-k127.yml | 2 +- .../compare/statefulset_emptydir-pxc-oc.yml | 2 +- .../compare/statefulset_emptydir-pxc.yml | 2 +- .../statefulset_hostpath-pxc-k127-oc.yml | 2 +- .../compare/statefulset_hostpath-pxc-k127.yml | 2 +- .../compare/statefulset_hostpath-pxc-oc.yml | 2 +- .../compare/statefulset_hostpath-pxc.yml | 2 +- ...statefulset_some-name-pxc-1160-k127-oc.yml | 274 ----------------- .../statefulset_some-name-pxc-1160-k127.yml | 275 ------------------ .../statefulset_some-name-pxc-1160-oc.yml | 4 +- .../statefulset_some-name-pxc-1160.yml | 4 +- ...tatefulset_upgrade-haproxy-pxc-k127-oc.yml | 2 +- .../statefulset_upgrade-haproxy-pxc-k127.yml | 2 +- .../statefulset_upgrade-haproxy-pxc-oc.yml | 2 +- .../statefulset_upgrade-haproxy-pxc.yml | 2 +- ...atefulset_upgrade-proxysql-pxc-k127-oc.yml | 2 +- .../statefulset_upgrade-proxysql-pxc-k127.yml | 2 +- .../statefulset_upgrade-proxysql-pxc-oc.yml | 2 +- .../statefulset_upgrade-proxysql-pxc.yml | 2 +- pkg/pxc/app/statefulset/node.go | 2 +- 103 files changed, 105 insertions(+), 650 deletions(-) delete mode 100644 e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1160-k127-oc.yml delete mode 100644 e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1160-k127.yml diff --git a/build/liveness-check.sh b/build/liveness-check.sh index 912cb7ff45..f681d4c25f 100755 --- a/build/liveness-check.sh +++ b/build/liveness-check.sh @@ -22,6 +22,7 @@ NODE_IP=$(hostname -I | awk ' { print $1 } ') #Timeout exists for instances where mysqld may be hung TIMEOUT=$((${LIVENESS_CHECK_TIMEOUT:-5} - 1)) MYSQL_STATE=ready +MYSQL_VERSION=$(mysqld -V | awk '{print $3}' | awk -F'.' '{print $1"."$2}') if [[ ${MYSQL_VERSION} == '8.0' ]]; then MYSQL_STATE=$(tr -d '\0' < ${MYSQL_STATE_FILE}) fi diff --git a/build/pxc-entrypoint.sh b/build/pxc-entrypoint.sh index afb0d73436..14910fff9f 100755 --- a/build/pxc-entrypoint.sh +++ b/build/pxc-entrypoint.sh @@ -292,7 +292,9 @@ if [[ -z ${WSREP_CLUSTER_NAME} || ${WSREP_CLUSTER_NAME} == 'noname' ]]; then echo "Cluster name is invalid, please check DNS" exit 1 fi -if [[ -n ${NOTIFY_SOCKET} && ${MYSQL_VERSION} =~ ^(8\.0|8\.4)$ ]]; then + +if [[ -n ${MYSQL_NOTIFY_SOCKET} && ${MYSQL_VERSION} =~ ^(8\.0|8\.4)$ ]]; then + export NOTIFY_SOCKET=${MYSQL_NOTIFY_SOCKET} nohup /var/lib/mysql/mysql-state-monitor >/var/lib/mysql/mysql-state-monitor.log 2>&1 < /dev/null & fi diff --git a/build/readiness-check.sh b/build/readiness-check.sh index fbb35248b4..05ac4ff709 100755 --- a/build/readiness-check.sh +++ b/build/readiness-check.sh @@ -17,6 +17,7 @@ DEFAULTS_EXTRA_FILE=${DEFAULTS_EXTRA_FILE:-/etc/my.cnf} AVAILABLE_WHEN_DONOR=${AVAILABLE_WHEN_DONOR:-1} NODE_IP=$(hostname -I | awk ' { print $1 } ') MYSQL_STATE=ready +MYSQL_VERSION=$(mysqld -V | awk '{print $3}' | awk -F'.' '{print $1"."$2}') if [[ ${MYSQL_VERSION} == '8.0' ]]; then MYSQL_STATE=$(tr -d '\0' < ${MYSQL_STATE_FILE}) fi diff --git a/e2e-tests/affinity/compare/statefulset_custom-pxc-k127-oc.yml b/e2e-tests/affinity/compare/statefulset_custom-pxc-k127-oc.yml index cdfd67b24d..fe440e9a68 100644 --- a/e2e-tests/affinity/compare/statefulset_custom-pxc-k127-oc.yml +++ b/e2e-tests/affinity/compare/statefulset_custom-pxc-k127-oc.yml @@ -105,7 +105,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/affinity/compare/statefulset_custom-pxc-k127.yml b/e2e-tests/affinity/compare/statefulset_custom-pxc-k127.yml index baa4686cea..7523daa624 100644 --- a/e2e-tests/affinity/compare/statefulset_custom-pxc-k127.yml +++ b/e2e-tests/affinity/compare/statefulset_custom-pxc-k127.yml @@ -105,7 +105,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/affinity/compare/statefulset_custom-pxc-oc.yml b/e2e-tests/affinity/compare/statefulset_custom-pxc-oc.yml index bb535f98d4..d46257dc04 100644 --- a/e2e-tests/affinity/compare/statefulset_custom-pxc-oc.yml +++ b/e2e-tests/affinity/compare/statefulset_custom-pxc-oc.yml @@ -102,7 +102,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/affinity/compare/statefulset_custom-pxc.yml b/e2e-tests/affinity/compare/statefulset_custom-pxc.yml index 1f2ed28eca..fe227d30e3 100644 --- a/e2e-tests/affinity/compare/statefulset_custom-pxc.yml +++ b/e2e-tests/affinity/compare/statefulset_custom-pxc.yml @@ -102,7 +102,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/affinity/compare/statefulset_hostname-pxc-k127-oc.yml b/e2e-tests/affinity/compare/statefulset_hostname-pxc-k127-oc.yml index 6f65b505fd..21fe723a55 100644 --- a/e2e-tests/affinity/compare/statefulset_hostname-pxc-k127-oc.yml +++ b/e2e-tests/affinity/compare/statefulset_hostname-pxc-k127-oc.yml @@ -78,7 +78,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/affinity/compare/statefulset_hostname-pxc-k127.yml b/e2e-tests/affinity/compare/statefulset_hostname-pxc-k127.yml index 9e71887bdf..2100d03134 100644 --- a/e2e-tests/affinity/compare/statefulset_hostname-pxc-k127.yml +++ b/e2e-tests/affinity/compare/statefulset_hostname-pxc-k127.yml @@ -78,7 +78,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/affinity/compare/statefulset_hostname-pxc-oc.yml b/e2e-tests/affinity/compare/statefulset_hostname-pxc-oc.yml index 0fea26ac7f..5cb937c6a5 100644 --- a/e2e-tests/affinity/compare/statefulset_hostname-pxc-oc.yml +++ b/e2e-tests/affinity/compare/statefulset_hostname-pxc-oc.yml @@ -75,7 +75,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/affinity/compare/statefulset_hostname-pxc.yml b/e2e-tests/affinity/compare/statefulset_hostname-pxc.yml index 9519cb8efc..5d6f269bac 100644 --- a/e2e-tests/affinity/compare/statefulset_hostname-pxc.yml +++ b/e2e-tests/affinity/compare/statefulset_hostname-pxc.yml @@ -75,7 +75,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/affinity/compare/statefulset_region-pxc-k127-oc.yml b/e2e-tests/affinity/compare/statefulset_region-pxc-k127-oc.yml index 1ae33b935c..a5ebd21f01 100644 --- a/e2e-tests/affinity/compare/statefulset_region-pxc-k127-oc.yml +++ b/e2e-tests/affinity/compare/statefulset_region-pxc-k127-oc.yml @@ -78,7 +78,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/affinity/compare/statefulset_region-pxc-k127.yml b/e2e-tests/affinity/compare/statefulset_region-pxc-k127.yml index 99c2833f7c..5e6416abbd 100644 --- a/e2e-tests/affinity/compare/statefulset_region-pxc-k127.yml +++ b/e2e-tests/affinity/compare/statefulset_region-pxc-k127.yml @@ -78,7 +78,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/affinity/compare/statefulset_region-pxc-oc.yml b/e2e-tests/affinity/compare/statefulset_region-pxc-oc.yml index 4d8dd6e001..fbb2107b8b 100644 --- a/e2e-tests/affinity/compare/statefulset_region-pxc-oc.yml +++ b/e2e-tests/affinity/compare/statefulset_region-pxc-oc.yml @@ -75,7 +75,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/affinity/compare/statefulset_region-pxc.yml b/e2e-tests/affinity/compare/statefulset_region-pxc.yml index c7985966cd..9db0799592 100644 --- a/e2e-tests/affinity/compare/statefulset_region-pxc.yml +++ b/e2e-tests/affinity/compare/statefulset_region-pxc.yml @@ -75,7 +75,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/affinity/compare/statefulset_zone-pxc-k127-oc.yml b/e2e-tests/affinity/compare/statefulset_zone-pxc-k127-oc.yml index 648266b749..0446d8f58d 100644 --- a/e2e-tests/affinity/compare/statefulset_zone-pxc-k127-oc.yml +++ b/e2e-tests/affinity/compare/statefulset_zone-pxc-k127-oc.yml @@ -78,7 +78,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/affinity/compare/statefulset_zone-pxc-k127.yml b/e2e-tests/affinity/compare/statefulset_zone-pxc-k127.yml index 4d55b79301..91a0747a9d 100644 --- a/e2e-tests/affinity/compare/statefulset_zone-pxc-k127.yml +++ b/e2e-tests/affinity/compare/statefulset_zone-pxc-k127.yml @@ -78,7 +78,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/affinity/compare/statefulset_zone-pxc-oc.yml b/e2e-tests/affinity/compare/statefulset_zone-pxc-oc.yml index 35d5885b8f..b96c86597e 100644 --- a/e2e-tests/affinity/compare/statefulset_zone-pxc-oc.yml +++ b/e2e-tests/affinity/compare/statefulset_zone-pxc-oc.yml @@ -75,7 +75,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/affinity/compare/statefulset_zone-pxc.yml b/e2e-tests/affinity/compare/statefulset_zone-pxc.yml index 07cac91e4c..b1b716f9b8 100644 --- a/e2e-tests/affinity/compare/statefulset_zone-pxc.yml +++ b/e2e-tests/affinity/compare/statefulset_zone-pxc.yml @@ -75,7 +75,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/default-cr/compare/statefulset_cluster1-pxc-k127-oc.yml b/e2e-tests/default-cr/compare/statefulset_cluster1-pxc-k127-oc.yml index 383659ea24..ce95abb0eb 100644 --- a/e2e-tests/default-cr/compare/statefulset_cluster1-pxc-k127-oc.yml +++ b/e2e-tests/default-cr/compare/statefulset_cluster1-pxc-k127-oc.yml @@ -131,7 +131,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: caching_sha2_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/default-cr/compare/statefulset_cluster1-pxc-k127.yml b/e2e-tests/default-cr/compare/statefulset_cluster1-pxc-k127.yml index a4b71c93d0..4026eafc62 100644 --- a/e2e-tests/default-cr/compare/statefulset_cluster1-pxc-k127.yml +++ b/e2e-tests/default-cr/compare/statefulset_cluster1-pxc-k127.yml @@ -131,7 +131,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: caching_sha2_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/default-cr/compare/statefulset_cluster1-pxc-oc.yml b/e2e-tests/default-cr/compare/statefulset_cluster1-pxc-oc.yml index ed62d10432..9247e5d9a3 100644 --- a/e2e-tests/default-cr/compare/statefulset_cluster1-pxc-oc.yml +++ b/e2e-tests/default-cr/compare/statefulset_cluster1-pxc-oc.yml @@ -128,7 +128,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: caching_sha2_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/default-cr/compare/statefulset_cluster1-pxc.yml b/e2e-tests/default-cr/compare/statefulset_cluster1-pxc.yml index 9eaa4cc85e..74245c17f8 100644 --- a/e2e-tests/default-cr/compare/statefulset_cluster1-pxc.yml +++ b/e2e-tests/default-cr/compare/statefulset_cluster1-pxc.yml @@ -128,7 +128,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: caching_sha2_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/default-cr/compare/statefulset_minimal-cluster-pxc-k127-oc.yml b/e2e-tests/default-cr/compare/statefulset_minimal-cluster-pxc-k127-oc.yml index 1bdf904f8b..b33ecdfd68 100644 --- a/e2e-tests/default-cr/compare/statefulset_minimal-cluster-pxc-k127-oc.yml +++ b/e2e-tests/default-cr/compare/statefulset_minimal-cluster-pxc-k127-oc.yml @@ -125,7 +125,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: caching_sha2_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/default-cr/compare/statefulset_minimal-cluster-pxc-k127.yml b/e2e-tests/default-cr/compare/statefulset_minimal-cluster-pxc-k127.yml index f06650fb18..139f26d632 100644 --- a/e2e-tests/default-cr/compare/statefulset_minimal-cluster-pxc-k127.yml +++ b/e2e-tests/default-cr/compare/statefulset_minimal-cluster-pxc-k127.yml @@ -125,7 +125,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: caching_sha2_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/default-cr/compare/statefulset_minimal-cluster-pxc-oc.yml b/e2e-tests/default-cr/compare/statefulset_minimal-cluster-pxc-oc.yml index f055929445..8b4fa88fe4 100644 --- a/e2e-tests/default-cr/compare/statefulset_minimal-cluster-pxc-oc.yml +++ b/e2e-tests/default-cr/compare/statefulset_minimal-cluster-pxc-oc.yml @@ -122,7 +122,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: caching_sha2_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/default-cr/compare/statefulset_minimal-cluster-pxc.yml b/e2e-tests/default-cr/compare/statefulset_minimal-cluster-pxc.yml index b260dbee1a..58a165feef 100644 --- a/e2e-tests/default-cr/compare/statefulset_minimal-cluster-pxc.yml +++ b/e2e-tests/default-cr/compare/statefulset_minimal-cluster-pxc.yml @@ -122,7 +122,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: caching_sha2_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/init-deploy/compare/statefulset_no-proxysql-pxc-k127-oc.yml b/e2e-tests/init-deploy/compare/statefulset_no-proxysql-pxc-k127-oc.yml index 4823144fea..02f02c265a 100644 --- a/e2e-tests/init-deploy/compare/statefulset_no-proxysql-pxc-k127-oc.yml +++ b/e2e-tests/init-deploy/compare/statefulset_no-proxysql-pxc-k127-oc.yml @@ -67,7 +67,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: caching_sha2_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/init-deploy/compare/statefulset_no-proxysql-pxc-k127.yml b/e2e-tests/init-deploy/compare/statefulset_no-proxysql-pxc-k127.yml index 184ec15cd5..39e3aab198 100644 --- a/e2e-tests/init-deploy/compare/statefulset_no-proxysql-pxc-k127.yml +++ b/e2e-tests/init-deploy/compare/statefulset_no-proxysql-pxc-k127.yml @@ -67,7 +67,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: caching_sha2_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/init-deploy/compare/statefulset_no-proxysql-pxc-oc.yml b/e2e-tests/init-deploy/compare/statefulset_no-proxysql-pxc-oc.yml index 53e7e218e9..7d7acfd3cb 100644 --- a/e2e-tests/init-deploy/compare/statefulset_no-proxysql-pxc-oc.yml +++ b/e2e-tests/init-deploy/compare/statefulset_no-proxysql-pxc-oc.yml @@ -64,7 +64,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: caching_sha2_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/init-deploy/compare/statefulset_no-proxysql-pxc.yml b/e2e-tests/init-deploy/compare/statefulset_no-proxysql-pxc.yml index a4053d9434..57d557517b 100644 --- a/e2e-tests/init-deploy/compare/statefulset_no-proxysql-pxc.yml +++ b/e2e-tests/init-deploy/compare/statefulset_no-proxysql-pxc.yml @@ -64,7 +64,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: caching_sha2_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/init-deploy/compare/statefulset_some-name-pxc-k127-oc.yml b/e2e-tests/init-deploy/compare/statefulset_some-name-pxc-k127-oc.yml index e2b7596b72..07236d80a1 100644 --- a/e2e-tests/init-deploy/compare/statefulset_some-name-pxc-k127-oc.yml +++ b/e2e-tests/init-deploy/compare/statefulset_some-name-pxc-k127-oc.yml @@ -125,7 +125,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/init-deploy/compare/statefulset_some-name-pxc-k127.yml b/e2e-tests/init-deploy/compare/statefulset_some-name-pxc-k127.yml index ea19b34fab..41c5f5b0ae 100644 --- a/e2e-tests/init-deploy/compare/statefulset_some-name-pxc-k127.yml +++ b/e2e-tests/init-deploy/compare/statefulset_some-name-pxc-k127.yml @@ -125,7 +125,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/init-deploy/compare/statefulset_some-name-pxc-oc.yml b/e2e-tests/init-deploy/compare/statefulset_some-name-pxc-oc.yml index 5f09fcc44d..68f6194f5f 100644 --- a/e2e-tests/init-deploy/compare/statefulset_some-name-pxc-oc.yml +++ b/e2e-tests/init-deploy/compare/statefulset_some-name-pxc-oc.yml @@ -122,7 +122,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/init-deploy/compare/statefulset_some-name-pxc.yml b/e2e-tests/init-deploy/compare/statefulset_some-name-pxc.yml index de929e9391..85b2effc27 100644 --- a/e2e-tests/init-deploy/compare/statefulset_some-name-pxc.yml +++ b/e2e-tests/init-deploy/compare/statefulset_some-name-pxc.yml @@ -122,7 +122,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/limits/compare/statefulset_no-limits-pxc-increased-k127-oc.yml b/e2e-tests/limits/compare/statefulset_no-limits-pxc-increased-k127-oc.yml index 78ca6b2b5a..e1bc1a6f34 100644 --- a/e2e-tests/limits/compare/statefulset_no-limits-pxc-increased-k127-oc.yml +++ b/e2e-tests/limits/compare/statefulset_no-limits-pxc-increased-k127-oc.yml @@ -196,7 +196,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/limits/compare/statefulset_no-limits-pxc-increased-k127.yml b/e2e-tests/limits/compare/statefulset_no-limits-pxc-increased-k127.yml index 5a0e8a76b7..c962f4fe1e 100644 --- a/e2e-tests/limits/compare/statefulset_no-limits-pxc-increased-k127.yml +++ b/e2e-tests/limits/compare/statefulset_no-limits-pxc-increased-k127.yml @@ -196,7 +196,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/limits/compare/statefulset_no-limits-pxc-increased-oc.yml b/e2e-tests/limits/compare/statefulset_no-limits-pxc-increased-oc.yml index 7a9f14deee..9e6a40bcc3 100644 --- a/e2e-tests/limits/compare/statefulset_no-limits-pxc-increased-oc.yml +++ b/e2e-tests/limits/compare/statefulset_no-limits-pxc-increased-oc.yml @@ -193,7 +193,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/limits/compare/statefulset_no-limits-pxc-increased.yml b/e2e-tests/limits/compare/statefulset_no-limits-pxc-increased.yml index f6ba0c9441..78b88d411f 100644 --- a/e2e-tests/limits/compare/statefulset_no-limits-pxc-increased.yml +++ b/e2e-tests/limits/compare/statefulset_no-limits-pxc-increased.yml @@ -193,7 +193,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/limits/compare/statefulset_no-limits-pxc-k127-oc.yml b/e2e-tests/limits/compare/statefulset_no-limits-pxc-k127-oc.yml index e6391feac1..cfe935609f 100644 --- a/e2e-tests/limits/compare/statefulset_no-limits-pxc-k127-oc.yml +++ b/e2e-tests/limits/compare/statefulset_no-limits-pxc-k127-oc.yml @@ -196,7 +196,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/limits/compare/statefulset_no-limits-pxc-k127.yml b/e2e-tests/limits/compare/statefulset_no-limits-pxc-k127.yml index d088ca960b..68400e4c0d 100644 --- a/e2e-tests/limits/compare/statefulset_no-limits-pxc-k127.yml +++ b/e2e-tests/limits/compare/statefulset_no-limits-pxc-k127.yml @@ -196,7 +196,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/limits/compare/statefulset_no-limits-pxc-oc.yml b/e2e-tests/limits/compare/statefulset_no-limits-pxc-oc.yml index 54fd449662..8218b78d11 100644 --- a/e2e-tests/limits/compare/statefulset_no-limits-pxc-oc.yml +++ b/e2e-tests/limits/compare/statefulset_no-limits-pxc-oc.yml @@ -193,7 +193,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/limits/compare/statefulset_no-limits-pxc.yml b/e2e-tests/limits/compare/statefulset_no-limits-pxc.yml index 82cbb4a4c6..672d981146 100644 --- a/e2e-tests/limits/compare/statefulset_no-limits-pxc.yml +++ b/e2e-tests/limits/compare/statefulset_no-limits-pxc.yml @@ -193,7 +193,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/limits/compare/statefulset_no-requests-no-limits-pxc-increased-k127-oc.yml b/e2e-tests/limits/compare/statefulset_no-requests-no-limits-pxc-increased-k127-oc.yml index 83536fa262..15426e41de 100644 --- a/e2e-tests/limits/compare/statefulset_no-requests-no-limits-pxc-increased-k127-oc.yml +++ b/e2e-tests/limits/compare/statefulset_no-requests-no-limits-pxc-increased-k127-oc.yml @@ -67,7 +67,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/limits/compare/statefulset_no-requests-no-limits-pxc-increased-k127.yml b/e2e-tests/limits/compare/statefulset_no-requests-no-limits-pxc-increased-k127.yml index a9fa714ce4..605f6dccff 100644 --- a/e2e-tests/limits/compare/statefulset_no-requests-no-limits-pxc-increased-k127.yml +++ b/e2e-tests/limits/compare/statefulset_no-requests-no-limits-pxc-increased-k127.yml @@ -67,7 +67,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/limits/compare/statefulset_no-requests-no-limits-pxc-increased-oc.yml b/e2e-tests/limits/compare/statefulset_no-requests-no-limits-pxc-increased-oc.yml index 94a8278b69..6659fe4132 100644 --- a/e2e-tests/limits/compare/statefulset_no-requests-no-limits-pxc-increased-oc.yml +++ b/e2e-tests/limits/compare/statefulset_no-requests-no-limits-pxc-increased-oc.yml @@ -64,7 +64,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/limits/compare/statefulset_no-requests-no-limits-pxc-increased.yml b/e2e-tests/limits/compare/statefulset_no-requests-no-limits-pxc-increased.yml index 802d0fde8d..484c45300d 100644 --- a/e2e-tests/limits/compare/statefulset_no-requests-no-limits-pxc-increased.yml +++ b/e2e-tests/limits/compare/statefulset_no-requests-no-limits-pxc-increased.yml @@ -64,7 +64,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/limits/compare/statefulset_no-requests-no-limits-pxc-k127-oc.yml b/e2e-tests/limits/compare/statefulset_no-requests-no-limits-pxc-k127-oc.yml index 83536fa262..15426e41de 100644 --- a/e2e-tests/limits/compare/statefulset_no-requests-no-limits-pxc-k127-oc.yml +++ b/e2e-tests/limits/compare/statefulset_no-requests-no-limits-pxc-k127-oc.yml @@ -67,7 +67,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/limits/compare/statefulset_no-requests-no-limits-pxc-k127.yml b/e2e-tests/limits/compare/statefulset_no-requests-no-limits-pxc-k127.yml index a9fa714ce4..605f6dccff 100644 --- a/e2e-tests/limits/compare/statefulset_no-requests-no-limits-pxc-k127.yml +++ b/e2e-tests/limits/compare/statefulset_no-requests-no-limits-pxc-k127.yml @@ -67,7 +67,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/limits/compare/statefulset_no-requests-no-limits-pxc-oc.yml b/e2e-tests/limits/compare/statefulset_no-requests-no-limits-pxc-oc.yml index 94a8278b69..6659fe4132 100644 --- a/e2e-tests/limits/compare/statefulset_no-requests-no-limits-pxc-oc.yml +++ b/e2e-tests/limits/compare/statefulset_no-requests-no-limits-pxc-oc.yml @@ -64,7 +64,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/limits/compare/statefulset_no-requests-no-limits-pxc.yml b/e2e-tests/limits/compare/statefulset_no-requests-no-limits-pxc.yml index 802d0fde8d..484c45300d 100644 --- a/e2e-tests/limits/compare/statefulset_no-requests-no-limits-pxc.yml +++ b/e2e-tests/limits/compare/statefulset_no-requests-no-limits-pxc.yml @@ -64,7 +64,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/limits/compare/statefulset_no-requests-pxc-increased-k127-oc.yml b/e2e-tests/limits/compare/statefulset_no-requests-pxc-increased-k127-oc.yml index 65645c191f..9f746df730 100644 --- a/e2e-tests/limits/compare/statefulset_no-requests-pxc-increased-k127-oc.yml +++ b/e2e-tests/limits/compare/statefulset_no-requests-pxc-increased-k127-oc.yml @@ -67,7 +67,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/limits/compare/statefulset_no-requests-pxc-increased-k127.yml b/e2e-tests/limits/compare/statefulset_no-requests-pxc-increased-k127.yml index ac70f11e71..43315840b1 100644 --- a/e2e-tests/limits/compare/statefulset_no-requests-pxc-increased-k127.yml +++ b/e2e-tests/limits/compare/statefulset_no-requests-pxc-increased-k127.yml @@ -67,7 +67,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/limits/compare/statefulset_no-requests-pxc-increased-oc.yml b/e2e-tests/limits/compare/statefulset_no-requests-pxc-increased-oc.yml index 9d2f03b464..5dc58f8e90 100644 --- a/e2e-tests/limits/compare/statefulset_no-requests-pxc-increased-oc.yml +++ b/e2e-tests/limits/compare/statefulset_no-requests-pxc-increased-oc.yml @@ -64,7 +64,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/limits/compare/statefulset_no-requests-pxc-increased.yml b/e2e-tests/limits/compare/statefulset_no-requests-pxc-increased.yml index 0a2fd5d571..135ac1bd1a 100644 --- a/e2e-tests/limits/compare/statefulset_no-requests-pxc-increased.yml +++ b/e2e-tests/limits/compare/statefulset_no-requests-pxc-increased.yml @@ -64,7 +64,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/limits/compare/statefulset_no-requests-pxc-k127-oc.yml b/e2e-tests/limits/compare/statefulset_no-requests-pxc-k127-oc.yml index 3dc65875cd..a2d986c268 100644 --- a/e2e-tests/limits/compare/statefulset_no-requests-pxc-k127-oc.yml +++ b/e2e-tests/limits/compare/statefulset_no-requests-pxc-k127-oc.yml @@ -67,7 +67,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/limits/compare/statefulset_no-requests-pxc-k127.yml b/e2e-tests/limits/compare/statefulset_no-requests-pxc-k127.yml index 624a326d7d..68a73a88ec 100644 --- a/e2e-tests/limits/compare/statefulset_no-requests-pxc-k127.yml +++ b/e2e-tests/limits/compare/statefulset_no-requests-pxc-k127.yml @@ -67,7 +67,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/limits/compare/statefulset_no-requests-pxc-oc.yml b/e2e-tests/limits/compare/statefulset_no-requests-pxc-oc.yml index 0664375a85..caff3d6a81 100644 --- a/e2e-tests/limits/compare/statefulset_no-requests-pxc-oc.yml +++ b/e2e-tests/limits/compare/statefulset_no-requests-pxc-oc.yml @@ -64,7 +64,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/limits/compare/statefulset_no-requests-pxc.yml b/e2e-tests/limits/compare/statefulset_no-requests-pxc.yml index 6292601a07..b451a1a48a 100644 --- a/e2e-tests/limits/compare/statefulset_no-requests-pxc.yml +++ b/e2e-tests/limits/compare/statefulset_no-requests-pxc.yml @@ -64,7 +64,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/monitoring-2-0/compare/statefulset_monitoring-pxc-k127-no-prefix-oc.yml b/e2e-tests/monitoring-2-0/compare/statefulset_monitoring-pxc-k127-no-prefix-oc.yml index 400ea020a4..c6fe65dd49 100644 --- a/e2e-tests/monitoring-2-0/compare/statefulset_monitoring-pxc-k127-no-prefix-oc.yml +++ b/e2e-tests/monitoring-2-0/compare/statefulset_monitoring-pxc-k127-no-prefix-oc.yml @@ -203,7 +203,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: caching_sha2_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/monitoring-2-0/compare/statefulset_monitoring-pxc-k127-oc.yml b/e2e-tests/monitoring-2-0/compare/statefulset_monitoring-pxc-k127-oc.yml index dc06495677..25bbe7949c 100644 --- a/e2e-tests/monitoring-2-0/compare/statefulset_monitoring-pxc-k127-oc.yml +++ b/e2e-tests/monitoring-2-0/compare/statefulset_monitoring-pxc-k127-oc.yml @@ -203,7 +203,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: caching_sha2_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/monitoring-2-0/compare/statefulset_monitoring-pxc-k127.yml b/e2e-tests/monitoring-2-0/compare/statefulset_monitoring-pxc-k127.yml index 7485605c10..967f865e90 100644 --- a/e2e-tests/monitoring-2-0/compare/statefulset_monitoring-pxc-k127.yml +++ b/e2e-tests/monitoring-2-0/compare/statefulset_monitoring-pxc-k127.yml @@ -203,7 +203,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: caching_sha2_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/monitoring-2-0/compare/statefulset_monitoring-pxc-no-prefix-k127-oc.yml b/e2e-tests/monitoring-2-0/compare/statefulset_monitoring-pxc-no-prefix-k127-oc.yml index 400ea020a4..c6fe65dd49 100644 --- a/e2e-tests/monitoring-2-0/compare/statefulset_monitoring-pxc-no-prefix-k127-oc.yml +++ b/e2e-tests/monitoring-2-0/compare/statefulset_monitoring-pxc-no-prefix-k127-oc.yml @@ -203,7 +203,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: caching_sha2_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/monitoring-2-0/compare/statefulset_monitoring-pxc-no-prefix-k127.yml b/e2e-tests/monitoring-2-0/compare/statefulset_monitoring-pxc-no-prefix-k127.yml index d259e6782c..020c50bd7f 100644 --- a/e2e-tests/monitoring-2-0/compare/statefulset_monitoring-pxc-no-prefix-k127.yml +++ b/e2e-tests/monitoring-2-0/compare/statefulset_monitoring-pxc-no-prefix-k127.yml @@ -203,7 +203,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: caching_sha2_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/monitoring-2-0/compare/statefulset_monitoring-pxc-no-prefix-oc.yml b/e2e-tests/monitoring-2-0/compare/statefulset_monitoring-pxc-no-prefix-oc.yml index 7b7363c84f..08bb15647d 100644 --- a/e2e-tests/monitoring-2-0/compare/statefulset_monitoring-pxc-no-prefix-oc.yml +++ b/e2e-tests/monitoring-2-0/compare/statefulset_monitoring-pxc-no-prefix-oc.yml @@ -200,7 +200,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: caching_sha2_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/monitoring-2-0/compare/statefulset_monitoring-pxc-no-prefix.yml b/e2e-tests/monitoring-2-0/compare/statefulset_monitoring-pxc-no-prefix.yml index 3c23cb009d..1090678c45 100644 --- a/e2e-tests/monitoring-2-0/compare/statefulset_monitoring-pxc-no-prefix.yml +++ b/e2e-tests/monitoring-2-0/compare/statefulset_monitoring-pxc-no-prefix.yml @@ -200,7 +200,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: caching_sha2_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/monitoring-2-0/compare/statefulset_monitoring-pxc-oc.yml b/e2e-tests/monitoring-2-0/compare/statefulset_monitoring-pxc-oc.yml index b805ae701a..b6b8accb54 100644 --- a/e2e-tests/monitoring-2-0/compare/statefulset_monitoring-pxc-oc.yml +++ b/e2e-tests/monitoring-2-0/compare/statefulset_monitoring-pxc-oc.yml @@ -200,7 +200,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: caching_sha2_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/monitoring-2-0/compare/statefulset_monitoring-pxc.yml b/e2e-tests/monitoring-2-0/compare/statefulset_monitoring-pxc.yml index abddb12666..ea1cabc2de 100644 --- a/e2e-tests/monitoring-2-0/compare/statefulset_monitoring-pxc.yml +++ b/e2e-tests/monitoring-2-0/compare/statefulset_monitoring-pxc.yml @@ -200,7 +200,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: caching_sha2_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/one-pod/compare/statefulset_one-pod-pxc-k127-oc.yml b/e2e-tests/one-pod/compare/statefulset_one-pod-pxc-k127-oc.yml index 2d8730eac5..a962a611fa 100644 --- a/e2e-tests/one-pod/compare/statefulset_one-pod-pxc-k127-oc.yml +++ b/e2e-tests/one-pod/compare/statefulset_one-pod-pxc-k127-oc.yml @@ -78,7 +78,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: caching_sha2_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/one-pod/compare/statefulset_one-pod-pxc-k127.yml b/e2e-tests/one-pod/compare/statefulset_one-pod-pxc-k127.yml index de5f579f78..1af1290120 100644 --- a/e2e-tests/one-pod/compare/statefulset_one-pod-pxc-k127.yml +++ b/e2e-tests/one-pod/compare/statefulset_one-pod-pxc-k127.yml @@ -78,7 +78,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: caching_sha2_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/one-pod/compare/statefulset_one-pod-pxc-oc.yml b/e2e-tests/one-pod/compare/statefulset_one-pod-pxc-oc.yml index e95e4e10b3..06767ef20f 100644 --- a/e2e-tests/one-pod/compare/statefulset_one-pod-pxc-oc.yml +++ b/e2e-tests/one-pod/compare/statefulset_one-pod-pxc-oc.yml @@ -75,7 +75,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: caching_sha2_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/one-pod/compare/statefulset_one-pod-pxc-secret-k127-oc.yml b/e2e-tests/one-pod/compare/statefulset_one-pod-pxc-secret-k127-oc.yml index 17502c0ab5..dead37d94d 100644 --- a/e2e-tests/one-pod/compare/statefulset_one-pod-pxc-secret-k127-oc.yml +++ b/e2e-tests/one-pod/compare/statefulset_one-pod-pxc-secret-k127-oc.yml @@ -78,7 +78,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: caching_sha2_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/one-pod/compare/statefulset_one-pod-pxc-secret-k127.yml b/e2e-tests/one-pod/compare/statefulset_one-pod-pxc-secret-k127.yml index 3be1f5837a..211fd6ca0e 100644 --- a/e2e-tests/one-pod/compare/statefulset_one-pod-pxc-secret-k127.yml +++ b/e2e-tests/one-pod/compare/statefulset_one-pod-pxc-secret-k127.yml @@ -78,7 +78,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: caching_sha2_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/one-pod/compare/statefulset_one-pod-pxc-secret-oc.yml b/e2e-tests/one-pod/compare/statefulset_one-pod-pxc-secret-oc.yml index 04cf2f14c9..a2dddc2677 100644 --- a/e2e-tests/one-pod/compare/statefulset_one-pod-pxc-secret-oc.yml +++ b/e2e-tests/one-pod/compare/statefulset_one-pod-pxc-secret-oc.yml @@ -75,7 +75,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: caching_sha2_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/one-pod/compare/statefulset_one-pod-pxc-secret.yml b/e2e-tests/one-pod/compare/statefulset_one-pod-pxc-secret.yml index 4906bc7f92..9da3ae1b39 100644 --- a/e2e-tests/one-pod/compare/statefulset_one-pod-pxc-secret.yml +++ b/e2e-tests/one-pod/compare/statefulset_one-pod-pxc-secret.yml @@ -75,7 +75,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: caching_sha2_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/one-pod/compare/statefulset_one-pod-pxc.yml b/e2e-tests/one-pod/compare/statefulset_one-pod-pxc.yml index 0f22c1427a..54ec1d13bf 100644 --- a/e2e-tests/one-pod/compare/statefulset_one-pod-pxc.yml +++ b/e2e-tests/one-pod/compare/statefulset_one-pod-pxc.yml @@ -75,7 +75,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: caching_sha2_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/proxy-protocol/compare/statefulset_proxy-protocol-pxc-k127-oc.yml b/e2e-tests/proxy-protocol/compare/statefulset_proxy-protocol-pxc-k127-oc.yml index 907e4cbf5d..35433daa8e 100644 --- a/e2e-tests/proxy-protocol/compare/statefulset_proxy-protocol-pxc-k127-oc.yml +++ b/e2e-tests/proxy-protocol/compare/statefulset_proxy-protocol-pxc-k127-oc.yml @@ -67,7 +67,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: caching_sha2_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/proxy-protocol/compare/statefulset_proxy-protocol-pxc-k127.yml b/e2e-tests/proxy-protocol/compare/statefulset_proxy-protocol-pxc-k127.yml index 19e45be134..3ae9de8753 100644 --- a/e2e-tests/proxy-protocol/compare/statefulset_proxy-protocol-pxc-k127.yml +++ b/e2e-tests/proxy-protocol/compare/statefulset_proxy-protocol-pxc-k127.yml @@ -67,7 +67,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: caching_sha2_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/proxy-protocol/compare/statefulset_proxy-protocol-pxc-oc.yml b/e2e-tests/proxy-protocol/compare/statefulset_proxy-protocol-pxc-oc.yml index bd9fb543bd..514856c1b8 100644 --- a/e2e-tests/proxy-protocol/compare/statefulset_proxy-protocol-pxc-oc.yml +++ b/e2e-tests/proxy-protocol/compare/statefulset_proxy-protocol-pxc-oc.yml @@ -64,7 +64,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: caching_sha2_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/proxy-protocol/compare/statefulset_proxy-protocol-pxc.yml b/e2e-tests/proxy-protocol/compare/statefulset_proxy-protocol-pxc.yml index 6f51e86289..aadb9d2238 100644 --- a/e2e-tests/proxy-protocol/compare/statefulset_proxy-protocol-pxc.yml +++ b/e2e-tests/proxy-protocol/compare/statefulset_proxy-protocol-pxc.yml @@ -64,7 +64,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: caching_sha2_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/security-context/compare/statefulset_sec-context-pxc-changes.yml b/e2e-tests/security-context/compare/statefulset_sec-context-pxc-changes.yml index 4ff02e36de..1c47f01cde 100644 --- a/e2e-tests/security-context/compare/statefulset_sec-context-pxc-changes.yml +++ b/e2e-tests/security-context/compare/statefulset_sec-context-pxc-changes.yml @@ -80,7 +80,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/security-context/compare/statefulset_sec-context-pxc.yml b/e2e-tests/security-context/compare/statefulset_sec-context-pxc.yml index 751009a51d..1f6eafdd38 100644 --- a/e2e-tests/security-context/compare/statefulset_sec-context-pxc.yml +++ b/e2e-tests/security-context/compare/statefulset_sec-context-pxc.yml @@ -80,7 +80,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/storage/compare/statefulset_emptydir-pxc-k127-oc.yml b/e2e-tests/storage/compare/statefulset_emptydir-pxc-k127-oc.yml index 6e3e75f4e4..45fdf979d4 100644 --- a/e2e-tests/storage/compare/statefulset_emptydir-pxc-k127-oc.yml +++ b/e2e-tests/storage/compare/statefulset_emptydir-pxc-k127-oc.yml @@ -78,7 +78,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/storage/compare/statefulset_emptydir-pxc-k127.yml b/e2e-tests/storage/compare/statefulset_emptydir-pxc-k127.yml index 29cdfeac78..ed11f9c414 100644 --- a/e2e-tests/storage/compare/statefulset_emptydir-pxc-k127.yml +++ b/e2e-tests/storage/compare/statefulset_emptydir-pxc-k127.yml @@ -78,7 +78,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/storage/compare/statefulset_emptydir-pxc-oc.yml b/e2e-tests/storage/compare/statefulset_emptydir-pxc-oc.yml index 178c791238..6d14b8df70 100644 --- a/e2e-tests/storage/compare/statefulset_emptydir-pxc-oc.yml +++ b/e2e-tests/storage/compare/statefulset_emptydir-pxc-oc.yml @@ -75,7 +75,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/storage/compare/statefulset_emptydir-pxc.yml b/e2e-tests/storage/compare/statefulset_emptydir-pxc.yml index 5d3a0d188a..dca67a1f35 100644 --- a/e2e-tests/storage/compare/statefulset_emptydir-pxc.yml +++ b/e2e-tests/storage/compare/statefulset_emptydir-pxc.yml @@ -75,7 +75,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/storage/compare/statefulset_hostpath-pxc-k127-oc.yml b/e2e-tests/storage/compare/statefulset_hostpath-pxc-k127-oc.yml index f266934eec..4ae4cb0e38 100644 --- a/e2e-tests/storage/compare/statefulset_hostpath-pxc-k127-oc.yml +++ b/e2e-tests/storage/compare/statefulset_hostpath-pxc-k127-oc.yml @@ -78,7 +78,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/storage/compare/statefulset_hostpath-pxc-k127.yml b/e2e-tests/storage/compare/statefulset_hostpath-pxc-k127.yml index f37c6f8380..36da26bf0f 100644 --- a/e2e-tests/storage/compare/statefulset_hostpath-pxc-k127.yml +++ b/e2e-tests/storage/compare/statefulset_hostpath-pxc-k127.yml @@ -78,7 +78,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/storage/compare/statefulset_hostpath-pxc-oc.yml b/e2e-tests/storage/compare/statefulset_hostpath-pxc-oc.yml index 660de80306..4fc356ba7a 100644 --- a/e2e-tests/storage/compare/statefulset_hostpath-pxc-oc.yml +++ b/e2e-tests/storage/compare/statefulset_hostpath-pxc-oc.yml @@ -75,7 +75,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/storage/compare/statefulset_hostpath-pxc.yml b/e2e-tests/storage/compare/statefulset_hostpath-pxc.yml index 38ab61a6fe..a91dca8301 100644 --- a/e2e-tests/storage/compare/statefulset_hostpath-pxc.yml +++ b/e2e-tests/storage/compare/statefulset_hostpath-pxc.yml @@ -75,7 +75,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1160-k127-oc.yml b/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1160-k127-oc.yml deleted file mode 100644 index ceda57c5c2..0000000000 --- a/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1160-k127-oc.yml +++ /dev/null @@ -1,274 +0,0 @@ -apiVersion: apps/v1 -kind: StatefulSet -metadata: - generation: 3 - name: some-name-pxc - ownerReferences: - - controller: true - kind: PerconaXtraDBCluster - name: some-name -spec: - persistentVolumeClaimRetentionPolicy: - whenDeleted: Retain - whenScaled: Retain - podManagementPolicy: OrderedReady - replicas: 3 - revisionHistoryLimit: 10 - selector: - matchLabels: - app.kubernetes.io/component: pxc - app.kubernetes.io/instance: some-name - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - serviceName: some-name-pxc - template: - metadata: - labels: - app.kubernetes.io/component: pxc - app.kubernetes.io/instance: some-name - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - spec: - affinity: - podAntiAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - - labelSelector: - matchLabels: - app.kubernetes.io/component: pxc - app.kubernetes.io/instance: some-name - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - topologyKey: kubernetes.io/hostname - containers: - - env: - - name: LOG_DATA_DIR - value: /var/lib/mysql - - name: POD_NAMESPASE - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.namespace - - name: POD_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.name - envFrom: - - secretRef: - name: some-name-log-collector - optional: true - imagePullPolicy: Always - name: logs - resources: {} - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/mysql - name: datadir - - args: - - logrotate - env: - - name: SERVICE_TYPE - value: mysql - - name: MONITOR_PASSWORD - valueFrom: - secretKeyRef: - key: monitor - name: internal-some-name - imagePullPolicy: Always - name: logrotate - resources: {} - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/mysql - name: datadir - - args: - - mysqld - command: - - /var/lib/mysql/pxc-entrypoint.sh - env: - - name: PXC_SERVICE - value: some-name-pxc-unready - - name: MONITOR_HOST - value: '%' - - name: MYSQL_ROOT_PASSWORD - valueFrom: - secretKeyRef: - key: root - name: internal-some-name - - name: XTRABACKUP_PASSWORD - valueFrom: - secretKeyRef: - key: xtrabackup - name: internal-some-name - - name: MONITOR_PASSWORD - valueFrom: - secretKeyRef: - key: monitor - name: internal-some-name - - name: LOG_DATA_DIR - value: /var/lib/mysql - - name: IS_LOGCOLLECTOR - value: "yes" - - name: OPERATOR_ADMIN_PASSWORD - valueFrom: - secretKeyRef: - key: operator - name: internal-some-name - - name: LIVENESS_CHECK_TIMEOUT - value: "5" - - name: READINESS_CHECK_TIMEOUT - value: "15" - - name: DEFAULT_AUTHENTICATION_PLUGIN - value: mysql_native_password - envFrom: - - secretRef: - name: some-name-env-vars-pxc - optional: true - imagePullPolicy: Always - livenessProbe: - exec: - command: - - /var/lib/mysql/liveness-check.sh - failureThreshold: 3 - initialDelaySeconds: 300 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 5 - name: pxc - ports: - - containerPort: 3306 - name: mysql - protocol: TCP - - containerPort: 4444 - name: sst - protocol: TCP - - containerPort: 4567 - name: write-set - protocol: TCP - - containerPort: 4568 - name: ist - protocol: TCP - - containerPort: 33062 - name: mysql-admin - protocol: TCP - - containerPort: 33060 - name: mysqlx - protocol: TCP - readinessProbe: - exec: - command: - - /var/lib/mysql/readiness-check.sh - failureThreshold: 5 - initialDelaySeconds: 15 - periodSeconds: 30 - successThreshold: 1 - timeoutSeconds: 15 - resources: - limits: - cpu: "1" - memory: 2G - requests: - cpu: 100m - memory: 100M - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/mysql - name: datadir - - mountPath: /etc/percona-xtradb-cluster.conf.d - name: config - - mountPath: /tmp - name: tmp - - mountPath: /etc/mysql/ssl - name: ssl - - mountPath: /etc/mysql/ssl-internal - name: ssl-internal - - mountPath: /etc/mysql/mysql-users-secret - name: mysql-users-secret-file - - mountPath: /etc/my.cnf.d - name: auto-config - - mountPath: /etc/mysql/vault-keyring-secret - name: vault-keyring-secret - - mountPath: /etc/mysql/init-file - name: mysql-init-file - dnsPolicy: ClusterFirst - initContainers: - - command: - - /pxc-init-entrypoint.sh - imagePullPolicy: Always - name: pxc-init - resources: - limits: - cpu: 50m - memory: 50M - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/mysql - name: datadir - restartPolicy: Always - schedulerName: default-scheduler - securityContext: - supplementalGroups: - - 1001 - serviceAccount: default - serviceAccountName: default - terminationGracePeriodSeconds: 600 - volumes: - - emptyDir: {} - name: tmp - - configMap: - defaultMode: 420 - name: some-name-pxc - optional: true - name: config - - name: ssl-internal - secret: - defaultMode: 420 - optional: true - secretName: some-name-ssl-internal - - name: ssl - secret: - defaultMode: 420 - optional: false - secretName: some-name-ssl - - configMap: - defaultMode: 420 - name: auto-some-name-pxc - optional: true - name: auto-config - - name: vault-keyring-secret - secret: - defaultMode: 420 - optional: true - secretName: some-name-vault - - name: mysql-users-secret-file - secret: - defaultMode: 420 - optional: false - secretName: internal-some-name - - name: mysql-init-file - secret: - defaultMode: 420 - optional: true - secretName: some-name-mysql-init - updateStrategy: - rollingUpdate: - partition: 0 - type: RollingUpdate - volumeClaimTemplates: - - metadata: - name: datadir - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 2Gi - status: - phase: Pending diff --git a/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1160-k127.yml b/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1160-k127.yml deleted file mode 100644 index 9b1296fba1..0000000000 --- a/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1160-k127.yml +++ /dev/null @@ -1,275 +0,0 @@ -apiVersion: apps/v1 -kind: StatefulSet -metadata: - generation: 3 - name: some-name-pxc - ownerReferences: - - controller: true - kind: PerconaXtraDBCluster - name: some-name -spec: - persistentVolumeClaimRetentionPolicy: - whenDeleted: Retain - whenScaled: Retain - podManagementPolicy: OrderedReady - replicas: 3 - revisionHistoryLimit: 10 - selector: - matchLabels: - app.kubernetes.io/component: pxc - app.kubernetes.io/instance: some-name - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - serviceName: some-name-pxc - template: - metadata: - labels: - app.kubernetes.io/component: pxc - app.kubernetes.io/instance: some-name - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - spec: - affinity: - podAntiAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - - labelSelector: - matchLabels: - app.kubernetes.io/component: pxc - app.kubernetes.io/instance: some-name - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - topologyKey: kubernetes.io/hostname - containers: - - env: - - name: LOG_DATA_DIR - value: /var/lib/mysql - - name: POD_NAMESPASE - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.namespace - - name: POD_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.name - envFrom: - - secretRef: - name: some-name-log-collector - optional: true - imagePullPolicy: Always - name: logs - resources: {} - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/mysql - name: datadir - - args: - - logrotate - env: - - name: SERVICE_TYPE - value: mysql - - name: MONITOR_PASSWORD - valueFrom: - secretKeyRef: - key: monitor - name: internal-some-name - imagePullPolicy: Always - name: logrotate - resources: {} - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/mysql - name: datadir - - args: - - mysqld - command: - - /var/lib/mysql/pxc-entrypoint.sh - env: - - name: PXC_SERVICE - value: some-name-pxc-unready - - name: MONITOR_HOST - value: '%' - - name: MYSQL_ROOT_PASSWORD - valueFrom: - secretKeyRef: - key: root - name: internal-some-name - - name: XTRABACKUP_PASSWORD - valueFrom: - secretKeyRef: - key: xtrabackup - name: internal-some-name - - name: MONITOR_PASSWORD - valueFrom: - secretKeyRef: - key: monitor - name: internal-some-name - - name: LOG_DATA_DIR - value: /var/lib/mysql - - name: IS_LOGCOLLECTOR - value: "yes" - - name: OPERATOR_ADMIN_PASSWORD - valueFrom: - secretKeyRef: - key: operator - name: internal-some-name - - name: LIVENESS_CHECK_TIMEOUT - value: "5" - - name: READINESS_CHECK_TIMEOUT - value: "15" - - name: DEFAULT_AUTHENTICATION_PLUGIN - value: mysql_native_password - envFrom: - - secretRef: - name: some-name-env-vars-pxc - optional: true - imagePullPolicy: Always - livenessProbe: - exec: - command: - - /var/lib/mysql/liveness-check.sh - failureThreshold: 3 - initialDelaySeconds: 300 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 5 - name: pxc - ports: - - containerPort: 3306 - name: mysql - protocol: TCP - - containerPort: 4444 - name: sst - protocol: TCP - - containerPort: 4567 - name: write-set - protocol: TCP - - containerPort: 4568 - name: ist - protocol: TCP - - containerPort: 33062 - name: mysql-admin - protocol: TCP - - containerPort: 33060 - name: mysqlx - protocol: TCP - readinessProbe: - exec: - command: - - /var/lib/mysql/readiness-check.sh - failureThreshold: 5 - initialDelaySeconds: 15 - periodSeconds: 30 - successThreshold: 1 - timeoutSeconds: 15 - resources: - limits: - cpu: "1" - memory: 2G - requests: - cpu: 100m - memory: 100M - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/mysql - name: datadir - - mountPath: /etc/percona-xtradb-cluster.conf.d - name: config - - mountPath: /tmp - name: tmp - - mountPath: /etc/mysql/ssl - name: ssl - - mountPath: /etc/mysql/ssl-internal - name: ssl-internal - - mountPath: /etc/mysql/mysql-users-secret - name: mysql-users-secret-file - - mountPath: /etc/my.cnf.d - name: auto-config - - mountPath: /etc/mysql/vault-keyring-secret - name: vault-keyring-secret - - mountPath: /etc/mysql/init-file - name: mysql-init-file - dnsPolicy: ClusterFirst - initContainers: - - command: - - /pxc-init-entrypoint.sh - imagePullPolicy: Always - name: pxc-init - resources: - limits: - cpu: 50m - memory: 50M - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/mysql - name: datadir - restartPolicy: Always - schedulerName: default-scheduler - securityContext: - fsGroup: 1001 - supplementalGroups: - - 1001 - serviceAccount: default - serviceAccountName: default - terminationGracePeriodSeconds: 600 - volumes: - - emptyDir: {} - name: tmp - - configMap: - defaultMode: 420 - name: some-name-pxc - optional: true - name: config - - name: ssl-internal - secret: - defaultMode: 420 - optional: true - secretName: some-name-ssl-internal - - name: ssl - secret: - defaultMode: 420 - optional: false - secretName: some-name-ssl - - configMap: - defaultMode: 420 - name: auto-some-name-pxc - optional: true - name: auto-config - - name: vault-keyring-secret - secret: - defaultMode: 420 - optional: true - secretName: some-name-vault - - name: mysql-users-secret-file - secret: - defaultMode: 420 - optional: false - secretName: internal-some-name - - name: mysql-init-file - secret: - defaultMode: 420 - optional: true - secretName: some-name-mysql-init - updateStrategy: - rollingUpdate: - partition: 0 - type: RollingUpdate - volumeClaimTemplates: - - metadata: - name: datadir - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 2Gi - status: - phase: Pending diff --git a/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1160-oc.yml b/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1160-oc.yml index 97a6c7d61b..247a3e4e05 100644 --- a/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1160-oc.yml +++ b/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1160-oc.yml @@ -125,7 +125,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state @@ -175,7 +175,7 @@ spec: resources: limits: cpu: "1" - memory: 1G + memory: 2G requests: cpu: 100m memory: 100M diff --git a/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1160.yml b/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1160.yml index 8c782a17ae..af86099bc3 100644 --- a/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1160.yml +++ b/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1160.yml @@ -125,7 +125,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state @@ -175,7 +175,7 @@ spec: resources: limits: cpu: "1" - memory: 1G + memory: 2G requests: cpu: 100m memory: 100M diff --git a/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-pxc-k127-oc.yml b/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-pxc-k127-oc.yml index 90e4983cf1..73b8157e44 100644 --- a/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-pxc-k127-oc.yml +++ b/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-pxc-k127-oc.yml @@ -131,7 +131,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: caching_sha2_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-pxc-k127.yml b/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-pxc-k127.yml index 4780e553a5..4e643ca349 100644 --- a/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-pxc-k127.yml +++ b/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-pxc-k127.yml @@ -131,7 +131,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: caching_sha2_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-pxc-oc.yml b/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-pxc-oc.yml index 9ecf43d80a..e5388ae8d8 100644 --- a/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-pxc-oc.yml +++ b/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-pxc-oc.yml @@ -128,7 +128,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: caching_sha2_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-pxc.yml b/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-pxc.yml index dd44b178b5..f637509a77 100644 --- a/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-pxc.yml +++ b/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-pxc.yml @@ -128,7 +128,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: caching_sha2_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-pxc-k127-oc.yml b/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-pxc-k127-oc.yml index e487a6c638..eae6955b57 100644 --- a/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-pxc-k127-oc.yml +++ b/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-pxc-k127-oc.yml @@ -131,7 +131,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-pxc-k127.yml b/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-pxc-k127.yml index 5cf13414bf..bcc4bb49ba 100644 --- a/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-pxc-k127.yml +++ b/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-pxc-k127.yml @@ -131,7 +131,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-pxc-oc.yml b/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-pxc-oc.yml index e4c5ec86c9..717caf26cd 100644 --- a/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-pxc-oc.yml +++ b/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-pxc-oc.yml @@ -128,7 +128,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-pxc.yml b/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-pxc.yml index a766631c89..7c9b8a5929 100644 --- a/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-pxc.yml +++ b/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-pxc.yml @@ -128,7 +128,7 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password - - name: NOTIFY_SOCKET + - name: MYSQL_NOTIFY_SOCKET value: /var/lib/mysql/notify.sock - name: MYSQL_STATE_FILE value: /var/lib/mysql/mysql.state diff --git a/pkg/pxc/app/statefulset/node.go b/pkg/pxc/app/statefulset/node.go index 938bb56989..8995744c05 100644 --- a/pkg/pxc/app/statefulset/node.go +++ b/pkg/pxc/app/statefulset/node.go @@ -255,7 +255,7 @@ func (c *Node) AppContainer(spec *api.PodSpec, secrets string, cr *api.PerconaXt if cr.CompareVersionWith("1.16.0") >= 0 { appc.Env = append(appc.Env, []corev1.EnvVar{ { - Name: "NOTIFY_SOCKET", + Name: "MYSQL_NOTIFY_SOCKET", Value: "/var/lib/mysql/notify.sock", }, { From cc52062851ced2f21baa52bbae857508ee431645 Mon Sep 17 00:00:00 2001 From: Inel Pandzic Date: Fri, 6 Dec 2024 13:26:23 +0100 Subject: [PATCH 21/60] K8SPXC-377: Add VS support and bug fix (#1882) * Send UserManagementEnabled to VS. * Set default VS_BRANCH env var value. * Fix updated user check. Add validation for empty username. * Check properly user secret pass hash. * Return nil if user is not found in the DB. * Fix checking if rows is empty and update e2e test. * Fix checking for empty rows. * Fix e2e test. * Fix comparing hosts and dbs. --------- Co-authored-by: Viacheslav Sarzhan --- Makefile | 17 + e2e-tests/custom-users/run | 11 +- pkg/controller/pxc/users_custom.go | 36 +- pkg/controller/pxc/version.go | 23 +- pkg/controller/pxc/vs.go | 56 +-- pkg/pxc/users/users.go | 7 + version/client/models/googlerpc_status.go | 5 + version/client/models/protobuf_any.go | 190 +++++------ .../version_get_release_notes_response.go | 56 +++ .../models/version_metadata_response.go | 121 +++++++ .../models/version_metadata_v2_response.go | 121 +++++++ .../models/version_metadata_v2_version.go | 118 +++++++ .../client/models/version_metadata_version.go | 56 +++ .../models/version_operator_response.go | 5 + .../client/models/version_operator_version.go | 5 + .../client/models/version_product_response.go | 5 + version/client/models/version_version.go | 8 + .../client/models/version_version_matrix.go | 104 ++++++ .../client/models/version_version_response.go | 5 + version/client/models/version_version_v2.go | 142 ++++++++ .../version_service_apply_parameters.go | 318 +++++++++++++++++- .../version_service_apply_responses.go | 76 ++++- .../version_service/version_service_client.go | 151 ++++++++- ...on_service_get_release_notes_parameters.go | 173 ++++++++++ ...ion_service_get_release_notes_responses.go | 187 ++++++++++ .../version_service_metadata_parameters.go | 148 ++++++++ .../version_service_metadata_responses.go | 187 ++++++++++ .../version_service_metadata_v2_parameters.go | 148 ++++++++ .../version_service_metadata_v2_responses.go | 187 ++++++++++ .../version_service_operator_parameters.go | 318 +++++++++++++++++- .../version_service_operator_responses.go | 76 ++++- .../version_service_product_parameters.go | 318 +++++++++++++++++- .../version_service_product_responses.go | 76 ++++- 33 files changed, 3257 insertions(+), 197 deletions(-) create mode 100644 version/client/models/version_get_release_notes_response.go create mode 100644 version/client/models/version_metadata_response.go create mode 100644 version/client/models/version_metadata_v2_response.go create mode 100644 version/client/models/version_metadata_v2_version.go create mode 100644 version/client/models/version_metadata_version.go create mode 100644 version/client/models/version_version_v2.go create mode 100644 version/client/version_service/version_service_get_release_notes_parameters.go create mode 100644 version/client/version_service/version_service_get_release_notes_responses.go create mode 100644 version/client/version_service/version_service_metadata_parameters.go create mode 100644 version/client/version_service/version_service_metadata_responses.go create mode 100644 version/client/version_service/version_service_metadata_v2_parameters.go create mode 100644 version/client/version_service/version_service_metadata_v2_responses.go diff --git a/Makefile b/Makefile index 1d806c99da..4a97bea173 100644 --- a/Makefile +++ b/Makefile @@ -101,6 +101,10 @@ ENVTEST = $(shell pwd)/bin/setup-envtest envtest: ## Download envtest-setup locally if necessary. $(call go-get-tool,$(ENVTEST),sigs.k8s.io/controller-runtime/tools/setup-envtest@latest) +SWAGGER = $(shell pwd)/bin/swagger +swagger: ## Download swagger locally if necessary. + $(call go-get-tool,$(SWAGGER),github.com/go-swagger/go-swagger/cmd/swagger@latest) + # Prepare release CERT_MANAGER_VER := $(shell grep -Eo "cert-manager v.*" go.mod|grep -Eo "[0-9]+\.[0-9]+\.[0-9]+") release: manifests @@ -141,3 +145,16 @@ after-release: manifests -e "/^ backup:/,/^ image:/{s#image: .*#image: perconalab/percona-xtradb-cluster-operator:main-pxc8.0-backup#}" \ -e "/initContainer:/,/image:/{s#image: .*#image: perconalab/percona-xtradb-cluster-operator:main#}" \ -e "/^ pmm:/,/^ image:/{s#image: .*#image: perconalab/pmm-client:dev-latest#}" deploy/cr.yaml + +VS_BRANCH = main +version-service-client: swagger + curl https://raw.githubusercontent.com/Percona-Lab/percona-version-service/$(VS_BRANCH)/api/version.swagger.yaml \ + --output ./version.swagger.yaml + rm -rf ./version/client + mkdir -p ./version/client/models + mkdir -p ./version/client/version_service + ./bin/swagger generate client \ + -f ./version.swagger.yaml \ + -c ./version/client \ + -m ./version/client/models + rm ./version.swagger.yaml diff --git a/e2e-tests/custom-users/run b/e2e-tests/custom-users/run index 3de89a325b..34502abab5 100755 --- a/e2e-tests/custom-users/run +++ b/e2e-tests/custom-users/run @@ -37,6 +37,15 @@ compare_mysql_user "-h $cluster-haproxy -uuser-one -pnew-password" compare_mysql_cmd "user-one-1" "SELECT User, Host from mysql.user WHERE User = 'user-one';" "-h $cluster-haproxy -uroot -proot_password" compare_mysql_cmd "user-one-2" "SHOW GRANTS FOR 'user-one'@'127.0.0.1';" "-h $cluster-haproxy -uroot -proot_password" +desc 'check removing secretPasswordRef from user generates user password stored in generated custom-user-secret' +kubectl_bin patch pxc some-name \ + --type=json \ + -p='[{"op": "replace", "path": "/spec/users/1/passwordSecretRef", "value": null}]' +wait_cluster_consistency "$cluster" 3 3 + +userTwoPass=$(kubectl_bin get secret $generatedUserSecret -o jsonpath="{.data.user-two}" | base64 -d) +compare_mysql_user "-h $cluster-haproxy -uuser-two -p'$userTwoPass'" + desc 'delete initial users from CR and create a new one' kubectl_bin patch pxc some-name --type=merge -p='{ "spec": {"users":[ @@ -57,7 +66,7 @@ compare_mysql_cmd "user-four-1" "SELECT User, Host from mysql.user WHERE User = # user-one, user-two and three should not be deleted compare_mysql_user "-h $cluster-haproxy -uuser-one -pnew-password" -compare_mysql_user "-h $cluster-haproxy -uuser-two -ptestpass3" +compare_mysql_user "-h $cluster-haproxy -uuser-two -p'$userTwoPass'" desc 'check user DBs updated' kubectl_bin patch pxc some-name --type=merge -p='{ diff --git a/pkg/controller/pxc/users_custom.go b/pkg/controller/pxc/users_custom.go index 85efb9f883..0dc8803746 100644 --- a/pkg/controller/pxc/users_custom.go +++ b/pkg/controller/pxc/users_custom.go @@ -51,6 +51,11 @@ func (r *ReconcilePerconaXtraDBCluster) reconcileCustomUsers(ctx context.Context sysUserNames := sysUserNames() for _, user := range cr.Spec.Users { + if user.Name == "" { + log.Error(nil, "user name is not set", "user", user) + continue + } + if _, ok := sysUserNames[user.Name]; ok { log.Error(nil, "creating user with reserved user name is forbidden", "user", user.Name) continue @@ -91,7 +96,13 @@ func (r *ReconcilePerconaXtraDBCluster) reconcileCustomUsers(ctx context.Context annotationKey := fmt.Sprintf("percona.com/%s-%s-hash", cr.Name, user.Name) - if userPasswordChanged(userSecret, annotationKey, userSecretPassKey) { + u, err := um.GetUser(ctx, user.Name) + if err != nil { + log.Error(err, "failed to get user", "user", user) + continue + } + + if userPasswordChanged(userSecret, u, annotationKey, userSecretPassKey) { log.Info("User password changed", "user", user.Name) err := um.UpsertUser(ctx, alterUserQuery(&user), string(userSecret.Data[userSecretPassKey])) @@ -109,12 +120,6 @@ func (r *ReconcilePerconaXtraDBCluster) reconcileCustomUsers(ctx context.Context log.Info("User password updated", "user", user.Name) } - u, err := um.GetUser(ctx, user.Name) - if err != nil { - log.Error(err, "failed to get user", "user", user) - continue - } - if userChanged(u, &user, log) { log.Info("Creating/updating user", "user", user.Name) @@ -165,18 +170,19 @@ func generateUserPass( return nil } -func userPasswordChanged(secret *corev1.Secret, key, passKey string) bool { +func userPasswordChanged(secret *corev1.Secret, dbUser *users.User, key, passKey string) bool { if secret.Annotations == nil { return false } hash, ok := secret.Annotations[key] if !ok { - return false + // If annotation is not present in the secret and the user is created (not nil), + // we assume that password has changed. + return dbUser != nil } newHash := sha256Hash(secret.Data[passKey]) - return hash != newHash } @@ -188,16 +194,6 @@ func userChanged(current *users.User, desired *api.User, log logr.Logger) bool { return true } - if len(current.Hosts) != len(desired.Hosts) { - log.Info("Hosts changed", "current", current.Hosts, "desired", desired.Hosts, "user", userName) - return true - } - - if len(current.DBs) != len(desired.DBs) { - log.Info("DBs changed", "current", current.DBs, "desired", desired.DBs) - return true - } - for _, u := range desired.Hosts { if !current.Hosts.Has(u) { log.Info("Hosts changed", "current", current.Hosts, "desired", desired.Hosts, "user", userName) diff --git a/pkg/controller/pxc/version.go b/pkg/controller/pxc/version.go index d239f350f4..e922cf6cff 100644 --- a/pkg/controller/pxc/version.go +++ b/pkg/controller/pxc/version.go @@ -237,17 +237,18 @@ func (r *ReconcilePerconaXtraDBCluster) getNewVersions(ctx context.Context, cr * } vm := versionMeta{ - Apply: cr.Spec.UpgradeOptions.Apply, - Platform: string(cr.Spec.Platform), - KubeVersion: r.serverVersion.Info.GitVersion, - PXCVersion: cr.Status.PXC.Version, - PMMVersion: cr.Status.PMM.Version, - HAProxyVersion: cr.Status.HAProxy.Version, - ProxySQLVersion: cr.Status.ProxySQL.Version, - BackupVersion: cr.Status.Backup.Version, - LogCollectorVersion: cr.Status.LogCollector.Version, - CRUID: string(cr.GetUID()), - ClusterWideEnabled: watchNs == "", + Apply: cr.Spec.UpgradeOptions.Apply, + Platform: string(cr.Spec.Platform), + KubeVersion: r.serverVersion.Info.GitVersion, + PXCVersion: cr.Status.PXC.Version, + PMMVersion: cr.Status.PMM.Version, + HAProxyVersion: cr.Status.HAProxy.Version, + ProxySQLVersion: cr.Status.ProxySQL.Version, + BackupVersion: cr.Status.Backup.Version, + LogCollectorVersion: cr.Status.LogCollector.Version, + CRUID: string(cr.GetUID()), + ClusterWideEnabled: watchNs == "", + UserManagementEnabled: len(cr.Spec.Users) > 0, } endpoint := apiv1.GetDefaultVersionServiceEndpoint() diff --git a/pkg/controller/pxc/vs.go b/pkg/controller/pxc/vs.go index 8356b917ee..577e1114e9 100644 --- a/pkg/controller/pxc/vs.go +++ b/pkg/controller/pxc/vs.go @@ -31,22 +31,23 @@ func (vs VersionServiceClient) GetExactVersion(cr *api.PerconaXtraDBCluster, end }) applyParams := &version_service.VersionServiceApplyParams{ - Apply: vm.Apply, - BackupVersion: &vm.BackupVersion, - CustomResourceUID: &vm.CRUID, - DatabaseVersion: &vm.PXCVersion, - HaproxyVersion: &vm.HAProxyVersion, - KubeVersion: &vm.KubeVersion, - LogCollectorVersion: &vm.LogCollectorVersion, - NamespaceUID: new(string), - OperatorVersion: cr.Spec.CRVersion, - Platform: &vm.Platform, - PmmVersion: &vm.PMMVersion, - Product: productName, - ProxysqlVersion: &vm.ProxySQLVersion, - Context: nil, - ClusterWideEnabled: &vm.ClusterWideEnabled, - HTTPClient: &http.Client{Timeout: 10 * time.Second}, + Apply: vm.Apply, + BackupVersion: &vm.BackupVersion, + CustomResourceUID: &vm.CRUID, + DatabaseVersion: &vm.PXCVersion, + HaproxyVersion: &vm.HAProxyVersion, + KubeVersion: &vm.KubeVersion, + LogCollectorVersion: &vm.LogCollectorVersion, + NamespaceUID: new(string), + OperatorVersion: cr.Spec.CRVersion, + Platform: &vm.Platform, + PmmVersion: &vm.PMMVersion, + Product: productName, + ProxysqlVersion: &vm.ProxySQLVersion, + Context: nil, + ClusterWideEnabled: &vm.ClusterWideEnabled, + HTTPClient: &http.Client{Timeout: 10 * time.Second}, + UserManagementEnabled: &vm.UserManagementEnabled, } applyParams = applyParams.WithTimeout(10 * time.Second) @@ -151,15 +152,16 @@ type VersionServiceClient struct { } type versionMeta struct { - Apply string - PXCVersion string - KubeVersion string - Platform string - PMMVersion string - BackupVersion string - ProxySQLVersion string - HAProxyVersion string - LogCollectorVersion string - CRUID string - ClusterWideEnabled bool + Apply string + PXCVersion string + KubeVersion string + Platform string + PMMVersion string + BackupVersion string + ProxySQLVersion string + HAProxyVersion string + LogCollectorVersion string + CRUID string + ClusterWideEnabled bool + UserManagementEnabled bool } diff --git a/pkg/pxc/users/users.go b/pkg/pxc/users/users.go index 4bf2218837..ec1555ae2c 100644 --- a/pkg/pxc/users/users.go +++ b/pkg/pxc/users/users.go @@ -335,6 +335,8 @@ func (p *Manager) GetUser(ctx context.Context, user string) (*User, error) { if err != nil { return nil, err } + defer rows.Close() + for rows.Next() { var host string var db sql.NullString @@ -349,11 +351,16 @@ func (p *Manager) GetUser(ctx context.Context, user string) (*User, error) { u.Hosts.Insert(host) } + if len(u.Hosts) == 0 { + return nil, nil + } + for host := range u.Hosts { rows, err := p.db.QueryContext(ctx, "SHOW GRANTS FOR ?@?", user, host) if err != nil { return nil, err } + // Plus 1 is for the default grant every user has, which is USAGE. grants := make([]string, 0, len(u.DBs)+1) for rows.Next() { var grant string diff --git a/version/client/models/googlerpc_status.go b/version/client/models/googlerpc_status.go index dc0414ab10..2a3a4a9854 100644 --- a/version/client/models/googlerpc_status.go +++ b/version/client/models/googlerpc_status.go @@ -88,6 +88,11 @@ func (m *GooglerpcStatus) contextValidateDetails(ctx context.Context, formats st for i := 0; i < len(m.Details); i++ { if m.Details[i] != nil { + + if swag.IsZero(m.Details[i]) { // not required + return nil + } + if err := m.Details[i].ContextValidate(ctx, formats); err != nil { if ve, ok := err.(*errors.Validation); ok { return ve.ValidateName("details" + "." + strconv.Itoa(i)) diff --git a/version/client/models/protobuf_any.go b/version/client/models/protobuf_any.go index 4454016000..f25b51ed38 100644 --- a/version/client/models/protobuf_any.go +++ b/version/client/models/protobuf_any.go @@ -7,125 +7,95 @@ package models import ( "context" + "encoding/json" "github.com/go-openapi/strfmt" "github.com/go-openapi/swag" ) -// ProtobufAny `Any` contains an arbitrary serialized protocol buffer message along with a -// URL that describes the type of the serialized message. -// -// Protobuf library provides support to pack/unpack Any values in the form -// of utility functions or additional generated methods of the Any type. -// -// Example 1: Pack and unpack a message in C++. -// -// Foo foo = ...; -// Any any; -// any.PackFrom(foo); -// ... -// if (any.UnpackTo(&foo)) { -// ... -// } -// -// Example 2: Pack and unpack a message in Java. -// -// Foo foo = ...; -// Any any = Any.pack(foo); -// ... -// if (any.is(Foo.class)) { -// foo = any.unpack(Foo.class); -// } -// -// Example 3: Pack and unpack a message in Python. -// -// foo = Foo(...) -// any = Any() -// any.Pack(foo) -// ... -// if any.Is(Foo.DESCRIPTOR): -// any.Unpack(foo) -// ... -// -// Example 4: Pack and unpack a message in Go -// -// foo := &pb.Foo{...} -// any, err := ptypes.MarshalAny(foo) -// ... -// foo := &pb.Foo{} -// if err := ptypes.UnmarshalAny(any, foo); err != nil { -// ... -// } -// -// The pack methods provided by protobuf library will by default use -// 'type.googleapis.com/full.type.name' as the type URL and the unpack -// methods only use the fully qualified type name after the last '/' -// in the type URL, for example "foo.bar.com/x/y.z" will yield type -// name "y.z". -// -// JSON -// ==== -// The JSON representation of an `Any` value uses the regular -// representation of the deserialized, embedded message, with an -// additional field `@type` which contains the type URL. Example: -// -// package google.profile; -// message Person { -// string first_name = 1; -// string last_name = 2; -// } -// -// { -// "@type": "type.googleapis.com/google.profile.Person", -// "firstName": , -// "lastName": -// } -// -// If the embedded message type is well-known and has a custom JSON -// representation, that representation will be embedded adding a field -// `value` which holds the custom JSON in addition to the `@type` -// field. Example (for message [google.protobuf.Duration][]): -// -// { -// "@type": "type.googleapis.com/google.protobuf.Duration", -// "value": "1.212s" -// } +// ProtobufAny protobuf any // // swagger:model protobufAny type ProtobufAny struct { - // A URL/resource name that uniquely identifies the type of the serialized - // protocol buffer message. This string must contain at least - // one "/" character. The last segment of the URL's path must represent - // the fully qualified name of the type (as in - // `path/google.protobuf.Duration`). The name should be in a canonical form - // (e.g., leading "." is not accepted). - // - // In practice, teams usually precompile into the binary all types that they - // expect it to use in the context of Any. However, for URLs which use the - // scheme `http`, `https`, or no scheme, one can optionally set up a type - // server that maps type URLs to message definitions as follows: - // - // * If no scheme is provided, `https` is assumed. - // * An HTTP GET on the URL must yield a [google.protobuf.Type][] - // value in binary format, or produce an error. - // * Applications are allowed to cache lookup results based on the - // URL, or have them precompiled into a binary to avoid any - // lookup. Therefore, binary compatibility needs to be preserved - // on changes to types. (Use versioned type names to manage - // breaking changes.) - // - // Note: this functionality is not currently available in the official - // protobuf release, and it is not used for type URLs beginning with - // type.googleapis.com. - // - // Schemes other than `http`, `https` (or the empty scheme) might be - // used with implementation specific semantics. - TypeURL string `json:"typeUrl,omitempty"` - - // Must be a valid serialized protocol buffer of the above specified type. - // Format: byte - Value strfmt.Base64 `json:"value,omitempty"` + // at type + AtType string `json:"@type,omitempty"` + + // protobuf any + ProtobufAny map[string]interface{} `json:"-"` +} + +// UnmarshalJSON unmarshals this object with additional properties from JSON +func (m *ProtobufAny) UnmarshalJSON(data []byte) error { + // stage 1, bind the properties + var stage1 struct { + + // at type + AtType string `json:"@type,omitempty"` + } + if err := json.Unmarshal(data, &stage1); err != nil { + return err + } + var rcv ProtobufAny + + rcv.AtType = stage1.AtType + *m = rcv + + // stage 2, remove properties and add to map + stage2 := make(map[string]json.RawMessage) + if err := json.Unmarshal(data, &stage2); err != nil { + return err + } + + delete(stage2, "@type") + // stage 3, add additional properties values + if len(stage2) > 0 { + result := make(map[string]interface{}) + for k, v := range stage2 { + var toadd interface{} + if err := json.Unmarshal(v, &toadd); err != nil { + return err + } + result[k] = toadd + } + m.ProtobufAny = result + } + + return nil +} + +// MarshalJSON marshals this object with additional properties into a JSON object +func (m ProtobufAny) MarshalJSON() ([]byte, error) { + var stage1 struct { + + // at type + AtType string `json:"@type,omitempty"` + } + + stage1.AtType = m.AtType + + // make JSON object for known properties + props, err := json.Marshal(stage1) + if err != nil { + return nil, err + } + + if len(m.ProtobufAny) == 0 { // no additional properties + return props, nil + } + + // make JSON object for the additional properties + additional, err := json.Marshal(m.ProtobufAny) + if err != nil { + return nil, err + } + + if len(props) < 3 { // "{}": only additional properties + return additional, nil + } + + // concatenate the 2 objects + return swag.ConcatJSON(props, additional), nil } // Validate validates this protobuf any diff --git a/version/client/models/version_get_release_notes_response.go b/version/client/models/version_get_release_notes_response.go new file mode 100644 index 0000000000..74229dacd0 --- /dev/null +++ b/version/client/models/version_get_release_notes_response.go @@ -0,0 +1,56 @@ +// Code generated by go-swagger; DO NOT EDIT. + +package models + +// This file was generated by the swagger tool. +// Editing this file might prove futile when you re-run the swagger generate command + +import ( + "context" + + "github.com/go-openapi/strfmt" + "github.com/go-openapi/swag" +) + +// VersionGetReleaseNotesResponse version get release notes response +// +// swagger:model versionGetReleaseNotesResponse +type VersionGetReleaseNotesResponse struct { + + // The product name. + Product string `json:"product,omitempty"` + + // release_notes is the release note for this version. + ReleaseNote string `json:"releaseNote,omitempty"` + + // version + Version string `json:"version,omitempty"` +} + +// Validate validates this version get release notes response +func (m *VersionGetReleaseNotesResponse) Validate(formats strfmt.Registry) error { + return nil +} + +// ContextValidate validates this version get release notes response based on context it is used +func (m *VersionGetReleaseNotesResponse) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (m *VersionGetReleaseNotesResponse) MarshalBinary() ([]byte, error) { + if m == nil { + return nil, nil + } + return swag.WriteJSON(m) +} + +// UnmarshalBinary interface implementation +func (m *VersionGetReleaseNotesResponse) UnmarshalBinary(b []byte) error { + var res VersionGetReleaseNotesResponse + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *m = res + return nil +} diff --git a/version/client/models/version_metadata_response.go b/version/client/models/version_metadata_response.go new file mode 100644 index 0000000000..c5978122fc --- /dev/null +++ b/version/client/models/version_metadata_response.go @@ -0,0 +1,121 @@ +// Code generated by go-swagger; DO NOT EDIT. + +package models + +// This file was generated by the swagger tool. +// Editing this file might prove futile when you re-run the swagger generate command + +import ( + "context" + "strconv" + + "github.com/go-openapi/errors" + "github.com/go-openapi/strfmt" + "github.com/go-openapi/swag" +) + +// VersionMetadataResponse version metadata response +// +// swagger:model versionMetadataResponse +type VersionMetadataResponse struct { + + // versions + Versions []*VersionMetadataVersion `json:"versions"` +} + +// Validate validates this version metadata response +func (m *VersionMetadataResponse) Validate(formats strfmt.Registry) error { + var res []error + + if err := m.validateVersions(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (m *VersionMetadataResponse) validateVersions(formats strfmt.Registry) error { + if swag.IsZero(m.Versions) { // not required + return nil + } + + for i := 0; i < len(m.Versions); i++ { + if swag.IsZero(m.Versions[i]) { // not required + continue + } + + if m.Versions[i] != nil { + if err := m.Versions[i].Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("versions" + "." + strconv.Itoa(i)) + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("versions" + "." + strconv.Itoa(i)) + } + return err + } + } + + } + + return nil +} + +// ContextValidate validate this version metadata response based on the context it is used +func (m *VersionMetadataResponse) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + var res []error + + if err := m.contextValidateVersions(ctx, formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (m *VersionMetadataResponse) contextValidateVersions(ctx context.Context, formats strfmt.Registry) error { + + for i := 0; i < len(m.Versions); i++ { + + if m.Versions[i] != nil { + + if swag.IsZero(m.Versions[i]) { // not required + return nil + } + + if err := m.Versions[i].ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("versions" + "." + strconv.Itoa(i)) + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("versions" + "." + strconv.Itoa(i)) + } + return err + } + } + + } + + return nil +} + +// MarshalBinary interface implementation +func (m *VersionMetadataResponse) MarshalBinary() ([]byte, error) { + if m == nil { + return nil, nil + } + return swag.WriteJSON(m) +} + +// UnmarshalBinary interface implementation +func (m *VersionMetadataResponse) UnmarshalBinary(b []byte) error { + var res VersionMetadataResponse + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *m = res + return nil +} diff --git a/version/client/models/version_metadata_v2_response.go b/version/client/models/version_metadata_v2_response.go new file mode 100644 index 0000000000..b32e3bfc31 --- /dev/null +++ b/version/client/models/version_metadata_v2_response.go @@ -0,0 +1,121 @@ +// Code generated by go-swagger; DO NOT EDIT. + +package models + +// This file was generated by the swagger tool. +// Editing this file might prove futile when you re-run the swagger generate command + +import ( + "context" + "strconv" + + "github.com/go-openapi/errors" + "github.com/go-openapi/strfmt" + "github.com/go-openapi/swag" +) + +// VersionMetadataV2Response version metadata v2 response +// +// swagger:model versionMetadataV2Response +type VersionMetadataV2Response struct { + + // versions + Versions []*VersionMetadataV2Version `json:"versions"` +} + +// Validate validates this version metadata v2 response +func (m *VersionMetadataV2Response) Validate(formats strfmt.Registry) error { + var res []error + + if err := m.validateVersions(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (m *VersionMetadataV2Response) validateVersions(formats strfmt.Registry) error { + if swag.IsZero(m.Versions) { // not required + return nil + } + + for i := 0; i < len(m.Versions); i++ { + if swag.IsZero(m.Versions[i]) { // not required + continue + } + + if m.Versions[i] != nil { + if err := m.Versions[i].Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("versions" + "." + strconv.Itoa(i)) + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("versions" + "." + strconv.Itoa(i)) + } + return err + } + } + + } + + return nil +} + +// ContextValidate validate this version metadata v2 response based on the context it is used +func (m *VersionMetadataV2Response) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + var res []error + + if err := m.contextValidateVersions(ctx, formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (m *VersionMetadataV2Response) contextValidateVersions(ctx context.Context, formats strfmt.Registry) error { + + for i := 0; i < len(m.Versions); i++ { + + if m.Versions[i] != nil { + + if swag.IsZero(m.Versions[i]) { // not required + return nil + } + + if err := m.Versions[i].ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("versions" + "." + strconv.Itoa(i)) + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("versions" + "." + strconv.Itoa(i)) + } + return err + } + } + + } + + return nil +} + +// MarshalBinary interface implementation +func (m *VersionMetadataV2Response) MarshalBinary() ([]byte, error) { + if m == nil { + return nil, nil + } + return swag.WriteJSON(m) +} + +// UnmarshalBinary interface implementation +func (m *VersionMetadataV2Response) UnmarshalBinary(b []byte) error { + var res VersionMetadataV2Response + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *m = res + return nil +} diff --git a/version/client/models/version_metadata_v2_version.go b/version/client/models/version_metadata_v2_version.go new file mode 100644 index 0000000000..c5437cab09 --- /dev/null +++ b/version/client/models/version_metadata_v2_version.go @@ -0,0 +1,118 @@ +// Code generated by go-swagger; DO NOT EDIT. + +package models + +// This file was generated by the swagger tool. +// Editing this file might prove futile when you re-run the swagger generate command + +import ( + "context" + + "github.com/go-openapi/errors" + "github.com/go-openapi/strfmt" + "github.com/go-openapi/swag" +) + +// VersionMetadataV2Version MetadataV2Version represents metadata for a given version with additional fields. +// +// swagger:model versionMetadataV2Version +type VersionMetadataV2Version struct { + + // ImageInfo holds information about the docker image for this version. + ImageInfo *VersionVersionV2 `json:"imageInfo,omitempty"` + + // Recommended is the recommended version for a given component. + Recommended map[string]string `json:"recommended,omitempty"` + + // Supported holds semver constraint per component, such as ">= 1.0, < 1.4". + Supported map[string]string `json:"supported,omitempty"` + + // version + Version string `json:"version,omitempty"` +} + +// Validate validates this version metadata v2 version +func (m *VersionMetadataV2Version) Validate(formats strfmt.Registry) error { + var res []error + + if err := m.validateImageInfo(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (m *VersionMetadataV2Version) validateImageInfo(formats strfmt.Registry) error { + if swag.IsZero(m.ImageInfo) { // not required + return nil + } + + if m.ImageInfo != nil { + if err := m.ImageInfo.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("imageInfo") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("imageInfo") + } + return err + } + } + + return nil +} + +// ContextValidate validate this version metadata v2 version based on the context it is used +func (m *VersionMetadataV2Version) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + var res []error + + if err := m.contextValidateImageInfo(ctx, formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (m *VersionMetadataV2Version) contextValidateImageInfo(ctx context.Context, formats strfmt.Registry) error { + + if m.ImageInfo != nil { + + if swag.IsZero(m.ImageInfo) { // not required + return nil + } + + if err := m.ImageInfo.ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("imageInfo") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("imageInfo") + } + return err + } + } + + return nil +} + +// MarshalBinary interface implementation +func (m *VersionMetadataV2Version) MarshalBinary() ([]byte, error) { + if m == nil { + return nil, nil + } + return swag.WriteJSON(m) +} + +// UnmarshalBinary interface implementation +func (m *VersionMetadataV2Version) UnmarshalBinary(b []byte) error { + var res VersionMetadataV2Version + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *m = res + return nil +} diff --git a/version/client/models/version_metadata_version.go b/version/client/models/version_metadata_version.go new file mode 100644 index 0000000000..a635c8473f --- /dev/null +++ b/version/client/models/version_metadata_version.go @@ -0,0 +1,56 @@ +// Code generated by go-swagger; DO NOT EDIT. + +package models + +// This file was generated by the swagger tool. +// Editing this file might prove futile when you re-run the swagger generate command + +import ( + "context" + + "github.com/go-openapi/strfmt" + "github.com/go-openapi/swag" +) + +// VersionMetadataVersion MetadataVersion represents metadata for a given version. +// +// swagger:model versionMetadataVersion +type VersionMetadataVersion struct { + + // Recommended is the recommended version for a given component. + Recommended map[string]string `json:"recommended,omitempty"` + + // Supported holds semver constraint per component, such as ">= 1.0, < 1.4". + Supported map[string]string `json:"supported,omitempty"` + + // version + Version string `json:"version,omitempty"` +} + +// Validate validates this version metadata version +func (m *VersionMetadataVersion) Validate(formats strfmt.Registry) error { + return nil +} + +// ContextValidate validates this version metadata version based on context it is used +func (m *VersionMetadataVersion) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (m *VersionMetadataVersion) MarshalBinary() ([]byte, error) { + if m == nil { + return nil, nil + } + return swag.WriteJSON(m) +} + +// UnmarshalBinary interface implementation +func (m *VersionMetadataVersion) UnmarshalBinary(b []byte) error { + var res VersionMetadataVersion + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *m = res + return nil +} diff --git a/version/client/models/version_operator_response.go b/version/client/models/version_operator_response.go index 6ff2150269..22a92f7051 100644 --- a/version/client/models/version_operator_response.go +++ b/version/client/models/version_operator_response.go @@ -82,6 +82,11 @@ func (m *VersionOperatorResponse) contextValidateVersions(ctx context.Context, f for i := 0; i < len(m.Versions); i++ { if m.Versions[i] != nil { + + if swag.IsZero(m.Versions[i]) { // not required + return nil + } + if err := m.Versions[i].ContextValidate(ctx, formats); err != nil { if ve, ok := err.(*errors.Validation); ok { return ve.ValidateName("versions" + "." + strconv.Itoa(i)) diff --git a/version/client/models/version_operator_version.go b/version/client/models/version_operator_version.go index 7eedb8de94..b7fb267af8 100644 --- a/version/client/models/version_operator_version.go +++ b/version/client/models/version_operator_version.go @@ -78,6 +78,11 @@ func (m *VersionOperatorVersion) ContextValidate(ctx context.Context, formats st func (m *VersionOperatorVersion) contextValidateMatrix(ctx context.Context, formats strfmt.Registry) error { if m.Matrix != nil { + + if swag.IsZero(m.Matrix) { // not required + return nil + } + if err := m.Matrix.ContextValidate(ctx, formats); err != nil { if ve, ok := err.(*errors.Validation); ok { return ve.ValidateName("matrix") diff --git a/version/client/models/version_product_response.go b/version/client/models/version_product_response.go index 77ff32d0f4..ec7fc278cc 100644 --- a/version/client/models/version_product_response.go +++ b/version/client/models/version_product_response.go @@ -82,6 +82,11 @@ func (m *VersionProductResponse) contextValidateVersions(ctx context.Context, fo for i := 0; i < len(m.Versions); i++ { if m.Versions[i] != nil { + + if swag.IsZero(m.Versions[i]) { // not required + return nil + } + if err := m.Versions[i].ContextValidate(ctx, formats); err != nil { if ve, ok := err.(*errors.Validation); ok { return ve.ValidateName("versions" + "." + strconv.Itoa(i)) diff --git a/version/client/models/version_version.go b/version/client/models/version_version.go index f102929268..7d262b252e 100644 --- a/version/client/models/version_version.go +++ b/version/client/models/version_version.go @@ -24,6 +24,9 @@ type VersionVersion struct { // image hash ImageHash string `json:"imageHash,omitempty"` + // image hash arm64 + ImageHashArm64 string `json:"imageHashArm64,omitempty"` + // image path ImagePath string `json:"imagePath,omitempty"` @@ -81,6 +84,11 @@ func (m *VersionVersion) ContextValidate(ctx context.Context, formats strfmt.Reg func (m *VersionVersion) contextValidateStatus(ctx context.Context, formats strfmt.Registry) error { if m.Status != nil { + + if swag.IsZero(m.Status) { // not required + return nil + } + if err := m.Status.ContextValidate(ctx, formats); err != nil { if ve, ok := err.(*errors.Validation); ok { return ve.ValidateName("status") diff --git a/version/client/models/version_version_matrix.go b/version/client/models/version_version_matrix.go index 7f59def8ff..fba724e6e8 100644 --- a/version/client/models/version_version_matrix.go +++ b/version/client/models/version_version_matrix.go @@ -73,6 +73,9 @@ type VersionVersionMatrix struct { // pmm Pmm map[string]VersionVersion `json:"pmm,omitempty"` + // postgis + Postgis map[string]VersionVersion `json:"postgis,omitempty"` + // postgresql Postgresql map[string]VersionVersion `json:"postgresql,omitempty"` @@ -93,6 +96,9 @@ type VersionVersionMatrix struct { // router Router map[string]VersionVersion `json:"router,omitempty"` + + // toolkit + Toolkit map[string]VersionVersion `json:"toolkit,omitempty"` } // Validate validates this version version matrix @@ -171,6 +177,10 @@ func (m *VersionVersionMatrix) Validate(formats strfmt.Registry) error { res = append(res, err) } + if err := m.validatePostgis(formats); err != nil { + res = append(res, err) + } + if err := m.validatePostgresql(formats); err != nil { res = append(res, err) } @@ -199,6 +209,10 @@ func (m *VersionVersionMatrix) Validate(formats strfmt.Registry) error { res = append(res, err) } + if err := m.validateToolkit(formats); err != nil { + res = append(res, err) + } + if len(res) > 0 { return errors.CompositeValidationError(res...) } @@ -673,6 +687,32 @@ func (m *VersionVersionMatrix) validatePmm(formats strfmt.Registry) error { return nil } +func (m *VersionVersionMatrix) validatePostgis(formats strfmt.Registry) error { + if swag.IsZero(m.Postgis) { // not required + return nil + } + + for k := range m.Postgis { + + if err := validate.Required("postgis"+"."+k, "body", m.Postgis[k]); err != nil { + return err + } + if val, ok := m.Postgis[k]; ok { + if err := val.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("postgis" + "." + k) + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("postgis" + "." + k) + } + return err + } + } + + } + + return nil +} + func (m *VersionVersionMatrix) validatePostgresql(formats strfmt.Registry) error { if swag.IsZero(m.Postgresql) { // not required return nil @@ -855,6 +895,32 @@ func (m *VersionVersionMatrix) validateRouter(formats strfmt.Registry) error { return nil } +func (m *VersionVersionMatrix) validateToolkit(formats strfmt.Registry) error { + if swag.IsZero(m.Toolkit) { // not required + return nil + } + + for k := range m.Toolkit { + + if err := validate.Required("toolkit"+"."+k, "body", m.Toolkit[k]); err != nil { + return err + } + if val, ok := m.Toolkit[k]; ok { + if err := val.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("toolkit" + "." + k) + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("toolkit" + "." + k) + } + return err + } + } + + } + + return nil +} + // ContextValidate validate this version version matrix based on the context it is used func (m *VersionVersionMatrix) ContextValidate(ctx context.Context, formats strfmt.Registry) error { var res []error @@ -931,6 +997,10 @@ func (m *VersionVersionMatrix) ContextValidate(ctx context.Context, formats strf res = append(res, err) } + if err := m.contextValidatePostgis(ctx, formats); err != nil { + res = append(res, err) + } + if err := m.contextValidatePostgresql(ctx, formats); err != nil { res = append(res, err) } @@ -959,6 +1029,10 @@ func (m *VersionVersionMatrix) ContextValidate(ctx context.Context, formats strf res = append(res, err) } + if err := m.contextValidateToolkit(ctx, formats); err != nil { + res = append(res, err) + } + if len(res) > 0 { return errors.CompositeValidationError(res...) } @@ -1235,6 +1309,21 @@ func (m *VersionVersionMatrix) contextValidatePmm(ctx context.Context, formats s return nil } +func (m *VersionVersionMatrix) contextValidatePostgis(ctx context.Context, formats strfmt.Registry) error { + + for k := range m.Postgis { + + if val, ok := m.Postgis[k]; ok { + if err := val.ContextValidate(ctx, formats); err != nil { + return err + } + } + + } + + return nil +} + func (m *VersionVersionMatrix) contextValidatePostgresql(ctx context.Context, formats strfmt.Registry) error { for k := range m.Postgresql { @@ -1340,6 +1429,21 @@ func (m *VersionVersionMatrix) contextValidateRouter(ctx context.Context, format return nil } +func (m *VersionVersionMatrix) contextValidateToolkit(ctx context.Context, formats strfmt.Registry) error { + + for k := range m.Toolkit { + + if val, ok := m.Toolkit[k]; ok { + if err := val.ContextValidate(ctx, formats); err != nil { + return err + } + } + + } + + return nil +} + // MarshalBinary interface implementation func (m *VersionVersionMatrix) MarshalBinary() ([]byte, error) { if m == nil { diff --git a/version/client/models/version_version_response.go b/version/client/models/version_version_response.go index 34abed8e6a..906c342be2 100644 --- a/version/client/models/version_version_response.go +++ b/version/client/models/version_version_response.go @@ -82,6 +82,11 @@ func (m *VersionVersionResponse) contextValidateVersions(ctx context.Context, fo for i := 0; i < len(m.Versions); i++ { if m.Versions[i] != nil { + + if swag.IsZero(m.Versions[i]) { // not required + return nil + } + if err := m.Versions[i].ContextValidate(ctx, formats); err != nil { if ve, ok := err.(*errors.Validation); ok { return ve.ValidateName("versions" + "." + strconv.Itoa(i)) diff --git a/version/client/models/version_version_v2.go b/version/client/models/version_version_v2.go new file mode 100644 index 0000000000..68a5bef16b --- /dev/null +++ b/version/client/models/version_version_v2.go @@ -0,0 +1,142 @@ +// Code generated by go-swagger; DO NOT EDIT. + +package models + +// This file was generated by the swagger tool. +// Editing this file might prove futile when you re-run the swagger generate command + +import ( + "context" + + "github.com/go-openapi/errors" + "github.com/go-openapi/strfmt" + "github.com/go-openapi/swag" + "github.com/go-openapi/validate" +) + +// VersionVersionV2 Version represents product version information. +// +// swagger:model versionVersionV2 +type VersionVersionV2 struct { + + // critical + Critical bool `json:"critical,omitempty"` + + // image hash + ImageHash string `json:"imageHash,omitempty"` + + // image hash arm64 + ImageHashArm64 string `json:"imageHashArm64,omitempty"` + + // image path + ImagePath string `json:"imagePath,omitempty"` + + // release_timestamp is the release time of this image. + // Format: date-time + ImageReleaseTimestamp strfmt.DateTime `json:"imageReleaseTimestamp,omitempty"` + + // status + Status *VersionStatus `json:"status,omitempty"` +} + +// Validate validates this version version v2 +func (m *VersionVersionV2) Validate(formats strfmt.Registry) error { + var res []error + + if err := m.validateImageReleaseTimestamp(formats); err != nil { + res = append(res, err) + } + + if err := m.validateStatus(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (m *VersionVersionV2) validateImageReleaseTimestamp(formats strfmt.Registry) error { + if swag.IsZero(m.ImageReleaseTimestamp) { // not required + return nil + } + + if err := validate.FormatOf("imageReleaseTimestamp", "body", "date-time", m.ImageReleaseTimestamp.String(), formats); err != nil { + return err + } + + return nil +} + +func (m *VersionVersionV2) validateStatus(formats strfmt.Registry) error { + if swag.IsZero(m.Status) { // not required + return nil + } + + if m.Status != nil { + if err := m.Status.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("status") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("status") + } + return err + } + } + + return nil +} + +// ContextValidate validate this version version v2 based on the context it is used +func (m *VersionVersionV2) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + var res []error + + if err := m.contextValidateStatus(ctx, formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (m *VersionVersionV2) contextValidateStatus(ctx context.Context, formats strfmt.Registry) error { + + if m.Status != nil { + + if swag.IsZero(m.Status) { // not required + return nil + } + + if err := m.Status.ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("status") + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("status") + } + return err + } + } + + return nil +} + +// MarshalBinary interface implementation +func (m *VersionVersionV2) MarshalBinary() ([]byte, error) { + if m == nil { + return nil, nil + } + return swag.WriteJSON(m) +} + +// UnmarshalBinary interface implementation +func (m *VersionVersionV2) UnmarshalBinary(b []byte) error { + var res VersionVersionV2 + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *m = res + return nil +} diff --git a/version/client/version_service/version_service_apply_parameters.go b/version/client/version_service/version_service_apply_parameters.go index 2d19601cb7..cb76bdb1d8 100644 --- a/version/client/version_service/version_service_apply_parameters.go +++ b/version/client/version_service/version_service_apply_parameters.go @@ -68,9 +68,15 @@ type VersionServiceApplyParams struct { // BackupVersion. BackupVersion *string - // ClusterWideEnabled. + // BackupsEnabled. + BackupsEnabled *bool + + // ClusterSize. // - // Format: boolean + // Format: int32 + ClusterSize *int32 + + // ClusterWideEnabled. ClusterWideEnabled *bool // CustomResourceUID. @@ -79,14 +85,21 @@ type VersionServiceApplyParams struct { // DatabaseVersion. DatabaseVersion *string + // Extensions. + Extensions *string + // HaproxyVersion. HaproxyVersion *string // HashicorpVaultEnabled. - // - // Format: boolean HashicorpVaultEnabled *bool + // HelmDeployCr. + HelmDeployCr *bool + + // HelmDeployOperator. + HelmDeployOperator *bool + // KubeVersion. KubeVersion *string @@ -99,9 +112,18 @@ type VersionServiceApplyParams struct { // OperatorVersion. OperatorVersion string + // PhysicalBackupScheduled. + PhysicalBackupScheduled *bool + + // PitrEnabled. + PitrEnabled *bool + // Platform. Platform *string + // PmmEnabled. + PmmEnabled *bool + // PmmVersion. PmmVersion *string @@ -112,10 +134,14 @@ type VersionServiceApplyParams struct { ProxysqlVersion *string // ShardingEnabled. - // - // Format: boolean ShardingEnabled *bool + // SidecarsUsed. + SidecarsUsed *bool + + // UserManagementEnabled. + UserManagementEnabled *bool + timeout time.Duration Context context.Context HTTPClient *http.Client @@ -191,6 +217,28 @@ func (o *VersionServiceApplyParams) SetBackupVersion(backupVersion *string) { o.BackupVersion = backupVersion } +// WithBackupsEnabled adds the backupsEnabled to the version service apply params +func (o *VersionServiceApplyParams) WithBackupsEnabled(backupsEnabled *bool) *VersionServiceApplyParams { + o.SetBackupsEnabled(backupsEnabled) + return o +} + +// SetBackupsEnabled adds the backupsEnabled to the version service apply params +func (o *VersionServiceApplyParams) SetBackupsEnabled(backupsEnabled *bool) { + o.BackupsEnabled = backupsEnabled +} + +// WithClusterSize adds the clusterSize to the version service apply params +func (o *VersionServiceApplyParams) WithClusterSize(clusterSize *int32) *VersionServiceApplyParams { + o.SetClusterSize(clusterSize) + return o +} + +// SetClusterSize adds the clusterSize to the version service apply params +func (o *VersionServiceApplyParams) SetClusterSize(clusterSize *int32) { + o.ClusterSize = clusterSize +} + // WithClusterWideEnabled adds the clusterWideEnabled to the version service apply params func (o *VersionServiceApplyParams) WithClusterWideEnabled(clusterWideEnabled *bool) *VersionServiceApplyParams { o.SetClusterWideEnabled(clusterWideEnabled) @@ -224,6 +272,17 @@ func (o *VersionServiceApplyParams) SetDatabaseVersion(databaseVersion *string) o.DatabaseVersion = databaseVersion } +// WithExtensions adds the extensions to the version service apply params +func (o *VersionServiceApplyParams) WithExtensions(extensions *string) *VersionServiceApplyParams { + o.SetExtensions(extensions) + return o +} + +// SetExtensions adds the extensions to the version service apply params +func (o *VersionServiceApplyParams) SetExtensions(extensions *string) { + o.Extensions = extensions +} + // WithHaproxyVersion adds the haproxyVersion to the version service apply params func (o *VersionServiceApplyParams) WithHaproxyVersion(haproxyVersion *string) *VersionServiceApplyParams { o.SetHaproxyVersion(haproxyVersion) @@ -246,6 +305,28 @@ func (o *VersionServiceApplyParams) SetHashicorpVaultEnabled(hashicorpVaultEnabl o.HashicorpVaultEnabled = hashicorpVaultEnabled } +// WithHelmDeployCr adds the helmDeployCr to the version service apply params +func (o *VersionServiceApplyParams) WithHelmDeployCr(helmDeployCr *bool) *VersionServiceApplyParams { + o.SetHelmDeployCr(helmDeployCr) + return o +} + +// SetHelmDeployCr adds the helmDeployCr to the version service apply params +func (o *VersionServiceApplyParams) SetHelmDeployCr(helmDeployCr *bool) { + o.HelmDeployCr = helmDeployCr +} + +// WithHelmDeployOperator adds the helmDeployOperator to the version service apply params +func (o *VersionServiceApplyParams) WithHelmDeployOperator(helmDeployOperator *bool) *VersionServiceApplyParams { + o.SetHelmDeployOperator(helmDeployOperator) + return o +} + +// SetHelmDeployOperator adds the helmDeployOperator to the version service apply params +func (o *VersionServiceApplyParams) SetHelmDeployOperator(helmDeployOperator *bool) { + o.HelmDeployOperator = helmDeployOperator +} + // WithKubeVersion adds the kubeVersion to the version service apply params func (o *VersionServiceApplyParams) WithKubeVersion(kubeVersion *string) *VersionServiceApplyParams { o.SetKubeVersion(kubeVersion) @@ -290,6 +371,28 @@ func (o *VersionServiceApplyParams) SetOperatorVersion(operatorVersion string) { o.OperatorVersion = operatorVersion } +// WithPhysicalBackupScheduled adds the physicalBackupScheduled to the version service apply params +func (o *VersionServiceApplyParams) WithPhysicalBackupScheduled(physicalBackupScheduled *bool) *VersionServiceApplyParams { + o.SetPhysicalBackupScheduled(physicalBackupScheduled) + return o +} + +// SetPhysicalBackupScheduled adds the physicalBackupScheduled to the version service apply params +func (o *VersionServiceApplyParams) SetPhysicalBackupScheduled(physicalBackupScheduled *bool) { + o.PhysicalBackupScheduled = physicalBackupScheduled +} + +// WithPitrEnabled adds the pitrEnabled to the version service apply params +func (o *VersionServiceApplyParams) WithPitrEnabled(pitrEnabled *bool) *VersionServiceApplyParams { + o.SetPitrEnabled(pitrEnabled) + return o +} + +// SetPitrEnabled adds the pitrEnabled to the version service apply params +func (o *VersionServiceApplyParams) SetPitrEnabled(pitrEnabled *bool) { + o.PitrEnabled = pitrEnabled +} + // WithPlatform adds the platform to the version service apply params func (o *VersionServiceApplyParams) WithPlatform(platform *string) *VersionServiceApplyParams { o.SetPlatform(platform) @@ -301,6 +404,17 @@ func (o *VersionServiceApplyParams) SetPlatform(platform *string) { o.Platform = platform } +// WithPmmEnabled adds the pmmEnabled to the version service apply params +func (o *VersionServiceApplyParams) WithPmmEnabled(pmmEnabled *bool) *VersionServiceApplyParams { + o.SetPmmEnabled(pmmEnabled) + return o +} + +// SetPmmEnabled adds the pmmEnabled to the version service apply params +func (o *VersionServiceApplyParams) SetPmmEnabled(pmmEnabled *bool) { + o.PmmEnabled = pmmEnabled +} + // WithPmmVersion adds the pmmVersion to the version service apply params func (o *VersionServiceApplyParams) WithPmmVersion(pmmVersion *string) *VersionServiceApplyParams { o.SetPmmVersion(pmmVersion) @@ -345,6 +459,28 @@ func (o *VersionServiceApplyParams) SetShardingEnabled(shardingEnabled *bool) { o.ShardingEnabled = shardingEnabled } +// WithSidecarsUsed adds the sidecarsUsed to the version service apply params +func (o *VersionServiceApplyParams) WithSidecarsUsed(sidecarsUsed *bool) *VersionServiceApplyParams { + o.SetSidecarsUsed(sidecarsUsed) + return o +} + +// SetSidecarsUsed adds the sidecarsUsed to the version service apply params +func (o *VersionServiceApplyParams) SetSidecarsUsed(sidecarsUsed *bool) { + o.SidecarsUsed = sidecarsUsed +} + +// WithUserManagementEnabled adds the userManagementEnabled to the version service apply params +func (o *VersionServiceApplyParams) WithUserManagementEnabled(userManagementEnabled *bool) *VersionServiceApplyParams { + o.SetUserManagementEnabled(userManagementEnabled) + return o +} + +// SetUserManagementEnabled adds the userManagementEnabled to the version service apply params +func (o *VersionServiceApplyParams) SetUserManagementEnabled(userManagementEnabled *bool) { + o.UserManagementEnabled = userManagementEnabled +} + // WriteToRequest writes these params to a swagger request func (o *VersionServiceApplyParams) WriteToRequest(r runtime.ClientRequest, reg strfmt.Registry) error { @@ -375,6 +511,40 @@ func (o *VersionServiceApplyParams) WriteToRequest(r runtime.ClientRequest, reg } } + if o.BackupsEnabled != nil { + + // query param backupsEnabled + var qrBackupsEnabled bool + + if o.BackupsEnabled != nil { + qrBackupsEnabled = *o.BackupsEnabled + } + qBackupsEnabled := swag.FormatBool(qrBackupsEnabled) + if qBackupsEnabled != "" { + + if err := r.SetQueryParam("backupsEnabled", qBackupsEnabled); err != nil { + return err + } + } + } + + if o.ClusterSize != nil { + + // query param clusterSize + var qrClusterSize int32 + + if o.ClusterSize != nil { + qrClusterSize = *o.ClusterSize + } + qClusterSize := swag.FormatInt32(qrClusterSize) + if qClusterSize != "" { + + if err := r.SetQueryParam("clusterSize", qClusterSize); err != nil { + return err + } + } + } + if o.ClusterWideEnabled != nil { // query param clusterWideEnabled @@ -426,6 +596,23 @@ func (o *VersionServiceApplyParams) WriteToRequest(r runtime.ClientRequest, reg } } + if o.Extensions != nil { + + // query param extensions + var qrExtensions string + + if o.Extensions != nil { + qrExtensions = *o.Extensions + } + qExtensions := qrExtensions + if qExtensions != "" { + + if err := r.SetQueryParam("extensions", qExtensions); err != nil { + return err + } + } + } + if o.HaproxyVersion != nil { // query param haproxyVersion @@ -460,6 +647,40 @@ func (o *VersionServiceApplyParams) WriteToRequest(r runtime.ClientRequest, reg } } + if o.HelmDeployCr != nil { + + // query param helmDeployCr + var qrHelmDeployCr bool + + if o.HelmDeployCr != nil { + qrHelmDeployCr = *o.HelmDeployCr + } + qHelmDeployCr := swag.FormatBool(qrHelmDeployCr) + if qHelmDeployCr != "" { + + if err := r.SetQueryParam("helmDeployCr", qHelmDeployCr); err != nil { + return err + } + } + } + + if o.HelmDeployOperator != nil { + + // query param helmDeployOperator + var qrHelmDeployOperator bool + + if o.HelmDeployOperator != nil { + qrHelmDeployOperator = *o.HelmDeployOperator + } + qHelmDeployOperator := swag.FormatBool(qrHelmDeployOperator) + if qHelmDeployOperator != "" { + + if err := r.SetQueryParam("helmDeployOperator", qHelmDeployOperator); err != nil { + return err + } + } + } + if o.KubeVersion != nil { // query param kubeVersion @@ -516,6 +737,40 @@ func (o *VersionServiceApplyParams) WriteToRequest(r runtime.ClientRequest, reg return err } + if o.PhysicalBackupScheduled != nil { + + // query param physicalBackupScheduled + var qrPhysicalBackupScheduled bool + + if o.PhysicalBackupScheduled != nil { + qrPhysicalBackupScheduled = *o.PhysicalBackupScheduled + } + qPhysicalBackupScheduled := swag.FormatBool(qrPhysicalBackupScheduled) + if qPhysicalBackupScheduled != "" { + + if err := r.SetQueryParam("physicalBackupScheduled", qPhysicalBackupScheduled); err != nil { + return err + } + } + } + + if o.PitrEnabled != nil { + + // query param pitrEnabled + var qrPitrEnabled bool + + if o.PitrEnabled != nil { + qrPitrEnabled = *o.PitrEnabled + } + qPitrEnabled := swag.FormatBool(qrPitrEnabled) + if qPitrEnabled != "" { + + if err := r.SetQueryParam("pitrEnabled", qPitrEnabled); err != nil { + return err + } + } + } + if o.Platform != nil { // query param platform @@ -533,6 +788,23 @@ func (o *VersionServiceApplyParams) WriteToRequest(r runtime.ClientRequest, reg } } + if o.PmmEnabled != nil { + + // query param pmmEnabled + var qrPmmEnabled bool + + if o.PmmEnabled != nil { + qrPmmEnabled = *o.PmmEnabled + } + qPmmEnabled := swag.FormatBool(qrPmmEnabled) + if qPmmEnabled != "" { + + if err := r.SetQueryParam("pmmEnabled", qPmmEnabled); err != nil { + return err + } + } + } + if o.PmmVersion != nil { // query param pmmVersion @@ -589,6 +861,40 @@ func (o *VersionServiceApplyParams) WriteToRequest(r runtime.ClientRequest, reg } } + if o.SidecarsUsed != nil { + + // query param sidecarsUsed + var qrSidecarsUsed bool + + if o.SidecarsUsed != nil { + qrSidecarsUsed = *o.SidecarsUsed + } + qSidecarsUsed := swag.FormatBool(qrSidecarsUsed) + if qSidecarsUsed != "" { + + if err := r.SetQueryParam("sidecarsUsed", qSidecarsUsed); err != nil { + return err + } + } + } + + if o.UserManagementEnabled != nil { + + // query param userManagementEnabled + var qrUserManagementEnabled bool + + if o.UserManagementEnabled != nil { + qrUserManagementEnabled = *o.UserManagementEnabled + } + qUserManagementEnabled := swag.FormatBool(qrUserManagementEnabled) + if qUserManagementEnabled != "" { + + if err := r.SetQueryParam("userManagementEnabled", qUserManagementEnabled); err != nil { + return err + } + } + } + if len(res) > 0 { return errors.CompositeValidationError(res...) } diff --git a/version/client/version_service/version_service_apply_responses.go b/version/client/version_service/version_service_apply_responses.go index 677847438c..46884988b0 100644 --- a/version/client/version_service/version_service_apply_responses.go +++ b/version/client/version_service/version_service_apply_responses.go @@ -6,6 +6,7 @@ package version_service // Editing this file might prove futile when you re-run the swagger generate command import ( + "encoding/json" "fmt" "io" @@ -55,9 +56,46 @@ type VersionServiceApplyOK struct { Payload *models.VersionVersionResponse } +// IsSuccess returns true when this version service apply o k response has a 2xx status code +func (o *VersionServiceApplyOK) IsSuccess() bool { + return true +} + +// IsRedirect returns true when this version service apply o k response has a 3xx status code +func (o *VersionServiceApplyOK) IsRedirect() bool { + return false +} + +// IsClientError returns true when this version service apply o k response has a 4xx status code +func (o *VersionServiceApplyOK) IsClientError() bool { + return false +} + +// IsServerError returns true when this version service apply o k response has a 5xx status code +func (o *VersionServiceApplyOK) IsServerError() bool { + return false +} + +// IsCode returns true when this version service apply o k response a status code equal to that given +func (o *VersionServiceApplyOK) IsCode(code int) bool { + return code == 200 +} + +// Code gets the status code for the version service apply o k response +func (o *VersionServiceApplyOK) Code() int { + return 200 +} + func (o *VersionServiceApplyOK) Error() string { - return fmt.Sprintf("[GET /versions/v1/{product}/{operatorVersion}/{apply}][%d] versionServiceApplyOK %+v", 200, o.Payload) + payload, _ := json.Marshal(o.Payload) + return fmt.Sprintf("[GET /versions/v1/{product}/{operatorVersion}/{apply}][%d] versionServiceApplyOK %s", 200, payload) +} + +func (o *VersionServiceApplyOK) String() string { + payload, _ := json.Marshal(o.Payload) + return fmt.Sprintf("[GET /versions/v1/{product}/{operatorVersion}/{apply}][%d] versionServiceApplyOK %s", 200, payload) } + func (o *VersionServiceApplyOK) GetPayload() *models.VersionVersionResponse { return o.Payload } @@ -84,7 +122,7 @@ func NewVersionServiceApplyDefault(code int) *VersionServiceApplyDefault { /* VersionServiceApplyDefault describes a response with status code -1, with default header values. -An unexpected error response +An unexpected error response. */ type VersionServiceApplyDefault struct { _statusCode int @@ -92,14 +130,46 @@ type VersionServiceApplyDefault struct { Payload *models.GooglerpcStatus } +// IsSuccess returns true when this version service apply default response has a 2xx status code +func (o *VersionServiceApplyDefault) IsSuccess() bool { + return o._statusCode/100 == 2 +} + +// IsRedirect returns true when this version service apply default response has a 3xx status code +func (o *VersionServiceApplyDefault) IsRedirect() bool { + return o._statusCode/100 == 3 +} + +// IsClientError returns true when this version service apply default response has a 4xx status code +func (o *VersionServiceApplyDefault) IsClientError() bool { + return o._statusCode/100 == 4 +} + +// IsServerError returns true when this version service apply default response has a 5xx status code +func (o *VersionServiceApplyDefault) IsServerError() bool { + return o._statusCode/100 == 5 +} + +// IsCode returns true when this version service apply default response a status code equal to that given +func (o *VersionServiceApplyDefault) IsCode(code int) bool { + return o._statusCode == code +} + // Code gets the status code for the version service apply default response func (o *VersionServiceApplyDefault) Code() int { return o._statusCode } func (o *VersionServiceApplyDefault) Error() string { - return fmt.Sprintf("[GET /versions/v1/{product}/{operatorVersion}/{apply}][%d] VersionService_Apply default %+v", o._statusCode, o.Payload) + payload, _ := json.Marshal(o.Payload) + return fmt.Sprintf("[GET /versions/v1/{product}/{operatorVersion}/{apply}][%d] VersionService_Apply default %s", o._statusCode, payload) } + +func (o *VersionServiceApplyDefault) String() string { + payload, _ := json.Marshal(o.Payload) + return fmt.Sprintf("[GET /versions/v1/{product}/{operatorVersion}/{apply}][%d] VersionService_Apply default %s", o._statusCode, payload) +} + func (o *VersionServiceApplyDefault) GetPayload() *models.GooglerpcStatus { return o.Payload } diff --git a/version/client/version_service/version_service_client.go b/version/client/version_service/version_service_client.go index 398c120215..46e8ef9320 100644 --- a/version/client/version_service/version_service_client.go +++ b/version/client/version_service/version_service_client.go @@ -7,6 +7,7 @@ package version_service import ( "github.com/go-openapi/runtime" + httptransport "github.com/go-openapi/runtime/client" "github.com/go-openapi/strfmt" ) @@ -15,6 +16,31 @@ func New(transport runtime.ClientTransport, formats strfmt.Registry) ClientServi return &Client{transport: transport, formats: formats} } +// New creates a new version service API client with basic auth credentials. +// It takes the following parameters: +// - host: http host (github.com). +// - basePath: any base path for the API client ("/v1", "/v3"). +// - scheme: http scheme ("http", "https"). +// - user: user for basic authentication header. +// - password: password for basic authentication header. +func NewClientWithBasicAuth(host, basePath, scheme, user, password string) ClientService { + transport := httptransport.New(host, basePath, []string{scheme}) + transport.DefaultAuthentication = httptransport.BasicAuth(user, password) + return &Client{transport: transport, formats: strfmt.Default} +} + +// New creates a new version service API client with a bearer token for authentication. +// It takes the following parameters: +// - host: http host (github.com). +// - basePath: any base path for the API client ("/v1", "/v3"). +// - scheme: http scheme ("http", "https"). +// - bearerToken: bearer token for Bearer authentication header. +func NewClientWithBearerToken(host, basePath, scheme, bearerToken string) ClientService { + transport := httptransport.New(host, basePath, []string{scheme}) + transport.DefaultAuthentication = httptransport.BearerToken(bearerToken) + return &Client{transport: transport, formats: strfmt.Default} +} + /* Client for version service API */ @@ -23,13 +49,19 @@ type Client struct { formats strfmt.Registry } -// ClientOption is the option for Client methods +// ClientOption may be used to customize the behavior of Client methods. type ClientOption func(*runtime.ClientOperation) // ClientService is the interface for Client methods type ClientService interface { VersionServiceApply(params *VersionServiceApplyParams, opts ...ClientOption) (*VersionServiceApplyOK, error) + VersionServiceGetReleaseNotes(params *VersionServiceGetReleaseNotesParams, opts ...ClientOption) (*VersionServiceGetReleaseNotesOK, error) + + VersionServiceMetadata(params *VersionServiceMetadataParams, opts ...ClientOption) (*VersionServiceMetadataOK, error) + + VersionServiceMetadataV2(params *VersionServiceMetadataV2Params, opts ...ClientOption) (*VersionServiceMetadataV2OK, error) + VersionServiceOperator(params *VersionServiceOperatorParams, opts ...ClientOption) (*VersionServiceOperatorOK, error) VersionServiceProduct(params *VersionServiceProductParams, opts ...ClientOption) (*VersionServiceProductOK, error) @@ -76,6 +108,123 @@ func (a *Client) VersionServiceApply(params *VersionServiceApplyParams, opts ... return nil, runtime.NewAPIError("unexpected success response: content available as default response in error", unexpectedSuccess, unexpectedSuccess.Code()) } +/* +VersionServiceGetReleaseNotes gets the release notes for a product version + +Return release notes for a product version +*/ +func (a *Client) VersionServiceGetReleaseNotes(params *VersionServiceGetReleaseNotesParams, opts ...ClientOption) (*VersionServiceGetReleaseNotesOK, error) { + // TODO: Validate the params before sending + if params == nil { + params = NewVersionServiceGetReleaseNotesParams() + } + op := &runtime.ClientOperation{ + ID: "VersionService_GetReleaseNotes", + Method: "GET", + PathPattern: "/release-notes/v1/{product}/{version}", + ProducesMediaTypes: []string{"application/json"}, + ConsumesMediaTypes: []string{"application/json"}, + Schemes: []string{"http", "https"}, + Params: params, + Reader: &VersionServiceGetReleaseNotesReader{formats: a.formats}, + Context: params.Context, + Client: params.HTTPClient, + } + for _, opt := range opts { + opt(op) + } + + result, err := a.transport.Submit(op) + if err != nil { + return nil, err + } + success, ok := result.(*VersionServiceGetReleaseNotesOK) + if ok { + return success, nil + } + // unexpected success response + unexpectedSuccess := result.(*VersionServiceGetReleaseNotesDefault) + return nil, runtime.NewAPIError("unexpected success response: content available as default response in error", unexpectedSuccess, unexpectedSuccess.Code()) +} + +/* +VersionServiceMetadata metadata for a product + +Return metadata information for a product +*/ +func (a *Client) VersionServiceMetadata(params *VersionServiceMetadataParams, opts ...ClientOption) (*VersionServiceMetadataOK, error) { + // TODO: Validate the params before sending + if params == nil { + params = NewVersionServiceMetadataParams() + } + op := &runtime.ClientOperation{ + ID: "VersionService_Metadata", + Method: "GET", + PathPattern: "/metadata/v1/{product}", + ProducesMediaTypes: []string{"application/json"}, + ConsumesMediaTypes: []string{"application/json"}, + Schemes: []string{"http", "https"}, + Params: params, + Reader: &VersionServiceMetadataReader{formats: a.formats}, + Context: params.Context, + Client: params.HTTPClient, + } + for _, opt := range opts { + opt(op) + } + + result, err := a.transport.Submit(op) + if err != nil { + return nil, err + } + success, ok := result.(*VersionServiceMetadataOK) + if ok { + return success, nil + } + // unexpected success response + unexpectedSuccess := result.(*VersionServiceMetadataDefault) + return nil, runtime.NewAPIError("unexpected success response: content available as default response in error", unexpectedSuccess, unexpectedSuccess.Code()) +} + +/* +VersionServiceMetadataV2 v2s metadata for a product + +Return metadata information with additional image information for a product +*/ +func (a *Client) VersionServiceMetadataV2(params *VersionServiceMetadataV2Params, opts ...ClientOption) (*VersionServiceMetadataV2OK, error) { + // TODO: Validate the params before sending + if params == nil { + params = NewVersionServiceMetadataV2Params() + } + op := &runtime.ClientOperation{ + ID: "VersionService_MetadataV2", + Method: "GET", + PathPattern: "/metadata/v2/{product}", + ProducesMediaTypes: []string{"application/json"}, + ConsumesMediaTypes: []string{"application/json"}, + Schemes: []string{"http", "https"}, + Params: params, + Reader: &VersionServiceMetadataV2Reader{formats: a.formats}, + Context: params.Context, + Client: params.HTTPClient, + } + for _, opt := range opts { + opt(op) + } + + result, err := a.transport.Submit(op) + if err != nil { + return nil, err + } + success, ok := result.(*VersionServiceMetadataV2OK) + if ok { + return success, nil + } + // unexpected success response + unexpectedSuccess := result.(*VersionServiceMetadataV2Default) + return nil, runtime.NewAPIError("unexpected success response: content available as default response in error", unexpectedSuccess, unexpectedSuccess.Code()) +} + /* VersionServiceOperator products versions for specific operator version diff --git a/version/client/version_service/version_service_get_release_notes_parameters.go b/version/client/version_service/version_service_get_release_notes_parameters.go new file mode 100644 index 0000000000..c2c2402040 --- /dev/null +++ b/version/client/version_service/version_service_get_release_notes_parameters.go @@ -0,0 +1,173 @@ +// Code generated by go-swagger; DO NOT EDIT. + +package version_service + +// This file was generated by the swagger tool. +// Editing this file might prove futile when you re-run the swagger generate command + +import ( + "context" + "net/http" + "time" + + "github.com/go-openapi/errors" + "github.com/go-openapi/runtime" + cr "github.com/go-openapi/runtime/client" + "github.com/go-openapi/strfmt" +) + +// NewVersionServiceGetReleaseNotesParams creates a new VersionServiceGetReleaseNotesParams object, +// with the default timeout for this client. +// +// Default values are not hydrated, since defaults are normally applied by the API server side. +// +// To enforce default values in parameter, use SetDefaults or WithDefaults. +func NewVersionServiceGetReleaseNotesParams() *VersionServiceGetReleaseNotesParams { + return &VersionServiceGetReleaseNotesParams{ + timeout: cr.DefaultTimeout, + } +} + +// NewVersionServiceGetReleaseNotesParamsWithTimeout creates a new VersionServiceGetReleaseNotesParams object +// with the ability to set a timeout on a request. +func NewVersionServiceGetReleaseNotesParamsWithTimeout(timeout time.Duration) *VersionServiceGetReleaseNotesParams { + return &VersionServiceGetReleaseNotesParams{ + timeout: timeout, + } +} + +// NewVersionServiceGetReleaseNotesParamsWithContext creates a new VersionServiceGetReleaseNotesParams object +// with the ability to set a context for a request. +func NewVersionServiceGetReleaseNotesParamsWithContext(ctx context.Context) *VersionServiceGetReleaseNotesParams { + return &VersionServiceGetReleaseNotesParams{ + Context: ctx, + } +} + +// NewVersionServiceGetReleaseNotesParamsWithHTTPClient creates a new VersionServiceGetReleaseNotesParams object +// with the ability to set a custom HTTPClient for a request. +func NewVersionServiceGetReleaseNotesParamsWithHTTPClient(client *http.Client) *VersionServiceGetReleaseNotesParams { + return &VersionServiceGetReleaseNotesParams{ + HTTPClient: client, + } +} + +/* +VersionServiceGetReleaseNotesParams contains all the parameters to send to the API endpoint + + for the version service get release notes operation. + + Typically these are written to a http.Request. +*/ +type VersionServiceGetReleaseNotesParams struct { + + /* Product. + + Product name. + */ + Product string + + /* Version. + + Product version. + */ + Version string + + timeout time.Duration + Context context.Context + HTTPClient *http.Client +} + +// WithDefaults hydrates default values in the version service get release notes params (not the query body). +// +// All values with no default are reset to their zero value. +func (o *VersionServiceGetReleaseNotesParams) WithDefaults() *VersionServiceGetReleaseNotesParams { + o.SetDefaults() + return o +} + +// SetDefaults hydrates default values in the version service get release notes params (not the query body). +// +// All values with no default are reset to their zero value. +func (o *VersionServiceGetReleaseNotesParams) SetDefaults() { + // no default values defined for this parameter +} + +// WithTimeout adds the timeout to the version service get release notes params +func (o *VersionServiceGetReleaseNotesParams) WithTimeout(timeout time.Duration) *VersionServiceGetReleaseNotesParams { + o.SetTimeout(timeout) + return o +} + +// SetTimeout adds the timeout to the version service get release notes params +func (o *VersionServiceGetReleaseNotesParams) SetTimeout(timeout time.Duration) { + o.timeout = timeout +} + +// WithContext adds the context to the version service get release notes params +func (o *VersionServiceGetReleaseNotesParams) WithContext(ctx context.Context) *VersionServiceGetReleaseNotesParams { + o.SetContext(ctx) + return o +} + +// SetContext adds the context to the version service get release notes params +func (o *VersionServiceGetReleaseNotesParams) SetContext(ctx context.Context) { + o.Context = ctx +} + +// WithHTTPClient adds the HTTPClient to the version service get release notes params +func (o *VersionServiceGetReleaseNotesParams) WithHTTPClient(client *http.Client) *VersionServiceGetReleaseNotesParams { + o.SetHTTPClient(client) + return o +} + +// SetHTTPClient adds the HTTPClient to the version service get release notes params +func (o *VersionServiceGetReleaseNotesParams) SetHTTPClient(client *http.Client) { + o.HTTPClient = client +} + +// WithProduct adds the product to the version service get release notes params +func (o *VersionServiceGetReleaseNotesParams) WithProduct(product string) *VersionServiceGetReleaseNotesParams { + o.SetProduct(product) + return o +} + +// SetProduct adds the product to the version service get release notes params +func (o *VersionServiceGetReleaseNotesParams) SetProduct(product string) { + o.Product = product +} + +// WithVersion adds the version to the version service get release notes params +func (o *VersionServiceGetReleaseNotesParams) WithVersion(version string) *VersionServiceGetReleaseNotesParams { + o.SetVersion(version) + return o +} + +// SetVersion adds the version to the version service get release notes params +func (o *VersionServiceGetReleaseNotesParams) SetVersion(version string) { + o.Version = version +} + +// WriteToRequest writes these params to a swagger request +func (o *VersionServiceGetReleaseNotesParams) WriteToRequest(r runtime.ClientRequest, reg strfmt.Registry) error { + + if err := r.SetTimeout(o.timeout); err != nil { + return err + } + var res []error + + // path param product + if err := r.SetPathParam("product", o.Product); err != nil { + return err + } + + // path param version + if err := r.SetPathParam("version", o.Version); err != nil { + return err + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} diff --git a/version/client/version_service/version_service_get_release_notes_responses.go b/version/client/version_service/version_service_get_release_notes_responses.go new file mode 100644 index 0000000000..1e5664a272 --- /dev/null +++ b/version/client/version_service/version_service_get_release_notes_responses.go @@ -0,0 +1,187 @@ +// Code generated by go-swagger; DO NOT EDIT. + +package version_service + +// This file was generated by the swagger tool. +// Editing this file might prove futile when you re-run the swagger generate command + +import ( + "encoding/json" + "fmt" + "io" + + "github.com/go-openapi/runtime" + "github.com/go-openapi/strfmt" + + "github.com/percona/percona-xtradb-cluster-operator/version/client/models" +) + +// VersionServiceGetReleaseNotesReader is a Reader for the VersionServiceGetReleaseNotes structure. +type VersionServiceGetReleaseNotesReader struct { + formats strfmt.Registry +} + +// ReadResponse reads a server response into the received o. +func (o *VersionServiceGetReleaseNotesReader) ReadResponse(response runtime.ClientResponse, consumer runtime.Consumer) (interface{}, error) { + switch response.Code() { + case 200: + result := NewVersionServiceGetReleaseNotesOK() + if err := result.readResponse(response, consumer, o.formats); err != nil { + return nil, err + } + return result, nil + default: + result := NewVersionServiceGetReleaseNotesDefault(response.Code()) + if err := result.readResponse(response, consumer, o.formats); err != nil { + return nil, err + } + if response.Code()/100 == 2 { + return result, nil + } + return nil, result + } +} + +// NewVersionServiceGetReleaseNotesOK creates a VersionServiceGetReleaseNotesOK with default headers values +func NewVersionServiceGetReleaseNotesOK() *VersionServiceGetReleaseNotesOK { + return &VersionServiceGetReleaseNotesOK{} +} + +/* +VersionServiceGetReleaseNotesOK describes a response with status code 200, with default header values. + +A successful response. +*/ +type VersionServiceGetReleaseNotesOK struct { + Payload *models.VersionGetReleaseNotesResponse +} + +// IsSuccess returns true when this version service get release notes o k response has a 2xx status code +func (o *VersionServiceGetReleaseNotesOK) IsSuccess() bool { + return true +} + +// IsRedirect returns true when this version service get release notes o k response has a 3xx status code +func (o *VersionServiceGetReleaseNotesOK) IsRedirect() bool { + return false +} + +// IsClientError returns true when this version service get release notes o k response has a 4xx status code +func (o *VersionServiceGetReleaseNotesOK) IsClientError() bool { + return false +} + +// IsServerError returns true when this version service get release notes o k response has a 5xx status code +func (o *VersionServiceGetReleaseNotesOK) IsServerError() bool { + return false +} + +// IsCode returns true when this version service get release notes o k response a status code equal to that given +func (o *VersionServiceGetReleaseNotesOK) IsCode(code int) bool { + return code == 200 +} + +// Code gets the status code for the version service get release notes o k response +func (o *VersionServiceGetReleaseNotesOK) Code() int { + return 200 +} + +func (o *VersionServiceGetReleaseNotesOK) Error() string { + payload, _ := json.Marshal(o.Payload) + return fmt.Sprintf("[GET /release-notes/v1/{product}/{version}][%d] versionServiceGetReleaseNotesOK %s", 200, payload) +} + +func (o *VersionServiceGetReleaseNotesOK) String() string { + payload, _ := json.Marshal(o.Payload) + return fmt.Sprintf("[GET /release-notes/v1/{product}/{version}][%d] versionServiceGetReleaseNotesOK %s", 200, payload) +} + +func (o *VersionServiceGetReleaseNotesOK) GetPayload() *models.VersionGetReleaseNotesResponse { + return o.Payload +} + +func (o *VersionServiceGetReleaseNotesOK) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { + + o.Payload = new(models.VersionGetReleaseNotesResponse) + + // response payload + if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF { + return err + } + + return nil +} + +// NewVersionServiceGetReleaseNotesDefault creates a VersionServiceGetReleaseNotesDefault with default headers values +func NewVersionServiceGetReleaseNotesDefault(code int) *VersionServiceGetReleaseNotesDefault { + return &VersionServiceGetReleaseNotesDefault{ + _statusCode: code, + } +} + +/* +VersionServiceGetReleaseNotesDefault describes a response with status code -1, with default header values. + +An unexpected error response. +*/ +type VersionServiceGetReleaseNotesDefault struct { + _statusCode int + + Payload *models.GooglerpcStatus +} + +// IsSuccess returns true when this version service get release notes default response has a 2xx status code +func (o *VersionServiceGetReleaseNotesDefault) IsSuccess() bool { + return o._statusCode/100 == 2 +} + +// IsRedirect returns true when this version service get release notes default response has a 3xx status code +func (o *VersionServiceGetReleaseNotesDefault) IsRedirect() bool { + return o._statusCode/100 == 3 +} + +// IsClientError returns true when this version service get release notes default response has a 4xx status code +func (o *VersionServiceGetReleaseNotesDefault) IsClientError() bool { + return o._statusCode/100 == 4 +} + +// IsServerError returns true when this version service get release notes default response has a 5xx status code +func (o *VersionServiceGetReleaseNotesDefault) IsServerError() bool { + return o._statusCode/100 == 5 +} + +// IsCode returns true when this version service get release notes default response a status code equal to that given +func (o *VersionServiceGetReleaseNotesDefault) IsCode(code int) bool { + return o._statusCode == code +} + +// Code gets the status code for the version service get release notes default response +func (o *VersionServiceGetReleaseNotesDefault) Code() int { + return o._statusCode +} + +func (o *VersionServiceGetReleaseNotesDefault) Error() string { + payload, _ := json.Marshal(o.Payload) + return fmt.Sprintf("[GET /release-notes/v1/{product}/{version}][%d] VersionService_GetReleaseNotes default %s", o._statusCode, payload) +} + +func (o *VersionServiceGetReleaseNotesDefault) String() string { + payload, _ := json.Marshal(o.Payload) + return fmt.Sprintf("[GET /release-notes/v1/{product}/{version}][%d] VersionService_GetReleaseNotes default %s", o._statusCode, payload) +} + +func (o *VersionServiceGetReleaseNotesDefault) GetPayload() *models.GooglerpcStatus { + return o.Payload +} + +func (o *VersionServiceGetReleaseNotesDefault) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { + + o.Payload = new(models.GooglerpcStatus) + + // response payload + if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF { + return err + } + + return nil +} diff --git a/version/client/version_service/version_service_metadata_parameters.go b/version/client/version_service/version_service_metadata_parameters.go new file mode 100644 index 0000000000..251f98e56c --- /dev/null +++ b/version/client/version_service/version_service_metadata_parameters.go @@ -0,0 +1,148 @@ +// Code generated by go-swagger; DO NOT EDIT. + +package version_service + +// This file was generated by the swagger tool. +// Editing this file might prove futile when you re-run the swagger generate command + +import ( + "context" + "net/http" + "time" + + "github.com/go-openapi/errors" + "github.com/go-openapi/runtime" + cr "github.com/go-openapi/runtime/client" + "github.com/go-openapi/strfmt" +) + +// NewVersionServiceMetadataParams creates a new VersionServiceMetadataParams object, +// with the default timeout for this client. +// +// Default values are not hydrated, since defaults are normally applied by the API server side. +// +// To enforce default values in parameter, use SetDefaults or WithDefaults. +func NewVersionServiceMetadataParams() *VersionServiceMetadataParams { + return &VersionServiceMetadataParams{ + timeout: cr.DefaultTimeout, + } +} + +// NewVersionServiceMetadataParamsWithTimeout creates a new VersionServiceMetadataParams object +// with the ability to set a timeout on a request. +func NewVersionServiceMetadataParamsWithTimeout(timeout time.Duration) *VersionServiceMetadataParams { + return &VersionServiceMetadataParams{ + timeout: timeout, + } +} + +// NewVersionServiceMetadataParamsWithContext creates a new VersionServiceMetadataParams object +// with the ability to set a context for a request. +func NewVersionServiceMetadataParamsWithContext(ctx context.Context) *VersionServiceMetadataParams { + return &VersionServiceMetadataParams{ + Context: ctx, + } +} + +// NewVersionServiceMetadataParamsWithHTTPClient creates a new VersionServiceMetadataParams object +// with the ability to set a custom HTTPClient for a request. +func NewVersionServiceMetadataParamsWithHTTPClient(client *http.Client) *VersionServiceMetadataParams { + return &VersionServiceMetadataParams{ + HTTPClient: client, + } +} + +/* +VersionServiceMetadataParams contains all the parameters to send to the API endpoint + + for the version service metadata operation. + + Typically these are written to a http.Request. +*/ +type VersionServiceMetadataParams struct { + + // Product. + Product string + + timeout time.Duration + Context context.Context + HTTPClient *http.Client +} + +// WithDefaults hydrates default values in the version service metadata params (not the query body). +// +// All values with no default are reset to their zero value. +func (o *VersionServiceMetadataParams) WithDefaults() *VersionServiceMetadataParams { + o.SetDefaults() + return o +} + +// SetDefaults hydrates default values in the version service metadata params (not the query body). +// +// All values with no default are reset to their zero value. +func (o *VersionServiceMetadataParams) SetDefaults() { + // no default values defined for this parameter +} + +// WithTimeout adds the timeout to the version service metadata params +func (o *VersionServiceMetadataParams) WithTimeout(timeout time.Duration) *VersionServiceMetadataParams { + o.SetTimeout(timeout) + return o +} + +// SetTimeout adds the timeout to the version service metadata params +func (o *VersionServiceMetadataParams) SetTimeout(timeout time.Duration) { + o.timeout = timeout +} + +// WithContext adds the context to the version service metadata params +func (o *VersionServiceMetadataParams) WithContext(ctx context.Context) *VersionServiceMetadataParams { + o.SetContext(ctx) + return o +} + +// SetContext adds the context to the version service metadata params +func (o *VersionServiceMetadataParams) SetContext(ctx context.Context) { + o.Context = ctx +} + +// WithHTTPClient adds the HTTPClient to the version service metadata params +func (o *VersionServiceMetadataParams) WithHTTPClient(client *http.Client) *VersionServiceMetadataParams { + o.SetHTTPClient(client) + return o +} + +// SetHTTPClient adds the HTTPClient to the version service metadata params +func (o *VersionServiceMetadataParams) SetHTTPClient(client *http.Client) { + o.HTTPClient = client +} + +// WithProduct adds the product to the version service metadata params +func (o *VersionServiceMetadataParams) WithProduct(product string) *VersionServiceMetadataParams { + o.SetProduct(product) + return o +} + +// SetProduct adds the product to the version service metadata params +func (o *VersionServiceMetadataParams) SetProduct(product string) { + o.Product = product +} + +// WriteToRequest writes these params to a swagger request +func (o *VersionServiceMetadataParams) WriteToRequest(r runtime.ClientRequest, reg strfmt.Registry) error { + + if err := r.SetTimeout(o.timeout); err != nil { + return err + } + var res []error + + // path param product + if err := r.SetPathParam("product", o.Product); err != nil { + return err + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} diff --git a/version/client/version_service/version_service_metadata_responses.go b/version/client/version_service/version_service_metadata_responses.go new file mode 100644 index 0000000000..07d69358e0 --- /dev/null +++ b/version/client/version_service/version_service_metadata_responses.go @@ -0,0 +1,187 @@ +// Code generated by go-swagger; DO NOT EDIT. + +package version_service + +// This file was generated by the swagger tool. +// Editing this file might prove futile when you re-run the swagger generate command + +import ( + "encoding/json" + "fmt" + "io" + + "github.com/go-openapi/runtime" + "github.com/go-openapi/strfmt" + + "github.com/percona/percona-xtradb-cluster-operator/version/client/models" +) + +// VersionServiceMetadataReader is a Reader for the VersionServiceMetadata structure. +type VersionServiceMetadataReader struct { + formats strfmt.Registry +} + +// ReadResponse reads a server response into the received o. +func (o *VersionServiceMetadataReader) ReadResponse(response runtime.ClientResponse, consumer runtime.Consumer) (interface{}, error) { + switch response.Code() { + case 200: + result := NewVersionServiceMetadataOK() + if err := result.readResponse(response, consumer, o.formats); err != nil { + return nil, err + } + return result, nil + default: + result := NewVersionServiceMetadataDefault(response.Code()) + if err := result.readResponse(response, consumer, o.formats); err != nil { + return nil, err + } + if response.Code()/100 == 2 { + return result, nil + } + return nil, result + } +} + +// NewVersionServiceMetadataOK creates a VersionServiceMetadataOK with default headers values +func NewVersionServiceMetadataOK() *VersionServiceMetadataOK { + return &VersionServiceMetadataOK{} +} + +/* +VersionServiceMetadataOK describes a response with status code 200, with default header values. + +A successful response. +*/ +type VersionServiceMetadataOK struct { + Payload *models.VersionMetadataResponse +} + +// IsSuccess returns true when this version service metadata o k response has a 2xx status code +func (o *VersionServiceMetadataOK) IsSuccess() bool { + return true +} + +// IsRedirect returns true when this version service metadata o k response has a 3xx status code +func (o *VersionServiceMetadataOK) IsRedirect() bool { + return false +} + +// IsClientError returns true when this version service metadata o k response has a 4xx status code +func (o *VersionServiceMetadataOK) IsClientError() bool { + return false +} + +// IsServerError returns true when this version service metadata o k response has a 5xx status code +func (o *VersionServiceMetadataOK) IsServerError() bool { + return false +} + +// IsCode returns true when this version service metadata o k response a status code equal to that given +func (o *VersionServiceMetadataOK) IsCode(code int) bool { + return code == 200 +} + +// Code gets the status code for the version service metadata o k response +func (o *VersionServiceMetadataOK) Code() int { + return 200 +} + +func (o *VersionServiceMetadataOK) Error() string { + payload, _ := json.Marshal(o.Payload) + return fmt.Sprintf("[GET /metadata/v1/{product}][%d] versionServiceMetadataOK %s", 200, payload) +} + +func (o *VersionServiceMetadataOK) String() string { + payload, _ := json.Marshal(o.Payload) + return fmt.Sprintf("[GET /metadata/v1/{product}][%d] versionServiceMetadataOK %s", 200, payload) +} + +func (o *VersionServiceMetadataOK) GetPayload() *models.VersionMetadataResponse { + return o.Payload +} + +func (o *VersionServiceMetadataOK) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { + + o.Payload = new(models.VersionMetadataResponse) + + // response payload + if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF { + return err + } + + return nil +} + +// NewVersionServiceMetadataDefault creates a VersionServiceMetadataDefault with default headers values +func NewVersionServiceMetadataDefault(code int) *VersionServiceMetadataDefault { + return &VersionServiceMetadataDefault{ + _statusCode: code, + } +} + +/* +VersionServiceMetadataDefault describes a response with status code -1, with default header values. + +An unexpected error response. +*/ +type VersionServiceMetadataDefault struct { + _statusCode int + + Payload *models.GooglerpcStatus +} + +// IsSuccess returns true when this version service metadata default response has a 2xx status code +func (o *VersionServiceMetadataDefault) IsSuccess() bool { + return o._statusCode/100 == 2 +} + +// IsRedirect returns true when this version service metadata default response has a 3xx status code +func (o *VersionServiceMetadataDefault) IsRedirect() bool { + return o._statusCode/100 == 3 +} + +// IsClientError returns true when this version service metadata default response has a 4xx status code +func (o *VersionServiceMetadataDefault) IsClientError() bool { + return o._statusCode/100 == 4 +} + +// IsServerError returns true when this version service metadata default response has a 5xx status code +func (o *VersionServiceMetadataDefault) IsServerError() bool { + return o._statusCode/100 == 5 +} + +// IsCode returns true when this version service metadata default response a status code equal to that given +func (o *VersionServiceMetadataDefault) IsCode(code int) bool { + return o._statusCode == code +} + +// Code gets the status code for the version service metadata default response +func (o *VersionServiceMetadataDefault) Code() int { + return o._statusCode +} + +func (o *VersionServiceMetadataDefault) Error() string { + payload, _ := json.Marshal(o.Payload) + return fmt.Sprintf("[GET /metadata/v1/{product}][%d] VersionService_Metadata default %s", o._statusCode, payload) +} + +func (o *VersionServiceMetadataDefault) String() string { + payload, _ := json.Marshal(o.Payload) + return fmt.Sprintf("[GET /metadata/v1/{product}][%d] VersionService_Metadata default %s", o._statusCode, payload) +} + +func (o *VersionServiceMetadataDefault) GetPayload() *models.GooglerpcStatus { + return o.Payload +} + +func (o *VersionServiceMetadataDefault) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { + + o.Payload = new(models.GooglerpcStatus) + + // response payload + if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF { + return err + } + + return nil +} diff --git a/version/client/version_service/version_service_metadata_v2_parameters.go b/version/client/version_service/version_service_metadata_v2_parameters.go new file mode 100644 index 0000000000..2558879e7f --- /dev/null +++ b/version/client/version_service/version_service_metadata_v2_parameters.go @@ -0,0 +1,148 @@ +// Code generated by go-swagger; DO NOT EDIT. + +package version_service + +// This file was generated by the swagger tool. +// Editing this file might prove futile when you re-run the swagger generate command + +import ( + "context" + "net/http" + "time" + + "github.com/go-openapi/errors" + "github.com/go-openapi/runtime" + cr "github.com/go-openapi/runtime/client" + "github.com/go-openapi/strfmt" +) + +// NewVersionServiceMetadataV2Params creates a new VersionServiceMetadataV2Params object, +// with the default timeout for this client. +// +// Default values are not hydrated, since defaults are normally applied by the API server side. +// +// To enforce default values in parameter, use SetDefaults or WithDefaults. +func NewVersionServiceMetadataV2Params() *VersionServiceMetadataV2Params { + return &VersionServiceMetadataV2Params{ + timeout: cr.DefaultTimeout, + } +} + +// NewVersionServiceMetadataV2ParamsWithTimeout creates a new VersionServiceMetadataV2Params object +// with the ability to set a timeout on a request. +func NewVersionServiceMetadataV2ParamsWithTimeout(timeout time.Duration) *VersionServiceMetadataV2Params { + return &VersionServiceMetadataV2Params{ + timeout: timeout, + } +} + +// NewVersionServiceMetadataV2ParamsWithContext creates a new VersionServiceMetadataV2Params object +// with the ability to set a context for a request. +func NewVersionServiceMetadataV2ParamsWithContext(ctx context.Context) *VersionServiceMetadataV2Params { + return &VersionServiceMetadataV2Params{ + Context: ctx, + } +} + +// NewVersionServiceMetadataV2ParamsWithHTTPClient creates a new VersionServiceMetadataV2Params object +// with the ability to set a custom HTTPClient for a request. +func NewVersionServiceMetadataV2ParamsWithHTTPClient(client *http.Client) *VersionServiceMetadataV2Params { + return &VersionServiceMetadataV2Params{ + HTTPClient: client, + } +} + +/* +VersionServiceMetadataV2Params contains all the parameters to send to the API endpoint + + for the version service metadata v2 operation. + + Typically these are written to a http.Request. +*/ +type VersionServiceMetadataV2Params struct { + + // Product. + Product string + + timeout time.Duration + Context context.Context + HTTPClient *http.Client +} + +// WithDefaults hydrates default values in the version service metadata v2 params (not the query body). +// +// All values with no default are reset to their zero value. +func (o *VersionServiceMetadataV2Params) WithDefaults() *VersionServiceMetadataV2Params { + o.SetDefaults() + return o +} + +// SetDefaults hydrates default values in the version service metadata v2 params (not the query body). +// +// All values with no default are reset to their zero value. +func (o *VersionServiceMetadataV2Params) SetDefaults() { + // no default values defined for this parameter +} + +// WithTimeout adds the timeout to the version service metadata v2 params +func (o *VersionServiceMetadataV2Params) WithTimeout(timeout time.Duration) *VersionServiceMetadataV2Params { + o.SetTimeout(timeout) + return o +} + +// SetTimeout adds the timeout to the version service metadata v2 params +func (o *VersionServiceMetadataV2Params) SetTimeout(timeout time.Duration) { + o.timeout = timeout +} + +// WithContext adds the context to the version service metadata v2 params +func (o *VersionServiceMetadataV2Params) WithContext(ctx context.Context) *VersionServiceMetadataV2Params { + o.SetContext(ctx) + return o +} + +// SetContext adds the context to the version service metadata v2 params +func (o *VersionServiceMetadataV2Params) SetContext(ctx context.Context) { + o.Context = ctx +} + +// WithHTTPClient adds the HTTPClient to the version service metadata v2 params +func (o *VersionServiceMetadataV2Params) WithHTTPClient(client *http.Client) *VersionServiceMetadataV2Params { + o.SetHTTPClient(client) + return o +} + +// SetHTTPClient adds the HTTPClient to the version service metadata v2 params +func (o *VersionServiceMetadataV2Params) SetHTTPClient(client *http.Client) { + o.HTTPClient = client +} + +// WithProduct adds the product to the version service metadata v2 params +func (o *VersionServiceMetadataV2Params) WithProduct(product string) *VersionServiceMetadataV2Params { + o.SetProduct(product) + return o +} + +// SetProduct adds the product to the version service metadata v2 params +func (o *VersionServiceMetadataV2Params) SetProduct(product string) { + o.Product = product +} + +// WriteToRequest writes these params to a swagger request +func (o *VersionServiceMetadataV2Params) WriteToRequest(r runtime.ClientRequest, reg strfmt.Registry) error { + + if err := r.SetTimeout(o.timeout); err != nil { + return err + } + var res []error + + // path param product + if err := r.SetPathParam("product", o.Product); err != nil { + return err + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} diff --git a/version/client/version_service/version_service_metadata_v2_responses.go b/version/client/version_service/version_service_metadata_v2_responses.go new file mode 100644 index 0000000000..d3ffa50167 --- /dev/null +++ b/version/client/version_service/version_service_metadata_v2_responses.go @@ -0,0 +1,187 @@ +// Code generated by go-swagger; DO NOT EDIT. + +package version_service + +// This file was generated by the swagger tool. +// Editing this file might prove futile when you re-run the swagger generate command + +import ( + "encoding/json" + "fmt" + "io" + + "github.com/go-openapi/runtime" + "github.com/go-openapi/strfmt" + + "github.com/percona/percona-xtradb-cluster-operator/version/client/models" +) + +// VersionServiceMetadataV2Reader is a Reader for the VersionServiceMetadataV2 structure. +type VersionServiceMetadataV2Reader struct { + formats strfmt.Registry +} + +// ReadResponse reads a server response into the received o. +func (o *VersionServiceMetadataV2Reader) ReadResponse(response runtime.ClientResponse, consumer runtime.Consumer) (interface{}, error) { + switch response.Code() { + case 200: + result := NewVersionServiceMetadataV2OK() + if err := result.readResponse(response, consumer, o.formats); err != nil { + return nil, err + } + return result, nil + default: + result := NewVersionServiceMetadataV2Default(response.Code()) + if err := result.readResponse(response, consumer, o.formats); err != nil { + return nil, err + } + if response.Code()/100 == 2 { + return result, nil + } + return nil, result + } +} + +// NewVersionServiceMetadataV2OK creates a VersionServiceMetadataV2OK with default headers values +func NewVersionServiceMetadataV2OK() *VersionServiceMetadataV2OK { + return &VersionServiceMetadataV2OK{} +} + +/* +VersionServiceMetadataV2OK describes a response with status code 200, with default header values. + +A successful response. +*/ +type VersionServiceMetadataV2OK struct { + Payload *models.VersionMetadataV2Response +} + +// IsSuccess returns true when this version service metadata v2 o k response has a 2xx status code +func (o *VersionServiceMetadataV2OK) IsSuccess() bool { + return true +} + +// IsRedirect returns true when this version service metadata v2 o k response has a 3xx status code +func (o *VersionServiceMetadataV2OK) IsRedirect() bool { + return false +} + +// IsClientError returns true when this version service metadata v2 o k response has a 4xx status code +func (o *VersionServiceMetadataV2OK) IsClientError() bool { + return false +} + +// IsServerError returns true when this version service metadata v2 o k response has a 5xx status code +func (o *VersionServiceMetadataV2OK) IsServerError() bool { + return false +} + +// IsCode returns true when this version service metadata v2 o k response a status code equal to that given +func (o *VersionServiceMetadataV2OK) IsCode(code int) bool { + return code == 200 +} + +// Code gets the status code for the version service metadata v2 o k response +func (o *VersionServiceMetadataV2OK) Code() int { + return 200 +} + +func (o *VersionServiceMetadataV2OK) Error() string { + payload, _ := json.Marshal(o.Payload) + return fmt.Sprintf("[GET /metadata/v2/{product}][%d] versionServiceMetadataV2OK %s", 200, payload) +} + +func (o *VersionServiceMetadataV2OK) String() string { + payload, _ := json.Marshal(o.Payload) + return fmt.Sprintf("[GET /metadata/v2/{product}][%d] versionServiceMetadataV2OK %s", 200, payload) +} + +func (o *VersionServiceMetadataV2OK) GetPayload() *models.VersionMetadataV2Response { + return o.Payload +} + +func (o *VersionServiceMetadataV2OK) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { + + o.Payload = new(models.VersionMetadataV2Response) + + // response payload + if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF { + return err + } + + return nil +} + +// NewVersionServiceMetadataV2Default creates a VersionServiceMetadataV2Default with default headers values +func NewVersionServiceMetadataV2Default(code int) *VersionServiceMetadataV2Default { + return &VersionServiceMetadataV2Default{ + _statusCode: code, + } +} + +/* +VersionServiceMetadataV2Default describes a response with status code -1, with default header values. + +An unexpected error response. +*/ +type VersionServiceMetadataV2Default struct { + _statusCode int + + Payload *models.GooglerpcStatus +} + +// IsSuccess returns true when this version service metadata v2 default response has a 2xx status code +func (o *VersionServiceMetadataV2Default) IsSuccess() bool { + return o._statusCode/100 == 2 +} + +// IsRedirect returns true when this version service metadata v2 default response has a 3xx status code +func (o *VersionServiceMetadataV2Default) IsRedirect() bool { + return o._statusCode/100 == 3 +} + +// IsClientError returns true when this version service metadata v2 default response has a 4xx status code +func (o *VersionServiceMetadataV2Default) IsClientError() bool { + return o._statusCode/100 == 4 +} + +// IsServerError returns true when this version service metadata v2 default response has a 5xx status code +func (o *VersionServiceMetadataV2Default) IsServerError() bool { + return o._statusCode/100 == 5 +} + +// IsCode returns true when this version service metadata v2 default response a status code equal to that given +func (o *VersionServiceMetadataV2Default) IsCode(code int) bool { + return o._statusCode == code +} + +// Code gets the status code for the version service metadata v2 default response +func (o *VersionServiceMetadataV2Default) Code() int { + return o._statusCode +} + +func (o *VersionServiceMetadataV2Default) Error() string { + payload, _ := json.Marshal(o.Payload) + return fmt.Sprintf("[GET /metadata/v2/{product}][%d] VersionService_MetadataV2 default %s", o._statusCode, payload) +} + +func (o *VersionServiceMetadataV2Default) String() string { + payload, _ := json.Marshal(o.Payload) + return fmt.Sprintf("[GET /metadata/v2/{product}][%d] VersionService_MetadataV2 default %s", o._statusCode, payload) +} + +func (o *VersionServiceMetadataV2Default) GetPayload() *models.GooglerpcStatus { + return o.Payload +} + +func (o *VersionServiceMetadataV2Default) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { + + o.Payload = new(models.GooglerpcStatus) + + // response payload + if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF { + return err + } + + return nil +} diff --git a/version/client/version_service/version_service_operator_parameters.go b/version/client/version_service/version_service_operator_parameters.go index 1da63ea38a..d8bb33a746 100644 --- a/version/client/version_service/version_service_operator_parameters.go +++ b/version/client/version_service/version_service_operator_parameters.go @@ -65,9 +65,15 @@ type VersionServiceOperatorParams struct { // BackupVersion. BackupVersion *string - // ClusterWideEnabled. + // BackupsEnabled. + BackupsEnabled *bool + + // ClusterSize. // - // Format: boolean + // Format: int32 + ClusterSize *int32 + + // ClusterWideEnabled. ClusterWideEnabled *bool // CustomResourceUID. @@ -76,14 +82,21 @@ type VersionServiceOperatorParams struct { // DatabaseVersion. DatabaseVersion *string + // Extensions. + Extensions *string + // HaproxyVersion. HaproxyVersion *string // HashicorpVaultEnabled. - // - // Format: boolean HashicorpVaultEnabled *bool + // HelmDeployCr. + HelmDeployCr *bool + + // HelmDeployOperator. + HelmDeployOperator *bool + // KubeVersion. KubeVersion *string @@ -96,9 +109,18 @@ type VersionServiceOperatorParams struct { // OperatorVersion. OperatorVersion string + // PhysicalBackupScheduled. + PhysicalBackupScheduled *bool + + // PitrEnabled. + PitrEnabled *bool + // Platform. Platform *string + // PmmEnabled. + PmmEnabled *bool + // PmmVersion. PmmVersion *string @@ -109,10 +131,14 @@ type VersionServiceOperatorParams struct { ProxysqlVersion *string // ShardingEnabled. - // - // Format: boolean ShardingEnabled *bool + // SidecarsUsed. + SidecarsUsed *bool + + // UserManagementEnabled. + UserManagementEnabled *bool + timeout time.Duration Context context.Context HTTPClient *http.Client @@ -177,6 +203,28 @@ func (o *VersionServiceOperatorParams) SetBackupVersion(backupVersion *string) { o.BackupVersion = backupVersion } +// WithBackupsEnabled adds the backupsEnabled to the version service operator params +func (o *VersionServiceOperatorParams) WithBackupsEnabled(backupsEnabled *bool) *VersionServiceOperatorParams { + o.SetBackupsEnabled(backupsEnabled) + return o +} + +// SetBackupsEnabled adds the backupsEnabled to the version service operator params +func (o *VersionServiceOperatorParams) SetBackupsEnabled(backupsEnabled *bool) { + o.BackupsEnabled = backupsEnabled +} + +// WithClusterSize adds the clusterSize to the version service operator params +func (o *VersionServiceOperatorParams) WithClusterSize(clusterSize *int32) *VersionServiceOperatorParams { + o.SetClusterSize(clusterSize) + return o +} + +// SetClusterSize adds the clusterSize to the version service operator params +func (o *VersionServiceOperatorParams) SetClusterSize(clusterSize *int32) { + o.ClusterSize = clusterSize +} + // WithClusterWideEnabled adds the clusterWideEnabled to the version service operator params func (o *VersionServiceOperatorParams) WithClusterWideEnabled(clusterWideEnabled *bool) *VersionServiceOperatorParams { o.SetClusterWideEnabled(clusterWideEnabled) @@ -210,6 +258,17 @@ func (o *VersionServiceOperatorParams) SetDatabaseVersion(databaseVersion *strin o.DatabaseVersion = databaseVersion } +// WithExtensions adds the extensions to the version service operator params +func (o *VersionServiceOperatorParams) WithExtensions(extensions *string) *VersionServiceOperatorParams { + o.SetExtensions(extensions) + return o +} + +// SetExtensions adds the extensions to the version service operator params +func (o *VersionServiceOperatorParams) SetExtensions(extensions *string) { + o.Extensions = extensions +} + // WithHaproxyVersion adds the haproxyVersion to the version service operator params func (o *VersionServiceOperatorParams) WithHaproxyVersion(haproxyVersion *string) *VersionServiceOperatorParams { o.SetHaproxyVersion(haproxyVersion) @@ -232,6 +291,28 @@ func (o *VersionServiceOperatorParams) SetHashicorpVaultEnabled(hashicorpVaultEn o.HashicorpVaultEnabled = hashicorpVaultEnabled } +// WithHelmDeployCr adds the helmDeployCr to the version service operator params +func (o *VersionServiceOperatorParams) WithHelmDeployCr(helmDeployCr *bool) *VersionServiceOperatorParams { + o.SetHelmDeployCr(helmDeployCr) + return o +} + +// SetHelmDeployCr adds the helmDeployCr to the version service operator params +func (o *VersionServiceOperatorParams) SetHelmDeployCr(helmDeployCr *bool) { + o.HelmDeployCr = helmDeployCr +} + +// WithHelmDeployOperator adds the helmDeployOperator to the version service operator params +func (o *VersionServiceOperatorParams) WithHelmDeployOperator(helmDeployOperator *bool) *VersionServiceOperatorParams { + o.SetHelmDeployOperator(helmDeployOperator) + return o +} + +// SetHelmDeployOperator adds the helmDeployOperator to the version service operator params +func (o *VersionServiceOperatorParams) SetHelmDeployOperator(helmDeployOperator *bool) { + o.HelmDeployOperator = helmDeployOperator +} + // WithKubeVersion adds the kubeVersion to the version service operator params func (o *VersionServiceOperatorParams) WithKubeVersion(kubeVersion *string) *VersionServiceOperatorParams { o.SetKubeVersion(kubeVersion) @@ -276,6 +357,28 @@ func (o *VersionServiceOperatorParams) SetOperatorVersion(operatorVersion string o.OperatorVersion = operatorVersion } +// WithPhysicalBackupScheduled adds the physicalBackupScheduled to the version service operator params +func (o *VersionServiceOperatorParams) WithPhysicalBackupScheduled(physicalBackupScheduled *bool) *VersionServiceOperatorParams { + o.SetPhysicalBackupScheduled(physicalBackupScheduled) + return o +} + +// SetPhysicalBackupScheduled adds the physicalBackupScheduled to the version service operator params +func (o *VersionServiceOperatorParams) SetPhysicalBackupScheduled(physicalBackupScheduled *bool) { + o.PhysicalBackupScheduled = physicalBackupScheduled +} + +// WithPitrEnabled adds the pitrEnabled to the version service operator params +func (o *VersionServiceOperatorParams) WithPitrEnabled(pitrEnabled *bool) *VersionServiceOperatorParams { + o.SetPitrEnabled(pitrEnabled) + return o +} + +// SetPitrEnabled adds the pitrEnabled to the version service operator params +func (o *VersionServiceOperatorParams) SetPitrEnabled(pitrEnabled *bool) { + o.PitrEnabled = pitrEnabled +} + // WithPlatform adds the platform to the version service operator params func (o *VersionServiceOperatorParams) WithPlatform(platform *string) *VersionServiceOperatorParams { o.SetPlatform(platform) @@ -287,6 +390,17 @@ func (o *VersionServiceOperatorParams) SetPlatform(platform *string) { o.Platform = platform } +// WithPmmEnabled adds the pmmEnabled to the version service operator params +func (o *VersionServiceOperatorParams) WithPmmEnabled(pmmEnabled *bool) *VersionServiceOperatorParams { + o.SetPmmEnabled(pmmEnabled) + return o +} + +// SetPmmEnabled adds the pmmEnabled to the version service operator params +func (o *VersionServiceOperatorParams) SetPmmEnabled(pmmEnabled *bool) { + o.PmmEnabled = pmmEnabled +} + // WithPmmVersion adds the pmmVersion to the version service operator params func (o *VersionServiceOperatorParams) WithPmmVersion(pmmVersion *string) *VersionServiceOperatorParams { o.SetPmmVersion(pmmVersion) @@ -331,6 +445,28 @@ func (o *VersionServiceOperatorParams) SetShardingEnabled(shardingEnabled *bool) o.ShardingEnabled = shardingEnabled } +// WithSidecarsUsed adds the sidecarsUsed to the version service operator params +func (o *VersionServiceOperatorParams) WithSidecarsUsed(sidecarsUsed *bool) *VersionServiceOperatorParams { + o.SetSidecarsUsed(sidecarsUsed) + return o +} + +// SetSidecarsUsed adds the sidecarsUsed to the version service operator params +func (o *VersionServiceOperatorParams) SetSidecarsUsed(sidecarsUsed *bool) { + o.SidecarsUsed = sidecarsUsed +} + +// WithUserManagementEnabled adds the userManagementEnabled to the version service operator params +func (o *VersionServiceOperatorParams) WithUserManagementEnabled(userManagementEnabled *bool) *VersionServiceOperatorParams { + o.SetUserManagementEnabled(userManagementEnabled) + return o +} + +// SetUserManagementEnabled adds the userManagementEnabled to the version service operator params +func (o *VersionServiceOperatorParams) SetUserManagementEnabled(userManagementEnabled *bool) { + o.UserManagementEnabled = userManagementEnabled +} + // WriteToRequest writes these params to a swagger request func (o *VersionServiceOperatorParams) WriteToRequest(r runtime.ClientRequest, reg strfmt.Registry) error { @@ -356,6 +492,40 @@ func (o *VersionServiceOperatorParams) WriteToRequest(r runtime.ClientRequest, r } } + if o.BackupsEnabled != nil { + + // query param backupsEnabled + var qrBackupsEnabled bool + + if o.BackupsEnabled != nil { + qrBackupsEnabled = *o.BackupsEnabled + } + qBackupsEnabled := swag.FormatBool(qrBackupsEnabled) + if qBackupsEnabled != "" { + + if err := r.SetQueryParam("backupsEnabled", qBackupsEnabled); err != nil { + return err + } + } + } + + if o.ClusterSize != nil { + + // query param clusterSize + var qrClusterSize int32 + + if o.ClusterSize != nil { + qrClusterSize = *o.ClusterSize + } + qClusterSize := swag.FormatInt32(qrClusterSize) + if qClusterSize != "" { + + if err := r.SetQueryParam("clusterSize", qClusterSize); err != nil { + return err + } + } + } + if o.ClusterWideEnabled != nil { // query param clusterWideEnabled @@ -407,6 +577,23 @@ func (o *VersionServiceOperatorParams) WriteToRequest(r runtime.ClientRequest, r } } + if o.Extensions != nil { + + // query param extensions + var qrExtensions string + + if o.Extensions != nil { + qrExtensions = *o.Extensions + } + qExtensions := qrExtensions + if qExtensions != "" { + + if err := r.SetQueryParam("extensions", qExtensions); err != nil { + return err + } + } + } + if o.HaproxyVersion != nil { // query param haproxyVersion @@ -441,6 +628,40 @@ func (o *VersionServiceOperatorParams) WriteToRequest(r runtime.ClientRequest, r } } + if o.HelmDeployCr != nil { + + // query param helmDeployCr + var qrHelmDeployCr bool + + if o.HelmDeployCr != nil { + qrHelmDeployCr = *o.HelmDeployCr + } + qHelmDeployCr := swag.FormatBool(qrHelmDeployCr) + if qHelmDeployCr != "" { + + if err := r.SetQueryParam("helmDeployCr", qHelmDeployCr); err != nil { + return err + } + } + } + + if o.HelmDeployOperator != nil { + + // query param helmDeployOperator + var qrHelmDeployOperator bool + + if o.HelmDeployOperator != nil { + qrHelmDeployOperator = *o.HelmDeployOperator + } + qHelmDeployOperator := swag.FormatBool(qrHelmDeployOperator) + if qHelmDeployOperator != "" { + + if err := r.SetQueryParam("helmDeployOperator", qHelmDeployOperator); err != nil { + return err + } + } + } + if o.KubeVersion != nil { // query param kubeVersion @@ -497,6 +718,40 @@ func (o *VersionServiceOperatorParams) WriteToRequest(r runtime.ClientRequest, r return err } + if o.PhysicalBackupScheduled != nil { + + // query param physicalBackupScheduled + var qrPhysicalBackupScheduled bool + + if o.PhysicalBackupScheduled != nil { + qrPhysicalBackupScheduled = *o.PhysicalBackupScheduled + } + qPhysicalBackupScheduled := swag.FormatBool(qrPhysicalBackupScheduled) + if qPhysicalBackupScheduled != "" { + + if err := r.SetQueryParam("physicalBackupScheduled", qPhysicalBackupScheduled); err != nil { + return err + } + } + } + + if o.PitrEnabled != nil { + + // query param pitrEnabled + var qrPitrEnabled bool + + if o.PitrEnabled != nil { + qrPitrEnabled = *o.PitrEnabled + } + qPitrEnabled := swag.FormatBool(qrPitrEnabled) + if qPitrEnabled != "" { + + if err := r.SetQueryParam("pitrEnabled", qPitrEnabled); err != nil { + return err + } + } + } + if o.Platform != nil { // query param platform @@ -514,6 +769,23 @@ func (o *VersionServiceOperatorParams) WriteToRequest(r runtime.ClientRequest, r } } + if o.PmmEnabled != nil { + + // query param pmmEnabled + var qrPmmEnabled bool + + if o.PmmEnabled != nil { + qrPmmEnabled = *o.PmmEnabled + } + qPmmEnabled := swag.FormatBool(qrPmmEnabled) + if qPmmEnabled != "" { + + if err := r.SetQueryParam("pmmEnabled", qPmmEnabled); err != nil { + return err + } + } + } + if o.PmmVersion != nil { // query param pmmVersion @@ -570,6 +842,40 @@ func (o *VersionServiceOperatorParams) WriteToRequest(r runtime.ClientRequest, r } } + if o.SidecarsUsed != nil { + + // query param sidecarsUsed + var qrSidecarsUsed bool + + if o.SidecarsUsed != nil { + qrSidecarsUsed = *o.SidecarsUsed + } + qSidecarsUsed := swag.FormatBool(qrSidecarsUsed) + if qSidecarsUsed != "" { + + if err := r.SetQueryParam("sidecarsUsed", qSidecarsUsed); err != nil { + return err + } + } + } + + if o.UserManagementEnabled != nil { + + // query param userManagementEnabled + var qrUserManagementEnabled bool + + if o.UserManagementEnabled != nil { + qrUserManagementEnabled = *o.UserManagementEnabled + } + qUserManagementEnabled := swag.FormatBool(qrUserManagementEnabled) + if qUserManagementEnabled != "" { + + if err := r.SetQueryParam("userManagementEnabled", qUserManagementEnabled); err != nil { + return err + } + } + } + if len(res) > 0 { return errors.CompositeValidationError(res...) } diff --git a/version/client/version_service/version_service_operator_responses.go b/version/client/version_service/version_service_operator_responses.go index 88f2a8dfcc..a4af7f3ebc 100644 --- a/version/client/version_service/version_service_operator_responses.go +++ b/version/client/version_service/version_service_operator_responses.go @@ -6,6 +6,7 @@ package version_service // Editing this file might prove futile when you re-run the swagger generate command import ( + "encoding/json" "fmt" "io" @@ -55,9 +56,46 @@ type VersionServiceOperatorOK struct { Payload *models.VersionOperatorResponse } +// IsSuccess returns true when this version service operator o k response has a 2xx status code +func (o *VersionServiceOperatorOK) IsSuccess() bool { + return true +} + +// IsRedirect returns true when this version service operator o k response has a 3xx status code +func (o *VersionServiceOperatorOK) IsRedirect() bool { + return false +} + +// IsClientError returns true when this version service operator o k response has a 4xx status code +func (o *VersionServiceOperatorOK) IsClientError() bool { + return false +} + +// IsServerError returns true when this version service operator o k response has a 5xx status code +func (o *VersionServiceOperatorOK) IsServerError() bool { + return false +} + +// IsCode returns true when this version service operator o k response a status code equal to that given +func (o *VersionServiceOperatorOK) IsCode(code int) bool { + return code == 200 +} + +// Code gets the status code for the version service operator o k response +func (o *VersionServiceOperatorOK) Code() int { + return 200 +} + func (o *VersionServiceOperatorOK) Error() string { - return fmt.Sprintf("[GET /versions/v1/{product}/{operatorVersion}][%d] versionServiceOperatorOK %+v", 200, o.Payload) + payload, _ := json.Marshal(o.Payload) + return fmt.Sprintf("[GET /versions/v1/{product}/{operatorVersion}][%d] versionServiceOperatorOK %s", 200, payload) +} + +func (o *VersionServiceOperatorOK) String() string { + payload, _ := json.Marshal(o.Payload) + return fmt.Sprintf("[GET /versions/v1/{product}/{operatorVersion}][%d] versionServiceOperatorOK %s", 200, payload) } + func (o *VersionServiceOperatorOK) GetPayload() *models.VersionOperatorResponse { return o.Payload } @@ -84,7 +122,7 @@ func NewVersionServiceOperatorDefault(code int) *VersionServiceOperatorDefault { /* VersionServiceOperatorDefault describes a response with status code -1, with default header values. -An unexpected error response +An unexpected error response. */ type VersionServiceOperatorDefault struct { _statusCode int @@ -92,14 +130,46 @@ type VersionServiceOperatorDefault struct { Payload *models.GooglerpcStatus } +// IsSuccess returns true when this version service operator default response has a 2xx status code +func (o *VersionServiceOperatorDefault) IsSuccess() bool { + return o._statusCode/100 == 2 +} + +// IsRedirect returns true when this version service operator default response has a 3xx status code +func (o *VersionServiceOperatorDefault) IsRedirect() bool { + return o._statusCode/100 == 3 +} + +// IsClientError returns true when this version service operator default response has a 4xx status code +func (o *VersionServiceOperatorDefault) IsClientError() bool { + return o._statusCode/100 == 4 +} + +// IsServerError returns true when this version service operator default response has a 5xx status code +func (o *VersionServiceOperatorDefault) IsServerError() bool { + return o._statusCode/100 == 5 +} + +// IsCode returns true when this version service operator default response a status code equal to that given +func (o *VersionServiceOperatorDefault) IsCode(code int) bool { + return o._statusCode == code +} + // Code gets the status code for the version service operator default response func (o *VersionServiceOperatorDefault) Code() int { return o._statusCode } func (o *VersionServiceOperatorDefault) Error() string { - return fmt.Sprintf("[GET /versions/v1/{product}/{operatorVersion}][%d] VersionService_Operator default %+v", o._statusCode, o.Payload) + payload, _ := json.Marshal(o.Payload) + return fmt.Sprintf("[GET /versions/v1/{product}/{operatorVersion}][%d] VersionService_Operator default %s", o._statusCode, payload) } + +func (o *VersionServiceOperatorDefault) String() string { + payload, _ := json.Marshal(o.Payload) + return fmt.Sprintf("[GET /versions/v1/{product}/{operatorVersion}][%d] VersionService_Operator default %s", o._statusCode, payload) +} + func (o *VersionServiceOperatorDefault) GetPayload() *models.GooglerpcStatus { return o.Payload } diff --git a/version/client/version_service/version_service_product_parameters.go b/version/client/version_service/version_service_product_parameters.go index cb82db85d1..22a03d3adc 100644 --- a/version/client/version_service/version_service_product_parameters.go +++ b/version/client/version_service/version_service_product_parameters.go @@ -65,9 +65,15 @@ type VersionServiceProductParams struct { // BackupVersion. BackupVersion *string - // ClusterWideEnabled. + // BackupsEnabled. + BackupsEnabled *bool + + // ClusterSize. // - // Format: boolean + // Format: int32 + ClusterSize *int32 + + // ClusterWideEnabled. ClusterWideEnabled *bool // CustomResourceUID. @@ -76,14 +82,21 @@ type VersionServiceProductParams struct { // DatabaseVersion. DatabaseVersion *string + // Extensions. + Extensions *string + // HaproxyVersion. HaproxyVersion *string // HashicorpVaultEnabled. - // - // Format: boolean HashicorpVaultEnabled *bool + // HelmDeployCr. + HelmDeployCr *bool + + // HelmDeployOperator. + HelmDeployOperator *bool + // KubeVersion. KubeVersion *string @@ -93,9 +106,18 @@ type VersionServiceProductParams struct { // NamespaceUID. NamespaceUID *string + // PhysicalBackupScheduled. + PhysicalBackupScheduled *bool + + // PitrEnabled. + PitrEnabled *bool + // Platform. Platform *string + // PmmEnabled. + PmmEnabled *bool + // PmmVersion. PmmVersion *string @@ -106,10 +128,14 @@ type VersionServiceProductParams struct { ProxysqlVersion *string // ShardingEnabled. - // - // Format: boolean ShardingEnabled *bool + // SidecarsUsed. + SidecarsUsed *bool + + // UserManagementEnabled. + UserManagementEnabled *bool + timeout time.Duration Context context.Context HTTPClient *http.Client @@ -174,6 +200,28 @@ func (o *VersionServiceProductParams) SetBackupVersion(backupVersion *string) { o.BackupVersion = backupVersion } +// WithBackupsEnabled adds the backupsEnabled to the version service product params +func (o *VersionServiceProductParams) WithBackupsEnabled(backupsEnabled *bool) *VersionServiceProductParams { + o.SetBackupsEnabled(backupsEnabled) + return o +} + +// SetBackupsEnabled adds the backupsEnabled to the version service product params +func (o *VersionServiceProductParams) SetBackupsEnabled(backupsEnabled *bool) { + o.BackupsEnabled = backupsEnabled +} + +// WithClusterSize adds the clusterSize to the version service product params +func (o *VersionServiceProductParams) WithClusterSize(clusterSize *int32) *VersionServiceProductParams { + o.SetClusterSize(clusterSize) + return o +} + +// SetClusterSize adds the clusterSize to the version service product params +func (o *VersionServiceProductParams) SetClusterSize(clusterSize *int32) { + o.ClusterSize = clusterSize +} + // WithClusterWideEnabled adds the clusterWideEnabled to the version service product params func (o *VersionServiceProductParams) WithClusterWideEnabled(clusterWideEnabled *bool) *VersionServiceProductParams { o.SetClusterWideEnabled(clusterWideEnabled) @@ -207,6 +255,17 @@ func (o *VersionServiceProductParams) SetDatabaseVersion(databaseVersion *string o.DatabaseVersion = databaseVersion } +// WithExtensions adds the extensions to the version service product params +func (o *VersionServiceProductParams) WithExtensions(extensions *string) *VersionServiceProductParams { + o.SetExtensions(extensions) + return o +} + +// SetExtensions adds the extensions to the version service product params +func (o *VersionServiceProductParams) SetExtensions(extensions *string) { + o.Extensions = extensions +} + // WithHaproxyVersion adds the haproxyVersion to the version service product params func (o *VersionServiceProductParams) WithHaproxyVersion(haproxyVersion *string) *VersionServiceProductParams { o.SetHaproxyVersion(haproxyVersion) @@ -229,6 +288,28 @@ func (o *VersionServiceProductParams) SetHashicorpVaultEnabled(hashicorpVaultEna o.HashicorpVaultEnabled = hashicorpVaultEnabled } +// WithHelmDeployCr adds the helmDeployCr to the version service product params +func (o *VersionServiceProductParams) WithHelmDeployCr(helmDeployCr *bool) *VersionServiceProductParams { + o.SetHelmDeployCr(helmDeployCr) + return o +} + +// SetHelmDeployCr adds the helmDeployCr to the version service product params +func (o *VersionServiceProductParams) SetHelmDeployCr(helmDeployCr *bool) { + o.HelmDeployCr = helmDeployCr +} + +// WithHelmDeployOperator adds the helmDeployOperator to the version service product params +func (o *VersionServiceProductParams) WithHelmDeployOperator(helmDeployOperator *bool) *VersionServiceProductParams { + o.SetHelmDeployOperator(helmDeployOperator) + return o +} + +// SetHelmDeployOperator adds the helmDeployOperator to the version service product params +func (o *VersionServiceProductParams) SetHelmDeployOperator(helmDeployOperator *bool) { + o.HelmDeployOperator = helmDeployOperator +} + // WithKubeVersion adds the kubeVersion to the version service product params func (o *VersionServiceProductParams) WithKubeVersion(kubeVersion *string) *VersionServiceProductParams { o.SetKubeVersion(kubeVersion) @@ -262,6 +343,28 @@ func (o *VersionServiceProductParams) SetNamespaceUID(namespaceUID *string) { o.NamespaceUID = namespaceUID } +// WithPhysicalBackupScheduled adds the physicalBackupScheduled to the version service product params +func (o *VersionServiceProductParams) WithPhysicalBackupScheduled(physicalBackupScheduled *bool) *VersionServiceProductParams { + o.SetPhysicalBackupScheduled(physicalBackupScheduled) + return o +} + +// SetPhysicalBackupScheduled adds the physicalBackupScheduled to the version service product params +func (o *VersionServiceProductParams) SetPhysicalBackupScheduled(physicalBackupScheduled *bool) { + o.PhysicalBackupScheduled = physicalBackupScheduled +} + +// WithPitrEnabled adds the pitrEnabled to the version service product params +func (o *VersionServiceProductParams) WithPitrEnabled(pitrEnabled *bool) *VersionServiceProductParams { + o.SetPitrEnabled(pitrEnabled) + return o +} + +// SetPitrEnabled adds the pitrEnabled to the version service product params +func (o *VersionServiceProductParams) SetPitrEnabled(pitrEnabled *bool) { + o.PitrEnabled = pitrEnabled +} + // WithPlatform adds the platform to the version service product params func (o *VersionServiceProductParams) WithPlatform(platform *string) *VersionServiceProductParams { o.SetPlatform(platform) @@ -273,6 +376,17 @@ func (o *VersionServiceProductParams) SetPlatform(platform *string) { o.Platform = platform } +// WithPmmEnabled adds the pmmEnabled to the version service product params +func (o *VersionServiceProductParams) WithPmmEnabled(pmmEnabled *bool) *VersionServiceProductParams { + o.SetPmmEnabled(pmmEnabled) + return o +} + +// SetPmmEnabled adds the pmmEnabled to the version service product params +func (o *VersionServiceProductParams) SetPmmEnabled(pmmEnabled *bool) { + o.PmmEnabled = pmmEnabled +} + // WithPmmVersion adds the pmmVersion to the version service product params func (o *VersionServiceProductParams) WithPmmVersion(pmmVersion *string) *VersionServiceProductParams { o.SetPmmVersion(pmmVersion) @@ -317,6 +431,28 @@ func (o *VersionServiceProductParams) SetShardingEnabled(shardingEnabled *bool) o.ShardingEnabled = shardingEnabled } +// WithSidecarsUsed adds the sidecarsUsed to the version service product params +func (o *VersionServiceProductParams) WithSidecarsUsed(sidecarsUsed *bool) *VersionServiceProductParams { + o.SetSidecarsUsed(sidecarsUsed) + return o +} + +// SetSidecarsUsed adds the sidecarsUsed to the version service product params +func (o *VersionServiceProductParams) SetSidecarsUsed(sidecarsUsed *bool) { + o.SidecarsUsed = sidecarsUsed +} + +// WithUserManagementEnabled adds the userManagementEnabled to the version service product params +func (o *VersionServiceProductParams) WithUserManagementEnabled(userManagementEnabled *bool) *VersionServiceProductParams { + o.SetUserManagementEnabled(userManagementEnabled) + return o +} + +// SetUserManagementEnabled adds the userManagementEnabled to the version service product params +func (o *VersionServiceProductParams) SetUserManagementEnabled(userManagementEnabled *bool) { + o.UserManagementEnabled = userManagementEnabled +} + // WriteToRequest writes these params to a swagger request func (o *VersionServiceProductParams) WriteToRequest(r runtime.ClientRequest, reg strfmt.Registry) error { @@ -342,6 +478,40 @@ func (o *VersionServiceProductParams) WriteToRequest(r runtime.ClientRequest, re } } + if o.BackupsEnabled != nil { + + // query param backupsEnabled + var qrBackupsEnabled bool + + if o.BackupsEnabled != nil { + qrBackupsEnabled = *o.BackupsEnabled + } + qBackupsEnabled := swag.FormatBool(qrBackupsEnabled) + if qBackupsEnabled != "" { + + if err := r.SetQueryParam("backupsEnabled", qBackupsEnabled); err != nil { + return err + } + } + } + + if o.ClusterSize != nil { + + // query param clusterSize + var qrClusterSize int32 + + if o.ClusterSize != nil { + qrClusterSize = *o.ClusterSize + } + qClusterSize := swag.FormatInt32(qrClusterSize) + if qClusterSize != "" { + + if err := r.SetQueryParam("clusterSize", qClusterSize); err != nil { + return err + } + } + } + if o.ClusterWideEnabled != nil { // query param clusterWideEnabled @@ -393,6 +563,23 @@ func (o *VersionServiceProductParams) WriteToRequest(r runtime.ClientRequest, re } } + if o.Extensions != nil { + + // query param extensions + var qrExtensions string + + if o.Extensions != nil { + qrExtensions = *o.Extensions + } + qExtensions := qrExtensions + if qExtensions != "" { + + if err := r.SetQueryParam("extensions", qExtensions); err != nil { + return err + } + } + } + if o.HaproxyVersion != nil { // query param haproxyVersion @@ -427,6 +614,40 @@ func (o *VersionServiceProductParams) WriteToRequest(r runtime.ClientRequest, re } } + if o.HelmDeployCr != nil { + + // query param helmDeployCr + var qrHelmDeployCr bool + + if o.HelmDeployCr != nil { + qrHelmDeployCr = *o.HelmDeployCr + } + qHelmDeployCr := swag.FormatBool(qrHelmDeployCr) + if qHelmDeployCr != "" { + + if err := r.SetQueryParam("helmDeployCr", qHelmDeployCr); err != nil { + return err + } + } + } + + if o.HelmDeployOperator != nil { + + // query param helmDeployOperator + var qrHelmDeployOperator bool + + if o.HelmDeployOperator != nil { + qrHelmDeployOperator = *o.HelmDeployOperator + } + qHelmDeployOperator := swag.FormatBool(qrHelmDeployOperator) + if qHelmDeployOperator != "" { + + if err := r.SetQueryParam("helmDeployOperator", qHelmDeployOperator); err != nil { + return err + } + } + } + if o.KubeVersion != nil { // query param kubeVersion @@ -478,6 +699,40 @@ func (o *VersionServiceProductParams) WriteToRequest(r runtime.ClientRequest, re } } + if o.PhysicalBackupScheduled != nil { + + // query param physicalBackupScheduled + var qrPhysicalBackupScheduled bool + + if o.PhysicalBackupScheduled != nil { + qrPhysicalBackupScheduled = *o.PhysicalBackupScheduled + } + qPhysicalBackupScheduled := swag.FormatBool(qrPhysicalBackupScheduled) + if qPhysicalBackupScheduled != "" { + + if err := r.SetQueryParam("physicalBackupScheduled", qPhysicalBackupScheduled); err != nil { + return err + } + } + } + + if o.PitrEnabled != nil { + + // query param pitrEnabled + var qrPitrEnabled bool + + if o.PitrEnabled != nil { + qrPitrEnabled = *o.PitrEnabled + } + qPitrEnabled := swag.FormatBool(qrPitrEnabled) + if qPitrEnabled != "" { + + if err := r.SetQueryParam("pitrEnabled", qPitrEnabled); err != nil { + return err + } + } + } + if o.Platform != nil { // query param platform @@ -495,6 +750,23 @@ func (o *VersionServiceProductParams) WriteToRequest(r runtime.ClientRequest, re } } + if o.PmmEnabled != nil { + + // query param pmmEnabled + var qrPmmEnabled bool + + if o.PmmEnabled != nil { + qrPmmEnabled = *o.PmmEnabled + } + qPmmEnabled := swag.FormatBool(qrPmmEnabled) + if qPmmEnabled != "" { + + if err := r.SetQueryParam("pmmEnabled", qPmmEnabled); err != nil { + return err + } + } + } + if o.PmmVersion != nil { // query param pmmVersion @@ -551,6 +823,40 @@ func (o *VersionServiceProductParams) WriteToRequest(r runtime.ClientRequest, re } } + if o.SidecarsUsed != nil { + + // query param sidecarsUsed + var qrSidecarsUsed bool + + if o.SidecarsUsed != nil { + qrSidecarsUsed = *o.SidecarsUsed + } + qSidecarsUsed := swag.FormatBool(qrSidecarsUsed) + if qSidecarsUsed != "" { + + if err := r.SetQueryParam("sidecarsUsed", qSidecarsUsed); err != nil { + return err + } + } + } + + if o.UserManagementEnabled != nil { + + // query param userManagementEnabled + var qrUserManagementEnabled bool + + if o.UserManagementEnabled != nil { + qrUserManagementEnabled = *o.UserManagementEnabled + } + qUserManagementEnabled := swag.FormatBool(qrUserManagementEnabled) + if qUserManagementEnabled != "" { + + if err := r.SetQueryParam("userManagementEnabled", qUserManagementEnabled); err != nil { + return err + } + } + } + if len(res) > 0 { return errors.CompositeValidationError(res...) } diff --git a/version/client/version_service/version_service_product_responses.go b/version/client/version_service/version_service_product_responses.go index 74b9e8e4f5..f1c031ae08 100644 --- a/version/client/version_service/version_service_product_responses.go +++ b/version/client/version_service/version_service_product_responses.go @@ -6,6 +6,7 @@ package version_service // Editing this file might prove futile when you re-run the swagger generate command import ( + "encoding/json" "fmt" "io" @@ -55,9 +56,46 @@ type VersionServiceProductOK struct { Payload *models.VersionProductResponse } +// IsSuccess returns true when this version service product o k response has a 2xx status code +func (o *VersionServiceProductOK) IsSuccess() bool { + return true +} + +// IsRedirect returns true when this version service product o k response has a 3xx status code +func (o *VersionServiceProductOK) IsRedirect() bool { + return false +} + +// IsClientError returns true when this version service product o k response has a 4xx status code +func (o *VersionServiceProductOK) IsClientError() bool { + return false +} + +// IsServerError returns true when this version service product o k response has a 5xx status code +func (o *VersionServiceProductOK) IsServerError() bool { + return false +} + +// IsCode returns true when this version service product o k response a status code equal to that given +func (o *VersionServiceProductOK) IsCode(code int) bool { + return code == 200 +} + +// Code gets the status code for the version service product o k response +func (o *VersionServiceProductOK) Code() int { + return 200 +} + func (o *VersionServiceProductOK) Error() string { - return fmt.Sprintf("[GET /versions/v1/{product}][%d] versionServiceProductOK %+v", 200, o.Payload) + payload, _ := json.Marshal(o.Payload) + return fmt.Sprintf("[GET /versions/v1/{product}][%d] versionServiceProductOK %s", 200, payload) +} + +func (o *VersionServiceProductOK) String() string { + payload, _ := json.Marshal(o.Payload) + return fmt.Sprintf("[GET /versions/v1/{product}][%d] versionServiceProductOK %s", 200, payload) } + func (o *VersionServiceProductOK) GetPayload() *models.VersionProductResponse { return o.Payload } @@ -84,7 +122,7 @@ func NewVersionServiceProductDefault(code int) *VersionServiceProductDefault { /* VersionServiceProductDefault describes a response with status code -1, with default header values. -An unexpected error response +An unexpected error response. */ type VersionServiceProductDefault struct { _statusCode int @@ -92,14 +130,46 @@ type VersionServiceProductDefault struct { Payload *models.GooglerpcStatus } +// IsSuccess returns true when this version service product default response has a 2xx status code +func (o *VersionServiceProductDefault) IsSuccess() bool { + return o._statusCode/100 == 2 +} + +// IsRedirect returns true when this version service product default response has a 3xx status code +func (o *VersionServiceProductDefault) IsRedirect() bool { + return o._statusCode/100 == 3 +} + +// IsClientError returns true when this version service product default response has a 4xx status code +func (o *VersionServiceProductDefault) IsClientError() bool { + return o._statusCode/100 == 4 +} + +// IsServerError returns true when this version service product default response has a 5xx status code +func (o *VersionServiceProductDefault) IsServerError() bool { + return o._statusCode/100 == 5 +} + +// IsCode returns true when this version service product default response a status code equal to that given +func (o *VersionServiceProductDefault) IsCode(code int) bool { + return o._statusCode == code +} + // Code gets the status code for the version service product default response func (o *VersionServiceProductDefault) Code() int { return o._statusCode } func (o *VersionServiceProductDefault) Error() string { - return fmt.Sprintf("[GET /versions/v1/{product}][%d] VersionService_Product default %+v", o._statusCode, o.Payload) + payload, _ := json.Marshal(o.Payload) + return fmt.Sprintf("[GET /versions/v1/{product}][%d] VersionService_Product default %s", o._statusCode, payload) } + +func (o *VersionServiceProductDefault) String() string { + payload, _ := json.Marshal(o.Payload) + return fmt.Sprintf("[GET /versions/v1/{product}][%d] VersionService_Product default %s", o._statusCode, payload) +} + func (o *VersionServiceProductDefault) GetPayload() *models.GooglerpcStatus { return o.Payload } From deceb1f6328992864cb038551a20192fd123a99e Mon Sep 17 00:00:00 2001 From: Andrii Dema Date: Fri, 6 Dec 2024 18:36:11 +0200 Subject: [PATCH 22/60] K8SPXC-1411: allow to enable/disable TLS in a running cluster (#1844) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * K8SPXC-1411: allow to enable/disable running cluster https://perconadev.atlassian.net/browse/K8SPXC-1411 * fix * fix * use 1.28 * set controller reference * fix test * fix * use conditions instead of annotations * revert changes for defaults * fix reconcile pdb * fix * add comments * fix * fix unit-test * fix tls-issue-self test --------- Co-authored-by: Viacheslav Sarzhan Co-authored-by: Ege Güneş --- e2e-tests/functions | 1 + ...lusterissuer_special-selfsigned-issuer.yml | 3 - .../compare/pxc_some-name-enabled.yml | 82 +++++ .../tls-issue-self/compare/pxc_some-name.yml | 83 +++++ e2e-tests/tls-issue-self/run | 42 ++- pkg/apis/pxc/v1/pxc_types.go | 11 + pkg/controller/pxc/controller.go | 304 +++--------------- pkg/controller/pxc/status.go | 29 +- pkg/controller/pxc/tls.go | 65 +++- pkg/controller/pxc/upgrade.go | 43 +-- pkg/controller/pxcrestore/controller.go | 105 +----- pkg/k8s/cluster.go | 239 ++++++++++++++ pkg/naming/condition.go | 21 ++ pkg/pxc/app/pvc.go | 3 +- pkg/util/map.go | 7 +- 15 files changed, 642 insertions(+), 396 deletions(-) create mode 100644 e2e-tests/tls-issue-self/compare/pxc_some-name-enabled.yml create mode 100644 e2e-tests/tls-issue-self/compare/pxc_some-name.yml create mode 100644 pkg/k8s/cluster.go create mode 100644 pkg/naming/condition.go diff --git a/e2e-tests/functions b/e2e-tests/functions index 6f9c692646..eed6e44d77 100755 --- a/e2e-tests/functions +++ b/e2e-tests/functions @@ -447,6 +447,7 @@ compare_kubectl() { del(.spec.template.spec.containers[].env[] | select(.name == "AZURE_CONTAINER_NAME")) | del(.metadata.selfLink) | del(.metadata.deletionTimestamp) | + del(.metadata.annotations."kubectl.kubernetes.io/last-applied-configuration") | del(.metadata.annotations."kubernetes.io/psp") | del(.metadata.annotations."batch.kubernetes.io/job-tracking") | del(.metadata.labels."batch.kubernetes.io/job-name") | diff --git a/e2e-tests/tls-issue-cert-manager-ref/compare/clusterissuer_special-selfsigned-issuer.yml b/e2e-tests/tls-issue-cert-manager-ref/compare/clusterissuer_special-selfsigned-issuer.yml index dfb003a132..a879bbc6fd 100644 --- a/e2e-tests/tls-issue-cert-manager-ref/compare/clusterissuer_special-selfsigned-issuer.yml +++ b/e2e-tests/tls-issue-cert-manager-ref/compare/clusterissuer_special-selfsigned-issuer.yml @@ -1,9 +1,6 @@ apiVersion: cert-manager.io/v1 kind: ClusterIssuer metadata: - annotations: - kubectl.kubernetes.io/last-applied-configuration: | - {"apiVersion":"cert-manager.io/v1","kind":"ClusterIssuer","metadata":{"annotations":{},"name":"special-selfsigned-issuer"},"spec":{"selfSigned":{}}} generation: 1 name: special-selfsigned-issuer spec: diff --git a/e2e-tests/tls-issue-self/compare/pxc_some-name-enabled.yml b/e2e-tests/tls-issue-self/compare/pxc_some-name-enabled.yml new file mode 100644 index 0000000000..a4798e7168 --- /dev/null +++ b/e2e-tests/tls-issue-self/compare/pxc_some-name-enabled.yml @@ -0,0 +1,82 @@ +apiVersion: pxc.percona.com/v1 +kind: PerconaXtraDBCluster +metadata: + generation: 10 + name: some-name +spec: + backup: + storages: + aws-s3: + s3: + bucket: operator-testing + credentialsSecret: aws-s3-secret + region: us-east-1 + type: s3 + gcp-cs: + s3: + bucket: operator-testing + credentialsSecret: gcp-cs-secret + endpointUrl: https://storage.googleapis.com + region: us-east-1 + type: s3 + minio: + s3: + bucket: operator-testing + credentialsSecret: minio-secret + endpointUrl: http://minio-service:9000/ + region: us-east-1 + type: s3 + pvc: + type: filesystem + volume: + persistentVolumeClaim: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi + crVersion: 1.16.0 + logcollector: + enabled: true + pmm: + enabled: false + serverHost: monitoring-service + serverUser: pmm + proxysql: + affinity: + antiAffinityTopologyKey: kubernetes.io/hostname + enabled: true + resources: + limits: + cpu: 700m + memory: 1G + requests: + cpu: 100m + memory: 0.1G + size: 2 + volumeSpec: + persistentVolumeClaim: + resources: + requests: + storage: 2Gi + pxc: + affinity: + antiAffinityTopologyKey: kubernetes.io/hostname + resources: + limits: + cpu: "1" + memory: 2G + requests: + cpu: 100m + memory: 0.1G + size: 3 + volumeSpec: + persistentVolumeClaim: + resources: + requests: + storage: 2Gi + secretsName: my-cluster-secrets + tls: + enabled: true + unsafeFlags: {} + vaultSecretName: some-name-vault diff --git a/e2e-tests/tls-issue-self/compare/pxc_some-name.yml b/e2e-tests/tls-issue-self/compare/pxc_some-name.yml new file mode 100644 index 0000000000..63f494ddb7 --- /dev/null +++ b/e2e-tests/tls-issue-self/compare/pxc_some-name.yml @@ -0,0 +1,83 @@ +apiVersion: pxc.percona.com/v1 +kind: PerconaXtraDBCluster +metadata: + generation: 6 + name: some-name +spec: + backup: + storages: + aws-s3: + s3: + bucket: operator-testing + credentialsSecret: aws-s3-secret + region: us-east-1 + type: s3 + gcp-cs: + s3: + bucket: operator-testing + credentialsSecret: gcp-cs-secret + endpointUrl: https://storage.googleapis.com + region: us-east-1 + type: s3 + minio: + s3: + bucket: operator-testing + credentialsSecret: minio-secret + endpointUrl: http://minio-service:9000/ + region: us-east-1 + type: s3 + pvc: + type: filesystem + volume: + persistentVolumeClaim: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi + crVersion: 1.16.0 + logcollector: + enabled: true + pmm: + enabled: false + serverHost: monitoring-service + serverUser: pmm + proxysql: + affinity: + antiAffinityTopologyKey: kubernetes.io/hostname + enabled: true + resources: + limits: + cpu: 700m + memory: 1G + requests: + cpu: 100m + memory: 0.1G + size: 2 + volumeSpec: + persistentVolumeClaim: + resources: + requests: + storage: 2Gi + pxc: + affinity: + antiAffinityTopologyKey: kubernetes.io/hostname + resources: + limits: + cpu: "1" + memory: 2G + requests: + cpu: 100m + memory: 0.1G + size: 3 + volumeSpec: + persistentVolumeClaim: + resources: + requests: + storage: 2Gi + secretsName: my-cluster-secrets + tls: + enabled: false + unsafeFlags: + tls: true + vaultSecretName: some-name-vault diff --git a/e2e-tests/tls-issue-self/run b/e2e-tests/tls-issue-self/run index af72619873..52157ee33f 100755 --- a/e2e-tests/tls-issue-self/run +++ b/e2e-tests/tls-issue-self/run @@ -25,7 +25,47 @@ main() { desc 'invalid owner of secret' exit 1 fi - destroy $namespace + + # generation = 2 on this step + desc 'check disabling tls' + kubectl_bin patch pxc "$cluster" --type=merge --patch '{"spec": {"tls":{"enabled": false}}}' # generation + 1 (total 3) + sleep 10 + # operator performs: + # - patch .spec.pause to true (generation = 4) + # - patch spec.unsafeFlags.tls to true (generation = 5) + # - patch .spec.pause to false (generation = 6) + wait_cluster_consistency "$cluster" 3 2 + desc 'secrets should be deleted' + if kubectl get secret "$cluster-ssl" &>/dev/null; then + echo "error: secret $cluster-ssl exists" + exit 1 + fi + if kubectl get secret "$cluster-ssl-internal" &>/dev/null; then + echo "error: secret $cluster-ssl-internal exists" + exit 1 + fi + compare_kubectl "pxc/$cluster" + + desc 'check enabling tls' + kubectl_bin patch pxc "$cluster" --type=merge --patch '{"spec": {"tls":{"enabled": true}}}' # generation + 1 (total = 7) + sleep 10 + # operator performs: + # - patch .spec.pause to true (generation = 8) + # - patch spec.unsafeFlags.tls to false (generation = 9) + # - patch .spec.pause to false (generation = 10) + wait_cluster_consistency "$cluster" 3 2 + compare_kubectl "pxc/$cluster" "-enabled" + desc 'secrets should be recreated' + if ! kubectl get secret "$cluster-ssl" &>/dev/null; then + echo "error: secret $cluster-ssl doesn't exist" + exit 1 + fi + if ! kubectl get secret "$cluster-ssl-internal" &>/dev/null; then + echo "error: secret $cluster-ssl-internal doesn't exist" + exit 1 + fi + + destroy "$namespace" desc "test passed" } diff --git a/pkg/apis/pxc/v1/pxc_types.go b/pkg/apis/pxc/v1/pxc_types.go index 3aca8270fc..0003ba2db6 100644 --- a/pkg/apis/pxc/v1/pxc_types.go +++ b/pkg/apis/pxc/v1/pxc_types.go @@ -1572,6 +1572,17 @@ func (s *PerconaXtraDBClusterStatus) AddCondition(c ClusterCondition) { } } +// FindCondition finds the conditionType in conditions. +func (s *PerconaXtraDBClusterStatus) FindCondition(conditionType AppState) *ClusterCondition { + for i := range s.Conditions { + if s.Conditions[i].Type == conditionType { + return &s.Conditions[i] + } + } + + return nil +} + func (cr *PerconaXtraDBCluster) CanBackup() error { if cr.Status.Status == AppStateReady { return nil diff --git a/pkg/controller/pxc/controller.go b/pkg/controller/pxc/controller.go index a139ca2775..508e11f9a1 100644 --- a/pkg/controller/pxc/controller.go +++ b/pkg/controller/pxc/controller.go @@ -33,7 +33,6 @@ import ( "github.com/percona/percona-xtradb-cluster-operator/clientcmd" api "github.com/percona/percona-xtradb-cluster-operator/pkg/apis/pxc/v1" - "github.com/percona/percona-xtradb-cluster-operator/pkg/k8s" "github.com/percona/percona-xtradb-cluster-operator/pkg/naming" "github.com/percona/percona-xtradb-cluster-operator/pkg/pxc" "github.com/percona/percona-xtradb-cluster-operator/pkg/pxc/app" @@ -225,7 +224,7 @@ func (r *ReconcilePerconaXtraDBCluster) Reconcile(ctx context.Context, request r log.Info("The finalizer delete-ssl is deprecated and will be deleted in 1.18.0. Use percona.com/delete-ssl") fallthrough case naming.FinalizerDeleteSSL: - err = r.deleteCerts(o) + err = r.deleteCerts(ctx, o) case "delete-proxysql-pvc": log.Info("The finalizer delete-proxysql-pvc is deprecated and will be deleted in 1.18.0. Use percona.com/delete-proxysql-pvc") fallthrough @@ -332,13 +331,18 @@ func (r *ReconcilePerconaXtraDBCluster) Reconcile(ctx context.Context, request r return reconcile.Result{}, errors.Wrap(err, "reconcile persistent volumes") } + err = r.reconcileSSL(ctx, o) + if err != nil { + return reconcile.Result{}, errors.Wrapf(err, "failed to reconcile SSL. Please create your TLS secret %s and %s manually or setup cert-manager correctly", o.Spec.PXC.SSLSecretName, o.Spec.PXC.SSLInternalSecretName) + } + err = r.deploy(ctx, o) if err != nil { return reconcile.Result{}, err } pxcSet := statefulset.NewNode(o) - err = r.updatePod(ctx, pxcSet, o.Spec.PXC.PodSpec, o, userReconcileResult.pxcAnnotations) + err = r.updatePod(ctx, pxcSet, o.Spec.PXC.PodSpec, o, userReconcileResult.pxcAnnotations, true) if err != nil { return reconcile.Result{}, errors.Wrap(err, "pxc upgrade error") } @@ -374,7 +378,7 @@ func (r *ReconcilePerconaXtraDBCluster) Reconcile(ctx context.Context, request r proxysqlSet := statefulset.NewProxy(o) if o.Spec.ProxySQLEnabled() { - err = r.updatePod(ctx, proxysqlSet, &o.Spec.ProxySQL.PodSpec, o, userReconcileResult.proxysqlAnnotations) + err = r.updatePod(ctx, proxysqlSet, &o.Spec.ProxySQL.PodSpec, o, userReconcileResult.proxysqlAnnotations, true) if err != nil { return reconcile.Result{}, errors.Wrap(err, "ProxySQL upgrade error") } @@ -487,7 +491,7 @@ func (r *ReconcilePerconaXtraDBCluster) reconcileHAProxy(ctx context.Context, cr } sts := statefulset.NewHAProxy(cr) - if err := r.updatePod(ctx, sts, &cr.Spec.HAProxy.PodSpec, cr, templateAnnotations); err != nil { + if err := r.updatePod(ctx, sts, &cr.Spec.HAProxy.PodSpec, cr, templateAnnotations, true); err != nil { return errors.Wrap(err, "HAProxy upgrade error") } svc := pxc.NewServiceHAProxy(cr) @@ -532,266 +536,29 @@ func (r *ReconcilePerconaXtraDBCluster) reconcileHAProxy(ctx context.Context, cr } func (r *ReconcilePerconaXtraDBCluster) deploy(ctx context.Context, cr *api.PerconaXtraDBCluster) error { - log := logf.FromContext(ctx) - - if cr.PVCResizeInProgress() { - log.V(1).Info("PVC resize in progress, skipping statefulset") - return nil - } - - stsApp := statefulset.NewNode(cr) - err := r.reconcileConfigMap(cr) - if err != nil { - return err - } - - initImageName, err := k8s.GetInitImage(ctx, cr, r.client) - if err != nil { - return errors.Wrap(err, "failed to get initImage") - } - - secretsName := cr.Spec.SecretsName - if cr.CompareVersionWith("1.6.0") >= 0 { - secretsName = "internal-" + cr.Name - } - secrets := new(corev1.Secret) - err = r.client.Get(context.TODO(), types.NamespacedName{ - Name: secretsName, Namespace: cr.Namespace, - }, secrets) - if client.IgnoreNotFound(err) != nil { - return errors.Wrap(err, "get internal secret") - } - nodeSet, err := pxc.StatefulSet(ctx, r.client, stsApp, cr.Spec.PXC.PodSpec, cr, secrets, initImageName, r.getConfigVolume) - if err != nil { - return errors.Wrap(err, "get pxc statefulset") - } - currentNodeSet := new(appsv1.StatefulSet) - err = r.client.Get(context.TODO(), types.NamespacedName{ - Namespace: nodeSet.Namespace, - Name: nodeSet.Name, - }, currentNodeSet) - if client.IgnoreNotFound(err) != nil { - return errors.Wrap(err, "get current pxc sts") - } - // Keep same volumeClaimTemplates labels if statefulset already exists. - // We can't update volumeClaimTemplates. - if err == nil && cr.CompareVersionWith("1.16.0") >= 0 { - for i, pvc := range currentNodeSet.Spec.VolumeClaimTemplates { - nodeSet.Spec.VolumeClaimTemplates[i].Labels = pvc.Labels - } - } - // TODO: code duplication with updatePod function - if nodeSet.Spec.Template.Annotations == nil { - nodeSet.Spec.Template.Annotations = make(map[string]string) - } - if v, ok := currentNodeSet.Spec.Template.Annotations["last-applied-secret"]; ok { - nodeSet.Spec.Template.Annotations["last-applied-secret"] = v - } - if cr.CompareVersionWith("1.1.0") >= 0 { - hash, err := r.getConfigHash(cr, stsApp) - if err != nil { - return errors.Wrap(err, "getting node config hash") - } - nodeSet.Spec.Template.Annotations["percona.com/configuration-hash"] = hash - } - - err = r.reconcileSSL(cr) - if err != nil { - return errors.Wrapf(err, "failed to reconcile SSL.Please create your TLS secret %s and %s manually or setup cert-manager correctly", - cr.Spec.PXC.SSLSecretName, cr.Spec.PXC.SSLInternalSecretName) - } - - sslHash, err := r.getSecretHash(cr, cr.Spec.PXC.SSLSecretName, !cr.TLSEnabled()) - if err != nil { - return errors.Wrap(err, "get secret hash") - } - if sslHash != "" && cr.CompareVersionWith("1.1.0") >= 0 { - nodeSet.Spec.Template.Annotations["percona.com/ssl-hash"] = sslHash - } - - sslInternalHash, err := r.getSecretHash(cr, cr.Spec.PXC.SSLInternalSecretName, !cr.TLSEnabled()) - if err != nil && !k8serrors.IsNotFound(err) { - return errors.Wrap(err, "get internal secret hash") - } - if sslInternalHash != "" && cr.CompareVersionWith("1.1.0") >= 0 { - nodeSet.Spec.Template.Annotations["percona.com/ssl-internal-hash"] = sslInternalHash - } - - if cr.CompareVersionWith("1.9.0") >= 0 { - envVarsHash, err := r.getSecretHash(cr, cr.Spec.PXC.EnvVarsSecretName, true) - if err != nil { - return errors.Wrap(err, "upgradePod/updateApp error: update secret error") + deployStatefulApp := func(stsApp api.StatefulApp, podSpec *api.PodSpec) error { + if err := r.updatePod(ctx, stsApp, podSpec, cr, nil, false); err != nil { + return errors.Wrapf(err, "updatePod for %s", stsApp.Name()) } - if envVarsHash != "" { - nodeSet.Spec.Template.Annotations["percona.com/env-secret-config-hash"] = envVarsHash + if err := r.reconcilePDB(ctx, cr, podSpec.PodDisruptionBudget, stsApp); err != nil { + return errors.Wrapf(err, "failed to reconcile PodDisruptionBudget for %s", stsApp.Name()) } + return nil } - vaultConfigHash, err := r.getSecretHash(cr, cr.Spec.VaultSecretName, true) - if err != nil { - return errors.Wrap(err, "get vault config hash") - } - if vaultConfigHash != "" && cr.CompareVersionWith("1.6.0") >= 0 { - nodeSet.Spec.Template.Annotations["percona.com/vault-config-hash"] = vaultConfigHash - } - nodeSet.Spec.Template.Spec.Tolerations = cr.Spec.PXC.Tolerations - err = setControllerReference(cr, nodeSet, r.scheme) - if err != nil { - return err - } - - err = r.createOrUpdate(ctx, cr, nodeSet) - if err != nil { - return errors.Wrap(err, "create newStatefulSetNode") - } - - // PodDisruptionBudget object for nodes - err = r.client.Get(ctx, types.NamespacedName{Name: nodeSet.Name, Namespace: nodeSet.Namespace}, nodeSet) - if err == nil { - err := r.reconcilePDB(ctx, cr, cr.Spec.PXC.PodDisruptionBudget, stsApp, nodeSet) - if err != nil { - return errors.Wrapf(err, "PodDisruptionBudget for %s", nodeSet.Name) - } - } else if !k8serrors.IsNotFound(err) { - return errors.Wrap(err, "get PXC stateful set") + if err := deployStatefulApp(statefulset.NewNode(cr), cr.Spec.PXC.PodSpec); err != nil { + return errors.Wrap(err, "failed to deploy pxc") } - - // HAProxy StatefulSet if cr.HAProxyEnabled() { - sfsHAProxy := statefulset.NewHAProxy(cr) - haProxySet, err := pxc.StatefulSet(ctx, r.client, sfsHAProxy, &cr.Spec.HAProxy.PodSpec, cr, secrets, initImageName, r.getConfigVolume) - if err != nil { - return errors.Wrap(err, "create HAProxy StatefulSet") - } - err = setControllerReference(cr, haProxySet, r.scheme) - if err != nil { - return err - } - - // TODO: code duplication with updatePod function - if haProxySet.Spec.Template.Annotations == nil { - haProxySet.Spec.Template.Annotations = make(map[string]string) - } - hash, err := r.getConfigHash(cr, sfsHAProxy) - if err != nil { - return errors.Wrap(err, "getting HAProxy config hash") - } - haProxySet.Spec.Template.Annotations["percona.com/configuration-hash"] = hash - if cr.CompareVersionWith("1.5.0") == 0 { - if sslHash != "" { - haProxySet.Spec.Template.Annotations["percona.com/ssl-hash"] = sslHash - } - if sslInternalHash != "" { - haProxySet.Spec.Template.Annotations["percona.com/ssl-internal-hash"] = sslInternalHash - } - } - if cr.CompareVersionWith("1.9.0") >= 0 { - envVarsHash, err := r.getSecretHash(cr, cr.Spec.HAProxy.EnvVarsSecretName, true) - if err != nil { - return errors.Wrap(err, "upgradePod/updateApp error: update secret error") - } - if envVarsHash != "" { - haProxySet.Spec.Template.Annotations["percona.com/env-secret-config-hash"] = envVarsHash - } - } - // PodDisruptionBudget object for HAProxy - currentHAProxySts := new(appsv1.StatefulSet) - err = r.client.Get(ctx, types.NamespacedName{Name: haProxySet.Name, Namespace: haProxySet.Namespace}, currentHAProxySts) - if client.IgnoreNotFound(err) != nil { - return errors.Wrap(err, "get HAProxy stateful set") - } - if err == nil { - err := r.reconcilePDB(ctx, cr, cr.Spec.HAProxy.PodDisruptionBudget, sfsHAProxy, currentHAProxySts) - if err != nil { - return errors.Wrapf(err, "PodDisruptionBudget for %s", haProxySet.Name) - } - // Keep same volumeClaimTemplates labels if statefulset already exists. - // We can't update volumeClaimTemplates. - if cr.CompareVersionWith("1.16.0") >= 0 { - for i, pvc := range currentHAProxySts.Spec.VolumeClaimTemplates { - haProxySet.Spec.VolumeClaimTemplates[i].Labels = pvc.Labels - } - } - } - - err = r.client.Create(context.TODO(), haProxySet) - if err != nil && !k8serrors.IsAlreadyExists(err) { - return errors.Wrap(err, "create newStatefulSetHAProxy") + if err := deployStatefulApp(statefulset.NewHAProxy(cr), &cr.Spec.HAProxy.PodSpec); err != nil { + return errors.Wrap(err, "failed to deploy haproxy") } } - - if cr.Spec.ProxySQLEnabled() { - sfsProxy := statefulset.NewProxy(cr) - proxySet, err := pxc.StatefulSet(ctx, r.client, sfsProxy, &cr.Spec.ProxySQL.PodSpec, cr, secrets, initImageName, r.getConfigVolume) - if err != nil { - return errors.Wrap(err, "create ProxySQL Service") - } - err = setControllerReference(cr, proxySet, r.scheme) - if err != nil { - return err - } - currentProxySet := new(appsv1.StatefulSet) - err = r.client.Get(context.TODO(), types.NamespacedName{ - Namespace: proxySet.Namespace, - Name: proxySet.Name, - }, currentProxySet) - if client.IgnoreNotFound(err) != nil { - return errors.Wrap(err, "get current proxy sts") - } - // Keep same volumeClaimTemplates labels if statefulset already exists. - // We can't update volumeClaimTemplates. - if err == nil && cr.CompareVersionWith("1.16.0") >= 0 { - for i, pvc := range currentProxySet.Spec.VolumeClaimTemplates { - proxySet.Spec.VolumeClaimTemplates[i].Labels = pvc.Labels - } - } - - // TODO: code duplication with updatePod function - if proxySet.Spec.Template.Annotations == nil { - proxySet.Spec.Template.Annotations = make(map[string]string) - } - if v, ok := currentProxySet.Spec.Template.Annotations["last-applied-secret"]; ok { - proxySet.Spec.Template.Annotations["last-applied-secret"] = v - } - if cr.CompareVersionWith("1.1.0") >= 0 { - hash, err := r.getConfigHash(cr, sfsProxy) - if err != nil { - return errors.Wrap(err, "getting proxySQL config hash") - } - proxySet.Spec.Template.Annotations["percona.com/configuration-hash"] = hash - if sslHash != "" { - proxySet.Spec.Template.Annotations["percona.com/ssl-hash"] = sslHash - } - if sslInternalHash != "" { - proxySet.Spec.Template.Annotations["percona.com/ssl-internal-hash"] = sslInternalHash - } - } - if cr.CompareVersionWith("1.9.0") >= 0 { - envVarsHash, err := r.getSecretHash(cr, cr.Spec.ProxySQL.EnvVarsSecretName, true) - if err != nil { - return errors.Wrap(err, "upgradePod/updateApp error: update secret error") - } - if envVarsHash != "" { - proxySet.Spec.Template.Annotations["percona.com/env-secret-config-hash"] = envVarsHash - } - } - err = r.client.Create(context.TODO(), proxySet) - if err != nil && !k8serrors.IsAlreadyExists(err) { - return errors.Wrap(err, "create newStatefulSetProxySQL") - } - - // PodDisruptionBudget object for ProxySQL - err = r.client.Get(ctx, types.NamespacedName{Name: proxySet.Name, Namespace: proxySet.Namespace}, proxySet) - if err == nil { - err := r.reconcilePDB(ctx, cr, cr.Spec.ProxySQL.PodDisruptionBudget, sfsProxy, proxySet) - if err != nil { - return errors.Wrapf(err, "PodDisruptionBudget for %s", proxySet.Name) - } - } else if !k8serrors.IsNotFound(err) { - return errors.Wrap(err, "get ProxySQL stateful set") + if cr.ProxySQLEnabled() { + if err := deployStatefulApp(statefulset.NewProxy(cr), &cr.Spec.ProxySQL.PodSpec); err != nil { + return errors.Wrap(err, "failed to deploy proxysql") } } - return nil } @@ -958,14 +725,21 @@ func (r *ReconcilePerconaXtraDBCluster) createHookScriptConfigMap(cr *api.Percon return nil } -func (r *ReconcilePerconaXtraDBCluster) reconcilePDB(ctx context.Context, cr *api.PerconaXtraDBCluster, spec *api.PodDisruptionBudgetSpec, sfs api.StatefulApp, owner runtime.Object) error { +func (r *ReconcilePerconaXtraDBCluster) reconcilePDB(ctx context.Context, cr *api.PerconaXtraDBCluster, spec *api.PodDisruptionBudgetSpec, sfs api.StatefulApp) error { if spec == nil { return nil } + sts := new(appsv1.StatefulSet) + if err := r.client.Get(ctx, client.ObjectKeyFromObject(sfs.StatefulSet()), sts); err != nil { + if k8serrors.IsNotFound(err) { + return nil + } + return errors.Wrap(err, "get PXC stateful set") + } + pdb := pxc.PodDisruptionBudget(cr, spec, sfs.Labels()) - err := setControllerReference(owner, pdb, r.scheme) - if err != nil { + if err := setControllerReference(sts, pdb, r.scheme); err != nil { return errors.Wrap(err, "set owner reference") } @@ -1139,19 +913,19 @@ func (r *ReconcilePerconaXtraDBCluster) deleteSecrets(cr *api.PerconaXtraDBClust return nil } -func (r *ReconcilePerconaXtraDBCluster) deleteCerts(cr *api.PerconaXtraDBCluster) error { +func (r *ReconcilePerconaXtraDBCluster) deleteCerts(ctx context.Context, cr *api.PerconaXtraDBCluster) error { issuers := []string{ cr.Name + "-pxc-ca-issuer", cr.Name + "-pxc-issuer", } for _, issuerName := range issuers { issuer := &cm.Issuer{} - err := r.client.Get(context.TODO(), types.NamespacedName{Namespace: cr.Namespace, Name: issuerName}, issuer) + err := r.client.Get(ctx, types.NamespacedName{Namespace: cr.Namespace, Name: issuerName}, issuer) if err != nil { continue } - err = r.client.Delete(context.TODO(), issuer, &client.DeleteOptions{Preconditions: &metav1.Preconditions{UID: &issuer.UID}}) + err = r.client.Delete(ctx, issuer, &client.DeleteOptions{Preconditions: &metav1.Preconditions{UID: &issuer.UID}}) if err != nil { return errors.Wrapf(err, "delete issuer %s", issuerName) } @@ -1164,12 +938,12 @@ func (r *ReconcilePerconaXtraDBCluster) deleteCerts(cr *api.PerconaXtraDBCluster } for _, certName := range certs { cert := &cm.Certificate{} - err := r.client.Get(context.TODO(), types.NamespacedName{Namespace: cr.Namespace, Name: certName}, cert) + err := r.client.Get(ctx, types.NamespacedName{Namespace: cr.Namespace, Name: certName}, cert) if err != nil { continue } - err = r.client.Delete(context.TODO(), cert, &client.DeleteOptions{Preconditions: &metav1.Preconditions{UID: &cert.UID}}) + err = r.client.Delete(ctx, cert, &client.DeleteOptions{Preconditions: &metav1.Preconditions{UID: &cert.UID}}) if err != nil { return errors.Wrapf(err, "delete certificate %s", certName) } @@ -1193,12 +967,12 @@ func (r *ReconcilePerconaXtraDBCluster) deleteCerts(cr *api.PerconaXtraDBCluster for _, secretName := range secrets { secret := &corev1.Secret{} - err := r.client.Get(context.TODO(), types.NamespacedName{Namespace: cr.Namespace, Name: secretName}, secret) + err := r.client.Get(ctx, types.NamespacedName{Namespace: cr.Namespace, Name: secretName}, secret) if err != nil { continue } - err = r.client.Delete(context.TODO(), secret, &client.DeleteOptions{Preconditions: &metav1.Preconditions{UID: &secret.UID}}) + err = r.client.Delete(ctx, secret, &client.DeleteOptions{Preconditions: &metav1.Preconditions{UID: &secret.UID}}) if err != nil { return errors.Wrapf(err, "delete secret %s", secretName) } diff --git a/pkg/controller/pxc/status.go b/pkg/controller/pxc/status.go index 77fb3bd2c2..f7f08e3dae 100644 --- a/pkg/controller/pxc/status.go +++ b/pkg/controller/pxc/status.go @@ -2,6 +2,7 @@ package pxc import ( "context" + "reflect" "time" "github.com/pkg/errors" @@ -11,6 +12,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/types" + "k8s.io/apimachinery/pkg/util/wait" k8sretry "k8s.io/client-go/util/retry" "sigs.k8s.io/controller-runtime/pkg/client" @@ -22,7 +24,7 @@ func (r *ReconcilePerconaXtraDBCluster) updateStatus(ctx context.Context, cr *ap clusterCondition := api.ClusterCondition{ Status: api.ConditionTrue, Type: api.AppStateInit, - LastTransitionTime: metav1.NewTime(time.Now()), + LastTransitionTime: metav1.NewTime(time.Now().Truncate(time.Second)), } if reconcileErr != nil { @@ -32,7 +34,7 @@ func (r *ReconcilePerconaXtraDBCluster) updateStatus(ctx context.Context, cr *ap Type: api.AppStateError, Message: reconcileErr.Error(), Reason: "ErrorReconcile", - LastTransitionTime: metav1.NewTime(time.Now()), + LastTransitionTime: metav1.NewTime(time.Now().Truncate(time.Second)), } cr.Status.AddCondition(clusterCondition) @@ -155,6 +157,29 @@ func (r *ReconcilePerconaXtraDBCluster) writeStatus(ctx context.Context, cr *api return r.client.Status().Update(ctx, c) }) + // We need to make sure that the next reconcile gets a PerconaXtraDBCluster with an updated status. + // Without this, the next reconcile may occur too quickly, possibly before the status is updated. + // In this case, the next reconcile may use outdated status data, + // potentially breaking functionality that depends on it, such as the reconcileTLSToggle method. + b := wait.Backoff{ + Steps: 10, + Duration: 500 * time.Millisecond, + Factor: 1.0, + } + if err := k8sretry.OnError(b, func(error) bool { return true }, func() error { + c := &api.PerconaXtraDBCluster{} + if err := r.client.Get(ctx, client.ObjectKeyFromObject(cr), c); err != nil { + return err + } + + if !reflect.DeepEqual(c.Status.Conditions, cr.Status.Conditions) { + return errors.Errorf("conditions are not equal: expected %v, have %v", cr.Status.Conditions, c.Status.Conditions) + } + return nil + }); err != nil { + return err + } + return errors.Wrap(client.IgnoreNotFound(err), "write status") } diff --git a/pkg/controller/pxc/tls.go b/pkg/controller/pxc/tls.go index 142a4139a2..3a133d2abf 100644 --- a/pkg/controller/pxc/tls.go +++ b/pkg/controller/pxc/tls.go @@ -12,27 +12,33 @@ import ( k8serr "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" + "sigs.k8s.io/controller-runtime/pkg/client" api "github.com/percona/percona-xtradb-cluster-operator/pkg/apis/pxc/v1" + "github.com/percona/percona-xtradb-cluster-operator/pkg/k8s" "github.com/percona/percona-xtradb-cluster-operator/pkg/naming" "github.com/percona/percona-xtradb-cluster-operator/pkg/pxctls" ) -func (r *ReconcilePerconaXtraDBCluster) reconcileSSL(cr *api.PerconaXtraDBCluster) error { +func (r *ReconcilePerconaXtraDBCluster) reconcileSSL(ctx context.Context, cr *api.PerconaXtraDBCluster) error { + if err := r.reconcileTLSToggle(ctx, cr); err != nil { + return errors.Wrap(err, "reconcile tls toggle") + } + if !cr.TLSEnabled() { return nil } secretObj := corev1.Secret{} secretInternalObj := corev1.Secret{} - errSecret := r.client.Get(context.TODO(), + errSecret := r.client.Get(ctx, types.NamespacedName{ Namespace: cr.Namespace, Name: cr.Spec.PXC.SSLSecretName, }, &secretObj, ) - errInternalSecret := r.client.Get(context.TODO(), + errInternalSecret := r.client.Get(ctx, types.NamespacedName{ Namespace: cr.Namespace, Name: cr.Spec.PXC.SSLInternalSecretName, @@ -331,3 +337,56 @@ func (r *ReconcilePerconaXtraDBCluster) createSSLManualy(cr *api.PerconaXtraDBCl } return nil } + +func (r *ReconcilePerconaXtraDBCluster) reconcileTLSToggle(ctx context.Context, cr *api.PerconaXtraDBCluster) error { + if cr.CompareVersionWith("1.16.0") < 0 { + return nil + } + + condition := cr.Status.FindCondition(naming.ConditionTLS) + if condition == nil { + cr.Status.AddCondition(api.ClusterCondition{ + Type: naming.ConditionTLS, + Status: api.ConditionStatus(naming.GetConditionTLSState(cr)), + LastTransitionTime: metav1.NewTime(time.Now().Truncate(time.Second)), + }) + return nil + } + + if condition.Status == api.ConditionStatus(naming.GetConditionTLSState(cr)) { + return nil + } + + clusterPaused, err := k8s.PauseCluster(ctx, r.client, cr) + if err != nil { + return errors.Wrap(err, "failed to pause cluster") + } + if !clusterPaused { + return nil + } + + switch naming.ConditionTLSState(condition.Status) { + case naming.ConditionTLSStateEnabled: + if err := r.deleteCerts(ctx, cr); err != nil { + return errors.Wrap(err, "failed to delete tls secrets") + } + case naming.ConditionTLSStateDisabled: + default: + return errors.Errorf("unknown value for %s condition status: %s", naming.ConditionTLS, condition.Status) + } + + patch := client.MergeFrom(cr.DeepCopy()) + cr.Spec.Unsafe.TLS = !*cr.Spec.TLS.Enabled + if err := r.client.Patch(ctx, cr.DeepCopy(), patch); err != nil { + return errors.Wrap(err, "failed to patch cr") + } + + _, err = k8s.UnpauseCluster(ctx, r.client, cr) + if err != nil { + return errors.Wrap(err, "failed to start cluster") + } + + condition.Status = api.ConditionStatus(naming.GetConditionTLSState(cr)) + condition.LastTransitionTime = metav1.NewTime(time.Now().Truncate(time.Second)) + return nil +} diff --git a/pkg/controller/pxc/upgrade.go b/pkg/controller/pxc/upgrade.go index 85fcbc1702..0c232e2a42 100644 --- a/pkg/controller/pxc/upgrade.go +++ b/pkg/controller/pxc/upgrade.go @@ -29,7 +29,7 @@ import ( "github.com/percona/percona-xtradb-cluster-operator/pkg/util" ) -func (r *ReconcilePerconaXtraDBCluster) updatePod(ctx context.Context, sfs api.StatefulApp, podSpec *api.PodSpec, cr *api.PerconaXtraDBCluster, newAnnotations map[string]string) error { +func (r *ReconcilePerconaXtraDBCluster) updatePod(ctx context.Context, sfs api.StatefulApp, podSpec *api.PodSpec, cr *api.PerconaXtraDBCluster, newAnnotations map[string]string, smartUpdate bool) error { log := logf.FromContext(ctx) if cr.PVCResizeInProgress() { @@ -43,7 +43,6 @@ func (r *ReconcilePerconaXtraDBCluster) updatePod(ctx context.Context, sfs api.S } // embed DB configuration hash - // TODO: code duplication with deploy function configHash, err := r.getConfigHash(cr, sfs) if err != nil { return errors.Wrap(err, "getting config hash") @@ -97,18 +96,17 @@ func (r *ReconcilePerconaXtraDBCluster) updatePod(ctx context.Context, sfs api.S } err = k8sretry.RetryOnConflict(k8sretry.DefaultRetry, func() error { - sts, err := pxc.StatefulSet(ctx, r.client, sfs, podSpec, cr, secrets, initImageName, r.getConfigVolume) - if err != nil { - return errors.Wrap(err, "construct statefulset") - } - if err = setControllerReference(cr, sts, r.scheme); err != nil { - return errors.Wrap(err, "set controller reference") + currentSet := sfs.StatefulSet() + err := r.client.Get(ctx, client.ObjectKeyFromObject(currentSet), currentSet) + if client.IgnoreNotFound(err) != nil { + return errors.Wrap(err, "failed to get statefulset") } + annotations := currentSet.Spec.Template.Annotations + labels := currentSet.Spec.Template.Labels - currentSet := sfs.StatefulSet() - err = r.client.Get(ctx, types.NamespacedName{Name: currentSet.Name, Namespace: currentSet.Namespace}, currentSet) + sts, err := pxc.StatefulSet(ctx, r.client, sfs, podSpec, cr, secrets, initImageName, r.getConfigVolume) if err != nil { - return errors.Wrap(err, "failed to get statefulset") + return errors.Wrap(err, "construct statefulset") } // Keep same volumeClaimTemplates labels if statefulset already exists. // We can't update volumeClaimTemplates. @@ -118,13 +116,10 @@ func (r *ReconcilePerconaXtraDBCluster) updatePod(ctx context.Context, sfs api.S } } - annotations := currentSet.Spec.Template.Annotations - labels := currentSet.Spec.Template.Labels - - // support annotation adjustements - util.MergeMaps(annotations, sts.Spec.Template.Annotations, newAnnotations) - - util.MergeMaps(labels, sts.Spec.Template.Labels) + // If currentSet is not found, both annotations and labels will be nil. + // In such cases, MergeMaps will initialize a new map and return it. + annotations = util.MergeMaps(annotations, sts.Spec.Template.Annotations, newAnnotations) + labels = util.MergeMaps(labels, sts.Spec.Template.Labels) for k, v := range hashAnnotations { if v != "" || k == "percona.com/configuration-hash" { @@ -134,6 +129,10 @@ func (r *ReconcilePerconaXtraDBCluster) updatePod(ctx context.Context, sfs api.S sts.Spec.Template.Annotations = annotations sts.Spec.Template.Labels = labels + + if err := setControllerReference(cr, sts, r.scheme); err != nil { + return errors.Wrap(err, "set controller reference") + } err = r.createOrUpdate(ctx, cr, sts) if err != nil { return errors.Wrap(err, "update error") @@ -148,7 +147,13 @@ func (r *ReconcilePerconaXtraDBCluster) updatePod(ctx context.Context, sfs api.S return nil } - return r.smartUpdate(ctx, sfs, cr) + if smartUpdate { + if err := r.smartUpdate(ctx, sfs, cr); err != nil { + return errors.Wrap(err, "smart update") + } + } + + return nil } func (r *ReconcilePerconaXtraDBCluster) smartUpdate(ctx context.Context, sfs api.StatefulApp, cr *api.PerconaXtraDBCluster) error { diff --git a/pkg/controller/pxcrestore/controller.go b/pkg/controller/pxcrestore/controller.go index 07280a42dc..fc92370598 100644 --- a/pkg/controller/pxcrestore/controller.go +++ b/pkg/controller/pxcrestore/controller.go @@ -3,7 +3,6 @@ package pxcrestore import ( "context" "fmt" - "strings" "time" "github.com/pkg/errors" @@ -14,7 +13,6 @@ import ( "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/types" - k8sretry "k8s.io/client-go/util/retry" "sigs.k8s.io/controller-runtime/pkg/builder" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/handler" @@ -24,8 +22,7 @@ import ( "github.com/percona/percona-xtradb-cluster-operator/clientcmd" api "github.com/percona/percona-xtradb-cluster-operator/pkg/apis/pxc/v1" - "github.com/percona/percona-xtradb-cluster-operator/pkg/pxc/app" - "github.com/percona/percona-xtradb-cluster-operator/pkg/pxc/app/statefulset" + "github.com/percona/percona-xtradb-cluster-operator/pkg/k8s" "github.com/percona/percona-xtradb-cluster-operator/pkg/pxc/backup" "github.com/percona/percona-xtradb-cluster-operator/pkg/pxc/backup/storage" "github.com/percona/percona-xtradb-cluster-operator/version" @@ -201,7 +198,7 @@ func (r *ReconcilePerconaXtraDBClusterRestore) Reconcile(ctx context.Context, re err = errors.Wrap(err, "set status") return rr, err } - err = r.stopCluster(cluster.DeepCopy()) + err = k8s.PauseClusterWithWait(ctx, r.client, cluster, true) if err != nil { err = errors.Wrapf(err, "stop cluster %s", cluster.Name) return rr, err @@ -252,7 +249,7 @@ func (r *ReconcilePerconaXtraDBClusterRestore) Reconcile(ctx context.Context, re cluster.Spec.HAProxy.Size = 0 } - if err := r.startCluster(cluster); err != nil { + if err := k8s.UnpauseClusterWithWait(ctx, r.client, cluster); err != nil { return rr, errors.Wrap(err, "restart cluster for pitr") } @@ -286,7 +283,7 @@ func (r *ReconcilePerconaXtraDBClusterRestore) Reconcile(ctx context.Context, re } } - err = r.startCluster(clusterOrig) + err = k8s.UnpauseClusterWithWait(ctx, r.client, clusterOrig) if err != nil { err = errors.Wrap(err, "restart cluster") return rr, err @@ -336,100 +333,6 @@ If everything is fine, you can cleanup the job: $ kubectl delete pxc-restore/%s ` -func (r *ReconcilePerconaXtraDBClusterRestore) stopCluster(c *api.PerconaXtraDBCluster) error { - var gracePeriodSec int64 - - if c.Spec.PXC != nil && c.Spec.PXC.TerminationGracePeriodSeconds != nil { - gracePeriodSec = int64(c.Spec.PXC.Size) * *c.Spec.PXC.TerminationGracePeriodSeconds - } - - patch := client.MergeFrom(c.DeepCopy()) - c.Spec.Pause = true - err := r.client.Patch(context.TODO(), c, patch) - if err != nil { - return errors.Wrap(err, "shutdown pods") - } - - ls := statefulset.NewNode(c).Labels() - err = r.waitForPodsShutdown(ls, c.Namespace, gracePeriodSec) - if err != nil { - return errors.Wrap(err, "shutdown pods") - } - - pvcs := corev1.PersistentVolumeClaimList{} - err = r.client.List( - context.TODO(), - &pvcs, - &client.ListOptions{ - Namespace: c.Namespace, - LabelSelector: labels.SelectorFromSet(ls), - }, - ) - if err != nil { - return errors.Wrap(err, "get pvc list") - } - - pxcNode := statefulset.NewNode(c) - pvcNameTemplate := app.DataVolumeName + "-" + pxcNode.StatefulSet().Name - for _, pvc := range pvcs.Items { - // check prefix just in case, to be sure we're not going to delete a wrong pvc - if pvc.Name == pvcNameTemplate+"-0" || !strings.HasPrefix(pvc.Name, pvcNameTemplate) { - continue - } - - err = r.client.Delete(context.TODO(), &pvc) - if err != nil { - return errors.Wrap(err, "delete pvc") - } - } - - err = r.waitForPVCShutdown(ls, c.Namespace) - if err != nil { - return errors.Wrap(err, "shutdown pvc") - } - - return nil -} - -func (r *ReconcilePerconaXtraDBClusterRestore) startCluster(cr *api.PerconaXtraDBCluster) (err error) { - // tryin several times just to avoid possible conflicts with the main controller - err = k8sretry.RetryOnConflict(k8sretry.DefaultRetry, func() error { - // need to get the object with latest version of meta-data for update - current := &api.PerconaXtraDBCluster{} - rerr := r.client.Get(context.TODO(), types.NamespacedName{Name: cr.Name, Namespace: cr.Namespace}, current) - if rerr != nil { - return errors.Wrap(err, "get cluster") - } - current.Spec = cr.Spec - return r.client.Update(context.TODO(), current) - }) - if err != nil { - return errors.Wrap(err, "update cluster") - } - - // give time for process new state - time.Sleep(10 * time.Second) - - var waitLimit int32 = 2 * 60 * 60 // 2 hours - if cr.Spec.PXC.LivenessInitialDelaySeconds != nil { - waitLimit = *cr.Spec.PXC.LivenessInitialDelaySeconds * cr.Spec.PXC.Size - } - - for i := int32(0); i < waitLimit; i++ { - current := &api.PerconaXtraDBCluster{} - err = r.client.Get(context.TODO(), types.NamespacedName{Name: cr.Name, Namespace: cr.Namespace}, current) - if err != nil { - return errors.Wrap(err, "get cluster") - } - if current.Status.ObservedGeneration == current.Generation && current.Status.PXC.Status == api.AppStateReady { - return nil - } - time.Sleep(time.Second * 1) - } - - return errors.Errorf("exceeded wait limit") -} - const waitLimitSec int64 = 300 func (r *ReconcilePerconaXtraDBClusterRestore) waitForPodsShutdown(ls map[string]string, namespace string, gracePeriodSec int64) error { diff --git a/pkg/k8s/cluster.go b/pkg/k8s/cluster.go new file mode 100644 index 0000000000..85054b313a --- /dev/null +++ b/pkg/k8s/cluster.go @@ -0,0 +1,239 @@ +package k8s + +import ( + "context" + "strings" + "time" + + "github.com/pkg/errors" + corev1 "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/types" + k8sretry "k8s.io/client-go/util/retry" + "sigs.k8s.io/controller-runtime/pkg/client" + + api "github.com/percona/percona-xtradb-cluster-operator/pkg/apis/pxc/v1" + "github.com/percona/percona-xtradb-cluster-operator/pkg/pxc/app" + "github.com/percona/percona-xtradb-cluster-operator/pkg/pxc/app/statefulset" +) + +func PauseCluster(ctx context.Context, cl client.Client, cr *api.PerconaXtraDBCluster) (bool, error) { + if !cr.Spec.Pause { + cr := cr.DeepCopy() // calling patch will overwrite cr, removing values set by CheckNsetDefaults. We need to copy it into a new variable + + patch := client.MergeFrom(cr.DeepCopy()) + cr.Spec.Pause = true + err := cl.Patch(ctx, cr, patch) + if err != nil { + return false, errors.Wrap(err, "shutdown pods") + } + time.Sleep(time.Second) + } + cr.Spec.Pause = true + + pods := corev1.PodList{} + + ls := statefulset.NewNode(cr).Labels() + if err := cl.List( + ctx, + &pods, + &client.ListOptions{ + Namespace: cr.Namespace, + LabelSelector: labels.SelectorFromSet(ls), + }, + ); err != nil { + return false, errors.Wrap(err, "get pods list") + } + + if len(pods.Items) != 0 { + return false, nil + } + + return true, nil +} + +func UnpauseCluster(ctx context.Context, cl client.Client, cr *api.PerconaXtraDBCluster) (bool, error) { + if cr.Spec.Pause { + cr := cr.DeepCopy() // calling patch will overwrite cr, removing values set by CheckNsetDefaults. We need to copy it into a new variable + + patch := client.MergeFrom(cr.DeepCopy()) + cr.Spec.Pause = false + err := cl.Patch(ctx, cr, patch) + if err != nil { + return false, errors.Wrap(err, "patch") + } + } + cr.Spec.Pause = false + + ls := statefulset.NewNode(cr).Labels() + pods := new(corev1.PodList) + if err := cl.List( + ctx, + pods, + &client.ListOptions{ + Namespace: cr.Namespace, + LabelSelector: labels.SelectorFromSet(ls), + }, + ); err != nil { + return false, errors.Wrap(err, "get pods list") + } + + if len(pods.Items) != int(cr.Spec.PXC.Size) { + return false, nil + } + + return true, nil +} + +// Deprecated: PauseClusterWithWait is a function which blocks reconcile process. Use PauseCluster instead +func PauseClusterWithWait(ctx context.Context, cl client.Client, cr *api.PerconaXtraDBCluster, deletePVC bool) error { + cr = cr.DeepCopy() + var gracePeriodSec int64 + + if cr.Spec.PXC != nil && cr.Spec.PXC.TerminationGracePeriodSeconds != nil { + gracePeriodSec = int64(cr.Spec.PXC.Size) * *cr.Spec.PXC.TerminationGracePeriodSeconds + } + + patch := client.MergeFrom(cr.DeepCopy()) + cr.Spec.Pause = true + err := cl.Patch(ctx, cr, patch) + if err != nil { + return errors.Wrap(err, "shutdown pods") + } + + ls := statefulset.NewNode(cr).Labels() + err = waitForPodsShutdown(ctx, cl, ls, cr.Namespace, gracePeriodSec) + if err != nil { + return errors.Wrap(err, "shutdown pods") + } + if !deletePVC { + return nil + } + + pvcs := corev1.PersistentVolumeClaimList{} + err = cl.List( + ctx, + &pvcs, + &client.ListOptions{ + Namespace: cr.Namespace, + LabelSelector: labels.SelectorFromSet(ls), + }, + ) + if err != nil { + return errors.Wrap(err, "get pvc list") + } + pxcNode := statefulset.NewNode(cr) + pvcNameTemplate := app.DataVolumeName + "-" + pxcNode.StatefulSet().Name + for _, pvc := range pvcs.Items { + // check prefix just in case, to be sure we're not going to delete a wrong pvc + if pvc.Name == pvcNameTemplate+"-0" || !strings.HasPrefix(pvc.Name, pvcNameTemplate) { + continue + } + + err = cl.Delete(ctx, &pvc) + if err != nil { + return errors.Wrap(err, "delete pvc") + } + } + + err = waitForPVCShutdown(ctx, cl, ls, cr.Namespace) + if err != nil { + return errors.Wrap(err, "shutdown pvc") + } + + return nil +} + +func waitForPodsShutdown(ctx context.Context, cl client.Client, ls map[string]string, namespace string, gracePeriodSec int64) error { + for i := int64(0); i < waitLimitSec+gracePeriodSec; i++ { + pods := corev1.PodList{} + + err := cl.List( + ctx, + &pods, + &client.ListOptions{ + Namespace: namespace, + LabelSelector: labels.SelectorFromSet(ls), + }, + ) + if err != nil { + return errors.Wrap(err, "get pods list") + } + + if len(pods.Items) == 0 { + return nil + } + + time.Sleep(time.Second * 1) + } + + return errors.Errorf("exceeded wait limit") +} + +const waitLimitSec int64 = 300 + +func waitForPVCShutdown(ctx context.Context, cl client.Client, ls map[string]string, namespace string) error { + for i := int64(0); i < waitLimitSec; i++ { + pvcs := corev1.PersistentVolumeClaimList{} + + err := cl.List( + ctx, + &pvcs, + &client.ListOptions{ + Namespace: namespace, + LabelSelector: labels.SelectorFromSet(ls), + }, + ) + if err != nil { + return errors.Wrap(err, "get pvc list") + } + + if len(pvcs.Items) == 1 { + return nil + } + + time.Sleep(time.Second * 1) + } + + return errors.Errorf("exceeded wait limit") +} + +// Deprecated: UnpauseClusterWithWait is a function which blocks reconcile process. Use UnpauseCluster instead +func UnpauseClusterWithWait(ctx context.Context, cl client.Client, cr *api.PerconaXtraDBCluster) (err error) { + // tryin several times just to avoid possible conflicts with the main controller + err = k8sretry.RetryOnConflict(k8sretry.DefaultRetry, func() error { + // need to get the object with latest version of meta-data for update + current := new(api.PerconaXtraDBCluster) + rerr := cl.Get(ctx, types.NamespacedName{Name: cr.Name, Namespace: cr.Namespace}, current) + if rerr != nil { + return errors.Wrap(err, "get cluster") + } + current.Spec = cr.Spec + return cl.Update(ctx, current) + }) + if err != nil { + return errors.Wrap(err, "update cluster") + } + + // give time for process new state + time.Sleep(10 * time.Second) + + var waitLimit int32 = 2 * 60 * 60 // 2 hours + if cr.Spec.PXC.LivenessInitialDelaySeconds != nil { + waitLimit = *cr.Spec.PXC.LivenessInitialDelaySeconds * cr.Spec.PXC.Size + } + + for i := int32(0); i < waitLimit; i++ { + current := new(api.PerconaXtraDBCluster) + err = cl.Get(ctx, types.NamespacedName{Name: cr.Name, Namespace: cr.Namespace}, current) + if err != nil { + return errors.Wrap(err, "get cluster") + } + if current.Status.ObservedGeneration == current.Generation && current.Status.PXC.Status == api.AppStateReady { + return nil + } + time.Sleep(time.Second * 1) + } + + return errors.Errorf("exceeded wait limit") +} diff --git a/pkg/naming/condition.go b/pkg/naming/condition.go new file mode 100644 index 0000000000..0b8a79524a --- /dev/null +++ b/pkg/naming/condition.go @@ -0,0 +1,21 @@ +package naming + +import ( + api "github.com/percona/percona-xtradb-cluster-operator/pkg/apis/pxc/v1" +) + +const ConditionTLS api.AppState = "tls" + +type ConditionTLSState string + +const ( + ConditionTLSStateEnabled ConditionTLSState = "enabled" + ConditionTLSStateDisabled ConditionTLSState = "disabled" +) + +func GetConditionTLSState(cr *api.PerconaXtraDBCluster) ConditionTLSState { + if *cr.Spec.TLS.Enabled { + return ConditionTLSStateEnabled + } + return ConditionTLSStateDisabled +} diff --git a/pkg/pxc/app/pvc.go b/pkg/pxc/app/pvc.go index 9f706ea10a..32e9566538 100644 --- a/pkg/pxc/app/pvc.go +++ b/pkg/pxc/app/pvc.go @@ -1,9 +1,10 @@ package app import ( - api "github.com/percona/percona-xtradb-cluster-operator/pkg/apis/pxc/v1" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + + api "github.com/percona/percona-xtradb-cluster-operator/pkg/apis/pxc/v1" ) // PVCs returns the list of PersistentVolumeClaims for the pod diff --git a/pkg/util/map.go b/pkg/util/map.go index b87a0b93af..de8eea6602 100644 --- a/pkg/util/map.go +++ b/pkg/util/map.go @@ -11,7 +11,11 @@ func MergeTemplateAnnotations(sfs *appsv1.StatefulSet, annotations map[string]st MergeMaps(sfs.Spec.Template.Annotations, annotations) } -func MergeMaps(dest map[string]string, mapList ...map[string]string) { +// MergeMaps merges multiple maps into the provided `dest` map. +// If `dest` is nil, a new map is created. +// When keys overlap across maps, the value from the last map takes precedence. +// The function returns the resulting `dest` map. +func MergeMaps(dest map[string]string, mapList ...map[string]string) map[string]string { if dest == nil { dest = make(map[string]string) } @@ -20,4 +24,5 @@ func MergeMaps(dest map[string]string, mapList ...map[string]string) { dest[k] = v } } + return dest } From b61d34d172edc87bd08bee70cb018e4c32f1081c Mon Sep 17 00:00:00 2001 From: Eleonora Zinchenko Date: Sun, 8 Dec 2024 08:09:23 +0200 Subject: [PATCH 23/60] K8SPXC-144: enable pvc resize for 2nd cluster --- e2e-tests/pvc-resize/run | 3 +++ 1 file changed, 3 insertions(+) diff --git a/e2e-tests/pvc-resize/run b/e2e-tests/pvc-resize/run index 21e929845c..dafb777c92 100755 --- a/e2e-tests/pvc-resize/run +++ b/e2e-tests/pvc-resize/run @@ -148,6 +148,9 @@ if [ "$EKS" == 1 -o -n "$OPENSHIFT" ]; then echo "Deleting and recreating PXC cluster ${cluster}" kubectl_bin delete pxc ${cluster} spinup_pxc "${cluster}" "$test_dir/conf/$cluster-eks.yml" "3" "10" "${conf_dir}/secrets.yml" + echo "Enabling PVC resize" + kubectl_bin patch pxc "${cluster}" --type=json -p='[{"op": "add", "path": "/spec/enableVolumeExpansion", "value":true }]' + sleep 10 fi desc 'create resourcequota' From 3b315bcd66a0e7301ff6eb8f90e3e1c7bd51a21f Mon Sep 17 00:00:00 2001 From: Eleonora Zinchenko Date: Sun, 8 Dec 2024 08:10:34 +0200 Subject: [PATCH 24/60] K8SPXC-144: update description --- e2e-tests/pvc-resize/run | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/e2e-tests/pvc-resize/run b/e2e-tests/pvc-resize/run index dafb777c92..b16645e471 100755 --- a/e2e-tests/pvc-resize/run +++ b/e2e-tests/pvc-resize/run @@ -148,7 +148,7 @@ if [ "$EKS" == 1 -o -n "$OPENSHIFT" ]; then echo "Deleting and recreating PXC cluster ${cluster}" kubectl_bin delete pxc ${cluster} spinup_pxc "${cluster}" "$test_dir/conf/$cluster-eks.yml" "3" "10" "${conf_dir}/secrets.yml" - echo "Enabling PVC resize" + echo "Enabling PVC resize for 2nd eks/openshift cluster" kubectl_bin patch pxc "${cluster}" --type=json -p='[{"op": "add", "path": "/spec/enableVolumeExpansion", "value":true }]' sleep 10 fi From 81ca7381cee5af47382e8cb86cbbebd3d30d7250 Mon Sep 17 00:00:00 2001 From: Eleonora Zinchenko Date: Sun, 8 Dec 2024 08:44:12 +0200 Subject: [PATCH 25/60] Fix upgrade-consistency for openshift --- .../compare/statefulset_some-name-proxysql-1141-oc.yml | 2 +- .../compare/statefulset_some-name-proxysql-1151-oc.yml | 2 +- .../compare/statefulset_some-name-pxc-1141-oc.yml | 2 +- .../compare/statefulset_some-name-pxc-1151-oc.yml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/e2e-tests/upgrade-consistency/compare/statefulset_some-name-proxysql-1141-oc.yml b/e2e-tests/upgrade-consistency/compare/statefulset_some-name-proxysql-1141-oc.yml index 4e26ab7efe..bee5037461 100644 --- a/e2e-tests/upgrade-consistency/compare/statefulset_some-name-proxysql-1141-oc.yml +++ b/e2e-tests/upgrade-consistency/compare/statefulset_some-name-proxysql-1141-oc.yml @@ -1,7 +1,7 @@ apiVersion: apps/v1 kind: StatefulSet metadata: - generation: 2 + generation: 1 name: some-name-proxysql ownerReferences: - controller: true diff --git a/e2e-tests/upgrade-consistency/compare/statefulset_some-name-proxysql-1151-oc.yml b/e2e-tests/upgrade-consistency/compare/statefulset_some-name-proxysql-1151-oc.yml index 43a9e27175..4c620b3631 100644 --- a/e2e-tests/upgrade-consistency/compare/statefulset_some-name-proxysql-1151-oc.yml +++ b/e2e-tests/upgrade-consistency/compare/statefulset_some-name-proxysql-1151-oc.yml @@ -1,7 +1,7 @@ apiVersion: apps/v1 kind: StatefulSet metadata: - generation: 3 + generation: 2 name: some-name-proxysql ownerReferences: - controller: true diff --git a/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1141-oc.yml b/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1141-oc.yml index 1d045b704a..668b2e76d8 100644 --- a/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1141-oc.yml +++ b/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1141-oc.yml @@ -1,7 +1,7 @@ apiVersion: apps/v1 kind: StatefulSet metadata: - generation: 2 + generation: 1 name: some-name-pxc ownerReferences: - controller: true diff --git a/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1151-oc.yml b/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1151-oc.yml index ceda57c5c2..1d045b704a 100644 --- a/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1151-oc.yml +++ b/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1151-oc.yml @@ -1,7 +1,7 @@ apiVersion: apps/v1 kind: StatefulSet metadata: - generation: 3 + generation: 2 name: some-name-pxc ownerReferences: - controller: true From 962ab64857e67dea90129a64e13a8c4fe5a0c1c8 Mon Sep 17 00:00:00 2001 From: Sergey Pronin Date: Mon, 9 Dec 2024 15:31:09 +0300 Subject: [PATCH 26/60] [CLOUD-878] minor fixes and links from README --- README.md | 38 ++++++++++---------------------------- 1 file changed, 10 insertions(+), 28 deletions(-) diff --git a/README.md b/README.md index fbcaec1267..29d061e5af 100644 --- a/README.md +++ b/README.md @@ -21,8 +21,7 @@ Within the [Percona Operator for MySQL based on Percona XtraDB Cluster](https:// * Automated Password Rotation – use the standard Kubernetes API to enforce password rotation policies for system user * Private container image registries -You interact with Percona Operator mostly via the command line tool. If you feel more comfortable with operating the Operator and database clusters via the web interface, there is [Percona Everest](https://docs.percona.com/everest/index.html) - an open-source web-based database provisioning tool available for you. It automates day-to-day database management operations for you, reducing the overall administrative overhead. [Get started with Percona Everest](https://docs.percona.com/everest/quickstart-guide/quick-install.html). - +While the Percona Operator is primarily managed through the command line, you can also use **[Percona Everest](https://docs.percona.com/everest/index.html)** for a web-based user interface. This open-source tool provides a streamlined experience for provisioning and managing your databases, simplifying day-to-day tasks and reducing administrative overhead. Learn more about Percona Everest in the [documentation](https://docs.percona.com/everest/index.html) or jump right in with the [quickstart guide](https://docs.percona.com/everest/quickstart-guide/quick-install.html). # Architecture @@ -57,41 +56,24 @@ kubectl apply -f https://raw.githubusercontent.com/percona/percona-xtradb-cluste See full documentation with examples and various advanced cases on [percona.com](https://www.percona.com/doc/kubernetes-operator-for-pxc/index.html). +# Need help? + +**Commercial Support** | **Community Support** | +:-: | :-: | +|
Enterprise-grade assistance for your mission-critical MySQL deployments with the Percona Operator for MySQL. Get expert guidance for complex tasks like multi-cloud replication, database migration and building platforms.

|
Connect with our engineers and fellow users for general questions, troubleshooting, and sharing feedback and ideas.

| +| **[Get Percona Support](https://hubs.ly/Q02ZTH940)** | **[Visit our Forum](https://forums.percona.com/c/mysql-mariadb/percona-kubernetes-operator-for-mysql/28)** | + # Contributing Percona welcomes and encourages community contributions to help improve Percona Operator for MySQL. See the [Contribution Guide](CONTRIBUTING.md) and [Building and Testing Guide](e2e-tests/README.md) for more information on how you can contribute. -## Communication - -We would love to hear from you! Reach out to us on [Forum](https://forums.percona.com/c/mysql-mariadb/percona-kubernetes-operator-for-mysql/28) with your questions, feedback and ideas - -# Join Percona Kubernetes Squad! -``` - % _____ - %%% | __ \ - ###%%%%%%%%%%%%* | |__) |__ _ __ ___ ___ _ __ __ _ - ### ##%% %%%% | ___/ _ \ '__/ __/ _ \| '_ \ / _` | - #### ##% %%%% | | | __/ | | (_| (_) | | | | (_| | - ### #### %%% |_| \___|_| \___\___/|_| |_|\__,_| - ,((### ### %%% _ _ _____ _ - (((( (### #### %%%% | | / _ \ / ____| | | - ((( ((# ###### | | _| (_) |___ | (___ __ _ _ _ __ _ __| | - (((( (((# #### | |/ /> _ Date: Mon, 9 Dec 2024 19:27:35 +0300 Subject: [PATCH 27/60] K8SPXC-1222: Fix state check in probes for 8.4 (#1905) --- build/liveness-check.sh | 2 +- build/readiness-check.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build/liveness-check.sh b/build/liveness-check.sh index f681d4c25f..047985a1e6 100755 --- a/build/liveness-check.sh +++ b/build/liveness-check.sh @@ -23,7 +23,7 @@ NODE_IP=$(hostname -I | awk ' { print $1 } ') TIMEOUT=$((${LIVENESS_CHECK_TIMEOUT:-5} - 1)) MYSQL_STATE=ready MYSQL_VERSION=$(mysqld -V | awk '{print $3}' | awk -F'.' '{print $1"."$2}') -if [[ ${MYSQL_VERSION} == '8.0' ]]; then +if [[ ${MYSQL_VERSION} =~ ^(8\.0|8\.4)$ && -f ${MYSQL_STATE_FILE} ]]; then MYSQL_STATE=$(tr -d '\0' < ${MYSQL_STATE_FILE}) fi diff --git a/build/readiness-check.sh b/build/readiness-check.sh index 05ac4ff709..de0464958f 100755 --- a/build/readiness-check.sh +++ b/build/readiness-check.sh @@ -18,7 +18,7 @@ AVAILABLE_WHEN_DONOR=${AVAILABLE_WHEN_DONOR:-1} NODE_IP=$(hostname -I | awk ' { print $1 } ') MYSQL_STATE=ready MYSQL_VERSION=$(mysqld -V | awk '{print $3}' | awk -F'.' '{print $1"."$2}') -if [[ ${MYSQL_VERSION} == '8.0' ]]; then +if [[ ${MYSQL_VERSION} =~ ^(8\.0|8\.4)$ && -f ${MYSQL_STATE_FILE} ]]; then MYSQL_STATE=$(tr -d '\0' < ${MYSQL_STATE_FILE}) fi From c68169b47e28d5b46e69db20d39b14c35d919ced Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ege=20G=C3=BCne=C5=9F?= Date: Tue, 10 Dec 2024 22:22:48 +0300 Subject: [PATCH 28/60] K8SPXC-1222: Handle new statuses added in 8.4 (#1907) Co-authored-by: Viacheslav Sarzhan --- cmd/mysql-state-monitor/main.go | 44 ++++++++++++++++++++++++++++++--- 1 file changed, 41 insertions(+), 3 deletions(-) diff --git a/cmd/mysql-state-monitor/main.go b/cmd/mysql-state-monitor/main.go index 912268bab2..58f7c04a5a 100644 --- a/cmd/mysql-state-monitor/main.go +++ b/cmd/mysql-state-monitor/main.go @@ -33,20 +33,58 @@ func parseDatum(datum string) MySQLState { switch status { case "Server is operational": return MySQLReady - case "Server shutdown in progress": + case "Server shutdown in progress", + "Forceful shutdown of connections in progress", + "Graceful shutdown of connections in progress", + "Components initialization unsuccessful", + "Execution of SQL Commands from Init-file unsuccessful", + "Initialization of dynamic plugins unsuccessful", + "Initialization of MySQL system tables unsuccessful", + "InnoDB crash recovery unsuccessful", + "InnoDB initialization unsuccessful": return MySQLDown case "Server startup in progress", - "Data Dictionary upgrade in progress", - "Data Dictionary upgrade complete", + "Server initialization in progress", "Server upgrade in progress", "Server upgrade complete", "Server downgrade in progress", "Server downgrade complete", + "Data Dictionary upgrade in progress", + "Data Dictionary upgrade complete", "Data Dictionary upgrade from MySQL 5.7 in progress", "Data Dictionary upgrade from MySQL 5.7 complete", + "Components initialization in progress", + "Components initialization successful", + "Connection shutdown complete", + "Execution of SQL Commands from Init-file successful", + "Initialization of dynamic plugins in progress", + "Initialization of dynamic plugins successful", + "Initialization of MySQL system tables in progress", + "Initialization of MySQL system tables successful", + "InnoDB crash recovery in progress", + "InnoDB crash recovery successful", + "InnoDB initialization in progress", + "InnoDB initialization successful", + "Shutdown of plugins complete", + "Shutdown of components in progress", + "Shutdown of components successful", + "Shutdown of plugins in progress", + "Shutdown of replica threads in progress", "Server shutdown complete": // we treat this as startup because during init, MySQL notifies this even if it's up return MySQLStartup } + + // these statuses have variables in it + // that's why we're handling them separately + switch { + case strings.HasPrefix(status, "Pre DD shutdown of MySQL SE plugin"): + return MySQLStartup + case strings.HasPrefix(status, "Server shutdown complete"): + return MySQLStartup + case strings.HasPrefix(status, "Server initialization complete"): + return MySQLStartup + } + } return MySQLUnknown From d119e53c521e9ff3ee189b4c350820e5a634f87e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ege=20G=C3=BCne=C5=9F?= Date: Tue, 10 Dec 2024 23:16:44 +0300 Subject: [PATCH 29/60] K8SPXC-1411: Fix disabling TLS without unsafe flag (#1906) * K8SPXC-1411: Fix disabling TLS without unsafe flag * fix tls-issue-self test * fix generation in tests --------- Co-authored-by: Viacheslav Sarzhan --- .../compare/pxc_some-name-enabled.yml | 2 +- e2e-tests/tls-issue-self/compare/pxc_some-name.yml | 2 +- e2e-tests/tls-issue-self/run | 13 ++++++------- pkg/apis/pxc/v1/pxc_types.go | 2 +- 4 files changed, 9 insertions(+), 10 deletions(-) diff --git a/e2e-tests/tls-issue-self/compare/pxc_some-name-enabled.yml b/e2e-tests/tls-issue-self/compare/pxc_some-name-enabled.yml index a4798e7168..0124f49796 100644 --- a/e2e-tests/tls-issue-self/compare/pxc_some-name-enabled.yml +++ b/e2e-tests/tls-issue-self/compare/pxc_some-name-enabled.yml @@ -1,7 +1,7 @@ apiVersion: pxc.percona.com/v1 kind: PerconaXtraDBCluster metadata: - generation: 10 + generation: 9 name: some-name spec: backup: diff --git a/e2e-tests/tls-issue-self/compare/pxc_some-name.yml b/e2e-tests/tls-issue-self/compare/pxc_some-name.yml index 63f494ddb7..5e96b63042 100644 --- a/e2e-tests/tls-issue-self/compare/pxc_some-name.yml +++ b/e2e-tests/tls-issue-self/compare/pxc_some-name.yml @@ -1,7 +1,7 @@ apiVersion: pxc.percona.com/v1 kind: PerconaXtraDBCluster metadata: - generation: 6 + generation: 5 name: some-name spec: backup: diff --git a/e2e-tests/tls-issue-self/run b/e2e-tests/tls-issue-self/run index 52157ee33f..d3019188fa 100755 --- a/e2e-tests/tls-issue-self/run +++ b/e2e-tests/tls-issue-self/run @@ -28,12 +28,11 @@ main() { # generation = 2 on this step desc 'check disabling tls' - kubectl_bin patch pxc "$cluster" --type=merge --patch '{"spec": {"tls":{"enabled": false}}}' # generation + 1 (total 3) + kubectl_bin patch pxc "$cluster" --type=merge --patch '{"spec": {"tls":{"enabled": false}, "unsafeFlags": {"tls": true}}}' # generation + 1 (total 3) sleep 10 # operator performs: # - patch .spec.pause to true (generation = 4) - # - patch spec.unsafeFlags.tls to true (generation = 5) - # - patch .spec.pause to false (generation = 6) + # - patch .spec.pause to false (generation = 5) wait_cluster_consistency "$cluster" 3 2 desc 'secrets should be deleted' if kubectl get secret "$cluster-ssl" &>/dev/null; then @@ -47,12 +46,12 @@ main() { compare_kubectl "pxc/$cluster" desc 'check enabling tls' - kubectl_bin patch pxc "$cluster" --type=merge --patch '{"spec": {"tls":{"enabled": true}}}' # generation + 1 (total = 7) + kubectl_bin patch pxc "$cluster" --type=merge --patch '{"spec": {"tls":{"enabled": true}}}' # generation + 1 (total = 6) sleep 10 # operator performs: - # - patch .spec.pause to true (generation = 8) - # - patch spec.unsafeFlags.tls to false (generation = 9) - # - patch .spec.pause to false (generation = 10) + # - patch .spec.pause to true (generation = 7) + # - patch spec.unsafeFlags.tls to false (generation = 8) + # - patch .spec.pause to false (generation = 9) wait_cluster_consistency "$cluster" 3 2 compare_kubectl "pxc/$cluster" "-enabled" desc 'secrets should be recreated' diff --git a/pkg/apis/pxc/v1/pxc_types.go b/pkg/apis/pxc/v1/pxc_types.go index 0003ba2db6..fa23e5b903 100644 --- a/pkg/apis/pxc/v1/pxc_types.go +++ b/pkg/apis/pxc/v1/pxc_types.go @@ -1238,7 +1238,7 @@ func (cr *PerconaXtraDBCluster) setProbesDefaults() { } func (cr *PerconaXtraDBCluster) checkSafeDefaults() error { - if !cr.Spec.Unsafe.TLS && !cr.TLSEnabled() { + if !cr.Spec.Unsafe.TLS && !*cr.Spec.TLS.Enabled { return errors.New("TLS must be enabled. Set spec.unsafeFlags.tls to true to disable this check") } From 416e9129049aba98f1856570eb2b704e3b5e94cc Mon Sep 17 00:00:00 2001 From: Eleonora Zinchenko Date: Wed, 11 Dec 2024 19:08:36 +0200 Subject: [PATCH 30/60] K8SPXC-1410: set memory in custom-users test to 2 (#1908) --- e2e-tests/custom-users/conf/some-name.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/e2e-tests/custom-users/conf/some-name.yml b/e2e-tests/custom-users/conf/some-name.yml index 1fdfaff139..b6ed347ced 100644 --- a/e2e-tests/custom-users/conf/some-name.yml +++ b/e2e-tests/custom-users/conf/some-name.yml @@ -41,7 +41,7 @@ spec: memory: 0.1G cpu: 100m limits: - memory: "1G" + memory: "2G" cpu: "1" volumeSpec: persistentVolumeClaim: From 6f8b8f656c8e420f88a624481c6783ba23c77350 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ege=20G=C3=BCne=C5=9F?= Date: Thu, 12 Dec 2024 11:57:39 +0300 Subject: [PATCH 31/60] K8SPXC-1222: Remove state check from readiness probe (#1909) Co-authored-by: Viacheslav Sarzhan --- build/Dockerfile | 4 ++-- build/readiness-check.sh | 9 +-------- cmd/mysql-state-monitor/main.go | 10 +++++++++- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/build/Dockerfile b/build/Dockerfile index 1e18a75876..a11a5ab35c 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -31,8 +31,8 @@ RUN GOOS=$GOOS GOARCH=${TARGETARCH} CGO_ENABLED=$CGO_ENABLED GO_LDFLAGS=$GO_LDFL && cp -r build/_output/bin/pitr /usr/local/bin/pitr RUN GOOS=$GOOS GOARCH=${TARGETARCH} CGO_ENABLED=$CGO_ENABLED GO_LDFLAGS=$GO_LDFLAGS \ - go build -o build/_output/bin/mysql-state-monitor \ - cmd/mysql-state-monitor/main.go \ + go build -ldflags "-w -s -X main.GitCommit=$GIT_COMMIT -X main.GitBranch=$GIT_BRANCH -X main.BuildTime=$BUILD_TIME" \ + -o build/_output/bin/mysql-state-monitor cmd/mysql-state-monitor/main.go \ && cp -r build/_output/bin/mysql-state-monitor /usr/local/bin/mysql-state-monitor # Looking for all possible License/Notice files and copying them to the image diff --git a/build/readiness-check.sh b/build/readiness-check.sh index de0464958f..7673872759 100755 --- a/build/readiness-check.sh +++ b/build/readiness-check.sh @@ -16,12 +16,6 @@ MYSQL_PASSWORD="${mysql_pass:-$MONITOR_PASSWORD}" DEFAULTS_EXTRA_FILE=${DEFAULTS_EXTRA_FILE:-/etc/my.cnf} AVAILABLE_WHEN_DONOR=${AVAILABLE_WHEN_DONOR:-1} NODE_IP=$(hostname -I | awk ' { print $1 } ') -MYSQL_STATE=ready -MYSQL_VERSION=$(mysqld -V | awk '{print $3}' | awk -F'.' '{print $1"."$2}') -if [[ ${MYSQL_VERSION} =~ ^(8\.0|8\.4)$ && -f ${MYSQL_STATE_FILE} ]]; then - MYSQL_STATE=$(tr -d '\0' < ${MYSQL_STATE_FILE}) -fi - #Timeout exists for instances where mysqld may be hung TIMEOUT=$((${READINESS_CHECK_TIMEOUT:-10} - 1)) @@ -41,8 +35,7 @@ WSREP_STATUS=($(MYSQL_PWD="${MYSQL_PASSWORD}" $MYSQL_CMDLINE --init-command="SET sed -n -e '2p' -e '5p' | tr '\n' ' ')) set -x -if [[ "${MYSQL_STATE}" == "ready" && ${WSREP_STATUS[1]} == 'Primary' && - (${WSREP_STATUS[0]} -eq 4 || (${WSREP_STATUS[0]} -eq 2 && $AVAILABLE_WHEN_DONOR -eq 1)) ]]; then +if [[ ${WSREP_STATUS[1]} == 'Primary' && (${WSREP_STATUS[0]} -eq 4 || (${WSREP_STATUS[0]} -eq 2 && $AVAILABLE_WHEN_DONOR -eq 1)) ]]; then exit 0 else exit 1 diff --git a/cmd/mysql-state-monitor/main.go b/cmd/mysql-state-monitor/main.go index 58f7c04a5a..33468edb7b 100644 --- a/cmd/mysql-state-monitor/main.go +++ b/cmd/mysql-state-monitor/main.go @@ -8,6 +8,12 @@ import ( "strings" ) +var ( + GitCommit string + GitBranch string + BuildTime string +) + type MySQLState string const ( @@ -56,6 +62,7 @@ func parseDatum(datum string) MySQLState { "Components initialization in progress", "Components initialization successful", "Connection shutdown complete", + "Execution of SQL Commands from Init-file in progress", "Execution of SQL Commands from Init-file successful", "Initialization of dynamic plugins in progress", "Initialization of dynamic plugins successful", @@ -91,7 +98,8 @@ func parseDatum(datum string) MySQLState { } func main() { - log.Println("Starting mysql-state-monitor") + log.Println("Starting mysql-state-monitor...") + log.Printf("GitCommit=%s GitBranch=%s BuildTime=%s", GitCommit, GitBranch, BuildTime) socketPath, ok := os.LookupEnv("NOTIFY_SOCKET") if !ok { From 317c7bb76eb19f408790078b5145b221a4299680 Mon Sep 17 00:00:00 2001 From: Inel Pandzic Date: Thu, 12 Dec 2024 10:14:08 +0100 Subject: [PATCH 32/60] Check for custom user names uniqueness. (#1910) --- pkg/apis/pxc/v1/pxc_types.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pkg/apis/pxc/v1/pxc_types.go b/pkg/apis/pxc/v1/pxc_types.go index fa23e5b903..160e62b394 100644 --- a/pkg/apis/pxc/v1/pxc_types.go +++ b/pkg/apis/pxc/v1/pxc_types.go @@ -417,6 +417,14 @@ func (cr *PerconaXtraDBCluster) Validate() error { return errors.Errorf("ProxySQL or HAProxy should be enabled if SmartUpdate set") } + customUsers := make(map[string]int8, len(c.Users)) + for _, user := range c.Users { + customUsers[user.Name]++ + if customUsers[user.Name] > 1 { + return errors.Errorf("user %s is duplicated", user.Name) + } + } + return nil } From a6245dcb6bc618f91e8f93ad8bfc9905ab18d60d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ege=20G=C3=BCne=C5=9F?= Date: Thu, 12 Dec 2024 17:01:47 +0300 Subject: [PATCH 33/60] K8SPXC-1222: Remove state check for 5.7 (#1915) --- build/pxc-entrypoint.sh | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/build/pxc-entrypoint.sh b/build/pxc-entrypoint.sh index 14910fff9f..9f12e2b97c 100755 --- a/build/pxc-entrypoint.sh +++ b/build/pxc-entrypoint.sh @@ -522,19 +522,11 @@ if [ "$1" = 'mysqld' -a -z "$wantHelp" ]; then fi set -x - if [[ "$MYSQL_VERSION" =~ ^(8\.0|8\.4)$ ]]; then - mysqlState="startup" - while [[ "${mysqlState}" != "ready" ]]; do - mysqlState=$(tr -d '\0' < ${MYSQL_STATE_FILE}) - echo >&2 "MySQL upgrade process in progress..." - sleep 1 - done - fi for i in {120..0}; do if echo 'SELECT 1' | "${mysql[@]}" &>/dev/null; then break fi - + echo >&2 "MySQL upgrade process in progress..." sleep 1 done if [ "$i" = 0 ]; then From 698dd176617cfbc50eca782a08eafdb5ced4348b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 12 Dec 2024 16:14:41 +0200 Subject: [PATCH 34/60] CLOUD-727: Bump k8s.io/client-go from 0.31.3 to 0.32.0 (#1911) * CLOUD-727: Bump k8s.io/client-go from 0.31.3 to 0.32.0 Bumps [k8s.io/client-go](https://github.com/kubernetes/client-go) from 0.31.3 to 0.32.0. - [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md) - [Commits](https://github.com/kubernetes/client-go/compare/v0.31.3...v0.32.0) --- updated-dependencies: - dependency-name: k8s.io/client-go dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * bump go to 1.23 * fix crd * update golang.org/x/crypto * update go ver in Jenkinsfile --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Viacheslav Sarzhan --- .github/linters/go.mod | 2 +- .github/workflows/reviewdog.yml | 6 +- .github/workflows/test.yml | 2 +- Jenkinsfile | 4 +- build/Dockerfile | 2 +- ...pxc.percona.com_perconaxtradbclusters.yaml | 8 +++ deploy/bundle.yaml | 8 +++ deploy/crd.yaml | 8 +++ deploy/cw-bundle.yaml | 8 +++ go.mod | 31 +++++----- go.sum | 59 ++++++++----------- 11 files changed, 80 insertions(+), 58 deletions(-) diff --git a/.github/linters/go.mod b/.github/linters/go.mod index afdab79548..4cbfd91f14 100644 --- a/.github/linters/go.mod +++ b/.github/linters/go.mod @@ -1,3 +1,3 @@ module linters -go 1.13 +go 1.23.4 diff --git a/.github/workflows/reviewdog.yml b/.github/workflows/reviewdog.yml index 6c79291416..b0e4248d43 100644 --- a/.github/workflows/reviewdog.yml +++ b/.github/workflows/reviewdog.yml @@ -8,7 +8,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: - go-version: '1.21' + go-version: '1.23' - name: golangci-lint uses: golangci/golangci-lint-action@v6 with: @@ -34,7 +34,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: - go-version: '1.21' + go-version: '1.23' - run: go install mvdan.cc/sh/v3/cmd/shfmt@latest - run: $(go env GOPATH)/bin/shfmt -f . | grep -v 'vendor' | xargs $(go env GOPATH)/bin/shfmt -bn -ci -s -w - name: suggester / shfmt @@ -85,7 +85,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: - go-version: '1.21' + go-version: '1.23' - name: check on release branch if: ${{ contains(github.head_ref, 'release-') || contains(github.base_ref, 'release-') }} run: | diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 30bde4e992..c613450266 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -7,7 +7,7 @@ jobs: steps: - uses: actions/setup-go@v5 with: - go-version: '1.21' + go-version: '1.23' - uses: actions/checkout@v4 - name: go test run: make test diff --git a/Jenkinsfile b/Jenkinsfile index 0ad3383f28..be0e7fbe8c 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -361,7 +361,7 @@ EOF --rm \ -v $WORKSPACE/src/github.com/percona/percona-xtradb-cluster-operator:/go/src/github.com/percona/percona-xtradb-cluster-operator \ -w /go/src/github.com/percona/percona-xtradb-cluster-operator \ - golang:1.22 sh -c ' + golang:1.23 sh -c ' go install -mod=readonly github.com/google/go-licenses@latest; /go/bin/go-licenses csv github.com/percona/percona-xtradb-cluster-operator/cmd/manager \ | cut -d , -f 3 \ @@ -390,7 +390,7 @@ EOF -w /go/src/github.com/percona/percona-xtradb-cluster-operator \ -e GO111MODULE=on \ -e GOFLAGS='-buildvcs=false' \ - golang:1.22 sh -c 'go build -v -o percona-xtradb-cluster-operator github.com/percona/percona-xtradb-cluster-operator/cmd/manager' + golang:1.23 sh -c 'go build -v -o percona-xtradb-cluster-operator github.com/percona/percona-xtradb-cluster-operator/cmd/manager' " ''' diff --git a/build/Dockerfile b/build/Dockerfile index a11a5ab35c..e2839fd136 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -1,4 +1,4 @@ -FROM --platform=${BUILDPLATFORM} golang:1.22 AS go_builder +FROM --platform=${BUILDPLATFORM} golang:1.23 AS go_builder WORKDIR /go/src/github.com/percona/percona-xtradb-cluster-operator COPY go.mod go.sum ./ diff --git a/config/crd/bases/pxc.percona.com_perconaxtradbclusters.yaml b/config/crd/bases/pxc.percona.com_perconaxtradbclusters.yaml index 532d436b58..27296db3a6 100644 --- a/config/crd/bases/pxc.percona.com_perconaxtradbclusters.yaml +++ b/config/crd/bases/pxc.percona.com_perconaxtradbclusters.yaml @@ -788,6 +788,8 @@ spec: runAsUser: format: int64 type: integer + seLinuxChangePolicy: + type: string seLinuxOptions: properties: level: @@ -1949,6 +1951,8 @@ spec: runAsUser: format: int64 type: integer + seLinuxChangePolicy: + type: string seLinuxOptions: properties: level: @@ -5213,6 +5217,8 @@ spec: runAsUser: format: int64 type: integer + seLinuxChangePolicy: + type: string seLinuxOptions: properties: level: @@ -8101,6 +8107,8 @@ spec: runAsUser: format: int64 type: integer + seLinuxChangePolicy: + type: string seLinuxOptions: properties: level: diff --git a/deploy/bundle.yaml b/deploy/bundle.yaml index 4a84c33ad2..433a815c78 100644 --- a/deploy/bundle.yaml +++ b/deploy/bundle.yaml @@ -1693,6 +1693,8 @@ spec: runAsUser: format: int64 type: integer + seLinuxChangePolicy: + type: string seLinuxOptions: properties: level: @@ -2854,6 +2856,8 @@ spec: runAsUser: format: int64 type: integer + seLinuxChangePolicy: + type: string seLinuxOptions: properties: level: @@ -6118,6 +6122,8 @@ spec: runAsUser: format: int64 type: integer + seLinuxChangePolicy: + type: string seLinuxOptions: properties: level: @@ -9006,6 +9012,8 @@ spec: runAsUser: format: int64 type: integer + seLinuxChangePolicy: + type: string seLinuxOptions: properties: level: diff --git a/deploy/crd.yaml b/deploy/crd.yaml index 4b379a3abf..98e6861e79 100644 --- a/deploy/crd.yaml +++ b/deploy/crd.yaml @@ -1693,6 +1693,8 @@ spec: runAsUser: format: int64 type: integer + seLinuxChangePolicy: + type: string seLinuxOptions: properties: level: @@ -2854,6 +2856,8 @@ spec: runAsUser: format: int64 type: integer + seLinuxChangePolicy: + type: string seLinuxOptions: properties: level: @@ -6118,6 +6122,8 @@ spec: runAsUser: format: int64 type: integer + seLinuxChangePolicy: + type: string seLinuxOptions: properties: level: @@ -9006,6 +9012,8 @@ spec: runAsUser: format: int64 type: integer + seLinuxChangePolicy: + type: string seLinuxOptions: properties: level: diff --git a/deploy/cw-bundle.yaml b/deploy/cw-bundle.yaml index 787991ffd4..588c3c63c2 100644 --- a/deploy/cw-bundle.yaml +++ b/deploy/cw-bundle.yaml @@ -1693,6 +1693,8 @@ spec: runAsUser: format: int64 type: integer + seLinuxChangePolicy: + type: string seLinuxOptions: properties: level: @@ -2854,6 +2856,8 @@ spec: runAsUser: format: int64 type: integer + seLinuxChangePolicy: + type: string seLinuxOptions: properties: level: @@ -6118,6 +6122,8 @@ spec: runAsUser: format: int64 type: integer + seLinuxChangePolicy: + type: string seLinuxOptions: properties: level: @@ -9006,6 +9012,8 @@ spec: runAsUser: format: int64 type: integer + seLinuxChangePolicy: + type: string seLinuxOptions: properties: level: diff --git a/go.mod b/go.mod index d5932664e1..cef171514c 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/percona/percona-xtradb-cluster-operator -go 1.22.6 +go 1.23.4 require ( github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.5.0 @@ -26,9 +26,9 @@ require ( github.com/robfig/cron/v3 v3.0.1 go.uber.org/zap v1.27.0 golang.org/x/sync v0.10.0 - k8s.io/api v0.31.3 - k8s.io/apimachinery v0.31.3 - k8s.io/client-go v0.31.3 + k8s.io/api v0.32.0 + k8s.io/apimachinery v0.32.0 + k8s.io/client-go v0.32.0 k8s.io/klog/v2 v2.130.1 sigs.k8s.io/controller-runtime v0.19.3 ) @@ -54,14 +54,12 @@ require ( github.com/go-task/slim-sprig/v3 v3.0.0 // indirect github.com/goccy/go-json v0.10.3 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.4 // indirect github.com/google/gnostic-models v0.6.8 // indirect github.com/google/gofuzz v1.2.0 // indirect github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db // indirect github.com/google/uuid v1.6.0 // indirect github.com/gorilla/websocket v1.5.1 // indirect - github.com/imdario/mergo v0.3.16 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/klauspost/compress v1.17.11 // indirect @@ -69,7 +67,7 @@ require ( github.com/mailru/easyjson v0.7.7 // indirect github.com/minio/md5-simd v1.1.2 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect - github.com/moby/spdystream v0.4.0 // indirect + github.com/moby/spdystream v0.5.0 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect @@ -88,27 +86,26 @@ require ( go.opentelemetry.io/otel/metric v1.29.0 // indirect go.opentelemetry.io/otel/trace v1.29.0 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.28.0 // indirect + golang.org/x/crypto v0.31.0 // indirect golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect golang.org/x/net v0.30.0 // indirect golang.org/x/oauth2 v0.23.0 // indirect - golang.org/x/sys v0.26.0 // indirect - golang.org/x/term v0.25.0 // indirect - golang.org/x/text v0.19.0 // indirect - golang.org/x/time v0.6.0 // indirect + golang.org/x/sys v0.28.0 // indirect + golang.org/x/term v0.27.0 // indirect + golang.org/x/text v0.21.0 // indirect + golang.org/x/time v0.7.0 // indirect golang.org/x/tools v0.26.0 // indirect gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect google.golang.org/protobuf v1.35.1 // indirect gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect - gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect k8s.io/apiextensions-apiserver v0.31.1 // indirect - k8s.io/kube-openapi v0.0.0-20240903163716-9e1beecbcb38 // indirect - k8s.io/utils v0.0.0-20240921022957-49e7df575cb6 // indirect + k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f // indirect + k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 // indirect sigs.k8s.io/gateway-api v1.1.0 // indirect - sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect - sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect + sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 // indirect + sigs.k8s.io/structured-merge-diff/v4 v4.4.2 // indirect sigs.k8s.io/yaml v1.4.0 // indirect ) diff --git a/go.sum b/go.sum index 3dcc1ac7e7..a035e9f368 100644 --- a/go.sum +++ b/go.sum @@ -81,8 +81,6 @@ github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk= github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= -github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= -github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I= @@ -101,8 +99,6 @@ github.com/gorilla/websocket v1.5.1 h1:gmztn0JnHVt9JZquRuzLw3g4wouNVzKL15iLr/zn/ github.com/gorilla/websocket v1.5.1/go.mod h1:x3kM2JMyaluk02fnUJpQuwD2dCS5NDG2ZHL0uE0tcaY= github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY= github.com/hashicorp/go-version v1.7.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= -github.com/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4= -github.com/imdario/mergo v0.3.16/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= @@ -128,8 +124,8 @@ github.com/minio/minio-go/v7 v7.0.81 h1:SzhMN0TQ6T/xSBu6Nvw3M5M8voM+Ht8RH3hE8S7z github.com/minio/minio-go/v7 v7.0.81/go.mod h1:84gmIilaX4zcvAWWzJ5Z1WI5axN+hAbM5w25xf8xvC0= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/moby/spdystream v0.4.0 h1:Vy79D6mHeJJjiPdFEL2yku1kl0chZpJfZcPpb16BRl8= -github.com/moby/spdystream v0.4.0/go.mod h1:xBAYlnt/ay+11ShkdFKNAG7LsyK/tmNBVvVOwrfMgdI= +github.com/moby/spdystream v0.5.0 h1:7r0J1Si3QO/kjRitvSLVVFUjxMEb/YLj6S9FF62JBCU= +github.com/moby/spdystream v0.5.0/go.mod h1:xBAYlnt/ay+11ShkdFKNAG7LsyK/tmNBVvVOwrfMgdI= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -197,8 +193,8 @@ go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.28.0 h1:GBDwsMXVQi34v5CCYUm2jkJvu4cbtru2U4TN2PSyQnw= -golang.org/x/crypto v0.28.0/go.mod h1:rmgy+3RHxRZMyY0jjAJShp2zgEdOqj2AO7U0pYmeQ7U= +golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= +golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 h1:2dVuKD2vS7b0QIHQbpyTISPd0LeHDbnYEryqj5Q1ug8= golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= @@ -220,16 +216,16 @@ golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.26.0 h1:KHjCJyddX0LoSTb3J+vWpupP9p0oznkqVk/IfjymZbo= -golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/term v0.25.0 h1:WtHI/ltw4NvSUig5KARz9h521QvRC8RmF/cuYqifU24= -golang.org/x/term v0.25.0/go.mod h1:RPyXicDX+6vLxogjjRxjgD2TKtmAO6NZBsBRfrOLu7M= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.27.0 h1:WP60Sv1nlK1T6SupCHbXzSaN0b9wUmsPoRS9b61A23Q= +golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.19.0 h1:kTxAhCbGbxhK0IwgSKiMO5awPoDQ0RpfiVYBfK860YM= -golang.org/x/text v0.19.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= -golang.org/x/time v0.6.0 h1:eTDhh4ZXt5Qf0augr54TN6suAUudPcawVZeIAPU7D4U= -golang.org/x/time v0.6.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= +golang.org/x/time v0.7.0 h1:ntUhktv3OPE6TgYxXWv9vKvUSJyIFJlyohwbkEwPrKQ= +golang.org/x/time v0.7.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= @@ -251,32 +247,29 @@ gopkg.in/evanphx/json-patch.v4 v4.12.0 h1:n6jtcsulIzXPJaxegRbvFNNrZDjbij7ny3gmSP gopkg.in/evanphx/json-patch.v4 v4.12.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= -gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -k8s.io/api v0.31.3 h1:umzm5o8lFbdN/hIXbrK9oRpOproJO62CV1zqxXrLgk8= -k8s.io/api v0.31.3/go.mod h1:UJrkIp9pnMOI9K2nlL6vwpxRzzEX5sWgn8kGQe92kCE= +k8s.io/api v0.32.0 h1:OL9JpbvAU5ny9ga2fb24X8H6xQlVp+aJMFlgtQjR9CE= +k8s.io/api v0.32.0/go.mod h1:4LEwHZEf6Q/cG96F3dqR965sYOfmPM7rq81BLgsE0p0= k8s.io/apiextensions-apiserver v0.31.1 h1:L+hwULvXx+nvTYX/MKM3kKMZyei+UiSXQWciX/N6E40= k8s.io/apiextensions-apiserver v0.31.1/go.mod h1:tWMPR3sgW+jsl2xm9v7lAyRF1rYEK71i9G5dRtkknoQ= -k8s.io/apimachinery v0.31.3 h1:6l0WhcYgasZ/wk9ktLq5vLaoXJJr5ts6lkaQzgeYPq4= -k8s.io/apimachinery v0.31.3/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= -k8s.io/client-go v0.31.3 h1:CAlZuM+PH2cm+86LOBemaJI/lQ5linJ6UFxKX/SoG+4= -k8s.io/client-go v0.31.3/go.mod h1:2CgjPUTpv3fE5dNygAr2NcM8nhHzXvxB8KL5gYc3kJs= +k8s.io/apimachinery v0.32.0 h1:cFSE7N3rmEEtv4ei5X6DaJPHHX0C+upp+v5lVPiEwpg= +k8s.io/apimachinery v0.32.0/go.mod h1:GpHVgxoKlTxClKcteaeuF1Ul/lDVb74KpZcxcmLDElE= +k8s.io/client-go v0.32.0 h1:DimtMcnN/JIKZcrSrstiwvvZvLjG0aSxy8PxN8IChp8= +k8s.io/client-go v0.32.0/go.mod h1:boDWvdM1Drk4NJj/VddSLnx59X3OPgwrOo0vGbtq9+8= k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= -k8s.io/kube-openapi v0.0.0-20240903163716-9e1beecbcb38 h1:1dWzkmJrrprYvjGwh9kEUxmcUV/CtNU8QM7h1FLWQOo= -k8s.io/kube-openapi v0.0.0-20240903163716-9e1beecbcb38/go.mod h1:coRQXBK9NxO98XUv3ZD6AK3xzHCxV6+b7lrquKwaKzA= -k8s.io/utils v0.0.0-20240921022957-49e7df575cb6 h1:MDF6h2H/h4tbzmtIKTuctcwZmY0tY9mD9fNT47QO6HI= -k8s.io/utils v0.0.0-20240921022957-49e7df575cb6/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f h1:GA7//TjRY9yWGy1poLzYYJJ4JRdzg3+O6e8I+e+8T5Y= +k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f/go.mod h1:R/HEjbvWI0qdfb8viZUeVZm0X6IZnxAydC7YU42CMw4= +k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 h1:M3sRQVHv7vB20Xc2ybTt7ODCeFj6JSWYFzOFnYeS6Ro= +k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= sigs.k8s.io/controller-runtime v0.19.3 h1:XO2GvC9OPftRst6xWCpTgBZO04S2cbp0Qqkj8bX1sPw= sigs.k8s.io/controller-runtime v0.19.3/go.mod h1:j4j87DqtsThvwTv5/Tc5NFRyyF/RF0ip4+62tbTSIUM= sigs.k8s.io/gateway-api v1.1.0 h1:DsLDXCi6jR+Xz8/xd0Z1PYl2Pn0TyaFMOPPZIj4inDM= sigs.k8s.io/gateway-api v1.1.0/go.mod h1:ZH4lHrL2sDi0FHZ9jjneb8kKnGzFWyrTya35sWUTrRs= -sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= -sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= -sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4= -sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08= +sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 h1:/Rv+M11QRah1itp8VhT6HoVx1Ray9eB4DBr+K+/sCJ8= +sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3/go.mod h1:18nIHnGi6636UCz6m8i4DhaJ65T6EruyzmoQqI2BVDo= +sigs.k8s.io/structured-merge-diff/v4 v4.4.2 h1:MdmvkGuXi/8io6ixD5wud3vOLwc1rj0aNqRlpuvjmwA= +sigs.k8s.io/structured-merge-diff/v4 v4.4.2/go.mod h1:N8f93tFZh9U6vpxwRArLiikrE5/2tiu1w1AGfACIGE4= sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= From a223c0473591558ea91c3440d7f7867841dbb9d9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 12 Dec 2024 23:15:30 +0200 Subject: [PATCH 35/60] CLOUD-727: Bump github.com/onsi/gomega from 1.36.0 to 1.36.1 (#1913) Bumps [github.com/onsi/gomega](https://github.com/onsi/gomega) from 1.36.0 to 1.36.1. - [Release notes](https://github.com/onsi/gomega/releases) - [Changelog](https://github.com/onsi/gomega/blob/master/CHANGELOG.md) - [Commits](https://github.com/onsi/gomega/compare/v1.36.0...v1.36.1) --- updated-dependencies: - dependency-name: github.com/onsi/gomega dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index cef171514c..0c122941bf 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ require ( github.com/hashicorp/go-version v1.7.0 github.com/minio/minio-go/v7 v7.0.81 github.com/onsi/ginkgo/v2 v2.22.0 - github.com/onsi/gomega v1.36.0 + github.com/onsi/gomega v1.36.1 github.com/pkg/errors v0.9.1 github.com/robfig/cron/v3 v3.0.1 go.uber.org/zap v1.27.0 diff --git a/go.sum b/go.sum index a035e9f368..669bf1676b 100644 --- a/go.sum +++ b/go.sum @@ -139,8 +139,8 @@ github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/onsi/ginkgo/v2 v2.22.0 h1:Yed107/8DjTr0lKCNt7Dn8yQ6ybuDRQoMGrNFKzMfHg= github.com/onsi/ginkgo/v2 v2.22.0/go.mod h1:7Du3c42kxCUegi0IImZ1wUQzMBVecgIHjR1C+NkhLQo= -github.com/onsi/gomega v1.36.0 h1:Pb12RlruUtj4XUuPUqeEWc6j5DkVVVA49Uf6YLfC95Y= -github.com/onsi/gomega v1.36.0/go.mod h1:PvZbdDc8J6XJEpDK4HCuRBm8a6Fzp9/DmhC9C7yFlog= +github.com/onsi/gomega v1.36.1 h1:bJDPBO7ibjxcbHMgSCoo4Yj18UWbKDlLwX1x9sybDcw= +github.com/onsi/gomega v1.36.1/go.mod h1:PvZbdDc8J6XJEpDK4HCuRBm8a6Fzp9/DmhC9C7yFlog= github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ= From 280f836bac0e4771d8c6be2d89ab39b8ee63aa33 Mon Sep 17 00:00:00 2001 From: Eleonora Zinchenko Date: Fri, 13 Dec 2024 17:53:31 +0200 Subject: [PATCH 36/60] K8SPXC-1446: Update images and versions for 1.16.0 release --- deploy/bundle.yaml | 2 +- deploy/cr-minimal.yaml | 6 +++--- deploy/cr.yaml | 14 +++++++------- deploy/cw-bundle.yaml | 2 +- deploy/cw-operator.yaml | 2 +- deploy/operator.yaml | 2 +- e2e-tests/functions | 2 +- e2e-tests/release_versions | 29 ++++++++++++++++------------- 8 files changed, 31 insertions(+), 28 deletions(-) diff --git a/deploy/bundle.yaml b/deploy/bundle.yaml index 433a815c78..b49a9b175c 100644 --- a/deploy/bundle.yaml +++ b/deploy/bundle.yaml @@ -11522,7 +11522,7 @@ spec: value: percona-xtradb-cluster-operator - name: DISABLE_TELEMETRY value: "false" - image: perconalab/percona-xtradb-cluster-operator:main + image: percona/percona-xtradb-cluster-operator:1.16.0 imagePullPolicy: Always livenessProbe: failureThreshold: 3 diff --git a/deploy/cr-minimal.yaml b/deploy/cr-minimal.yaml index 26fccfbac3..e6ee1e879c 100644 --- a/deploy/cr-minimal.yaml +++ b/deploy/cr-minimal.yaml @@ -16,7 +16,7 @@ spec: enabled: false pxc: size: 1 - image: perconalab/percona-xtradb-cluster-operator:main-pxc8.0 + image: percona/percona-xtradb-cluster:8.0.39-30.1 volumeSpec: persistentVolumeClaim: resources: @@ -25,7 +25,7 @@ spec: haproxy: enabled: true size: 1 - image: perconalab/percona-xtradb-cluster-operator:main-haproxy + image: percona/haproxy:2.8.11 logcollector: enabled: true - image: perconalab/percona-xtradb-cluster-operator:main-logcollector + image: percona/percona-xtradb-cluster-operator:1.16.0-logcollector-fluentbit3.2.2 diff --git a/deploy/cr.yaml b/deploy/cr.yaml index 44ba9cd637..2065312055 100644 --- a/deploy/cr.yaml +++ b/deploy/cr.yaml @@ -22,7 +22,7 @@ spec: # sslInternalSecretName: cluster1-ssl-internal # logCollectorSecretName: cluster1-log-collector-secrets # initContainer: -# image: perconalab/percona-xtradb-cluster-operator:main +# image: percona/percona-xtradb-cluster-operator:1.16.0 # containerSecurityContext: # privileged: false # runAsUser: 1001 @@ -58,7 +58,7 @@ spec: schedule: "0 4 * * *" pxc: size: 3 - image: perconalab/percona-xtradb-cluster-operator:main-pxc8.0 + image: percona/percona-xtradb-cluster:8.0.39-30.1 autoRecovery: true # expose: # enabled: true @@ -206,7 +206,7 @@ spec: haproxy: enabled: true size: 3 - image: perconalab/percona-xtradb-cluster-operator:main-haproxy + image: percona/haproxy:2.8.11 # imagePullPolicy: Always # schedulerName: mycustom-scheduler # readinessDelaySec: 15 @@ -381,7 +381,7 @@ spec: proxysql: enabled: false size: 3 - image: perconalab/percona-xtradb-cluster-operator:main-proxysql + image: percona/proxysql2:2.7.1 # imagePullPolicy: Always # configuration: | # datadir="/var/lib/proxysql" @@ -543,7 +543,7 @@ spec: # - 10.0.0.0/8 logcollector: enabled: true - image: perconalab/percona-xtradb-cluster-operator:main-logcollector + image: percona/percona-xtradb-cluster-operator:1.16.0-logcollector-fluentbit3.2.2 # configuration: | # [OUTPUT] # Name es @@ -576,7 +576,7 @@ spec: pmm: enabled: false - image: perconalab/pmm-client:dev-latest + image: percona/pmm-client:2.43.2 serverHost: monitoring-service # serverUser: admin # pxcParams: "--disable-tablestats-limit=2000" @@ -589,7 +589,7 @@ spec: cpu: 300m backup: # allowParallel: true - image: perconalab/percona-xtradb-cluster-operator:main-pxc8.0-backup + image: percona/percona-xtradb-cluster-operator:1.16.0-pxc8.0-backup-pxb8.0.35 # backoffLimit: 6 # activeDeadlineSeconds: 3600 # serviceAccountName: percona-xtradb-cluster-operator diff --git a/deploy/cw-bundle.yaml b/deploy/cw-bundle.yaml index 588c3c63c2..ff6ce4ba4c 100644 --- a/deploy/cw-bundle.yaml +++ b/deploy/cw-bundle.yaml @@ -11532,7 +11532,7 @@ spec: value: percona-xtradb-cluster-operator - name: DISABLE_TELEMETRY value: "false" - image: perconalab/percona-xtradb-cluster-operator:main + image: percona/percona-xtradb-cluster-operator:1.16.0 imagePullPolicy: Always resources: limits: diff --git a/deploy/cw-operator.yaml b/deploy/cw-operator.yaml index 4e498668cf..c9dd05415c 100644 --- a/deploy/cw-operator.yaml +++ b/deploy/cw-operator.yaml @@ -42,7 +42,7 @@ spec: value: percona-xtradb-cluster-operator - name: DISABLE_TELEMETRY value: "false" - image: perconalab/percona-xtradb-cluster-operator:main + image: percona/percona-xtradb-cluster-operator:1.16.0 imagePullPolicy: Always resources: limits: diff --git a/deploy/operator.yaml b/deploy/operator.yaml index de903e0393..67bd5c469d 100644 --- a/deploy/operator.yaml +++ b/deploy/operator.yaml @@ -45,7 +45,7 @@ spec: value: percona-xtradb-cluster-operator - name: DISABLE_TELEMETRY value: "false" - image: perconalab/percona-xtradb-cluster-operator:main + image: percona/percona-xtradb-cluster-operator:1.16.0 imagePullPolicy: Always livenessProbe: failureThreshold: 3 diff --git a/e2e-tests/functions b/e2e-tests/functions index eed6e44d77..357d7c5100 100755 --- a/e2e-tests/functions +++ b/e2e-tests/functions @@ -16,7 +16,7 @@ SKIP_REMOTE_BACKUPS=${SKIP_REMOTE_BACKUPS:-1} PMM_SERVER_VER=${PMM_SERVER_VER:-"9.9.9"} IMAGE_PMM_CLIENT=${IMAGE_PMM_CLIENT:-"perconalab/pmm-client:dev-latest"} IMAGE_PMM_SERVER=${IMAGE_PMM_SERVER:-"perconalab/pmm-server:dev-latest"} -CERT_MANAGER_VER="1.15.2" +CERT_MANAGER_VER="1.16.2" tmp_dir=$(mktemp -d) sed=$(which gsed || which sed) date=$(which gdate || which date) diff --git a/e2e-tests/release_versions b/e2e-tests/release_versions index ef6f856420..5013c0276e 100644 --- a/e2e-tests/release_versions +++ b/e2e-tests/release_versions @@ -1,17 +1,20 @@ # Images versions -IMAGE_OPERATOR=perconalab/percona-xtradb-cluster-operator:main +IMAGE_OPERATOR=percona/percona-xtradb-cluster-operator:1.16.0 -IMAGE_PXC80=perconalab/percona-xtradb-cluster-operator:main-pxc8.0 -IMAGE_BACKUP80=perconalab/percona-xtradb-cluster-operator:main-pxc8.0-backup +IMAGE_PXC84=percona/percona-xtradb-cluster:8.4.2-2.1 +IMAGE_BACKUP84=percona/percona-xtradb-cluster-operator:1.16.0-pxc8.4-backup-pxb8.4.0 -IMAGE_PXC57=perconalab/percona-xtradb-cluster-operator:main-pxc5.7 -IMAGE_BACKUP57=perconalab/percona-xtradb-cluster-operator:main-pxc5.7-backup +IMAGE_PXC80=percona/percona-xtradb-cluster:8.0.39-30.1 +IMAGE_BACKUP80=percona/percona-xtradb-cluster-operator:1.16.0-pxc8.0-backup-pxb8.0.35 -IMAGE_PROXY=perconalab/percona-xtradb-cluster-operator:main-proxysql -IMAGE_HAPROXY=perconalab/percona-xtradb-cluster-operator:main-haproxy -IMAGE_LOGCOLLECTOR=perconalab/percona-xtradb-cluster-operator:main-logcollector -IMAGE_PMM_CLIENT=perconalab/pmm-client:dev-latest -IMAGE_PMM_SERVER=perconalab/pmm-server:dev-latest +IMAGE_PXC57=percona/percona-xtradb-cluster:5.7.44-31.65 +IMAGE_BACKUP57=percona/percona-xtradb-cluster-operator:1.16.0-pxc2.4-backup-pxb2.4.29 + +IMAGE_PROXY=percona/proxysql2:2.7.1 +IMAGE_HAPROXY=percona/haproxy:2.8.11 +IMAGE_LOGCOLLECTOR=percona/percona-xtradb-cluster-operator:1.16.0-logcollector-fluentbit3.2.2 +IMAGE_PMM_CLIENT=percona/pmm-client:2.43.2 +IMAGE_PMM_SERVER=percona/pmm-server:2.43.2 # Supported k8s versions GKE_MIN=1.28 @@ -20,6 +23,6 @@ EKS_MIN=1.28 EKS_MAX=1.31 AKS_MIN=1.28 AKS_MAX=1.31 -OPENSHIFT_MIN=4.13.52 -OPENSHIFT_MAX=4.17.3 -MINIKUBE_REL=1.31.0 \ No newline at end of file +OPENSHIFT_MIN=4.14.42 +OPENSHIFT_MAX=4.17.8 +MINIKUBE_REL=1.34.0 \ No newline at end of file From 4969167bb288f99a68601fc7876eb65d0e1c3d9e Mon Sep 17 00:00:00 2001 From: Eleonora Zinchenko Date: Sun, 15 Dec 2024 10:11:31 +0200 Subject: [PATCH 37/60] K8SPXC-1446: use PMM 2.44.0 --- deploy/cr.yaml | 2 +- e2e-tests/release_versions | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/deploy/cr.yaml b/deploy/cr.yaml index 2065312055..42fc8d06c4 100644 --- a/deploy/cr.yaml +++ b/deploy/cr.yaml @@ -576,7 +576,7 @@ spec: pmm: enabled: false - image: percona/pmm-client:2.43.2 + image: percona/pmm-client:2.44.0 serverHost: monitoring-service # serverUser: admin # pxcParams: "--disable-tablestats-limit=2000" diff --git a/e2e-tests/release_versions b/e2e-tests/release_versions index 5013c0276e..7a16e18b82 100644 --- a/e2e-tests/release_versions +++ b/e2e-tests/release_versions @@ -13,8 +13,8 @@ IMAGE_BACKUP57=percona/percona-xtradb-cluster-operator:1.16.0-pxc2.4-backup-pxb2 IMAGE_PROXY=percona/proxysql2:2.7.1 IMAGE_HAPROXY=percona/haproxy:2.8.11 IMAGE_LOGCOLLECTOR=percona/percona-xtradb-cluster-operator:1.16.0-logcollector-fluentbit3.2.2 -IMAGE_PMM_CLIENT=percona/pmm-client:2.43.2 -IMAGE_PMM_SERVER=percona/pmm-server:2.43.2 +IMAGE_PMM_CLIENT=percona/pmm-client:2.44.0 +IMAGE_PMM_SERVER=percona/pmm-server:2.44.0 # Supported k8s versions GKE_MIN=1.28 From 7fcc82d07d8da96b11090d33070a4b52e023a01e Mon Sep 17 00:00:00 2001 From: Eleonora Zinchenko Date: Sun, 15 Dec 2024 14:44:43 +0200 Subject: [PATCH 38/60] K8SPXC-1446: fix pxc2.4 to pxc5.7 in backup image --- e2e-tests/release_versions | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/e2e-tests/release_versions b/e2e-tests/release_versions index 7a16e18b82..c69b81fad1 100644 --- a/e2e-tests/release_versions +++ b/e2e-tests/release_versions @@ -8,7 +8,7 @@ IMAGE_PXC80=percona/percona-xtradb-cluster:8.0.39-30.1 IMAGE_BACKUP80=percona/percona-xtradb-cluster-operator:1.16.0-pxc8.0-backup-pxb8.0.35 IMAGE_PXC57=percona/percona-xtradb-cluster:5.7.44-31.65 -IMAGE_BACKUP57=percona/percona-xtradb-cluster-operator:1.16.0-pxc2.4-backup-pxb2.4.29 +IMAGE_BACKUP57=percona/percona-xtradb-cluster-operator:1.16.0-pxc5.7-backup-pxb2.4.29 IMAGE_PROXY=percona/proxysql2:2.7.1 IMAGE_HAPROXY=percona/haproxy:2.8.11 From 704ac8aea1082d8d382d204d1b49fcc736a50fb9 Mon Sep 17 00:00:00 2001 From: Julio Pasinatto Date: Mon, 16 Dec 2024 13:37:26 -0300 Subject: [PATCH 39/60] Fix minikube version in release versions file --- e2e-tests/release_versions | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/e2e-tests/release_versions b/e2e-tests/release_versions index c69b81fad1..61af93eb5f 100644 --- a/e2e-tests/release_versions +++ b/e2e-tests/release_versions @@ -25,4 +25,4 @@ AKS_MIN=1.28 AKS_MAX=1.31 OPENSHIFT_MIN=4.14.42 OPENSHIFT_MAX=4.17.8 -MINIKUBE_REL=1.34.0 \ No newline at end of file +MINIKUBE_REL=1.31.0 \ No newline at end of file From a98e66df6e878c098b360bc4ab5127547aab076f Mon Sep 17 00:00:00 2001 From: Pavel Tankov <4014969+ptankov@users.noreply.github.com> Date: Tue, 17 Dec 2024 18:25:11 +0200 Subject: [PATCH 40/60] Update user permissions and add SQL comparison files for MySQL 5.7 --- .../custom-users/compare/user-five-57.sql | 4 ++++ .../custom-users/compare/user-four-2-57.sql | 4 ++++ .../custom-users/compare/user-four-3-57.sql | 4 ++++ .../custom-users/compare/user-four-4-57.sql | 4 ++++ .../custom-users/compare/user-four-57.sql | 3 +++ .../custom-users/compare/user-one-2-57.sql | 5 ++++ .../custom-users/compare/user-one-57.sql | 3 +++ .../custom-users/compare/user-three-57.sql | 1 + .../custom-users/compare/user-two-57.sql | 1 + e2e-tests/custom-users/run | 8 +++---- e2e-tests/functions | 24 +++++++++++-------- e2e-tests/init-deploy/run | 2 +- 12 files changed, 48 insertions(+), 15 deletions(-) create mode 100644 e2e-tests/custom-users/compare/user-five-57.sql create mode 100644 e2e-tests/custom-users/compare/user-four-2-57.sql create mode 100644 e2e-tests/custom-users/compare/user-four-3-57.sql create mode 100644 e2e-tests/custom-users/compare/user-four-4-57.sql create mode 100644 e2e-tests/custom-users/compare/user-four-57.sql create mode 100644 e2e-tests/custom-users/compare/user-one-2-57.sql create mode 100644 e2e-tests/custom-users/compare/user-one-57.sql create mode 100644 e2e-tests/custom-users/compare/user-three-57.sql create mode 100644 e2e-tests/custom-users/compare/user-two-57.sql diff --git a/e2e-tests/custom-users/compare/user-five-57.sql b/e2e-tests/custom-users/compare/user-five-57.sql new file mode 100644 index 0000000000..d91c85576e --- /dev/null +++ b/e2e-tests/custom-users/compare/user-five-57.sql @@ -0,0 +1,4 @@ +GRANT USAGE ON *.* TO 'user-five'@'%' +GRANT SELECT, UPDATE, DELETE ON `db1`.* TO 'user-five'@'%' +GRANT SELECT, UPDATE, DELETE ON `db2`.* TO 'user-five'@'%' +GRANT SELECT, UPDATE, DELETE ON `db3`.* TO 'user-five'@'%' diff --git a/e2e-tests/custom-users/compare/user-four-2-57.sql b/e2e-tests/custom-users/compare/user-four-2-57.sql new file mode 100644 index 0000000000..11be89d861 --- /dev/null +++ b/e2e-tests/custom-users/compare/user-four-2-57.sql @@ -0,0 +1,4 @@ +GRANT USAGE ON *.* TO 'user-four'@'%' +GRANT SELECT, UPDATE ON `db1`.* TO 'user-four'@'%' +GRANT SELECT, UPDATE ON `db2`.* TO 'user-four'@'%' +GRANT SELECT, UPDATE ON `db3`.* TO 'user-four'@'%' diff --git a/e2e-tests/custom-users/compare/user-four-3-57.sql b/e2e-tests/custom-users/compare/user-four-3-57.sql new file mode 100644 index 0000000000..268149a72a --- /dev/null +++ b/e2e-tests/custom-users/compare/user-four-3-57.sql @@ -0,0 +1,4 @@ +GRANT USAGE ON *.* TO 'user-four'@'%' +GRANT SELECT, UPDATE, DELETE ON `db1`.* TO 'user-four'@'%' +GRANT SELECT, UPDATE, DELETE ON `db2`.* TO 'user-four'@'%' +GRANT SELECT, UPDATE, DELETE ON `db3`.* TO 'user-four'@'%' diff --git a/e2e-tests/custom-users/compare/user-four-4-57.sql b/e2e-tests/custom-users/compare/user-four-4-57.sql new file mode 100644 index 0000000000..fd56ff360f --- /dev/null +++ b/e2e-tests/custom-users/compare/user-four-4-57.sql @@ -0,0 +1,4 @@ +GRANT USAGE ON *.* TO 'user-four'@'%' +GRANT SELECT, INSERT, UPDATE, DELETE ON `db1`.* TO 'user-four'@'%' +GRANT SELECT, UPDATE, DELETE ON `db2`.* TO 'user-four'@'%' +GRANT SELECT, UPDATE, DELETE ON `db3`.* TO 'user-four'@'%' diff --git a/e2e-tests/custom-users/compare/user-four-57.sql b/e2e-tests/custom-users/compare/user-four-57.sql new file mode 100644 index 0000000000..0f267fd683 --- /dev/null +++ b/e2e-tests/custom-users/compare/user-four-57.sql @@ -0,0 +1,3 @@ +GRANT USAGE ON *.* TO 'user-four'@'%' +GRANT SELECT, UPDATE ON `db1`.* TO 'user-four'@'%' +GRANT SELECT, UPDATE ON `db2`.* TO 'user-four'@'%' diff --git a/e2e-tests/custom-users/compare/user-one-2-57.sql b/e2e-tests/custom-users/compare/user-one-2-57.sql new file mode 100644 index 0000000000..fbffaa448c --- /dev/null +++ b/e2e-tests/custom-users/compare/user-one-2-57.sql @@ -0,0 +1,5 @@ +GRANT USAGE ON *.* TO 'user-one'@'127.0.0.1' +GRANT SELECT, INSERT ON `db1`.* TO 'user-one'@'127.0.0.1' +GRANT SELECT, INSERT ON `db2`.* TO 'user-one'@'127.0.0.1' +GRANT SELECT, INSERT ON `db1`.* TO 'user-one'@'%' +GRANT SELECT, INSERT ON `db2`.* TO 'user-one'@'%' diff --git a/e2e-tests/custom-users/compare/user-one-57.sql b/e2e-tests/custom-users/compare/user-one-57.sql new file mode 100644 index 0000000000..753cf0b587 --- /dev/null +++ b/e2e-tests/custom-users/compare/user-one-57.sql @@ -0,0 +1,3 @@ +GRANT USAGE ON *.* TO 'user-one'@'%' +GRANT SELECT, INSERT ON `db1`.* TO 'user-one'@'%' +GRANT SELECT, INSERT ON `db2`.* TO 'user-one'@'%' diff --git a/e2e-tests/custom-users/compare/user-three-57.sql b/e2e-tests/custom-users/compare/user-three-57.sql new file mode 100644 index 0000000000..df32fc9768 --- /dev/null +++ b/e2e-tests/custom-users/compare/user-three-57.sql @@ -0,0 +1 @@ +GRANT USAGE ON *.* TO 'user-three'@'%' diff --git a/e2e-tests/custom-users/compare/user-two-57.sql b/e2e-tests/custom-users/compare/user-two-57.sql new file mode 100644 index 0000000000..13394515ea --- /dev/null +++ b/e2e-tests/custom-users/compare/user-two-57.sql @@ -0,0 +1 @@ +GRANT INSERT, UPDATE ON *.* TO 'user-two'@'%' diff --git a/e2e-tests/custom-users/run b/e2e-tests/custom-users/run index 34502abab5..a16ace5ee3 100755 --- a/e2e-tests/custom-users/run +++ b/e2e-tests/custom-users/run @@ -53,7 +53,7 @@ kubectl_bin patch pxc some-name --type=merge -p='{ "name":"user-four", "dbs": ["db1", "db2"], "grants":["SELECT, UPDATE"], - "hosts": ["%"] + "hosts": ["%"] } ]} }' @@ -75,7 +75,7 @@ kubectl_bin patch pxc some-name --type=merge -p='{ "name":"user-four", "dbs": ["db1", "db2", "db3"], "grants":["SELECT, UPDATE"], - "hosts": ["%"] + "hosts": ["%"] } ]} }' @@ -89,7 +89,7 @@ kubectl_bin patch pxc some-name --type=merge -p='{ "name":"user-four", "dbs": ["db1", "db2", "db3"], "grants":["SELECT, UPDATE, DELETE"], - "hosts": ["%"] + "hosts": ["%"] } ]} }' @@ -115,7 +115,7 @@ kubectl_bin patch pxc some-name --type=merge -p='{ "name":"user-five", "dbs": ["db1", "db2", "db3"], "grants":["SELECT, UPDATE, DELETE"], - "hosts": ["%"] + "hosts": ["%"] } ]} }' diff --git a/e2e-tests/functions b/e2e-tests/functions index 357d7c5100..93bdda43f9 100755 --- a/e2e-tests/functions +++ b/e2e-tests/functions @@ -540,12 +540,14 @@ compare_mysql_cmd() { local command="$2" local uri="$3" local postfix="$4" - local expected_result=${test_dir}/compare/${command_id}${postfix}.sql - - if [[ $IMAGE_PXC =~ 8\.0 ]] && [ -f ${test_dir}/compare/${command_id}${postfix}-80.sql ]; then - expected_result=${test_dir}/compare/${command_id}${postfix}-80.sql - elif [[ $IMAGE_PXC =~ 8\.4 ]] && [ -f ${test_dir}/compare/${command_id}${postfix}-84.sql ]; then - expected_result=${test_dir}/compare/${command_id}${postfix}-84.sql + local expected_result=$test_dir/compare/$command_id$postfix.sql + + if [[ $IMAGE_PXC =~ 8\.4 && -f $test_dir/compare/$command_id$postfix-84.sql ]]; then + expected_result=$test_dir/compare/$command_id$postfix-84.sql + elif [[ $IMAGE_PXC =~ 8\.0 && -f $test_dir/compare/$command_id$postfix-80.sql ]]; then + expected_result=$test_dir/compare/$command_id$postfix-80.sql + elif [[ $IMAGE_PXC =~ 5\.7 && -f $test_dir/compare/$command_id$postfix-57.sql ]]; then + expected_result=$test_dir/compare/$command_id$postfix-57.sql fi run_mysql "$command" "$uri" \ @@ -612,10 +614,12 @@ compare_mysql_user() { local user=$(echo $uri | sed -e 's/.*-u//; s/ .*//') local expected_result=${test_dir}/compare/$user$postfix.sql - if [[ $IMAGE_PXC =~ 8\.0 ]] && [ -f ${test_dir}/compare/$user$postfix-80.sql ]; then - expected_result=${test_dir}/compare/$user$postfix-80.sql - elif [[ $IMAGE_PXC =~ 8\.4 ]] && [ -f ${test_dir}/compare/$user$postfix-84.sql ]; then - expected_result=${test_dir}/compare/$user$postfix-84.sql + if [[ $IMAGE_PXC =~ 8\.4 && -f $test_dir/compare/$user$postfix-84.sql ]]; then + expected_result=$test_dir/compare/$user$postfix-84.sql + elif [[ $IMAGE_PXC =~ 8\.0 && -f $test_dir/compare/$user$postfix-80.sql ]]; then + expected_result=$test_dir/compare/$user$postfix-80.sql + elif [[ $IMAGE_PXC =~ 5\.7 && -f $test_dir/compare/$user$postfix-57.sql ]]; then + expected_result=$test_dir/compare/$user$postfix-57.sql fi (run_mysql "SHOW GRANTS;" "$uri" || :) \ diff --git a/e2e-tests/init-deploy/run b/e2e-tests/init-deploy/run index 5debd5b76c..b4d18d4344 100755 --- a/e2e-tests/init-deploy/run +++ b/e2e-tests/init-deploy/run @@ -27,7 +27,7 @@ compare_kubectl service/$cluster-pxc compare_kubectl service/$cluster-proxysql compare_kubectl service/$cluster-proxysql-unready -if [[ ${MYSQL_VERSION} == '8.0' ]]; then +if [[ ! $IMAGE_PXC =~ 5\.7 ]]; then desc 'check if mysql-state-monitor works as expected' for pod in $(kubectl_bin get pod -l app.kubernetes.io/component=pxc --no-headers | awk '{print $1}'); do state=$(kubectl_bin exec ${pod} -- cat /var/lib/mysql/mysql.state) From bc304bc382958efb43b04640d61e5174af2d54d8 Mon Sep 17 00:00:00 2001 From: Viacheslav Sarzhan Date: Thu, 19 Dec 2024 10:39:07 +0200 Subject: [PATCH 41/60] CLOUD-727 bump golang.org/x/net to 0.33.0 (#1920) --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 0c122941bf..77fb811744 100644 --- a/go.mod +++ b/go.mod @@ -88,7 +88,7 @@ require ( go.uber.org/multierr v1.11.0 // indirect golang.org/x/crypto v0.31.0 // indirect golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect - golang.org/x/net v0.30.0 // indirect + golang.org/x/net v0.33.0 // indirect golang.org/x/oauth2 v0.23.0 // indirect golang.org/x/sys v0.28.0 // indirect golang.org/x/term v0.27.0 // indirect diff --git a/go.sum b/go.sum index 669bf1676b..f2a83e25e4 100644 --- a/go.sum +++ b/go.sum @@ -203,8 +203,8 @@ golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4= -golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU= +golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I= +golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4= golang.org/x/oauth2 v0.23.0 h1:PbgcYx2W7i4LvjJWEbf0ngHV6qJYr86PkAV3bXdLEbs= golang.org/x/oauth2 v0.23.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= From dc3c9df238702f0ed8de1c83c4fc4f4ceda2f74d Mon Sep 17 00:00:00 2001 From: Viacheslav Sarzhan Date: Thu, 19 Dec 2024 10:39:07 +0200 Subject: [PATCH 42/60] CLOUD-727 bump golang.org/x/net to 0.33.0 (#1920) --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 0c122941bf..77fb811744 100644 --- a/go.mod +++ b/go.mod @@ -88,7 +88,7 @@ require ( go.uber.org/multierr v1.11.0 // indirect golang.org/x/crypto v0.31.0 // indirect golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect - golang.org/x/net v0.30.0 // indirect + golang.org/x/net v0.33.0 // indirect golang.org/x/oauth2 v0.23.0 // indirect golang.org/x/sys v0.28.0 // indirect golang.org/x/term v0.27.0 // indirect diff --git a/go.sum b/go.sum index 669bf1676b..f2a83e25e4 100644 --- a/go.sum +++ b/go.sum @@ -203,8 +203,8 @@ golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4= -golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU= +golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I= +golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4= golang.org/x/oauth2 v0.23.0 h1:PbgcYx2W7i4LvjJWEbf0ngHV6qJYr86PkAV3bXdLEbs= golang.org/x/oauth2 v0.23.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= From d7ab0f9eb2865d589cb58c90b37407ba6b4cd241 Mon Sep 17 00:00:00 2001 From: Eleonora Zinchenko Date: Fri, 20 Dec 2024 13:54:26 +0200 Subject: [PATCH 43/60] K8SPXC-1446: Update container image versions back to main and add a section in the upgrade-consistency test for 1.17.0 --- deploy/bundle.yaml | 2 +- deploy/cr-minimal.yaml | 8 ++-- deploy/cr.yaml | 16 ++++---- deploy/cw-bundle.yaml | 2 +- deploy/cw-operator.yaml | 2 +- deploy/operator.yaml | 2 +- ...ml => service_some-name-proxysql-1170.yml} | 2 + ...141.yml => service_some-name-pxc-1170.yml} | 2 + ...statefulset_some-name-proxysql-1151-oc.yml | 2 +- .../statefulset_some-name-proxysql-1151.yml | 2 +- ...statefulset_some-name-proxysql-1160-oc.yml | 2 +- .../statefulset_some-name-proxysql-1160.yml | 2 +- ...tatefulset_some-name-proxysql-1170-oc.yml} | 41 ++++++++++++++++--- ...> statefulset_some-name-proxysql-1170.yml} | 41 ++++++++++++++++--- .../statefulset_some-name-pxc-1151-oc.yml | 2 +- .../statefulset_some-name-pxc-1151.yml | 2 +- .../statefulset_some-name-pxc-1160-oc.yml | 2 +- .../statefulset_some-name-pxc-1160.yml | 2 +- ... => statefulset_some-name-pxc-1170-oc.yml} | 6 ++- ...yml => statefulset_some-name-pxc-1170.yml} | 6 ++- e2e-tests/upgrade-consistency/run | 30 +++++++------- version/version.go | 2 +- 22 files changed, 124 insertions(+), 54 deletions(-) rename e2e-tests/upgrade-consistency/compare/{service_some-name-proxysql-1141.yml => service_some-name-proxysql-1170.yml} (87%) rename e2e-tests/upgrade-consistency/compare/{service_some-name-pxc-1141.yml => service_some-name-pxc-1170.yml} (88%) rename e2e-tests/upgrade-consistency/compare/{statefulset_some-name-proxysql-1141-oc.yml => statefulset_some-name-proxysql-1170-oc.yml} (85%) rename e2e-tests/upgrade-consistency/compare/{statefulset_some-name-proxysql-1141.yml => statefulset_some-name-proxysql-1170.yml} (85%) rename e2e-tests/upgrade-consistency/compare/{statefulset_some-name-pxc-1141-oc.yml => statefulset_some-name-pxc-1170-oc.yml} (97%) rename e2e-tests/upgrade-consistency/compare/{statefulset_some-name-pxc-1141.yml => statefulset_some-name-pxc-1170.yml} (97%) diff --git a/deploy/bundle.yaml b/deploy/bundle.yaml index b49a9b175c..433a815c78 100644 --- a/deploy/bundle.yaml +++ b/deploy/bundle.yaml @@ -11522,7 +11522,7 @@ spec: value: percona-xtradb-cluster-operator - name: DISABLE_TELEMETRY value: "false" - image: percona/percona-xtradb-cluster-operator:1.16.0 + image: perconalab/percona-xtradb-cluster-operator:main imagePullPolicy: Always livenessProbe: failureThreshold: 3 diff --git a/deploy/cr-minimal.yaml b/deploy/cr-minimal.yaml index e6ee1e879c..ae69121c41 100644 --- a/deploy/cr-minimal.yaml +++ b/deploy/cr-minimal.yaml @@ -3,7 +3,7 @@ kind: PerconaXtraDBCluster metadata: name: minimal-cluster spec: - crVersion: 1.16.0 + crVersion: 1.17.0 secretsName: minimal-cluster-secrets unsafeFlags: tls: true @@ -16,7 +16,7 @@ spec: enabled: false pxc: size: 1 - image: percona/percona-xtradb-cluster:8.0.39-30.1 + image: perconalab/percona-xtradb-cluster-operator:main-pxc8.0 volumeSpec: persistentVolumeClaim: resources: @@ -25,7 +25,7 @@ spec: haproxy: enabled: true size: 1 - image: percona/haproxy:2.8.11 + image: perconalab/percona-xtradb-cluster-operator:main-haproxy logcollector: enabled: true - image: percona/percona-xtradb-cluster-operator:1.16.0-logcollector-fluentbit3.2.2 + image: perconalab/percona-xtradb-cluster-operator:main-logcollector diff --git a/deploy/cr.yaml b/deploy/cr.yaml index 42fc8d06c4..e009d2421e 100644 --- a/deploy/cr.yaml +++ b/deploy/cr.yaml @@ -10,7 +10,7 @@ metadata: # annotations: # percona.com/issue-vault-token: "true" spec: - crVersion: 1.16.0 + crVersion: 1.17.0 # enableVolumeExpansion: false # ignoreAnnotations: # - iam.amazonaws.com/role @@ -22,7 +22,7 @@ spec: # sslInternalSecretName: cluster1-ssl-internal # logCollectorSecretName: cluster1-log-collector-secrets # initContainer: -# image: percona/percona-xtradb-cluster-operator:1.16.0 +# image: perconalab/percona-xtradb-cluster-operator:main # containerSecurityContext: # privileged: false # runAsUser: 1001 @@ -58,7 +58,7 @@ spec: schedule: "0 4 * * *" pxc: size: 3 - image: percona/percona-xtradb-cluster:8.0.39-30.1 + image: perconalab/percona-xtradb-cluster-operator:main-pxc8.0 autoRecovery: true # expose: # enabled: true @@ -206,7 +206,7 @@ spec: haproxy: enabled: true size: 3 - image: percona/haproxy:2.8.11 + image: perconalab/percona-xtradb-cluster-operator:main-haproxy # imagePullPolicy: Always # schedulerName: mycustom-scheduler # readinessDelaySec: 15 @@ -381,7 +381,7 @@ spec: proxysql: enabled: false size: 3 - image: percona/proxysql2:2.7.1 + image: perconalab/percona-xtradb-cluster-operator:main-proxysql # imagePullPolicy: Always # configuration: | # datadir="/var/lib/proxysql" @@ -543,7 +543,7 @@ spec: # - 10.0.0.0/8 logcollector: enabled: true - image: percona/percona-xtradb-cluster-operator:1.16.0-logcollector-fluentbit3.2.2 + image: perconalab/percona-xtradb-cluster-operator:main-logcollector # configuration: | # [OUTPUT] # Name es @@ -576,7 +576,7 @@ spec: pmm: enabled: false - image: percona/pmm-client:2.44.0 + image: perconalab/pmm-client:dev-latest serverHost: monitoring-service # serverUser: admin # pxcParams: "--disable-tablestats-limit=2000" @@ -589,7 +589,7 @@ spec: cpu: 300m backup: # allowParallel: true - image: percona/percona-xtradb-cluster-operator:1.16.0-pxc8.0-backup-pxb8.0.35 + image: perconalab/percona-xtradb-cluster-operator:main-pxc8.0-backup # backoffLimit: 6 # activeDeadlineSeconds: 3600 # serviceAccountName: percona-xtradb-cluster-operator diff --git a/deploy/cw-bundle.yaml b/deploy/cw-bundle.yaml index ff6ce4ba4c..588c3c63c2 100644 --- a/deploy/cw-bundle.yaml +++ b/deploy/cw-bundle.yaml @@ -11532,7 +11532,7 @@ spec: value: percona-xtradb-cluster-operator - name: DISABLE_TELEMETRY value: "false" - image: percona/percona-xtradb-cluster-operator:1.16.0 + image: perconalab/percona-xtradb-cluster-operator:main imagePullPolicy: Always resources: limits: diff --git a/deploy/cw-operator.yaml b/deploy/cw-operator.yaml index c9dd05415c..4e498668cf 100644 --- a/deploy/cw-operator.yaml +++ b/deploy/cw-operator.yaml @@ -42,7 +42,7 @@ spec: value: percona-xtradb-cluster-operator - name: DISABLE_TELEMETRY value: "false" - image: percona/percona-xtradb-cluster-operator:1.16.0 + image: perconalab/percona-xtradb-cluster-operator:main imagePullPolicy: Always resources: limits: diff --git a/deploy/operator.yaml b/deploy/operator.yaml index 67bd5c469d..de903e0393 100644 --- a/deploy/operator.yaml +++ b/deploy/operator.yaml @@ -45,7 +45,7 @@ spec: value: percona-xtradb-cluster-operator - name: DISABLE_TELEMETRY value: "false" - image: percona/percona-xtradb-cluster-operator:1.16.0 + image: perconalab/percona-xtradb-cluster-operator:main imagePullPolicy: Always livenessProbe: failureThreshold: 3 diff --git a/e2e-tests/upgrade-consistency/compare/service_some-name-proxysql-1141.yml b/e2e-tests/upgrade-consistency/compare/service_some-name-proxysql-1170.yml similarity index 87% rename from e2e-tests/upgrade-consistency/compare/service_some-name-proxysql-1141.yml rename to e2e-tests/upgrade-consistency/compare/service_some-name-proxysql-1170.yml index f8230024bc..5b72198ae1 100644 --- a/e2e-tests/upgrade-consistency/compare/service_some-name-proxysql-1141.yml +++ b/e2e-tests/upgrade-consistency/compare/service_some-name-proxysql-1170.yml @@ -26,6 +26,8 @@ spec: selector: app.kubernetes.io/component: proxysql app.kubernetes.io/instance: some-name + app.kubernetes.io/managed-by: percona-xtradb-cluster-operator app.kubernetes.io/name: percona-xtradb-cluster + app.kubernetes.io/part-of: percona-xtradb-cluster sessionAffinity: None type: ClusterIP diff --git a/e2e-tests/upgrade-consistency/compare/service_some-name-pxc-1141.yml b/e2e-tests/upgrade-consistency/compare/service_some-name-pxc-1170.yml similarity index 88% rename from e2e-tests/upgrade-consistency/compare/service_some-name-pxc-1141.yml rename to e2e-tests/upgrade-consistency/compare/service_some-name-pxc-1170.yml index 84b12b6a85..951a2e3f8a 100644 --- a/e2e-tests/upgrade-consistency/compare/service_some-name-pxc-1141.yml +++ b/e2e-tests/upgrade-consistency/compare/service_some-name-pxc-1170.yml @@ -30,6 +30,8 @@ spec: selector: app.kubernetes.io/component: pxc app.kubernetes.io/instance: some-name + app.kubernetes.io/managed-by: percona-xtradb-cluster-operator app.kubernetes.io/name: percona-xtradb-cluster + app.kubernetes.io/part-of: percona-xtradb-cluster sessionAffinity: None type: ClusterIP diff --git a/e2e-tests/upgrade-consistency/compare/statefulset_some-name-proxysql-1151-oc.yml b/e2e-tests/upgrade-consistency/compare/statefulset_some-name-proxysql-1151-oc.yml index 4c620b3631..eb6c7be0c7 100644 --- a/e2e-tests/upgrade-consistency/compare/statefulset_some-name-proxysql-1151-oc.yml +++ b/e2e-tests/upgrade-consistency/compare/statefulset_some-name-proxysql-1151-oc.yml @@ -1,7 +1,7 @@ apiVersion: apps/v1 kind: StatefulSet metadata: - generation: 2 + generation: 1 name: some-name-proxysql ownerReferences: - controller: true diff --git a/e2e-tests/upgrade-consistency/compare/statefulset_some-name-proxysql-1151.yml b/e2e-tests/upgrade-consistency/compare/statefulset_some-name-proxysql-1151.yml index da341987be..e6b49d6831 100644 --- a/e2e-tests/upgrade-consistency/compare/statefulset_some-name-proxysql-1151.yml +++ b/e2e-tests/upgrade-consistency/compare/statefulset_some-name-proxysql-1151.yml @@ -1,7 +1,7 @@ apiVersion: apps/v1 kind: StatefulSet metadata: - generation: 2 + generation: 1 name: some-name-proxysql ownerReferences: - controller: true diff --git a/e2e-tests/upgrade-consistency/compare/statefulset_some-name-proxysql-1160-oc.yml b/e2e-tests/upgrade-consistency/compare/statefulset_some-name-proxysql-1160-oc.yml index 43a9e27175..4c620b3631 100644 --- a/e2e-tests/upgrade-consistency/compare/statefulset_some-name-proxysql-1160-oc.yml +++ b/e2e-tests/upgrade-consistency/compare/statefulset_some-name-proxysql-1160-oc.yml @@ -1,7 +1,7 @@ apiVersion: apps/v1 kind: StatefulSet metadata: - generation: 3 + generation: 2 name: some-name-proxysql ownerReferences: - controller: true diff --git a/e2e-tests/upgrade-consistency/compare/statefulset_some-name-proxysql-1160.yml b/e2e-tests/upgrade-consistency/compare/statefulset_some-name-proxysql-1160.yml index fd94e821f1..da341987be 100644 --- a/e2e-tests/upgrade-consistency/compare/statefulset_some-name-proxysql-1160.yml +++ b/e2e-tests/upgrade-consistency/compare/statefulset_some-name-proxysql-1160.yml @@ -1,7 +1,7 @@ apiVersion: apps/v1 kind: StatefulSet metadata: - generation: 3 + generation: 2 name: some-name-proxysql ownerReferences: - controller: true diff --git a/e2e-tests/upgrade-consistency/compare/statefulset_some-name-proxysql-1141-oc.yml b/e2e-tests/upgrade-consistency/compare/statefulset_some-name-proxysql-1170-oc.yml similarity index 85% rename from e2e-tests/upgrade-consistency/compare/statefulset_some-name-proxysql-1141-oc.yml rename to e2e-tests/upgrade-consistency/compare/statefulset_some-name-proxysql-1170-oc.yml index bee5037461..43a9e27175 100644 --- a/e2e-tests/upgrade-consistency/compare/statefulset_some-name-proxysql-1141-oc.yml +++ b/e2e-tests/upgrade-consistency/compare/statefulset_some-name-proxysql-1170-oc.yml @@ -1,7 +1,7 @@ apiVersion: apps/v1 kind: StatefulSet metadata: - generation: 1 + generation: 3 name: some-name-proxysql ownerReferences: - controller: true @@ -43,7 +43,15 @@ spec: app.kubernetes.io/part-of: percona-xtradb-cluster topologyKey: kubernetes.io/hostname containers: - - env: + - args: + - proxysql + - -f + - -c + - /etc/proxysql/proxysql.cnf + - --reload + command: + - /opt/percona/proxysql-entrypoint.sh + env: - name: PXC_SERVICE value: some-name-pxc - name: OPERATOR_PASSWORD @@ -92,9 +100,11 @@ spec: name: ssl - mountPath: /etc/proxysql/ssl-internal name: ssl-internal + - mountPath: /opt/percona + name: bin - args: - - /usr/bin/peer-list - - -on-change=/usr/bin/add_pxc_nodes.sh + - /opt/percona/peer-list + - -on-change=/opt/percona/proxysql_add_pxc_nodes.sh - -service=$(PXC_SERVICE) env: - name: PXC_SERVICE @@ -125,9 +135,12 @@ spec: resources: {} terminationMessagePath: /dev/termination-log terminationMessagePolicy: File + volumeMounts: + - mountPath: /opt/percona + name: bin - args: - - /usr/bin/peer-list - - -on-change=/usr/bin/add_proxysql_nodes.sh + - /opt/percona/peer-list + - -on-change=/opt/percona/proxysql_add_proxysql_nodes.sh - -service=$(PROXYSQL_SERVICE) env: - name: PROXYSQL_SERVICE @@ -158,6 +171,9 @@ spec: resources: {} terminationMessagePath: /dev/termination-log terminationMessagePolicy: File + volumeMounts: + - mountPath: /opt/percona + name: bin dnsPolicy: ClusterFirst initContainers: - command: @@ -173,6 +189,19 @@ spec: volumeMounts: - mountPath: /var/lib/mysql name: bin + - command: + - /proxysql-init-entrypoint.sh + imagePullPolicy: Always + name: proxysql-init + resources: + limits: + cpu: 50m + memory: 50M + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + volumeMounts: + - mountPath: /opt/percona + name: bin restartPolicy: Always schedulerName: default-scheduler securityContext: diff --git a/e2e-tests/upgrade-consistency/compare/statefulset_some-name-proxysql-1141.yml b/e2e-tests/upgrade-consistency/compare/statefulset_some-name-proxysql-1170.yml similarity index 85% rename from e2e-tests/upgrade-consistency/compare/statefulset_some-name-proxysql-1141.yml rename to e2e-tests/upgrade-consistency/compare/statefulset_some-name-proxysql-1170.yml index 24b74084f7..fd94e821f1 100644 --- a/e2e-tests/upgrade-consistency/compare/statefulset_some-name-proxysql-1141.yml +++ b/e2e-tests/upgrade-consistency/compare/statefulset_some-name-proxysql-1170.yml @@ -1,7 +1,7 @@ apiVersion: apps/v1 kind: StatefulSet metadata: - generation: 1 + generation: 3 name: some-name-proxysql ownerReferences: - controller: true @@ -43,7 +43,15 @@ spec: app.kubernetes.io/part-of: percona-xtradb-cluster topologyKey: kubernetes.io/hostname containers: - - env: + - args: + - proxysql + - -f + - -c + - /etc/proxysql/proxysql.cnf + - --reload + command: + - /opt/percona/proxysql-entrypoint.sh + env: - name: PXC_SERVICE value: some-name-pxc - name: OPERATOR_PASSWORD @@ -92,9 +100,11 @@ spec: name: ssl - mountPath: /etc/proxysql/ssl-internal name: ssl-internal + - mountPath: /opt/percona + name: bin - args: - - /usr/bin/peer-list - - -on-change=/usr/bin/add_pxc_nodes.sh + - /opt/percona/peer-list + - -on-change=/opt/percona/proxysql_add_pxc_nodes.sh - -service=$(PXC_SERVICE) env: - name: PXC_SERVICE @@ -125,9 +135,12 @@ spec: resources: {} terminationMessagePath: /dev/termination-log terminationMessagePolicy: File + volumeMounts: + - mountPath: /opt/percona + name: bin - args: - - /usr/bin/peer-list - - -on-change=/usr/bin/add_proxysql_nodes.sh + - /opt/percona/peer-list + - -on-change=/opt/percona/proxysql_add_proxysql_nodes.sh - -service=$(PROXYSQL_SERVICE) env: - name: PROXYSQL_SERVICE @@ -158,6 +171,9 @@ spec: resources: {} terminationMessagePath: /dev/termination-log terminationMessagePolicy: File + volumeMounts: + - mountPath: /opt/percona + name: bin dnsPolicy: ClusterFirst initContainers: - command: @@ -173,6 +189,19 @@ spec: volumeMounts: - mountPath: /var/lib/mysql name: bin + - command: + - /proxysql-init-entrypoint.sh + imagePullPolicy: Always + name: proxysql-init + resources: + limits: + cpu: 50m + memory: 50M + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + volumeMounts: + - mountPath: /opt/percona + name: bin restartPolicy: Always schedulerName: default-scheduler securityContext: diff --git a/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1151-oc.yml b/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1151-oc.yml index 1d045b704a..668b2e76d8 100644 --- a/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1151-oc.yml +++ b/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1151-oc.yml @@ -1,7 +1,7 @@ apiVersion: apps/v1 kind: StatefulSet metadata: - generation: 2 + generation: 1 name: some-name-pxc ownerReferences: - controller: true diff --git a/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1151.yml b/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1151.yml index 35860b406e..47f50b57f0 100644 --- a/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1151.yml +++ b/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1151.yml @@ -1,7 +1,7 @@ apiVersion: apps/v1 kind: StatefulSet metadata: - generation: 2 + generation: 1 name: some-name-pxc ownerReferences: - controller: true diff --git a/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1160-oc.yml b/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1160-oc.yml index 247a3e4e05..3c7cefba6e 100644 --- a/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1160-oc.yml +++ b/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1160-oc.yml @@ -1,7 +1,7 @@ apiVersion: apps/v1 kind: StatefulSet metadata: - generation: 3 + generation: 2 name: some-name-pxc ownerReferences: - controller: true diff --git a/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1160.yml b/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1160.yml index af86099bc3..76f6d99273 100644 --- a/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1160.yml +++ b/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1160.yml @@ -1,7 +1,7 @@ apiVersion: apps/v1 kind: StatefulSet metadata: - generation: 3 + generation: 2 name: some-name-pxc ownerReferences: - controller: true diff --git a/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1141-oc.yml b/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1170-oc.yml similarity index 97% rename from e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1141-oc.yml rename to e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1170-oc.yml index 668b2e76d8..247a3e4e05 100644 --- a/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1141-oc.yml +++ b/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1170-oc.yml @@ -1,7 +1,7 @@ apiVersion: apps/v1 kind: StatefulSet metadata: - generation: 1 + generation: 3 name: some-name-pxc ownerReferences: - controller: true @@ -125,6 +125,10 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password + - name: MYSQL_NOTIFY_SOCKET + value: /var/lib/mysql/notify.sock + - name: MYSQL_STATE_FILE + value: /var/lib/mysql/mysql.state envFrom: - secretRef: name: some-name-env-vars-pxc diff --git a/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1141.yml b/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1170.yml similarity index 97% rename from e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1141.yml rename to e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1170.yml index 47f50b57f0..af86099bc3 100644 --- a/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1141.yml +++ b/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1170.yml @@ -1,7 +1,7 @@ apiVersion: apps/v1 kind: StatefulSet metadata: - generation: 1 + generation: 3 name: some-name-pxc ownerReferences: - controller: true @@ -125,6 +125,10 @@ spec: value: "15" - name: DEFAULT_AUTHENTICATION_PLUGIN value: mysql_native_password + - name: MYSQL_NOTIFY_SOCKET + value: /var/lib/mysql/notify.sock + - name: MYSQL_STATE_FILE + value: /var/lib/mysql/mysql.state envFrom: - secretRef: name: some-name-env-vars-pxc diff --git a/e2e-tests/upgrade-consistency/run b/e2e-tests/upgrade-consistency/run index 5372faa4f6..d860630c82 100755 --- a/e2e-tests/upgrade-consistency/run +++ b/e2e-tests/upgrade-consistency/run @@ -38,27 +38,15 @@ main() { kubectl_bin apply \ -f "$test_dir/conf/secrets.yml" cat_config "$conf_dir/$cluster.yml" \ - | yq eval '.spec.crVersion = "1.14.1"' - \ + | yq eval '.spec.crVersion = "1.15.1"' - \ | kubectl_bin apply -f - - desc "test 1.14.1" - kubectl_bin patch pxc "$cluster" --type=merge --patch '{ - "spec": {"crVersion":"1.14.1"} - }' - wait_cluster_consistency "$cluster" 3 2 - wait_for_sts_generation "$cluster-pxc" "1" "1" - desc "compare k8s objects" - compare_kubectl service/$cluster-pxc "-1141" - compare_kubectl service/$cluster-proxysql "-1141" - compare_kubectl statefulset/$cluster-pxc "-1141" - compare_kubectl statefulset/$cluster-proxysql "-1141" - desc "test 1.15.1" kubectl_bin patch pxc "$cluster" --type=merge --patch '{ "spec": {"crVersion":"1.15.1"} }' wait_cluster_consistency "$cluster" 3 2 - wait_for_sts_generation "$cluster-pxc" "2" "1" + wait_for_sts_generation "$cluster-pxc" "1" "1" desc "compare k8s objects" compare_kubectl service/$cluster-pxc "-1151" compare_kubectl service/$cluster-proxysql "-1151" @@ -70,13 +58,25 @@ main() { "spec": {"crVersion":"1.16.0"} }' wait_cluster_consistency "$cluster" 3 2 - wait_for_sts_generation "$cluster-pxc" "3" "1" + wait_for_sts_generation "$cluster-pxc" "2" "1" desc "compare k8s objects" compare_kubectl service/$cluster-pxc "-1160" compare_kubectl service/$cluster-proxysql "-1160" compare_kubectl statefulset/$cluster-pxc "-1160" compare_kubectl statefulset/$cluster-proxysql "-1160" + desc "test 1.17.0" + kubectl_bin patch pxc "$cluster" --type=merge --patch '{ + "spec": {"crVersion":"1.17.0"} + }' + wait_cluster_consistency "$cluster" 3 2 + wait_for_sts_generation "$cluster-pxc" "3" "1" + desc "compare k8s objects" + compare_kubectl service/$cluster-pxc "-1170" + compare_kubectl service/$cluster-proxysql "-1170" + compare_kubectl statefulset/$cluster-pxc "-1170" + compare_kubectl statefulset/$cluster-proxysql "-1170" + destroy "${namespace}" desc "test passed" } diff --git a/version/version.go b/version/version.go index 3e5b1d8345..edc8424e7e 100644 --- a/version/version.go +++ b/version/version.go @@ -1,5 +1,5 @@ package version var ( - Version = "1.16.0" + Version = "1.17.0" ) From 28e4de4dfaa447c4985af21ae25347118d0b3c43 Mon Sep 17 00:00:00 2001 From: Eleonora Zinchenko Date: Mon, 23 Dec 2024 09:27:54 +0200 Subject: [PATCH 44/60] Add delete .spec.crVersion for compare in functions and in tls-issue-self diffs --- e2e-tests/functions | 1 + e2e-tests/tls-issue-self/compare/pxc_some-name-enabled.yml | 1 - e2e-tests/tls-issue-self/compare/pxc_some-name.yml | 1 - 3 files changed, 1 insertion(+), 2 deletions(-) diff --git a/e2e-tests/functions b/e2e-tests/functions index 93bdda43f9..ec9549928f 100755 --- a/e2e-tests/functions +++ b/e2e-tests/functions @@ -496,6 +496,7 @@ compare_kubectl() { (.. | select(tag == "!!str")) |= sub("'$namespace'", "namespace") | (.. | select(tag == "!!str")) |= sub("kube-api-access-.*", "kube-api-access") | del(.. | select(has("annotations")).annotations | select(length==0)) | + del(.spec.crVersion) | del(.. | select(.[] == "percona-xtradb-cluster-operator-workload-token*"))' - >${new_result} diff -u ${expected_result} ${new_result} diff --git a/e2e-tests/tls-issue-self/compare/pxc_some-name-enabled.yml b/e2e-tests/tls-issue-self/compare/pxc_some-name-enabled.yml index 0124f49796..264d3c94f3 100644 --- a/e2e-tests/tls-issue-self/compare/pxc_some-name-enabled.yml +++ b/e2e-tests/tls-issue-self/compare/pxc_some-name-enabled.yml @@ -35,7 +35,6 @@ spec: resources: requests: storage: 1Gi - crVersion: 1.16.0 logcollector: enabled: true pmm: diff --git a/e2e-tests/tls-issue-self/compare/pxc_some-name.yml b/e2e-tests/tls-issue-self/compare/pxc_some-name.yml index 5e96b63042..5bbf5a8c75 100644 --- a/e2e-tests/tls-issue-self/compare/pxc_some-name.yml +++ b/e2e-tests/tls-issue-self/compare/pxc_some-name.yml @@ -35,7 +35,6 @@ spec: resources: requests: storage: 1Gi - crVersion: 1.16.0 logcollector: enabled: true pmm: From f5e5b852d5d79691840f22a57fa74a217eba6da8 Mon Sep 17 00:00:00 2001 From: Vlad Gusev Date: Mon, 23 Dec 2024 11:14:18 +0200 Subject: [PATCH 45/60] fix: don't add the storage name twice to the scheduled backup name Don't add the storage name twice to the scheduled backup name Adding a storage name twice might make a job name longer than 63 characters and break backup creation --- pkg/naming/backup.go | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/pkg/naming/backup.go b/pkg/naming/backup.go index ec7957d5d6..c7e876d03e 100644 --- a/pkg/naming/backup.go +++ b/pkg/naming/backup.go @@ -52,23 +52,22 @@ func trimJobName(name string) string { } func ScheduledBackupName(crName, storageName, schedule string) string { - result := "cron-" + result := "cron" if len(crName) > 16 { - result += crName[:16] + result += "-" + crName[:16] } else { - result += crName + result += "-" + crName } if len(storageName) > 16 { - result += storageName[:16] + result += "-" + storageName[:16] } else { - result += storageName + result += "-" + storageName } - result += "-" + storageName + "-" tnow := time.Now() - result += fmt.Sprintf("%d%d%d%d%d%d", tnow.Year(), tnow.Month(), tnow.Day(), tnow.Hour(), tnow.Minute(), tnow.Second()) + result += "-" + fmt.Sprintf("%d%d%d%d%d%d", tnow.Year(), tnow.Month(), tnow.Day(), tnow.Hour(), tnow.Minute(), tnow.Second()) result += "-" + strconv.FormatUint(uint64(crc32.ChecksumIEEE([]byte(schedule))), 32)[:5] return result } From 16fbe8e12b9b674bbb5e816e1652086f5ea2a522 Mon Sep 17 00:00:00 2001 From: Eleonora Zinchenko Date: Mon, 23 Dec 2024 14:13:10 +0200 Subject: [PATCH 46/60] Add annotations for .spec.volumeClaimTemplate and clean up k127 for proxies tests --- ...atefulset_upgrade-haproxy-haproxy-k127.yml | 202 ------------- .../statefulset_upgrade-haproxy-haproxy.yml | 13 +- ...tatefulset_upgrade-haproxy-pxc-k127-oc.yml | 279 ----------------- .../statefulset_upgrade-haproxy-pxc-k127.yml | 280 ------------------ .../statefulset_upgrade-haproxy-pxc-oc.yml | 9 + .../statefulset_upgrade-haproxy-pxc.yml | 9 + ...lset_upgrade-proxysql-proxysql-k127-oc.yml | 235 --------------- ...efulset_upgrade-proxysql-proxysql-k127.yml | 236 --------------- ...atefulset_upgrade-proxysql-proxysql-oc.yml | 9 + .../statefulset_upgrade-proxysql-proxysql.yml | 19 +- ...atefulset_upgrade-proxysql-pxc-k127-oc.yml | 279 ----------------- .../statefulset_upgrade-proxysql-pxc-k127.yml | 280 ------------------ .../statefulset_upgrade-proxysql-pxc-oc.yml | 9 + .../statefulset_upgrade-proxysql-pxc.yml | 9 + 14 files changed, 75 insertions(+), 1793 deletions(-) delete mode 100644 e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-haproxy-k127.yml delete mode 100644 e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-pxc-k127-oc.yml delete mode 100644 e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-pxc-k127.yml delete mode 100644 e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-proxysql-k127-oc.yml delete mode 100644 e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-proxysql-k127.yml delete mode 100644 e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-pxc-k127-oc.yml delete mode 100644 e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-pxc-k127.yml diff --git a/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-haproxy-k127.yml b/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-haproxy-k127.yml deleted file mode 100644 index 8691d5d175..0000000000 --- a/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-haproxy-k127.yml +++ /dev/null @@ -1,202 +0,0 @@ -apiVersion: apps/v1 -kind: StatefulSet -metadata: - generation: 2 - name: upgrade-haproxy-haproxy - ownerReferences: - - controller: true - kind: PerconaXtraDBCluster - name: upgrade-haproxy -spec: - persistentVolumeClaimRetentionPolicy: - whenDeleted: Retain - whenScaled: Retain - podManagementPolicy: OrderedReady - replicas: 3 - revisionHistoryLimit: 10 - selector: - matchLabels: - app.kubernetes.io/component: haproxy - app.kubernetes.io/instance: upgrade-haproxy - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - serviceName: upgrade-haproxy-haproxy - template: - metadata: - labels: - app.kubernetes.io/component: haproxy - app.kubernetes.io/instance: upgrade-haproxy - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - spec: - affinity: - podAntiAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - - labelSelector: - matchLabels: - app.kubernetes.io/component: haproxy - app.kubernetes.io/instance: upgrade-haproxy - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - topologyKey: kubernetes.io/hostname - containers: - - args: - - haproxy - command: - - /opt/percona/haproxy-entrypoint.sh - env: - - name: PXC_SERVICE - value: upgrade-haproxy-pxc - - name: LIVENESS_CHECK_TIMEOUT - value: "5" - - name: READINESS_CHECK_TIMEOUT - value: "1" - envFrom: - - secretRef: - name: upgrade-haproxy-env-vars-haproxy - optional: true - imagePullPolicy: Always - livenessProbe: - exec: - command: - - /opt/percona/haproxy_liveness_check.sh - failureThreshold: 4 - initialDelaySeconds: 60 - periodSeconds: 30 - successThreshold: 1 - timeoutSeconds: 5 - name: haproxy - ports: - - containerPort: 3306 - name: mysql - protocol: TCP - - containerPort: 3307 - name: mysql-replicas - protocol: TCP - - containerPort: 3309 - name: proxy-protocol - protocol: TCP - - containerPort: 33062 - name: mysql-admin - protocol: TCP - - containerPort: 33060 - name: mysqlx - protocol: TCP - readinessProbe: - exec: - command: - - /opt/percona/haproxy_readiness_check.sh - failureThreshold: 3 - initialDelaySeconds: 15 - periodSeconds: 5 - successThreshold: 1 - timeoutSeconds: 1 - resources: - requests: - cpu: 600m - memory: 1G - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /etc/haproxy-custom/ - name: haproxy-custom - - mountPath: /etc/haproxy/pxc - name: haproxy-auto - - mountPath: /opt/percona - name: bin - - mountPath: /etc/mysql/mysql-users-secret - name: mysql-users-secret-file - - mountPath: /etc/mysql/haproxy-env-secret - name: upgrade-haproxy-env-vars-haproxy - - args: - - /opt/percona/peer-list - - -on-change=/opt/percona/haproxy_add_pxc_nodes.sh - - -service=$(PXC_SERVICE) - command: - - /opt/percona/haproxy-entrypoint.sh - env: - - name: PXC_SERVICE - value: upgrade-haproxy-pxc - - name: REPLICAS_SVC_ONLY_READERS - value: "false" - envFrom: - - secretRef: - name: upgrade-haproxy-env-vars-haproxy - optional: true - imagePullPolicy: Always - name: pxc-monit - resources: {} - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /etc/haproxy-custom/ - name: haproxy-custom - - mountPath: /etc/haproxy/pxc - name: haproxy-auto - - mountPath: /etc/mysql/mysql-users-secret - name: mysql-users-secret-file - - mountPath: /etc/mysql/haproxy-env-secret - name: upgrade-haproxy-env-vars-haproxy - - mountPath: /opt/percona - name: bin - dnsPolicy: ClusterFirst - initContainers: - - command: - - /pxc-init-entrypoint.sh - imagePullPolicy: Always - name: pxc-init - resources: - limits: - cpu: 50m - memory: 50M - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/mysql - name: bin - - command: - - /haproxy-init-entrypoint.sh - imagePullPolicy: Always - name: haproxy-init - resources: - limits: - cpu: 50m - memory: 50M - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /opt/percona - name: bin - restartPolicy: Always - schedulerName: default-scheduler - securityContext: {} - serviceAccount: default - serviceAccountName: default - terminationGracePeriodSeconds: 30 - volumes: - - configMap: - defaultMode: 420 - name: upgrade-haproxy-haproxy - optional: true - name: haproxy-custom - - emptyDir: {} - name: haproxy-auto - - name: mysql-users-secret-file - secret: - defaultMode: 420 - optional: false - secretName: internal-upgrade-haproxy - - name: upgrade-haproxy-env-vars-haproxy - secret: - defaultMode: 420 - optional: true - secretName: upgrade-haproxy-env-vars-haproxy - - emptyDir: {} - name: bin - updateStrategy: - rollingUpdate: - partition: 0 - type: RollingUpdate diff --git a/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-haproxy.yml b/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-haproxy.yml index b5e6f0f05d..8691d5d175 100644 --- a/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-haproxy.yml +++ b/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-haproxy.yml @@ -8,6 +8,9 @@ metadata: kind: PerconaXtraDBCluster name: upgrade-haproxy spec: + persistentVolumeClaimRetentionPolicy: + whenDeleted: Retain + whenScaled: Retain podManagementPolicy: OrderedReady replicas: 3 revisionHistoryLimit: 10 @@ -40,7 +43,11 @@ spec: app.kubernetes.io/part-of: percona-xtradb-cluster topologyKey: kubernetes.io/hostname containers: - - env: + - args: + - haproxy + command: + - /opt/percona/haproxy-entrypoint.sh + env: - name: PXC_SERVICE value: upgrade-haproxy-pxc - name: LIVENESS_CHECK_TIMEOUT @@ -108,6 +115,8 @@ spec: - /opt/percona/peer-list - -on-change=/opt/percona/haproxy_add_pxc_nodes.sh - -service=$(PXC_SERVICE) + command: + - /opt/percona/haproxy-entrypoint.sh env: - name: PXC_SERVICE value: upgrade-haproxy-pxc @@ -131,6 +140,8 @@ spec: name: mysql-users-secret-file - mountPath: /etc/mysql/haproxy-env-secret name: upgrade-haproxy-env-vars-haproxy + - mountPath: /opt/percona + name: bin dnsPolicy: ClusterFirst initContainers: - command: diff --git a/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-pxc-k127-oc.yml b/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-pxc-k127-oc.yml deleted file mode 100644 index 73b8157e44..0000000000 --- a/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-pxc-k127-oc.yml +++ /dev/null @@ -1,279 +0,0 @@ -apiVersion: apps/v1 -kind: StatefulSet -metadata: - generation: 2 - name: upgrade-haproxy-pxc - ownerReferences: - - controller: true - kind: PerconaXtraDBCluster - name: upgrade-haproxy -spec: - persistentVolumeClaimRetentionPolicy: - whenDeleted: Retain - whenScaled: Retain - podManagementPolicy: OrderedReady - replicas: 3 - revisionHistoryLimit: 10 - selector: - matchLabels: - app.kubernetes.io/component: pxc - app.kubernetes.io/instance: upgrade-haproxy - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - serviceName: upgrade-haproxy-pxc - template: - metadata: - labels: - app.kubernetes.io/component: pxc - app.kubernetes.io/instance: upgrade-haproxy - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - spec: - affinity: - podAntiAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - - labelSelector: - matchLabels: - app.kubernetes.io/component: pxc - app.kubernetes.io/instance: upgrade-haproxy - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - topologyKey: kubernetes.io/hostname - containers: - - env: - - name: LOG_DATA_DIR - value: /var/lib/mysql - - name: POD_NAMESPASE - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.namespace - - name: POD_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.name - envFrom: - - secretRef: - name: upgrade-haproxy-log-collector - optional: true - imagePullPolicy: Always - name: logs - resources: - requests: - cpu: 200m - memory: 100M - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/mysql - name: datadir - - args: - - logrotate - env: - - name: SERVICE_TYPE - value: mysql - - name: MONITOR_PASSWORD - valueFrom: - secretKeyRef: - key: monitor - name: internal-upgrade-haproxy - imagePullPolicy: Always - name: logrotate - resources: - requests: - cpu: 200m - memory: 100M - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/mysql - name: datadir - - args: - - mysqld - command: - - /var/lib/mysql/pxc-entrypoint.sh - env: - - name: PXC_SERVICE - value: upgrade-haproxy-pxc-unready - - name: MONITOR_HOST - value: '%' - - name: MYSQL_ROOT_PASSWORD - valueFrom: - secretKeyRef: - key: root - name: internal-upgrade-haproxy - - name: XTRABACKUP_PASSWORD - valueFrom: - secretKeyRef: - key: xtrabackup - name: internal-upgrade-haproxy - - name: MONITOR_PASSWORD - valueFrom: - secretKeyRef: - key: monitor - name: internal-upgrade-haproxy - - name: LOG_DATA_DIR - value: /var/lib/mysql - - name: IS_LOGCOLLECTOR - value: "yes" - - name: OPERATOR_ADMIN_PASSWORD - valueFrom: - secretKeyRef: - key: operator - name: internal-upgrade-haproxy - - name: LIVENESS_CHECK_TIMEOUT - value: "5" - - name: READINESS_CHECK_TIMEOUT - value: "15" - - name: DEFAULT_AUTHENTICATION_PLUGIN - value: caching_sha2_password - - name: MYSQL_NOTIFY_SOCKET - value: /var/lib/mysql/notify.sock - - name: MYSQL_STATE_FILE - value: /var/lib/mysql/mysql.state - envFrom: - - secretRef: - name: upgrade-haproxy-env-vars-pxc - optional: true - imagePullPolicy: Always - livenessProbe: - exec: - command: - - /var/lib/mysql/liveness-check.sh - failureThreshold: 3 - initialDelaySeconds: 300 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 5 - name: pxc - ports: - - containerPort: 3306 - name: mysql - protocol: TCP - - containerPort: 4444 - name: sst - protocol: TCP - - containerPort: 4567 - name: write-set - protocol: TCP - - containerPort: 4568 - name: ist - protocol: TCP - - containerPort: 33062 - name: mysql-admin - protocol: TCP - - containerPort: 33060 - name: mysqlx - protocol: TCP - readinessProbe: - exec: - command: - - /var/lib/mysql/readiness-check.sh - failureThreshold: 5 - initialDelaySeconds: 15 - periodSeconds: 30 - successThreshold: 1 - timeoutSeconds: 15 - resources: - requests: - cpu: 600m - memory: 1G - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/mysql - name: datadir - - mountPath: /etc/percona-xtradb-cluster.conf.d - name: config - - mountPath: /tmp - name: tmp - - mountPath: /etc/mysql/ssl - name: ssl - - mountPath: /etc/mysql/ssl-internal - name: ssl-internal - - mountPath: /etc/mysql/mysql-users-secret - name: mysql-users-secret-file - - mountPath: /etc/my.cnf.d - name: auto-config - - mountPath: /etc/mysql/vault-keyring-secret - name: vault-keyring-secret - - mountPath: /etc/mysql/init-file - name: mysql-init-file - dnsPolicy: ClusterFirst - initContainers: - - command: - - /pxc-init-entrypoint.sh - imagePullPolicy: Always - name: pxc-init - resources: - limits: - cpu: 50m - memory: 50M - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/mysql - name: datadir - restartPolicy: Always - schedulerName: default-scheduler - securityContext: - supplementalGroups: - - 1001 - serviceAccount: default - serviceAccountName: default - terminationGracePeriodSeconds: 600 - volumes: - - emptyDir: {} - name: tmp - - configMap: - defaultMode: 420 - name: upgrade-haproxy-pxc - optional: true - name: config - - name: ssl-internal - secret: - defaultMode: 420 - optional: true - secretName: some-name-ssl-internal - - name: ssl - secret: - defaultMode: 420 - optional: false - secretName: some-name-ssl - - configMap: - defaultMode: 420 - name: auto-upgrade-haproxy-pxc - optional: true - name: auto-config - - name: vault-keyring-secret - secret: - defaultMode: 420 - optional: true - secretName: some-name-vault - - name: mysql-users-secret-file - secret: - defaultMode: 420 - optional: false - secretName: internal-upgrade-haproxy - - name: mysql-init-file - secret: - defaultMode: 420 - optional: true - secretName: upgrade-haproxy-mysql-init - updateStrategy: - type: OnDelete - volumeClaimTemplates: - - metadata: - name: datadir - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 6G - status: - phase: Pending diff --git a/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-pxc-k127.yml b/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-pxc-k127.yml deleted file mode 100644 index 4e643ca349..0000000000 --- a/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-pxc-k127.yml +++ /dev/null @@ -1,280 +0,0 @@ -apiVersion: apps/v1 -kind: StatefulSet -metadata: - generation: 2 - name: upgrade-haproxy-pxc - ownerReferences: - - controller: true - kind: PerconaXtraDBCluster - name: upgrade-haproxy -spec: - persistentVolumeClaimRetentionPolicy: - whenDeleted: Retain - whenScaled: Retain - podManagementPolicy: OrderedReady - replicas: 3 - revisionHistoryLimit: 10 - selector: - matchLabels: - app.kubernetes.io/component: pxc - app.kubernetes.io/instance: upgrade-haproxy - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - serviceName: upgrade-haproxy-pxc - template: - metadata: - labels: - app.kubernetes.io/component: pxc - app.kubernetes.io/instance: upgrade-haproxy - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - spec: - affinity: - podAntiAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - - labelSelector: - matchLabels: - app.kubernetes.io/component: pxc - app.kubernetes.io/instance: upgrade-haproxy - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - topologyKey: kubernetes.io/hostname - containers: - - env: - - name: LOG_DATA_DIR - value: /var/lib/mysql - - name: POD_NAMESPASE - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.namespace - - name: POD_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.name - envFrom: - - secretRef: - name: upgrade-haproxy-log-collector - optional: true - imagePullPolicy: Always - name: logs - resources: - requests: - cpu: 200m - memory: 100M - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/mysql - name: datadir - - args: - - logrotate - env: - - name: SERVICE_TYPE - value: mysql - - name: MONITOR_PASSWORD - valueFrom: - secretKeyRef: - key: monitor - name: internal-upgrade-haproxy - imagePullPolicy: Always - name: logrotate - resources: - requests: - cpu: 200m - memory: 100M - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/mysql - name: datadir - - args: - - mysqld - command: - - /var/lib/mysql/pxc-entrypoint.sh - env: - - name: PXC_SERVICE - value: upgrade-haproxy-pxc-unready - - name: MONITOR_HOST - value: '%' - - name: MYSQL_ROOT_PASSWORD - valueFrom: - secretKeyRef: - key: root - name: internal-upgrade-haproxy - - name: XTRABACKUP_PASSWORD - valueFrom: - secretKeyRef: - key: xtrabackup - name: internal-upgrade-haproxy - - name: MONITOR_PASSWORD - valueFrom: - secretKeyRef: - key: monitor - name: internal-upgrade-haproxy - - name: LOG_DATA_DIR - value: /var/lib/mysql - - name: IS_LOGCOLLECTOR - value: "yes" - - name: OPERATOR_ADMIN_PASSWORD - valueFrom: - secretKeyRef: - key: operator - name: internal-upgrade-haproxy - - name: LIVENESS_CHECK_TIMEOUT - value: "5" - - name: READINESS_CHECK_TIMEOUT - value: "15" - - name: DEFAULT_AUTHENTICATION_PLUGIN - value: caching_sha2_password - - name: MYSQL_NOTIFY_SOCKET - value: /var/lib/mysql/notify.sock - - name: MYSQL_STATE_FILE - value: /var/lib/mysql/mysql.state - envFrom: - - secretRef: - name: upgrade-haproxy-env-vars-pxc - optional: true - imagePullPolicy: Always - livenessProbe: - exec: - command: - - /var/lib/mysql/liveness-check.sh - failureThreshold: 3 - initialDelaySeconds: 300 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 5 - name: pxc - ports: - - containerPort: 3306 - name: mysql - protocol: TCP - - containerPort: 4444 - name: sst - protocol: TCP - - containerPort: 4567 - name: write-set - protocol: TCP - - containerPort: 4568 - name: ist - protocol: TCP - - containerPort: 33062 - name: mysql-admin - protocol: TCP - - containerPort: 33060 - name: mysqlx - protocol: TCP - readinessProbe: - exec: - command: - - /var/lib/mysql/readiness-check.sh - failureThreshold: 5 - initialDelaySeconds: 15 - periodSeconds: 30 - successThreshold: 1 - timeoutSeconds: 15 - resources: - requests: - cpu: 600m - memory: 1G - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/mysql - name: datadir - - mountPath: /etc/percona-xtradb-cluster.conf.d - name: config - - mountPath: /tmp - name: tmp - - mountPath: /etc/mysql/ssl - name: ssl - - mountPath: /etc/mysql/ssl-internal - name: ssl-internal - - mountPath: /etc/mysql/mysql-users-secret - name: mysql-users-secret-file - - mountPath: /etc/my.cnf.d - name: auto-config - - mountPath: /etc/mysql/vault-keyring-secret - name: vault-keyring-secret - - mountPath: /etc/mysql/init-file - name: mysql-init-file - dnsPolicy: ClusterFirst - initContainers: - - command: - - /pxc-init-entrypoint.sh - imagePullPolicy: Always - name: pxc-init - resources: - limits: - cpu: 50m - memory: 50M - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/mysql - name: datadir - restartPolicy: Always - schedulerName: default-scheduler - securityContext: - fsGroup: 1001 - supplementalGroups: - - 1001 - serviceAccount: default - serviceAccountName: default - terminationGracePeriodSeconds: 600 - volumes: - - emptyDir: {} - name: tmp - - configMap: - defaultMode: 420 - name: upgrade-haproxy-pxc - optional: true - name: config - - name: ssl-internal - secret: - defaultMode: 420 - optional: true - secretName: some-name-ssl-internal - - name: ssl - secret: - defaultMode: 420 - optional: false - secretName: some-name-ssl - - configMap: - defaultMode: 420 - name: auto-upgrade-haproxy-pxc - optional: true - name: auto-config - - name: vault-keyring-secret - secret: - defaultMode: 420 - optional: true - secretName: some-name-vault - - name: mysql-users-secret-file - secret: - defaultMode: 420 - optional: false - secretName: internal-upgrade-haproxy - - name: mysql-init-file - secret: - defaultMode: 420 - optional: true - secretName: upgrade-haproxy-mysql-init - updateStrategy: - type: OnDelete - volumeClaimTemplates: - - metadata: - name: datadir - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 6G - status: - phase: Pending diff --git a/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-pxc-oc.yml b/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-pxc-oc.yml index e5388ae8d8..8f1c3a0ebf 100644 --- a/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-pxc-oc.yml +++ b/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-pxc-oc.yml @@ -8,6 +8,9 @@ metadata: kind: PerconaXtraDBCluster name: upgrade-haproxy spec: + persistentVolumeClaimRetentionPolicy: + whenDeleted: Retain + whenScaled: Retain podManagementPolicy: OrderedReady replicas: 3 revisionHistoryLimit: 10 @@ -265,6 +268,12 @@ spec: type: OnDelete volumeClaimTemplates: - metadata: + labels: + app.kubernetes.io/component: pxc + app.kubernetes.io/instance: upgrade-haproxy + app.kubernetes.io/managed-by: percona-xtradb-cluster-operator + app.kubernetes.io/name: percona-xtradb-cluster + app.kubernetes.io/part-of: percona-xtradb-cluster name: datadir spec: accessModes: diff --git a/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-pxc.yml b/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-pxc.yml index f637509a77..d674ed97e8 100644 --- a/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-pxc.yml +++ b/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-pxc.yml @@ -8,6 +8,9 @@ metadata: kind: PerconaXtraDBCluster name: upgrade-haproxy spec: + persistentVolumeClaimRetentionPolicy: + whenDeleted: Retain + whenScaled: Retain podManagementPolicy: OrderedReady replicas: 3 revisionHistoryLimit: 10 @@ -266,6 +269,12 @@ spec: type: OnDelete volumeClaimTemplates: - metadata: + labels: + app.kubernetes.io/component: pxc + app.kubernetes.io/instance: upgrade-haproxy + app.kubernetes.io/managed-by: percona-xtradb-cluster-operator + app.kubernetes.io/name: percona-xtradb-cluster + app.kubernetes.io/part-of: percona-xtradb-cluster name: datadir spec: accessModes: diff --git a/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-proxysql-k127-oc.yml b/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-proxysql-k127-oc.yml deleted file mode 100644 index 64121f4e1d..0000000000 --- a/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-proxysql-k127-oc.yml +++ /dev/null @@ -1,235 +0,0 @@ -apiVersion: apps/v1 -kind: StatefulSet -metadata: - generation: 2 - name: upgrade-proxysql-proxysql - ownerReferences: - - controller: true - kind: PerconaXtraDBCluster - name: upgrade-proxysql -spec: - persistentVolumeClaimRetentionPolicy: - whenDeleted: Retain - whenScaled: Retain - podManagementPolicy: OrderedReady - replicas: 3 - revisionHistoryLimit: 10 - selector: - matchLabels: - app.kubernetes.io/component: proxysql - app.kubernetes.io/instance: upgrade-proxysql - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - serviceName: upgrade-proxysql-proxysql-unready - template: - metadata: - labels: - app.kubernetes.io/component: proxysql - app.kubernetes.io/instance: upgrade-proxysql - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - spec: - affinity: - podAntiAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - - labelSelector: - matchLabels: - app.kubernetes.io/component: proxysql - app.kubernetes.io/instance: upgrade-proxysql - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - topologyKey: kubernetes.io/hostname - containers: - - args: - - proxysql - - -f - - -c - - /etc/proxysql/proxysql.cnf - - --reload - command: - - /opt/percona/proxysql-entrypoint.sh - env: - - name: PXC_SERVICE - value: upgrade-proxysql-pxc - - name: OPERATOR_PASSWORD - valueFrom: - secretKeyRef: - key: operator - name: internal-upgrade-proxysql - - name: PROXY_ADMIN_USER - value: proxyadmin - - name: PROXY_ADMIN_PASSWORD - valueFrom: - secretKeyRef: - key: proxyadmin - name: internal-upgrade-proxysql - - name: MONITOR_PASSWORD - valueFrom: - secretKeyRef: - key: monitor - name: internal-upgrade-proxysql - envFrom: - - secretRef: - name: upgrade-proxysql-env-vars-proxysql - optional: true - imagePullPolicy: Always - name: proxysql - ports: - - containerPort: 3306 - name: mysql - protocol: TCP - - containerPort: 6032 - name: proxyadm - protocol: TCP - resources: - requests: - cpu: 600m - memory: 1G - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/proxysql - name: proxydata - - mountPath: /etc/proxysql/ssl - name: ssl - - mountPath: /etc/proxysql/ssl-internal - name: ssl-internal - - mountPath: /opt/percona - name: bin - - args: - - /opt/percona/peer-list - - -on-change=/opt/percona/proxysql_add_pxc_nodes.sh - - -service=$(PXC_SERVICE) - env: - - name: PXC_SERVICE - value: upgrade-proxysql-pxc - - name: OPERATOR_PASSWORD - valueFrom: - secretKeyRef: - key: operator - name: internal-upgrade-proxysql - - name: PROXY_ADMIN_USER - value: proxyadmin - - name: PROXY_ADMIN_PASSWORD - valueFrom: - secretKeyRef: - key: proxyadmin - name: internal-upgrade-proxysql - - name: MONITOR_PASSWORD - valueFrom: - secretKeyRef: - key: monitor - name: internal-upgrade-proxysql - envFrom: - - secretRef: - name: upgrade-proxysql-env-vars-proxysql - optional: true - imagePullPolicy: Always - name: pxc-monit - resources: {} - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /opt/percona - name: bin - - args: - - /opt/percona/peer-list - - -on-change=/opt/percona/proxysql_add_proxysql_nodes.sh - - -service=$(PROXYSQL_SERVICE) - env: - - name: PROXYSQL_SERVICE - value: upgrade-proxysql-proxysql-unready - - name: OPERATOR_PASSWORD - valueFrom: - secretKeyRef: - key: operator - name: internal-upgrade-proxysql - - name: PROXY_ADMIN_USER - value: proxyadmin - - name: PROXY_ADMIN_PASSWORD - valueFrom: - secretKeyRef: - key: proxyadmin - name: internal-upgrade-proxysql - - name: MONITOR_PASSWORD - valueFrom: - secretKeyRef: - key: monitor - name: internal-upgrade-proxysql - envFrom: - - secretRef: - name: upgrade-proxysql-env-vars-proxysql - optional: true - imagePullPolicy: Always - name: proxysql-monit - resources: {} - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /opt/percona - name: bin - dnsPolicy: ClusterFirst - initContainers: - - command: - - /pxc-init-entrypoint.sh - imagePullPolicy: Always - name: pxc-init - resources: - limits: - cpu: 50m - memory: 50M - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/mysql - name: bin - - command: - - /proxysql-init-entrypoint.sh - imagePullPolicy: Always - name: proxysql-init - resources: - limits: - cpu: 50m - memory: 50M - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /opt/percona - name: bin - restartPolicy: Always - schedulerName: default-scheduler - securityContext: - supplementalGroups: - - 1001 - serviceAccount: default - serviceAccountName: default - terminationGracePeriodSeconds: 30 - volumes: - - name: ssl-internal - secret: - defaultMode: 420 - optional: true - secretName: some-name-ssl-internal - - name: ssl - secret: - defaultMode: 420 - optional: false - secretName: some-name-ssl - - emptyDir: {} - name: bin - updateStrategy: - type: RollingUpdate - volumeClaimTemplates: - - metadata: - name: proxydata - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 2G - status: - phase: Pending diff --git a/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-proxysql-k127.yml b/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-proxysql-k127.yml deleted file mode 100644 index 85ba99bea1..0000000000 --- a/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-proxysql-k127.yml +++ /dev/null @@ -1,236 +0,0 @@ -apiVersion: apps/v1 -kind: StatefulSet -metadata: - generation: 2 - name: upgrade-proxysql-proxysql - ownerReferences: - - controller: true - kind: PerconaXtraDBCluster - name: upgrade-proxysql -spec: - persistentVolumeClaimRetentionPolicy: - whenDeleted: Retain - whenScaled: Retain - podManagementPolicy: OrderedReady - replicas: 3 - revisionHistoryLimit: 10 - selector: - matchLabels: - app.kubernetes.io/component: proxysql - app.kubernetes.io/instance: upgrade-proxysql - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - serviceName: upgrade-proxysql-proxysql-unready - template: - metadata: - labels: - app.kubernetes.io/component: proxysql - app.kubernetes.io/instance: upgrade-proxysql - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - spec: - affinity: - podAntiAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - - labelSelector: - matchLabels: - app.kubernetes.io/component: proxysql - app.kubernetes.io/instance: upgrade-proxysql - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - topologyKey: kubernetes.io/hostname - containers: - - args: - - proxysql - - -f - - -c - - /etc/proxysql/proxysql.cnf - - --reload - command: - - /opt/percona/proxysql-entrypoint.sh - env: - - name: PXC_SERVICE - value: upgrade-proxysql-pxc - - name: OPERATOR_PASSWORD - valueFrom: - secretKeyRef: - key: operator - name: internal-upgrade-proxysql - - name: PROXY_ADMIN_USER - value: proxyadmin - - name: PROXY_ADMIN_PASSWORD - valueFrom: - secretKeyRef: - key: proxyadmin - name: internal-upgrade-proxysql - - name: MONITOR_PASSWORD - valueFrom: - secretKeyRef: - key: monitor - name: internal-upgrade-proxysql - envFrom: - - secretRef: - name: upgrade-proxysql-env-vars-proxysql - optional: true - imagePullPolicy: Always - name: proxysql - ports: - - containerPort: 3306 - name: mysql - protocol: TCP - - containerPort: 6032 - name: proxyadm - protocol: TCP - resources: - requests: - cpu: 600m - memory: 1G - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/proxysql - name: proxydata - - mountPath: /etc/proxysql/ssl - name: ssl - - mountPath: /etc/proxysql/ssl-internal - name: ssl-internal - - mountPath: /opt/percona - name: bin - - args: - - /opt/percona/peer-list - - -on-change=/opt/percona/proxysql_add_pxc_nodes.sh - - -service=$(PXC_SERVICE) - env: - - name: PXC_SERVICE - value: upgrade-proxysql-pxc - - name: OPERATOR_PASSWORD - valueFrom: - secretKeyRef: - key: operator - name: internal-upgrade-proxysql - - name: PROXY_ADMIN_USER - value: proxyadmin - - name: PROXY_ADMIN_PASSWORD - valueFrom: - secretKeyRef: - key: proxyadmin - name: internal-upgrade-proxysql - - name: MONITOR_PASSWORD - valueFrom: - secretKeyRef: - key: monitor - name: internal-upgrade-proxysql - envFrom: - - secretRef: - name: upgrade-proxysql-env-vars-proxysql - optional: true - imagePullPolicy: Always - name: pxc-monit - resources: {} - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /opt/percona - name: bin - - args: - - /opt/percona/peer-list - - -on-change=/opt/percona/proxysql_add_proxysql_nodes.sh - - -service=$(PROXYSQL_SERVICE) - env: - - name: PROXYSQL_SERVICE - value: upgrade-proxysql-proxysql-unready - - name: OPERATOR_PASSWORD - valueFrom: - secretKeyRef: - key: operator - name: internal-upgrade-proxysql - - name: PROXY_ADMIN_USER - value: proxyadmin - - name: PROXY_ADMIN_PASSWORD - valueFrom: - secretKeyRef: - key: proxyadmin - name: internal-upgrade-proxysql - - name: MONITOR_PASSWORD - valueFrom: - secretKeyRef: - key: monitor - name: internal-upgrade-proxysql - envFrom: - - secretRef: - name: upgrade-proxysql-env-vars-proxysql - optional: true - imagePullPolicy: Always - name: proxysql-monit - resources: {} - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /opt/percona - name: bin - dnsPolicy: ClusterFirst - initContainers: - - command: - - /pxc-init-entrypoint.sh - imagePullPolicy: Always - name: pxc-init - resources: - limits: - cpu: 50m - memory: 50M - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/mysql - name: bin - - command: - - /proxysql-init-entrypoint.sh - imagePullPolicy: Always - name: proxysql-init - resources: - limits: - cpu: 50m - memory: 50M - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /opt/percona - name: bin - restartPolicy: Always - schedulerName: default-scheduler - securityContext: - fsGroup: 1001 - supplementalGroups: - - 1001 - serviceAccount: default - serviceAccountName: default - terminationGracePeriodSeconds: 30 - volumes: - - name: ssl-internal - secret: - defaultMode: 420 - optional: true - secretName: some-name-ssl-internal - - name: ssl - secret: - defaultMode: 420 - optional: false - secretName: some-name-ssl - - emptyDir: {} - name: bin - updateStrategy: - type: RollingUpdate - volumeClaimTemplates: - - metadata: - name: proxydata - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 2G - status: - phase: Pending diff --git a/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-proxysql-oc.yml b/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-proxysql-oc.yml index 4ad887b1ba..2507201037 100644 --- a/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-proxysql-oc.yml +++ b/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-proxysql-oc.yml @@ -8,6 +8,9 @@ metadata: kind: PerconaXtraDBCluster name: upgrade-proxysql spec: + persistentVolumeClaimRetentionPolicy: + whenDeleted: Retain + whenScaled: Retain podManagementPolicy: OrderedReady replicas: 3 revisionHistoryLimit: 10 @@ -221,6 +224,12 @@ spec: type: RollingUpdate volumeClaimTemplates: - metadata: + labels: + app.kubernetes.io/component: proxysql + app.kubernetes.io/instance: upgrade-proxysql + app.kubernetes.io/managed-by: percona-xtradb-cluster-operator + app.kubernetes.io/name: percona-xtradb-cluster + app.kubernetes.io/part-of: percona-xtradb-cluster name: proxydata spec: accessModes: diff --git a/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-proxysql.yml b/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-proxysql.yml index 998fb3a571..35250906a3 100644 --- a/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-proxysql.yml +++ b/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-proxysql.yml @@ -8,6 +8,9 @@ metadata: kind: PerconaXtraDBCluster name: upgrade-proxysql spec: + persistentVolumeClaimRetentionPolicy: + whenDeleted: Retain + whenScaled: Retain podManagementPolicy: OrderedReady replicas: 3 revisionHistoryLimit: 10 @@ -40,7 +43,15 @@ spec: app.kubernetes.io/part-of: percona-xtradb-cluster topologyKey: kubernetes.io/hostname containers: - - env: + - args: + - proxysql + - -f + - -c + - /etc/proxysql/proxysql.cnf + - --reload + command: + - /opt/percona/proxysql-entrypoint.sh + env: - name: PXC_SERVICE value: upgrade-proxysql-pxc - name: OPERATOR_PASSWORD @@ -214,6 +225,12 @@ spec: type: RollingUpdate volumeClaimTemplates: - metadata: + labels: + app.kubernetes.io/component: proxysql + app.kubernetes.io/instance: upgrade-proxysql + app.kubernetes.io/managed-by: percona-xtradb-cluster-operator + app.kubernetes.io/name: percona-xtradb-cluster + app.kubernetes.io/part-of: percona-xtradb-cluster name: proxydata spec: accessModes: diff --git a/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-pxc-k127-oc.yml b/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-pxc-k127-oc.yml deleted file mode 100644 index eae6955b57..0000000000 --- a/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-pxc-k127-oc.yml +++ /dev/null @@ -1,279 +0,0 @@ -apiVersion: apps/v1 -kind: StatefulSet -metadata: - generation: 2 - name: upgrade-proxysql-pxc - ownerReferences: - - controller: true - kind: PerconaXtraDBCluster - name: upgrade-proxysql -spec: - persistentVolumeClaimRetentionPolicy: - whenDeleted: Retain - whenScaled: Retain - podManagementPolicy: OrderedReady - replicas: 3 - revisionHistoryLimit: 10 - selector: - matchLabels: - app.kubernetes.io/component: pxc - app.kubernetes.io/instance: upgrade-proxysql - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - serviceName: upgrade-proxysql-pxc - template: - metadata: - labels: - app.kubernetes.io/component: pxc - app.kubernetes.io/instance: upgrade-proxysql - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - spec: - affinity: - podAntiAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - - labelSelector: - matchLabels: - app.kubernetes.io/component: pxc - app.kubernetes.io/instance: upgrade-proxysql - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - topologyKey: kubernetes.io/hostname - containers: - - env: - - name: LOG_DATA_DIR - value: /var/lib/mysql - - name: POD_NAMESPASE - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.namespace - - name: POD_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.name - envFrom: - - secretRef: - name: upgrade-proxysql-log-collector - optional: true - imagePullPolicy: Always - name: logs - resources: - requests: - cpu: 200m - memory: 100M - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/mysql - name: datadir - - args: - - logrotate - env: - - name: SERVICE_TYPE - value: mysql - - name: MONITOR_PASSWORD - valueFrom: - secretKeyRef: - key: monitor - name: internal-upgrade-proxysql - imagePullPolicy: Always - name: logrotate - resources: - requests: - cpu: 200m - memory: 100M - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/mysql - name: datadir - - args: - - mysqld - command: - - /var/lib/mysql/pxc-entrypoint.sh - env: - - name: PXC_SERVICE - value: upgrade-proxysql-pxc-unready - - name: MONITOR_HOST - value: '%' - - name: MYSQL_ROOT_PASSWORD - valueFrom: - secretKeyRef: - key: root - name: internal-upgrade-proxysql - - name: XTRABACKUP_PASSWORD - valueFrom: - secretKeyRef: - key: xtrabackup - name: internal-upgrade-proxysql - - name: MONITOR_PASSWORD - valueFrom: - secretKeyRef: - key: monitor - name: internal-upgrade-proxysql - - name: LOG_DATA_DIR - value: /var/lib/mysql - - name: IS_LOGCOLLECTOR - value: "yes" - - name: OPERATOR_ADMIN_PASSWORD - valueFrom: - secretKeyRef: - key: operator - name: internal-upgrade-proxysql - - name: LIVENESS_CHECK_TIMEOUT - value: "5" - - name: READINESS_CHECK_TIMEOUT - value: "15" - - name: DEFAULT_AUTHENTICATION_PLUGIN - value: mysql_native_password - - name: MYSQL_NOTIFY_SOCKET - value: /var/lib/mysql/notify.sock - - name: MYSQL_STATE_FILE - value: /var/lib/mysql/mysql.state - envFrom: - - secretRef: - name: upgrade-proxysql-env-vars-pxc - optional: true - imagePullPolicy: Always - livenessProbe: - exec: - command: - - /var/lib/mysql/liveness-check.sh - failureThreshold: 3 - initialDelaySeconds: 300 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 5 - name: pxc - ports: - - containerPort: 3306 - name: mysql - protocol: TCP - - containerPort: 4444 - name: sst - protocol: TCP - - containerPort: 4567 - name: write-set - protocol: TCP - - containerPort: 4568 - name: ist - protocol: TCP - - containerPort: 33062 - name: mysql-admin - protocol: TCP - - containerPort: 33060 - name: mysqlx - protocol: TCP - readinessProbe: - exec: - command: - - /var/lib/mysql/readiness-check.sh - failureThreshold: 5 - initialDelaySeconds: 15 - periodSeconds: 30 - successThreshold: 1 - timeoutSeconds: 15 - resources: - requests: - cpu: 600m - memory: 1G - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/mysql - name: datadir - - mountPath: /etc/percona-xtradb-cluster.conf.d - name: config - - mountPath: /tmp - name: tmp - - mountPath: /etc/mysql/ssl - name: ssl - - mountPath: /etc/mysql/ssl-internal - name: ssl-internal - - mountPath: /etc/mysql/mysql-users-secret - name: mysql-users-secret-file - - mountPath: /etc/my.cnf.d - name: auto-config - - mountPath: /etc/mysql/vault-keyring-secret - name: vault-keyring-secret - - mountPath: /etc/mysql/init-file - name: mysql-init-file - dnsPolicy: ClusterFirst - initContainers: - - command: - - /pxc-init-entrypoint.sh - imagePullPolicy: Always - name: pxc-init - resources: - limits: - cpu: 50m - memory: 50M - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/mysql - name: datadir - restartPolicy: Always - schedulerName: default-scheduler - securityContext: - supplementalGroups: - - 1001 - serviceAccount: default - serviceAccountName: default - terminationGracePeriodSeconds: 600 - volumes: - - emptyDir: {} - name: tmp - - configMap: - defaultMode: 420 - name: upgrade-proxysql-pxc - optional: true - name: config - - name: ssl-internal - secret: - defaultMode: 420 - optional: true - secretName: some-name-ssl-internal - - name: ssl - secret: - defaultMode: 420 - optional: false - secretName: some-name-ssl - - configMap: - defaultMode: 420 - name: auto-upgrade-proxysql-pxc - optional: true - name: auto-config - - name: vault-keyring-secret - secret: - defaultMode: 420 - optional: true - secretName: some-name-vault - - name: mysql-users-secret-file - secret: - defaultMode: 420 - optional: false - secretName: internal-upgrade-proxysql - - name: mysql-init-file - secret: - defaultMode: 420 - optional: true - secretName: upgrade-proxysql-mysql-init - updateStrategy: - type: OnDelete - volumeClaimTemplates: - - metadata: - name: datadir - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 6G - status: - phase: Pending diff --git a/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-pxc-k127.yml b/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-pxc-k127.yml deleted file mode 100644 index bcc4bb49ba..0000000000 --- a/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-pxc-k127.yml +++ /dev/null @@ -1,280 +0,0 @@ -apiVersion: apps/v1 -kind: StatefulSet -metadata: - generation: 2 - name: upgrade-proxysql-pxc - ownerReferences: - - controller: true - kind: PerconaXtraDBCluster - name: upgrade-proxysql -spec: - persistentVolumeClaimRetentionPolicy: - whenDeleted: Retain - whenScaled: Retain - podManagementPolicy: OrderedReady - replicas: 3 - revisionHistoryLimit: 10 - selector: - matchLabels: - app.kubernetes.io/component: pxc - app.kubernetes.io/instance: upgrade-proxysql - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - serviceName: upgrade-proxysql-pxc - template: - metadata: - labels: - app.kubernetes.io/component: pxc - app.kubernetes.io/instance: upgrade-proxysql - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - spec: - affinity: - podAntiAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - - labelSelector: - matchLabels: - app.kubernetes.io/component: pxc - app.kubernetes.io/instance: upgrade-proxysql - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - topologyKey: kubernetes.io/hostname - containers: - - env: - - name: LOG_DATA_DIR - value: /var/lib/mysql - - name: POD_NAMESPASE - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.namespace - - name: POD_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.name - envFrom: - - secretRef: - name: upgrade-proxysql-log-collector - optional: true - imagePullPolicy: Always - name: logs - resources: - requests: - cpu: 200m - memory: 100M - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/mysql - name: datadir - - args: - - logrotate - env: - - name: SERVICE_TYPE - value: mysql - - name: MONITOR_PASSWORD - valueFrom: - secretKeyRef: - key: monitor - name: internal-upgrade-proxysql - imagePullPolicy: Always - name: logrotate - resources: - requests: - cpu: 200m - memory: 100M - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/mysql - name: datadir - - args: - - mysqld - command: - - /var/lib/mysql/pxc-entrypoint.sh - env: - - name: PXC_SERVICE - value: upgrade-proxysql-pxc-unready - - name: MONITOR_HOST - value: '%' - - name: MYSQL_ROOT_PASSWORD - valueFrom: - secretKeyRef: - key: root - name: internal-upgrade-proxysql - - name: XTRABACKUP_PASSWORD - valueFrom: - secretKeyRef: - key: xtrabackup - name: internal-upgrade-proxysql - - name: MONITOR_PASSWORD - valueFrom: - secretKeyRef: - key: monitor - name: internal-upgrade-proxysql - - name: LOG_DATA_DIR - value: /var/lib/mysql - - name: IS_LOGCOLLECTOR - value: "yes" - - name: OPERATOR_ADMIN_PASSWORD - valueFrom: - secretKeyRef: - key: operator - name: internal-upgrade-proxysql - - name: LIVENESS_CHECK_TIMEOUT - value: "5" - - name: READINESS_CHECK_TIMEOUT - value: "15" - - name: DEFAULT_AUTHENTICATION_PLUGIN - value: mysql_native_password - - name: MYSQL_NOTIFY_SOCKET - value: /var/lib/mysql/notify.sock - - name: MYSQL_STATE_FILE - value: /var/lib/mysql/mysql.state - envFrom: - - secretRef: - name: upgrade-proxysql-env-vars-pxc - optional: true - imagePullPolicy: Always - livenessProbe: - exec: - command: - - /var/lib/mysql/liveness-check.sh - failureThreshold: 3 - initialDelaySeconds: 300 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 5 - name: pxc - ports: - - containerPort: 3306 - name: mysql - protocol: TCP - - containerPort: 4444 - name: sst - protocol: TCP - - containerPort: 4567 - name: write-set - protocol: TCP - - containerPort: 4568 - name: ist - protocol: TCP - - containerPort: 33062 - name: mysql-admin - protocol: TCP - - containerPort: 33060 - name: mysqlx - protocol: TCP - readinessProbe: - exec: - command: - - /var/lib/mysql/readiness-check.sh - failureThreshold: 5 - initialDelaySeconds: 15 - periodSeconds: 30 - successThreshold: 1 - timeoutSeconds: 15 - resources: - requests: - cpu: 600m - memory: 1G - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/mysql - name: datadir - - mountPath: /etc/percona-xtradb-cluster.conf.d - name: config - - mountPath: /tmp - name: tmp - - mountPath: /etc/mysql/ssl - name: ssl - - mountPath: /etc/mysql/ssl-internal - name: ssl-internal - - mountPath: /etc/mysql/mysql-users-secret - name: mysql-users-secret-file - - mountPath: /etc/my.cnf.d - name: auto-config - - mountPath: /etc/mysql/vault-keyring-secret - name: vault-keyring-secret - - mountPath: /etc/mysql/init-file - name: mysql-init-file - dnsPolicy: ClusterFirst - initContainers: - - command: - - /pxc-init-entrypoint.sh - imagePullPolicy: Always - name: pxc-init - resources: - limits: - cpu: 50m - memory: 50M - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/mysql - name: datadir - restartPolicy: Always - schedulerName: default-scheduler - securityContext: - fsGroup: 1001 - supplementalGroups: - - 1001 - serviceAccount: default - serviceAccountName: default - terminationGracePeriodSeconds: 600 - volumes: - - emptyDir: {} - name: tmp - - configMap: - defaultMode: 420 - name: upgrade-proxysql-pxc - optional: true - name: config - - name: ssl-internal - secret: - defaultMode: 420 - optional: true - secretName: some-name-ssl-internal - - name: ssl - secret: - defaultMode: 420 - optional: false - secretName: some-name-ssl - - configMap: - defaultMode: 420 - name: auto-upgrade-proxysql-pxc - optional: true - name: auto-config - - name: vault-keyring-secret - secret: - defaultMode: 420 - optional: true - secretName: some-name-vault - - name: mysql-users-secret-file - secret: - defaultMode: 420 - optional: false - secretName: internal-upgrade-proxysql - - name: mysql-init-file - secret: - defaultMode: 420 - optional: true - secretName: upgrade-proxysql-mysql-init - updateStrategy: - type: OnDelete - volumeClaimTemplates: - - metadata: - name: datadir - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 6G - status: - phase: Pending diff --git a/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-pxc-oc.yml b/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-pxc-oc.yml index 717caf26cd..8d71c22e54 100644 --- a/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-pxc-oc.yml +++ b/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-pxc-oc.yml @@ -8,6 +8,9 @@ metadata: kind: PerconaXtraDBCluster name: upgrade-proxysql spec: + persistentVolumeClaimRetentionPolicy: + whenDeleted: Retain + whenScaled: Retain podManagementPolicy: OrderedReady replicas: 3 revisionHistoryLimit: 10 @@ -265,6 +268,12 @@ spec: type: OnDelete volumeClaimTemplates: - metadata: + labels: + app.kubernetes.io/component: pxc + app.kubernetes.io/instance: upgrade-proxysql + app.kubernetes.io/managed-by: percona-xtradb-cluster-operator + app.kubernetes.io/name: percona-xtradb-cluster + app.kubernetes.io/part-of: percona-xtradb-cluster name: datadir spec: accessModes: diff --git a/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-pxc.yml b/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-pxc.yml index 7c9b8a5929..925167d358 100644 --- a/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-pxc.yml +++ b/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-pxc.yml @@ -8,6 +8,9 @@ metadata: kind: PerconaXtraDBCluster name: upgrade-proxysql spec: + persistentVolumeClaimRetentionPolicy: + whenDeleted: Retain + whenScaled: Retain podManagementPolicy: OrderedReady replicas: 3 revisionHistoryLimit: 10 @@ -266,6 +269,12 @@ spec: type: OnDelete volumeClaimTemplates: - metadata: + labels: + app.kubernetes.io/component: pxc + app.kubernetes.io/instance: upgrade-proxysql + app.kubernetes.io/managed-by: percona-xtradb-cluster-operator + app.kubernetes.io/name: percona-xtradb-cluster + app.kubernetes.io/part-of: percona-xtradb-cluster name: datadir spec: accessModes: From d70683deb23e3da2b1f52d5b5eab70e084734336 Mon Sep 17 00:00:00 2001 From: Eleonora Zinchenko Date: Mon, 23 Dec 2024 18:54:36 +0200 Subject: [PATCH 47/60] K8SPXC-1537: Update images and versions for 1.16.1 release --- deploy/bundle.yaml | 2 +- deploy/cr-minimal.yaml | 4 ++-- deploy/cr.yaml | 8 ++++---- deploy/cw-bundle.yaml | 2 +- deploy/cw-operator.yaml | 2 +- deploy/operator.yaml | 2 +- e2e-tests/release_versions | 10 +++++----- version/version.go | 2 +- 8 files changed, 16 insertions(+), 16 deletions(-) diff --git a/deploy/bundle.yaml b/deploy/bundle.yaml index b49a9b175c..c254b2b0c4 100644 --- a/deploy/bundle.yaml +++ b/deploy/bundle.yaml @@ -11522,7 +11522,7 @@ spec: value: percona-xtradb-cluster-operator - name: DISABLE_TELEMETRY value: "false" - image: percona/percona-xtradb-cluster-operator:1.16.0 + image: percona/percona-xtradb-cluster-operator:1.16.1 imagePullPolicy: Always livenessProbe: failureThreshold: 3 diff --git a/deploy/cr-minimal.yaml b/deploy/cr-minimal.yaml index e6ee1e879c..15be85d4d0 100644 --- a/deploy/cr-minimal.yaml +++ b/deploy/cr-minimal.yaml @@ -3,7 +3,7 @@ kind: PerconaXtraDBCluster metadata: name: minimal-cluster spec: - crVersion: 1.16.0 + crVersion: 1.16.1 secretsName: minimal-cluster-secrets unsafeFlags: tls: true @@ -28,4 +28,4 @@ spec: image: percona/haproxy:2.8.11 logcollector: enabled: true - image: percona/percona-xtradb-cluster-operator:1.16.0-logcollector-fluentbit3.2.2 + image: percona/percona-xtradb-cluster-operator:1.16.1-logcollector-fluentbit3.2.2 diff --git a/deploy/cr.yaml b/deploy/cr.yaml index 42fc8d06c4..eda646ded2 100644 --- a/deploy/cr.yaml +++ b/deploy/cr.yaml @@ -10,7 +10,7 @@ metadata: # annotations: # percona.com/issue-vault-token: "true" spec: - crVersion: 1.16.0 + crVersion: 1.16.1 # enableVolumeExpansion: false # ignoreAnnotations: # - iam.amazonaws.com/role @@ -22,7 +22,7 @@ spec: # sslInternalSecretName: cluster1-ssl-internal # logCollectorSecretName: cluster1-log-collector-secrets # initContainer: -# image: percona/percona-xtradb-cluster-operator:1.16.0 +# image: percona/percona-xtradb-cluster-operator:1.16.1 # containerSecurityContext: # privileged: false # runAsUser: 1001 @@ -543,7 +543,7 @@ spec: # - 10.0.0.0/8 logcollector: enabled: true - image: percona/percona-xtradb-cluster-operator:1.16.0-logcollector-fluentbit3.2.2 + image: percona/percona-xtradb-cluster-operator:1.16.1-logcollector-fluentbit3.2.2 # configuration: | # [OUTPUT] # Name es @@ -589,7 +589,7 @@ spec: cpu: 300m backup: # allowParallel: true - image: percona/percona-xtradb-cluster-operator:1.16.0-pxc8.0-backup-pxb8.0.35 + image: percona/percona-xtradb-cluster-operator:1.16.1-pxc8.0-backup-pxb8.0.35 # backoffLimit: 6 # activeDeadlineSeconds: 3600 # serviceAccountName: percona-xtradb-cluster-operator diff --git a/deploy/cw-bundle.yaml b/deploy/cw-bundle.yaml index ff6ce4ba4c..bd5977aba1 100644 --- a/deploy/cw-bundle.yaml +++ b/deploy/cw-bundle.yaml @@ -11532,7 +11532,7 @@ spec: value: percona-xtradb-cluster-operator - name: DISABLE_TELEMETRY value: "false" - image: percona/percona-xtradb-cluster-operator:1.16.0 + image: percona/percona-xtradb-cluster-operator:1.16.1 imagePullPolicy: Always resources: limits: diff --git a/deploy/cw-operator.yaml b/deploy/cw-operator.yaml index c9dd05415c..3f0210ea46 100644 --- a/deploy/cw-operator.yaml +++ b/deploy/cw-operator.yaml @@ -42,7 +42,7 @@ spec: value: percona-xtradb-cluster-operator - name: DISABLE_TELEMETRY value: "false" - image: percona/percona-xtradb-cluster-operator:1.16.0 + image: percona/percona-xtradb-cluster-operator:1.16.1 imagePullPolicy: Always resources: limits: diff --git a/deploy/operator.yaml b/deploy/operator.yaml index 67bd5c469d..6cf721cb55 100644 --- a/deploy/operator.yaml +++ b/deploy/operator.yaml @@ -45,7 +45,7 @@ spec: value: percona-xtradb-cluster-operator - name: DISABLE_TELEMETRY value: "false" - image: percona/percona-xtradb-cluster-operator:1.16.0 + image: percona/percona-xtradb-cluster-operator:1.16.1 imagePullPolicy: Always livenessProbe: failureThreshold: 3 diff --git a/e2e-tests/release_versions b/e2e-tests/release_versions index 61af93eb5f..c1d8bc5343 100644 --- a/e2e-tests/release_versions +++ b/e2e-tests/release_versions @@ -1,18 +1,18 @@ # Images versions -IMAGE_OPERATOR=percona/percona-xtradb-cluster-operator:1.16.0 +IMAGE_OPERATOR=percona/percona-xtradb-cluster-operator:1.16.1 IMAGE_PXC84=percona/percona-xtradb-cluster:8.4.2-2.1 -IMAGE_BACKUP84=percona/percona-xtradb-cluster-operator:1.16.0-pxc8.4-backup-pxb8.4.0 +IMAGE_BACKUP84=percona/percona-xtradb-cluster-operator:1.16.1-pxc8.4-backup-pxb8.4.0 IMAGE_PXC80=percona/percona-xtradb-cluster:8.0.39-30.1 -IMAGE_BACKUP80=percona/percona-xtradb-cluster-operator:1.16.0-pxc8.0-backup-pxb8.0.35 +IMAGE_BACKUP80=percona/percona-xtradb-cluster-operator:1.16.1-pxc8.0-backup-pxb8.0.35 IMAGE_PXC57=percona/percona-xtradb-cluster:5.7.44-31.65 -IMAGE_BACKUP57=percona/percona-xtradb-cluster-operator:1.16.0-pxc5.7-backup-pxb2.4.29 +IMAGE_BACKUP57=percona/percona-xtradb-cluster-operator:1.16.1-pxc5.7-backup-pxb2.4.29 IMAGE_PROXY=percona/proxysql2:2.7.1 IMAGE_HAPROXY=percona/haproxy:2.8.11 -IMAGE_LOGCOLLECTOR=percona/percona-xtradb-cluster-operator:1.16.0-logcollector-fluentbit3.2.2 +IMAGE_LOGCOLLECTOR=percona/percona-xtradb-cluster-operator:1.16.1-logcollector-fluentbit3.2.2 IMAGE_PMM_CLIENT=percona/pmm-client:2.44.0 IMAGE_PMM_SERVER=percona/pmm-server:2.44.0 diff --git a/version/version.go b/version/version.go index 3e5b1d8345..e3164ec04d 100644 --- a/version/version.go +++ b/version/version.go @@ -1,5 +1,5 @@ package version var ( - Version = "1.16.0" + Version = "1.16.1" ) From e82ff3f689424164e0226b1aa92584620545399f Mon Sep 17 00:00:00 2001 From: Vlad Gusev Date: Mon, 23 Dec 2024 11:14:18 +0200 Subject: [PATCH 48/60] fix: don't add the storage name twice to the scheduled backup name Don't add the storage name twice to the scheduled backup name Adding a storage name twice might make a job name longer than 63 characters and break backup creation --- pkg/naming/backup.go | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/pkg/naming/backup.go b/pkg/naming/backup.go index ec7957d5d6..c7e876d03e 100644 --- a/pkg/naming/backup.go +++ b/pkg/naming/backup.go @@ -52,23 +52,22 @@ func trimJobName(name string) string { } func ScheduledBackupName(crName, storageName, schedule string) string { - result := "cron-" + result := "cron" if len(crName) > 16 { - result += crName[:16] + result += "-" + crName[:16] } else { - result += crName + result += "-" + crName } if len(storageName) > 16 { - result += storageName[:16] + result += "-" + storageName[:16] } else { - result += storageName + result += "-" + storageName } - result += "-" + storageName + "-" tnow := time.Now() - result += fmt.Sprintf("%d%d%d%d%d%d", tnow.Year(), tnow.Month(), tnow.Day(), tnow.Hour(), tnow.Minute(), tnow.Second()) + result += "-" + fmt.Sprintf("%d%d%d%d%d%d", tnow.Year(), tnow.Month(), tnow.Day(), tnow.Hour(), tnow.Minute(), tnow.Second()) result += "-" + strconv.FormatUint(uint64(crc32.ChecksumIEEE([]byte(schedule))), 32)[:5] return result } From e8cbcec27cbdd57707c64c0bee498cbb0935830a Mon Sep 17 00:00:00 2001 From: Eleonora Zinchenko Date: Mon, 23 Dec 2024 09:27:54 +0200 Subject: [PATCH 49/60] Add delete .spec.crVersion for compare in functions and in tls-issue-self diffs --- e2e-tests/functions | 1 + e2e-tests/tls-issue-self/compare/pxc_some-name-enabled.yml | 1 - e2e-tests/tls-issue-self/compare/pxc_some-name.yml | 1 - 3 files changed, 1 insertion(+), 2 deletions(-) diff --git a/e2e-tests/functions b/e2e-tests/functions index 93bdda43f9..ec9549928f 100755 --- a/e2e-tests/functions +++ b/e2e-tests/functions @@ -496,6 +496,7 @@ compare_kubectl() { (.. | select(tag == "!!str")) |= sub("'$namespace'", "namespace") | (.. | select(tag == "!!str")) |= sub("kube-api-access-.*", "kube-api-access") | del(.. | select(has("annotations")).annotations | select(length==0)) | + del(.spec.crVersion) | del(.. | select(.[] == "percona-xtradb-cluster-operator-workload-token*"))' - >${new_result} diff -u ${expected_result} ${new_result} diff --git a/e2e-tests/tls-issue-self/compare/pxc_some-name-enabled.yml b/e2e-tests/tls-issue-self/compare/pxc_some-name-enabled.yml index 0124f49796..264d3c94f3 100644 --- a/e2e-tests/tls-issue-self/compare/pxc_some-name-enabled.yml +++ b/e2e-tests/tls-issue-self/compare/pxc_some-name-enabled.yml @@ -35,7 +35,6 @@ spec: resources: requests: storage: 1Gi - crVersion: 1.16.0 logcollector: enabled: true pmm: diff --git a/e2e-tests/tls-issue-self/compare/pxc_some-name.yml b/e2e-tests/tls-issue-self/compare/pxc_some-name.yml index 5e96b63042..5bbf5a8c75 100644 --- a/e2e-tests/tls-issue-self/compare/pxc_some-name.yml +++ b/e2e-tests/tls-issue-self/compare/pxc_some-name.yml @@ -35,7 +35,6 @@ spec: resources: requests: storage: 1Gi - crVersion: 1.16.0 logcollector: enabled: true pmm: From fe173c0f7ad991e6b43fcba877b965b6a9c2cf00 Mon Sep 17 00:00:00 2001 From: Eleonora Zinchenko Date: Mon, 23 Dec 2024 14:13:10 +0200 Subject: [PATCH 50/60] Add annotations for .spec.volumeClaimTemplate and clean up k127 for proxies tests --- ...atefulset_upgrade-haproxy-haproxy-k127.yml | 202 ------------- .../statefulset_upgrade-haproxy-haproxy.yml | 13 +- ...tatefulset_upgrade-haproxy-pxc-k127-oc.yml | 279 ----------------- .../statefulset_upgrade-haproxy-pxc-k127.yml | 280 ------------------ .../statefulset_upgrade-haproxy-pxc-oc.yml | 9 + .../statefulset_upgrade-haproxy-pxc.yml | 9 + ...lset_upgrade-proxysql-proxysql-k127-oc.yml | 235 --------------- ...efulset_upgrade-proxysql-proxysql-k127.yml | 236 --------------- ...atefulset_upgrade-proxysql-proxysql-oc.yml | 9 + .../statefulset_upgrade-proxysql-proxysql.yml | 19 +- ...atefulset_upgrade-proxysql-pxc-k127-oc.yml | 279 ----------------- .../statefulset_upgrade-proxysql-pxc-k127.yml | 280 ------------------ .../statefulset_upgrade-proxysql-pxc-oc.yml | 9 + .../statefulset_upgrade-proxysql-pxc.yml | 9 + 14 files changed, 75 insertions(+), 1793 deletions(-) delete mode 100644 e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-haproxy-k127.yml delete mode 100644 e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-pxc-k127-oc.yml delete mode 100644 e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-pxc-k127.yml delete mode 100644 e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-proxysql-k127-oc.yml delete mode 100644 e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-proxysql-k127.yml delete mode 100644 e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-pxc-k127-oc.yml delete mode 100644 e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-pxc-k127.yml diff --git a/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-haproxy-k127.yml b/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-haproxy-k127.yml deleted file mode 100644 index 8691d5d175..0000000000 --- a/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-haproxy-k127.yml +++ /dev/null @@ -1,202 +0,0 @@ -apiVersion: apps/v1 -kind: StatefulSet -metadata: - generation: 2 - name: upgrade-haproxy-haproxy - ownerReferences: - - controller: true - kind: PerconaXtraDBCluster - name: upgrade-haproxy -spec: - persistentVolumeClaimRetentionPolicy: - whenDeleted: Retain - whenScaled: Retain - podManagementPolicy: OrderedReady - replicas: 3 - revisionHistoryLimit: 10 - selector: - matchLabels: - app.kubernetes.io/component: haproxy - app.kubernetes.io/instance: upgrade-haproxy - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - serviceName: upgrade-haproxy-haproxy - template: - metadata: - labels: - app.kubernetes.io/component: haproxy - app.kubernetes.io/instance: upgrade-haproxy - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - spec: - affinity: - podAntiAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - - labelSelector: - matchLabels: - app.kubernetes.io/component: haproxy - app.kubernetes.io/instance: upgrade-haproxy - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - topologyKey: kubernetes.io/hostname - containers: - - args: - - haproxy - command: - - /opt/percona/haproxy-entrypoint.sh - env: - - name: PXC_SERVICE - value: upgrade-haproxy-pxc - - name: LIVENESS_CHECK_TIMEOUT - value: "5" - - name: READINESS_CHECK_TIMEOUT - value: "1" - envFrom: - - secretRef: - name: upgrade-haproxy-env-vars-haproxy - optional: true - imagePullPolicy: Always - livenessProbe: - exec: - command: - - /opt/percona/haproxy_liveness_check.sh - failureThreshold: 4 - initialDelaySeconds: 60 - periodSeconds: 30 - successThreshold: 1 - timeoutSeconds: 5 - name: haproxy - ports: - - containerPort: 3306 - name: mysql - protocol: TCP - - containerPort: 3307 - name: mysql-replicas - protocol: TCP - - containerPort: 3309 - name: proxy-protocol - protocol: TCP - - containerPort: 33062 - name: mysql-admin - protocol: TCP - - containerPort: 33060 - name: mysqlx - protocol: TCP - readinessProbe: - exec: - command: - - /opt/percona/haproxy_readiness_check.sh - failureThreshold: 3 - initialDelaySeconds: 15 - periodSeconds: 5 - successThreshold: 1 - timeoutSeconds: 1 - resources: - requests: - cpu: 600m - memory: 1G - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /etc/haproxy-custom/ - name: haproxy-custom - - mountPath: /etc/haproxy/pxc - name: haproxy-auto - - mountPath: /opt/percona - name: bin - - mountPath: /etc/mysql/mysql-users-secret - name: mysql-users-secret-file - - mountPath: /etc/mysql/haproxy-env-secret - name: upgrade-haproxy-env-vars-haproxy - - args: - - /opt/percona/peer-list - - -on-change=/opt/percona/haproxy_add_pxc_nodes.sh - - -service=$(PXC_SERVICE) - command: - - /opt/percona/haproxy-entrypoint.sh - env: - - name: PXC_SERVICE - value: upgrade-haproxy-pxc - - name: REPLICAS_SVC_ONLY_READERS - value: "false" - envFrom: - - secretRef: - name: upgrade-haproxy-env-vars-haproxy - optional: true - imagePullPolicy: Always - name: pxc-monit - resources: {} - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /etc/haproxy-custom/ - name: haproxy-custom - - mountPath: /etc/haproxy/pxc - name: haproxy-auto - - mountPath: /etc/mysql/mysql-users-secret - name: mysql-users-secret-file - - mountPath: /etc/mysql/haproxy-env-secret - name: upgrade-haproxy-env-vars-haproxy - - mountPath: /opt/percona - name: bin - dnsPolicy: ClusterFirst - initContainers: - - command: - - /pxc-init-entrypoint.sh - imagePullPolicy: Always - name: pxc-init - resources: - limits: - cpu: 50m - memory: 50M - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/mysql - name: bin - - command: - - /haproxy-init-entrypoint.sh - imagePullPolicy: Always - name: haproxy-init - resources: - limits: - cpu: 50m - memory: 50M - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /opt/percona - name: bin - restartPolicy: Always - schedulerName: default-scheduler - securityContext: {} - serviceAccount: default - serviceAccountName: default - terminationGracePeriodSeconds: 30 - volumes: - - configMap: - defaultMode: 420 - name: upgrade-haproxy-haproxy - optional: true - name: haproxy-custom - - emptyDir: {} - name: haproxy-auto - - name: mysql-users-secret-file - secret: - defaultMode: 420 - optional: false - secretName: internal-upgrade-haproxy - - name: upgrade-haproxy-env-vars-haproxy - secret: - defaultMode: 420 - optional: true - secretName: upgrade-haproxy-env-vars-haproxy - - emptyDir: {} - name: bin - updateStrategy: - rollingUpdate: - partition: 0 - type: RollingUpdate diff --git a/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-haproxy.yml b/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-haproxy.yml index b5e6f0f05d..8691d5d175 100644 --- a/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-haproxy.yml +++ b/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-haproxy.yml @@ -8,6 +8,9 @@ metadata: kind: PerconaXtraDBCluster name: upgrade-haproxy spec: + persistentVolumeClaimRetentionPolicy: + whenDeleted: Retain + whenScaled: Retain podManagementPolicy: OrderedReady replicas: 3 revisionHistoryLimit: 10 @@ -40,7 +43,11 @@ spec: app.kubernetes.io/part-of: percona-xtradb-cluster topologyKey: kubernetes.io/hostname containers: - - env: + - args: + - haproxy + command: + - /opt/percona/haproxy-entrypoint.sh + env: - name: PXC_SERVICE value: upgrade-haproxy-pxc - name: LIVENESS_CHECK_TIMEOUT @@ -108,6 +115,8 @@ spec: - /opt/percona/peer-list - -on-change=/opt/percona/haproxy_add_pxc_nodes.sh - -service=$(PXC_SERVICE) + command: + - /opt/percona/haproxy-entrypoint.sh env: - name: PXC_SERVICE value: upgrade-haproxy-pxc @@ -131,6 +140,8 @@ spec: name: mysql-users-secret-file - mountPath: /etc/mysql/haproxy-env-secret name: upgrade-haproxy-env-vars-haproxy + - mountPath: /opt/percona + name: bin dnsPolicy: ClusterFirst initContainers: - command: diff --git a/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-pxc-k127-oc.yml b/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-pxc-k127-oc.yml deleted file mode 100644 index 73b8157e44..0000000000 --- a/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-pxc-k127-oc.yml +++ /dev/null @@ -1,279 +0,0 @@ -apiVersion: apps/v1 -kind: StatefulSet -metadata: - generation: 2 - name: upgrade-haproxy-pxc - ownerReferences: - - controller: true - kind: PerconaXtraDBCluster - name: upgrade-haproxy -spec: - persistentVolumeClaimRetentionPolicy: - whenDeleted: Retain - whenScaled: Retain - podManagementPolicy: OrderedReady - replicas: 3 - revisionHistoryLimit: 10 - selector: - matchLabels: - app.kubernetes.io/component: pxc - app.kubernetes.io/instance: upgrade-haproxy - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - serviceName: upgrade-haproxy-pxc - template: - metadata: - labels: - app.kubernetes.io/component: pxc - app.kubernetes.io/instance: upgrade-haproxy - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - spec: - affinity: - podAntiAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - - labelSelector: - matchLabels: - app.kubernetes.io/component: pxc - app.kubernetes.io/instance: upgrade-haproxy - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - topologyKey: kubernetes.io/hostname - containers: - - env: - - name: LOG_DATA_DIR - value: /var/lib/mysql - - name: POD_NAMESPASE - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.namespace - - name: POD_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.name - envFrom: - - secretRef: - name: upgrade-haproxy-log-collector - optional: true - imagePullPolicy: Always - name: logs - resources: - requests: - cpu: 200m - memory: 100M - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/mysql - name: datadir - - args: - - logrotate - env: - - name: SERVICE_TYPE - value: mysql - - name: MONITOR_PASSWORD - valueFrom: - secretKeyRef: - key: monitor - name: internal-upgrade-haproxy - imagePullPolicy: Always - name: logrotate - resources: - requests: - cpu: 200m - memory: 100M - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/mysql - name: datadir - - args: - - mysqld - command: - - /var/lib/mysql/pxc-entrypoint.sh - env: - - name: PXC_SERVICE - value: upgrade-haproxy-pxc-unready - - name: MONITOR_HOST - value: '%' - - name: MYSQL_ROOT_PASSWORD - valueFrom: - secretKeyRef: - key: root - name: internal-upgrade-haproxy - - name: XTRABACKUP_PASSWORD - valueFrom: - secretKeyRef: - key: xtrabackup - name: internal-upgrade-haproxy - - name: MONITOR_PASSWORD - valueFrom: - secretKeyRef: - key: monitor - name: internal-upgrade-haproxy - - name: LOG_DATA_DIR - value: /var/lib/mysql - - name: IS_LOGCOLLECTOR - value: "yes" - - name: OPERATOR_ADMIN_PASSWORD - valueFrom: - secretKeyRef: - key: operator - name: internal-upgrade-haproxy - - name: LIVENESS_CHECK_TIMEOUT - value: "5" - - name: READINESS_CHECK_TIMEOUT - value: "15" - - name: DEFAULT_AUTHENTICATION_PLUGIN - value: caching_sha2_password - - name: MYSQL_NOTIFY_SOCKET - value: /var/lib/mysql/notify.sock - - name: MYSQL_STATE_FILE - value: /var/lib/mysql/mysql.state - envFrom: - - secretRef: - name: upgrade-haproxy-env-vars-pxc - optional: true - imagePullPolicy: Always - livenessProbe: - exec: - command: - - /var/lib/mysql/liveness-check.sh - failureThreshold: 3 - initialDelaySeconds: 300 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 5 - name: pxc - ports: - - containerPort: 3306 - name: mysql - protocol: TCP - - containerPort: 4444 - name: sst - protocol: TCP - - containerPort: 4567 - name: write-set - protocol: TCP - - containerPort: 4568 - name: ist - protocol: TCP - - containerPort: 33062 - name: mysql-admin - protocol: TCP - - containerPort: 33060 - name: mysqlx - protocol: TCP - readinessProbe: - exec: - command: - - /var/lib/mysql/readiness-check.sh - failureThreshold: 5 - initialDelaySeconds: 15 - periodSeconds: 30 - successThreshold: 1 - timeoutSeconds: 15 - resources: - requests: - cpu: 600m - memory: 1G - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/mysql - name: datadir - - mountPath: /etc/percona-xtradb-cluster.conf.d - name: config - - mountPath: /tmp - name: tmp - - mountPath: /etc/mysql/ssl - name: ssl - - mountPath: /etc/mysql/ssl-internal - name: ssl-internal - - mountPath: /etc/mysql/mysql-users-secret - name: mysql-users-secret-file - - mountPath: /etc/my.cnf.d - name: auto-config - - mountPath: /etc/mysql/vault-keyring-secret - name: vault-keyring-secret - - mountPath: /etc/mysql/init-file - name: mysql-init-file - dnsPolicy: ClusterFirst - initContainers: - - command: - - /pxc-init-entrypoint.sh - imagePullPolicy: Always - name: pxc-init - resources: - limits: - cpu: 50m - memory: 50M - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/mysql - name: datadir - restartPolicy: Always - schedulerName: default-scheduler - securityContext: - supplementalGroups: - - 1001 - serviceAccount: default - serviceAccountName: default - terminationGracePeriodSeconds: 600 - volumes: - - emptyDir: {} - name: tmp - - configMap: - defaultMode: 420 - name: upgrade-haproxy-pxc - optional: true - name: config - - name: ssl-internal - secret: - defaultMode: 420 - optional: true - secretName: some-name-ssl-internal - - name: ssl - secret: - defaultMode: 420 - optional: false - secretName: some-name-ssl - - configMap: - defaultMode: 420 - name: auto-upgrade-haproxy-pxc - optional: true - name: auto-config - - name: vault-keyring-secret - secret: - defaultMode: 420 - optional: true - secretName: some-name-vault - - name: mysql-users-secret-file - secret: - defaultMode: 420 - optional: false - secretName: internal-upgrade-haproxy - - name: mysql-init-file - secret: - defaultMode: 420 - optional: true - secretName: upgrade-haproxy-mysql-init - updateStrategy: - type: OnDelete - volumeClaimTemplates: - - metadata: - name: datadir - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 6G - status: - phase: Pending diff --git a/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-pxc-k127.yml b/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-pxc-k127.yml deleted file mode 100644 index 4e643ca349..0000000000 --- a/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-pxc-k127.yml +++ /dev/null @@ -1,280 +0,0 @@ -apiVersion: apps/v1 -kind: StatefulSet -metadata: - generation: 2 - name: upgrade-haproxy-pxc - ownerReferences: - - controller: true - kind: PerconaXtraDBCluster - name: upgrade-haproxy -spec: - persistentVolumeClaimRetentionPolicy: - whenDeleted: Retain - whenScaled: Retain - podManagementPolicy: OrderedReady - replicas: 3 - revisionHistoryLimit: 10 - selector: - matchLabels: - app.kubernetes.io/component: pxc - app.kubernetes.io/instance: upgrade-haproxy - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - serviceName: upgrade-haproxy-pxc - template: - metadata: - labels: - app.kubernetes.io/component: pxc - app.kubernetes.io/instance: upgrade-haproxy - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - spec: - affinity: - podAntiAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - - labelSelector: - matchLabels: - app.kubernetes.io/component: pxc - app.kubernetes.io/instance: upgrade-haproxy - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - topologyKey: kubernetes.io/hostname - containers: - - env: - - name: LOG_DATA_DIR - value: /var/lib/mysql - - name: POD_NAMESPASE - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.namespace - - name: POD_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.name - envFrom: - - secretRef: - name: upgrade-haproxy-log-collector - optional: true - imagePullPolicy: Always - name: logs - resources: - requests: - cpu: 200m - memory: 100M - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/mysql - name: datadir - - args: - - logrotate - env: - - name: SERVICE_TYPE - value: mysql - - name: MONITOR_PASSWORD - valueFrom: - secretKeyRef: - key: monitor - name: internal-upgrade-haproxy - imagePullPolicy: Always - name: logrotate - resources: - requests: - cpu: 200m - memory: 100M - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/mysql - name: datadir - - args: - - mysqld - command: - - /var/lib/mysql/pxc-entrypoint.sh - env: - - name: PXC_SERVICE - value: upgrade-haproxy-pxc-unready - - name: MONITOR_HOST - value: '%' - - name: MYSQL_ROOT_PASSWORD - valueFrom: - secretKeyRef: - key: root - name: internal-upgrade-haproxy - - name: XTRABACKUP_PASSWORD - valueFrom: - secretKeyRef: - key: xtrabackup - name: internal-upgrade-haproxy - - name: MONITOR_PASSWORD - valueFrom: - secretKeyRef: - key: monitor - name: internal-upgrade-haproxy - - name: LOG_DATA_DIR - value: /var/lib/mysql - - name: IS_LOGCOLLECTOR - value: "yes" - - name: OPERATOR_ADMIN_PASSWORD - valueFrom: - secretKeyRef: - key: operator - name: internal-upgrade-haproxy - - name: LIVENESS_CHECK_TIMEOUT - value: "5" - - name: READINESS_CHECK_TIMEOUT - value: "15" - - name: DEFAULT_AUTHENTICATION_PLUGIN - value: caching_sha2_password - - name: MYSQL_NOTIFY_SOCKET - value: /var/lib/mysql/notify.sock - - name: MYSQL_STATE_FILE - value: /var/lib/mysql/mysql.state - envFrom: - - secretRef: - name: upgrade-haproxy-env-vars-pxc - optional: true - imagePullPolicy: Always - livenessProbe: - exec: - command: - - /var/lib/mysql/liveness-check.sh - failureThreshold: 3 - initialDelaySeconds: 300 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 5 - name: pxc - ports: - - containerPort: 3306 - name: mysql - protocol: TCP - - containerPort: 4444 - name: sst - protocol: TCP - - containerPort: 4567 - name: write-set - protocol: TCP - - containerPort: 4568 - name: ist - protocol: TCP - - containerPort: 33062 - name: mysql-admin - protocol: TCP - - containerPort: 33060 - name: mysqlx - protocol: TCP - readinessProbe: - exec: - command: - - /var/lib/mysql/readiness-check.sh - failureThreshold: 5 - initialDelaySeconds: 15 - periodSeconds: 30 - successThreshold: 1 - timeoutSeconds: 15 - resources: - requests: - cpu: 600m - memory: 1G - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/mysql - name: datadir - - mountPath: /etc/percona-xtradb-cluster.conf.d - name: config - - mountPath: /tmp - name: tmp - - mountPath: /etc/mysql/ssl - name: ssl - - mountPath: /etc/mysql/ssl-internal - name: ssl-internal - - mountPath: /etc/mysql/mysql-users-secret - name: mysql-users-secret-file - - mountPath: /etc/my.cnf.d - name: auto-config - - mountPath: /etc/mysql/vault-keyring-secret - name: vault-keyring-secret - - mountPath: /etc/mysql/init-file - name: mysql-init-file - dnsPolicy: ClusterFirst - initContainers: - - command: - - /pxc-init-entrypoint.sh - imagePullPolicy: Always - name: pxc-init - resources: - limits: - cpu: 50m - memory: 50M - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/mysql - name: datadir - restartPolicy: Always - schedulerName: default-scheduler - securityContext: - fsGroup: 1001 - supplementalGroups: - - 1001 - serviceAccount: default - serviceAccountName: default - terminationGracePeriodSeconds: 600 - volumes: - - emptyDir: {} - name: tmp - - configMap: - defaultMode: 420 - name: upgrade-haproxy-pxc - optional: true - name: config - - name: ssl-internal - secret: - defaultMode: 420 - optional: true - secretName: some-name-ssl-internal - - name: ssl - secret: - defaultMode: 420 - optional: false - secretName: some-name-ssl - - configMap: - defaultMode: 420 - name: auto-upgrade-haproxy-pxc - optional: true - name: auto-config - - name: vault-keyring-secret - secret: - defaultMode: 420 - optional: true - secretName: some-name-vault - - name: mysql-users-secret-file - secret: - defaultMode: 420 - optional: false - secretName: internal-upgrade-haproxy - - name: mysql-init-file - secret: - defaultMode: 420 - optional: true - secretName: upgrade-haproxy-mysql-init - updateStrategy: - type: OnDelete - volumeClaimTemplates: - - metadata: - name: datadir - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 6G - status: - phase: Pending diff --git a/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-pxc-oc.yml b/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-pxc-oc.yml index e5388ae8d8..8f1c3a0ebf 100644 --- a/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-pxc-oc.yml +++ b/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-pxc-oc.yml @@ -8,6 +8,9 @@ metadata: kind: PerconaXtraDBCluster name: upgrade-haproxy spec: + persistentVolumeClaimRetentionPolicy: + whenDeleted: Retain + whenScaled: Retain podManagementPolicy: OrderedReady replicas: 3 revisionHistoryLimit: 10 @@ -265,6 +268,12 @@ spec: type: OnDelete volumeClaimTemplates: - metadata: + labels: + app.kubernetes.io/component: pxc + app.kubernetes.io/instance: upgrade-haproxy + app.kubernetes.io/managed-by: percona-xtradb-cluster-operator + app.kubernetes.io/name: percona-xtradb-cluster + app.kubernetes.io/part-of: percona-xtradb-cluster name: datadir spec: accessModes: diff --git a/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-pxc.yml b/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-pxc.yml index f637509a77..d674ed97e8 100644 --- a/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-pxc.yml +++ b/e2e-tests/upgrade-haproxy/compare/statefulset_upgrade-haproxy-pxc.yml @@ -8,6 +8,9 @@ metadata: kind: PerconaXtraDBCluster name: upgrade-haproxy spec: + persistentVolumeClaimRetentionPolicy: + whenDeleted: Retain + whenScaled: Retain podManagementPolicy: OrderedReady replicas: 3 revisionHistoryLimit: 10 @@ -266,6 +269,12 @@ spec: type: OnDelete volumeClaimTemplates: - metadata: + labels: + app.kubernetes.io/component: pxc + app.kubernetes.io/instance: upgrade-haproxy + app.kubernetes.io/managed-by: percona-xtradb-cluster-operator + app.kubernetes.io/name: percona-xtradb-cluster + app.kubernetes.io/part-of: percona-xtradb-cluster name: datadir spec: accessModes: diff --git a/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-proxysql-k127-oc.yml b/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-proxysql-k127-oc.yml deleted file mode 100644 index 64121f4e1d..0000000000 --- a/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-proxysql-k127-oc.yml +++ /dev/null @@ -1,235 +0,0 @@ -apiVersion: apps/v1 -kind: StatefulSet -metadata: - generation: 2 - name: upgrade-proxysql-proxysql - ownerReferences: - - controller: true - kind: PerconaXtraDBCluster - name: upgrade-proxysql -spec: - persistentVolumeClaimRetentionPolicy: - whenDeleted: Retain - whenScaled: Retain - podManagementPolicy: OrderedReady - replicas: 3 - revisionHistoryLimit: 10 - selector: - matchLabels: - app.kubernetes.io/component: proxysql - app.kubernetes.io/instance: upgrade-proxysql - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - serviceName: upgrade-proxysql-proxysql-unready - template: - metadata: - labels: - app.kubernetes.io/component: proxysql - app.kubernetes.io/instance: upgrade-proxysql - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - spec: - affinity: - podAntiAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - - labelSelector: - matchLabels: - app.kubernetes.io/component: proxysql - app.kubernetes.io/instance: upgrade-proxysql - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - topologyKey: kubernetes.io/hostname - containers: - - args: - - proxysql - - -f - - -c - - /etc/proxysql/proxysql.cnf - - --reload - command: - - /opt/percona/proxysql-entrypoint.sh - env: - - name: PXC_SERVICE - value: upgrade-proxysql-pxc - - name: OPERATOR_PASSWORD - valueFrom: - secretKeyRef: - key: operator - name: internal-upgrade-proxysql - - name: PROXY_ADMIN_USER - value: proxyadmin - - name: PROXY_ADMIN_PASSWORD - valueFrom: - secretKeyRef: - key: proxyadmin - name: internal-upgrade-proxysql - - name: MONITOR_PASSWORD - valueFrom: - secretKeyRef: - key: monitor - name: internal-upgrade-proxysql - envFrom: - - secretRef: - name: upgrade-proxysql-env-vars-proxysql - optional: true - imagePullPolicy: Always - name: proxysql - ports: - - containerPort: 3306 - name: mysql - protocol: TCP - - containerPort: 6032 - name: proxyadm - protocol: TCP - resources: - requests: - cpu: 600m - memory: 1G - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/proxysql - name: proxydata - - mountPath: /etc/proxysql/ssl - name: ssl - - mountPath: /etc/proxysql/ssl-internal - name: ssl-internal - - mountPath: /opt/percona - name: bin - - args: - - /opt/percona/peer-list - - -on-change=/opt/percona/proxysql_add_pxc_nodes.sh - - -service=$(PXC_SERVICE) - env: - - name: PXC_SERVICE - value: upgrade-proxysql-pxc - - name: OPERATOR_PASSWORD - valueFrom: - secretKeyRef: - key: operator - name: internal-upgrade-proxysql - - name: PROXY_ADMIN_USER - value: proxyadmin - - name: PROXY_ADMIN_PASSWORD - valueFrom: - secretKeyRef: - key: proxyadmin - name: internal-upgrade-proxysql - - name: MONITOR_PASSWORD - valueFrom: - secretKeyRef: - key: monitor - name: internal-upgrade-proxysql - envFrom: - - secretRef: - name: upgrade-proxysql-env-vars-proxysql - optional: true - imagePullPolicy: Always - name: pxc-monit - resources: {} - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /opt/percona - name: bin - - args: - - /opt/percona/peer-list - - -on-change=/opt/percona/proxysql_add_proxysql_nodes.sh - - -service=$(PROXYSQL_SERVICE) - env: - - name: PROXYSQL_SERVICE - value: upgrade-proxysql-proxysql-unready - - name: OPERATOR_PASSWORD - valueFrom: - secretKeyRef: - key: operator - name: internal-upgrade-proxysql - - name: PROXY_ADMIN_USER - value: proxyadmin - - name: PROXY_ADMIN_PASSWORD - valueFrom: - secretKeyRef: - key: proxyadmin - name: internal-upgrade-proxysql - - name: MONITOR_PASSWORD - valueFrom: - secretKeyRef: - key: monitor - name: internal-upgrade-proxysql - envFrom: - - secretRef: - name: upgrade-proxysql-env-vars-proxysql - optional: true - imagePullPolicy: Always - name: proxysql-monit - resources: {} - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /opt/percona - name: bin - dnsPolicy: ClusterFirst - initContainers: - - command: - - /pxc-init-entrypoint.sh - imagePullPolicy: Always - name: pxc-init - resources: - limits: - cpu: 50m - memory: 50M - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/mysql - name: bin - - command: - - /proxysql-init-entrypoint.sh - imagePullPolicy: Always - name: proxysql-init - resources: - limits: - cpu: 50m - memory: 50M - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /opt/percona - name: bin - restartPolicy: Always - schedulerName: default-scheduler - securityContext: - supplementalGroups: - - 1001 - serviceAccount: default - serviceAccountName: default - terminationGracePeriodSeconds: 30 - volumes: - - name: ssl-internal - secret: - defaultMode: 420 - optional: true - secretName: some-name-ssl-internal - - name: ssl - secret: - defaultMode: 420 - optional: false - secretName: some-name-ssl - - emptyDir: {} - name: bin - updateStrategy: - type: RollingUpdate - volumeClaimTemplates: - - metadata: - name: proxydata - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 2G - status: - phase: Pending diff --git a/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-proxysql-k127.yml b/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-proxysql-k127.yml deleted file mode 100644 index 85ba99bea1..0000000000 --- a/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-proxysql-k127.yml +++ /dev/null @@ -1,236 +0,0 @@ -apiVersion: apps/v1 -kind: StatefulSet -metadata: - generation: 2 - name: upgrade-proxysql-proxysql - ownerReferences: - - controller: true - kind: PerconaXtraDBCluster - name: upgrade-proxysql -spec: - persistentVolumeClaimRetentionPolicy: - whenDeleted: Retain - whenScaled: Retain - podManagementPolicy: OrderedReady - replicas: 3 - revisionHistoryLimit: 10 - selector: - matchLabels: - app.kubernetes.io/component: proxysql - app.kubernetes.io/instance: upgrade-proxysql - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - serviceName: upgrade-proxysql-proxysql-unready - template: - metadata: - labels: - app.kubernetes.io/component: proxysql - app.kubernetes.io/instance: upgrade-proxysql - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - spec: - affinity: - podAntiAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - - labelSelector: - matchLabels: - app.kubernetes.io/component: proxysql - app.kubernetes.io/instance: upgrade-proxysql - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - topologyKey: kubernetes.io/hostname - containers: - - args: - - proxysql - - -f - - -c - - /etc/proxysql/proxysql.cnf - - --reload - command: - - /opt/percona/proxysql-entrypoint.sh - env: - - name: PXC_SERVICE - value: upgrade-proxysql-pxc - - name: OPERATOR_PASSWORD - valueFrom: - secretKeyRef: - key: operator - name: internal-upgrade-proxysql - - name: PROXY_ADMIN_USER - value: proxyadmin - - name: PROXY_ADMIN_PASSWORD - valueFrom: - secretKeyRef: - key: proxyadmin - name: internal-upgrade-proxysql - - name: MONITOR_PASSWORD - valueFrom: - secretKeyRef: - key: monitor - name: internal-upgrade-proxysql - envFrom: - - secretRef: - name: upgrade-proxysql-env-vars-proxysql - optional: true - imagePullPolicy: Always - name: proxysql - ports: - - containerPort: 3306 - name: mysql - protocol: TCP - - containerPort: 6032 - name: proxyadm - protocol: TCP - resources: - requests: - cpu: 600m - memory: 1G - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/proxysql - name: proxydata - - mountPath: /etc/proxysql/ssl - name: ssl - - mountPath: /etc/proxysql/ssl-internal - name: ssl-internal - - mountPath: /opt/percona - name: bin - - args: - - /opt/percona/peer-list - - -on-change=/opt/percona/proxysql_add_pxc_nodes.sh - - -service=$(PXC_SERVICE) - env: - - name: PXC_SERVICE - value: upgrade-proxysql-pxc - - name: OPERATOR_PASSWORD - valueFrom: - secretKeyRef: - key: operator - name: internal-upgrade-proxysql - - name: PROXY_ADMIN_USER - value: proxyadmin - - name: PROXY_ADMIN_PASSWORD - valueFrom: - secretKeyRef: - key: proxyadmin - name: internal-upgrade-proxysql - - name: MONITOR_PASSWORD - valueFrom: - secretKeyRef: - key: monitor - name: internal-upgrade-proxysql - envFrom: - - secretRef: - name: upgrade-proxysql-env-vars-proxysql - optional: true - imagePullPolicy: Always - name: pxc-monit - resources: {} - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /opt/percona - name: bin - - args: - - /opt/percona/peer-list - - -on-change=/opt/percona/proxysql_add_proxysql_nodes.sh - - -service=$(PROXYSQL_SERVICE) - env: - - name: PROXYSQL_SERVICE - value: upgrade-proxysql-proxysql-unready - - name: OPERATOR_PASSWORD - valueFrom: - secretKeyRef: - key: operator - name: internal-upgrade-proxysql - - name: PROXY_ADMIN_USER - value: proxyadmin - - name: PROXY_ADMIN_PASSWORD - valueFrom: - secretKeyRef: - key: proxyadmin - name: internal-upgrade-proxysql - - name: MONITOR_PASSWORD - valueFrom: - secretKeyRef: - key: monitor - name: internal-upgrade-proxysql - envFrom: - - secretRef: - name: upgrade-proxysql-env-vars-proxysql - optional: true - imagePullPolicy: Always - name: proxysql-monit - resources: {} - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /opt/percona - name: bin - dnsPolicy: ClusterFirst - initContainers: - - command: - - /pxc-init-entrypoint.sh - imagePullPolicy: Always - name: pxc-init - resources: - limits: - cpu: 50m - memory: 50M - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/mysql - name: bin - - command: - - /proxysql-init-entrypoint.sh - imagePullPolicy: Always - name: proxysql-init - resources: - limits: - cpu: 50m - memory: 50M - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /opt/percona - name: bin - restartPolicy: Always - schedulerName: default-scheduler - securityContext: - fsGroup: 1001 - supplementalGroups: - - 1001 - serviceAccount: default - serviceAccountName: default - terminationGracePeriodSeconds: 30 - volumes: - - name: ssl-internal - secret: - defaultMode: 420 - optional: true - secretName: some-name-ssl-internal - - name: ssl - secret: - defaultMode: 420 - optional: false - secretName: some-name-ssl - - emptyDir: {} - name: bin - updateStrategy: - type: RollingUpdate - volumeClaimTemplates: - - metadata: - name: proxydata - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 2G - status: - phase: Pending diff --git a/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-proxysql-oc.yml b/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-proxysql-oc.yml index 4ad887b1ba..2507201037 100644 --- a/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-proxysql-oc.yml +++ b/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-proxysql-oc.yml @@ -8,6 +8,9 @@ metadata: kind: PerconaXtraDBCluster name: upgrade-proxysql spec: + persistentVolumeClaimRetentionPolicy: + whenDeleted: Retain + whenScaled: Retain podManagementPolicy: OrderedReady replicas: 3 revisionHistoryLimit: 10 @@ -221,6 +224,12 @@ spec: type: RollingUpdate volumeClaimTemplates: - metadata: + labels: + app.kubernetes.io/component: proxysql + app.kubernetes.io/instance: upgrade-proxysql + app.kubernetes.io/managed-by: percona-xtradb-cluster-operator + app.kubernetes.io/name: percona-xtradb-cluster + app.kubernetes.io/part-of: percona-xtradb-cluster name: proxydata spec: accessModes: diff --git a/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-proxysql.yml b/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-proxysql.yml index 998fb3a571..35250906a3 100644 --- a/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-proxysql.yml +++ b/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-proxysql.yml @@ -8,6 +8,9 @@ metadata: kind: PerconaXtraDBCluster name: upgrade-proxysql spec: + persistentVolumeClaimRetentionPolicy: + whenDeleted: Retain + whenScaled: Retain podManagementPolicy: OrderedReady replicas: 3 revisionHistoryLimit: 10 @@ -40,7 +43,15 @@ spec: app.kubernetes.io/part-of: percona-xtradb-cluster topologyKey: kubernetes.io/hostname containers: - - env: + - args: + - proxysql + - -f + - -c + - /etc/proxysql/proxysql.cnf + - --reload + command: + - /opt/percona/proxysql-entrypoint.sh + env: - name: PXC_SERVICE value: upgrade-proxysql-pxc - name: OPERATOR_PASSWORD @@ -214,6 +225,12 @@ spec: type: RollingUpdate volumeClaimTemplates: - metadata: + labels: + app.kubernetes.io/component: proxysql + app.kubernetes.io/instance: upgrade-proxysql + app.kubernetes.io/managed-by: percona-xtradb-cluster-operator + app.kubernetes.io/name: percona-xtradb-cluster + app.kubernetes.io/part-of: percona-xtradb-cluster name: proxydata spec: accessModes: diff --git a/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-pxc-k127-oc.yml b/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-pxc-k127-oc.yml deleted file mode 100644 index eae6955b57..0000000000 --- a/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-pxc-k127-oc.yml +++ /dev/null @@ -1,279 +0,0 @@ -apiVersion: apps/v1 -kind: StatefulSet -metadata: - generation: 2 - name: upgrade-proxysql-pxc - ownerReferences: - - controller: true - kind: PerconaXtraDBCluster - name: upgrade-proxysql -spec: - persistentVolumeClaimRetentionPolicy: - whenDeleted: Retain - whenScaled: Retain - podManagementPolicy: OrderedReady - replicas: 3 - revisionHistoryLimit: 10 - selector: - matchLabels: - app.kubernetes.io/component: pxc - app.kubernetes.io/instance: upgrade-proxysql - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - serviceName: upgrade-proxysql-pxc - template: - metadata: - labels: - app.kubernetes.io/component: pxc - app.kubernetes.io/instance: upgrade-proxysql - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - spec: - affinity: - podAntiAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - - labelSelector: - matchLabels: - app.kubernetes.io/component: pxc - app.kubernetes.io/instance: upgrade-proxysql - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - topologyKey: kubernetes.io/hostname - containers: - - env: - - name: LOG_DATA_DIR - value: /var/lib/mysql - - name: POD_NAMESPASE - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.namespace - - name: POD_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.name - envFrom: - - secretRef: - name: upgrade-proxysql-log-collector - optional: true - imagePullPolicy: Always - name: logs - resources: - requests: - cpu: 200m - memory: 100M - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/mysql - name: datadir - - args: - - logrotate - env: - - name: SERVICE_TYPE - value: mysql - - name: MONITOR_PASSWORD - valueFrom: - secretKeyRef: - key: monitor - name: internal-upgrade-proxysql - imagePullPolicy: Always - name: logrotate - resources: - requests: - cpu: 200m - memory: 100M - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/mysql - name: datadir - - args: - - mysqld - command: - - /var/lib/mysql/pxc-entrypoint.sh - env: - - name: PXC_SERVICE - value: upgrade-proxysql-pxc-unready - - name: MONITOR_HOST - value: '%' - - name: MYSQL_ROOT_PASSWORD - valueFrom: - secretKeyRef: - key: root - name: internal-upgrade-proxysql - - name: XTRABACKUP_PASSWORD - valueFrom: - secretKeyRef: - key: xtrabackup - name: internal-upgrade-proxysql - - name: MONITOR_PASSWORD - valueFrom: - secretKeyRef: - key: monitor - name: internal-upgrade-proxysql - - name: LOG_DATA_DIR - value: /var/lib/mysql - - name: IS_LOGCOLLECTOR - value: "yes" - - name: OPERATOR_ADMIN_PASSWORD - valueFrom: - secretKeyRef: - key: operator - name: internal-upgrade-proxysql - - name: LIVENESS_CHECK_TIMEOUT - value: "5" - - name: READINESS_CHECK_TIMEOUT - value: "15" - - name: DEFAULT_AUTHENTICATION_PLUGIN - value: mysql_native_password - - name: MYSQL_NOTIFY_SOCKET - value: /var/lib/mysql/notify.sock - - name: MYSQL_STATE_FILE - value: /var/lib/mysql/mysql.state - envFrom: - - secretRef: - name: upgrade-proxysql-env-vars-pxc - optional: true - imagePullPolicy: Always - livenessProbe: - exec: - command: - - /var/lib/mysql/liveness-check.sh - failureThreshold: 3 - initialDelaySeconds: 300 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 5 - name: pxc - ports: - - containerPort: 3306 - name: mysql - protocol: TCP - - containerPort: 4444 - name: sst - protocol: TCP - - containerPort: 4567 - name: write-set - protocol: TCP - - containerPort: 4568 - name: ist - protocol: TCP - - containerPort: 33062 - name: mysql-admin - protocol: TCP - - containerPort: 33060 - name: mysqlx - protocol: TCP - readinessProbe: - exec: - command: - - /var/lib/mysql/readiness-check.sh - failureThreshold: 5 - initialDelaySeconds: 15 - periodSeconds: 30 - successThreshold: 1 - timeoutSeconds: 15 - resources: - requests: - cpu: 600m - memory: 1G - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/mysql - name: datadir - - mountPath: /etc/percona-xtradb-cluster.conf.d - name: config - - mountPath: /tmp - name: tmp - - mountPath: /etc/mysql/ssl - name: ssl - - mountPath: /etc/mysql/ssl-internal - name: ssl-internal - - mountPath: /etc/mysql/mysql-users-secret - name: mysql-users-secret-file - - mountPath: /etc/my.cnf.d - name: auto-config - - mountPath: /etc/mysql/vault-keyring-secret - name: vault-keyring-secret - - mountPath: /etc/mysql/init-file - name: mysql-init-file - dnsPolicy: ClusterFirst - initContainers: - - command: - - /pxc-init-entrypoint.sh - imagePullPolicy: Always - name: pxc-init - resources: - limits: - cpu: 50m - memory: 50M - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/mysql - name: datadir - restartPolicy: Always - schedulerName: default-scheduler - securityContext: - supplementalGroups: - - 1001 - serviceAccount: default - serviceAccountName: default - terminationGracePeriodSeconds: 600 - volumes: - - emptyDir: {} - name: tmp - - configMap: - defaultMode: 420 - name: upgrade-proxysql-pxc - optional: true - name: config - - name: ssl-internal - secret: - defaultMode: 420 - optional: true - secretName: some-name-ssl-internal - - name: ssl - secret: - defaultMode: 420 - optional: false - secretName: some-name-ssl - - configMap: - defaultMode: 420 - name: auto-upgrade-proxysql-pxc - optional: true - name: auto-config - - name: vault-keyring-secret - secret: - defaultMode: 420 - optional: true - secretName: some-name-vault - - name: mysql-users-secret-file - secret: - defaultMode: 420 - optional: false - secretName: internal-upgrade-proxysql - - name: mysql-init-file - secret: - defaultMode: 420 - optional: true - secretName: upgrade-proxysql-mysql-init - updateStrategy: - type: OnDelete - volumeClaimTemplates: - - metadata: - name: datadir - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 6G - status: - phase: Pending diff --git a/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-pxc-k127.yml b/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-pxc-k127.yml deleted file mode 100644 index bcc4bb49ba..0000000000 --- a/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-pxc-k127.yml +++ /dev/null @@ -1,280 +0,0 @@ -apiVersion: apps/v1 -kind: StatefulSet -metadata: - generation: 2 - name: upgrade-proxysql-pxc - ownerReferences: - - controller: true - kind: PerconaXtraDBCluster - name: upgrade-proxysql -spec: - persistentVolumeClaimRetentionPolicy: - whenDeleted: Retain - whenScaled: Retain - podManagementPolicy: OrderedReady - replicas: 3 - revisionHistoryLimit: 10 - selector: - matchLabels: - app.kubernetes.io/component: pxc - app.kubernetes.io/instance: upgrade-proxysql - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - serviceName: upgrade-proxysql-pxc - template: - metadata: - labels: - app.kubernetes.io/component: pxc - app.kubernetes.io/instance: upgrade-proxysql - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - spec: - affinity: - podAntiAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - - labelSelector: - matchLabels: - app.kubernetes.io/component: pxc - app.kubernetes.io/instance: upgrade-proxysql - app.kubernetes.io/managed-by: percona-xtradb-cluster-operator - app.kubernetes.io/name: percona-xtradb-cluster - app.kubernetes.io/part-of: percona-xtradb-cluster - topologyKey: kubernetes.io/hostname - containers: - - env: - - name: LOG_DATA_DIR - value: /var/lib/mysql - - name: POD_NAMESPASE - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.namespace - - name: POD_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.name - envFrom: - - secretRef: - name: upgrade-proxysql-log-collector - optional: true - imagePullPolicy: Always - name: logs - resources: - requests: - cpu: 200m - memory: 100M - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/mysql - name: datadir - - args: - - logrotate - env: - - name: SERVICE_TYPE - value: mysql - - name: MONITOR_PASSWORD - valueFrom: - secretKeyRef: - key: monitor - name: internal-upgrade-proxysql - imagePullPolicy: Always - name: logrotate - resources: - requests: - cpu: 200m - memory: 100M - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/mysql - name: datadir - - args: - - mysqld - command: - - /var/lib/mysql/pxc-entrypoint.sh - env: - - name: PXC_SERVICE - value: upgrade-proxysql-pxc-unready - - name: MONITOR_HOST - value: '%' - - name: MYSQL_ROOT_PASSWORD - valueFrom: - secretKeyRef: - key: root - name: internal-upgrade-proxysql - - name: XTRABACKUP_PASSWORD - valueFrom: - secretKeyRef: - key: xtrabackup - name: internal-upgrade-proxysql - - name: MONITOR_PASSWORD - valueFrom: - secretKeyRef: - key: monitor - name: internal-upgrade-proxysql - - name: LOG_DATA_DIR - value: /var/lib/mysql - - name: IS_LOGCOLLECTOR - value: "yes" - - name: OPERATOR_ADMIN_PASSWORD - valueFrom: - secretKeyRef: - key: operator - name: internal-upgrade-proxysql - - name: LIVENESS_CHECK_TIMEOUT - value: "5" - - name: READINESS_CHECK_TIMEOUT - value: "15" - - name: DEFAULT_AUTHENTICATION_PLUGIN - value: mysql_native_password - - name: MYSQL_NOTIFY_SOCKET - value: /var/lib/mysql/notify.sock - - name: MYSQL_STATE_FILE - value: /var/lib/mysql/mysql.state - envFrom: - - secretRef: - name: upgrade-proxysql-env-vars-pxc - optional: true - imagePullPolicy: Always - livenessProbe: - exec: - command: - - /var/lib/mysql/liveness-check.sh - failureThreshold: 3 - initialDelaySeconds: 300 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 5 - name: pxc - ports: - - containerPort: 3306 - name: mysql - protocol: TCP - - containerPort: 4444 - name: sst - protocol: TCP - - containerPort: 4567 - name: write-set - protocol: TCP - - containerPort: 4568 - name: ist - protocol: TCP - - containerPort: 33062 - name: mysql-admin - protocol: TCP - - containerPort: 33060 - name: mysqlx - protocol: TCP - readinessProbe: - exec: - command: - - /var/lib/mysql/readiness-check.sh - failureThreshold: 5 - initialDelaySeconds: 15 - periodSeconds: 30 - successThreshold: 1 - timeoutSeconds: 15 - resources: - requests: - cpu: 600m - memory: 1G - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/mysql - name: datadir - - mountPath: /etc/percona-xtradb-cluster.conf.d - name: config - - mountPath: /tmp - name: tmp - - mountPath: /etc/mysql/ssl - name: ssl - - mountPath: /etc/mysql/ssl-internal - name: ssl-internal - - mountPath: /etc/mysql/mysql-users-secret - name: mysql-users-secret-file - - mountPath: /etc/my.cnf.d - name: auto-config - - mountPath: /etc/mysql/vault-keyring-secret - name: vault-keyring-secret - - mountPath: /etc/mysql/init-file - name: mysql-init-file - dnsPolicy: ClusterFirst - initContainers: - - command: - - /pxc-init-entrypoint.sh - imagePullPolicy: Always - name: pxc-init - resources: - limits: - cpu: 50m - memory: 50M - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - volumeMounts: - - mountPath: /var/lib/mysql - name: datadir - restartPolicy: Always - schedulerName: default-scheduler - securityContext: - fsGroup: 1001 - supplementalGroups: - - 1001 - serviceAccount: default - serviceAccountName: default - terminationGracePeriodSeconds: 600 - volumes: - - emptyDir: {} - name: tmp - - configMap: - defaultMode: 420 - name: upgrade-proxysql-pxc - optional: true - name: config - - name: ssl-internal - secret: - defaultMode: 420 - optional: true - secretName: some-name-ssl-internal - - name: ssl - secret: - defaultMode: 420 - optional: false - secretName: some-name-ssl - - configMap: - defaultMode: 420 - name: auto-upgrade-proxysql-pxc - optional: true - name: auto-config - - name: vault-keyring-secret - secret: - defaultMode: 420 - optional: true - secretName: some-name-vault - - name: mysql-users-secret-file - secret: - defaultMode: 420 - optional: false - secretName: internal-upgrade-proxysql - - name: mysql-init-file - secret: - defaultMode: 420 - optional: true - secretName: upgrade-proxysql-mysql-init - updateStrategy: - type: OnDelete - volumeClaimTemplates: - - metadata: - name: datadir - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 6G - status: - phase: Pending diff --git a/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-pxc-oc.yml b/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-pxc-oc.yml index 717caf26cd..8d71c22e54 100644 --- a/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-pxc-oc.yml +++ b/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-pxc-oc.yml @@ -8,6 +8,9 @@ metadata: kind: PerconaXtraDBCluster name: upgrade-proxysql spec: + persistentVolumeClaimRetentionPolicy: + whenDeleted: Retain + whenScaled: Retain podManagementPolicy: OrderedReady replicas: 3 revisionHistoryLimit: 10 @@ -265,6 +268,12 @@ spec: type: OnDelete volumeClaimTemplates: - metadata: + labels: + app.kubernetes.io/component: pxc + app.kubernetes.io/instance: upgrade-proxysql + app.kubernetes.io/managed-by: percona-xtradb-cluster-operator + app.kubernetes.io/name: percona-xtradb-cluster + app.kubernetes.io/part-of: percona-xtradb-cluster name: datadir spec: accessModes: diff --git a/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-pxc.yml b/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-pxc.yml index 7c9b8a5929..925167d358 100644 --- a/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-pxc.yml +++ b/e2e-tests/upgrade-proxysql/compare/statefulset_upgrade-proxysql-pxc.yml @@ -8,6 +8,9 @@ metadata: kind: PerconaXtraDBCluster name: upgrade-proxysql spec: + persistentVolumeClaimRetentionPolicy: + whenDeleted: Retain + whenScaled: Retain podManagementPolicy: OrderedReady replicas: 3 revisionHistoryLimit: 10 @@ -266,6 +269,12 @@ spec: type: OnDelete volumeClaimTemplates: - metadata: + labels: + app.kubernetes.io/component: pxc + app.kubernetes.io/instance: upgrade-proxysql + app.kubernetes.io/managed-by: percona-xtradb-cluster-operator + app.kubernetes.io/name: percona-xtradb-cluster + app.kubernetes.io/part-of: percona-xtradb-cluster name: datadir spec: accessModes: From f8bb81effd5bcabca8deed7756f069f4584ae38c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 26 Dec 2024 01:42:13 +0000 Subject: [PATCH 51/60] CLOUD-727: Bump github.com/onsi/ginkgo/v2 from 2.22.0 to 2.22.1 Bumps [github.com/onsi/ginkgo/v2](https://github.com/onsi/ginkgo) from 2.22.0 to 2.22.1. - [Release notes](https://github.com/onsi/ginkgo/releases) - [Changelog](https://github.com/onsi/ginkgo/blob/master/CHANGELOG.md) - [Commits](https://github.com/onsi/ginkgo/compare/v2.22.0...v2.22.1) --- updated-dependencies: - dependency-name: github.com/onsi/ginkgo/v2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- go.mod | 6 +++--- go.sum | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index 77fb811744..6031829bcc 100644 --- a/go.mod +++ b/go.mod @@ -20,7 +20,7 @@ require ( github.com/google/go-cmp v0.6.0 github.com/hashicorp/go-version v1.7.0 github.com/minio/minio-go/v7 v7.0.81 - github.com/onsi/ginkgo/v2 v2.22.0 + github.com/onsi/ginkgo/v2 v2.22.1 github.com/onsi/gomega v1.36.1 github.com/pkg/errors v0.9.1 github.com/robfig/cron/v3 v3.0.1 @@ -57,7 +57,7 @@ require ( github.com/golang/protobuf v1.5.4 // indirect github.com/google/gnostic-models v0.6.8 // indirect github.com/google/gofuzz v1.2.0 // indirect - github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db // indirect + github.com/google/pprof v0.0.0-20241210010833-40e02aabc2ad // indirect github.com/google/uuid v1.6.0 // indirect github.com/gorilla/websocket v1.5.1 // indirect github.com/josharian/intern v1.0.0 // indirect @@ -94,7 +94,7 @@ require ( golang.org/x/term v0.27.0 // indirect golang.org/x/text v0.21.0 // indirect golang.org/x/time v0.7.0 // indirect - golang.org/x/tools v0.26.0 // indirect + golang.org/x/tools v0.28.0 // indirect gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect google.golang.org/protobuf v1.35.1 // indirect gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect diff --git a/go.sum b/go.sum index f2a83e25e4..a6c15ffa1c 100644 --- a/go.sum +++ b/go.sum @@ -91,8 +91,8 @@ github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db h1:097atOisP2aRj7vFgYQBbFN4U4JNXUNYpxael3UzMyo= -github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= +github.com/google/pprof v0.0.0-20241210010833-40e02aabc2ad h1:a6HEuzUHeKH6hwfN/ZoQgRgVIWFJljSWa/zetS2WTvg= +github.com/google/pprof v0.0.0-20241210010833-40e02aabc2ad/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gorilla/websocket v1.5.1 h1:gmztn0JnHVt9JZquRuzLw3g4wouNVzKL15iLr/zn/QY= @@ -137,8 +137,8 @@ github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f h1:y5//uYreIhSUg3J github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/onsi/ginkgo/v2 v2.22.0 h1:Yed107/8DjTr0lKCNt7Dn8yQ6ybuDRQoMGrNFKzMfHg= -github.com/onsi/ginkgo/v2 v2.22.0/go.mod h1:7Du3c42kxCUegi0IImZ1wUQzMBVecgIHjR1C+NkhLQo= +github.com/onsi/ginkgo/v2 v2.22.1 h1:QW7tbJAUDyVDVOM5dFa7qaybo+CRfR7bemlQUN6Z8aM= +github.com/onsi/ginkgo/v2 v2.22.1/go.mod h1:S6aTpoRsSq2cZOd+pssHAlKW/Q/jZt6cPrPlnj4a1xM= github.com/onsi/gomega v1.36.1 h1:bJDPBO7ibjxcbHMgSCoo4Yj18UWbKDlLwX1x9sybDcw= github.com/onsi/gomega v1.36.1/go.mod h1:PvZbdDc8J6XJEpDK4HCuRBm8a6Fzp9/DmhC9C7yFlog= github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= @@ -230,8 +230,8 @@ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.26.0 h1:v/60pFQmzmT9ExmjDv2gGIfi3OqfKoEP6I5+umXlbnQ= -golang.org/x/tools v0.26.0/go.mod h1:TPVVj70c7JJ3WCazhD8OdXcZg/og+b9+tH/KxylGwH0= +golang.org/x/tools v0.28.0 h1:WuB6qZ4RPCQo5aP3WdKZS7i595EdWqWR8vqJTlwTVK8= +golang.org/x/tools v0.28.0/go.mod h1:dcIOrVd3mfQKTgrDVQHqCPMWy6lnhfhtX3hLXYVLfRw= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= From fbace4cb89d4bf5a3e174a80a92feffa31724f16 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 27 Dec 2024 16:28:31 +0000 Subject: [PATCH 52/60] CLOUD-727: Bump github.com/onsi/gomega from 1.36.1 to 1.36.2 Bumps [github.com/onsi/gomega](https://github.com/onsi/gomega) from 1.36.1 to 1.36.2. - [Release notes](https://github.com/onsi/gomega/releases) - [Changelog](https://github.com/onsi/gomega/blob/master/CHANGELOG.md) - [Commits](https://github.com/onsi/gomega/compare/v1.36.1...v1.36.2) --- updated-dependencies: - dependency-name: github.com/onsi/gomega dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 6031829bcc..d96b3f3df8 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ require ( github.com/hashicorp/go-version v1.7.0 github.com/minio/minio-go/v7 v7.0.81 github.com/onsi/ginkgo/v2 v2.22.1 - github.com/onsi/gomega v1.36.1 + github.com/onsi/gomega v1.36.2 github.com/pkg/errors v0.9.1 github.com/robfig/cron/v3 v3.0.1 go.uber.org/zap v1.27.0 @@ -96,7 +96,7 @@ require ( golang.org/x/time v0.7.0 // indirect golang.org/x/tools v0.28.0 // indirect gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect - google.golang.org/protobuf v1.35.1 // indirect + google.golang.org/protobuf v1.36.1 // indirect gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/go.sum b/go.sum index a6c15ffa1c..1acfbc0d4f 100644 --- a/go.sum +++ b/go.sum @@ -139,8 +139,8 @@ github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/onsi/ginkgo/v2 v2.22.1 h1:QW7tbJAUDyVDVOM5dFa7qaybo+CRfR7bemlQUN6Z8aM= github.com/onsi/ginkgo/v2 v2.22.1/go.mod h1:S6aTpoRsSq2cZOd+pssHAlKW/Q/jZt6cPrPlnj4a1xM= -github.com/onsi/gomega v1.36.1 h1:bJDPBO7ibjxcbHMgSCoo4Yj18UWbKDlLwX1x9sybDcw= -github.com/onsi/gomega v1.36.1/go.mod h1:PvZbdDc8J6XJEpDK4HCuRBm8a6Fzp9/DmhC9C7yFlog= +github.com/onsi/gomega v1.36.2 h1:koNYke6TVk6ZmnyHrCXba/T/MoLBXFjeC1PtvYgw0A8= +github.com/onsi/gomega v1.36.2/go.mod h1:DdwyADRjrc825LhMEkD76cHR5+pUnjhUN8GlHlRPHzY= github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ= @@ -238,8 +238,8 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gomodules.xyz/jsonpatch/v2 v2.4.0 h1:Ci3iUJyx9UeRx7CeFN8ARgGbkESwJK+KB9lLcWxY/Zw= gomodules.xyz/jsonpatch/v2 v2.4.0/go.mod h1:AH3dM2RI6uoBZxn3LVrfvJ3E0/9dG4cSrbuBJT4moAY= -google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA= -google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.36.1 h1:yBPeRvTftaleIgM3PZ/WBIZ7XM/eEYAaEyCwvyjq/gk= +google.golang.org/protobuf v1.36.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= From 560a9b2ea9f7d508d6b7cc3ccd376f9e594e333e Mon Sep 17 00:00:00 2001 From: Pavel Tankov <4014969+ptankov@users.noreply.github.com> Date: Mon, 30 Dec 2024 13:19:35 +0200 Subject: [PATCH 53/60] K8SPXC-1537 new version code preparations in main branch for the next release --- deploy/bundle.yaml | 2 +- deploy/cr-minimal.yaml | 5 ++--- deploy/cr.yaml | 8 ++++---- deploy/cw-bundle.yaml | 2 +- deploy/cw-operator.yaml | 2 +- deploy/operator.yaml | 2 +- version/version.go | 2 +- 7 files changed, 11 insertions(+), 12 deletions(-) diff --git a/deploy/bundle.yaml b/deploy/bundle.yaml index c254b2b0c4..433a815c78 100644 --- a/deploy/bundle.yaml +++ b/deploy/bundle.yaml @@ -11522,7 +11522,7 @@ spec: value: percona-xtradb-cluster-operator - name: DISABLE_TELEMETRY value: "false" - image: percona/percona-xtradb-cluster-operator:1.16.1 + image: perconalab/percona-xtradb-cluster-operator:main imagePullPolicy: Always livenessProbe: failureThreshold: 3 diff --git a/deploy/cr-minimal.yaml b/deploy/cr-minimal.yaml index 3e8e6a7cdc..ae69121c41 100644 --- a/deploy/cr-minimal.yaml +++ b/deploy/cr-minimal.yaml @@ -3,7 +3,7 @@ kind: PerconaXtraDBCluster metadata: name: minimal-cluster spec: - crVersion: 1.16.1 + crVersion: 1.17.0 secretsName: minimal-cluster-secrets unsafeFlags: tls: true @@ -28,5 +28,4 @@ spec: image: perconalab/percona-xtradb-cluster-operator:main-haproxy logcollector: enabled: true - image: percona/percona-xtradb-cluster-operator:1.16.1-logcollector-fluentbit3.2.2 - \ No newline at end of file + image: perconalab/percona-xtradb-cluster-operator:main-logcollector diff --git a/deploy/cr.yaml b/deploy/cr.yaml index f1a67d810a..e009d2421e 100644 --- a/deploy/cr.yaml +++ b/deploy/cr.yaml @@ -10,7 +10,7 @@ metadata: # annotations: # percona.com/issue-vault-token: "true" spec: - crVersion: 1.16.1 + crVersion: 1.17.0 # enableVolumeExpansion: false # ignoreAnnotations: # - iam.amazonaws.com/role @@ -22,7 +22,7 @@ spec: # sslInternalSecretName: cluster1-ssl-internal # logCollectorSecretName: cluster1-log-collector-secrets # initContainer: -# image: percona/percona-xtradb-cluster-operator:1.16.1 +# image: perconalab/percona-xtradb-cluster-operator:main # containerSecurityContext: # privileged: false # runAsUser: 1001 @@ -543,7 +543,7 @@ spec: # - 10.0.0.0/8 logcollector: enabled: true - image: percona/percona-xtradb-cluster-operator:1.16.1-logcollector-fluentbit3.2.2 + image: perconalab/percona-xtradb-cluster-operator:main-logcollector # configuration: | # [OUTPUT] # Name es @@ -589,7 +589,7 @@ spec: cpu: 300m backup: # allowParallel: true - image: percona/percona-xtradb-cluster-operator:1.16.1-pxc8.0-backup-pxb8.0.35 + image: perconalab/percona-xtradb-cluster-operator:main-pxc8.0-backup # backoffLimit: 6 # activeDeadlineSeconds: 3600 # serviceAccountName: percona-xtradb-cluster-operator diff --git a/deploy/cw-bundle.yaml b/deploy/cw-bundle.yaml index bd5977aba1..588c3c63c2 100644 --- a/deploy/cw-bundle.yaml +++ b/deploy/cw-bundle.yaml @@ -11532,7 +11532,7 @@ spec: value: percona-xtradb-cluster-operator - name: DISABLE_TELEMETRY value: "false" - image: percona/percona-xtradb-cluster-operator:1.16.1 + image: perconalab/percona-xtradb-cluster-operator:main imagePullPolicy: Always resources: limits: diff --git a/deploy/cw-operator.yaml b/deploy/cw-operator.yaml index 3f0210ea46..4e498668cf 100644 --- a/deploy/cw-operator.yaml +++ b/deploy/cw-operator.yaml @@ -42,7 +42,7 @@ spec: value: percona-xtradb-cluster-operator - name: DISABLE_TELEMETRY value: "false" - image: percona/percona-xtradb-cluster-operator:1.16.1 + image: perconalab/percona-xtradb-cluster-operator:main imagePullPolicy: Always resources: limits: diff --git a/deploy/operator.yaml b/deploy/operator.yaml index 6cf721cb55..de903e0393 100644 --- a/deploy/operator.yaml +++ b/deploy/operator.yaml @@ -45,7 +45,7 @@ spec: value: percona-xtradb-cluster-operator - name: DISABLE_TELEMETRY value: "false" - image: percona/percona-xtradb-cluster-operator:1.16.1 + image: perconalab/percona-xtradb-cluster-operator:main imagePullPolicy: Always livenessProbe: failureThreshold: 3 diff --git a/version/version.go b/version/version.go index e3164ec04d..edc8424e7e 100644 --- a/version/version.go +++ b/version/version.go @@ -1,5 +1,5 @@ package version var ( - Version = "1.16.1" + Version = "1.17.0" ) From fbf636fa4ac6688acb7b2e2b90f6ea17cf0321bb Mon Sep 17 00:00:00 2001 From: Pavel Tankov <4014969+ptankov@users.noreply.github.com> Date: Tue, 31 Dec 2024 19:08:12 +0200 Subject: [PATCH 54/60] K8SPXC-1537 Update upgrade-consistency test for 1.16.1 release (#1931) * K8SPXC-1537 Update upgrade-consistency test for 1.16.1 release * update 1.16.0 files instead of creating new ones for 1.16.1 --- ...60.yml => service_some-name-proxysql-1161.yml} | 0 ...xc-1160.yml => service_some-name-pxc-1161.yml} | 0 ...=> statefulset_some-name-proxysql-1161-oc.yml} | 0 ...ml => statefulset_some-name-proxysql-1161.yml} | 0 ....yml => statefulset_some-name-pxc-1161-oc.yml} | 0 ...160.yml => statefulset_some-name-pxc-1161.yml} | 0 e2e-tests/upgrade-consistency/run | 15 +++++++-------- 7 files changed, 7 insertions(+), 8 deletions(-) rename e2e-tests/upgrade-consistency/compare/{service_some-name-proxysql-1160.yml => service_some-name-proxysql-1161.yml} (100%) rename e2e-tests/upgrade-consistency/compare/{service_some-name-pxc-1160.yml => service_some-name-pxc-1161.yml} (100%) rename e2e-tests/upgrade-consistency/compare/{statefulset_some-name-proxysql-1160-oc.yml => statefulset_some-name-proxysql-1161-oc.yml} (100%) rename e2e-tests/upgrade-consistency/compare/{statefulset_some-name-proxysql-1160.yml => statefulset_some-name-proxysql-1161.yml} (100%) rename e2e-tests/upgrade-consistency/compare/{statefulset_some-name-pxc-1160-oc.yml => statefulset_some-name-pxc-1161-oc.yml} (100%) rename e2e-tests/upgrade-consistency/compare/{statefulset_some-name-pxc-1160.yml => statefulset_some-name-pxc-1161.yml} (100%) diff --git a/e2e-tests/upgrade-consistency/compare/service_some-name-proxysql-1160.yml b/e2e-tests/upgrade-consistency/compare/service_some-name-proxysql-1161.yml similarity index 100% rename from e2e-tests/upgrade-consistency/compare/service_some-name-proxysql-1160.yml rename to e2e-tests/upgrade-consistency/compare/service_some-name-proxysql-1161.yml diff --git a/e2e-tests/upgrade-consistency/compare/service_some-name-pxc-1160.yml b/e2e-tests/upgrade-consistency/compare/service_some-name-pxc-1161.yml similarity index 100% rename from e2e-tests/upgrade-consistency/compare/service_some-name-pxc-1160.yml rename to e2e-tests/upgrade-consistency/compare/service_some-name-pxc-1161.yml diff --git a/e2e-tests/upgrade-consistency/compare/statefulset_some-name-proxysql-1160-oc.yml b/e2e-tests/upgrade-consistency/compare/statefulset_some-name-proxysql-1161-oc.yml similarity index 100% rename from e2e-tests/upgrade-consistency/compare/statefulset_some-name-proxysql-1160-oc.yml rename to e2e-tests/upgrade-consistency/compare/statefulset_some-name-proxysql-1161-oc.yml diff --git a/e2e-tests/upgrade-consistency/compare/statefulset_some-name-proxysql-1160.yml b/e2e-tests/upgrade-consistency/compare/statefulset_some-name-proxysql-1161.yml similarity index 100% rename from e2e-tests/upgrade-consistency/compare/statefulset_some-name-proxysql-1160.yml rename to e2e-tests/upgrade-consistency/compare/statefulset_some-name-proxysql-1161.yml diff --git a/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1160-oc.yml b/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1161-oc.yml similarity index 100% rename from e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1160-oc.yml rename to e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1161-oc.yml diff --git a/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1160.yml b/e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1161.yml similarity index 100% rename from e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1160.yml rename to e2e-tests/upgrade-consistency/compare/statefulset_some-name-pxc-1161.yml diff --git a/e2e-tests/upgrade-consistency/run b/e2e-tests/upgrade-consistency/run index d860630c82..ec0c87ba9a 100755 --- a/e2e-tests/upgrade-consistency/run +++ b/e2e-tests/upgrade-consistency/run @@ -35,8 +35,7 @@ main() { create_infra $namespace apply_config "$conf_dir/client.yml" - kubectl_bin apply \ - -f "$test_dir/conf/secrets.yml" + kubectl_bin apply -f "$test_dir/conf/secrets.yml" cat_config "$conf_dir/$cluster.yml" \ | yq eval '.spec.crVersion = "1.15.1"' - \ | kubectl_bin apply -f - @@ -53,17 +52,17 @@ main() { compare_kubectl statefulset/$cluster-pxc "-1151" compare_kubectl statefulset/$cluster-proxysql "-1151" - desc "test 1.16.0" + desc "test 1.16.1" kubectl_bin patch pxc "$cluster" --type=merge --patch '{ - "spec": {"crVersion":"1.16.0"} + "spec": {"crVersion":"1.16.1"} }' wait_cluster_consistency "$cluster" 3 2 wait_for_sts_generation "$cluster-pxc" "2" "1" desc "compare k8s objects" - compare_kubectl service/$cluster-pxc "-1160" - compare_kubectl service/$cluster-proxysql "-1160" - compare_kubectl statefulset/$cluster-pxc "-1160" - compare_kubectl statefulset/$cluster-proxysql "-1160" + compare_kubectl service/$cluster-pxc "-1161" + compare_kubectl service/$cluster-proxysql "-1161" + compare_kubectl statefulset/$cluster-pxc "-1161" + compare_kubectl statefulset/$cluster-proxysql "-1161" desc "test 1.17.0" kubectl_bin patch pxc "$cluster" --type=merge --patch '{ From bd37878fd12e01c8d208dab167759ac92e1c6a0a Mon Sep 17 00:00:00 2001 From: George Kechagias Date: Thu, 9 Jan 2025 15:29:56 +0200 Subject: [PATCH 55/60] Add gkech to codeowners --- .github/CODEOWNERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index fcb580427a..3372e64e8b 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,3 +1,3 @@ -* @hors @egegunes @inelpandzic @pooknull +* @hors @egegunes @inelpandzic @pooknull @gkech /e2e-tests/ @tplavcic @nmarukovich @ptankov @jvpasinatto @eleo007 Jenkinsfile @tplavcic @nmarukovich @ptankov @jvpasinatto @eleo007 From 88dd2e970639024dbc334b3ee0c5f4779cec5280 Mon Sep 17 00:00:00 2001 From: George Kechagias Date: Thu, 9 Jan 2025 15:39:54 +0200 Subject: [PATCH 56/60] fix minor typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 29d061e5af..6e1ba1f414 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ [Percona Operator for MySQL based on Percona XtraDB Cluster](https://docs.percona.com/percona-operator-for-mysql/pxc/index.html) (PXC) automates the creation and management of highly available, enterprise-ready MySQL database clusters on Kubernetes. -Within the [Percona Operator for MySQL based on Percona XtraDB Cluster](https://www.percona.com/doc/kubernetes-operator-for-pxc/index.html) we have implemented our best practices for deployment and configuration Percona XtraDB Cluster instances in a Kubernetes-based environment on-premises or in the cloud. The Operator provides the following capabilities to keep the cluster healthy: +Within the [Percona Operator for MySQL based on Percona XtraDB Cluster](https://www.percona.com/doc/kubernetes-operator-for-pxc/index.html) we have implemented our best practices for deployment and configuration of Percona XtraDB Cluster instances in a Kubernetes-based environment on-premises or in the cloud. The Operator provides the following capabilities to keep the cluster healthy: * Easy deployment with no single point of failure * Load balancing and proxy service with either HAProxy or ProxySQL From de6dd68c5f2f4e5700267963d667a3128caddd61 Mon Sep 17 00:00:00 2001 From: George Kechagias Date: Thu, 9 Jan 2025 16:02:59 +0200 Subject: [PATCH 57/60] remove old codeowner --- .github/CODEOWNERS | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 3372e64e8b..d7a3a9ffb5 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,3 +1,3 @@ * @hors @egegunes @inelpandzic @pooknull @gkech -/e2e-tests/ @tplavcic @nmarukovich @ptankov @jvpasinatto @eleo007 -Jenkinsfile @tplavcic @nmarukovich @ptankov @jvpasinatto @eleo007 +/e2e-tests/ @nmarukovich @ptankov @jvpasinatto @eleo007 +Jenkinsfile @nmarukovich @ptankov @jvpasinatto @eleo007 From 89b559aa65a3d3e18d251272ed808712ac87c17a Mon Sep 17 00:00:00 2001 From: George Kechagias Date: Thu, 9 Jan 2025 16:56:21 +0200 Subject: [PATCH 58/60] remove codeowner --- .github/CODEOWNERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index d7a3a9ffb5..a3cecd7b8d 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,3 +1,3 @@ -* @hors @egegunes @inelpandzic @pooknull @gkech +* @hors @egegunes @pooknull @gkech /e2e-tests/ @nmarukovich @ptankov @jvpasinatto @eleo007 Jenkinsfile @nmarukovich @ptankov @jvpasinatto @eleo007 From 84f43ace68f09e3592ce479ce28755fdf342a0c4 Mon Sep 17 00:00:00 2001 From: George Kechagias Date: Fri, 10 Jan 2025 11:08:54 +0200 Subject: [PATCH 59/60] move codeowner --- .github/CODEOWNERS | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index a3cecd7b8d..0a105f371a 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,3 +1,3 @@ -* @hors @egegunes @pooknull @gkech -/e2e-tests/ @nmarukovich @ptankov @jvpasinatto @eleo007 -Jenkinsfile @nmarukovich @ptankov @jvpasinatto @eleo007 +* @hors @egegunes @pooknull @nmarukovich @gkech +/e2e-tests/ @ptankov @jvpasinatto @eleo007 +Jenkinsfile @ptankov @jvpasinatto @eleo007 From 137e4f94a412345697c13066310fe0c8bda22ff3 Mon Sep 17 00:00:00 2001 From: Vlad Gusev Date: Mon, 13 Jan 2025 13:06:51 +0200 Subject: [PATCH 60/60] K8SPXC: set controller reference for PiTR deployment (#1880) Set controller reference for PiTR deployment the same way as it's set for PXC and proxy StatefulSets. This would crate a connection between PiTR deployment and cluster resource. --- pkg/controller/pxc/backup.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkg/controller/pxc/backup.go b/pkg/controller/pxc/backup.go index fa54c92a19..29af995c76 100644 --- a/pkg/controller/pxc/backup.go +++ b/pkg/controller/pxc/backup.go @@ -48,6 +48,10 @@ func (r *ReconcilePerconaXtraDBCluster) reconcileBackups(ctx context.Context, cr if err != nil { return errors.Errorf("get binlog collector deployment for cluster '%s': %v", cr.Name, err) } + err = setControllerReference(cr, &binlogCollector, r.scheme) + if err != nil { + return errors.Wrapf(err, "set controller reference for binlog collector deployment '%s'", binlogCollector.Name) + } currentCollector := appsv1.Deployment{} err = r.client.Get(context.TODO(), types.NamespacedName{Name: binlogCollector.Name, Namespace: binlogCollector.Namespace}, ¤tCollector)