From b28546de236fe6eff0d30cc6c47c293aaded81a3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 17 Sep 2024 12:29:09 +0300 Subject: [PATCH 01/12] CLOUD-727: Bump k8s.io/client-go from 0.31.0 to 0.31.1 (#897) Bumps [k8s.io/client-go](https://github.com/kubernetes/client-go) from 0.31.0 to 0.31.1. - [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md) - [Commits](https://github.com/kubernetes/client-go/compare/v0.31.0...v0.31.1) --- 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> --- go.mod | 6 +++--- go.sum | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index 60d35e275..b5f6882e4 100644 --- a/go.mod +++ b/go.mod @@ -32,9 +32,9 @@ require ( golang.org/x/crypto v0.27.0 google.golang.org/grpc v1.66.2 gotest.tools/v3 v3.5.1 - k8s.io/api v0.31.0 - k8s.io/apimachinery v0.31.0 - k8s.io/client-go v0.31.0 + k8s.io/api v0.31.1 + k8s.io/apimachinery v0.31.1 + k8s.io/client-go v0.31.1 k8s.io/component-base v0.31.0 sigs.k8s.io/controller-runtime v0.19.0 sigs.k8s.io/yaml v1.4.0 diff --git a/go.sum b/go.sum index a28cb55b1..c57264b9e 100644 --- a/go.sum +++ b/go.sum @@ -385,14 +385,14 @@ gotest.tools/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU= gotest.tools/v3 v3.5.1/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -k8s.io/api v0.31.0 h1:b9LiSjR2ym/SzTOlfMHm1tr7/21aD7fSkqgD/CVJBCo= -k8s.io/api v0.31.0/go.mod h1:0YiFF+JfFxMM6+1hQei8FY8M7s1Mth+z/q7eF1aJkTE= +k8s.io/api v0.31.1 h1:Xe1hX/fPW3PXYYv8BlozYqw63ytA92snr96zMW9gWTU= +k8s.io/api v0.31.1/go.mod h1:sbN1g6eY6XVLeqNsZGLnI5FwVseTrZX7Fv3O26rhAaI= k8s.io/apiextensions-apiserver v0.31.0 h1:fZgCVhGwsclj3qCw1buVXCV6khjRzKC5eCFt24kyLSk= k8s.io/apiextensions-apiserver v0.31.0/go.mod h1:b9aMDEYaEe5sdK+1T0KU78ApR/5ZVp4i56VacZYEHxk= -k8s.io/apimachinery v0.31.0 h1:m9jOiSr3FoSSL5WO9bjm1n6B9KROYYgNZOb4tyZ1lBc= -k8s.io/apimachinery v0.31.0/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= -k8s.io/client-go v0.31.0 h1:QqEJzNjbN2Yv1H79SsS+SWnXkBgVu4Pj3CJQgbx0gI8= -k8s.io/client-go v0.31.0/go.mod h1:Y9wvC76g4fLjmU0BA+rV+h2cncoadjvjjkkIGoTLcGU= +k8s.io/apimachinery v0.31.1 h1:mhcUBbj7KUjaVhyXILglcVjuS4nYXiwC+KKFBgIVy7U= +k8s.io/apimachinery v0.31.1/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= +k8s.io/client-go v0.31.1 h1:f0ugtWSbWpxHR7sjVpQwuvw9a3ZKLXX0u0itkFXufb0= +k8s.io/client-go v0.31.1/go.mod h1:sKI8871MJN2OyeqRlmA4W4KM9KBdBUpDLu/43eGemCg= k8s.io/component-base v0.31.0 h1:/KIzGM5EvPNQcYgwq5NwoQBaOlVFrghoVGr8lG6vNRs= k8s.io/component-base v0.31.0/go.mod h1:TYVuzI1QmN4L5ItVdMSXKvH7/DtvIuas5/mm8YT3rTo= k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= From a851e501354a975ce23b5231c3f538e2eeed21c9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 17 Sep 2024 16:46:47 +0300 Subject: [PATCH 02/12] CLOUD-727: Bump go.opentelemetry.io/otel from 1.29.0 to 1.30.0 (#900) Bumps [go.opentelemetry.io/otel](https://github.com/open-telemetry/opentelemetry-go) from 1.29.0 to 1.30.0. - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.29.0...v1.30.0) --- updated-dependencies: - dependency-name: go.opentelemetry.io/otel 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 | 6 +++--- go.sum | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index b5f6882e4..b1e801284 100644 --- a/go.mod +++ b/go.mod @@ -22,12 +22,12 @@ require ( github.com/xdg-go/stringprep v1.0.4 go.nhat.io/grpcmock v0.27.0 go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0 - go.opentelemetry.io/otel v1.29.0 + go.opentelemetry.io/otel v1.30.0 go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.29.0 go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.29.0 go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.29.0 go.opentelemetry.io/otel/sdk v1.29.0 - go.opentelemetry.io/otel/trace v1.29.0 + go.opentelemetry.io/otel/trace v1.30.0 go.uber.org/zap v1.27.0 golang.org/x/crypto v0.27.0 google.golang.org/grpc v1.66.2 @@ -107,7 +107,7 @@ require ( go.mongodb.org/mongo-driver v1.14.0 // indirect go.nhat.io/matcher/v2 v2.0.0 // indirect go.nhat.io/wait v0.1.0 // indirect - go.opentelemetry.io/otel/metric v1.29.0 // indirect + go.opentelemetry.io/otel/metric v1.30.0 // indirect go.opentelemetry.io/proto/otlp v1.3.1 // indirect go.uber.org/multierr v1.11.0 // indirect golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect diff --git a/go.sum b/go.sum index c57264b9e..1e4fd590f 100644 --- a/go.sum +++ b/go.sum @@ -233,20 +233,20 @@ go.nhat.io/wait v0.1.0 h1:aQ4YDzaOgFbypiJ9c/eAfOIB1G25VOv7Gd2QS8uz1gw= go.nhat.io/wait v0.1.0/go.mod h1:+ijMghc9/9zXi+HDcs49HNReprvXOZha2Q3jTOtqJrE= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0 h1:TT4fX+nBOA/+LUkobKGW1ydGcn+G3vRw9+g5HwCphpk= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0/go.mod h1:L7UH0GbB0p47T4Rri3uHjbpCFYrVrwc1I25QhNPiGK8= -go.opentelemetry.io/otel v1.29.0 h1:PdomN/Al4q/lN6iBJEN3AwPvUiHPMlt93c8bqTG5Llw= -go.opentelemetry.io/otel v1.29.0/go.mod h1:N/WtXPs1CNCUEx+Agz5uouwCba+i+bJGFicT8SR4NP8= +go.opentelemetry.io/otel v1.30.0 h1:F2t8sK4qf1fAmY9ua4ohFS/K+FUuOPemHUIXHtktrts= +go.opentelemetry.io/otel v1.30.0/go.mod h1:tFw4Br9b7fOS+uEao81PJjVMjW/5fvNCbpsDIXqP0pc= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.29.0 h1:dIIDULZJpgdiHz5tXrTgKIMLkus6jEFa7x5SOKcyR7E= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.29.0/go.mod h1:jlRVBe7+Z1wyxFSUs48L6OBQZ5JwH2Hg/Vbl+t9rAgI= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.29.0 h1:JAv0Jwtl01UFiyWZEMiJZBiTlv5A50zNs8lsthXqIio= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.29.0/go.mod h1:QNKLmUEAq2QUbPQUfvw4fmv0bgbK7UlOSFCnXyfvSNc= go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.29.0 h1:X3ZjNp36/WlkSYx0ul2jw4PtbNEDDeLskw3VPsrpYM0= go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.29.0/go.mod h1:2uL/xnOXh0CHOBFCWXz5u1A4GXLiW+0IQIzVbeOEQ0U= -go.opentelemetry.io/otel/metric v1.29.0 h1:vPf/HFWTNkPu1aYeIsc98l4ktOQaL6LeSoeV2g+8YLc= -go.opentelemetry.io/otel/metric v1.29.0/go.mod h1:auu/QWieFVWx+DmQOUMgj0F8LHWdgalxXqvp7BII/W8= +go.opentelemetry.io/otel/metric v1.30.0 h1:4xNulvn9gjzo4hjg+wzIKG7iNFEaBMX00Qd4QIZs7+w= +go.opentelemetry.io/otel/metric v1.30.0/go.mod h1:aXTfST94tswhWEb+5QjlSqG+cZlmyXy/u8jFpor3WqQ= go.opentelemetry.io/otel/sdk v1.29.0 h1:vkqKjk7gwhS8VaWb0POZKmIEDimRCMsopNYnriHyryo= go.opentelemetry.io/otel/sdk v1.29.0/go.mod h1:pM8Dx5WKnvxLCb+8lG1PRNIDxu9g9b9g59Qr7hfAAok= -go.opentelemetry.io/otel/trace v1.29.0 h1:J/8ZNK4XgR7a21DZUAsbF8pZ5Jcw1VhACmnYt39JTi4= -go.opentelemetry.io/otel/trace v1.29.0/go.mod h1:eHl3w0sp3paPkYstJOmAimxhiFXPg+MMTlEh3nsQgWQ= +go.opentelemetry.io/otel/trace v1.30.0 h1:7UBkkYzeg3C7kQX8VAidWh2biiQbtAKjyIML8dQ9wmc= +go.opentelemetry.io/otel/trace v1.30.0/go.mod h1:5EyKqTzzmyqB9bwtCCq6pDLktPK6fmGf/Dph+8VI02o= go.opentelemetry.io/proto/otlp v1.3.1 h1:TrMUixzpM0yuc/znrFTP9MMRh8trP93mkCiDVeXrui0= go.opentelemetry.io/proto/otlp v1.3.1/go.mod h1:0X1WI4de4ZsLrrJNLAQbFeLCm3T7yBkR0XqQ7niQU+8= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= From 9c57ac786706b3a6895afd4bfffbc54168db893e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 17 Sep 2024 16:47:20 +0300 Subject: [PATCH 03/12] CLOUD-727: Bump k8s.io/component-base from 0.31.0 to 0.31.1 (#899) Bumps [k8s.io/component-base](https://github.com/kubernetes/component-base) from 0.31.0 to 0.31.1. - [Commits](https://github.com/kubernetes/component-base/compare/v0.31.0...v0.31.1) --- updated-dependencies: - dependency-name: k8s.io/component-base 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 | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index b1e801284..378e423b7 100644 --- a/go.mod +++ b/go.mod @@ -35,7 +35,7 @@ require ( k8s.io/api v0.31.1 k8s.io/apimachinery v0.31.1 k8s.io/client-go v0.31.1 - k8s.io/component-base v0.31.0 + k8s.io/component-base v0.31.1 sigs.k8s.io/controller-runtime v0.19.0 sigs.k8s.io/yaml v1.4.0 ) diff --git a/go.sum b/go.sum index 1e4fd590f..9da63773d 100644 --- a/go.sum +++ b/go.sum @@ -393,8 +393,8 @@ k8s.io/apimachinery v0.31.1 h1:mhcUBbj7KUjaVhyXILglcVjuS4nYXiwC+KKFBgIVy7U= k8s.io/apimachinery v0.31.1/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= k8s.io/client-go v0.31.1 h1:f0ugtWSbWpxHR7sjVpQwuvw9a3ZKLXX0u0itkFXufb0= k8s.io/client-go v0.31.1/go.mod h1:sKI8871MJN2OyeqRlmA4W4KM9KBdBUpDLu/43eGemCg= -k8s.io/component-base v0.31.0 h1:/KIzGM5EvPNQcYgwq5NwoQBaOlVFrghoVGr8lG6vNRs= -k8s.io/component-base v0.31.0/go.mod h1:TYVuzI1QmN4L5ItVdMSXKvH7/DtvIuas5/mm8YT3rTo= +k8s.io/component-base v0.31.1 h1:UpOepcrX3rQ3ab5NB6g5iP0tvsgJWzxTyAo20sgYSy8= +k8s.io/component-base v0.31.1/go.mod h1:WGeaw7t/kTsqpVTaCoVEtillbqAhF2/JgvO0LDOMa0w= 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-20240521193020-835d969ad83a h1:zD1uj3Jf+mD4zmA7W+goE5TxDkI7OGJjBNBzq5fJtLA= From 7da7ed982718cec486865e5887fbd2c962f21c0e Mon Sep 17 00:00:00 2001 From: Pavel Tankov <4014969+ptankov@users.noreply.github.com> Date: Tue, 17 Sep 2024 17:40:41 +0300 Subject: [PATCH 04/12] Update timeout values in assert.yaml files (#893) Co-authored-by: Viacheslav Sarzhan --- e2e-tests/tests/self-healing/16-assert.yaml | 2 +- e2e-tests/tests/upgrade-consistency/02-assert.yaml | 2 +- e2e-tests/tests/upgrade-consistency/03-assert.yaml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/e2e-tests/tests/self-healing/16-assert.yaml b/e2e-tests/tests/self-healing/16-assert.yaml index d789c6d5f..50bbc47bc 100644 --- a/e2e-tests/tests/self-healing/16-assert.yaml +++ b/e2e-tests/tests/self-healing/16-assert.yaml @@ -1,6 +1,6 @@ apiVersion: kuttl.dev/v1beta1 kind: TestAssert -timeout: 30 +timeout: 50 --- kind: ConfigMap apiVersion: v1 diff --git a/e2e-tests/tests/upgrade-consistency/02-assert.yaml b/e2e-tests/tests/upgrade-consistency/02-assert.yaml index bde2cf8cb..3b9845d84 100644 --- a/e2e-tests/tests/upgrade-consistency/02-assert.yaml +++ b/e2e-tests/tests/upgrade-consistency/02-assert.yaml @@ -1,6 +1,6 @@ apiVersion: kuttl.dev/v1beta1 kind: TestAssert -timeout: 240 +timeout: 300 --- kind: StatefulSet apiVersion: apps/v1 diff --git a/e2e-tests/tests/upgrade-consistency/03-assert.yaml b/e2e-tests/tests/upgrade-consistency/03-assert.yaml index b73d7ab04..0216e2395 100644 --- a/e2e-tests/tests/upgrade-consistency/03-assert.yaml +++ b/e2e-tests/tests/upgrade-consistency/03-assert.yaml @@ -1,6 +1,6 @@ apiVersion: kuttl.dev/v1beta1 kind: TestAssert -timeout: 240 +timeout: 300 --- kind: StatefulSet apiVersion: apps/v1 From 937724af8cc26dcf3e1ec977c5613a596d592b90 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 17 Sep 2024 18:48:05 +0300 Subject: [PATCH 05/12] CLOUD-727: Bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp (#901) Bumps [go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp](https://github.com/open-telemetry/opentelemetry-go) from 1.29.0 to 1.30.0. - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.29.0...v1.30.0) --- updated-dependencies: - dependency-name: go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp 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 | 12 ++++++------ go.sum | 24 ++++++++++++------------ 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/go.mod b/go.mod index 378e423b7..92eecf522 100644 --- a/go.mod +++ b/go.mod @@ -23,10 +23,10 @@ require ( go.nhat.io/grpcmock v0.27.0 go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0 go.opentelemetry.io/otel v1.30.0 - go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.29.0 - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.29.0 + go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.30.0 + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.30.0 go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.29.0 - go.opentelemetry.io/otel/sdk v1.29.0 + go.opentelemetry.io/otel/sdk v1.30.0 go.opentelemetry.io/otel/trace v1.30.0 go.uber.org/zap v1.27.0 golang.org/x/crypto v0.27.0 @@ -111,7 +111,7 @@ require ( go.opentelemetry.io/proto/otlp v1.3.1 // indirect go.uber.org/multierr v1.11.0 // indirect golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect - golang.org/x/net v0.28.0 // indirect + golang.org/x/net v0.29.0 // indirect golang.org/x/oauth2 v0.22.0 // indirect golang.org/x/sync v0.8.0 // indirect golang.org/x/sys v0.25.0 // indirect @@ -120,8 +120,8 @@ require ( golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.24.0 // indirect gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240822170219-fc7c04adadcd // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240822170219-fc7c04adadcd // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 // indirect google.golang.org/protobuf v1.34.2 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/go.sum b/go.sum index 9da63773d..3db0248ec 100644 --- a/go.sum +++ b/go.sum @@ -235,16 +235,16 @@ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0 h1:TT4fX+n go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0/go.mod h1:L7UH0GbB0p47T4Rri3uHjbpCFYrVrwc1I25QhNPiGK8= go.opentelemetry.io/otel v1.30.0 h1:F2t8sK4qf1fAmY9ua4ohFS/K+FUuOPemHUIXHtktrts= go.opentelemetry.io/otel v1.30.0/go.mod h1:tFw4Br9b7fOS+uEao81PJjVMjW/5fvNCbpsDIXqP0pc= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.29.0 h1:dIIDULZJpgdiHz5tXrTgKIMLkus6jEFa7x5SOKcyR7E= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.29.0/go.mod h1:jlRVBe7+Z1wyxFSUs48L6OBQZ5JwH2Hg/Vbl+t9rAgI= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.29.0 h1:JAv0Jwtl01UFiyWZEMiJZBiTlv5A50zNs8lsthXqIio= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.29.0/go.mod h1:QNKLmUEAq2QUbPQUfvw4fmv0bgbK7UlOSFCnXyfvSNc= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.30.0 h1:lsInsfvhVIfOI6qHVyysXMNDnjO9Npvl7tlDPJFBVd4= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.30.0/go.mod h1:KQsVNh4OjgjTG0G6EiNi1jVpnaeeKsKMRwbLN+f1+8M= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.30.0 h1:umZgi92IyxfXd/l4kaDhnKgY8rnN/cZcF1LKc6I8OQ8= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.30.0/go.mod h1:4lVs6obhSVRb1EW5FhOuBTyiQhtRtAnnva9vD3yRfq8= go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.29.0 h1:X3ZjNp36/WlkSYx0ul2jw4PtbNEDDeLskw3VPsrpYM0= go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.29.0/go.mod h1:2uL/xnOXh0CHOBFCWXz5u1A4GXLiW+0IQIzVbeOEQ0U= go.opentelemetry.io/otel/metric v1.30.0 h1:4xNulvn9gjzo4hjg+wzIKG7iNFEaBMX00Qd4QIZs7+w= go.opentelemetry.io/otel/metric v1.30.0/go.mod h1:aXTfST94tswhWEb+5QjlSqG+cZlmyXy/u8jFpor3WqQ= -go.opentelemetry.io/otel/sdk v1.29.0 h1:vkqKjk7gwhS8VaWb0POZKmIEDimRCMsopNYnriHyryo= -go.opentelemetry.io/otel/sdk v1.29.0/go.mod h1:pM8Dx5WKnvxLCb+8lG1PRNIDxu9g9b9g59Qr7hfAAok= +go.opentelemetry.io/otel/sdk v1.30.0 h1:cHdik6irO49R5IysVhdn8oaiR9m8XluDaJAs4DfOrYE= +go.opentelemetry.io/otel/sdk v1.30.0/go.mod h1:p14X4Ok8S+sygzblytT1nqG98QG2KYKv++HE0LY/mhg= go.opentelemetry.io/otel/trace v1.30.0 h1:7UBkkYzeg3C7kQX8VAidWh2biiQbtAKjyIML8dQ9wmc= go.opentelemetry.io/otel/trace v1.30.0/go.mod h1:5EyKqTzzmyqB9bwtCCq6pDLktPK6fmGf/Dph+8VI02o= go.opentelemetry.io/proto/otlp v1.3.1 h1:TrMUixzpM0yuc/znrFTP9MMRh8trP93mkCiDVeXrui0= @@ -285,8 +285,8 @@ golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.28.0 h1:a9JDOJc5GMUJ0+UDqmLT86WiEy7iWyIhz8gz8E4e5hE= -golang.org/x/net v0.28.0/go.mod h1:yqtgsTWOOnlGLG9GFRrK3++bGOUEkNBoHZc8MEDWPNg= +golang.org/x/net v0.29.0 h1:5ORfpBpCs4HzDYoodCDBbwHzdR5UrLBZ3sOnUJmFoHo= +golang.org/x/net v0.29.0/go.mod h1:gLkgy8jTGERgjzMic6DS9+SP0ajcu6Xu3Orq/SpETg0= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.22.0 h1:BzDx2FehcG7jJwgWLELCdmLuxk2i+x9UDpSiss2u0ZA= golang.org/x/oauth2 v0.22.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= @@ -346,10 +346,10 @@ google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7 google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto/googleapis/api v0.0.0-20240822170219-fc7c04adadcd h1:BBOTEWLuuEGQy9n1y9MhVJ9Qt0BDu21X8qZs71/uPZo= -google.golang.org/genproto/googleapis/api v0.0.0-20240822170219-fc7c04adadcd/go.mod h1:fO8wJzT2zbQbAjbIoos1285VfEIYKDDY+Dt+WpTkh6g= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240822170219-fc7c04adadcd h1:6TEm2ZxXoQmFWFlt1vNxvVOa1Q0dXFQD1m/rYjXmS0E= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240822170219-fc7c04adadcd/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU= +google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1 h1:hjSy6tcFQZ171igDaN5QHOw2n6vx40juYbC/x67CEhc= +google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:qpvKtACPCQhAdu3PyQgV4l3LMXZEtft7y8QcarRsp9I= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 h1:pPJltXNxVzT4pK9yD8vR9X75DaWYYmLGMsEvBfFQZzQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= From 8b71bea4d9f727784131eac95fc6bccefd00434d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 17 Sep 2024 18:51:52 +0300 Subject: [PATCH 06/12] CLOUD-727: Bump go.nhat.io/grpcmock from 0.27.0 to 0.28.0 (#903) Bumps [go.nhat.io/grpcmock](https://github.com/nhatthm/grpcmock) from 0.27.0 to 0.28.0. - [Release notes](https://github.com/nhatthm/grpcmock/releases) - [Commits](https://github.com/nhatthm/grpcmock/compare/v0.27.0...v0.28.0) --- updated-dependencies: - dependency-name: go.nhat.io/grpcmock 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 | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index 92eecf522..6bcdf8342 100644 --- a/go.mod +++ b/go.mod @@ -20,7 +20,7 @@ require ( github.com/pkg/errors v0.9.1 github.com/sirupsen/logrus v1.9.3 github.com/xdg-go/stringprep v1.0.4 - go.nhat.io/grpcmock v0.27.0 + go.nhat.io/grpcmock v0.28.0 go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0 go.opentelemetry.io/otel v1.30.0 go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.30.0 diff --git a/go.sum b/go.sum index 3db0248ec..b5fcfb94d 100644 --- a/go.sum +++ b/go.sum @@ -223,10 +223,10 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= go.mongodb.org/mongo-driver v1.14.0 h1:P98w8egYRjYe3XDjxhYJagTokP/H6HzlsnojRgZRd80= go.mongodb.org/mongo-driver v1.14.0/go.mod h1:Vzb0Mk/pa7e6cWw85R4F/endUC3u0U9jGcNU603k65c= -go.nhat.io/aferomock v0.4.0 h1:gs3nJzIqAezglUuaPfautAmZwulwRWLcfSSzdK4YCC0= -go.nhat.io/aferomock v0.4.0/go.mod h1:msi5MDOtJ/AroUa/lDc3jVGOILM4SKP//4yBRImOvkI= -go.nhat.io/grpcmock v0.27.0 h1:Lu9X7kCBd1Y+fCVgdPaUsJ1HyIXxJMxUwS3UaYUuCGI= -go.nhat.io/grpcmock v0.27.0/go.mod h1:ywHiPk2sv+fmh7+2fxrJInOk3voDOfyYTRXOV7+Vy4o= +go.nhat.io/aferomock v0.6.0 h1:LlGvABDSOs2pCdXweFIQ/tDF1oV0rWbr7Ih+N21EeQs= +go.nhat.io/aferomock v0.6.0/go.mod h1:DexRX1DiNRZwfGYrMdC5zjA09Mw95LrfYceLBlPZd5Y= +go.nhat.io/grpcmock v0.28.0 h1:PzR7v2NaRN95CVGj1lfHYquA/snaDWjYOXHUVKNjXCU= +go.nhat.io/grpcmock v0.28.0/go.mod h1:RuoCrh1VIYOe8VeGO2+CPm/wmWdMTQptUk9qIfar7fc= go.nhat.io/matcher/v2 v2.0.0 h1:W+rbHi0hKuZHtOQH4U5g+KwyKyfVioIxrxjoGRcUETE= go.nhat.io/matcher/v2 v2.0.0/go.mod h1:cL5oYp0M9A4L8jEGqjmUfy+k7AXVDddoVt6aYIL1r5g= go.nhat.io/wait v0.1.0 h1:aQ4YDzaOgFbypiJ9c/eAfOIB1G25VOv7Gd2QS8uz1gw= From 814a118d78889ea3dbd9e01bdbb7942ba659a3e7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 17 Sep 2024 21:10:54 +0300 Subject: [PATCH 07/12] CLOUD-727: Bump go.opentelemetry.io/otel/exporters/stdout/stdouttrace (#898) Bumps [go.opentelemetry.io/otel/exporters/stdout/stdouttrace](https://github.com/open-telemetry/opentelemetry-go) from 1.29.0 to 1.30.0. - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.29.0...v1.30.0) --- updated-dependencies: - dependency-name: go.opentelemetry.io/otel/exporters/stdout/stdouttrace 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 6bcdf8342..5b267c33e 100644 --- a/go.mod +++ b/go.mod @@ -25,7 +25,7 @@ require ( go.opentelemetry.io/otel v1.30.0 go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.30.0 go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.30.0 - go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.29.0 + go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.30.0 go.opentelemetry.io/otel/sdk v1.30.0 go.opentelemetry.io/otel/trace v1.30.0 go.uber.org/zap v1.27.0 diff --git a/go.sum b/go.sum index b5fcfb94d..bc061865e 100644 --- a/go.sum +++ b/go.sum @@ -239,8 +239,8 @@ go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.30.0 h1:lsInsfvhVIfOI6qHVyy go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.30.0/go.mod h1:KQsVNh4OjgjTG0G6EiNi1jVpnaeeKsKMRwbLN+f1+8M= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.30.0 h1:umZgi92IyxfXd/l4kaDhnKgY8rnN/cZcF1LKc6I8OQ8= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.30.0/go.mod h1:4lVs6obhSVRb1EW5FhOuBTyiQhtRtAnnva9vD3yRfq8= -go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.29.0 h1:X3ZjNp36/WlkSYx0ul2jw4PtbNEDDeLskw3VPsrpYM0= -go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.29.0/go.mod h1:2uL/xnOXh0CHOBFCWXz5u1A4GXLiW+0IQIzVbeOEQ0U= +go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.30.0 h1:kn1BudCgwtE7PxLqcZkErpD8GKqLZ6BSzeW9QihQJeM= +go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.30.0/go.mod h1:ljkUDtAMdleoi9tIG1R6dJUpVwDcYjw3J2Q6Q/SuiC0= go.opentelemetry.io/otel/metric v1.30.0 h1:4xNulvn9gjzo4hjg+wzIKG7iNFEaBMX00Qd4QIZs7+w= go.opentelemetry.io/otel/metric v1.30.0/go.mod h1:aXTfST94tswhWEb+5QjlSqG+cZlmyXy/u8jFpor3WqQ= go.opentelemetry.io/otel/sdk v1.30.0 h1:cHdik6irO49R5IysVhdn8oaiR9m8XluDaJAs4DfOrYE= From 9b4cc28b3e1b43493f051860df34f6e71c39454b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 17 Sep 2024 21:13:38 +0300 Subject: [PATCH 08/12] CLOUD-727: Bump go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp (#895) Bumps [go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp](https://github.com/open-telemetry/opentelemetry-go-contrib) from 0.54.0 to 0.55.0. - [Release notes](https://github.com/open-telemetry/opentelemetry-go-contrib/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go-contrib/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-go-contrib/compare/zpages/v0.54.0...zpages/v0.55.0) --- updated-dependencies: - dependency-name: go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp 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 5b267c33e..f64ad71c7 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ require ( github.com/sirupsen/logrus v1.9.3 github.com/xdg-go/stringprep v1.0.4 go.nhat.io/grpcmock v0.28.0 - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0 + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.55.0 go.opentelemetry.io/otel v1.30.0 go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.30.0 go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.30.0 diff --git a/go.sum b/go.sum index bc061865e..db93d5397 100644 --- a/go.sum +++ b/go.sum @@ -231,8 +231,8 @@ go.nhat.io/matcher/v2 v2.0.0 h1:W+rbHi0hKuZHtOQH4U5g+KwyKyfVioIxrxjoGRcUETE= go.nhat.io/matcher/v2 v2.0.0/go.mod h1:cL5oYp0M9A4L8jEGqjmUfy+k7AXVDddoVt6aYIL1r5g= go.nhat.io/wait v0.1.0 h1:aQ4YDzaOgFbypiJ9c/eAfOIB1G25VOv7Gd2QS8uz1gw= go.nhat.io/wait v0.1.0/go.mod h1:+ijMghc9/9zXi+HDcs49HNReprvXOZha2Q3jTOtqJrE= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0 h1:TT4fX+nBOA/+LUkobKGW1ydGcn+G3vRw9+g5HwCphpk= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0/go.mod h1:L7UH0GbB0p47T4Rri3uHjbpCFYrVrwc1I25QhNPiGK8= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.55.0 h1:ZIg3ZT/aQ7AfKqdwp7ECpOK6vHqquXXuyTjIO8ZdmPs= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.55.0/go.mod h1:DQAwmETtZV00skUwgD6+0U89g80NKsJE3DCKeLLPQMI= go.opentelemetry.io/otel v1.30.0 h1:F2t8sK4qf1fAmY9ua4ohFS/K+FUuOPemHUIXHtktrts= go.opentelemetry.io/otel v1.30.0/go.mod h1:tFw4Br9b7fOS+uEao81PJjVMjW/5fvNCbpsDIXqP0pc= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.30.0 h1:lsInsfvhVIfOI6qHVyysXMNDnjO9Npvl7tlDPJFBVd4= From 92f1a50f1c72a0b620a951b04730013cb02df7c8 Mon Sep 17 00:00:00 2001 From: Eleonora Zinchenko Date: Mon, 23 Sep 2024 13:43:24 +0300 Subject: [PATCH 09/12] K8SPG-227: add azure storage to backup tests (#905) * Add Azure to scheduled and demand backup tests --- e2e-tests/functions | 20 +++++- e2e-tests/tests/demand-backup/01-assert.yaml | 2 + .../demand-backup/01-create-cluster.yaml | 4 +- e2e-tests/tests/demand-backup/04-assert.yaml | 4 +- ...e-backup.yaml => 04-create-backup-s3.yaml} | 2 +- ....yaml => 05-check-pgbackrest-info-s3.yaml} | 2 +- e2e-tests/tests/demand-backup/06-assert.yaml | 10 +-- .../demand-backup/06-create-backup-azure.yaml | 9 +++ .../07-check-pgbackrest-info-azure.yaml | 45 ++++++++++++++ e2e-tests/tests/demand-backup/08-assert.yaml | 39 ++++++++++++ ...p.yaml => 08-create-second-backup-s3.yaml} | 2 +- ...ention.yaml => 09-check-retention-s3.yaml} | 4 +- e2e-tests/tests/demand-backup/10-assert.yaml | 39 ++++++++++++ .../10-create-second-backup-azure.yaml | 9 +++ e2e-tests/tests/demand-backup/11-assert.yaml | 39 ++++++++++++ .../11-create-third-backup-azure.yaml | 9 +++ .../12-check-retention-azure.yaml | 26 ++++++++ ...lete-backup.yaml => 13-delete-backup.yaml} | 3 +- .../{09-assert.yaml => 14-assert.yaml} | 10 +-- ...backup.yaml => 14-recreate-backup-s3.yaml} | 2 +- e2e-tests/tests/demand-backup/15-assert.yaml | 55 ++++++++++++++++ .../15-recreate-backup-azure.yaml | 9 +++ ...-leak.yaml => 16-check-password-leak.yaml} | 0 ...1-delete-data.yaml => 17-delete-data.yaml} | 0 .../{13-assert.yaml => 18-assert.yaml} | 8 ++- ...restore.yaml => 18-create-restore-s3.yaml} | 4 +- e2e-tests/tests/demand-backup/19-assert.yaml | 62 +++++++++++++++++++ ...a.yaml => 19-verify-restored-data-s3.yaml} | 2 +- .../tests/demand-backup/20-delete-data.yaml | 12 ++++ .../{12-assert.yaml => 21-assert.yaml} | 16 ++--- .../21-create-restore-azure.yaml | 24 +++++++ e2e-tests/tests/demand-backup/22-assert.yaml | 62 +++++++++++++++++++ .../22-verify-restored-data-azure.yaml | 13 ++++ ...-leak.yaml => 23-check-password-leak.yaml} | 0 ...up-job.yaml => 24-check-pgbackup-job.yaml} | 0 e2e-tests/tests/finalizers/01-assert.yaml | 2 +- e2e-tests/tests/finalizers/03-assert.yaml | 2 +- e2e-tests/tests/major-upgrade/04-assert.yaml | 2 +- e2e-tests/tests/major-upgrade/06-assert.yaml | 2 +- e2e-tests/tests/major-upgrade/08-assert.yaml | 2 +- e2e-tests/tests/major-upgrade/10-assert.yaml | 2 +- e2e-tests/tests/monitoring/01-assert.yaml | 2 +- e2e-tests/tests/monitoring/03-assert.yaml | 2 +- e2e-tests/tests/monitoring/04-assert.yaml | 4 ++ .../monitoring/04-update-pmm-api-key.yaml | 4 +- e2e-tests/tests/monitoring/05-check-qan.yaml | 2 +- ...6-check-pgstatstatements-query-source.yaml | 2 +- .../08-deleted-from-server-inventory.yaml | 2 +- e2e-tests/tests/one-pod/08-assert.yaml | 7 +++ .../one-pod/08-verify-restored-data.yaml | 2 +- .../tests/scheduled-backup/01-assert.yaml | 2 + .../tests/scheduled-backup/04-engage-s3.yaml | 3 + .../tests/scheduled-backup/05-assert.yaml | 2 +- .../05-wait-second-backup.yaml | 2 +- .../tests/scheduled-backup/06-assert.yaml | 3 + .../tests/scheduled-backup/06-engage-gcs.yaml | 5 +- .../tests/scheduled-backup/07-assert.yaml | 35 ++++++++++- .../scheduled-backup/07-engage-azure.yaml | 21 +++++++ .../tests/scheduled-backup/08-assert.yaml | 40 ++++++++---- ...schedule.yaml => 08-disable-schedule.yaml} | 3 + ...d-more-data.yaml => 09-add-more-data.yaml} | 2 +- .../tests/scheduled-backup/09-assert.yaml | 53 ++++------------ .../tests/scheduled-backup/10-assert.yaml | 52 ++++++++++++++-- ...-restore.yaml => 10-start-s3-restore.yaml} | 0 .../tests/scheduled-backup/11-assert.yaml | 6 +- ...data.yaml => 11-verify-restored-data.yaml} | 2 +- ...d-more-data.yaml => 12-add-more-data.yaml} | 2 +- .../tests/scheduled-backup/12-assert.yaml | 52 +++------------- .../tests/scheduled-backup/13-assert.yaml | 52 ++++++++++++++-- ...restore.yaml => 13-start-gcs-restore.yaml} | 0 .../tests/scheduled-backup/14-assert.yaml | 10 +++ ...data.yaml => 14-verify-restored-data.yaml} | 2 +- .../scheduled-backup/15-add-more-data.yaml | 17 +++++ .../tests/scheduled-backup/15-assert.yaml | 12 ++++ .../tests/scheduled-backup/16-assert.yaml | 50 +++++++++++++++ .../16-start-azure-restore.yaml | 22 +++++++ .../tests/scheduled-backup/17-assert.yaml | 10 +++ .../17-verify-restored-data.yaml | 13 ++++ ...up-job.yaml => 18-check-pgbackup-job.yaml} | 4 +- 79 files changed, 889 insertions(+), 174 deletions(-) rename e2e-tests/tests/demand-backup/{04-create-backup.yaml => 04-create-backup-s3.yaml} (82%) rename e2e-tests/tests/demand-backup/{05-check-pgbackrest-info.yaml => 05-check-pgbackrest-info-s3.yaml} (97%) create mode 100644 e2e-tests/tests/demand-backup/06-create-backup-azure.yaml create mode 100644 e2e-tests/tests/demand-backup/07-check-pgbackrest-info-azure.yaml create mode 100644 e2e-tests/tests/demand-backup/08-assert.yaml rename e2e-tests/tests/demand-backup/{06-create-second-backup.yaml => 08-create-second-backup-s3.yaml} (81%) rename e2e-tests/tests/demand-backup/{07-check-retention.yaml => 09-check-retention-s3.yaml} (77%) create mode 100644 e2e-tests/tests/demand-backup/10-assert.yaml create mode 100644 e2e-tests/tests/demand-backup/10-create-second-backup-azure.yaml create mode 100644 e2e-tests/tests/demand-backup/11-assert.yaml create mode 100644 e2e-tests/tests/demand-backup/11-create-third-backup-azure.yaml create mode 100644 e2e-tests/tests/demand-backup/12-check-retention-azure.yaml rename e2e-tests/tests/demand-backup/{08-delete-backup.yaml => 13-delete-backup.yaml} (72%) rename e2e-tests/tests/demand-backup/{09-assert.yaml => 14-assert.yaml} (92%) rename e2e-tests/tests/demand-backup/{09-recreate-backup.yaml => 14-recreate-backup-s3.yaml} (82%) create mode 100644 e2e-tests/tests/demand-backup/15-assert.yaml create mode 100644 e2e-tests/tests/demand-backup/15-recreate-backup-azure.yaml rename e2e-tests/tests/demand-backup/{10-check-password-leak.yaml => 16-check-password-leak.yaml} (100%) rename e2e-tests/tests/demand-backup/{11-delete-data.yaml => 17-delete-data.yaml} (100%) rename e2e-tests/tests/demand-backup/{13-assert.yaml => 18-assert.yaml} (90%) rename e2e-tests/tests/demand-backup/{12-create-restore.yaml => 18-create-restore-s3.yaml} (66%) create mode 100644 e2e-tests/tests/demand-backup/19-assert.yaml rename e2e-tests/tests/demand-backup/{13-verify-restored-data.yaml => 19-verify-restored-data-s3.yaml} (85%) create mode 100644 e2e-tests/tests/demand-backup/20-delete-data.yaml rename e2e-tests/tests/demand-backup/{12-assert.yaml => 21-assert.yaml} (81%) create mode 100644 e2e-tests/tests/demand-backup/21-create-restore-azure.yaml create mode 100644 e2e-tests/tests/demand-backup/22-assert.yaml create mode 100644 e2e-tests/tests/demand-backup/22-verify-restored-data-azure.yaml rename e2e-tests/tests/demand-backup/{14-check-password-leak.yaml => 23-check-password-leak.yaml} (100%) rename e2e-tests/tests/demand-backup/{15-check-pgbackup-job.yaml => 24-check-pgbackup-job.yaml} (100%) create mode 100644 e2e-tests/tests/scheduled-backup/07-engage-azure.yaml rename e2e-tests/tests/scheduled-backup/{07-disable-schedule.yaml => 08-disable-schedule.yaml} (81%) rename e2e-tests/tests/scheduled-backup/{08-add-more-data.yaml => 09-add-more-data.yaml} (93%) rename e2e-tests/tests/scheduled-backup/{09-start-s3-restore.yaml => 10-start-s3-restore.yaml} (100%) rename e2e-tests/tests/scheduled-backup/{13-verify-restored-data.yaml => 11-verify-restored-data.yaml} (85%) rename e2e-tests/tests/scheduled-backup/{11-add-more-data.yaml => 12-add-more-data.yaml} (90%) rename e2e-tests/tests/scheduled-backup/{12-start-gcs-restore.yaml => 13-start-gcs-restore.yaml} (100%) create mode 100644 e2e-tests/tests/scheduled-backup/14-assert.yaml rename e2e-tests/tests/scheduled-backup/{10-verify-restored-data.yaml => 14-verify-restored-data.yaml} (85%) create mode 100644 e2e-tests/tests/scheduled-backup/15-add-more-data.yaml create mode 100644 e2e-tests/tests/scheduled-backup/15-assert.yaml create mode 100644 e2e-tests/tests/scheduled-backup/16-assert.yaml create mode 100644 e2e-tests/tests/scheduled-backup/16-start-azure-restore.yaml create mode 100644 e2e-tests/tests/scheduled-backup/17-assert.yaml create mode 100644 e2e-tests/tests/scheduled-backup/17-verify-restored-data.yaml rename e2e-tests/tests/scheduled-backup/{14-check-pgbackup-job.yaml => 18-check-pgbackup-job.yaml} (85%) diff --git a/e2e-tests/functions b/e2e-tests/functions index b62b989cc..3f9ceca9e 100644 --- a/e2e-tests/functions +++ b/e2e-tests/functions @@ -96,6 +96,13 @@ deploy_s3_secrets() { "$(yq eval 'select(.metadata.name=="*s3*").data.AWS_SECRET_ACCESS_KEY' "${TESTS_CONFIG_DIR}/cloud-secret.yml" | base64 -d)" \ >"${TEMP_DIR}/pgbackrest-secret.ini" + if [[ $test_name == "demand-backup" || $test_name == "scheduled-backup" ]]; then + printf "repo3-azure-account=%s\nrepo3-azure-key=%s\n" \ + "$(yq eval 'select(.metadata.name=="azure*").data.AZURE_STORAGE_ACCOUNT_NAME' "${TESTS_CONFIG_DIR}/cloud-secret.yml" | base64 -d)" \ + "$(yq eval 'select(.metadata.name=="azure*").data.AZURE_STORAGE_ACCOUNT_KEY' "${TESTS_CONFIG_DIR}/cloud-secret.yml" | base64 -d)" \ + >>"${TEMP_DIR}/pgbackrest-secret.ini" + fi + case ${test_name} in "scheduled-backup") printf 'repo2-gcs-key=/etc/pgbackrest/conf.d/gcs-key.json\n' >>"${TEMP_DIR}/pgbackrest-secret.ini" @@ -154,7 +161,12 @@ get_cr() { .spec.backups.pgbackrest.global.repo1-path = "/backrestrepo/postgres-operator/'${repo_path}'/repo1" | .spec.backups.pgbackrest.repos = [{"name":"repo1","s3":{"bucket":"'$BUCKET'","endpoint":"s3.amazonaws.com","region":"us-east-1"}}] ' $TEMP_DIR/cr.yaml - + if [[ $test_name == "demand-backup" ]]; then + yq eval -i ' + .spec.backups.pgbackrest.global.repo3-path = "/backrestrepo/postgres-operator/'${repo_path}'/repo3" | + .spec.backups.pgbackrest.repos += [{"name":"repo3","azure":{"container":"'$BUCKET'"}}] + ' $TEMP_DIR/cr.yaml + fi if [[ $test_name == "start-from-backup" ]]; then yq eval -i ' .spec.dataSource.pgbackrest.configuration = [{"secret":{"name":"'${cr_name}'-pgbackrest-secrets"}}] | @@ -171,8 +183,10 @@ get_cr() { .spec.backups.pgbackrest.manual.options = ["--type=full"] | .spec.backups.pgbackrest.global.repo1-path = "/backrestrepo/postgres-operator/'${repo_path}'/repo1" | .spec.backups.pgbackrest.global.repo2-path = "/backrestrepo/postgres-operator/'${repo_path}'/repo2" | + .spec.backups.pgbackrest.global.repo3-path = "/backrestrepo/postgres-operator/'${repo_path}'/repo3" | .spec.backups.pgbackrest.repos = [{"name":"repo1","s3":{"bucket":"'$BUCKET'","endpoint":"s3.amazonaws.com","region":"us-east-1"}}] | - .spec.backups.pgbackrest.repos += [{"name":"repo2","gcs":{"bucket":"'$BUCKET'"}}] + .spec.backups.pgbackrest.repos += [{"name":"repo2","gcs":{"bucket":"'$BUCKET'"}}] | + .spec.backups.pgbackrest.repos += [{"name":"repo3","azure":{"container":"'$BUCKET'"}}] ' $TEMP_DIR/cr.yaml ;; "custom-extensions" | "major-upgrade") @@ -332,7 +346,7 @@ get_metric_values() { local metric=$1 local instance=$2 local api_key=$3 - local start=$($date -u "+%s" -d "-1 minute") + local start=$($date -u "+%s" -d "-5 minute") local end=$($date -u "+%s") local endpoint=$(get_service_ip monitoring-service) diff --git a/e2e-tests/tests/demand-backup/01-assert.yaml b/e2e-tests/tests/demand-backup/01-assert.yaml index 974167f6a..28d4e6ff3 100644 --- a/e2e-tests/tests/demand-backup/01-assert.yaml +++ b/e2e-tests/tests/demand-backup/01-assert.yaml @@ -83,6 +83,8 @@ status: repos: - name: repo1 stanzaCreated: true + - name: repo3 + stanzaCreated: true proxy: pgBouncer: readyReplicas: 3 diff --git a/e2e-tests/tests/demand-backup/01-create-cluster.yaml b/e2e-tests/tests/demand-backup/01-create-cluster.yaml index c03611510..3296c96ec 100644 --- a/e2e-tests/tests/demand-backup/01-create-cluster.yaml +++ b/e2e-tests/tests/demand-backup/01-create-cluster.yaml @@ -1,6 +1,6 @@ apiVersion: kuttl.dev/v1beta1 kind: TestStep -timeout: 10 +timeout: 20 commands: - script: |- set -o errexit @@ -11,4 +11,6 @@ commands: get_cr "demand-backup" ${RANDOM} \ | yq '.spec.backups.pgbackrest.global.repo1-retention-full="2"' \ | yq '.spec.backups.pgbackrest.global.repo1-retention-full-type="count"' \ + | yq '.spec.backups.pgbackrest.global.repo3-retention-full="2"' \ + | yq '.spec.backups.pgbackrest.global.repo3-retention-full-type="count"' \ | kubectl -n "${NAMESPACE}" apply -f - diff --git a/e2e-tests/tests/demand-backup/04-assert.yaml b/e2e-tests/tests/demand-backup/04-assert.yaml index 6368a0238..3a793d002 100644 --- a/e2e-tests/tests/demand-backup/04-assert.yaml +++ b/e2e-tests/tests/demand-backup/04-assert.yaml @@ -6,7 +6,7 @@ kind: Job apiVersion: batch/v1 metadata: annotations: - postgres-operator.crunchydata.com/pgbackrest-backup: demand-backup-full + postgres-operator.crunchydata.com/pgbackrest-backup: demand-backup-full-s3 labels: postgres-operator.crunchydata.com/pgbackrest-backup: manual postgres-operator.crunchydata.com/pgbackrest-repo: repo1 @@ -21,7 +21,7 @@ status: apiVersion: pgv2.percona.com/v2 kind: PerconaPGBackup metadata: - name: demand-backup-full + name: demand-backup-full-s3 spec: pgCluster: demand-backup repoName: repo1 diff --git a/e2e-tests/tests/demand-backup/04-create-backup.yaml b/e2e-tests/tests/demand-backup/04-create-backup-s3.yaml similarity index 82% rename from e2e-tests/tests/demand-backup/04-create-backup.yaml rename to e2e-tests/tests/demand-backup/04-create-backup-s3.yaml index eb896330c..35b14087e 100644 --- a/e2e-tests/tests/demand-backup/04-create-backup.yaml +++ b/e2e-tests/tests/demand-backup/04-create-backup-s3.yaml @@ -1,7 +1,7 @@ apiVersion: pgv2.percona.com/v2 kind: PerconaPGBackup metadata: - name: demand-backup-full + name: demand-backup-full-s3 spec: pgCluster: demand-backup repoName: repo1 diff --git a/e2e-tests/tests/demand-backup/05-check-pgbackrest-info.yaml b/e2e-tests/tests/demand-backup/05-check-pgbackrest-info-s3.yaml similarity index 97% rename from e2e-tests/tests/demand-backup/05-check-pgbackrest-info.yaml rename to e2e-tests/tests/demand-backup/05-check-pgbackrest-info-s3.yaml index eda93b2d0..019600f9f 100644 --- a/e2e-tests/tests/demand-backup/05-check-pgbackrest-info.yaml +++ b/e2e-tests/tests/demand-backup/05-check-pgbackrest-info-s3.yaml @@ -36,7 +36,7 @@ commands: fi } - manual_backup_name="demand-backup-full" + manual_backup_name="demand-backup-full-s3" check_backup "$manual_backup_name" "percona.com/backup-name" "$manual_backup_name" replica_backup_name=$(kubectl get -n "${NAMESPACE}" pg-backup -o jsonpath='{.items[?(@.metadata.annotations.pgv2\.percona\.com/pgbackrest-backup-job-type=="replica-create")].metadata.name}') diff --git a/e2e-tests/tests/demand-backup/06-assert.yaml b/e2e-tests/tests/demand-backup/06-assert.yaml index 884d22c46..85c806dee 100644 --- a/e2e-tests/tests/demand-backup/06-assert.yaml +++ b/e2e-tests/tests/demand-backup/06-assert.yaml @@ -1,15 +1,15 @@ apiVersion: kuttl.dev/v1beta1 kind: TestAssert -timeout: 560 +timeout: 660 --- kind: Job apiVersion: batch/v1 metadata: annotations: - postgres-operator.crunchydata.com/pgbackrest-backup: demand-backup-full-2 + postgres-operator.crunchydata.com/pgbackrest-backup: demand-backup-full-azure labels: postgres-operator.crunchydata.com/pgbackrest-backup: manual - postgres-operator.crunchydata.com/pgbackrest-repo: repo1 + postgres-operator.crunchydata.com/pgbackrest-repo: repo3 ownerReferences: - apiVersion: pgv2.percona.com/v2 kind: PerconaPGBackup @@ -21,10 +21,10 @@ status: apiVersion: pgv2.percona.com/v2 kind: PerconaPGBackup metadata: - name: demand-backup-full-2 + name: demand-backup-full-azure spec: pgCluster: demand-backup - repoName: repo1 + repoName: repo3 options: - --type=full status: diff --git a/e2e-tests/tests/demand-backup/06-create-backup-azure.yaml b/e2e-tests/tests/demand-backup/06-create-backup-azure.yaml new file mode 100644 index 000000000..3b912968b --- /dev/null +++ b/e2e-tests/tests/demand-backup/06-create-backup-azure.yaml @@ -0,0 +1,9 @@ +apiVersion: pgv2.percona.com/v2 +kind: PerconaPGBackup +metadata: + name: demand-backup-full-azure +spec: + pgCluster: demand-backup + repoName: repo3 + options: + - --type=full diff --git a/e2e-tests/tests/demand-backup/07-check-pgbackrest-info-azure.yaml b/e2e-tests/tests/demand-backup/07-check-pgbackrest-info-azure.yaml new file mode 100644 index 000000000..2f55785e3 --- /dev/null +++ b/e2e-tests/tests/demand-backup/07-check-pgbackrest-info-azure.yaml @@ -0,0 +1,45 @@ +apiVersion: kuttl.dev/v1beta1 +kind: TestStep +commands: + - script: |- + set -o errexit + set -o xtrace + + source ../../functions + + instance=$(kubectl get -n "${NAMESPACE}" pod -l postgres-operator.crunchydata.com/instance-set=instance1 -o 'jsonpath={.items[].metadata.name}') + + pgbackrest_info_backups=$(kubectl exec -n "${NAMESPACE}" "$instance" -c database -- pgbackrest info --output json | jq '.[0].backup[]') + + check_backup() { + local backup_name=$1 + local pgbackrest_annotation=$2 + local pgbackrest_annotation_value=$3 + + status_backup_name=$(kubectl get -n "${NAMESPACE}" pg-backup "$backup_name" -o jsonpath='{.status.backupName}') + if [[ -z $status_backup_name ]]; then + echo ".status.backupName is empty in $backup_name" + exit 1 + fi + + backup_info=$(echo "$pgbackrest_info_backups" | jq "select(.annotation.\"$pgbackrest_annotation\" == \"$pgbackrest_annotation_value\")") + if [[ $status_backup_name != $(echo "$backup_info" | jq ".label" --raw-output) ]]; then + echo ".status.backupName doesn't equal to label in pgbackrest info" + exit 1 + fi + + backup_job_name=$(kubectl get -n "${NAMESPACE}" pg-backup "$backup_name" -o jsonpath='{.status.jobName}') + backup_job_annotation=$(echo "$backup_info" | jq '.annotation."percona.com/backup-job-name"' --raw-output) + if [[ $backup_job_name != "$backup_job_annotation" ]]; then + echo "Failed to get job name annotation from pgbackrest" + exit 1 + fi + } + + manual_backup_name="demand-backup-full-azure" + check_backup "$manual_backup_name" "percona.com/backup-name" "$manual_backup_name" + + replica_backup_name=$(kubectl get -n "${NAMESPACE}" pg-backup -o jsonpath='{.items[?(@.metadata.annotations.pgv2\.percona\.com/pgbackrest-backup-job-type=="replica-create")].metadata.name}') + check_backup "$replica_backup_name" "percona.com/backup-job-type" "replica-create" + + diff --git a/e2e-tests/tests/demand-backup/08-assert.yaml b/e2e-tests/tests/demand-backup/08-assert.yaml new file mode 100644 index 000000000..94c84698b --- /dev/null +++ b/e2e-tests/tests/demand-backup/08-assert.yaml @@ -0,0 +1,39 @@ +apiVersion: kuttl.dev/v1beta1 +kind: TestAssert +timeout: 560 +--- +kind: Job +apiVersion: batch/v1 +metadata: + annotations: + postgres-operator.crunchydata.com/pgbackrest-backup: demand-backup-full-s3-2 + labels: + postgres-operator.crunchydata.com/pgbackrest-backup: manual + postgres-operator.crunchydata.com/pgbackrest-repo: repo1 + ownerReferences: + - apiVersion: pgv2.percona.com/v2 + kind: PerconaPGBackup + controller: true + blockOwnerDeletion: true +status: + succeeded: 1 +--- +apiVersion: pgv2.percona.com/v2 +kind: PerconaPGBackup +metadata: + name: demand-backup-full-s3-2 +spec: + pgCluster: demand-backup + repoName: repo1 + options: + - --type=full +status: + state: Succeeded +--- +apiVersion: postgres-operator.crunchydata.com/v1beta1 +kind: PostgresCluster +metadata: + name: demand-backup + generation: 4 +status: + observedGeneration: 4 diff --git a/e2e-tests/tests/demand-backup/06-create-second-backup.yaml b/e2e-tests/tests/demand-backup/08-create-second-backup-s3.yaml similarity index 81% rename from e2e-tests/tests/demand-backup/06-create-second-backup.yaml rename to e2e-tests/tests/demand-backup/08-create-second-backup-s3.yaml index 85187bbce..dd7cf2801 100644 --- a/e2e-tests/tests/demand-backup/06-create-second-backup.yaml +++ b/e2e-tests/tests/demand-backup/08-create-second-backup-s3.yaml @@ -1,7 +1,7 @@ apiVersion: pgv2.percona.com/v2 kind: PerconaPGBackup metadata: - name: demand-backup-full-2 + name: demand-backup-full-s3-2 spec: pgCluster: demand-backup repoName: repo1 diff --git a/e2e-tests/tests/demand-backup/07-check-retention.yaml b/e2e-tests/tests/demand-backup/09-check-retention-s3.yaml similarity index 77% rename from e2e-tests/tests/demand-backup/07-check-retention.yaml rename to e2e-tests/tests/demand-backup/09-check-retention-s3.yaml index b97700d0d..b80c7e500 100644 --- a/e2e-tests/tests/demand-backup/07-check-retention.yaml +++ b/e2e-tests/tests/demand-backup/09-check-retention-s3.yaml @@ -9,8 +9,8 @@ commands: retention_count=2 - backups_count=$(kubectl -n "${NAMESPACE}" get pg-backup -o yaml | yq '.items | length') - jobs_count=$(kubectl -n "${NAMESPACE}" get jobs -o yaml | yq '.items | length') + backups_count=$(kubectl -n "${NAMESPACE}" get pg-backup -o yaml | yq '.items | map(select(.metadata.name != "demand-backup-full-azure*")) | length') + jobs_count=$(kubectl -n "${NAMESPACE}" get jobs -o yaml | yq '.items | map(select(.metadata.ownerReferences.[].name != "demand-backup-full-azure*")) | length') if [[ $backups_count != $retention_count ]]; then echo "There are $backups_count backups, but our retention is set to $retention_count" diff --git a/e2e-tests/tests/demand-backup/10-assert.yaml b/e2e-tests/tests/demand-backup/10-assert.yaml new file mode 100644 index 000000000..848fcbe2e --- /dev/null +++ b/e2e-tests/tests/demand-backup/10-assert.yaml @@ -0,0 +1,39 @@ +apiVersion: kuttl.dev/v1beta1 +kind: TestAssert +timeout: 560 +--- +kind: Job +apiVersion: batch/v1 +metadata: + annotations: + postgres-operator.crunchydata.com/pgbackrest-backup: demand-backup-full-azure-2 + labels: + postgres-operator.crunchydata.com/pgbackrest-backup: manual + postgres-operator.crunchydata.com/pgbackrest-repo: repo3 + ownerReferences: + - apiVersion: pgv2.percona.com/v2 + kind: PerconaPGBackup + controller: true + blockOwnerDeletion: true +status: + succeeded: 1 +--- +apiVersion: pgv2.percona.com/v2 +kind: PerconaPGBackup +metadata: + name: demand-backup-full-azure-2 +spec: + pgCluster: demand-backup + repoName: repo3 + options: + - --type=full +status: + state: Succeeded +--- +apiVersion: postgres-operator.crunchydata.com/v1beta1 +kind: PostgresCluster +metadata: + name: demand-backup + generation: 5 +status: + observedGeneration: 5 diff --git a/e2e-tests/tests/demand-backup/10-create-second-backup-azure.yaml b/e2e-tests/tests/demand-backup/10-create-second-backup-azure.yaml new file mode 100644 index 000000000..a3825d0a9 --- /dev/null +++ b/e2e-tests/tests/demand-backup/10-create-second-backup-azure.yaml @@ -0,0 +1,9 @@ +apiVersion: pgv2.percona.com/v2 +kind: PerconaPGBackup +metadata: + name: demand-backup-full-azure-2 +spec: + pgCluster: demand-backup + repoName: repo3 + options: + - --type=full diff --git a/e2e-tests/tests/demand-backup/11-assert.yaml b/e2e-tests/tests/demand-backup/11-assert.yaml new file mode 100644 index 000000000..3087bede7 --- /dev/null +++ b/e2e-tests/tests/demand-backup/11-assert.yaml @@ -0,0 +1,39 @@ +apiVersion: kuttl.dev/v1beta1 +kind: TestAssert +timeout: 560 +--- +kind: Job +apiVersion: batch/v1 +metadata: + annotations: + postgres-operator.crunchydata.com/pgbackrest-backup: demand-backup-full-azure-3 + labels: + postgres-operator.crunchydata.com/pgbackrest-backup: manual + postgres-operator.crunchydata.com/pgbackrest-repo: repo3 + ownerReferences: + - apiVersion: pgv2.percona.com/v2 + kind: PerconaPGBackup + controller: true + blockOwnerDeletion: true +status: + succeeded: 1 +--- +apiVersion: pgv2.percona.com/v2 +kind: PerconaPGBackup +metadata: + name: demand-backup-full-azure-3 +spec: + pgCluster: demand-backup + repoName: repo3 + options: + - --type=full +status: + state: Succeeded +--- +apiVersion: postgres-operator.crunchydata.com/v1beta1 +kind: PostgresCluster +metadata: + name: demand-backup + generation: 6 +status: + observedGeneration: 6 diff --git a/e2e-tests/tests/demand-backup/11-create-third-backup-azure.yaml b/e2e-tests/tests/demand-backup/11-create-third-backup-azure.yaml new file mode 100644 index 000000000..e733f7394 --- /dev/null +++ b/e2e-tests/tests/demand-backup/11-create-third-backup-azure.yaml @@ -0,0 +1,9 @@ +apiVersion: pgv2.percona.com/v2 +kind: PerconaPGBackup +metadata: + name: demand-backup-full-azure-3 +spec: + pgCluster: demand-backup + repoName: repo3 + options: + - --type=full diff --git a/e2e-tests/tests/demand-backup/12-check-retention-azure.yaml b/e2e-tests/tests/demand-backup/12-check-retention-azure.yaml new file mode 100644 index 000000000..78ddcff51 --- /dev/null +++ b/e2e-tests/tests/demand-backup/12-check-retention-azure.yaml @@ -0,0 +1,26 @@ +apiVersion: kuttl.dev/v1beta1 +kind: TestStep +commands: + - script: |- + set -o errexit + set -o xtrace + + source ../../functions + + retention_count=2 + + backups_count=$(kubectl -n "${NAMESPACE}" get pg-backup -o yaml | yq '.items | map(select(.metadata.name == "demand-backup-full-azure*")) | length') + jobs_count=$(kubectl -n "${NAMESPACE}" get jobs -o yaml | yq '.items | map(select(.metadata.ownerReferences.[].name == "demand-backup-full-azure*")) | length') + + if [[ $backups_count != $retention_count ]]; then + echo "There are $backups_count backups, but our retention is set to $retention_count" + exit 1 + fi + + if [[ $jobs_count != $retention_count ]]; then + echo "There are $jobs_count jobs, but our retention is set to $retention_count" + exit 1 + fi + + + diff --git a/e2e-tests/tests/demand-backup/08-delete-backup.yaml b/e2e-tests/tests/demand-backup/13-delete-backup.yaml similarity index 72% rename from e2e-tests/tests/demand-backup/08-delete-backup.yaml rename to e2e-tests/tests/demand-backup/13-delete-backup.yaml index 11b0669e0..76cb8f50b 100644 --- a/e2e-tests/tests/demand-backup/08-delete-backup.yaml +++ b/e2e-tests/tests/demand-backup/13-delete-backup.yaml @@ -8,4 +8,5 @@ commands: source ../../functions - kubectl delete pg-backup -n "${NAMESPACE}" demand-backup-full + kubectl delete pg-backup -n "${NAMESPACE}" demand-backup-full-s3 + kubectl delete pg-backup -n "${NAMESPACE}" demand-backup-full-azure-2 diff --git a/e2e-tests/tests/demand-backup/09-assert.yaml b/e2e-tests/tests/demand-backup/14-assert.yaml similarity index 92% rename from e2e-tests/tests/demand-backup/09-assert.yaml rename to e2e-tests/tests/demand-backup/14-assert.yaml index 3942445ff..67f90674f 100644 --- a/e2e-tests/tests/demand-backup/09-assert.yaml +++ b/e2e-tests/tests/demand-backup/14-assert.yaml @@ -6,7 +6,7 @@ kind: Job apiVersion: batch/v1 metadata: annotations: - postgres-operator.crunchydata.com/pgbackrest-backup: demand-backup-full + postgres-operator.crunchydata.com/pgbackrest-backup: demand-backup-full-s3 labels: postgres-operator.crunchydata.com/pgbackrest-backup: manual postgres-operator.crunchydata.com/pgbackrest-repo: repo1 @@ -22,7 +22,7 @@ kind: Job apiVersion: batch/v1 metadata: annotations: - postgres-operator.crunchydata.com/pgbackrest-backup: demand-backup-full + postgres-operator.crunchydata.com/pgbackrest-backup: demand-backup-full-s3 labels: postgres-operator.crunchydata.com/pgbackrest-backup: manual postgres-operator.crunchydata.com/pgbackrest-repo: repo1 @@ -37,7 +37,7 @@ status: apiVersion: pgv2.percona.com/v2 kind: PerconaPGBackup metadata: - name: demand-backup-full + name: demand-backup-full-s3 spec: pgCluster: demand-backup repoName: repo1 @@ -50,6 +50,6 @@ apiVersion: postgres-operator.crunchydata.com/v1beta1 kind: PostgresCluster metadata: name: demand-backup - generation: 4 + generation: 7 status: - observedGeneration: 4 + observedGeneration: 7 diff --git a/e2e-tests/tests/demand-backup/09-recreate-backup.yaml b/e2e-tests/tests/demand-backup/14-recreate-backup-s3.yaml similarity index 82% rename from e2e-tests/tests/demand-backup/09-recreate-backup.yaml rename to e2e-tests/tests/demand-backup/14-recreate-backup-s3.yaml index eb896330c..35b14087e 100644 --- a/e2e-tests/tests/demand-backup/09-recreate-backup.yaml +++ b/e2e-tests/tests/demand-backup/14-recreate-backup-s3.yaml @@ -1,7 +1,7 @@ apiVersion: pgv2.percona.com/v2 kind: PerconaPGBackup metadata: - name: demand-backup-full + name: demand-backup-full-s3 spec: pgCluster: demand-backup repoName: repo1 diff --git a/e2e-tests/tests/demand-backup/15-assert.yaml b/e2e-tests/tests/demand-backup/15-assert.yaml new file mode 100644 index 000000000..2fb05256e --- /dev/null +++ b/e2e-tests/tests/demand-backup/15-assert.yaml @@ -0,0 +1,55 @@ +apiVersion: kuttl.dev/v1beta1 +kind: TestAssert +timeout: 560 +--- +kind: Job +apiVersion: batch/v1 +metadata: + annotations: + postgres-operator.crunchydata.com/pgbackrest-backup: demand-backup-full-azure + labels: + postgres-operator.crunchydata.com/pgbackrest-backup: manual + postgres-operator.crunchydata.com/pgbackrest-repo: repo3 + ownerReferences: + - apiVersion: pgv2.percona.com/v2 + kind: PerconaPGBackup + controller: true + blockOwnerDeletion: true +status: + succeeded: 1 +--- +kind: Job +apiVersion: batch/v1 +metadata: + annotations: + postgres-operator.crunchydata.com/pgbackrest-backup: demand-backup-full-azure + labels: + postgres-operator.crunchydata.com/pgbackrest-backup: manual + postgres-operator.crunchydata.com/pgbackrest-repo: repo3 + ownerReferences: + - apiVersion: pgv2.percona.com/v2 + kind: PerconaPGBackup + controller: true + blockOwnerDeletion: true +status: + succeeded: 1 +--- +apiVersion: pgv2.percona.com/v2 +kind: PerconaPGBackup +metadata: + name: demand-backup-full-azure +spec: + pgCluster: demand-backup + repoName: repo3 + options: + - --type=full +status: + state: Succeeded +--- +apiVersion: postgres-operator.crunchydata.com/v1beta1 +kind: PostgresCluster +metadata: + name: demand-backup + generation: 8 +status: + observedGeneration: 8 diff --git a/e2e-tests/tests/demand-backup/15-recreate-backup-azure.yaml b/e2e-tests/tests/demand-backup/15-recreate-backup-azure.yaml new file mode 100644 index 000000000..3b912968b --- /dev/null +++ b/e2e-tests/tests/demand-backup/15-recreate-backup-azure.yaml @@ -0,0 +1,9 @@ +apiVersion: pgv2.percona.com/v2 +kind: PerconaPGBackup +metadata: + name: demand-backup-full-azure +spec: + pgCluster: demand-backup + repoName: repo3 + options: + - --type=full diff --git a/e2e-tests/tests/demand-backup/10-check-password-leak.yaml b/e2e-tests/tests/demand-backup/16-check-password-leak.yaml similarity index 100% rename from e2e-tests/tests/demand-backup/10-check-password-leak.yaml rename to e2e-tests/tests/demand-backup/16-check-password-leak.yaml diff --git a/e2e-tests/tests/demand-backup/11-delete-data.yaml b/e2e-tests/tests/demand-backup/17-delete-data.yaml similarity index 100% rename from e2e-tests/tests/demand-backup/11-delete-data.yaml rename to e2e-tests/tests/demand-backup/17-delete-data.yaml diff --git a/e2e-tests/tests/demand-backup/13-assert.yaml b/e2e-tests/tests/demand-backup/18-assert.yaml similarity index 90% rename from e2e-tests/tests/demand-backup/13-assert.yaml rename to e2e-tests/tests/demand-backup/18-assert.yaml index 2877350de..d488dee91 100644 --- a/e2e-tests/tests/demand-backup/13-assert.yaml +++ b/e2e-tests/tests/demand-backup/18-assert.yaml @@ -1,12 +1,12 @@ apiVersion: kuttl.dev/v1beta1 kind: TestAssert -timeout: 180 +timeout: 240 --- apiVersion: postgres-operator.crunchydata.com/v1beta1 kind: PostgresCluster metadata: name: demand-backup - generation: 6 + generation: 10 annotations: postgres-operator.crunchydata.com/pgbackrest-restore: demand-backup-restore ownerReferences: @@ -23,12 +23,14 @@ status: readyReplicas: 3 replicas: 3 updatedReplicas: 3 - observedGeneration: 6 + observedGeneration: 10 pgbackrest: repos: - name: repo1 replicaCreateBackupComplete: true stanzaCreated: true + - name: repo3 + stanzaCreated: true restore: finished: true id: demand-backup-restore diff --git a/e2e-tests/tests/demand-backup/12-create-restore.yaml b/e2e-tests/tests/demand-backup/18-create-restore-s3.yaml similarity index 66% rename from e2e-tests/tests/demand-backup/12-create-restore.yaml rename to e2e-tests/tests/demand-backup/18-create-restore-s3.yaml index 6deb64e34..9b29800ed 100644 --- a/e2e-tests/tests/demand-backup/12-create-restore.yaml +++ b/e2e-tests/tests/demand-backup/18-create-restore-s3.yaml @@ -8,7 +8,7 @@ commands: source ../../functions primary=$(get_pod_by_role demand-backup master name) - latest_full_backup=$(kubectl -n ${NAMESPACE} exec ${primary} -- pgbackrest info --output json | jq '[.[] | .backup[] | select(.type == "full")][-1].label') + latest_full_repo1_backup=$(kubectl -n ${NAMESPACE} exec ${primary} -- pgbackrest info --output json | jq '[.[] | .backup[] | select(.type == "full") | select(.database.["repo-key"] == 1)][-1].label') cat < ${TEMP_DIR}/restore.yaml + apiVersion: pgv2.percona.com/v2 + kind: PerconaPGRestore + metadata: + name: azure-restore + spec: + pgCluster: scheduled-backup + repoName: repo3 + options: + - --type=time + - --target="$(kubectl -n ${NAMESPACE} get configmap pitr-target --template={{.data.pitr}})" + EOF + kubectl -n ${NAMESPACE} apply -f ${TEMP_DIR}/restore.yaml \ No newline at end of file diff --git a/e2e-tests/tests/scheduled-backup/17-assert.yaml b/e2e-tests/tests/scheduled-backup/17-assert.yaml new file mode 100644 index 000000000..a5b9a9368 --- /dev/null +++ b/e2e-tests/tests/scheduled-backup/17-assert.yaml @@ -0,0 +1,10 @@ +apiVersion: kuttl.dev/v1beta1 +kind: TestAssert +timeout: 30 +--- +kind: ConfigMap +apiVersion: v1 +metadata: + name: 17-verify-restored-data +data: + data: ' 100500' diff --git a/e2e-tests/tests/scheduled-backup/17-verify-restored-data.yaml b/e2e-tests/tests/scheduled-backup/17-verify-restored-data.yaml new file mode 100644 index 000000000..273a4e797 --- /dev/null +++ b/e2e-tests/tests/scheduled-backup/17-verify-restored-data.yaml @@ -0,0 +1,13 @@ +apiVersion: kuttl.dev/v1beta1 +kind: TestStep +timeout: 30 +commands: + - script: |- + set -o errexit + set -o xtrace + + source ../../functions + + data=$(run_psql_local '\c myapp \\\ SELECT * from myApp;' "postgres:$(get_psql_user_pass scheduled-backup-pguser-postgres)@$(get_psql_user_host scheduled-backup-pguser-postgres)") + + kubectl create configmap -n "${NAMESPACE}" 17-verify-restored-data --from-literal=data="${data}" diff --git a/e2e-tests/tests/scheduled-backup/14-check-pgbackup-job.yaml b/e2e-tests/tests/scheduled-backup/18-check-pgbackup-job.yaml similarity index 85% rename from e2e-tests/tests/scheduled-backup/14-check-pgbackup-job.yaml rename to e2e-tests/tests/scheduled-backup/18-check-pgbackup-job.yaml index 9c6de8e4b..4595f18cb 100644 --- a/e2e-tests/tests/scheduled-backup/14-check-pgbackup-job.yaml +++ b/e2e-tests/tests/scheduled-backup/18-check-pgbackup-job.yaml @@ -13,8 +13,8 @@ commands: succeeded_backups=$(kubectl get -n "$NAMESPACE" pg-backup -o yaml | yq '.items | map(select(.status.state == "Succeeded")) | length') succeeded_jobs=$(kubectl get -n "$NAMESPACE" job -o yaml | yq '.items | map(select(.status.succeeded == "1")) | length') - if [[ $succeeded_backups -lt 4 ]]; then - echo "ERROR: there are less than 4 succeeded pg-backups" + if [[ $succeeded_backups -lt 5 ]]; then + echo "ERROR: there are less than 5 succeeded pg-backups" exit 1 fi From 58f70d1c1fd6620be32c3560cd800502e9606b22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ege=20G=C3=BCne=C5=9F?= Date: Thu, 26 Sep 2024 17:59:21 +0300 Subject: [PATCH 10/12] K8SPG-643: Fix stanza-upgrade after major upgrade (#911) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * K8SPG-643: Fix stanza-upgrade after major upgrade * fix test ¯\_(ツ)_/¯ * increase timeouts --- .../{04-12-to-13.yaml => 10-12-to-13.yaml} | 0 e2e-tests/tests/major-upgrade/10-assert.yaml | 2 +- e2e-tests/tests/major-upgrade/11-assert.yaml | 33 +++++++++++++++---- .../tests/major-upgrade/11-run-backup.yaml | 9 +++++ e2e-tests/tests/major-upgrade/12-assert.yaml | 30 +++++++++++++++++ .../tests/major-upgrade/12-run-restore.yaml | 7 ++++ .../{05-assert.yaml => 13-assert.yaml} | 0 ...primary.yaml => 13-read-from-primary.yaml} | 2 +- .../{06-13-to-14.yaml => 20-13-to-14.yaml} | 0 .../{06-assert.yaml => 20-assert.yaml} | 0 e2e-tests/tests/major-upgrade/21-assert.yaml | 31 +++++++++++++++++ .../tests/major-upgrade/21-run-backup.yaml | 9 +++++ e2e-tests/tests/major-upgrade/22-assert.yaml | 30 +++++++++++++++++ .../tests/major-upgrade/22-run-restore.yaml | 7 ++++ .../{07-assert.yaml => 23-assert.yaml} | 0 ...primary.yaml => 23-read-from-primary.yaml} | 0 .../{08-14-to-15.yaml => 30-14-to-15.yaml} | 0 .../{08-assert.yaml => 30-assert.yaml} | 0 e2e-tests/tests/major-upgrade/31-assert.yaml | 31 +++++++++++++++++ .../tests/major-upgrade/31-run-backup.yaml | 9 +++++ e2e-tests/tests/major-upgrade/32-assert.yaml | 30 +++++++++++++++++ .../tests/major-upgrade/32-run-restore.yaml | 8 +++++ .../{09-assert.yaml => 33-assert.yaml} | 0 ...primary.yaml => 33-read-from-primary.yaml} | 0 .../{10-15-to-16.yaml => 40-15-to-16.yaml} | 0 .../{04-assert.yaml => 40-assert.yaml} | 2 +- e2e-tests/tests/major-upgrade/41-assert.yaml | 31 +++++++++++++++++ .../tests/major-upgrade/41-run-backup.yaml | 9 +++++ e2e-tests/tests/major-upgrade/42-assert.yaml | 30 +++++++++++++++++ .../tests/major-upgrade/42-run-restore.yaml | 8 +++++ e2e-tests/tests/major-upgrade/43-assert.yaml | 10 ++++++ ...primary.yaml => 43-read-from-primary.yaml} | 0 .../postgrescluster/pgbackrest_test.go | 2 +- internal/pgbackrest/pgbackrest.go | 6 +++- 34 files changed, 325 insertions(+), 11 deletions(-) rename e2e-tests/tests/major-upgrade/{04-12-to-13.yaml => 10-12-to-13.yaml} (100%) create mode 100644 e2e-tests/tests/major-upgrade/11-run-backup.yaml create mode 100644 e2e-tests/tests/major-upgrade/12-assert.yaml create mode 100644 e2e-tests/tests/major-upgrade/12-run-restore.yaml rename e2e-tests/tests/major-upgrade/{05-assert.yaml => 13-assert.yaml} (100%) rename e2e-tests/tests/major-upgrade/{05-read-from-primary.yaml => 13-read-from-primary.yaml} (91%) rename e2e-tests/tests/major-upgrade/{06-13-to-14.yaml => 20-13-to-14.yaml} (100%) rename e2e-tests/tests/major-upgrade/{06-assert.yaml => 20-assert.yaml} (100%) create mode 100644 e2e-tests/tests/major-upgrade/21-assert.yaml create mode 100644 e2e-tests/tests/major-upgrade/21-run-backup.yaml create mode 100644 e2e-tests/tests/major-upgrade/22-assert.yaml create mode 100644 e2e-tests/tests/major-upgrade/22-run-restore.yaml rename e2e-tests/tests/major-upgrade/{07-assert.yaml => 23-assert.yaml} (100%) rename e2e-tests/tests/major-upgrade/{07-read-from-primary.yaml => 23-read-from-primary.yaml} (100%) rename e2e-tests/tests/major-upgrade/{08-14-to-15.yaml => 30-14-to-15.yaml} (100%) rename e2e-tests/tests/major-upgrade/{08-assert.yaml => 30-assert.yaml} (100%) create mode 100644 e2e-tests/tests/major-upgrade/31-assert.yaml create mode 100644 e2e-tests/tests/major-upgrade/31-run-backup.yaml create mode 100644 e2e-tests/tests/major-upgrade/32-assert.yaml create mode 100644 e2e-tests/tests/major-upgrade/32-run-restore.yaml rename e2e-tests/tests/major-upgrade/{09-assert.yaml => 33-assert.yaml} (100%) rename e2e-tests/tests/major-upgrade/{09-read-from-primary.yaml => 33-read-from-primary.yaml} (100%) rename e2e-tests/tests/major-upgrade/{10-15-to-16.yaml => 40-15-to-16.yaml} (100%) rename e2e-tests/tests/major-upgrade/{04-assert.yaml => 40-assert.yaml} (93%) create mode 100644 e2e-tests/tests/major-upgrade/41-assert.yaml create mode 100644 e2e-tests/tests/major-upgrade/41-run-backup.yaml create mode 100644 e2e-tests/tests/major-upgrade/42-assert.yaml create mode 100644 e2e-tests/tests/major-upgrade/42-run-restore.yaml create mode 100644 e2e-tests/tests/major-upgrade/43-assert.yaml rename e2e-tests/tests/major-upgrade/{11-read-from-primary.yaml => 43-read-from-primary.yaml} (100%) diff --git a/e2e-tests/tests/major-upgrade/04-12-to-13.yaml b/e2e-tests/tests/major-upgrade/10-12-to-13.yaml similarity index 100% rename from e2e-tests/tests/major-upgrade/04-12-to-13.yaml rename to e2e-tests/tests/major-upgrade/10-12-to-13.yaml diff --git a/e2e-tests/tests/major-upgrade/10-assert.yaml b/e2e-tests/tests/major-upgrade/10-assert.yaml index 58f19f4e6..66d99bc29 100644 --- a/e2e-tests/tests/major-upgrade/10-assert.yaml +++ b/e2e-tests/tests/major-upgrade/10-assert.yaml @@ -7,7 +7,7 @@ kind: PerconaPGCluster metadata: name: major-upgrade spec: - postgresVersion: 16 + postgresVersion: 13 status: pgbouncer: ready: 3 diff --git a/e2e-tests/tests/major-upgrade/11-assert.yaml b/e2e-tests/tests/major-upgrade/11-assert.yaml index 95d57c293..525d52291 100644 --- a/e2e-tests/tests/major-upgrade/11-assert.yaml +++ b/e2e-tests/tests/major-upgrade/11-assert.yaml @@ -1,10 +1,31 @@ apiVersion: kuttl.dev/v1beta1 kind: TestAssert -timeout: 30 +timeout: 660 --- -kind: ConfigMap -apiVersion: v1 +kind: Job +apiVersion: batch/v1 metadata: - name: 11-read-from-primary -data: - data: ' 100500' + annotations: + postgres-operator.crunchydata.com/pgbackrest-backup: backup-after-12-to-13 + labels: + postgres-operator.crunchydata.com/pgbackrest-backup: manual + postgres-operator.crunchydata.com/pgbackrest-repo: repo1 + ownerReferences: + - apiVersion: pgv2.percona.com/v2 + kind: PerconaPGBackup + controller: true + blockOwnerDeletion: true +status: + succeeded: 1 +--- +apiVersion: pgv2.percona.com/v2 +kind: PerconaPGBackup +metadata: + name: backup-after-12-to-13 +spec: + pgCluster: major-upgrade + repoName: repo1 + options: + - --type=full +status: + state: Succeeded diff --git a/e2e-tests/tests/major-upgrade/11-run-backup.yaml b/e2e-tests/tests/major-upgrade/11-run-backup.yaml new file mode 100644 index 000000000..0cfac94a9 --- /dev/null +++ b/e2e-tests/tests/major-upgrade/11-run-backup.yaml @@ -0,0 +1,9 @@ +apiVersion: pgv2.percona.com/v2 +kind: PerconaPGBackup +metadata: + name: backup-after-12-to-13 +spec: + pgCluster: major-upgrade + repoName: repo1 + options: + - --type=full diff --git a/e2e-tests/tests/major-upgrade/12-assert.yaml b/e2e-tests/tests/major-upgrade/12-assert.yaml new file mode 100644 index 000000000..cb8a90c13 --- /dev/null +++ b/e2e-tests/tests/major-upgrade/12-assert.yaml @@ -0,0 +1,30 @@ +apiVersion: kuttl.dev/v1beta1 +kind: TestAssert +timeout: 720 +--- +apiVersion: pgv2.percona.com/v2 +kind: PerconaPGRestore +metadata: + name: restore-after-12-to-13 +spec: + pgCluster: major-upgrade + repoName: repo1 +status: + state: Succeeded +--- +apiVersion: pgv2.percona.com/v2 +kind: PerconaPGCluster +metadata: + name: major-upgrade +status: + pgbouncer: + ready: 3 + size: 3 + postgres: + instances: + - name: instance1 + ready: 3 + size: 3 + ready: 3 + size: 3 + state: ready diff --git a/e2e-tests/tests/major-upgrade/12-run-restore.yaml b/e2e-tests/tests/major-upgrade/12-run-restore.yaml new file mode 100644 index 000000000..6350f5d6f --- /dev/null +++ b/e2e-tests/tests/major-upgrade/12-run-restore.yaml @@ -0,0 +1,7 @@ +apiVersion: pgv2.percona.com/v2 +kind: PerconaPGRestore +metadata: + name: restore-after-12-to-13 +spec: + pgCluster: major-upgrade + repoName: repo1 diff --git a/e2e-tests/tests/major-upgrade/05-assert.yaml b/e2e-tests/tests/major-upgrade/13-assert.yaml similarity index 100% rename from e2e-tests/tests/major-upgrade/05-assert.yaml rename to e2e-tests/tests/major-upgrade/13-assert.yaml diff --git a/e2e-tests/tests/major-upgrade/05-read-from-primary.yaml b/e2e-tests/tests/major-upgrade/13-read-from-primary.yaml similarity index 91% rename from e2e-tests/tests/major-upgrade/05-read-from-primary.yaml rename to e2e-tests/tests/major-upgrade/13-read-from-primary.yaml index 70ae53f18..ac80bb337 100644 --- a/e2e-tests/tests/major-upgrade/05-read-from-primary.yaml +++ b/e2e-tests/tests/major-upgrade/13-read-from-primary.yaml @@ -9,4 +9,4 @@ commands: source ../../functions data=$(run_psql_local '\c myapp \\\ SELECT * from myApp;' "postgres:$(get_psql_user_pass major-upgrade-pguser-postgres)@$(get_psql_user_host major-upgrade-pguser-postgres)") - kubectl create configmap -n "${NAMESPACE}" 05-read-from-primary --from-literal=data="${data}" \ No newline at end of file + kubectl create configmap -n "${NAMESPACE}" 05-read-from-primary --from-literal=data="${data}" diff --git a/e2e-tests/tests/major-upgrade/06-13-to-14.yaml b/e2e-tests/tests/major-upgrade/20-13-to-14.yaml similarity index 100% rename from e2e-tests/tests/major-upgrade/06-13-to-14.yaml rename to e2e-tests/tests/major-upgrade/20-13-to-14.yaml diff --git a/e2e-tests/tests/major-upgrade/06-assert.yaml b/e2e-tests/tests/major-upgrade/20-assert.yaml similarity index 100% rename from e2e-tests/tests/major-upgrade/06-assert.yaml rename to e2e-tests/tests/major-upgrade/20-assert.yaml diff --git a/e2e-tests/tests/major-upgrade/21-assert.yaml b/e2e-tests/tests/major-upgrade/21-assert.yaml new file mode 100644 index 000000000..788d3de04 --- /dev/null +++ b/e2e-tests/tests/major-upgrade/21-assert.yaml @@ -0,0 +1,31 @@ +apiVersion: kuttl.dev/v1beta1 +kind: TestAssert +timeout: 660 +--- +kind: Job +apiVersion: batch/v1 +metadata: + annotations: + postgres-operator.crunchydata.com/pgbackrest-backup: backup-after-13-to-14 + labels: + postgres-operator.crunchydata.com/pgbackrest-backup: manual + postgres-operator.crunchydata.com/pgbackrest-repo: repo1 + ownerReferences: + - apiVersion: pgv2.percona.com/v2 + kind: PerconaPGBackup + controller: true + blockOwnerDeletion: true +status: + succeeded: 1 +--- +apiVersion: pgv2.percona.com/v2 +kind: PerconaPGBackup +metadata: + name: backup-after-13-to-14 +spec: + pgCluster: major-upgrade + repoName: repo1 + options: + - --type=full +status: + state: Succeeded diff --git a/e2e-tests/tests/major-upgrade/21-run-backup.yaml b/e2e-tests/tests/major-upgrade/21-run-backup.yaml new file mode 100644 index 000000000..7f60f4738 --- /dev/null +++ b/e2e-tests/tests/major-upgrade/21-run-backup.yaml @@ -0,0 +1,9 @@ +apiVersion: pgv2.percona.com/v2 +kind: PerconaPGBackup +metadata: + name: backup-after-13-to-14 +spec: + pgCluster: major-upgrade + repoName: repo1 + options: + - --type=full diff --git a/e2e-tests/tests/major-upgrade/22-assert.yaml b/e2e-tests/tests/major-upgrade/22-assert.yaml new file mode 100644 index 000000000..2b8c164f6 --- /dev/null +++ b/e2e-tests/tests/major-upgrade/22-assert.yaml @@ -0,0 +1,30 @@ +apiVersion: kuttl.dev/v1beta1 +kind: TestAssert +timeout: 720 +--- +apiVersion: pgv2.percona.com/v2 +kind: PerconaPGRestore +metadata: + name: restore-after-13-to-14 +spec: + pgCluster: major-upgrade + repoName: repo1 +status: + state: Succeeded +--- +apiVersion: pgv2.percona.com/v2 +kind: PerconaPGCluster +metadata: + name: major-upgrade +status: + pgbouncer: + ready: 3 + size: 3 + postgres: + instances: + - name: instance1 + ready: 3 + size: 3 + ready: 3 + size: 3 + state: ready diff --git a/e2e-tests/tests/major-upgrade/22-run-restore.yaml b/e2e-tests/tests/major-upgrade/22-run-restore.yaml new file mode 100644 index 000000000..7ce7fed53 --- /dev/null +++ b/e2e-tests/tests/major-upgrade/22-run-restore.yaml @@ -0,0 +1,7 @@ +apiVersion: pgv2.percona.com/v2 +kind: PerconaPGRestore +metadata: + name: restore-after-13-to-14 +spec: + pgCluster: major-upgrade + repoName: repo1 diff --git a/e2e-tests/tests/major-upgrade/07-assert.yaml b/e2e-tests/tests/major-upgrade/23-assert.yaml similarity index 100% rename from e2e-tests/tests/major-upgrade/07-assert.yaml rename to e2e-tests/tests/major-upgrade/23-assert.yaml diff --git a/e2e-tests/tests/major-upgrade/07-read-from-primary.yaml b/e2e-tests/tests/major-upgrade/23-read-from-primary.yaml similarity index 100% rename from e2e-tests/tests/major-upgrade/07-read-from-primary.yaml rename to e2e-tests/tests/major-upgrade/23-read-from-primary.yaml diff --git a/e2e-tests/tests/major-upgrade/08-14-to-15.yaml b/e2e-tests/tests/major-upgrade/30-14-to-15.yaml similarity index 100% rename from e2e-tests/tests/major-upgrade/08-14-to-15.yaml rename to e2e-tests/tests/major-upgrade/30-14-to-15.yaml diff --git a/e2e-tests/tests/major-upgrade/08-assert.yaml b/e2e-tests/tests/major-upgrade/30-assert.yaml similarity index 100% rename from e2e-tests/tests/major-upgrade/08-assert.yaml rename to e2e-tests/tests/major-upgrade/30-assert.yaml diff --git a/e2e-tests/tests/major-upgrade/31-assert.yaml b/e2e-tests/tests/major-upgrade/31-assert.yaml new file mode 100644 index 000000000..14ca1327c --- /dev/null +++ b/e2e-tests/tests/major-upgrade/31-assert.yaml @@ -0,0 +1,31 @@ +apiVersion: kuttl.dev/v1beta1 +kind: TestAssert +timeout: 660 +--- +kind: Job +apiVersion: batch/v1 +metadata: + annotations: + postgres-operator.crunchydata.com/pgbackrest-backup: backup-after-14-to-15 + labels: + postgres-operator.crunchydata.com/pgbackrest-backup: manual + postgres-operator.crunchydata.com/pgbackrest-repo: repo1 + ownerReferences: + - apiVersion: pgv2.percona.com/v2 + kind: PerconaPGBackup + controller: true + blockOwnerDeletion: true +status: + succeeded: 1 +--- +apiVersion: pgv2.percona.com/v2 +kind: PerconaPGBackup +metadata: + name: backup-after-14-to-15 +spec: + pgCluster: major-upgrade + repoName: repo1 + options: + - --type=full +status: + state: Succeeded diff --git a/e2e-tests/tests/major-upgrade/31-run-backup.yaml b/e2e-tests/tests/major-upgrade/31-run-backup.yaml new file mode 100644 index 000000000..e787fedfc --- /dev/null +++ b/e2e-tests/tests/major-upgrade/31-run-backup.yaml @@ -0,0 +1,9 @@ +apiVersion: pgv2.percona.com/v2 +kind: PerconaPGBackup +metadata: + name: backup-after-14-to-15 +spec: + pgCluster: major-upgrade + repoName: repo1 + options: + - --type=full diff --git a/e2e-tests/tests/major-upgrade/32-assert.yaml b/e2e-tests/tests/major-upgrade/32-assert.yaml new file mode 100644 index 000000000..0246ec0e7 --- /dev/null +++ b/e2e-tests/tests/major-upgrade/32-assert.yaml @@ -0,0 +1,30 @@ +apiVersion: kuttl.dev/v1beta1 +kind: TestAssert +timeout: 720 +--- +apiVersion: pgv2.percona.com/v2 +kind: PerconaPGRestore +metadata: + name: restore-after-14-to-15 +spec: + pgCluster: major-upgrade + repoName: repo1 +status: + state: Succeeded +--- +apiVersion: pgv2.percona.com/v2 +kind: PerconaPGCluster +metadata: + name: major-upgrade +status: + pgbouncer: + ready: 3 + size: 3 + postgres: + instances: + - name: instance1 + ready: 3 + size: 3 + ready: 3 + size: 3 + state: ready diff --git a/e2e-tests/tests/major-upgrade/32-run-restore.yaml b/e2e-tests/tests/major-upgrade/32-run-restore.yaml new file mode 100644 index 000000000..24845cbb2 --- /dev/null +++ b/e2e-tests/tests/major-upgrade/32-run-restore.yaml @@ -0,0 +1,8 @@ +apiVersion: pgv2.percona.com/v2 +kind: PerconaPGRestore +metadata: + name: restore-after-14-to-15 +spec: + pgCluster: major-upgrade + repoName: repo1 + diff --git a/e2e-tests/tests/major-upgrade/09-assert.yaml b/e2e-tests/tests/major-upgrade/33-assert.yaml similarity index 100% rename from e2e-tests/tests/major-upgrade/09-assert.yaml rename to e2e-tests/tests/major-upgrade/33-assert.yaml diff --git a/e2e-tests/tests/major-upgrade/09-read-from-primary.yaml b/e2e-tests/tests/major-upgrade/33-read-from-primary.yaml similarity index 100% rename from e2e-tests/tests/major-upgrade/09-read-from-primary.yaml rename to e2e-tests/tests/major-upgrade/33-read-from-primary.yaml diff --git a/e2e-tests/tests/major-upgrade/10-15-to-16.yaml b/e2e-tests/tests/major-upgrade/40-15-to-16.yaml similarity index 100% rename from e2e-tests/tests/major-upgrade/10-15-to-16.yaml rename to e2e-tests/tests/major-upgrade/40-15-to-16.yaml diff --git a/e2e-tests/tests/major-upgrade/04-assert.yaml b/e2e-tests/tests/major-upgrade/40-assert.yaml similarity index 93% rename from e2e-tests/tests/major-upgrade/04-assert.yaml rename to e2e-tests/tests/major-upgrade/40-assert.yaml index 66d99bc29..58f19f4e6 100644 --- a/e2e-tests/tests/major-upgrade/04-assert.yaml +++ b/e2e-tests/tests/major-upgrade/40-assert.yaml @@ -7,7 +7,7 @@ kind: PerconaPGCluster metadata: name: major-upgrade spec: - postgresVersion: 13 + postgresVersion: 16 status: pgbouncer: ready: 3 diff --git a/e2e-tests/tests/major-upgrade/41-assert.yaml b/e2e-tests/tests/major-upgrade/41-assert.yaml new file mode 100644 index 000000000..2b003b69a --- /dev/null +++ b/e2e-tests/tests/major-upgrade/41-assert.yaml @@ -0,0 +1,31 @@ +apiVersion: kuttl.dev/v1beta1 +kind: TestAssert +timeout: 660 +--- +kind: Job +apiVersion: batch/v1 +metadata: + annotations: + postgres-operator.crunchydata.com/pgbackrest-backup: backup-after-15-to-16 + labels: + postgres-operator.crunchydata.com/pgbackrest-backup: manual + postgres-operator.crunchydata.com/pgbackrest-repo: repo1 + ownerReferences: + - apiVersion: pgv2.percona.com/v2 + kind: PerconaPGBackup + controller: true + blockOwnerDeletion: true +status: + succeeded: 1 +--- +apiVersion: pgv2.percona.com/v2 +kind: PerconaPGBackup +metadata: + name: backup-after-15-to-16 +spec: + pgCluster: major-upgrade + repoName: repo1 + options: + - --type=full +status: + state: Succeeded diff --git a/e2e-tests/tests/major-upgrade/41-run-backup.yaml b/e2e-tests/tests/major-upgrade/41-run-backup.yaml new file mode 100644 index 000000000..3e4fe9c94 --- /dev/null +++ b/e2e-tests/tests/major-upgrade/41-run-backup.yaml @@ -0,0 +1,9 @@ +apiVersion: pgv2.percona.com/v2 +kind: PerconaPGBackup +metadata: + name: backup-after-15-to-16 +spec: + pgCluster: major-upgrade + repoName: repo1 + options: + - --type=full diff --git a/e2e-tests/tests/major-upgrade/42-assert.yaml b/e2e-tests/tests/major-upgrade/42-assert.yaml new file mode 100644 index 000000000..ff0778569 --- /dev/null +++ b/e2e-tests/tests/major-upgrade/42-assert.yaml @@ -0,0 +1,30 @@ +apiVersion: kuttl.dev/v1beta1 +kind: TestAssert +timeout: 720 +--- +apiVersion: pgv2.percona.com/v2 +kind: PerconaPGRestore +metadata: + name: restore-after-15-to-16 +spec: + pgCluster: major-upgrade + repoName: repo1 +status: + state: Succeeded +--- +apiVersion: pgv2.percona.com/v2 +kind: PerconaPGCluster +metadata: + name: major-upgrade +status: + pgbouncer: + ready: 3 + size: 3 + postgres: + instances: + - name: instance1 + ready: 3 + size: 3 + ready: 3 + size: 3 + state: ready diff --git a/e2e-tests/tests/major-upgrade/42-run-restore.yaml b/e2e-tests/tests/major-upgrade/42-run-restore.yaml new file mode 100644 index 000000000..c86adba0d --- /dev/null +++ b/e2e-tests/tests/major-upgrade/42-run-restore.yaml @@ -0,0 +1,8 @@ +apiVersion: pgv2.percona.com/v2 +kind: PerconaPGRestore +metadata: + name: restore-after-15-to-16 +spec: + pgCluster: major-upgrade + repoName: repo1 + diff --git a/e2e-tests/tests/major-upgrade/43-assert.yaml b/e2e-tests/tests/major-upgrade/43-assert.yaml new file mode 100644 index 000000000..95d57c293 --- /dev/null +++ b/e2e-tests/tests/major-upgrade/43-assert.yaml @@ -0,0 +1,10 @@ +apiVersion: kuttl.dev/v1beta1 +kind: TestAssert +timeout: 30 +--- +kind: ConfigMap +apiVersion: v1 +metadata: + name: 11-read-from-primary +data: + data: ' 100500' diff --git a/e2e-tests/tests/major-upgrade/11-read-from-primary.yaml b/e2e-tests/tests/major-upgrade/43-read-from-primary.yaml similarity index 100% rename from e2e-tests/tests/major-upgrade/11-read-from-primary.yaml rename to e2e-tests/tests/major-upgrade/43-read-from-primary.yaml diff --git a/internal/controller/postgrescluster/pgbackrest_test.go b/internal/controller/postgrescluster/pgbackrest_test.go index c471f870e..077800964 100644 --- a/internal/controller/postgrescluster/pgbackrest_test.go +++ b/internal/controller/postgrescluster/pgbackrest_test.go @@ -761,7 +761,7 @@ func TestReconcileStanzaCreate(t *testing.T) { } configHashMismatch, err = r.reconcileStanzaCreate(ctx, postgresCluster, instances, "abcde12345") - assert.Error(t, err, "fake stanza create failed: ") + assert.Error(t, err, "fake stanza create failed: ") assert.Assert(t, !configHashMismatch) assert.NilError(t, wait.PollUntilContextTimeout(ctx, time.Second/2, Scale(time.Second*2), false, diff --git a/internal/pgbackrest/pgbackrest.go b/internal/pgbackrest/pgbackrest.go index df20e8ee4..675d1b7b7 100644 --- a/internal/pgbackrest/pgbackrest.go +++ b/internal/pgbackrest/pgbackrest.go @@ -24,6 +24,7 @@ import ( "github.com/pkg/errors" + "github.com/percona/percona-postgresql-operator/internal/logging" "github.com/percona/percona-postgresql-operator/pkg/apis/postgres-operator.crunchydata.com/v1beta1" ) @@ -103,11 +104,14 @@ else pgbackrest "${cmd}" --stanza="${stanza}" fi ` + log := logging.FromContext(ctx) if err := exec(ctx, nil, &stdout, &stderr, "bash", "-ceu", "--", script, "-", configHash, DefaultStanzaName, errMsgConfigHashMismatch, errMsgStaleReposWithVolumesConfig, fmt.Sprintf("stanza-%s", stanzaCmd), checkRepoCmd); err != nil { - errReturn := stderr.String() + errReturn := stdout.String() + " " + stderr.String() + + log.Error(err, "stanza command failed", "cmd", stanzaCmd, "err", errReturn) // if the config hashes didn't match, return true and don't return an error since this is // expected while waiting for config changes in ConfigMaps and Secrets to make it to the From bd9bc14db1ddf0824105d5478e6903cc89dde348 Mon Sep 17 00:00:00 2001 From: Andrii Dema Date: Fri, 27 Sep 2024 14:29:12 +0300 Subject: [PATCH 11/12] K8SPG-555: fix updating CA secrets to 2.5.0 (#906) * K8SPG-555: fix updating CA secrets to 2.5.0 https://perconadev.atlassian.net/browse/K8SPG-555 * fix * add validation for custom certificates * improve validation * break into multiple lines * fix * small fix --------- Co-authored-by: Viacheslav Sarzhan --- internal/controller/postgrescluster/pki.go | 32 ++++- internal/naming/names.go | 6 +- percona/controller/pgcluster/controller.go | 129 +++++++++++++++++++++ percona/controller/pgcluster/finalizer.go | 1 + 4 files changed, 160 insertions(+), 8 deletions(-) diff --git a/internal/controller/postgrescluster/pki.go b/internal/controller/postgrescluster/pki.go index 38dbb2840..40e06b125 100644 --- a/internal/controller/postgrescluster/pki.go +++ b/internal/controller/postgrescluster/pki.go @@ -21,6 +21,8 @@ import ( "github.com/pkg/errors" appsv1 "k8s.io/api/apps/v1" corev1 "k8s.io/api/core/v1" + k8serrors "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "sigs.k8s.io/controller-runtime/pkg/client" "github.com/percona/percona-postgresql-operator/internal/naming" @@ -69,8 +71,22 @@ func (r *Reconciler) reconcileRootCertificate( } } - err := errors.WithStack(client.IgnoreNotFound( - r.Client.Get(ctx, client.ObjectKeyFromObject(existing), existing))) + err := errors.WithStack( + r.Client.Get(ctx, client.ObjectKeyFromObject(existing), existing)) + // K8SPG-555: we need to check ca certificate from old operator versions + // TODO: remove when 2.4.0 will become unsupported + if k8serrors.IsNotFound(err) { + nn := client.ObjectKeyFromObject(existing) + nn.Name = naming.RootCertSecret + err = errors.WithStack( + r.Client.Get(ctx, nn, existing)) + if err == nil { + existing.Name = naming.RootCertSecret + } + } + if k8serrors.IsNotFound(err) { + err = nil + } root := &pki.RootCertificateAuthority{} @@ -81,17 +97,21 @@ func (r *Reconciler) reconcileRootCertificate( _ = root.Certificate.UnmarshalText(existing.Data[certificateKey]) _ = root.PrivateKey.UnmarshalText(existing.Data[privateKey]) + if cluster.Spec.CustomRootCATLSSecret != nil { + return root, err + } + if !pki.RootIsValid(root) { root, err = pki.NewRootCertificateAuthority() err = errors.WithStack(err) } } - if cluster.Spec.CustomRootCATLSSecret != nil { - return root, err - } intent := &corev1.Secret{ - ObjectMeta: naming.PostgresRootCASecret(cluster), + ObjectMeta: metav1.ObjectMeta{ + Name: existing.Name, + Namespace: existing.Namespace, + }, } intent.SetGroupVersionKind(corev1.SchemeGroupVersion.WithKind("Secret")) intent.Data = make(map[string][]byte) diff --git a/internal/naming/names.go b/internal/naming/names.go index 8c1850c37..7f4530689 100644 --- a/internal/naming/names.go +++ b/internal/naming/names.go @@ -90,9 +90,11 @@ const ( ) const ( - // K8SPG-555: use PostgresRootCASecret instead. + // Deprecated: K8SPG-555: use PostgresRootCASecret instead. + // Currently it's used to update certificates from older operator version // RootCertSecret is the default root certificate secret name - // RootCertSecret = "pgo-root-cacert" /* #nosec */ + // TODO: remove when 2.4.0 will become unsupported + RootCertSecret = "pgo-root-cacert" /* #nosec */ // ClusterCertSecret is the default cluster leaf certificate secret name ClusterCertSecret = "%s-cluster-cert" /* #nosec */ diff --git a/percona/controller/pgcluster/controller.go b/percona/controller/pgcluster/controller.go index 3c1250ba2..8c6645ddf 100644 --- a/percona/controller/pgcluster/controller.go +++ b/percona/controller/pgcluster/controller.go @@ -213,6 +213,10 @@ func (r *PGClusterReconciler) Reconcile(ctx context.Context, request reconcile.R return reconcile.Result{}, nil } + if err := r.reconcileTLS(ctx, cr); err != nil { + return reconcile.Result{}, errors.Wrap(err, "reconcile TLS") + } + if err := r.reconcileExternalWatchers(ctx, cr); err != nil { return reconcile.Result{}, errors.Wrap(err, "start external watchers") } @@ -282,6 +286,131 @@ func (r *PGClusterReconciler) Reconcile(ctx context.Context, request reconcile.R return ctrl.Result{}, nil } +func (r *PGClusterReconciler) reconcileTLS(ctx context.Context, cr *v2.PerconaPGCluster) error { + checkSecretProjection := func(p *corev1.SecretProjection, requiredPaths ...string) error { + if p == nil { + return nil + } + + if p.Name == "" { + return errors.New("secret name is not specified") + } + + secret := new(corev1.Secret) + nn := types.NamespacedName{Name: p.Name, Namespace: cr.Namespace} + if err := r.Client.Get(ctx, nn, secret); err != nil { + return errors.Wrapf(err, "failed to get secret %s", nn.Name) + } + + pathMap := make(map[string]struct{}) + for _, item := range p.Items { + if _, ok := secret.Data[item.Key]; !ok { + return errors.Errorf("key %s doesn't exist in secret %s", item.Key, secret.Name) + } + pathMap[item.Path] = struct{}{} + } + + for _, path := range requiredPaths { + if _, ok := pathMap[path]; !ok { + if _, ok := secret.Data[path]; !ok { + return errors.Errorf("required path %s was not found both in secret %s and in the .items section", path, secret.Name) + } + } + } + + return nil + } + + if err := checkSecretProjection(cr.Spec.Secrets.CustomRootCATLSSecret, "root.crt", "root.key"); err != nil { + return errors.Wrap(err, "failed to validate .spec.customRootCATLSSecret") + } + + certPaths := []string{"tls.key", "tls.crt"} + if cr.Spec.Secrets.CustomRootCATLSSecret == nil { + certPaths = append(certPaths, "ca.crt") + } + if err := checkSecretProjection(cr.Spec.Secrets.CustomTLSSecret, certPaths...); err != nil { + return errors.Wrap(err, "failed to validate .spec.customTLSSecret") + } + if err := checkSecretProjection(cr.Spec.Secrets.CustomReplicationClientTLSSecret, certPaths...); err != nil { + return errors.Wrap(err, "failed to validate .spec.customReplicationTLSSecret") + } + + if cr.Spec.Secrets.CustomRootCATLSSecret != nil { + return nil + } + + if err := r.reconcileOldCACert(ctx, cr); err != nil { + return errors.Wrap(err, "reconcile old CA") + } + + return nil +} + +func (r *PGClusterReconciler) reconcileOldCACert(ctx context.Context, cr *v2.PerconaPGCluster) error { + oldCASecret := &corev1.Secret{ + ObjectMeta: metav1.ObjectMeta{ + Name: naming.RootCertSecret, + Namespace: cr.Namespace, + }, + } + err := r.Client.Get(ctx, client.ObjectKeyFromObject(oldCASecret), oldCASecret) + if client.IgnoreNotFound(err) != nil { + return errors.Wrap(err, "failed to get old ca secret") + } + + if cr.CompareVersion("2.5.0") < 0 { + if k8serrors.IsNotFound(err) { + // K8SPG-555: We should create an empty secret with old name, so that crunchy part can populate it + // instead of creating secrets unique to the cluster + // TODO: remove when 2.4.0 will become unsupported + if err := r.Client.Create(ctx, oldCASecret); err != nil { + return errors.Wrap(err, "failed to create ca secret") + } + } + return nil + } + if k8serrors.IsNotFound(err) { + return nil + } + + // K8SPG-555: Previously we used a single CA secret for all clusters in a namespace. + // We should copy the contents of the old CA secret, if it exists, to the new one, which is unique for each cluster. + // TODO: remove when 2.4.0 will become unsupported + newCASecret := &corev1.Secret{ + ObjectMeta: naming.PostgresRootCASecret( + &v1beta1.PostgresCluster{ + ObjectMeta: metav1.ObjectMeta{ + Name: cr.Name, + Namespace: cr.Namespace, + }, + }), + } + err = r.Client.Get(ctx, client.ObjectKeyFromObject(newCASecret), new(corev1.Secret)) + if client.IgnoreNotFound(err) != nil { + return errors.Wrap(err, "failed to get new ca secret") + } + + if k8serrors.IsNotFound(err) { + err := r.Client.Get(ctx, types.NamespacedName{ + Name: cr.Name, + Namespace: cr.Namespace, + }, new(v1beta1.PostgresCluster)) + if client.IgnoreNotFound(err) != nil { + return errors.Wrap(err, "failed to get crunchy cluster") + } + // If the cluster is new, we should not copy the old CA secret. + // We should create an empty secret instead, so that crunchy part can populate it. + if !k8serrors.IsNotFound(err) { + newCASecret.Data = oldCASecret.Data + } + if err := r.Client.Create(ctx, newCASecret); err != nil { + return errors.Wrap(err, "failed to create updated CA secret") + } + } + return nil +} + func (r *PGClusterReconciler) reconcilePMM(ctx context.Context, cr *v2.PerconaPGCluster) error { if !cr.PMMEnabled() { return nil diff --git a/percona/controller/pgcluster/finalizer.go b/percona/controller/pgcluster/finalizer.go index f423acb65..4e7ca47a1 100644 --- a/percona/controller/pgcluster/finalizer.go +++ b/percona/controller/pgcluster/finalizer.go @@ -82,6 +82,7 @@ func (r *PGClusterReconciler) deleteTLSSecrets(ctx context.Context, cr *v2.Perco naming.ClusterPGBouncer(crunchyCluster), } if cr.Spec.Secrets.CustomRootCATLSSecret == nil { + secretsMeta = append(secretsMeta, metav1.ObjectMeta{Namespace: crunchyCluster.Namespace, Name: naming.RootCertSecret}) secretsMeta = append(secretsMeta, naming.PostgresRootCASecret(crunchyCluster)) } if cr.Spec.Secrets.CustomTLSSecret == nil { From 34f1bd17199d2fa7fe73643230b8f58c621a88d4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 Sep 2024 20:27:41 +0300 Subject: [PATCH 12/12] CLOUD-727: Bump google.golang.org/grpc from 1.66.2 to 1.67.0 (#908) Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.66.2 to 1.67.0. - [Release notes](https://github.com/grpc/grpc-go/releases) - [Commits](https://github.com/grpc/grpc-go/compare/v1.66.2...v1.67.0) --- updated-dependencies: - dependency-name: google.golang.org/grpc 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 f64ad71c7..9ffcc9911 100644 --- a/go.mod +++ b/go.mod @@ -30,7 +30,7 @@ require ( go.opentelemetry.io/otel/trace v1.30.0 go.uber.org/zap v1.27.0 golang.org/x/crypto v0.27.0 - google.golang.org/grpc v1.66.2 + google.golang.org/grpc v1.67.0 gotest.tools/v3 v3.5.1 k8s.io/api v0.31.1 k8s.io/apimachinery v0.31.1 diff --git a/go.sum b/go.sum index db93d5397..0f537a3e7 100644 --- a/go.sum +++ b/go.sum @@ -355,8 +355,8 @@ google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyac google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= -google.golang.org/grpc v1.66.2 h1:3QdXkuq3Bkh7w+ywLdLvM56cmGvQHUMZpiCzt6Rqaoo= -google.golang.org/grpc v1.66.2/go.mod h1:s3/l6xSSCURdVfAnL+TqCNMyTDAGN6+lZeVxnZR128Y= +google.golang.org/grpc v1.67.0 h1:IdH9y6PF5MPSdAntIcpjQ+tXO41pcQsfZV2RxtQgVcw= +google.golang.org/grpc v1.67.0/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg=